diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/PushController.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/PushController.java index a65e2643..f6d04978 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/PushController.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/PushController.java @@ -1,10 +1,13 @@ 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.vo.DjFileVO; 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.entity.JsonResultEntity; 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.ResponseBody; import org.springframework.web.bind.annotation.RestController; @@ -24,17 +27,16 @@ public class PushController extends DefaultController { /** 委外采购(付款单)->采购付款申请(新) **/ @RequestMapping(value = "U8COutSourceBill") @ResponseBody - public JsonResultEntity pushU8COutSourceBill(DjzbVO djzbVO, List fileBase64s){ - pushU8CService.outSource(djzbVO,fileBase64s); - System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8COutSourceBill"); - return getSuccessMessageEntity("112233445566778899"); + public JsonResultEntity pushU8COutSourceBill(@RequestBody DjFileVO djFileVO){ + String processInstanceId = pushU8CService.outSource(djFileVO); + return getSuccessMessageEntity(processInstanceId); } /** 代理采购(付款单)->采购付款申请(店群专用) **/ @RequestMapping(value = "U8CAgencyBill") @ResponseBody - public JsonResultEntity pushU8CAgencyBill(DjzbVO djzbVO, List fileBase64s){ + public JsonResultEntity pushU8CAgencyBill(@RequestBody DjFileVO djFileVO){ System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8CAgencyBill"); return getSuccessMessageEntity("112233445566778899"); } @@ -42,7 +44,7 @@ public class PushController extends DefaultController { /** 调拨单内部交易(付款单)->特殊业务处理(新) **/ @RequestMapping(value = "U8CTransferBill") @ResponseBody - public JsonResultEntity pushU8CTransferBill(DjzbVO djzbVO, List fileBase64s){ + public JsonResultEntity pushU8CTransferBill(@RequestBody DjFileVO djFileVO){ System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8CTransferBill"); return getSuccessMessageEntity("112233445566778899"); } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/serivce/PushU8CService.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/serivce/PushU8CService.java index 7a2c640f..b80a5cdf 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/serivce/PushU8CService.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/serivce/PushU8CService.java @@ -1,14 +1,16 @@ 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.SysFileVO; import java.util.List; public interface PushU8CService { /** 委外采购(付款单)->采购付款申请(新) **/ - public String outSource(DjzbVO djzbVO, List fileBase64s); + public String outSource(DjFileVO djFileVO); /** 代理采购(付款单)->采购付款申请(店群专用) **/ - public String agency(DjzbVO djzbVO, List fileBase64s); + public String agency(DjFileVO djFileVO); /** 调拨单内部交易(付款单)->特殊业务处理(新) **/ - public String transfer(DjzbVO djzbVO, List fileBase64s); + public String transfer(DjFileVO djFileVO); } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/serivce/impl/PushU8CServiceImpl.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/serivce/impl/PushU8CServiceImpl.java index 10f93c93..1c064f8c 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/serivce/impl/PushU8CServiceImpl.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/push/serivce/impl/PushU8CServiceImpl.java @@ -2,7 +2,12 @@ package com.hzya.frame.plugin.lets.dingtalk.push.serivce.impl; import cn.hutool.core.lang.Assert; 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.SysFileVO; +import com.hzya.frame.plugin.lets.plugin.adjust.AdjustInPluginInitializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import java.io.File; @@ -17,35 +22,45 @@ import java.util.List; @Service("PushU8CService") public class PushU8CServiceImpl implements PushU8CService { + Logger logger = LoggerFactory.getLogger(PushU8CServiceImpl.class); + + /** 委外采购(付款单)->采购付款申请(新) */ @Override - public String outSource(DjzbVO djzbVO, List fileBase64s) { - checkParameter(djzbVO,fileBase64s); - return null; + public String outSource(DjFileVO djFileVO) { + checkParameter(djFileVO); + System.out.println(djFileVO); + try{ + // + + }catch (Exception e){ + e.printStackTrace(); + logger.error("委外采购(付款单)->采购付款申请(新)报错",e); + } + return "110"; } /** 代理采购(付款单)->采购付款申请(店群专用) */ @Override - public String agency(DjzbVO djzbVO, List fileBase64s) { - checkParameter(djzbVO,fileBase64s); + public String agency(DjFileVO djFileVO) { + checkParameter(djFileVO); return null; } /** 调拨单内部交易(付款单)->特殊业务处理(新) */ @Override - public String transfer(DjzbVO djzbVO, List fileBase64s) { - checkParameter(djzbVO,fileBase64s); + public String transfer(DjFileVO djFileVO) { + checkParameter(djFileVO); return null; } /** * 检查参数,VO不能为空,文件不能空 - * @param djzbVO - * @param fileBase64s + * @param djFileVO:djzbVO+sysFileVOS */ - public void checkParameter(DjzbVO djzbVO, List fileBase64s){ - Assert.notNull(djzbVO,"u8c单据推送钉钉表单,检查参数,VO不能为空"); - if (fileBase64s.size() == 0) { + public void checkParameter(DjFileVO djFileVO){ + Assert.notNull(djFileVO.getDjzbVO(),"u8c单据推送钉钉表单,检查参数,VO不能为空"); + if (djFileVO.getSysFileVOS().size() == 0) { Assert.state(false,"u8c单据推送钉钉表单,检查参数,文件不能空"); } } @@ -55,12 +70,12 @@ public class PushU8CServiceImpl implements PushU8CService { * 将base64转为文件上传钉盘,并返回钉钉的 List * @return */ - public List baseTransformFile(List fileBase64s){ + public List baseTransformFile(List fileBase64s){ List fileList=new ArrayList<>(); - for (String fileBase64 : fileBase64s) { - // 解码Base64字符串 - byte[] decodedBytes = Base64.getDecoder().decode(fileBase64); - } +// for (String fileBase64 : fileBase64s) { +// // 解码Base64字符串 +// byte[] decodedBytes = Base64.getDecoder().decode(fileBase64); +// } return fileList; } } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/utils/DingTalkUtils.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/utils/DingTalkUtils.java index 8d97a894..2c92521b 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/utils/DingTalkUtils.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/utils/DingTalkUtils.java @@ -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.CommitFileResponse; 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.tea.TeaException; import com.aliyun.teautil.models.RuntimeOptions; @@ -559,4 +560,39 @@ public class DingTalkUtils { } 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()); + } + } + } + } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/DjFileVO.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/DjFileVO.java new file mode 100644 index 00000000..600beac0 --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/DjFileVO.java @@ -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 sysFileVOS; +} diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/SysFileVO.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/SysFileVO.java index ce749790..840335f3 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/SysFileVO.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/SysFileVO.java @@ -9,7 +9,7 @@ public class SysFileVO { /** 文件类型 */ private String type; /** 文件大小(kb) */ - private Long fileSize; + private String fileSize; /** base64编码 */ private String baseCode; } diff --git a/buildpackage/src/main/resources/application-lets.yml b/buildpackage/src/main/resources/application-lets.yml index 14561f02..14b6f02b 100644 --- a/buildpackage/src/main/resources/application-lets.yml +++ b/buildpackage/src/main/resources/application-lets.yml @@ -64,11 +64,19 @@ DING: AppSecret: BVuLOy_K0F8f5np69VuBeKdb1zfwqhuPsAV49lNbYVbx5TnfSTHjwEcad9Vwzfq1 #钉盘审批空间 SPACEID: 20852670637 - #审批表单空间 - APPROVE: + #审批模板code + 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 \ No newline at end of file + 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 \ No newline at end of file