From edfd72ea68db406f4e5fe85b1b066c0cc33bb7da Mon Sep 17 00:00:00 2001 From: guojunyun Date: Tue, 11 Nov 2025 15:53:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E8=B4=B8=E6=8E=A8=E9=80=81=E5=90=88?= =?UTF-8?q?=E5=90=8C=E5=AF=B9=E6=8E=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/dto/contract/ContractRespDTO.java | 3 ++ .../api/vo/contract/ContractRespVO.java | 3 ++ .../api/vo/contract/ContractSaveReqVO.java | 3 ++ .../api/vo/contract/RelationReqVo.java | 4 +- .../contract/international/IntContract.java | 12 +++--- .../contractorder/api/ContractApiImpl.java | 37 +++++++++++-------- .../purchaseorder/vo/LinkOrderReqVO.java | 4 +- .../dataobject/contract/ContractMainDO.java | 7 +++- .../contract/SystemRelativityDO.java | 4 +- .../service/contract/ContractServiceImpl.java | 10 ++--- .../PurchaseOrderServiceImpl.java | 16 +++----- 11 files changed, 60 insertions(+), 43 deletions(-) diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java index 24dd339..9426017 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java @@ -239,6 +239,9 @@ public class ContractRespDTO { @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") private String meteringType; + @Schema(description = "模板中间表ID") + private Long businessId; + // 物料信息 private List detail; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java index 5baf2a7..aefbcaa 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java @@ -245,6 +245,9 @@ public class ContractRespVO { @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") private String meteringType; + @Schema(description = "模板中间表ID") + private Long businessId; + // 物料信息 private List detail; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java index a6adf69..b098237 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java @@ -214,6 +214,9 @@ public class ContractSaveReqVO { @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") private String meteringType; + @Schema(description = "模板中间表ID") + private Long businessId; + // 物料信息 private List detail; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/RelationReqVo.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/RelationReqVo.java index 2ef612f..d588e80 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/RelationReqVo.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/RelationReqVo.java @@ -10,9 +10,9 @@ public class RelationReqVo { @Schema(description = "上游主键", requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "上游主键不能为空") - private Long upId; + private String upId; @Schema(description = "下游主键", requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "下游主键不能为空") - private Long downId; + private String downId; } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java index 238351c..27445d6 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java @@ -39,10 +39,10 @@ public class IntContract { private String contractType; // 合同类型 (货运;货代;仓储;保险) @Schema(description = "是否非标准合同文本") private String textType; // 是否非标准合同文本 - @Schema(description = "合同有效期起 (格式: yyyyMMdd)") - private String contractStartDate; // 合同有效期起 (格式: yyyyMMdd) - @Schema(description = "合同有效期止 (格式: yyyyMMdd)") - private String contractEndDate; // 合同有效期止 (格式: yyyyMMdd) + @Schema(description = "合同有效期起") + private String contractStartDate; // 合同有效期起 + @Schema(description = "合同有效期止") + private String contractEndDate; // 合同有效期止 @Schema(description = "是否固定单价 (0-浮动, 1-固定)") private String priceType; // 是否固定单价 (0-浮动, 1-固定) @Schema(description = "合同币种") @@ -97,8 +97,8 @@ public class IntContract { private String approvePassDate; // 拟签通过日期 @Schema(description = "签约地 (40-签约必填)") private String signSite; // 签约地 (40-签约必填) - @Schema(description = "签约日期 (40-签约必填, 格式: yyyyMMdd)") - private String signDate; // 签约日期 (40-签约必填, 格式: yyyyMMdd) + @Schema(description = "签约日期 (40-签约必填)") + private String signDate; // 签约日期 (40-签约必填) @Schema(description = "对方签约人 (40-签约必填)") private String signFirstPerson; // 对方签约人 (40-签约必填) @Schema(description = "我方签约人工号 (40-签约必填)") diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index 42ed6c4..3da24f3 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -36,6 +36,7 @@ import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -44,9 +45,7 @@ import org.springframework.web.bind.annotation.RestController; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; +import java.time.*; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -178,7 +177,7 @@ public class ContractApiImpl implements ContractApi { SystemRelativityDO systemRelativityDO = systemRelativityMapper.selectOne("UP_ID", externalId); if ("I".equals(operateFlag)) { if (systemRelativityDO != null && systemRelativityDO.getDownId() != null) { // 修改合同 - contractId = systemRelativityDO.getDownId(); + contractId = Long.parseLong(systemRelativityDO.getDownId()); contractMainDO.setId(contractId); contractMainMapper.updateById(contractMainDO); } else { // 新增合同 @@ -187,15 +186,15 @@ public class ContractApiImpl implements ContractApi { // 生成关联数据 SystemRelativityDO saveRelation = new SystemRelativityDO(); - saveRelation.setUpId(Long.parseLong(externalId)); - saveRelation.setDownId(contractId); + saveRelation.setUpId(externalId); + saveRelation.setDownId(contractId.toString()); saveRelation.setWay(DictEnum.BSE_SYS_REL_WY_EXTERNAL.getCode()); saveRelation.setStatus(DictEnum.BSE_SYS_REL_TP_CONTRACT.getCode()); systemRelativityMapper.insert(saveRelation); } } else if ("D".equals(operateFlag)) { if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) throw exception(CONTRACT_NOT_EXISTS); - contractId = systemRelativityDO.getDownId(); + contractId = Long.parseLong(systemRelativityDO.getDownId()); contractMainMapper.deleteById(contractId); // 删除动态条款信息 contractOtherFormMapper.delete("CTRT_MAIN_ID", contractId.toString()); @@ -381,7 +380,7 @@ public class ContractApiImpl implements ContractApi { body.set__interfaceType__("R_MY_JG_10"); body.setBusiBillCode(pushReqVO.getBusiBillCode()); body.setCode(code); - body.setMessage(String.format("推送合同[%s]%s", pushReqVO.getData().getContractCode(), code >= 0 ? "成功" : "失败:" + msg)); + body.setMessage(String.format("推送合同[%s]%s", pushReqVO.getBusiBillCode(), code >= 0 ? "成功" : "失败:" + msg)); body.setDatetime(DateTimeFormatter.ofPattern("yyyyMMddHHmmss").format(LocalDateTime.now())); body.setSystem("JYGK"); body.setOperateFlag(pushReqVO.getOperateFlag()); @@ -565,13 +564,21 @@ public class ContractApiImpl implements ContractApi { // 是否虚拟合同 默认值:否(0) contractMainDO.setContractVirtual(DictEnum.ERP_CTRT_YN_NO.getCode()); // 代理方 默认值:NULL - // 签署日期 -> 签约日期 (40-签约必填, 格式: yyyyMMdd) - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); - contractMainDO.setSignDate(LocalDateTime.parse(reqVO.getSignDate()+"000000", formatter)); - // 开始日期 -> 合同有效期起 (格式: yyyyMMdd) - contractMainDO.setStartDate(LocalDateTime.parse(reqVO.getContractStartDate()+"000000", formatter)); - // 结束日期 -> 合同有效期止 (格式: yyyyMMdd) - contractMainDO.setEndDate(LocalDateTime.parse(reqVO.getContractEndDate()+"000000", formatter)); + // 签署日期 -> 签约日期 (40-签约必填) + if (StringUtils.isNotEmpty(reqVO.getSignDate())) { + contractMainDO.setSignDate(Instant.ofEpochMilli(Long.parseLong(reqVO.getSignDate())) + .atZone(ZoneId.systemDefault()).toLocalDateTime()); + } + // 开始日期 -> 合同有效期起 + if (StringUtils.isNotEmpty(reqVO.getContractStartDate())) { + contractMainDO.setStartDate(Instant.ofEpochMilli(Long.parseLong(reqVO.getContractStartDate())) + .atZone(ZoneId.systemDefault()).toLocalDateTime()); + } + // 结束日期 -> 合同有效期止 + if (StringUtils.isNotEmpty(reqVO.getContractEndDate())) { + contractMainDO.setEndDate(Instant.ofEpochMilli(Long.parseLong(reqVO.getContractEndDate())) + .atZone(ZoneId.systemDefault()).toLocalDateTime()); + } // 币种 -> 合同币种 contractMainDO.setCurrency(reqVO.getCurrencyCode()); // 原币金额 -> 预估含税总金额 diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/LinkOrderReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/LinkOrderReqVO.java index 74e6b13..2305802 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/LinkOrderReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/LinkOrderReqVO.java @@ -7,9 +7,9 @@ import lombok.Data; @Schema(description = "关联订单请求参数 VO") public class LinkOrderReqVO { @Schema(description = "上游订单号") - private Long upOrderId; + private String upOrderId; @Schema(description = "下游订单号") - private Long downOrderId; + private String downOrderId; @Schema(description = "关联订单类型") private String linkOrderType; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java index 7066416..4a34ee2 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java @@ -259,7 +259,7 @@ public class ContractMainDO extends BusinessBaseDO { * 建筑服务发生地;与ERP(JZFWFSD)对应,拓展信息,销售合同,且类型为SAP02COSR必填 */ @TableField("ARCH_SVC_PLCE") - private String architectureService‌Place; + private String architectureServicePlace; /** * 达到收款条件金额;与ERP(DDSKJE)对应,拓展信息,销售合同,且类型为SAP02COSR必填 */ @@ -405,4 +405,9 @@ public class ContractMainDO extends BusinessBaseDO { */ @TableField("MTNG_TP") private String meteringType; + /** + * 模板中间表ID + */ + @TableField("BSN_ID") + private Long businessId; } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java index 0891367..a11238d 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java @@ -31,12 +31,12 @@ public class SystemRelativityDO extends BusinessBaseDO { * 上游主键 */ @TableField("UP_ID") - private Long upId; + private String upId; /** * 下游主键 */ @TableField("DOWN_ID") - private Long downId; + private String downId; /** * 方式系统;内关联/系统外关联 */ diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index 3f6f68d..f99d1c6 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -501,7 +501,7 @@ public class ContractServiceImpl implements ContractService { // 已关联的上游合同id集合 List systemRelativityDOS = systemRelativityMapper.selectList(); - LinkedHashSet relationIds = new LinkedHashSet<>(); + LinkedHashSet relationIds = new LinkedHashSet<>(); if (systemRelativityDOS!= null && !systemRelativityDOS.isEmpty()) { systemRelativityDOS.forEach(systemRelativityDO -> { relationIds.add(systemRelativityDO.getUpId()); @@ -569,7 +569,7 @@ public class ContractServiceImpl implements ContractService { // 已关联的上游合同id集合 List systemRelativityDOS = systemRelativityMapper.selectList(); - LinkedHashSet relationIds = new LinkedHashSet<>(); + LinkedHashSet relationIds = new LinkedHashSet<>(); if (systemRelativityDOS!= null && !systemRelativityDOS.isEmpty()) { systemRelativityDOS.forEach(systemRelativityDO -> { relationIds.add(systemRelativityDO.getDownId()); @@ -634,7 +634,7 @@ public class ContractServiceImpl implements ContractService { } // 上游合同ID - Long upId = systemRelativityDO.getUpId(); + String upId = systemRelativityDO.getUpId(); // 获取上游合同信息 ContractMainDO contractMainDO = contractMainMapper.selectById(upId); @@ -660,7 +660,7 @@ public class ContractServiceImpl implements ContractService { } // 下游合同ID - Long upId = systemRelativityDO.getUpId(); + String upId = systemRelativityDO.getUpId(); // 获取下游合同信息 ContractMainDO contractMainDO = contractMainMapper.selectById(upId); @@ -1980,7 +1980,7 @@ public class ContractServiceImpl implements ContractService { // 单据名称(拼音) String documentName = "XTHT"; // 公司编码 - String companyId = CompanyContextHolder.getCompanyId().toString(); + String companyId = CompanyContextHolder.getCompanyId()!= null ? CompanyContextHolder.getCompanyId().toString() : ""; // 年月日 String yearMounth8Bit = LocalDate.now() .format(DateTimeFormatter.ofPattern(DateConstants.DATE_FORMAT_YEAR_MONTH_DAY_8_BIT)); diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java index bb27ac3..a078f9a 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java @@ -6,12 +6,13 @@ import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi; import com.zt.plat.module.bpm.api.task.BpmTaskApi; import com.zt.plat.module.bpm.api.task.dto.*; import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum; -import com.zt.plat.module.bpm.enums.task.BpmTaskStatusEnum; import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; @@ -30,22 +31,17 @@ import com.zt.plat.module.erp.service.erp.ErpOrderService; import com.zt.plat.module.system.api.sequence.SequenceApi; import com.zt.plat.module.system.api.user.AdminUserApi; import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.stream.Collectors; - -import com.zt.plat.framework.common.pojo.PageResult; -import com.zt.plat.framework.common.util.object.BeanUtils; - import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS; @@ -491,8 +487,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { SystemRelativityDO saveDO = new SystemRelativityDO(); saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode()); - saveDO.setUpId(LinkOrderReqVO.getUpOrderId()); - saveDO.setDownId(LinkOrderReqVO.getDownOrderId()); + saveDO.setUpId(LinkOrderReqVO.getUpOrderId().toString()); + saveDO.setDownId(LinkOrderReqVO.getDownOrderId().toString()); //判断订单有没有关联过 if (systemRelativityMapper.selectCount(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) { throw exception(CONTRACT_ORDER_EXISTS);