来料加工

This commit is contained in:
潘荣晟
2026-02-28 08:57:10 +08:00
parent 74e8d88a66
commit 04716c022e
3 changed files with 76 additions and 16 deletions

View File

@@ -178,18 +178,34 @@ public class EntrustOrderDetailDO extends BusinessBaseDO {
private Integer lineNumber; private Integer lineNumber;
/** /**
* 金属元素缩写 * 收货金属元素缩写
*/ */
@TableField("ELEM_ABBR") @TableField("ELEM_ABBR")
private String elementAbbreviation; private String elementAbbreviation;
/** /**
* 金属元素名称 * 收货金属元素名称
*/ */
@TableField("ELEM_NAME") @TableField("ELEM_NAME")
private String elementName; private String elementName;
/** /**
* 金属元素编码 * 收货金属元素编码
*/ */
@TableField("ELEM_NUM") @TableField("ELEM_NUM")
private String elementNumber; private String elementNumber;
/**
* 发货金属元素缩写
*/
@TableField("SND_ELEM_ABBR")
private String sendElementAbbreviation;
/**
* 发货金属元素名称
*/
@TableField("SND_ELEM_NAME")
private String sendElementName;
/**
* 发货金属元素编码
*/
@TableField("SND_ELEM_NUM")
private String sendElementNumber;
} }

View File

@@ -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 com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Arrays;
/** /**
* 合同主信息 Mapper * 合同主信息 Mapper
* *
@@ -18,6 +20,13 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface ContractMainMapper extends BaseMapperX<ContractMainDO> { public interface ContractMainMapper extends BaseMapperX<ContractMainDO> {
default PageResult<ContractMainDO> selectContractPage(ContractPageReqVO reqVO) { default PageResult<ContractMainDO> 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<ContractMainDO>() return selectPage(reqVO, new LambdaQueryWrapperX<ContractMainDO>()
.likeIfPresent(ContractMainDO::getContractName, reqVO.getContractName()) .likeIfPresent(ContractMainDO::getContractName, reqVO.getContractName())
.likeIfPresent(ContractMainDO::getContractPaperNumber, reqVO.getContractPaperNumber()) .likeIfPresent(ContractMainDO::getContractPaperNumber, reqVO.getContractPaperNumber())
@@ -27,11 +36,18 @@ public interface ContractMainMapper extends BaseMapperX<ContractMainDO> {
.likeIfPresent(ContractMainDO::getSalesCompanyName, reqVO.getSalesCompanyName()) .likeIfPresent(ContractMainDO::getSalesCompanyName, reqVO.getSalesCompanyName())
.eqIfPresent(ContractMainDO::getBasicAmount, reqVO.getBasicAmount()) .eqIfPresent(ContractMainDO::getBasicAmount, reqVO.getBasicAmount())
.eqIfPresent(ContractMainDO::getStatus, reqVO.getStatus()) .eqIfPresent(ContractMainDO::getStatus, reqVO.getStatus())
.eqIfPresent(ContractMainDO::getBusinessType, reqVO.getBusinessType()) .inIfPresent(ContractMainDO::getBusinessType, businessTypeArray)
.orderByDesc(ContractMainDO::getCreateTime)); .orderByDesc(ContractMainDO::getCreateTime));
} }
default PageResult<ContractMainDO> selectContractPageNoPermission(ContractPageReqVO reqVO) { default PageResult<ContractMainDO> 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<ContractMainDO>() return selectPage(reqVO, new LambdaQueryWrapperX<ContractMainDO>()
.likeIfPresent(ContractMainDO::getContractName, reqVO.getContractName()) .likeIfPresent(ContractMainDO::getContractName, reqVO.getContractName())
.likeIfPresent(ContractMainDO::getContractPaperNumber, reqVO.getContractPaperNumber()) .likeIfPresent(ContractMainDO::getContractPaperNumber, reqVO.getContractPaperNumber())
@@ -41,7 +57,7 @@ public interface ContractMainMapper extends BaseMapperX<ContractMainDO> {
.likeIfPresent(ContractMainDO::getSalesCompanyName, reqVO.getSalesCompanyName()) .likeIfPresent(ContractMainDO::getSalesCompanyName, reqVO.getSalesCompanyName())
.eqIfPresent(ContractMainDO::getBasicAmount, reqVO.getBasicAmount()) .eqIfPresent(ContractMainDO::getBasicAmount, reqVO.getBasicAmount())
.eqIfPresent(ContractMainDO::getStatus, reqVO.getStatus()) .eqIfPresent(ContractMainDO::getStatus, reqVO.getStatus())
.eqIfPresent(ContractMainDO::getBusinessType, reqVO.getBusinessType()) .inIfPresent(ContractMainDO::getBusinessType, businessTypeArray)
.eqIfPresent(ContractMainDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber()) .eqIfPresent(ContractMainDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber())
.eqIfPresent(ContractMainDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber()) .eqIfPresent(ContractMainDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber())
.orderByDesc(ContractMainDO::getCreateTime)); .orderByDesc(ContractMainDO::getCreateTime));

View File

@@ -49,7 +49,8 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
@Resource @Resource
private ElementService elementService; private ElementService elementService;
@Resource
private MaterialInfomationApi materialInfomationApi;
@Resource @Resource
private EntrustOrderDetailMapper entrustOrderDetailMapper; private EntrustOrderDetailMapper entrustOrderDetailMapper;
@@ -57,7 +58,9 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
public EntrustOrderDetailRespVO createEntrustOrderDetail(EntrustOrderDetailSaveReqVO createReqVO) { public EntrustOrderDetailRespVO createEntrustOrderDetail(EntrustOrderDetailSaveReqVO createReqVO) {
// 插入 // 插入
EntrustOrderDetailDO entrustOrderDetail = BeanUtils.toBean(createReqVO, EntrustOrderDetailDO.class); 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); entrustOrderDetailMapper.insert(entrustOrderDetail);
// 返回 // 返回
return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class); return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class);
@@ -69,7 +72,9 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
validateEntrustOrderDetailExists(updateReqVO.getId()); validateEntrustOrderDetailExists(updateReqVO.getId());
// 更新 // 更新
EntrustOrderDetailDO updateObj = BeanUtils.toBean(updateReqVO, EntrustOrderDetailDO.class); 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); entrustOrderDetailMapper.updateById(updateObj);
} }
@@ -190,7 +195,7 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
@Override @Override
public List<EntrustOrderDetailRespVO> insertBatchSomeColumn(List<EntrustOrderDetailSaveReqVO> entrustOrderOrderDetails) { public List<EntrustOrderDetailRespVO> insertBatchSomeColumn(List<EntrustOrderDetailSaveReqVO> entrustOrderOrderDetails) {
List<EntrustOrderDetailDO> entrustOrderDetail = BeanUtils.toBean(entrustOrderOrderDetails, EntrustOrderDetailDO.class); List<EntrustOrderDetailDO> entrustOrderDetail = BeanUtils.toBean(entrustOrderOrderDetails, EntrustOrderDetailDO.class);
entrustOrderDetail.forEach(this::setElemInfo); entrustOrderDetail.forEach(detail -> setElemInfo(detail, getMaterialElementAbbreviation(detail.getReceiveMaterialNumber()), getMaterialElementAbbreviation(detail.getSendMaterialNumber())));
entrustOrderDetailMapper.insertBatch(entrustOrderDetail); entrustOrderDetailMapper.insertBatch(entrustOrderDetail);
return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class); return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class);
} }
@@ -198,7 +203,7 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
@Override @Override
public void updateBatchSomeColumn(List<EntrustOrderDetailSaveReqVO> entrustOrderOrderDetails) { public void updateBatchSomeColumn(List<EntrustOrderDetailSaveReqVO> entrustOrderOrderDetails) {
List<EntrustOrderDetailDO> updateList = BeanUtils.toBean(entrustOrderOrderDetails, EntrustOrderDetailDO.class); List<EntrustOrderDetailDO> updateList = BeanUtils.toBean(entrustOrderOrderDetails, EntrustOrderDetailDO.class);
updateList.forEach(this::setElemInfo); updateList.forEach(detail -> setElemInfo(detail, getMaterialElementAbbreviation(detail.getReceiveMaterialNumber()), getMaterialElementAbbreviation(detail.getSendMaterialNumber())));
entrustOrderDetailMapper.insertOrUpdate(updateList); entrustOrderDetailMapper.insertOrUpdate(updateList);
} }
@@ -231,17 +236,40 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
return mtrlZhongtongCode; return mtrlZhongtongCode;
} }
private void setElemInfo(EntrustOrderDetailDO entrustOrderDetailDO) { private void setElemInfo(EntrustOrderDetailDO entrustOrderDetailDO, String receiveAbbr, String sendAbbr) {
if (entrustOrderDetailDO.getElementAbbreviation() == null) { if (entrustOrderDetailDO.getElementAbbreviation() == null) {
return; return;
} }
ElementDO elementBySymbol = elementService.getElementBySymbol(entrustOrderDetailDO.getElementAbbreviation()); ElementDO receiveAbbrElementBySymbol = elementService.getElementBySymbol(receiveAbbr);
if (elementBySymbol != null) { if (receiveAbbrElementBySymbol != null) {
entrustOrderDetailDO.setElementName(elementBySymbol.getName()); entrustOrderDetailDO.setElementAbbreviation(receiveAbbr);
entrustOrderDetailDO.setElementNumber(elementBySymbol.getCoding()); entrustOrderDetailDO.setElementName(receiveAbbrElementBySymbol.getName());
entrustOrderDetailDO.setElementNumber(receiveAbbrElementBySymbol.getCoding());
} else { } 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<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(pageReqDTO);
if (materialInfomationPage == null || materialInfomationPage.getData() == null || materialInfomationPage.getData().getList().isEmpty()) {
return null;
}
MaterialInfomationRespDTO materialInfomationRespDTO = materialInfomationPage.getData().getList().get(0);
Map<String, Object> flatAttributes = materialInfomationRespDTO.getFlatAttributes();
return flatAttributes.getOrDefault("elementAbbreviation", "").toString();
}
} }