diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java index 1ae796e4a..09b9da778 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/receiptMaterialDetail/repository/persistence/ReceiptMaterialDetailImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mhd.common.core.constant.SnowFlakeConstants; import com.mhd.common.core.exception.ServiceException; +import com.mhd.common.core.utils.DateUtils; import com.mhd.common.core.utils.IgnoreNullUtil; import com.mhd.common.core.utils.OrderSequence; import com.mhd.common.core.utils.uuid.IdGenerator; @@ -243,6 +244,70 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl materialMoreDetailList = new ArrayList<>(); List materialDetailSerialNumberList = new ArrayList<>(); for (ReceiptMaterialDetailDO receiptMaterialDetailDO : receiptMaterialDetailDOList){ + List materialMoreDetailList1 = receiptMaterialDetailDO.getMaterialMoreDetailList(); + for (MaterialMoreDetailDO materialMoreDetailDO : materialMoreDetailList1) { + String batchLabels = materialMoreDetailDO.getBatchLabels(); + String attributeValue = materialMoreDetailDO.getAttributeValue(); + if (attributeValue != null && !attributeValue.isEmpty() && attributeValue != "" && attributeValue.length() > 0 ) { + attributeValue = attributeValue.trim(); + switch (batchLabels) { + case "扩展字段4": + receiptMaterialDetailDO.setExtAttr4(attributeValue); + break; + case "扩展字段3": + receiptMaterialDetailDO.setExtAttr3(attributeValue); + break; + case "扩展字段2": + receiptMaterialDetailDO.setExtAttr2(attributeValue); + break; + case "扩展字段1": + receiptMaterialDetailDO.setExtAttr1(attributeValue); + break; + case "箱号/卡板号": + receiptMaterialDetailDO.setBoxPalletNo(attributeValue); + break; + case "Sheet Ref NO's": + receiptMaterialDetailDO.setSheetRefNo(attributeValue); + break; + case "Batch Ref NO's": + receiptMaterialDetailDO.setBatchRefNo(attributeValue); + break; + case "库存日期": + // 判断是否是日期格式再赋值避免报错 + try { + if (attributeValue.matches("\\d{4}-\\d{2}-\\d{2}.*")) { + receiptMaterialDetailDO.setInventoryDate(DateUtils.parseDate(attributeValue)); + } + } catch (Exception e) { + log.warn("库存日期格式转换失败,物料:{},原始值:{}", receiptMaterialDetailDO.getMaterialName(), attributeValue); + } + //receiptMaterialDetailDO.setInventoryDate(DateUtils.parseDate(attributeValue)); + break; + case "过期日期": + // 判断是否是日期格式再赋值避免报错 + try { + if (attributeValue.matches("\\d{4}-\\d{2}-\\d{2}.*")) { + receiptMaterialDetailDO.setExpiryDate(DateUtils.parseDate(attributeValue)); + } + } catch (Exception e) { + log.warn("库存日期格式转换失败,物料:{},原始值:{}", receiptMaterialDetailDO.getMaterialName(), attributeValue); + } + //receiptMaterialDetailDO.setExpiryDate(DateUtils.parseDate(attributeValue)); + break; + case "生产日期": + // 判断是否是日期格式再赋值避免报错 + try { + if (attributeValue.matches("\\d{4}-\\d{2}-\\d{2}.*")) { + receiptMaterialDetailDO.setProductionDate(DateUtils.parseDate(attributeValue)); + } + } catch (Exception e) { + log.warn("库存日期格式转换失败,物料:{},原始值:{}", receiptMaterialDetailDO.getMaterialName(), attributeValue); + } + //receiptMaterialDetailDO.setProductionDate(DateUtils.parseDate(attributeValue)); + break; + } + } + } // 自动生成批次号并校验唯一性(包括子项) generateAndValidateBatchNumber(receiptMaterialDetailDO, shipperId); //更多属性 @@ -802,4 +867,4 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl