Merge branch 'dev' into 'test'

国贸2.0系统推送合同回调:消息固定R_JG_MY_00应答,_interfaceType__固定传R_MY_JG_10

See merge request jygk/dsc-base!18
This commit is contained in:
孙承赐
2025-11-11 10:31:06 +00:00
37 changed files with 488 additions and 172 deletions

View File

@@ -236,6 +236,12 @@ public class ContractRespDTO {
@Schema(description = "代理方名称")
private String agentName;
@Schema(description = "货权转移类型(字典ASY_MTNG_TP)")
private String meteringType;
@Schema(description = "模板中间表ID")
private Long businessId;
// 物料信息
private List<DetailRespDTO> detail;

View File

@@ -283,6 +283,11 @@ public class OrderDTO {
*/
@TableField("PYER_NUM")
private String payerNum;
/**
* 货权准转移类型
*/
private String meteringType;
/**
* 订单明细

View File

@@ -198,6 +198,11 @@ public class PurchaseOrderWithDetailsDTO {
* 税码
*/
private String taxNum;
/**
* 货权准转移类型
*/
private String meteringType;
/**
* 采购订单明细
*/

View File

@@ -1,8 +1,8 @@
package com.zt.plat.module.contractorder.api.vo.contract;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscDatBsnRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscItmBsnRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -242,14 +242,20 @@ public class ContractRespVO {
@Schema(description = "代理方名称")
private String agentName;
@Schema(description = "货权转移类型(字典ASY_MTNG_TP)")
private String meteringType;
@Schema(description = "模板中间表ID")
private Long businessId;
// 物料信息
private List<DetailRespVO> detail;
// 合同动态表单
private List<TemplateInstanceDataRespVO> dynamicsFields;
// 合同动态字段
private List<TmplInscDatBsnRespVO> dynamicsFields;
// 合同动态条款
private List<TemplateInstanceItemRespVO> dynamicsItems;
private List<TmplInscItmBsnRespVO> dynamicsItems;
// 价款结算条款
private List<FormulaRespVO> formulas;

View File

@@ -1,7 +1,8 @@
package com.zt.plat.module.contractorder.api.vo.contract;
import cn.hutool.json.JSONArray;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataSaveReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscDatBsnSaveReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscItmBsnSaveReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
@@ -211,11 +212,20 @@ public class ContractSaveReqVO {
@Schema(description = "代理方名称")
private String agentName;
@Schema(description = "货权转移类型(字典ASY_MTNG_TP)")
private String meteringType;
@Schema(description = "模板中间表ID")
private Long businessId;
// 物料信息
private List<DetailSaveReqVO> detail;
// 合同动态表单
private List<TemplateInstanceDataSaveReqVO> dynamicsFields;
// 合同动态字段
private List<TmplInscDatBsnSaveReqVO> dynamicsFields;
// 合同动态条款
private List<TmplInscItmBsnSaveReqVO> dynamicsItems;
// 价款结算条款
private List<FormulaSaveReqVO> formulas;

View File

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

View File

@@ -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-签约必填)")

View File

@@ -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());
@@ -378,17 +377,17 @@ public class ContractApiImpl implements ContractApi {
// 返回数据
IntPushContractRespVO body = new IntPushContractRespVO();
body.set__requestId_(pushReqVO.get__requestId_());
body.set__interfaceType__(pushReqVO.get__interfaceType__());
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());
// 回调参数
JSONObject req = new JSONObject();
req.set("messageKey", pushReqVO.getBusiBillCode());
req.set("messageKey", "R_JG_MY_00");
req.set("messageBody", body);
try {
log.info("国贸系统推送合同回调参数:{}",req);
@@ -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());
// 原币金额 -> 预估含税总金额

View File

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

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -133,5 +134,8 @@ public class PurchaseOrderPageReqVO extends PageParam {
@Schema(description = "订单分类")
private String splyBsnTp;
@Schema(description = "货权转移类型(字典ASY_MTNG_TP)")
private String meteringType;
}

View File

@@ -196,4 +196,8 @@ public class PurchaseOrderRespVO {
@ExcelProperty(" 审批意见")
private String reviewOpinion;
@Schema(description = "货权转移类型(字典ASY_MTNG_TP)")
@ExcelProperty("货权转移类型(字典ASY_MTNG_TP)")
private String meteringType;
}

View File

@@ -178,4 +178,21 @@ public class PurchaseOrderSaveReqVO {
@Schema(description = "订单分类(字典SPLY_BSN_TP)", example = "2")
@ExcelProperty("订单分类")
private String splyBsnTp;
@Schema(description = "货权转移类型(字典ASY_MTNG_TP)")
@ExcelProperty("货权转移类型(字典ASY_MTNG_TP)")
private String meteringType;
@Schema(description = "产品组名")
@ExcelProperty("产品组名")
private String pdtGrpName;
@Schema(description = "产品组编码")
@ExcelProperty("产品组编码")
private String pdtGrpCdg;
@Schema(description = "付款方名称")
@ExcelProperty("付款方名称")
private String payerName;
@Schema(description = "付款方编码")
@ExcelProperty("付款方编码")
private String payerNum;
}

View File

@@ -156,4 +156,7 @@ public class SalesOrderPageReqVO extends PageParam {
@ExcelProperty("产品组编码")
private String pdtGrpCdg;
@Schema(description = "货权转移类型(字典ASY_MTNG_TP)")
private String meteringType;
}

View File

@@ -220,5 +220,8 @@ public class SalesOrderRespVO {
@Schema(description = "付款方编码")
@ExcelProperty("付款方编码")
private String payerNum;
@Schema(description = "货权转移类型(字典ASY_MTNG_TP)")
@ExcelProperty("货权转移类型(字典ASY_MTNG_TP)")
private String meteringType;
}

View File

@@ -198,4 +198,8 @@ public class SalesOrderSaveReqVO {
@Schema(description = "付款方编码")
@ExcelProperty("付款方编码")
private String payerNum;
@Schema(description = "货权转移类型(字典ASY_MTNG_TP)")
@ExcelProperty("货权转移类型(字典ASY_MTNG_TP)")
private String meteringType;
}

View File

@@ -3,6 +3,7 @@ package com.zt.plat.module.contractorder.dal.dataobject.contract;
import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
import lombok.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@@ -205,12 +206,12 @@ public class ContractMainDO extends BusinessBaseDO {
@TableField("RMK")
private String remark;
/**
* 施工类型编号;与ERP(HTLXBH)对应,拓展信息
* 施工类型编号(字典:ERP_CTRT_HTLXBH);与ERP(HTLXBH)对应,拓展信息
*/
@TableField("CON_TP_NUM")
private String constructionTypeNumber;
/**
* 施工类型名称;与ERP(HTLXMC)对应,拓展信息
* 施工类型名称(字典:ERP_CTRT_HTLXBH);与ERP(HTLXMC)对应,拓展信息
*/
@TableField("CON_TP_NAME")
private String constructionTypeName;
@@ -399,4 +400,14 @@ public class ContractMainDO extends BusinessBaseDO {
*/
@TableField("AGT_NAME")
private String agentName;
/**
* 货权转移类型(字典ASY_MTNG_TP)
*/
@TableField("MTNG_TP")
private String meteringType;
/**
* 模板中间表ID
*/
@TableField("BSN_ID")
private Long businessId;
}

View File

@@ -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;
/**
* 方式系统;内关联/系统外关联
*/

View File

@@ -283,4 +283,10 @@ public class PurchaseOrderDO extends BusinessBaseDO {
*/
@TableField("TAX_RTE")
private BigDecimal taxRte;
/**
* 货权准转移类型
*/
@TableField("MTRG_TP")
private String meteringType;
}

View File

@@ -303,9 +303,8 @@ public class SalesOrderDO extends BusinessBaseDO {
*/
@TableField("PYER_NUM")
private String payerNum;
// /**
// * 税码
// */
// @TableField("TAX_NUM")
// private String taxNum;
/**
* 货权准转移类型
*/
private String meteringType;
}

View File

@@ -61,6 +61,7 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
.eqIfPresent(PurchaseOrderDO::getSplyBsnTp, reqVO.getSplyBsnTp() != null ? reqVO.getSplyBsnTp() : "PUR")
.eqIfPresent(PurchaseOrderDO::getCause, reqVO.getCause())
.eqIfPresent(PurchaseOrderDO::getStatus, reqVO.getStatus())
.eqIfPresent(PurchaseOrderDO::getMeteringType, reqVO.getMeteringType())
.likeIfPresent(PurchaseOrderDO::getPurchaseGroupName, reqVO.getPurchaseGroupName())
.orderByDesc(PurchaseOrderDO::getId));
}

View File

@@ -27,6 +27,7 @@ public interface SalesOrderMapper extends BaseMapperX<SalesOrderDO> {
.eqIfPresent(SalesOrderDO::getSupplierNumber, reqVO.getSupplierNumber())
.likeIfPresent(SalesOrderDO::getSupplierName, reqVO.getSupplierName())
.eqIfPresent(SalesOrderDO::getType, reqVO.getType())
.eqIfPresent(SalesOrderDO::getMeteringType, reqVO.getMeteringType())
.betweenIfPresent(SalesOrderDO::getVoucherDate, reqVO.getVoucherDate())
.eqIfPresent(SalesOrderDO::getPurchaseOrganizationCustomsDeclaration, reqVO.getPurchaseOrganizationCustomsDeclaration())
.likeIfPresent(SalesOrderDO::getReceiveFactoryName, reqVO.getReceiveFactoryName())

View File

@@ -12,15 +12,18 @@ import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
import com.zt.plat.framework.tenant.core.context.CompanyContextHolder;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemRespVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDataDO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceItemDO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscBsnRelRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscBsnRelSaveReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscDatBsnSaveReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscItmBsnSaveReqVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplInscBsnRelDO;
import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceDataMapper;
import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceItemMapper;
import com.zt.plat.module.base.dal.mysql.tmpltp.TmplInscBsnRelMapper;
import com.zt.plat.module.base.service.tmpltp.TemplateInstanceDataService;
import com.zt.plat.module.base.service.tmpltp.TmplInscBsnRelService;
import com.zt.plat.module.base.service.tmpltp.TmplInscDatBsnService;
import com.zt.plat.module.base.service.tmpltp.TmplInscItmBsnService;
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.*;
@@ -120,6 +123,12 @@ public class ContractServiceImpl implements ContractService {
private FileApi fileApi;
@Resource
private TmplInscBsnRelMapper tmplInscBsnRelMapper;
@Resource
private TmplInscBsnRelService tmplInscBsnRelService;
@Resource
private TmplInscDatBsnService tmplInscDatBsnService;
@Resource
private TmplInscItmBsnService tmplInscItmBsnService;
@Override
public PageResult<ContractMainDO> getContractPage(ContractPageReqVO pageReqVO) {
@@ -276,22 +285,31 @@ public class ContractServiceImpl implements ContractService {
});
}
// 合同动态表单
List<TemplateInstanceDataDO> templateInstanceDataDOS = new ArrayList<>();
if (reqVO.getDynamicsFields() != null && !reqVO.getDynamicsFields().isEmpty()) {
reqVO.getDynamicsFields().forEach(dynamicsField -> {
TemplateInstanceDataDO templateInstanceDataDO = new TemplateInstanceDataDO();
BeanUtils.copyProperties(dynamicsField, templateInstanceDataDO);
templateInstanceDataDO.setInscId(reqVO.getInstanceId().toString());
templateInstanceDataDOS.add(templateInstanceDataDO);
// 合同动态表单及条款
// 更新关联主表
TmplInscBsnRelSaveReqVO tmplInscBsnRelSaveReqVO = new TmplInscBsnRelSaveReqVO();
tmplInscBsnRelSaveReqVO.setId(reqVO.getBusinessId());
tmplInscBsnRelSaveReqVO.setBsnId(contractId);
tmplInscBsnRelService.updateTmplInscBsnRel(tmplInscBsnRelSaveReqVO);
// 保存动态字段
List<TmplInscDatBsnSaveReqVO> dynamicsFields = reqVO.getDynamicsFields();
if (dynamicsFields != null && !dynamicsFields.isEmpty()) {
dynamicsFields.forEach(dynamicsField -> {
dynamicsField.setBsnId(reqVO.getBusinessId().toString());
tmplInscDatBsnService.createTmplInscDatBsn(dynamicsField);
});
}
// 更新合同动态表单值
if (!templateInstanceDataDOS.isEmpty()) {
templateInstanceDataService.setTemplateInstanceData(templateInstanceDataDOS);
// 保存动态条款
List<TmplInscItmBsnSaveReqVO> dynamicsItems = reqVO.getDynamicsItems();
if (dynamicsItems != null && !dynamicsItems.isEmpty()) {
dynamicsItems.forEach(dynamicsItem -> {
dynamicsItem.setBsnId(reqVO.getBusinessId().toString());
tmplInscItmBsnService.createTmplInscItmBsn(dynamicsItem);
});
}
return contractMainDO.getId();
return contractId;
}
@Override
@@ -372,19 +390,12 @@ public class ContractServiceImpl implements ContractService {
respVO.setNots(BeanUtils.toBean(notDOS, NotRespVO.class));
}
// 查询并设置合同动态表单
List<TemplateInstanceDataDO> templateInstanceDataDOS = templateInstanceDataMapper
.selectList(TableFieldConstants.BSE_TMPL_INSC_DAT_INSC_ID, contractMainDO.getInstanceId());
if (templateInstanceDataDOS != null && !templateInstanceDataDOS.isEmpty()) {
respVO.setDynamicsFields(BeanUtils.toBean(templateInstanceDataDOS, TemplateInstanceDataRespVO.class));
}
// 查询并设置合同动态条款
List<TemplateInstanceItemDO> templateInstanceItemDOS = templateInstanceItemMapper
.selectList(TableFieldConstants.BSE_TMPL_INSC_ITM_INSC_ID, contractMainDO.getInstanceId());
if (templateInstanceItemDOS != null && !templateInstanceItemDOS.isEmpty()) {
respVO.setDynamicsItems(BeanUtils.toBean(templateInstanceItemDOS, TemplateInstanceItemRespVO.class));
}
// 查询合同动态字段及条款
TmplInscBsnRelRespVO tmplInscBsnRel = tmplInscBsnRelService.getTmplInscBsnRel(contractMainDO.getBusinessId());
// 设置合同动态字段
respVO.setDynamicsFields(tmplInscBsnRel.getTmplInscDatBsnRespVOS());
// 设置合同动态条款
respVO.setDynamicsItems(tmplInscBsnRel.getTmplInscItmBsnRespVOS());
return respVO;
}
@@ -466,19 +477,12 @@ public class ContractServiceImpl implements ContractService {
respVO.setNots(BeanUtils.toBean(notDOS, NotRespVO.class));
}
// 查询并设置合同动态表单
List<TemplateInstanceDataDO> templateInstanceDataDOS = templateInstanceDataMapper
.selectList(TableFieldConstants.BSE_TMPL_INSC_DAT_INSC_ID, contractMainDO.getInstanceId());
if (templateInstanceDataDOS != null && !templateInstanceDataDOS.isEmpty()) {
respVO.setDynamicsFields(BeanUtils.toBean(templateInstanceDataDOS, TemplateInstanceDataRespVO.class));
}
// 查询并设置合同动态条款
List<TemplateInstanceItemDO> templateInstanceItemDOS = templateInstanceItemMapper
.selectList(TableFieldConstants.BSE_TMPL_INSC_ITM_INSC_ID, contractMainDO.getInstanceId());
if (templateInstanceItemDOS != null && !templateInstanceItemDOS.isEmpty()) {
respVO.setDynamicsItems(BeanUtils.toBean(templateInstanceItemDOS, TemplateInstanceItemRespVO.class));
}
// 查询合同动态字段及条款
TmplInscBsnRelRespVO tmplInscBsnRel = tmplInscBsnRelService.getTmplInscBsnRel(contractMainDO.getBusinessId());
// 设置合同动态字段
respVO.setDynamicsFields(tmplInscBsnRel.getTmplInscDatBsnRespVOS());
// 设置合同动态条款
respVO.setDynamicsItems(tmplInscBsnRel.getTmplInscItmBsnRespVOS());
return respVO;
}
@@ -501,7 +505,7 @@ public class ContractServiceImpl implements ContractService {
// 已关联的上游合同id集合
List<SystemRelativityDO> systemRelativityDOS = systemRelativityMapper.selectList();
LinkedHashSet<Long> relationIds = new LinkedHashSet<>();
LinkedHashSet<String> relationIds = new LinkedHashSet<>();
if (systemRelativityDOS!= null && !systemRelativityDOS.isEmpty()) {
systemRelativityDOS.forEach(systemRelativityDO -> {
relationIds.add(systemRelativityDO.getUpId());
@@ -569,7 +573,7 @@ public class ContractServiceImpl implements ContractService {
// 已关联的上游合同id集合
List<SystemRelativityDO> systemRelativityDOS = systemRelativityMapper.selectList();
LinkedHashSet<Long> relationIds = new LinkedHashSet<>();
LinkedHashSet<String> relationIds = new LinkedHashSet<>();
if (systemRelativityDOS!= null && !systemRelativityDOS.isEmpty()) {
systemRelativityDOS.forEach(systemRelativityDO -> {
relationIds.add(systemRelativityDO.getDownId());
@@ -634,7 +638,7 @@ public class ContractServiceImpl implements ContractService {
}
// 上游合同ID
Long upId = systemRelativityDO.getUpId();
String upId = systemRelativityDO.getUpId();
// 获取上游合同信息
ContractMainDO contractMainDO = contractMainMapper.selectById(upId);
@@ -660,7 +664,7 @@ public class ContractServiceImpl implements ContractService {
}
// 下游合同ID
Long upId = systemRelativityDO.getUpId();
String upId = systemRelativityDO.getUpId();
// 获取下游合同信息
ContractMainDO contractMainDO = contractMainMapper.selectById(upId);
@@ -900,19 +904,17 @@ public class ContractServiceImpl implements ContractService {
});
}
// 合同动态表单
List<TemplateInstanceDataDO> templateInstanceDataDOS = new ArrayList<>();
// 更新合同动态字段
if (reqVO.getDynamicsFields() != null && !reqVO.getDynamicsFields().isEmpty()) {
reqVO.getDynamicsFields().forEach(dynamicsField -> {
TemplateInstanceDataDO templateInstanceDataDO = new TemplateInstanceDataDO();
BeanUtils.copyProperties(dynamicsField, templateInstanceDataDO);
templateInstanceDataDO.setInscId(reqVO.getInstanceId().toString());
templateInstanceDataDOS.add(templateInstanceDataDO);
reqVO.getDynamicsFields().forEach(field -> {
tmplInscDatBsnService.updateTmplInscDatBsn(field);
});
}
// 更新合同动态表单
if (!templateInstanceDataDOS.isEmpty()) {
templateInstanceDataService.setTemplateInstanceData(templateInstanceDataDOS);
// 更新合同动态表单
if (reqVO.getDynamicsItems() != null && !reqVO.getDynamicsItems().isEmpty()) {
reqVO.getDynamicsItems().forEach(item -> {
tmplInscItmBsnService.updateTmplInscItmBsn(item);
});
}
// 合同状态更新
@@ -1980,7 +1982,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));

View File

@@ -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<SystemRelativityDO>().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) {
throw exception(CONTRACT_ORDER_EXISTS);

View File

@@ -19,6 +19,7 @@
po.SPLR_NUM,
po.SPLR_NAME,
po.TP,
po.MTRG_TP,
po.VCHR_DT,
po.PRCH_ORGZ_CD,
po.RCV_FACT_NAME,
@@ -143,6 +144,7 @@
po.PPR_CTRT_NUM,
po.AGR_NUM,
po.RMK,
po.MTRG_TP,
po.UNT,
po.AGT_NUM,
po.AGT_NAME,
@@ -264,6 +266,7 @@
<result column="PPR_CTRT_NUM" property="paperContractNumber"/>
<result column="AGR_NUM" property="agreementNumber"/>
<result column="RMK" property="remark"/>
<result column="MTRG_TP" property="meteringType"/>
<result column="AGT_NUM" property="agentNumber"/>
<result column="AGT_NAME" property="agentName"/>
<result column="CTRT_NUM" property="contractNumber"/>