From a51094efe875ad86aff005e0f21bec492e948cc1 Mon Sep 17 00:00:00 2001 From: zhengyf Date: Wed, 30 Oct 2024 16:26:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BD=E7=9F=A5:=E5=A7=94=E5=A4=96=E9=87=87?= =?UTF-8?q?=E8=B4=AD=EF=BC=88=E4=BB=98=E6=AC=BE=E5=8D=95=EF=BC=89->?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E4=BB=98=E6=AC=BE=E7=94=B3=E8=AF=B7(?= =?UTF-8?q?=E6=96=B0)=E3=80=81=E4=BB=A3=E7=90=86=E9=87=87=E8=B4=AD?= =?UTF-8?q?=EF=BC=88=E4=BB=98=E6=AC=BE=E5=8D=95=EF=BC=89->=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E4=BB=98=E6=AC=BE=E7=94=B3=E8=AF=B7(=E5=BA=97?= =?UTF-8?q?=E7=BE=A4=E4=B8=93=E7=94=A8)=E8=B0=83=E6=8B=A8=E5=8D=95?= =?UTF-8?q?=E5=86=85=E9=83=A8=E4=BA=A4=E6=98=93=EF=BC=88=E4=BB=98=E6=AC=BE?= =?UTF-8?q?=E5=8D=95=EF=BC=89->=E7=89=B9=E6=AE=8A=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E5=A4=84=E7=90=86(=E6=96=B0)=E3=80=82=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E9=92=89=E9=92=89=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lets/dingtalk/dao/IDingU8cBillDao.java | 15 + .../dingtalk/dao/impl/DingU8cBillDaoImpl.java | 17 + .../dingtalk/entity/DingU8cBillEntity.java | 38 ++ .../dingtalk/entity/DingU8cBillEntity.xml | 229 +++++++++++ .../lets/dingtalk/push/PushController.java | 23 +- .../push/serivce/impl/PushU8CServiceImpl.java | 379 ++++++++++++++---- .../dingtalk/service/IDingU8cBillService.java | 12 + .../service/impl/DingU8cBillServiceImpl.java | 26 ++ .../frame/plugin/lets/dingtalk/vo/DjzbVO.java | 51 ++- 9 files changed, 689 insertions(+), 101 deletions(-) create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/dao/IDingU8cBillDao.java create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/dao/impl/DingU8cBillDaoImpl.java create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/entity/DingU8cBillEntity.java create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/entity/DingU8cBillEntity.xml create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/service/IDingU8cBillService.java create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/service/impl/DingU8cBillServiceImpl.java diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/dao/IDingU8cBillDao.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/dao/IDingU8cBillDao.java new file mode 100644 index 00000000..aa17b382 --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/dao/IDingU8cBillDao.java @@ -0,0 +1,15 @@ +package com.hzya.frame.plugin.lets.dingtalk.dao; + +import com.hzya.frame.plugin.lets.dingtalk.entity.DingU8cBillEntity; +import com.hzya.frame.basedao.dao.IBaseDao; + +/** + * (ding_u8c_bill: table)表数据库访问层 + * + * @author makejava + * @since 2024-10-28 15:45:32 + */ +public interface IDingU8cBillDao extends IBaseDao { + +} + diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/dao/impl/DingU8cBillDaoImpl.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/dao/impl/DingU8cBillDaoImpl.java new file mode 100644 index 00000000..d408e594 --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/dao/impl/DingU8cBillDaoImpl.java @@ -0,0 +1,17 @@ +package com.hzya.frame.plugin.lets.dingtalk.dao.impl; + +import com.hzya.frame.plugin.lets.dingtalk.entity.DingU8cBillEntity; +import com.hzya.frame.plugin.lets.dingtalk.dao.IDingU8cBillDao; +import org.springframework.stereotype.Repository; +import com.hzya.frame.basedao.dao.MybatisGenericDao; +/** + * (DingU8cBill)表数据库访问层 + * + * @author makejava + * @since 2024-10-28 15:45:32 + */ +@Repository("dingU8cBillDao") +public class DingU8cBillDaoImpl extends MybatisGenericDao implements IDingU8cBillDao{ + +} + diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/entity/DingU8cBillEntity.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/entity/DingU8cBillEntity.java new file mode 100644 index 00000000..cb7a4e21 --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/entity/DingU8cBillEntity.java @@ -0,0 +1,38 @@ +package com.hzya.frame.plugin.lets.dingtalk.entity; + +import java.util.Date; +import com.hzya.frame.web.entity.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * (DingU8cBill)实体类 + * + * @author makejava + * @since 2024-10-28 15:45:32 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DingU8cBillEntity extends BaseEntity { + + /** 公司主键 */ + private String u8cPkCorp; + /** 公司编码 */ + private String u8cCodeCorp; + /** u8c单据类型 */ + private String u8cBillType; + /** u8c单据号 */ + private String u8cBillCode; + /** u8c单据主键 */ + private String u8cBillId; + /** 是否推送成功 */ + private String pushStatus; + /** 推送日志 */ + private String pushInfo; + /** 钉钉审批实例id */ + private String dingTalkProcessId; + +} + diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/entity/DingU8cBillEntity.xml b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/entity/DingU8cBillEntity.xml new file mode 100644 index 00000000..d384661e --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/entity/DingU8cBillEntity.xml @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + id + ,u8c_pk_corp + ,u8c_code_corp + ,u8c_bill_type + ,u8c_bill_code + ,u8c_bill_id + ,push_status + ,push_info + ,ding_talk_process_id + ,modify_time + ,create_time + ,sts + + + + + + + + + + + + + + + + insert into ding_u8c_bill( + + id , + u8c_pk_corp , + u8c_code_corp , + u8c_bill_type , + u8c_bill_code , + u8c_bill_id , + push_status , + push_info , + ding_talk_process_id , + modify_time , + create_time , + sts , + sts, + + )values( + + #{id} , + #{u8cPkCorp} , + #{u8cCodeCorp} , + #{u8cBillType} , + #{u8cBillCode} , + #{u8cBillId} , + #{pushStatus} , + #{pushInfo} , + #{dingTalkProcessId} , + #{modify_time} , + #{create_time} , + #{sts} , + 'Y', + + ) + + + + insert into ding_u8c_bill(u8c_pk_corp, u8c_code_corp, u8c_bill_type, u8c_bill_code, u8c_bill_id, push_status, push_info, ding_talk_process_id, modify_time, create_time, sts, sts) + values + + (#{entity.u8cPkCorp},#{entity.u8cCodeCorp},#{entity.u8cBillType},#{entity.u8cBillCode},#{entity.u8cBillId},#{entity.pushStatus},#{entity.pushInfo},#{entity.dingTalkProcessId},#{entity.modify_time},#{entity.create_time},#{entity.sts}, 'Y') + + + + + insert into ding_u8c_bill(u8c_pk_corp, u8c_code_corp, u8c_bill_type, u8c_bill_code, u8c_bill_id, push_status, push_info, ding_talk_process_id, modify_time, create_time, sts) + values + + (#{entity.u8cPkCorp},#{entity.u8cCodeCorp},#{entity.u8cBillType},#{entity.u8cBillCode},#{entity.u8cBillId},#{entity.pushStatus},#{entity.pushInfo},#{entity.dingTalkProcessId},#{entity.modify_time},#{entity.create_time},#{entity.sts}) + + on duplicate key update + u8c_pk_corp = values(u8c_pk_corp), + u8c_code_corp = values(u8c_code_corp), + u8c_bill_type = values(u8c_bill_type), + u8c_bill_code = values(u8c_bill_code), + u8c_bill_id = values(u8c_bill_id), + push_status = values(push_status), + push_info = values(push_info), + ding_talk_process_id = values(ding_talk_process_id), + modify_time = values(modify_time), + create_time = values(create_time), + sts = values(sts) + + +update ding_u8c_bill set + + u8c_pk_corp = #{u8cPkCorp}, + u8c_code_corp = #{u8cCodeCorp}, + u8c_bill_type = #{u8cBillType}, + u8c_bill_code = #{u8cBillCode}, + u8c_bill_id = #{u8cBillId}, + push_status = #{pushStatus}, + push_info = #{pushInfo}, + ding_talk_process_id = #{dingTalkProcessId}, + modify_time = #{modify_time}, + create_time = #{create_time}, + sts = #{sts}, + +where id = #{id} + + + +update ding_u8c_bill set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} +where id = #{id} + + + +update ding_u8c_bill set sts= 'N' ,modify_time = #{modify_time},modify_user_id = #{modify_user_id} + + and id = #{id} + and u8c_pk_corp = #{u8cPkCorp} + and u8c_code_corp = #{u8cCodeCorp} + and u8c_bill_type = #{u8cBillType} + and u8c_bill_code = #{u8cBillCode} + and u8c_bill_id = #{u8cBillId} + and push_status = #{pushStatus} + and push_info = #{pushInfo} + and ding_talk_process_id = #{dingTalkProcessId} + and sts = #{sts} + and sts='Y' + + + + + delete from ding_u8c_bill where id = #{id} + + + + 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 844999fd..042baede 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 @@ -24,27 +24,36 @@ public class PushController extends DefaultController { @Autowired private PushU8CService pushU8CService; - /** 委外采购(付款单)->采购付款申请(新) **/ + /** 委外采购(付款单)->采购付款申请(新) **/ @RequestMapping(value = "U8COutSourceBill") @ResponseBody public JsonResultEntity pushU8COutSourceBill(@RequestBody DjFileVO djFileVO){ String processInstanceId = pushU8CService.outSource(djFileVO); + if("".equals(processInstanceId)){ + return getFailureMessageEntity(null); + } return getSuccessMessageEntity(processInstanceId); } - /** 代理采购(付款单)->采购付款申请(店群专用) **/ + /** 代理采购(付款单)->采购付款申请(店群专用) **/ @RequestMapping(value = "U8CAgencyBill") @ResponseBody public JsonResultEntity pushU8CAgencyBill(@RequestBody DjFileVO djFileVO){ - System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8CAgencyBill"); - return getSuccessMessageEntity("112233445566778899"); + String processInstanceId = pushU8CService.agency(djFileVO); + if("".equals(processInstanceId)){ + return getFailureMessageEntity(null); + } + return getSuccessMessageEntity(processInstanceId); } - /** 调拨单内部交易(付款单)->特殊业务处理(新) **/ + /** 调拨单内部交易(付款单)->特殊业务处理(新) **/ @RequestMapping(value = "U8CTransferBill") @ResponseBody public JsonResultEntity pushU8CTransferBill(@RequestBody DjFileVO djFileVO){ - System.out.println("com.hzya.frame.plugin.lets.dingtalk.push.pushController.pushU8CTransferBill"); - return getSuccessMessageEntity("112233445566778899"); + String processInstanceId = pushU8CService.transfer(djFileVO); + if("".equals(processInstanceId)){ + return getFailureMessageEntity(null); + } + return getSuccessMessageEntity(processInstanceId); } } 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 10f3e11a..ce57b839 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 @@ -6,8 +6,11 @@ import cn.hutool.json.JSONUtil; import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponseBody; import com.aliyun.dingtalkworkflow_1_0.models.StartProcessInstanceRequest; import com.aliyun.dingtalkworkflow_1_0.models.StartProcessInstanceResponse; +import com.dingtalk.api.response.OapiV2DepartmentGetResponse; import com.dingtalk.api.response.OapiV2UserGetResponse; import com.dingtalk.api.response.OapiV2UserGetbymobileResponse; +import com.hzya.frame.plugin.lets.dingtalk.dao.IDingU8cBillDao; +import com.hzya.frame.plugin.lets.dingtalk.entity.DingU8cBillEntity; import com.hzya.frame.plugin.lets.dingtalk.push.serivce.PushU8CService; import com.hzya.frame.plugin.lets.dingtalk.utils.DingTalkUtils; import com.hzya.frame.plugin.lets.dingtalk.utils.FileUtil; @@ -15,6 +18,7 @@ import com.hzya.frame.plugin.lets.dingtalk.vo.*; import com.hzya.frame.plugin.lets.plugin.adjust.AdjustInPluginInitializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -27,6 +31,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Base64; +import java.util.Date; import java.util.List; /** @@ -65,82 +70,133 @@ public class PushU8CServiceImpl implements PushU8CService { @Value("${DING.APPROVE_FOLDER_SPACE.PURCHASE_PAYMENT_REQUEST_SHOP}") private String PURCHASE_PAYMENT_REQUEST_SHOP_FOLDER; - Logger logger = LoggerFactory.getLogger(PushU8CServiceImpl.class); - /** 委外采购(付款单)->采购付款申请(新) */ + /** + * 委外采购(付款单)->采购付款申请(新) + */ @Override public String outSource(DjFileVO djFileVO) { + String instanceId = ""; //校验参数 - checkParameter(djFileVO); - try{ + try { + checkParameter(djFileVO); //获取钉钉参数 GetAccessTokenResponseBody tokenBody = DingTalkUtils.getTokenBody(APPKEY, AppSecret); //制单人的钉钉unionid:通过手机号获取钉钉的userid在获取unionid 13783530043 - OapiV2UserGetbymobileResponse userByMobile = DingTalkUtils.getUserByMobile(tokenBody.getAccessToken(), "13783530043"); + if (djFileVO.getDjzbVO().getParentvo().getLrr_code() == null || "".equals(djFileVO.getDjzbVO().getParentvo().getLrr_code())) { + Assert.state(false, "录入人手机号为空!!!"); + } + OapiV2UserGetbymobileResponse userByMobile = DingTalkUtils.getUserByMobile(tokenBody.getAccessToken(), djFileVO.getDjzbVO().getParentvo().getLrr_code()); String userid = userByMobile.getResult().getUserid(); OapiV2UserGetResponse userById = DingTalkUtils.getUserById(tokenBody.getAccessToken(), userid); String unionid = userById.getResult().getUnionid(); - //base转文件流-上传钉盘-拿到钉盘信息。可能是List集合 - List fileModuleVOList = baseTransformFile2uploadDing(djFileVO.getSysFileVOS(),tokenBody.getAccessToken(),unionid,SPACEID,PURCHASE_PAYMENT_REQUEST_NEW_FOLDER); - System.out.println(fileModuleVOList); + List fileModuleVOList = baseTransformFile2uploadDing(djFileVO.getSysFileVOS(), tokenBody.getAccessToken(), unionid, SPACEID, PURCHASE_PAYMENT_REQUEST_NEW_FOLDER); //推送钉钉--》发起审批实例 - excuteDingTalkOutSource(tokenBody.getAccessToken(),PURCHASE_PAYMENT_REQUEST_NEW,djFileVO.getDjzbVO(),fileModuleVOList); + instanceId = excuteDingTalkOutSource(tokenBody.getAccessToken(), userid, PURCHASE_PAYMENT_REQUEST_NEW, djFileVO.getDjzbVO(), fileModuleVOList); - - - - }catch (Exception e){ - e.printStackTrace(); - logger.error("委外采购(付款单)->采购付款申请(新)报错",e); + } catch (Exception e) { + logger.error("委外采购(付款单)->采购付款申请(新)报错", e); } - return "110"; + return instanceId; } - /** 代理采购(付款单)->采购付款申请(店群专用) */ + /** + * 代理采购(付款单)->采购付款申请(店群专用) + */ @Override public String agency(DjFileVO djFileVO) { - checkParameter(djFileVO); - return null; + String instanceId = ""; + try { + checkParameter(djFileVO); + //获取钉钉参数 + GetAccessTokenResponseBody tokenBody = DingTalkUtils.getTokenBody(APPKEY, AppSecret); + //制单人的钉钉unionid:通过手机号获取钉钉的userid在获取unionid 13783530043 + if (djFileVO.getDjzbVO().getParentvo().getLrr_code() == null || "".equals(djFileVO.getDjzbVO().getParentvo().getLrr_code())) { + Assert.state(false, "录入人手机号为空!!!"); + } + //制单人的钉钉unionid:通过手机号获取钉钉的userid在获取unionid 13783530043 + OapiV2UserGetbymobileResponse userByMobile = DingTalkUtils.getUserByMobile(tokenBody.getAccessToken(), djFileVO.getDjzbVO().getParentvo().getLrr_code()); + String userid = userByMobile.getResult().getUserid(); + OapiV2UserGetResponse userById = DingTalkUtils.getUserById(tokenBody.getAccessToken(), userid); + String unionid = userById.getResult().getUnionid(); + + //base转文件流-上传钉盘-拿到钉盘信息。可能是List集合 + List fileModuleVOList = baseTransformFile2uploadDing(djFileVO.getSysFileVOS(), tokenBody.getAccessToken(), unionid, SPACEID, PURCHASE_PAYMENT_REQUEST_SHOP_FOLDER); + + //推送钉钉--》发起审批实例 + instanceId = excuteDingTalkAgency(tokenBody.getAccessToken(), userid, PURCHASE_PAYMENT_REQUEST_SHOP, djFileVO.getDjzbVO(), fileModuleVOList); + + + } catch (Exception e) { + logger.error("代理采购(付款单)->采购付款申请(店群专用)报错", e); + } + return instanceId; } - /** 调拨单内部交易(付款单)->特殊业务处理(新) */ + /** + * 调拨单内部交易(付款单)->特殊业务处理(新) + */ @Override public String transfer(DjFileVO djFileVO) { - checkParameter(djFileVO); - return null; + String instanceId = ""; + try { + checkParameter(djFileVO); + //获取钉钉参数 + GetAccessTokenResponseBody tokenBody = DingTalkUtils.getTokenBody(APPKEY, AppSecret); + //制单人的钉钉unionid:通过手机号获取钉钉的userid在获取unionid 13783530043 + if (djFileVO.getDjzbVO().getParentvo().getLrr_code() == null || "".equals(djFileVO.getDjzbVO().getParentvo().getLrr_code())) { + Assert.state(false, "录入人手机号为空!!!"); + } + //制单人的钉钉unionid:通过手机号获取钉钉的userid在获取unionid 13783530043 + OapiV2UserGetbymobileResponse userByMobile = DingTalkUtils.getUserByMobile(tokenBody.getAccessToken(), djFileVO.getDjzbVO().getParentvo().getLrr_code()); + String userid = userByMobile.getResult().getUserid(); + OapiV2UserGetResponse userById = DingTalkUtils.getUserById(tokenBody.getAccessToken(), userid); + String unionid = userById.getResult().getUnionid(); + //base转文件流-上传钉盘-拿到钉盘信息。可能是List集合 + List fileModuleVOList = baseTransformFile2uploadDing(djFileVO.getSysFileVOS(), tokenBody.getAccessToken(), unionid, SPACEID, SPECIAL_SERVICE_PROCESSING_FOLDER); + + //推送钉钉--》发起审批实例 + instanceId = excuteDingTalkTransfer(tokenBody.getAccessToken(), userid, SPECIAL_SERVICE_PROCESSING, djFileVO.getDjzbVO(), fileModuleVOList); + + } catch (Exception e) { + logger.error("调拨单内部交易(付款单)->特殊业务处理(新)报错", e); + } + return instanceId; } /** * 检查参数,VO不能为空,文件不能空 + * * @param djFileVO:djzbVO+sysFileVOS */ - public void checkParameter(DjFileVO djFileVO){ - Assert.notNull(djFileVO.getDjzbVO(),"u8c单据推送钉钉表单,检查参数,VO不能为空"); + public void checkParameter(DjFileVO djFileVO) { + Assert.notNull(djFileVO.getDjzbVO(), "u8c单据推送钉钉表单,检查参数,VO不能为空"); if (djFileVO.getSysFileVOS().size() == 0) { - Assert.state(false,"u8c单据推送钉钉表单,检查参数,文件不能空"); + Assert.state(false, "u8c单据推送钉钉表单,检查参数,文件不能空"); } } /** * 文件转换 * 将base64转为文件流上传钉盘,并返回钉钉的 List + * * @Param fileVOS 文件集合 * @Param token token * @Param unionid unionid * @Param spaceId 空间信息 * @Param dingFileUrlID 钉盘审批实例中附件地址 */ - public List baseTransformFile2uploadDing(List fileVOS,String token,String unionid,String spaceId,String dingFileUrlID) throws IOException { - List fileModuleVOList=new ArrayList<>(); + public List baseTransformFile2uploadDing(List fileVOS, String token, String unionid, String spaceId, String dingFileUrlID) throws IOException { + List fileModuleVOList = new ArrayList<>(); for (SysFileVO fileVO : fileVOS) { // 指定输出文件路径 - Path outputPath = Paths.get(fileVO.getFileName()+"."+fileVO.getType()); + Path outputPath = Paths.get(fileVO.getFileName() + "." + fileVO.getType()); // 1. 解码Base64字符串并写入文件 byte[] decodedBytes = Base64.getDecoder().decode(fileVO.getBaseCode()); Files.write(outputPath, decodedBytes); @@ -153,7 +209,7 @@ public class PushU8CServiceImpl implements PushU8CService { while ((bytesRead = inputStream.read(buffer)) != -1) { byteArrayOutputStream.write(buffer, 0, bytesRead); } - }catch(Exception e){ + } catch (Exception e) { e.printStackTrace(); } // 3. 打印ByteArrayOutputStream的内容(可选) @@ -166,62 +222,66 @@ public class PushU8CServiceImpl implements PushU8CService { return fileModuleVOList; } - /**\ + + @Autowired + private IDingU8cBillDao dingU8cBillDao; + + /** * 委外采购(付款单)->采购付款申请(新):推送钉钉审批实例 - * @param accessToken token - * @param processCode 钉钉模板Code - * @param djzbVO U8C单据VO + * + * @param accessToken token + * @param userId userId + * @param processCode 钉钉模板Code + * @param djzbVO U8C单据VO * @param fileModuleVOList 钉钉文件信息,用于上传审批实例使用 */ - public void excuteDingTalkOutSource(String accessToken,String processCode,DjzbVO djzbVO,List fileModuleVOList) throws Exception { + public String excuteDingTalkOutSource(String accessToken, String userId, String processCode, DjzbVO djzbVO, List fileModuleVOList) throws Exception { + + DjzbVO.Arap_djzb parentvo = djzbVO.getParentvo(); + List childrens = djzbVO.getChildren(); + String instanceId = ""; try { - DjzbVO.Arap_djzb parentvo = djzbVO.getParentvo(); - List childrens = djzbVO.getChildren(); - - //公司 - //部门 - //发起人 - + //部门查询 + Long dingDeptId = queryDingDeptId(parentvo.getDeptid_name(), accessToken, userId); + if (dingDeptId == null) { + Assert.state(false, "根据u8c部门查询钉钉部门失败,可能该录入人:{},不在钉钉部门:{} 下。", parentvo.getLrr_name(), parentvo.getDeptid_name()); + } //formComponentValues-->表单数据内容,控件列表,最大列表长度:150。 List form = new ArrayList<>(); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用归属公司").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用归属部门(选择至末级部门)").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("品牌").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用所属类目").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("付款类型").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("付款比例").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("类目所属(供应链)").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("项目编号").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("项目名称").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("类型").setValue("1")); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用归属公司").setValue(parentvo.getDwbm_name())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用归属部门(选择至末级部门)").setValue(parentvo.getDeptid_name())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("品牌").setValue(parentvo.getPinpai())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用所属类目").setValue(parentvo.getBusitypename())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("付款类型").setValue(parentvo.getPrepay())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("付款比例").setValue(parentvo.getFkbl())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("类目所属(供应链)").setValue("供应链类")); +// form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("项目编号").setValue("1")); +// form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("项目名称").setValue("1")); +// form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("类型").setValue("1")); //列表 List> dingTableVOSMaterialList = new ArrayList<>(); for (DjzbVO.Arap_djfb children : childrens) { List dingTableVOS = new ArrayList<>(); - dingTableVOS.add(new DingTableVO("存货分类", "2")); - dingTableVOS.add(new DingTableVO("产品名称", "2")); - dingTableVOS.add(new DingTableVO("产品数量", "2")); - dingTableVOS.add(new DingTableVO("付款金额(元)", "665")); - dingTableVOS.add(new DingTableVO("税率", "13")); +// dingTableVOS.add(new DingTableVO("存货分类", "存货分类")); + dingTableVOS.add(new DingTableVO("产品名称", children.getCinventoryid_name())); + dingTableVOS.add(new DingTableVO("产品数量", children.getDfshl())); + dingTableVOS.add(new DingTableVO("付款金额(元)", children.getBbye())); + dingTableVOS.add(new DingTableVO("税率", children.getSl())); dingTableVOSMaterialList.add(dingTableVOS); } form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("付款明细").setValue(JSONUtil.toJsonStr(dingTableVOSMaterialList))); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("开票抬头").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("开票方").setValue("1")); +// form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("开票抬头").setValue(parentvo.getDwname())); +// form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("开票方").setValue(parentvo.getCustname())); form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("对方类型").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("支付方式-银行").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("银行支行名称").setValue("1")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("申请支付日期").setValue("2024-10-27")); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("备注").setValue("1")); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("支付方式-银行").setValue(parentvo.getAccountname() + parentvo.getAccount() + parentvo.getBanktypename())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("银行支行名称").setValue(parentvo.getBankdocname())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("申请支付日期").setValue(parentvo.getDjrq())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("备注").setValue(parentvo.getScomment())); //附件 -// form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("上传相关附件(业务相关证明、关联原合同审批件)").setValue(JSONUtil.toJsonStr(fileModuleVOList))); -// form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setComponentType("DDAttachment").setId("DDAttachment_1PDRXW3QT4G00").setName("上传相关附件(业务相关证明、关联原合同审批件)").setValue(JSONUtil.toJsonStr(fileModuleVOList))); - form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setComponentType("DDAttachment").setId("DDAttachment_1PDRXW3QT4G00").setName("上传相关附件").setValue(JSONUtil.toJsonStr(fileModuleVOList))); - - + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setComponentType("DDAttachment").setId("DDAttachment_1PDRXW3QT4G00").setName("上传相关附件(业务相关证明、关联原合同审批件)").setValue(JSONUtil.toJsonStr(fileModuleVOList))); /** * 推送钉钉--》发起审批实例 * accessToken--> @@ -232,29 +292,192 @@ public class PushU8CServiceImpl implements PushU8CService { * approvers-->不使用审批流模板时,直接指定的审批人列表,最大列表长度:20。 * formComponentValues-->表单数据内容,控件列表,最大列表长度:150。 */ - StartProcessInstanceResponse startProcessInstanceResponse = DingTalkUtils.InitiateApprovalInstance(accessToken, "6715600736721738", processCode, -1L, Long.valueOf(U8C_TEST_AGENTID), null, form); + StartProcessInstanceResponse startProcessInstanceResponse = DingTalkUtils.InitiateApprovalInstance(accessToken, userId, processCode, dingDeptId, Long.valueOf(U8C_TEST_AGENTID), null, form); JSONObject jsonObject = JSONUtil.parseObj(startProcessInstanceResponse); String statusCode = jsonObject.get("statusCode").toString(); - if (statusCode!=null&&!statusCode.equals("200")) { + if (statusCode != null && !statusCode.equals("200")) { Assert.state(false, "委外采购(付款单)->采购付款申请(新):推送钉钉审批实例失败。失败原因:{}", JSONUtil.toJsonStr(jsonObject.get("body"))); } logger.info("推送钉钉-->发起审批实例:委外采购(付款单)->采购付款申请(新)-->执行成功"); //审批实例id - String instanceId = JSONUtil.parseObj(jsonObject.get("body")).get("instanceId").toString(); - System.out.println(instanceId); + instanceId = JSONUtil.parseObj(jsonObject.get("body")).get("instanceId").toString(); //记录成功记录 + DingU8cBillEntity dingU8cBillEntity = new DingU8cBillEntity(parentvo.getDwbm(), parentvo.getDwbm_code(), parentvo.getBusitypecode(), parentvo.getDjbh(), parentvo.getVouchid(), "Y", "success", instanceId); + dingU8cBillEntity.setCreate_time(new Date()); + try { + dingU8cBillDao.save(dingU8cBillEntity); + } catch (Exception e) { + DingU8cBillEntity dingU8cBillEntity1 = new DingU8cBillEntity(); + dingU8cBillEntity1.setU8cPkCorp(parentvo.getDwbm()); + dingU8cBillEntity1.setU8cCodeCorp(parentvo.getDwbm_code()); + dingU8cBillEntity1.setU8cBillType(parentvo.getBusitypecode()); + dingU8cBillEntity1.setU8cBillCode(parentvo.getDjbh()); + dingU8cBillEntity1.setU8cBillId(parentvo.getVouchid()); + dingU8cBillEntity1.setPushStatus("Y"); + dingU8cBillEntity1.setPushInfo(e.getMessage()); + dingU8cBillEntity1.setDingTalkProcessId(instanceId); + dingU8cBillEntity1.setCreate_time(new Date()); + dingU8cBillDao.save(dingU8cBillEntity1); + } + return instanceId; - - - }catch (Exception e){ + } catch (Exception e) { logger.error(e.getMessage()); - e.printStackTrace(); + //记录失败记录 + DingU8cBillEntity dingU8cBillEntity = new DingU8cBillEntity(parentvo.getDwbm(), parentvo.getDwbm_code(), parentvo.getBusitypecode(), parentvo.getDjbh(), parentvo.getVouchid(), "N", e.getMessage(), null); + dingU8cBillEntity.setCreate_time(new Date()); + try { + dingU8cBillDao.save(dingU8cBillEntity); + } catch (Exception e1) { + DingU8cBillEntity dingU8cBillEntity1 = new DingU8cBillEntity(); + dingU8cBillEntity1.setU8cPkCorp(parentvo.getDwbm()); + dingU8cBillEntity1.setU8cCodeCorp(parentvo.getDwbm_code()); + dingU8cBillEntity1.setU8cBillType(parentvo.getBusitypecode()); + dingU8cBillEntity1.setU8cBillCode(parentvo.getDjbh()); + dingU8cBillEntity1.setU8cBillId(parentvo.getVouchid()); + dingU8cBillEntity1.setPushStatus("N"); + dingU8cBillEntity1.setPushInfo(e.getMessage()); + dingU8cBillEntity1.setDingTalkProcessId(null); + dingU8cBillEntity1.setCreate_time(new Date()); + dingU8cBillDao.save(dingU8cBillEntity1); + } } - - - + return null; } + + /** + * 代理采购(付款单)->采购付款申请(店群专用) + */ + public String excuteDingTalkAgency(String accessToken, String userId, String processCode, DjzbVO djzbVO, List fileModuleVOList) throws Exception { + DjzbVO.Arap_djzb parentvo = djzbVO.getParentvo(); + List childrens = djzbVO.getChildren(); + String instanceId = ""; + try { + //部门查询 + Long dingDeptId = queryDingDeptId(parentvo.getDeptid_name(), accessToken, userId); + if (dingDeptId == null) { + Assert.state(false, "根据u8c部门查询钉钉部门失败,可能该录入人:{},不在钉钉部门:{} 下。", parentvo.getLrr_name(), parentvo.getDeptid_name()); + } + //formComponentValues-->表单数据内容,控件列表,最大列表长度:150。 + List form = new ArrayList<>(); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用归属公司").setValue(parentvo.getDwbm_name())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用归属部门(选择至末级部门)").setValue(parentvo.getDeptid_name())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("项目所属类目").setValue("红人代运营"));//固定值 + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用所属类目").setValue("运营类"));//固定值 + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("总价").setValue(parentvo.getNtaxpricemny())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("实际应支付金额").setValue(parentvo.getBbje())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("归档编号").setValue(parentvo.getGdbh())); +// form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("备注").setValue(parentvo.getScomment())); + //附件 + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setComponentType("DDAttachment").setId("DDAttachment_D7JK56572Y00").setName("附件").setValue(JSONUtil.toJsonStr(fileModuleVOList))); + + //推送钉钉审批实例 + StartProcessInstanceResponse startProcessInstanceResponse = DingTalkUtils.InitiateApprovalInstance(accessToken, userId, processCode, dingDeptId, Long.valueOf(U8C_TEST_AGENTID), null, form); + JSONObject jsonObject = JSONUtil.parseObj(startProcessInstanceResponse); + String statusCode = jsonObject.get("statusCode").toString(); + if (statusCode != null && !statusCode.equals("200")) { + Assert.state(false, "代理采购(付款单)->采购付款申请(店群专用):推送钉钉审批实例失败。失败原因:{}", JSONUtil.toJsonStr(jsonObject.get("body"))); + } + logger.info("推送钉钉-->发起审批实例:代理采购(付款单)->采购付款申请(店群专用)-->执行成功"); + + instanceId = JSONUtil.parseObj(jsonObject.get("body")).get("instanceId").toString(); + + //记录成功记录 + DingU8cBillEntity dingU8cBillEntity = new DingU8cBillEntity(parentvo.getDwbm(), parentvo.getDwbm_code(), parentvo.getBusitypecode(), parentvo.getDjbh(), parentvo.getVouchid(), "Y", "success", instanceId); + dingU8cBillEntity.setCreate_time(new Date()); + dingU8cBillDao.save(dingU8cBillEntity); + + return instanceId; + + } catch (Exception e) { + logger.error(e.getMessage()); + //记录失败记录 + DingU8cBillEntity dingU8cBillEntity = new DingU8cBillEntity(parentvo.getDwbm(), parentvo.getDwbm_code(), parentvo.getBusitypecode(), parentvo.getDjbh(), parentvo.getVouchid(), "N", e.getMessage(), null); + dingU8cBillEntity.setCreate_time(new Date()); + dingU8cBillDao.save(dingU8cBillEntity); + } + return instanceId; + } + + /** + * 调拨单内部交易(付款单)->特殊业务处理(新) + */ + public String excuteDingTalkTransfer(String accessToken, String userId, String processCode, DjzbVO djzbVO, List fileModuleVOList) throws Exception { + DjzbVO.Arap_djzb parentvo = djzbVO.getParentvo(); + List childrens = djzbVO.getChildren(); + String instanceId = ""; + try { + //部门查询 + Long dingDeptId = queryDingDeptId(parentvo.getDeptid_name(), accessToken, userId); + if (dingDeptId == null) { + Assert.state(false, "根据u8c部门查询钉钉部门失败,可能该录入人:{},不在钉钉部门:{} 下。", parentvo.getLrr_name(), parentvo.getDeptid_name()); + } + //formComponentValues-->表单数据内容,控件列表,最大列表长度:150。 + List form = new ArrayList<>(); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用所属公司").setValue(parentvo.getDwbm_name())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用所属部门").setValue(parentvo.getDeptid_name())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("项目所属类目").setValue("综合"));//固定值 + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("费用所属项目").setValue("内部往来"));//固定值 + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("申请事由").setValue(parentvo.getScomment())); + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("申请金额(元)").setValue(parentvo.getBbje())); +// form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setName("备注").setValue(parentvo.getScomment())); + //附件 + form.add(new StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues().setComponentType("DDAttachment").setId("DDAttachment_1XN8VWYAKBTS0").setName("附件").setValue(JSONUtil.toJsonStr(fileModuleVOList))); + //推送钉钉审批实例 + StartProcessInstanceResponse startProcessInstanceResponse = DingTalkUtils.InitiateApprovalInstance(accessToken, userId, processCode, dingDeptId, Long.valueOf(U8C_TEST_AGENTID), null, form); + JSONObject jsonObject = JSONUtil.parseObj(startProcessInstanceResponse); + String statusCode = jsonObject.get("statusCode").toString(); + if (statusCode != null && !statusCode.equals("200")) { + Assert.state(false, "调拨单内部交易(付款单)->特殊业务处理(新):推送钉钉审批实例失败。失败原因:{}", JSONUtil.toJsonStr(jsonObject.get("body"))); + } + logger.info("推送钉钉-->发起审批实例:调拨单内部交易(付款单)->特殊业务处理(新)-->执行成功"); + + instanceId = JSONUtil.parseObj(jsonObject.get("body")).get("instanceId").toString(); + + //记录成功记录 + DingU8cBillEntity dingU8cBillEntity = new DingU8cBillEntity(parentvo.getDwbm(), parentvo.getDwbm_code(), parentvo.getBusitypecode(), parentvo.getDjbh(), parentvo.getVouchid(), "Y", "success", instanceId); + dingU8cBillEntity.setCreate_time(new Date()); + dingU8cBillDao.save(dingU8cBillEntity); + + } catch (Exception e) { + logger.error(e.getMessage()); + //记录失败记录 + DingU8cBillEntity dingU8cBillEntity = new DingU8cBillEntity(parentvo.getDwbm(), parentvo.getDwbm_code(), parentvo.getBusitypecode(), parentvo.getDjbh(), parentvo.getVouchid(), "N", e.getMessage(), null); + dingU8cBillEntity.setCreate_time(new Date()); + dingU8cBillDao.save(dingU8cBillEntity); + } + + return instanceId; + } + + + /** + * 查询钉钉部门 + * + * @return 钉钉部门id + * @Param u8cDeptName u8c部门名称 + * @Param token + * @Param userId + */ + public Long queryDingDeptId(String u8cDeptName, String token, String userId) { + try { + Assert.notNull(u8cDeptName, "查询钉钉部门u8c部门名称不能为空!!!"); + OapiV2UserGetResponse user = DingTalkUtils.getUserById(token, userId); + List deptIdList = user.getResult().getDeptIdList(); + //查询钉钉部门 + for (Long deptId : deptIdList) { + OapiV2DepartmentGetResponse dingDept = DingTalkUtils.getDeptByDeptId(token, deptId); + String dingDeptName = dingDept.getResult().getName(); + if (u8cDeptName.equals(dingDeptName)) { + return deptId; + } + } + } catch (Exception e) { + logger.error(e.getMessage()); + } + return null; + } } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/service/IDingU8cBillService.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/service/IDingU8cBillService.java new file mode 100644 index 00000000..7d0840c3 --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/service/IDingU8cBillService.java @@ -0,0 +1,12 @@ +package com.hzya.frame.plugin.lets.dingtalk.service; + +import com.hzya.frame.plugin.lets.dingtalk.entity.DingU8cBillEntity; +import com.hzya.frame.basedao.service.IBaseService; +/** + * (DingU8cBill)表服务接口 + * + * @author makejava + * @since 2024-10-28 15:45:32 + */ +public interface IDingU8cBillService extends IBaseService{ +} diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/service/impl/DingU8cBillServiceImpl.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/service/impl/DingU8cBillServiceImpl.java new file mode 100644 index 00000000..a43be9da --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/service/impl/DingU8cBillServiceImpl.java @@ -0,0 +1,26 @@ +package com.hzya.frame.plugin.lets.dingtalk.service.impl; + +import com.hzya.frame.plugin.lets.dingtalk.entity.DingU8cBillEntity; +import com.hzya.frame.plugin.lets.dingtalk.dao.IDingU8cBillDao; +import com.hzya.frame.plugin.lets.dingtalk.service.IDingU8cBillService; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; +import com.hzya.frame.basedao.service.impl.BaseService; +/** + * (DingU8cBill)表服务实现类 + * + * @author makejava + * @since 2024-10-28 15:45:32 + */ +@Service(value = "dingU8cBillServiceImpl") +public class DingU8cBillServiceImpl extends BaseService implements IDingU8cBillService { + + private IDingU8cBillDao dingU8cBillDao; + + @Autowired + public void setDingU8cBillDao(IDingU8cBillDao dao) { + this.dingU8cBillDao = dao; + this.dao = dao; + } +} diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/DjzbVO.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/DjzbVO.java index 1cb1eecf..14dec50a 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/DjzbVO.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/dingtalk/vo/DjzbVO.java @@ -15,7 +15,30 @@ public class DjzbVO { @Data public static class Arap_djzb { - private String bbje;//本币金额合计 + private String bbje;//本币金额合计、实际应支付金额 or 申请金额(元) + private String busitypecode;//单据类型编码 + private String busitypename;//单据类型名称、费用所属类目 + private String deptid_code;//部门编码 + private String deptid_name;//部门名称 + private String dwbm_code;//公司编码 + private String dwbm_name;//公司名称 + private String hbbm_code;//客商编码、开票方编码 + private String hbbm_name;//客商名称、开票方名称 + private String lrr_code;//录入人编码 + private String lrr_name;//录入人名称 + private String ntaxpricemny;//总价 + private String gdbh;//归档编码 + private String pinpai;//品牌 + private String fkbl;// 付款比例 + private String accountname;//户名 + private String account;//账号 + private String banktypename;//银行 + private String bankdocname;//银行所在地区 + private String scomment;//备注、银行所在地区 + private String prepay;//预收付标志、付款类型 + + + private String bzbm;//币种主键 private String bzbm_code;//币种编码 private String bzbm_name;//币种名称 @@ -50,33 +73,23 @@ public class DjzbVO { private String def8;//自定义项名称8 private String def9;//自定义项名称9 private String deptid;//部门主键 - private String deptid_code;//部门编码 - private String deptid_name;//部门名称 private String dfyhzh;//付款银行帐号 private String djbh;//单据编号 private String djdl;//单据大类 private String djkjnd;//会计年度 private String djkjqj;//会计期间 - private String djrq;//单据日期 + private String djrq;//单据日期、申请支付日期 private String djzt;//单据状态 private String dwbm;//公司主键 - private String dwbm_code;//公司编码 - private String dwbm_name;//公司名称 private String dzrq;//对帐日期 private String enduser;//最终修改人(5.1开始支持) private String hbbm;//客商主键 - private String hbbm_code;//客商编码 - private String hbbm_name;//客商名称 private String lrr;//录入人主键 - private String lrr_code;//录入人编码 - private String lrr_name;//录入人名称 private String paydate;//支付日期(5.1及以后版本支持) - private String prepay;//预收付标志 private String qcbz;//是期初 private String qrr;//确认人主键 private String qrr_code;//确认人编码 private String qrr_name;//确认人名称 - private String scomment;//备注 private String shr;//审核人主键 private String shr_code;//审核人编码 private String shr_name;//审核人名称 @@ -137,14 +150,20 @@ public class DjzbVO { @Data public static class Arap_djfb { + private String bbye;//付款明细-付款金额(元) + private String invcl_code;//付款明细-类目所属编码 + private String invcl_name;//付款明细-类目所属名称 + private String dfshl;//付款明细-数量 + private String cinventoryid_code;//存货编码、付款明细-产品编码 + private String cinventoryid_name;//存货名称、付款明细-产品名称 + + private String bbhl;//本币汇率 private String bfyhzh;//本方银行帐号主键 private String bzbm;//币种主键 private String bzbm_code;//币种编码 private String bzbm_name;//币种名称 private String cinventoryid;//存货主键 - private String cinventoryid_code;//存货编码 - private String cinventoryid_name;//存货名称 private String contractno;//采购合同号 5.1开始支持 private String ddh;//订单号 5.0sp开始支持 private String def1;//自定义项名称1 @@ -194,8 +213,8 @@ public class DjzbVO { private String fkyhzh;//付款银行帐号编码 private String fph;//发票号 5.0sp开始支持 private String hbbm;//客商主键 - private String hbbm_code;//客商编码 - private String hbbm_name;//客商名称 + private String hbbm_code;//客商编码、开票方编码 + private String hbbm_name;//客商名称、开票方名称 private String hsdj;//含税单价 private String jfbbje;//借方本币金额 private String jfbbsj;//借方本币税金