丽知:钉钉上传文件。
This commit is contained in:
parent
4598e64e8b
commit
90b6ec01ba
|
@ -1,10 +1,13 @@
|
||||||
package com.hzya.frame.plugin.lets.dingtalk.push;
|
package com.hzya.frame.plugin.lets.dingtalk.push;
|
||||||
|
|
||||||
import com.hzya.frame.plugin.lets.dingtalk.push.serivce.PushU8CService;
|
import com.hzya.frame.plugin.lets.dingtalk.push.serivce.PushU8CService;
|
||||||
|
import com.hzya.frame.plugin.lets.dingtalk.vo.DjFileVO;
|
||||||
import com.hzya.frame.plugin.lets.dingtalk.vo.DjzbVO;
|
import com.hzya.frame.plugin.lets.dingtalk.vo.DjzbVO;
|
||||||
|
import com.hzya.frame.plugin.lets.dingtalk.vo.SysFileVO;
|
||||||
import com.hzya.frame.web.action.DefaultController;
|
import com.hzya.frame.web.action.DefaultController;
|
||||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
@ -24,17 +27,16 @@ public class PushController extends DefaultController {
|
||||||
/** 委外采购(付款单)->采购付款申请(新) **/
|
/** 委外采购(付款单)->采购付款申请(新) **/
|
||||||
@RequestMapping(value = "U8COutSourceBill")
|
@RequestMapping(value = "U8COutSourceBill")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public JsonResultEntity pushU8COutSourceBill(DjzbVO djzbVO, List<String> fileBase64s){
|
public JsonResultEntity pushU8COutSourceBill(@RequestBody DjFileVO djFileVO){
|
||||||
pushU8CService.outSource(djzbVO,fileBase64s);
|
String processInstanceId = pushU8CService.outSource(djFileVO);
|
||||||
System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8COutSourceBill");
|
return getSuccessMessageEntity(processInstanceId);
|
||||||
return getSuccessMessageEntity("112233445566778899");
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 代理采购(付款单)->采购付款申请(店群专用) **/
|
/** 代理采购(付款单)->采购付款申请(店群专用) **/
|
||||||
@RequestMapping(value = "U8CAgencyBill")
|
@RequestMapping(value = "U8CAgencyBill")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public JsonResultEntity pushU8CAgencyBill(DjzbVO djzbVO, List<String> fileBase64s){
|
public JsonResultEntity pushU8CAgencyBill(@RequestBody DjFileVO djFileVO){
|
||||||
System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8CAgencyBill");
|
System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8CAgencyBill");
|
||||||
return getSuccessMessageEntity("112233445566778899");
|
return getSuccessMessageEntity("112233445566778899");
|
||||||
}
|
}
|
||||||
|
@ -42,7 +44,7 @@ public class PushController extends DefaultController {
|
||||||
/** 调拨单内部交易(付款单)->特殊业务处理(新) **/
|
/** 调拨单内部交易(付款单)->特殊业务处理(新) **/
|
||||||
@RequestMapping(value = "U8CTransferBill")
|
@RequestMapping(value = "U8CTransferBill")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public JsonResultEntity pushU8CTransferBill(DjzbVO djzbVO, List<String> fileBase64s){
|
public JsonResultEntity pushU8CTransferBill(@RequestBody DjFileVO djFileVO){
|
||||||
System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8CTransferBill");
|
System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8CTransferBill");
|
||||||
return getSuccessMessageEntity("112233445566778899");
|
return getSuccessMessageEntity("112233445566778899");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
package com.hzya.frame.plugin.lets.dingtalk.push.serivce;
|
package com.hzya.frame.plugin.lets.dingtalk.push.serivce;
|
||||||
|
|
||||||
|
import com.hzya.frame.plugin.lets.dingtalk.vo.DjFileVO;
|
||||||
import com.hzya.frame.plugin.lets.dingtalk.vo.DjzbVO;
|
import com.hzya.frame.plugin.lets.dingtalk.vo.DjzbVO;
|
||||||
|
import com.hzya.frame.plugin.lets.dingtalk.vo.SysFileVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface PushU8CService {
|
public interface PushU8CService {
|
||||||
/** 委外采购(付款单)->采购付款申请(新) **/
|
/** 委外采购(付款单)->采购付款申请(新) **/
|
||||||
public String outSource(DjzbVO djzbVO, List<String> fileBase64s);
|
public String outSource(DjFileVO djFileVO);
|
||||||
/** 代理采购(付款单)->采购付款申请(店群专用) **/
|
/** 代理采购(付款单)->采购付款申请(店群专用) **/
|
||||||
public String agency(DjzbVO djzbVO, List<String> fileBase64s);
|
public String agency(DjFileVO djFileVO);
|
||||||
/** 调拨单内部交易(付款单)->特殊业务处理(新) **/
|
/** 调拨单内部交易(付款单)->特殊业务处理(新) **/
|
||||||
public String transfer(DjzbVO djzbVO, List<String> fileBase64s);
|
public String transfer(DjFileVO djFileVO);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,12 @@ package com.hzya.frame.plugin.lets.dingtalk.push.serivce.impl;
|
||||||
|
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import com.hzya.frame.plugin.lets.dingtalk.push.serivce.PushU8CService;
|
import com.hzya.frame.plugin.lets.dingtalk.push.serivce.PushU8CService;
|
||||||
|
import com.hzya.frame.plugin.lets.dingtalk.vo.DjFileVO;
|
||||||
import com.hzya.frame.plugin.lets.dingtalk.vo.DjzbVO;
|
import com.hzya.frame.plugin.lets.dingtalk.vo.DjzbVO;
|
||||||
|
import com.hzya.frame.plugin.lets.dingtalk.vo.SysFileVO;
|
||||||
|
import com.hzya.frame.plugin.lets.plugin.adjust.AdjustInPluginInitializer;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -17,35 +22,45 @@ import java.util.List;
|
||||||
@Service("PushU8CService")
|
@Service("PushU8CService")
|
||||||
public class PushU8CServiceImpl implements PushU8CService {
|
public class PushU8CServiceImpl implements PushU8CService {
|
||||||
|
|
||||||
|
Logger logger = LoggerFactory.getLogger(PushU8CServiceImpl.class);
|
||||||
|
|
||||||
|
|
||||||
/** 委外采购(付款单)->采购付款申请(新) */
|
/** 委外采购(付款单)->采购付款申请(新) */
|
||||||
@Override
|
@Override
|
||||||
public String outSource(DjzbVO djzbVO, List<String> fileBase64s) {
|
public String outSource(DjFileVO djFileVO) {
|
||||||
checkParameter(djzbVO,fileBase64s);
|
checkParameter(djFileVO);
|
||||||
return null;
|
System.out.println(djFileVO);
|
||||||
|
try{
|
||||||
|
//
|
||||||
|
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
logger.error("委外采购(付款单)->采购付款申请(新)报错",e);
|
||||||
|
}
|
||||||
|
return "110";
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 代理采购(付款单)->采购付款申请(店群专用) */
|
/** 代理采购(付款单)->采购付款申请(店群专用) */
|
||||||
@Override
|
@Override
|
||||||
public String agency(DjzbVO djzbVO, List<String> fileBase64s) {
|
public String agency(DjFileVO djFileVO) {
|
||||||
checkParameter(djzbVO,fileBase64s);
|
checkParameter(djFileVO);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 调拨单内部交易(付款单)->特殊业务处理(新) */
|
/** 调拨单内部交易(付款单)->特殊业务处理(新) */
|
||||||
@Override
|
@Override
|
||||||
public String transfer(DjzbVO djzbVO, List<String> fileBase64s) {
|
public String transfer(DjFileVO djFileVO) {
|
||||||
checkParameter(djzbVO,fileBase64s);
|
checkParameter(djFileVO);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查参数,VO不能为空,文件不能空
|
* 检查参数,VO不能为空,文件不能空
|
||||||
* @param djzbVO
|
* @param djFileVO:djzbVO+sysFileVOS
|
||||||
* @param fileBase64s
|
|
||||||
*/
|
*/
|
||||||
public void checkParameter(DjzbVO djzbVO, List<String> fileBase64s){
|
public void checkParameter(DjFileVO djFileVO){
|
||||||
Assert.notNull(djzbVO,"u8c单据推送钉钉表单,检查参数,VO不能为空");
|
Assert.notNull(djFileVO.getDjzbVO(),"u8c单据推送钉钉表单,检查参数,VO不能为空");
|
||||||
if (fileBase64s.size() == 0) {
|
if (djFileVO.getSysFileVOS().size() == 0) {
|
||||||
Assert.state(false,"u8c单据推送钉钉表单,检查参数,文件不能空");
|
Assert.state(false,"u8c单据推送钉钉表单,检查参数,文件不能空");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,12 +70,12 @@ public class PushU8CServiceImpl implements PushU8CService {
|
||||||
* 将base64转为文件上传钉盘,并返回钉钉的 List<FileModuleVO>
|
* 将base64转为文件上传钉盘,并返回钉钉的 List<FileModuleVO>
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public List<File> baseTransformFile(List<String> fileBase64s){
|
public List<File> baseTransformFile(List<SysFileVO> fileBase64s){
|
||||||
List<File> fileList=new ArrayList<>();
|
List<File> fileList=new ArrayList<>();
|
||||||
for (String fileBase64 : fileBase64s) {
|
// for (String fileBase64 : fileBase64s) {
|
||||||
// 解码Base64字符串
|
// // 解码Base64字符串
|
||||||
byte[] decodedBytes = Base64.getDecoder().decode(fileBase64);
|
// byte[] decodedBytes = Base64.getDecoder().decode(fileBase64);
|
||||||
}
|
// }
|
||||||
return fileList;
|
return fileList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import com.aliyun.dingtalkstorage_1_0.models.AddPermissionResponse;
|
||||||
import com.aliyun.dingtalkstorage_1_0.models.CommitFileRequest;
|
import com.aliyun.dingtalkstorage_1_0.models.CommitFileRequest;
|
||||||
import com.aliyun.dingtalkstorage_1_0.models.CommitFileResponse;
|
import com.aliyun.dingtalkstorage_1_0.models.CommitFileResponse;
|
||||||
import com.aliyun.dingtalkstorage_1_0.models.GetFileUploadInfoResponse;
|
import com.aliyun.dingtalkstorage_1_0.models.GetFileUploadInfoResponse;
|
||||||
|
import com.aliyun.dingtalkworkflow_1_0.Client;
|
||||||
import com.aliyun.dingtalkworkflow_1_0.models.*;
|
import com.aliyun.dingtalkworkflow_1_0.models.*;
|
||||||
import com.aliyun.tea.TeaException;
|
import com.aliyun.tea.TeaException;
|
||||||
import com.aliyun.teautil.models.RuntimeOptions;
|
import com.aliyun.teautil.models.RuntimeOptions;
|
||||||
|
@ -559,4 +560,39 @@ public class DingTalkUtils {
|
||||||
}
|
}
|
||||||
return addPermissionResponse;
|
return addPermissionResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* /drive/spaces
|
||||||
|
* 钉盘:新建空间
|
||||||
|
* 使用场景:审批实例附件存放
|
||||||
|
* @param token
|
||||||
|
* @param spaceName
|
||||||
|
* @param unionId
|
||||||
|
*/
|
||||||
|
public static void addSpaces(String token,String spaceName,String unionId) throws Exception {
|
||||||
|
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
|
||||||
|
config.protocol = "https";
|
||||||
|
config.regionId = "central";
|
||||||
|
com.aliyun.dingtalkdrive_1_0.Client client = new com.aliyun.dingtalkdrive_1_0.Client(config);
|
||||||
|
|
||||||
|
com.aliyun.dingtalkdrive_1_0.models.AddSpaceHeaders addSpaceHeaders = new com.aliyun.dingtalkdrive_1_0.models.AddSpaceHeaders();
|
||||||
|
addSpaceHeaders.xAcsDingtalkAccessToken = token;
|
||||||
|
com.aliyun.dingtalkdrive_1_0.models.AddSpaceRequest addSpaceRequest = new com.aliyun.dingtalkdrive_1_0.models.AddSpaceRequest()
|
||||||
|
.setName(spaceName)
|
||||||
|
.setUnionId(unionId);
|
||||||
|
try {
|
||||||
|
client.addSpaceWithOptions(addSpaceRequest, addSpaceHeaders, new com.aliyun.teautil.models.RuntimeOptions());
|
||||||
|
} catch (TeaException err) {
|
||||||
|
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
|
||||||
|
Assert.state(false, err.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception _err) {
|
||||||
|
TeaException err = new TeaException(_err.getMessage(), _err);
|
||||||
|
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
|
||||||
|
Assert.state(false, err.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.hzya.frame.plugin.lets.dingtalk.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DjFileVO {
|
||||||
|
private DjzbVO djzbVO;
|
||||||
|
private List<SysFileVO> sysFileVOS;
|
||||||
|
}
|
|
@ -9,7 +9,7 @@ public class SysFileVO {
|
||||||
/** 文件类型 */
|
/** 文件类型 */
|
||||||
private String type;
|
private String type;
|
||||||
/** 文件大小(kb) */
|
/** 文件大小(kb) */
|
||||||
private Long fileSize;
|
private String fileSize;
|
||||||
/** base64编码 */
|
/** base64编码 */
|
||||||
private String baseCode;
|
private String baseCode;
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,11 +64,19 @@ DING:
|
||||||
AppSecret: BVuLOy_K0F8f5np69VuBeKdb1zfwqhuPsAV49lNbYVbx5TnfSTHjwEcad9Vwzfq1
|
AppSecret: BVuLOy_K0F8f5np69VuBeKdb1zfwqhuPsAV49lNbYVbx5TnfSTHjwEcad9Vwzfq1
|
||||||
#钉盘审批空间
|
#钉盘审批空间
|
||||||
SPACEID: 20852670637
|
SPACEID: 20852670637
|
||||||
#审批表单空间
|
#审批模板code
|
||||||
APPROVE:
|
APPROVE_CODE:
|
||||||
#特殊业务处理(新)
|
#特殊业务处理(新)
|
||||||
SPECIAL_SERVICE_PROCESSING_FILE_ID: 1
|
SPECIAL_SERVICE_PROCESSING: PROC-AC33FC85-FB44-49FC-B926-1D966AE3BBD2
|
||||||
#采购付款申请(新)
|
#采购付款申请(新)
|
||||||
PURCHASE_PAYMENT_REQUEST_NEW_FILE_ID: 1
|
PURCHASE_PAYMENT_REQUEST_NEW: PROC-EC6B5BD2-DE3C-456E-9591-6F7B377E39E4
|
||||||
#采购付款申请(店群专用)
|
#采购付款申请(店群专用)
|
||||||
PURCHASE_PAYMENT_REQUEST_SHOP_FILE_ID: 1
|
PURCHASE_PAYMENT_REQUEST_SHOP: PROC-285CCF2B-524F-4055-BE62-FC31F490C654
|
||||||
|
#审批表单空间
|
||||||
|
APPROVE_FILE_SPAC:
|
||||||
|
#特殊业务处理(新)
|
||||||
|
SPECIAL_SERVICE_PROCESSING: 25354825296
|
||||||
|
#采购付款申请(新)
|
||||||
|
PURCHASE_PAYMENT_REQUEST_NEW: 25354984089
|
||||||
|
#采购付款申请(店群专用)
|
||||||
|
PURCHASE_PAYMENT_REQUEST_SHOP: 25354973072
|
Loading…
Reference in New Issue