丽知:钉钉上传文件。

This commit is contained in:
zhengyf 2024-10-24 11:35:31 +08:00
parent 4598e64e8b
commit 90b6ec01ba
7 changed files with 106 additions and 32 deletions

View File

@ -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<String> 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<String> 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<String> fileBase64s){
public JsonResultEntity pushU8CTransferBill(@RequestBody DjFileVO djFileVO){
System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8CTransferBill");
return getSuccessMessageEntity("112233445566778899");
}

View File

@ -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<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);
}

View File

@ -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<String> 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<String> fileBase64s) {
checkParameter(djzbVO,fileBase64s);
public String agency(DjFileVO djFileVO) {
checkParameter(djFileVO);
return null;
}
/** 调拨单内部交易(付款单)->特殊业务处理(新) */
@Override
public String transfer(DjzbVO djzbVO, List<String> 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<String> 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<FileModuleVO>
* @return
*/
public List<File> baseTransformFile(List<String> fileBase64s){
public List<File> baseTransformFile(List<SysFileVO> fileBase64s){
List<File> 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;
}
}

View File

@ -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());
}
}
}
}

View File

@ -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;
}

View File

@ -9,7 +9,7 @@ public class SysFileVO {
/** 文件类型 */
private String type;
/** 文件大小kb */
private Long fileSize;
private String fileSize;
/** base64编码 */
private String baseCode;
}

View File

@ -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
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