Merge branch 'dev_qinhongzhanWMS' into wms_dev
This commit is contained in:
+140
-9
@@ -17,9 +17,12 @@ import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.application.service.materialBaseInfo.MaterialBaseInfoApplicationService;
|
||||
import com.mhd.wms.application.service.stockOutOrder.StockOutOrderApplicationService;
|
||||
import com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.mapper.MaterialBaseInfoMapper;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.todo.MaterialBaseInfoDO;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO;
|
||||
import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder;
|
||||
import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService;
|
||||
@@ -49,6 +52,8 @@ public class ExcelParseService {
|
||||
@Autowired
|
||||
private MaterialBaseInfoMapper materialBaseInfoMapper;
|
||||
@Autowired
|
||||
private MaterialBaseInfoApplicationService materialBaseInfoService;
|
||||
@Autowired
|
||||
private StockOutOrderDomainService stockOutOrderDomainService;
|
||||
@Resource
|
||||
private UserServiceFeign userServiceFeign;
|
||||
@@ -92,13 +97,18 @@ public class ExcelParseService {
|
||||
itemReader.finish();
|
||||
List<OutMaterialDetailDO> itemList = itemListener.getItemList();
|
||||
StockOutOrderDO stockOutOrder = headerListener.getStockOutOrder();
|
||||
initList(itemList,warehouseId,warehouseCode,warehouseName);
|
||||
// 提前获取货主ID,用于查询物料基础信息时过滤
|
||||
String customerName = stockOutOrder.getCustomerName();
|
||||
Long shipperId = getShipperIdByCustomerName(customerName);
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
Long topOrganizationId = loginUser != null && loginUser.getUserPo() != null
|
||||
? loginUser.getUserPo().getTopOrganizationId() : null;
|
||||
initList(itemList, warehouseId, warehouseCode, warehouseName, shipperId, topOrganizationId);
|
||||
stockOutOrder.setMaterialDetailList(itemList);
|
||||
stockOutOrder.setWarehouseName(warehouseName);
|
||||
stockOutOrder.setWarehouseCode(warehouseCode);
|
||||
stockOutOrder.setWarehouseId(warehouseId);
|
||||
initDict(stockOutOrder);
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
stockOutOrder.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
stockOutOrder.setOrganizationId(loginUser.getUserPo().getOrganizationId());
|
||||
@@ -222,19 +232,140 @@ public class ExcelParseService {
|
||||
return errorMsg;
|
||||
}
|
||||
|
||||
private void initList(List<OutMaterialDetailDO> outMaterialDetailDOList, Long warehouseId, String warehouseCode, String warehouseName) {
|
||||
/**
|
||||
* @description 根据客户名称获取货主ID(用于导入时提前获取货主ID)
|
||||
* @param customerName 客户名称(在出库单中,客户名称就是货主名称)
|
||||
* @return 货主ID,如果找不到则返回null
|
||||
*/
|
||||
private Long getShipperIdByCustomerName(String customerName) {
|
||||
if (StringUtils.isEmpty(customerName)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
if (!customerName.matches("\\d+")) {
|
||||
// 按名称查询
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfoByName(customerName);
|
||||
if ("200".equals(String.valueOf(ajaxResult.get("code")))) {
|
||||
UserPo userPo = JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
if (userPo != null) {
|
||||
return userPo.getUserId();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 按ID查询
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(Long.valueOf(customerName));
|
||||
if ("200".equals(String.valueOf(ajaxResult.get("code")))) {
|
||||
UserPo userPo = JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
if (userPo != null) {
|
||||
return userPo.getUserId();
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 如果查询失败,返回null,后续在shipperParam方法中会再次尝试
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 初始化物料明细列表,查询物料基础信息并设置物料基础信息ID(改为与入库单相同的逻辑)
|
||||
* @param outMaterialDetailDOList 出库物料明细列表
|
||||
* @param warehouseId 仓库ID
|
||||
* @param warehouseCode 仓库编码
|
||||
* @param warehouseName 仓库名称
|
||||
* @param shipperId 货主ID(用于过滤物料基础信息,确保查询到的是该货主绑定的物料)
|
||||
* @param topOrganizationId 一级组织ID(用于过滤物料基础信息)
|
||||
*/
|
||||
private void initList(List<OutMaterialDetailDO> outMaterialDetailDOList, Long warehouseId, String warehouseCode, String warehouseName, Long shipperId, Long topOrganizationId) {
|
||||
for (OutMaterialDetailDO outMaterialDetailDO : outMaterialDetailDOList) {
|
||||
outMaterialDetailDO.setWarehouseId(warehouseId);
|
||||
outMaterialDetailDO.setWarehouseCode(warehouseCode);
|
||||
outMaterialDetailDO.setWarehouseName(warehouseName);
|
||||
|
||||
// 根据明细表中的字段查询物料基础信息(优先:料号 > 商品SKU码 > 商品名称)
|
||||
// 注意:查询时必须加上货主ID条件,确保查询到的是该货主绑定的物料
|
||||
Long materialBaseInfoId = null;
|
||||
|
||||
MaterialBaseInfoPO materialBaseInfoPO = null;
|
||||
|
||||
// 优先使用料号查询(materialNo对应materialCode)
|
||||
String materialNo = outMaterialDetailDO.getMaterialNo();
|
||||
List<MaterialBaseInfo> materialBaseInfos = materialBaseInfoMapper.selectList(new LambdaQueryWrapper<MaterialBaseInfo>().eq(MaterialBaseInfo::getMaterialCode, materialNo));
|
||||
if (!materialBaseInfos.isEmpty()) {
|
||||
if (materialBaseInfos.size() > 1) {
|
||||
return;
|
||||
if (StringUtils.isNotBlank(materialNo)) {
|
||||
MaterialBaseInfoDO queryDO = new MaterialBaseInfoDO();
|
||||
queryDO.setMaterialCode(materialNo);
|
||||
if (topOrganizationId != null) {
|
||||
queryDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
// 加上货主ID条件,确保查询到的是该货主绑定的物料
|
||||
if (shipperId != null) {
|
||||
queryDO.setShipperId(shipperId);
|
||||
}
|
||||
List<MaterialBaseInfoPO> materialList = materialBaseInfoService.queryList(queryDO);
|
||||
if (materialList != null && !materialList.isEmpty()) {
|
||||
materialBaseInfoPO = materialList.get(0);
|
||||
materialBaseInfoId = materialBaseInfoPO.getMaterialBaseInfoId();
|
||||
}
|
||||
}
|
||||
|
||||
// 如果料号查询不到,使用商品SKU码查询(skucode对应barCode)
|
||||
if (materialBaseInfoId == null && StringUtils.isNotBlank(outMaterialDetailDO.getSkucode())) {
|
||||
MaterialBaseInfoDO queryDO = new MaterialBaseInfoDO();
|
||||
queryDO.setBarCode(outMaterialDetailDO.getSkucode());
|
||||
if (topOrganizationId != null) {
|
||||
queryDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
// 加上货主ID条件,确保查询到的是该货主绑定的物料
|
||||
if (shipperId != null) {
|
||||
queryDO.setShipperId(shipperId);
|
||||
}
|
||||
List<MaterialBaseInfoPO> materialList = materialBaseInfoService.queryList(queryDO);
|
||||
if (materialList != null && !materialList.isEmpty()) {
|
||||
materialBaseInfoPO = materialList.get(0);
|
||||
materialBaseInfoId = materialBaseInfoPO.getMaterialBaseInfoId();
|
||||
}
|
||||
}
|
||||
|
||||
// 如果料号和SKU码都查询不到,使用商品名称查询(commodityName对应materialName)
|
||||
if (materialBaseInfoId == null && StringUtils.isNotBlank(outMaterialDetailDO.getCommodityName())) {
|
||||
MaterialBaseInfoDO queryDO = new MaterialBaseInfoDO();
|
||||
queryDO.setMaterialName(outMaterialDetailDO.getCommodityName());
|
||||
if (topOrganizationId != null) {
|
||||
queryDO.setTopOrganizationId(topOrganizationId);
|
||||
}
|
||||
// 加上货主ID条件,确保查询到的是该货主绑定的物料
|
||||
if (shipperId != null) {
|
||||
queryDO.setShipperId(shipperId);
|
||||
}
|
||||
List<MaterialBaseInfoPO> materialList = materialBaseInfoService.queryList(queryDO);
|
||||
if (materialList != null && !materialList.isEmpty()) {
|
||||
materialBaseInfoPO = materialList.get(0);
|
||||
materialBaseInfoId = materialBaseInfoPO.getMaterialBaseInfoId();
|
||||
}
|
||||
}
|
||||
|
||||
// 设置物料基础信息ID,并从物料基础信息中回填料号、物料编码、物料名称等信息
|
||||
if (materialBaseInfoId != null && materialBaseInfoPO != null) {
|
||||
outMaterialDetailDO.setMaterialBaseInfoId(materialBaseInfoId);
|
||||
// 如果Excel中没有料号,从物料基础信息中回填
|
||||
if (StringUtils.isBlank(outMaterialDetailDO.getMaterialNo())) {
|
||||
outMaterialDetailDO.setMaterialNo(materialBaseInfoPO.getMaterialCode());
|
||||
}
|
||||
// 回填物料编码
|
||||
if (StringUtils.isBlank(outMaterialDetailDO.getMaterialCode())) {
|
||||
outMaterialDetailDO.setMaterialCode(materialBaseInfoPO.getMaterialCode());
|
||||
}
|
||||
// 回填物料名称(如果Excel中的商品名称为空,使用物料基础信息中的名称)
|
||||
if (StringUtils.isBlank(outMaterialDetailDO.getCommodityName())) {
|
||||
outMaterialDetailDO.setCommodityName(materialBaseInfoPO.getMaterialName());
|
||||
}
|
||||
// 回填物料名称到materialName字段
|
||||
outMaterialDetailDO.setMaterialName(materialBaseInfoPO.getMaterialName());
|
||||
// 如果Excel中没有SKU码,从物料基础信息中回填
|
||||
if (StringUtils.isBlank(outMaterialDetailDO.getSkucode())) {
|
||||
outMaterialDetailDO.setSkucode(materialBaseInfoPO.getBarCode());
|
||||
}
|
||||
MaterialBaseInfo materialBaseInfo = materialBaseInfos.get(0);
|
||||
outMaterialDetailDO.setMaterialBaseInfoId(materialBaseInfo.getMaterialBaseInfoId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+101
-64
@@ -668,6 +668,12 @@ public class StockReceiptOrderDomainService {
|
||||
stockShelfOrderDO.setStatus(1);
|
||||
List<ShelfMaterialDetailDO> shelfMaterialDetailDOList = new ArrayList<>();
|
||||
stockReceiptOrderDO.getMaterialDetailList().forEach(receiptMaterialDetailDO -> {
|
||||
// 如果已收货数量为0,跳过该明细,不生成上架单明细任务
|
||||
if (receiptMaterialDetailDO.getReceiptQuantity() == null ||
|
||||
receiptMaterialDetailDO.getReceiptQuantity().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
ShelfMaterialDetailDO shelfMaterialDetailDO = new ShelfMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDO, shelfMaterialDetailDO);
|
||||
shelfMaterialDetailDO.setQuantity(receiptMaterialDetailDO.getReceiptQuantity());
|
||||
@@ -699,40 +705,50 @@ public class StockReceiptOrderDomainService {
|
||||
// 如果转换失败,不设置该字段
|
||||
}
|
||||
}
|
||||
receiptMaterialDetailDO.getChildren().forEach(receiptMaterialDetailDOChildren -> {
|
||||
ShelfMaterialDetailDO shelfMaterialDetailDOChildren = new ShelfMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChildren, shelfMaterialDetailDOChildren);
|
||||
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailDO.getInUniqueId());
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailDO.getUniqueId());
|
||||
// 传递生产日期、过期日期、存货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
shelfMaterialDetailDOChildren.setProductionDate(receiptMaterialDetailDOChildren.getProductionDate());
|
||||
shelfMaterialDetailDOChildren.setExpiryDate(receiptMaterialDetailDOChildren.getExpiryDate());
|
||||
shelfMaterialDetailDOChildren.setInventoryDate(receiptMaterialDetailDOChildren.getInventoryDate());
|
||||
shelfMaterialDetailDOChildren.setBatchRefNo(receiptMaterialDetailDOChildren.getBatchRefNo());
|
||||
shelfMaterialDetailDOChildren.setSheetRefNo(receiptMaterialDetailDOChildren.getSheetRefNo());
|
||||
shelfMaterialDetailDOChildren.setBoxPalletNo(receiptMaterialDetailDOChildren.getBoxPalletNo());
|
||||
shelfMaterialDetailDOChildren.setExtAttr1(receiptMaterialDetailDOChildren.getExtAttr1());
|
||||
shelfMaterialDetailDOChildren.setExtAttr2(receiptMaterialDetailDOChildren.getExtAttr2());
|
||||
// extAttr3和extAttr4在ReceiptMaterialDetailDO中是String类型,在ShelfMaterialDetailDO中是Date类型,需要转换
|
||||
if (receiptMaterialDetailDOChildren.getExtAttr3() != null && !receiptMaterialDetailDOChildren.getExtAttr3().isEmpty()) {
|
||||
try {
|
||||
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
shelfMaterialDetailDOChildren.setExtAttr3(sdf.parse(receiptMaterialDetailDOChildren.getExtAttr3()));
|
||||
} catch (Exception e) {
|
||||
// 如果转换失败,不设置该字段
|
||||
|
||||
// 处理子项:如果子项的已收货数量为0,跳过该子项
|
||||
if (receiptMaterialDetailDO.getChildren() != null && !receiptMaterialDetailDO.getChildren().isEmpty()) {
|
||||
receiptMaterialDetailDO.getChildren().forEach(receiptMaterialDetailDOChildren -> {
|
||||
// 如果子项的已收货数量为0,跳过该子项,不生成上架单明细任务
|
||||
if (receiptMaterialDetailDOChildren.getReceiptQuantity() == null ||
|
||||
receiptMaterialDetailDOChildren.getReceiptQuantity().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (receiptMaterialDetailDOChildren.getExtAttr4() != null && !receiptMaterialDetailDOChildren.getExtAttr4().isEmpty()) {
|
||||
try {
|
||||
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
shelfMaterialDetailDOChildren.setExtAttr4(sdf.parse(receiptMaterialDetailDOChildren.getExtAttr4()));
|
||||
} catch (Exception e) {
|
||||
// 如果转换失败,不设置该字段
|
||||
|
||||
ShelfMaterialDetailDO shelfMaterialDetailDOChildren = new ShelfMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChildren, shelfMaterialDetailDOChildren);
|
||||
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailDO.getInUniqueId());
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailDO.getUniqueId());
|
||||
// 传递生产日期、过期日期、存货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
shelfMaterialDetailDOChildren.setProductionDate(receiptMaterialDetailDOChildren.getProductionDate());
|
||||
shelfMaterialDetailDOChildren.setExpiryDate(receiptMaterialDetailDOChildren.getExpiryDate());
|
||||
shelfMaterialDetailDOChildren.setInventoryDate(receiptMaterialDetailDOChildren.getInventoryDate());
|
||||
shelfMaterialDetailDOChildren.setBatchRefNo(receiptMaterialDetailDOChildren.getBatchRefNo());
|
||||
shelfMaterialDetailDOChildren.setSheetRefNo(receiptMaterialDetailDOChildren.getSheetRefNo());
|
||||
shelfMaterialDetailDOChildren.setBoxPalletNo(receiptMaterialDetailDOChildren.getBoxPalletNo());
|
||||
shelfMaterialDetailDOChildren.setExtAttr1(receiptMaterialDetailDOChildren.getExtAttr1());
|
||||
shelfMaterialDetailDOChildren.setExtAttr2(receiptMaterialDetailDOChildren.getExtAttr2());
|
||||
// extAttr3和extAttr4在ReceiptMaterialDetailDO中是String类型,在ShelfMaterialDetailDO中是Date类型,需要转换
|
||||
if (receiptMaterialDetailDOChildren.getExtAttr3() != null && !receiptMaterialDetailDOChildren.getExtAttr3().isEmpty()) {
|
||||
try {
|
||||
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
shelfMaterialDetailDOChildren.setExtAttr3(sdf.parse(receiptMaterialDetailDOChildren.getExtAttr3()));
|
||||
} catch (Exception e) {
|
||||
// 如果转换失败,不设置该字段
|
||||
}
|
||||
}
|
||||
}
|
||||
shelfMaterialDetailDOList.add(shelfMaterialDetailDOChildren);
|
||||
});
|
||||
if (receiptMaterialDetailDOChildren.getExtAttr4() != null && !receiptMaterialDetailDOChildren.getExtAttr4().isEmpty()) {
|
||||
try {
|
||||
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
shelfMaterialDetailDOChildren.setExtAttr4(sdf.parse(receiptMaterialDetailDOChildren.getExtAttr4()));
|
||||
} catch (Exception e) {
|
||||
// 如果转换失败,不设置该字段
|
||||
}
|
||||
}
|
||||
shelfMaterialDetailDOList.add(shelfMaterialDetailDOChildren);
|
||||
});
|
||||
}
|
||||
shelfMaterialDetailDOList.add(shelfMaterialDetailDO);
|
||||
});
|
||||
stockShelfOrderDO.setMaterialDetailList(shelfMaterialDetailDOList);
|
||||
@@ -786,6 +802,12 @@ public class StockReceiptOrderDomainService {
|
||||
}
|
||||
for (ReceiptMaterialDetailPO receiptMaterialDetailPO : receiptMaterialDetailPOS) {
|
||||
if (2 == receiptMaterialDetailPO.getGenStockShelf()) {
|
||||
// 如果已收货数量为0,跳过该明细,不生成上架单明细任务
|
||||
if (receiptMaterialDetailPO.getReceiptQuantity() == null ||
|
||||
receiptMaterialDetailPO.getReceiptQuantity().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
ShelfMaterialDetailDO shelfMaterialDetailDO = new ShelfMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailPO, shelfMaterialDetailDO);
|
||||
shelfMaterialDetailDO.setQuantity(receiptMaterialDetailPO.getReceiptQuantity());
|
||||
@@ -869,6 +891,12 @@ public class StockReceiptOrderDomainService {
|
||||
List<ReceiptMaterialDetailPO> receiptMaterialDetailPODbs = receiptMaterialDetailPOListMap.get(p.getReceiptOrderNumber());
|
||||
List<ShelfMaterialDetailDO> shelfMaterialDetailDOList = new ArrayList<>();
|
||||
receiptMaterialDetailPODbs.forEach(receiptMaterialDetailPO -> {
|
||||
// 如果已收货数量为0,跳过该明细,不生成上架单明细任务
|
||||
if (receiptMaterialDetailPO.getReceiptQuantity() == null ||
|
||||
receiptMaterialDetailPO.getReceiptQuantity().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
ShelfMaterialDetailDO shelfMaterialDetailDO = new ShelfMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailPO, shelfMaterialDetailDO);
|
||||
shelfMaterialDetailDO.setQuantity(receiptMaterialDetailPO.getReceiptQuantity());
|
||||
@@ -900,40 +928,49 @@ public class StockReceiptOrderDomainService {
|
||||
// 如果转换失败,不设置该字段
|
||||
}
|
||||
}
|
||||
receiptMaterialDetailPO.getChildren().forEach(receiptMaterialDetailDOChildren -> {
|
||||
ShelfMaterialDetailDO shelfMaterialDetailDOChildren = new ShelfMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChildren, shelfMaterialDetailDOChildren);
|
||||
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailPO.getInUniqueId());
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailPO.getUniqueId());
|
||||
// 传递生产日期、过期日期、存货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
shelfMaterialDetailDOChildren.setProductionDate(receiptMaterialDetailDOChildren.getProductionDate());
|
||||
shelfMaterialDetailDOChildren.setExpiryDate(receiptMaterialDetailDOChildren.getExpiryDate());
|
||||
shelfMaterialDetailDOChildren.setInventoryDate(receiptMaterialDetailDOChildren.getInventoryDate());
|
||||
shelfMaterialDetailDOChildren.setBatchRefNo(receiptMaterialDetailDOChildren.getBatchRefNo());
|
||||
shelfMaterialDetailDOChildren.setSheetRefNo(receiptMaterialDetailDOChildren.getSheetRefNo());
|
||||
shelfMaterialDetailDOChildren.setBoxPalletNo(receiptMaterialDetailDOChildren.getBoxPalletNo());
|
||||
shelfMaterialDetailDOChildren.setExtAttr1(receiptMaterialDetailDOChildren.getExtAttr1());
|
||||
shelfMaterialDetailDOChildren.setExtAttr2(receiptMaterialDetailDOChildren.getExtAttr2());
|
||||
// extAttr3和extAttr4在ReceiptMaterialDetailPO中是String类型,在ShelfMaterialDetailDO中是Date类型,需要转换
|
||||
if (receiptMaterialDetailDOChildren.getExtAttr3() != null && !receiptMaterialDetailDOChildren.getExtAttr3().isEmpty()) {
|
||||
try {
|
||||
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
shelfMaterialDetailDOChildren.setExtAttr3(sdf.parse(receiptMaterialDetailDOChildren.getExtAttr3()));
|
||||
} catch (Exception e) {
|
||||
// 如果转换失败,不设置该字段
|
||||
// 处理子项:如果子项的已收货数量为0,跳过该子项
|
||||
if (receiptMaterialDetailPO.getChildren() != null && !receiptMaterialDetailPO.getChildren().isEmpty()) {
|
||||
receiptMaterialDetailPO.getChildren().forEach(receiptMaterialDetailDOChildren -> {
|
||||
// 如果子项的已收货数量为0,跳过该子项,不生成上架单明细任务
|
||||
if (receiptMaterialDetailDOChildren.getReceiptQuantity() == null ||
|
||||
receiptMaterialDetailDOChildren.getReceiptQuantity().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (receiptMaterialDetailDOChildren.getExtAttr4() != null && !receiptMaterialDetailDOChildren.getExtAttr4().isEmpty()) {
|
||||
try {
|
||||
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
shelfMaterialDetailDOChildren.setExtAttr4(sdf.parse(receiptMaterialDetailDOChildren.getExtAttr4()));
|
||||
} catch (Exception e) {
|
||||
// 如果转换失败,不设置该字段
|
||||
|
||||
ShelfMaterialDetailDO shelfMaterialDetailDOChildren = new ShelfMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChildren, shelfMaterialDetailDOChildren);
|
||||
shelfMaterialDetailDOChildren.setQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
||||
shelfMaterialDetailDOChildren.setInUniqueId(receiptMaterialDetailPO.getInUniqueId());
|
||||
shelfMaterialDetailDOChildren.setReceiptUniqueId(receiptMaterialDetailPO.getUniqueId());
|
||||
// 传递生产日期、过期日期、存货日期、Batch Ref NO's、Sheet Ref NO's、箱号/卡板号、扩展属性1-4
|
||||
shelfMaterialDetailDOChildren.setProductionDate(receiptMaterialDetailDOChildren.getProductionDate());
|
||||
shelfMaterialDetailDOChildren.setExpiryDate(receiptMaterialDetailDOChildren.getExpiryDate());
|
||||
shelfMaterialDetailDOChildren.setInventoryDate(receiptMaterialDetailDOChildren.getInventoryDate());
|
||||
shelfMaterialDetailDOChildren.setBatchRefNo(receiptMaterialDetailDOChildren.getBatchRefNo());
|
||||
shelfMaterialDetailDOChildren.setSheetRefNo(receiptMaterialDetailDOChildren.getSheetRefNo());
|
||||
shelfMaterialDetailDOChildren.setBoxPalletNo(receiptMaterialDetailDOChildren.getBoxPalletNo());
|
||||
shelfMaterialDetailDOChildren.setExtAttr1(receiptMaterialDetailDOChildren.getExtAttr1());
|
||||
shelfMaterialDetailDOChildren.setExtAttr2(receiptMaterialDetailDOChildren.getExtAttr2());
|
||||
// extAttr3和extAttr4在ReceiptMaterialDetailPO中是String类型,在ShelfMaterialDetailDO中是Date类型,需要转换
|
||||
if (receiptMaterialDetailDOChildren.getExtAttr3() != null && !receiptMaterialDetailDOChildren.getExtAttr3().isEmpty()) {
|
||||
try {
|
||||
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
shelfMaterialDetailDOChildren.setExtAttr3(sdf.parse(receiptMaterialDetailDOChildren.getExtAttr3()));
|
||||
} catch (Exception e) {
|
||||
// 如果转换失败,不设置该字段
|
||||
}
|
||||
}
|
||||
}
|
||||
shelfMaterialDetailDOList.add(shelfMaterialDetailDOChildren);
|
||||
});
|
||||
if (receiptMaterialDetailDOChildren.getExtAttr4() != null && !receiptMaterialDetailDOChildren.getExtAttr4().isEmpty()) {
|
||||
try {
|
||||
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
shelfMaterialDetailDOChildren.setExtAttr4(sdf.parse(receiptMaterialDetailDOChildren.getExtAttr4()));
|
||||
} catch (Exception e) {
|
||||
// 如果转换失败,不设置该字段
|
||||
}
|
||||
}
|
||||
shelfMaterialDetailDOList.add(shelfMaterialDetailDOChildren);
|
||||
});
|
||||
}
|
||||
shelfMaterialDetailDOList.add(shelfMaterialDetailDO);
|
||||
});
|
||||
stockShelfOrderDO.setMaterialDetailList(shelfMaterialDetailDOList);
|
||||
|
||||
Reference in New Issue
Block a user