From 04716c022e2a8456725a0f81498c0e4fd3944a5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Sat, 28 Feb 2026 08:57:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=A5=E6=96=99=E5=8A=A0=E5=B7=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entrustorder/EntrustOrderDetailDO.java | 22 ++++++-- .../mysql/contract/ContractMainMapper.java | 20 +++++++- .../EntrustOrderDetailServiceImpl.java | 50 +++++++++++++++---- 3 files changed, 76 insertions(+), 16 deletions(-) diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java index 4677b5fd..e1bfe23c 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java @@ -178,18 +178,34 @@ public class EntrustOrderDetailDO extends BusinessBaseDO { private Integer lineNumber; /** - * 金属元素缩写 + * 收货金属元素缩写 */ @TableField("ELEM_ABBR") private String elementAbbreviation; /** - * 金属元素名称 + * 收货金属元素名称 */ @TableField("ELEM_NAME") private String elementName; /** - * 金属元素编码 + * 收货金属元素编码 */ @TableField("ELEM_NUM") private String elementNumber; + + /** + * 发货金属元素缩写 + */ + @TableField("SND_ELEM_ABBR") + private String sendElementAbbreviation; + /** + * 发货金属元素名称 + */ + @TableField("SND_ELEM_NAME") + private String sendElementName; + /** + * 发货金属元素编码 + */ + @TableField("SND_ELEM_NUM") + private String sendElementNumber; } \ 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/mysql/contract/ContractMainMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java index 06fecb5c..bf1b62e1 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/contract/ContractMainMapper.java @@ -10,6 +10,8 @@ import com.zt.plat.module.contractorder.api.vo.contract.ContractPageReqVO; import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO; import org.apache.ibatis.annotations.Mapper; +import java.util.Arrays; + /** * 合同主信息 Mapper * @@ -18,6 +20,13 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ContractMainMapper extends BaseMapperX { default PageResult selectContractPage(ContractPageReqVO reqVO) { + String businessType = reqVO.getBusinessType(); + String[] businessTypeArray = (businessType != null && !businessType.isEmpty()) + ? Arrays.stream(businessType.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .toArray(String[]::new) + : null; return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(ContractMainDO::getContractName, reqVO.getContractName()) .likeIfPresent(ContractMainDO::getContractPaperNumber, reqVO.getContractPaperNumber()) @@ -27,11 +36,18 @@ public interface ContractMainMapper extends BaseMapperX { .likeIfPresent(ContractMainDO::getSalesCompanyName, reqVO.getSalesCompanyName()) .eqIfPresent(ContractMainDO::getBasicAmount, reqVO.getBasicAmount()) .eqIfPresent(ContractMainDO::getStatus, reqVO.getStatus()) - .eqIfPresent(ContractMainDO::getBusinessType, reqVO.getBusinessType()) + .inIfPresent(ContractMainDO::getBusinessType, businessTypeArray) .orderByDesc(ContractMainDO::getCreateTime)); } default PageResult selectContractPageNoPermission(ContractPageReqVO reqVO) { + String businessType = reqVO.getBusinessType(); + String[] businessTypeArray = (businessType != null && !businessType.isEmpty()) + ? Arrays.stream(businessType.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .toArray(String[]::new) + : null; return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(ContractMainDO::getContractName, reqVO.getContractName()) .likeIfPresent(ContractMainDO::getContractPaperNumber, reqVO.getContractPaperNumber()) @@ -41,7 +57,7 @@ public interface ContractMainMapper extends BaseMapperX { .likeIfPresent(ContractMainDO::getSalesCompanyName, reqVO.getSalesCompanyName()) .eqIfPresent(ContractMainDO::getBasicAmount, reqVO.getBasicAmount()) .eqIfPresent(ContractMainDO::getStatus, reqVO.getStatus()) - .eqIfPresent(ContractMainDO::getBusinessType, reqVO.getBusinessType()) + .inIfPresent(ContractMainDO::getBusinessType, businessTypeArray) .eqIfPresent(ContractMainDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber()) .eqIfPresent(ContractMainDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber()) .orderByDesc(ContractMainDO::getCreateTime)); diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java index 9a59f389..f02c6ed0 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderDetailServiceImpl.java @@ -49,7 +49,8 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService @Resource private ElementService elementService; - + @Resource + private MaterialInfomationApi materialInfomationApi; @Resource private EntrustOrderDetailMapper entrustOrderDetailMapper; @@ -57,7 +58,9 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService public EntrustOrderDetailRespVO createEntrustOrderDetail(EntrustOrderDetailSaveReqVO createReqVO) { // 插入 EntrustOrderDetailDO entrustOrderDetail = BeanUtils.toBean(createReqVO, EntrustOrderDetailDO.class); - setElemInfo(entrustOrderDetail); + String receiveAbbr = getMaterialElementAbbreviation(entrustOrderDetail.getReceiveMaterialNumber()); + String sendAbbr = getMaterialElementAbbreviation(entrustOrderDetail.getSendMaterialNumber()); + setElemInfo(entrustOrderDetail,receiveAbbr,sendAbbr); entrustOrderDetailMapper.insert(entrustOrderDetail); // 返回 return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class); @@ -69,7 +72,9 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService validateEntrustOrderDetailExists(updateReqVO.getId()); // 更新 EntrustOrderDetailDO updateObj = BeanUtils.toBean(updateReqVO, EntrustOrderDetailDO.class); - setElemInfo(updateObj); + String receiveAbbr = getMaterialElementAbbreviation(updateObj.getReceiveMaterialNumber()); + String sendAbbr = getMaterialElementAbbreviation(updateObj.getSendMaterialNumber()); + setElemInfo(updateObj, receiveAbbr, sendAbbr); entrustOrderDetailMapper.updateById(updateObj); } @@ -190,7 +195,7 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService @Override public List insertBatchSomeColumn(List entrustOrderOrderDetails) { List entrustOrderDetail = BeanUtils.toBean(entrustOrderOrderDetails, EntrustOrderDetailDO.class); - entrustOrderDetail.forEach(this::setElemInfo); + entrustOrderDetail.forEach(detail -> setElemInfo(detail, getMaterialElementAbbreviation(detail.getReceiveMaterialNumber()), getMaterialElementAbbreviation(detail.getSendMaterialNumber()))); entrustOrderDetailMapper.insertBatch(entrustOrderDetail); return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class); } @@ -198,7 +203,7 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService @Override public void updateBatchSomeColumn(List entrustOrderOrderDetails) { List updateList = BeanUtils.toBean(entrustOrderOrderDetails, EntrustOrderDetailDO.class); - updateList.forEach(this::setElemInfo); + updateList.forEach(detail -> setElemInfo(detail, getMaterialElementAbbreviation(detail.getReceiveMaterialNumber()), getMaterialElementAbbreviation(detail.getSendMaterialNumber()))); entrustOrderDetailMapper.insertOrUpdate(updateList); } @@ -231,17 +236,40 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService return mtrlZhongtongCode; } - private void setElemInfo(EntrustOrderDetailDO entrustOrderDetailDO) { + private void setElemInfo(EntrustOrderDetailDO entrustOrderDetailDO, String receiveAbbr, String sendAbbr) { if (entrustOrderDetailDO.getElementAbbreviation() == null) { return; } - ElementDO elementBySymbol = elementService.getElementBySymbol(entrustOrderDetailDO.getElementAbbreviation()); - if (elementBySymbol != null) { - entrustOrderDetailDO.setElementName(elementBySymbol.getName()); - entrustOrderDetailDO.setElementNumber(elementBySymbol.getCoding()); + ElementDO receiveAbbrElementBySymbol = elementService.getElementBySymbol(receiveAbbr); + if (receiveAbbrElementBySymbol != null) { + entrustOrderDetailDO.setElementAbbreviation(receiveAbbr); + entrustOrderDetailDO.setElementName(receiveAbbrElementBySymbol.getName()); + entrustOrderDetailDO.setElementNumber(receiveAbbrElementBySymbol.getCoding()); } else { - log.warn("元素【{}】不存在,订单ID【{}】", entrustOrderDetailDO.getElementAbbreviation(), entrustOrderDetailDO.getOrderId()); + log.warn("收货元素【{}】不存在,订单ID【{}】", entrustOrderDetailDO.getElementAbbreviation(), entrustOrderDetailDO.getOrderId()); + } + ElementDO senDElementBySymbol = elementService.getElementBySymbol(receiveAbbr); + if (senDElementBySymbol != null) { + entrustOrderDetailDO.setSendElementAbbreviation(sendAbbr); + entrustOrderDetailDO.setSendElementName(senDElementBySymbol.getName()); + entrustOrderDetailDO.setSendElementNumber(senDElementBySymbol.getCoding()); + } else { + log.warn("发货元素【{}】不存在,订单ID【{}】", entrustOrderDetailDO.getElementAbbreviation(), entrustOrderDetailDO.getOrderId()); } } + //通过物料编码查询物料对应的金属元素缩写 + public String getMaterialElementAbbreviation(String materialNumber) { + MaterialInfomationPageReqDTO pageReqDTO = new MaterialInfomationPageReqDTO(); + pageReqDTO.setCode(materialNumber); + pageReqDTO.setPageSize(10000); + pageReqDTO.setPageNo(1); + CommonResult> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(pageReqDTO); + if (materialInfomationPage == null || materialInfomationPage.getData() == null || materialInfomationPage.getData().getList().isEmpty()) { + return null; + } + MaterialInfomationRespDTO materialInfomationRespDTO = materialInfomationPage.getData().getList().get(0); + Map flatAttributes = materialInfomationRespDTO.getFlatAttributes(); + return flatAttributes.getOrDefault("elementAbbreviation", "").toString(); + } } \ No newline at end of file