来料加工

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;
/**
* 金属元素缩写
* 收货金属元素缩写
*/
@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;
}

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 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<ContractMainDO> {
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>()
.likeIfPresent(ContractMainDO::getContractName, reqVO.getContractName())
.likeIfPresent(ContractMainDO::getContractPaperNumber, reqVO.getContractPaperNumber())
@@ -27,11 +36,18 @@ public interface ContractMainMapper extends BaseMapperX<ContractMainDO> {
.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<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>()
.likeIfPresent(ContractMainDO::getContractName, reqVO.getContractName())
.likeIfPresent(ContractMainDO::getContractPaperNumber, reqVO.getContractPaperNumber())
@@ -41,7 +57,7 @@ public interface ContractMainMapper extends BaseMapperX<ContractMainDO> {
.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));

View File

@@ -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<EntrustOrderDetailRespVO> insertBatchSomeColumn(List<EntrustOrderDetailSaveReqVO> entrustOrderOrderDetails) {
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);
return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class);
}
@@ -198,7 +203,7 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
@Override
public void updateBatchSomeColumn(List<EntrustOrderDetailSaveReqVO> entrustOrderOrderDetails) {
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);
}
@@ -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<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();
}
}