委托加工添加发货工厂字段和明细添加金属元素字段

This commit is contained in:
潘荣晟
2026-02-09 14:18:14 +08:00
parent 42d152d54b
commit 287ec65de4
11 changed files with 117 additions and 22 deletions

View File

@@ -103,5 +103,11 @@ public class EntrustOrderDetailPageReqVO extends PageParam {
private BigDecimal recoveryRate;
@Schema(description = "行项目号")
private Integer lineNumber;
@Schema(description = "金属元素缩写")
private String elementAbbreviation;
@Schema(description = "金属元素名称")
private String elementName;
@Schema(description = "金属元素编码")
private String elementNumber;
}

View File

@@ -142,5 +142,14 @@ public class EntrustOrderDetailRespVO {
@Schema(description = "删除标识")
@ExcelProperty("删除标识")
private Boolean deleted;
@ExcelProperty("金属元素缩写")
@Schema(description = "金属元素缩写")
private String elementAbbreviation;
@ExcelProperty("金属元素名称")
@Schema(description = "金属元素名称")
private String elementName;
@ExcelProperty("金属元素编码")
@Schema(description = "金属元素编码")
private String elementNumber;
}

View File

@@ -105,4 +105,11 @@ public class EntrustOrderDetailSaveReqVO {
private BigDecimal recoveryRate;
@Schema(description = "行项目号")
private Integer lineNumber;
@Schema(description = "金属元素缩写")
private String elementAbbreviation;
@Schema(description = "金属元素名称")
private String elementName;
@Schema(description = "金属元素编码")
private String elementNumber;
}

View File

@@ -130,5 +130,13 @@ public class EntrustOrderOrderPageReqVO extends PageParam {
@Schema(description = "物料类型", example = "张三")
private String mtrlTp;
@Schema(description = "发货工厂名称", example = "张三")
private String sendFactoryName;
@Schema(description = "发货工厂编码", example = "张三")
private String sendFactoryNumber;
@Schema(description = "发货库位名称", example = "张三")
private String sendWarehouseName;
@Schema(description = "发货库位编码", example = "张三")
private String sendWarehouseNumber;
}

View File

@@ -175,4 +175,16 @@ public class EntrustOrderOrderRespVO {
@ExcelProperty("物料类型")
@Schema(description = "物料类型", example = "张三")
private String mtrlTp;
@ExcelProperty("发货工厂名称")
@Schema(description = "发货工厂名称", example = "张三")
private String sendFactoryName;
@ExcelProperty("发货工厂编码")
@Schema(description = "发货工厂编码", example = "张三")
private String sendFactoryNumber;
@ExcelProperty("发货库位名称")
@Schema(description = "发货库位名称", example = "张三")
private String sendWarehouseName;
@ExcelProperty("发货库位编码")
@Schema(description = "发货库位编码", example = "张三")
private String sendWarehouseNumber;
}

View File

@@ -151,5 +151,12 @@ public class EntrustOrderOrderSaveReqVO {
@Schema(description = "物料类型", example = "张三")
private String mtrlTp;
@Schema(description = "发货工厂名称", example = "张三")
private String sendFactoryName;
@Schema(description = "发货工厂编码", example = "张三")
private String sendFactoryNumber;
@Schema(description = "发货库位名称", example = "张三")
private String sendWarehouseName;
@Schema(description = "发货库位编码", example = "张三")
private String sendWarehouseNumber;
}

View File

@@ -176,4 +176,20 @@ public class EntrustOrderDetailDO extends BusinessBaseDO {
@TableField("LINE_NUM")
private Integer lineNumber;
/**
* 金属元素缩写
*/
@TableField("ELEM_ABBR")
private String elementAbbreviation;
/**
* 金属元素名称
*/
@TableField("ELEM_NAME")
private String elementName;
/**
* 金属元素编码
*/
@TableField("ELEM_NUM")
private String elementNumber;
}

View File

@@ -230,4 +230,26 @@ public class EntrustOrderOrderDO extends BusinessBaseDO {
*/
@TableField("MTRL_TP")
private String mtrlTp;
/**
* 发货工厂名称
*/
@TableField("SND_FACT_NAME")
private String sendFactoryName;
/**
* 发货工厂编码
*/
@TableField("SND_FACT_NUM")
private String sendFactoryNumber;
/**
* 发货库位名称
*/
@TableField("SND_WRH_NAME")
private String sendWarehouseName;
/**
* 发货库位编码
*/
@TableField("SND_WRH_NUM")
private String sendWarehouseNumber;
}

View File

@@ -57,6 +57,7 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
public EntrustOrderDetailRespVO createEntrustOrderDetail(EntrustOrderDetailSaveReqVO createReqVO) {
// 插入
EntrustOrderDetailDO entrustOrderDetail = BeanUtils.toBean(createReqVO, EntrustOrderDetailDO.class);
setElemInfo(entrustOrderDetail);
entrustOrderDetailMapper.insert(entrustOrderDetail);
// 返回
return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class);
@@ -68,6 +69,7 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
validateEntrustOrderDetailExists(updateReqVO.getId());
// 更新
EntrustOrderDetailDO updateObj = BeanUtils.toBean(updateReqVO, EntrustOrderDetailDO.class);
setElemInfo(updateObj);
entrustOrderDetailMapper.updateById(updateObj);
}
@@ -188,6 +190,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);
entrustOrderDetailMapper.insertBatch(entrustOrderDetail);
return BeanUtils.toBean(entrustOrderDetail, EntrustOrderDetailRespVO.class);
}
@@ -195,6 +198,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);
entrustOrderDetailMapper.insertOrUpdate(updateList);
}
@@ -227,17 +231,17 @@ public class EntrustOrderDetailServiceImpl implements EntrustOrderDetailService
return mtrlZhongtongCode;
}
// private void setElemInfo(EntrustOrderDetailDO entrustOrderDetailDO) {
// if (entrustOrderDetailDO.getElemAbbr() == null) {
// return;
// }
// ElementDO elementBySymbol = elementService.getElementBySymbol(entrustOrderDetailDO.getElemAbbr());
// if (elementBySymbol != null) {
// entrustOrderDetailDO.setElemName(elementBySymbol.getName());
// entrustOrderDetailDO.setElemCdg(elementBySymbol.getCoding());
// } else {
// log.warn("元素【{}】不存在,订单ID【{}】", entrustOrderDetailDO.getElemAbbr(), entrustOrderDetailDO.getOrdId());
// }
//
// }
private void setElemInfo(EntrustOrderDetailDO entrustOrderDetailDO) {
if (entrustOrderDetailDO.getElementAbbreviation() == null) {
return;
}
ElementDO elementBySymbol = elementService.getElementBySymbol(entrustOrderDetailDO.getElementAbbreviation());
if (elementBySymbol != null) {
entrustOrderDetailDO.setElementName(elementBySymbol.getName());
entrustOrderDetailDO.setElementNumber(elementBySymbol.getCoding());
} else {
log.warn("元素【{}】不存在,订单ID【{}】", entrustOrderDetailDO.getElementAbbreviation(), entrustOrderDetailDO.getOrderId());
}
}
}

View File

@@ -58,6 +58,7 @@ import java.time.format.DateTimeFormatter;
import java.util.*;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.module.contractorder.enums.ErpConstants.*;
import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS;
import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.*;
import static com.zt.plat.module.receivedeliver.enums.ErrorCodeConstants.PURCHASE_ORDER_DETAIL_NOT_EXISTS;
@@ -330,7 +331,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
MaterialInfomationRespDTO materialInfomationRespDTO = materialInfomationPage.getData().getList().get(0);
Map<String, Object> flatAttributes = materialInfomationRespDTO.getFlatAttributes();
//获取中铜物料编码
String mtrlZhongtongCode = flatAttributes.getOrDefault("mtrlZhongtongCode", "").toString();
String mtrlZhongtongCode = flatAttributes.getOrDefault(MTRL_ZHONGTONG_CODE, "").toString();
if (mtrlZhongtongCode.isEmpty()) {
throw exception(MTRL_CODE_NOT_EXISTS);
}
@@ -346,7 +347,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
item.setNet_price(detail.getInTaxUprc()); // 含税单价 -> 含税单价
item.setPrice_unit(detail.getPrcUnt() != null ? detail.getPrcUnt().intValue() : 1); // 价格单位 -> 价格单位
item.setTax_code(detail.getTaxNum()); // 税码 -> 税码
item.setGr_basediv(detail.getIsGrInv()); // 是否基于GR的发票校验 -> 基于GR的发票校验
// item.setGr_basediv(detail.getIsGrInv()); // 是否基于GR的发票校验 -> 基于GR的发票校验
item.setUnlimited_dlv(detail.getIsUnlRcv()); // 是否允许无限制收货 -> 允许无限制过量交货
item.setBatch(detail.getBat()); // 批次 -> 批次
item.setAcctasscat(detail.getActsCtgr()); // 科目分配类别 -> 科目分配类别
@@ -357,17 +358,17 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
item.setVendrbatch(String.valueOf(detail.getOutLineNum())); // 外部行项目号 -> 外部行项目号
item.setNote_xq(detail.getRmkUnt()); // 备注信息-需求单位 -> 备注信息-需求单位
item.setNote_wl(detail.getRmkMtrl()); // 备注信息-物料详细 -> 备注信息-物料详细
item.setGr_basediv("1");//TODO GR发票校验
//item.setGr_basediv("1");//TODO GR发票校验
// 处理交货起止日期(格式:YYYYMMDD-YYYYMMDD)
StringBuilder vendMat = new StringBuilder();
if (detail.getBgnDt() != null) {
vendMat.append(detail.getBgnDt().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
vendMat.append(detail.getBgnDt().format(DateTimeFormatter.ofPattern(DATE_FORMAT_YYYYMMDD)));
}
vendMat.append("-");
vendMat.append(TOKEN_);
if (detail.getDdlDt() != null) {
vendMat.append(detail.getDdlDt().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
vendMat.append(detail.getDdlDt().format(DateTimeFormatter.ofPattern(DATE_FORMAT_YYYYMMDD)));
}
item.setVend_mat(vendMat.toString());
item.setVend_mat(TOKEN_.contentEquals(vendMat) ? null : vendMat.toString());
// 3.2 行项目扩展信息(Itex)
ErpOrderSaveReqVO.Itex itex = new ErpOrderSaveReqVO.Itex();
itex.setZmatnr(detail.getSaleMtrlNum()); // 销售物料号 -> 销售物料号
@@ -612,7 +613,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
MaterialInfomationRespDTO materialInfomationRespDTO = materialInfomationPage.getData().getList().get(0);
Map<String, Object> flatAttributes = materialInfomationRespDTO.getFlatAttributes();
//获取中铜物料编码
String mtrlZhongtongCode = flatAttributes.getOrDefault("mtrlZhongtongCode", "").toString();
String mtrlZhongtongCode = flatAttributes.getOrDefault(MTRL_ZHONGTONG_CODE, "").toString();
if (mtrlZhongtongCode.isEmpty()) {
throw exception(MTRL_CODE_NOT_EXISTS);
}