diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
index f6477f04b..5d01e9b63 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
@@ -34,7 +34,7 @@ public interface OmsServiceFeign {
public AjaxResult pushOutOrderDetail(@RequestBody OutMaterialDetailTZPD outMaterialDetail);
@ApiOperation("编辑物料库存")
- @PostMapping("/materialInventoryApi/omsEdit")
+ @PostMapping("/reservationMaterialInventoryApi/omsEdit")
public AjaxResult omsEdit(@RequestBody MaterialInventoryOmsParamDO materialInventoryOmsParamDO);
@ApiOperation("查询企业单位列表-新增物料时显示下拉框数据")
diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java
index 5ebd085c8..e8e410985 100644
--- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java
+++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java
@@ -710,15 +710,43 @@ public class ReservationStockOutOrderDomainService {
reservationStockInOrder.setOrderStatus("新增");
reservationStockInOrder.setSalesmanId(loginUser.getUserPo().getUserId().toString());
reservationStockInOrder.setSalesmanName(loginUser.getUserPo().getUserName());
- reservationStockInOrder.setInOrderNumber("退"+stockOutOrder.getOutOrderNumber());
+ Random random = new Random();
+ int num = random.nextInt(1000); // 0~999
+ String str = String.format("%03d", num); // 不足三位前面补零
+ reservationStockInOrder.setInOrderNumber("退"+stockOutOrder.getOutOrderNumber()+str);
reservationStockInOrderMapper.insert(reservationStockInOrder);
reservationDeliveryDetailsLink.setReturnOrderNumber(reservationStockInOrder.getInOrderNumber());
reservationDeliveryDetailsLinkService.updateById(reservationDeliveryDetailsLink);
- stockOutOrder.setReturnOrderNumber(reservationStockInOrder.getInOrderNumber());
- stockOutOrder.setDeliveryName(reservationDeliveryDetailsLink.getDeliveryName());
- stockOutOrder.setInvoiceNumber(reservationDeliveryDetailsLink.getInvoiceNumber());
- stockOutOrder.setCustomerNumber(reservationDeliveryDetailsLink.getCustomerNumber());
- stockOutOrder.setReturnQuantity(new BigDecimal(bag));
+ String returnOrderNumber = stockOutOrder.getReturnOrderNumber();
+ if (returnOrderNumber == null) {
+ stockOutOrder.setReturnOrderNumber(reservationStockInOrder.getInOrderNumber());
+ } else {
+ stockOutOrder.setReturnOrderNumber(returnOrderNumber + "," + reservationStockInOrder.getInOrderNumber());
+ }
+ String deliveryName = stockOutOrder.getDeliveryName();
+ if (deliveryName == null) {
+ stockOutOrder.setDeliveryName(reservationDeliveryDetailsLink.getDeliveryName());
+ } else {
+ stockOutOrder.setDeliveryName(deliveryName + "," + reservationDeliveryDetailsLink.getDeliveryName());
+ }
+ String invoiceNumber1 = stockOutOrder.getInvoiceNumber();
+ if (invoiceNumber1 == null) {
+ stockOutOrder.setInvoiceNumber(reservationDeliveryDetailsLink.getInvoiceNumber());
+ } else {
+ stockOutOrder.setInvoiceNumber(invoiceNumber1 + "," + reservationDeliveryDetailsLink.getInvoiceNumber());
+ }
+ String customerNumber = stockOutOrder.getCustomerNumber();
+ if (customerNumber == null) {
+ stockOutOrder.setCustomerNumber(reservationDeliveryDetailsLink.getCustomerNumber());
+ } else {
+ stockOutOrder.setCustomerNumber(customerNumber + "," + reservationDeliveryDetailsLink.getCustomerNumber());
+ }
+ BigDecimal returnQuantity = stockOutOrder.getReturnQuantity();
+ if (returnQuantity == null || returnQuantity.compareTo(BigDecimal.ZERO) == 0) {
+ stockOutOrder.setReturnQuantity(new BigDecimal(bag));
+ } else {
+ stockOutOrder.setReturnQuantity(returnQuantity.add(new BigDecimal(bag)));
+ }
stockOutOrderService.updateById(stockOutOrder);
}
}
diff --git a/mhd_oms/src/main/resources/mapper/reservationStockOutOrder/ReservationStockOutOrderMapper.xml b/mhd_oms/src/main/resources/mapper/reservationStockOutOrder/ReservationStockOutOrderMapper.xml
index ba129dc04..57b897f91 100644
--- a/mhd_oms/src/main/resources/mapper/reservationStockOutOrder/ReservationStockOutOrderMapper.xml
+++ b/mhd_oms/src/main/resources/mapper/reservationStockOutOrder/ReservationStockOutOrderMapper.xml
@@ -95,6 +95,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
+
+
+
+
+
@@ -112,7 +119,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.COMPLETE_TIME,a.ORDER_DATE,a.TRANSPORT_MODE_CODE,a.TRANSPORT_MODE_NAME,a.SUPERVISION_MODE_CODE,a.SUPERVISION_MODE_NAME,
a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app,a.reservation_audit_time,a.reservation_audit_name
,a.reservation_audit_id,a.issue_name,a.issue_id,a.issue_time,a.issue_status,a.tms_order_number,
- a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.RESERVATION_ORDER_SOURCE,a.OUTBOUND_TIME
+ a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.RESERVATION_ORDER_SOURCE,a.OUTBOUND_TIME,a.RETURN_QUANTITY,a.DELIVERY_NAME,a.CUSTOMER_NUMBER,a.INVOICE_NUMBER,a.RETURN_ORDER_NUMBER,a.TOTAL_AMOUNT,
+ a.ROUTE
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 1e920fcc5..388447438 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
@@ -53,6 +53,8 @@ import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
@@ -430,6 +432,7 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl materialMoreDetailList = new ArrayList<>();
List materialDetailSerialNumberList = new ArrayList<>();
for (ReceiptMaterialDetailDO receiptMaterialDetailDO : receiptMaterialDetailDOList){
+ setMore(receiptMaterialDetailDO);
extractBatchAttributesToReceiptDetail(receiptMaterialDetailDO);
// 自动生成批次号并校验唯一性(包括子项)
generateAndValidateBatchNumber(receiptMaterialDetailDO, shipperId, currentInOrderNumber);
@@ -453,6 +456,7 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl receiptMaterialDetailChildList = new ArrayList<>();
if (!CollectionUtils.isEmpty(receiptMaterialDetailDOChildList)){
for (ReceiptMaterialDetailDO receiptMaterialDetailDOChild : receiptMaterialDetailDOChildList){
+ setMore(receiptMaterialDetailDOChild);
// 子项批次属性已在 generateAndValidateBatchNumber 递归中提取
ReceiptMaterialDetail receiptMaterialDetailChild = new ReceiptMaterialDetail();
BeanUtils.copyProperties(receiptMaterialDetailDOChild, receiptMaterialDetailChild);
@@ -511,6 +515,72 @@ public class ReceiptMaterialDetailImpl extends ServiceImpl materialMoreDetailList = receiptMaterialDetailDO.getMaterialMoreDetailList();
+ if (!CollectionUtils.isEmpty(materialMoreDetailList)) {
+ for (MaterialMoreDetailDO materialMoreDetailDO : materialMoreDetailList) {
+ String attributeValue = materialMoreDetailDO.getAttributeValue();
+ String batchLabels = materialMoreDetailDO.getBatchLabels();
+ if ("生产日期".equals(batchLabels)) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Date date = null;
+ try {
+ date = sdf.parse(attributeValue);
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ receiptMaterialDetailDO.setProductionDate(date);
+ } else if ("过期日期".equals(batchLabels)) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Date date = null;
+ try {
+ date = sdf.parse(attributeValue);
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ receiptMaterialDetailDO.setExpiryDate(date);
+ } else if ("扩展属性4".equals(batchLabels)) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Date date = null;
+ try {
+ date = sdf.parse(attributeValue);
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ //receiptMaterialDetailDO.setExtAttr4(date);
+ } else if ("饮用日期".equals(batchLabels)) {
+// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+// Date date = null;
+// try {
+// date = sdf.parse(attributeValue);
+// } catch (ParseException e) {
+// throw new RuntimeException(e);
+// }
+// receiptMaterialDetailDO.setInventoryDate(date);
+ } else if ("扩展属性2".equals(batchLabels)) {
+ receiptMaterialDetailDO.setExtAttr2(attributeValue);
+ } else if ("扩展属性1".equals(batchLabels)) {
+ receiptMaterialDetailDO.setExtAttr1(attributeValue);
+ } else if ("箱号/卡板号".equals(batchLabels)) {
+ receiptMaterialDetailDO.setBoxPalletNo(attributeValue);
+ } else if ("Sheet Ref NO's".equals(batchLabels)) {
+ receiptMaterialDetailDO.setSheetRefNo(attributeValue);
+ } else if ("Batch Ref NO's".equals(batchLabels)) {
+ receiptMaterialDetailDO.setBatchRefNo(attributeValue);
+ } else if ("存货日期".equals(batchLabels)) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Date date = null;
+ try {
+ date = sdf.parse(attributeValue);
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ receiptMaterialDetailDO.setInventoryDate(date);
+ }
+ }
+ }
+ }
+
/**
* PDA 上传的 receiptQuantity 为「本次收货量」;落库时与累计已收货 already_receipt_quantity 对齐,
* 否则多次收货会把 receipt_quantity 覆盖成仅最后一次本次量(如先 1000 再 100 却存成 100)。
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java
index d767bae4e..32a91bbe5 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java
@@ -570,7 +570,7 @@ public class StockInOrderDomainService {
planQty = inMaterialDetailPO.getInboundQuantity();
}
receiptMaterialDetailDO.setQuantity(planQty);
- receiptMaterialDetailDO.setDrinkDate(inMaterialDetailPO.getDrinkDate());
+// receiptMaterialDetailDO.setDrinkDate(inMaterialDetailPO.getDrinkDate());
receiptMaterialDetailDOList.add(receiptMaterialDetailDO);
});
stockReceiptOrderDO.setMaterialDetailList(receiptMaterialDetailDOList);
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java
index c35e5c1e2..28bf2a392 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockReceiptOrder/service/StockReceiptOrderDomainService.java
@@ -42,6 +42,7 @@ import com.mhd.wms.domain.inventoryStandingReport.repository.todo.InventoryStand
import com.mhd.wms.domain.materialGoodsRule.entity.MaterialGoodsRule;
import com.mhd.wms.domain.materialGoodsRule.repository.facade.IMaterialGoodsRuleService;
import com.mhd.wms.domain.materialGoodsRule.repository.po.MaterialGoodsRulePO;
+import com.mhd.wms.domain.materialMoreDetail.entity.MaterialMoreDetail;
import com.mhd.wms.domain.materialMoreDetail.repository.facade.IMaterialMoreDetailService;
import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO;
import com.mhd.wms.domain.materialMoreDetail.repository.todo.MaterialMoreDetailDO;
@@ -84,6 +85,7 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -191,6 +193,20 @@ public class StockReceiptOrderDomainService {
receiptMaterialDetail.setCreateBy(loginUser.getUserid());
receiptMaterialDetail.setCreateByName(userRealName);
receiptMaterialDetail.setCreateTime(new Date());
+ Date drinkDate = receiptMaterialDetail.getDrinkDate();
+ if (drinkDate != null) {
+ receiptMaterialDetail.setExpiryDate(receiptMaterialDetail.getDrinkDate());
+ MaterialMoreDetail materialMoreDetail = new MaterialMoreDetail();
+ materialMoreDetail.setBatchLabels("过期日期");
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ String dateStr = sdf.format(drinkDate);
+ materialMoreDetail.setAttributeValue(dateStr);
+ materialMoreDetail.setMaterialDetailUniqueId(receiptMaterialDetail.getUniqueId());
+ materialMoreDetail.setOrganizationId(receiptMaterialDetail.getOrganizationId());
+ materialMoreDetail.setOrganizationName(receiptMaterialDetail.getOrganizationName());
+ materialMoreDetail.setTopOrganizationId(receiptMaterialDetail.getTopOrganizationId());
+ materialMoreDetail.setOrderNumber(receiptMaterialDetail.getReceiptOrderNumber());
+ }
receiptMaterialDetailList.add(receiptMaterialDetail);
});
});
diff --git a/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml b/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml
index c3afd64e1..bb0ce7cb0 100644
--- a/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml
+++ b/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml
@@ -88,6 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
@@ -114,7 +115,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.SPECIFICATION_MODEL, a.SKU_CODE, a.INVOICE_NO, a.LITER, a.DIMENSIONS, a.DECLARATION_UNIT, a.BATCH_REF_NO, a.SHEET_REF_NO,
a.ORIGIN_COUNTRY, a.BOX_PALLET_NO, a.CURRENCY, a.UNIT, a.DECLARED_QUANTITY, a.BOX_COUNT, a.PIECE_COUNT, a.INBOUND_QUANTITY,
a.TOTAL_NET_WEIGHT, a.TOTAL_GROSS_WEIGHT, a.TOTAL_VOLUME, a.TOTAL_AREA, a.TOTAL_PRICE,
- a.PRODUCTION_DATE, a.EXPIRY_DATE, a.INVENTORY_DATE, a.EXT_ATTR_1, a.EXT_ATTR_2, a.EXT_ATTR_3, a.EXT_ATTR_4,
+ a.PRODUCTION_DATE, a.EXPIRY_DATE, a.INVENTORY_DATE, a.EXT_ATTR_1, a.EXT_ATTR_2, a.EXT_ATTR_3, a.EXT_ATTR_4,a.DRINK_DATE,
a.OMS_IN_MATERIAL_DETAIL
,CASE
WHEN (a.quantity - a.receipt_quantity) < 0 THEN 0
diff --git a/mhd_wms/src/main/resources/mapper/receiptMaterialDetail/ReceiptMaterialDetailMapper.xml b/mhd_wms/src/main/resources/mapper/receiptMaterialDetail/ReceiptMaterialDetailMapper.xml
index b80f63648..29926d057 100644
--- a/mhd_wms/src/main/resources/mapper/receiptMaterialDetail/ReceiptMaterialDetailMapper.xml
+++ b/mhd_wms/src/main/resources/mapper/receiptMaterialDetail/ReceiptMaterialDetailMapper.xml
@@ -89,6 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
@@ -96,7 +97,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select a.MATERIAL_DETAIL_ID, a.ORGANIZATION_ID, a.ORGANIZATION_NAME, a.TOP_ORGANIZATION_ID, a.UNIQUE_ID, a.RECEIPT_ORDER_NUMBER, a.MATERIAL_BASE_INFO_ID,
ifnull(a.MATERIAL_CODE, c.MATERIAL_CODE) MATERIAL_CODE,
ifnull(a.MATERIAL_NAME, c.MATERIAL_NAME) MATERIAL_NAME,
- a.BAR_CODE,
+ a.BAR_CODE,
c.SPECIFICATION_MODEL,
a.DIMENSIONS DIMENSIONS,
a.QUANTITY, a.ALREADY_RECEIPT_QUANTITY, a.ALREADY_RECEIPT_GROSS_WEIGHT, a.ALREADY_RECEIPT_NET_WEIGHT, a.ALREADY_RECEIPT_VOLUME, a.ALREADY_RECEIPT_AREA, a.RECEIPT_QUANTITY, a.RECEIPT_STATUS, a.PACK_ID, a.PACK_CODE, a.PACK_NAME, a.PACK_DETAIL_ID, ifnull(a.UNIT_CODE, b.UNIT_CODE) UNIT_CODE, ifnull(a.UNIT_NAME, b.UNIT_NAME) UNIT_NAME, a.UNIT_NUMBER, a.MATERIAL_WAREHOUSE_CONTROL_ID, a.SERIAL_NUMBER_MANAGE, a.QUALITY_INSPECTION_MANAGE, a.QUALITY_INSPECTION_STAGE, a.QUALITY_INSPECTION_RULE, a.QUALITY_INSPECTION_RATIO, a.QUALITY_INSPECTION_TERM, a.QUALITY_INSPECTION_RESULTS, a.ALLOW_OVERCHARGE, a.OVERCHARGE_RATIO, a.BATCH_NUMBER, ifnull(a.LOT_NO, b.LOT_NO) LOT_NO, a.MATERIAL_STATUS_CODE, a.MATERIAL_STATUS_NAME, a.DISTRIBUTE_RULE_ID, a.DISTRIBUTE_RULE_CODE, a.DISTRIBUTE_RULE_NAME, a.CONTAINER_ID, a.CONTAINER_CODE, a.CONTAINER_TYPE, a.CONTAINER_TYPE_NAME, a.LEVEL, a.PARENT_UNIQUE_ID, a.IN_UNIQUE_ID, a.ALLOW_MODIFY, a.REMARK, a.CREATE_TIME, a.CREATE_BY, a.CREATE_BY_NAME, a.UPDATE_TIME, a.UPDATE_BY, a.UPDATE_BY_NAME, a.GEN_STOCK_SHELF, a.DEL_FLAG,
@@ -121,7 +122,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ifnull(a.EXT_ATTR_2, b.EXT_ATTR_2) EXT_ATTR_2,
ifnull(a.EXT_ATTR_3, b.EXT_ATTR_3) EXT_ATTR_3,
ifnull(a.EXT_ATTR_4, b.EXT_ATTR_4) EXT_ATTR_4,
- a.OMS_IN_MATERIAL_DETAIL
+ a.OMS_IN_MATERIAL_DETAIL,
+ a.DRINK_DATE
from RECEIPT_MATERIAL_DETAIL a
LEFT JOIN IN_MATERIAL_DETAIL b ON a.IN_UNIQUE_ID = b.UNIQUE_ID AND b.DEL_FLAG = 1
LEFT JOIN MATERIAL_BASE_INFO c ON a.MATERIAL_BASE_INFO_ID = c.MATERIAL_BASE_INFO_ID AND c.DEL_FLAG = 1