diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java index 9aa0f5ed4..f3db21216 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderApplicationService.java @@ -1210,7 +1210,7 @@ public class ReservationStockOutOrderApplicationService { bodyList.add(order); GwLog gwLog = new GwLog(); - gwLog.setType("出口订单"); + gwLog.setType("保税仓-出口订单"); gwLog.setBusinessId(id); gwLog.setRequestBody(com.alibaba.fastjson.JSONObject.toJSONString(bodyList)); gwLog.setResponseBody(""); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java index 45b2e4d6c..e47d06799 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/pickingOrder/PickingOrderApplicationService.java @@ -20,7 +20,10 @@ import com.mhd.system.api.domain.StorageLocationFeignPO; import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO; import com.mhd.system.api.domain.cache.SystemServiceCacheUtil; import com.mhd.system.api.model.LoginUser; +import com.mhd.wms.application.service.materialBaseInfo.MaterialBaseInfoApplicationService; +import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO; import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO; +import com.mhd.wms.domain.pickingMaterialDetail.repository.facade.IPickingMaterialDetailService; import com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO; import com.mhd.wms.domain.pickingMaterialDetail.repository.todo.PickingMaterialDetailDO; import com.mhd.wms.domain.pickingMaterialDetail.service.PickingMaterialDetailDomainService; @@ -81,6 +84,10 @@ public class PickingOrderApplicationService { private IOutMaterialDetailService outMaterialDetailService; @Resource private PickingOrderMapper pickingOrderMapper; + @Autowired + private MaterialBaseInfoApplicationService materialBaseInfoApplicationService; + @Autowired + private IPickingMaterialDetailService pickingMaterialDetailService; private static final String PUSH_API_URL = "http://10.33.0.100/nagu-erp-api/transfer/pushData"; @@ -729,16 +736,82 @@ public class PickingOrderApplicationService { StringBuilder failMsg = new StringBuilder(); for(Long id : idList){ + // 1. 查询拣货单 + PickingOrder pickingOrder = pickingOrderMapper.selectById(id); + if (pickingOrder == null) { + failCount++; + failMsg.append("id:").append(id).append("不存在;"); + continue; + } + + // 2. 查询拣货单物料明细 + PickingMaterialDetailDO pickingMaterialDetailDO = new PickingMaterialDetailDO(); + pickingMaterialDetailDO.setPickingOrderNumber(pickingOrder.getPickingOrderNumber()); + List materialDetailList = pickingMaterialDetailService.queryList(pickingMaterialDetailDO); + + if (materialDetailList == null || materialDetailList.isEmpty()) { + failCount++; + failMsg.append("id:").append(id).append("无物料明细;"); + continue; + } + + // 3. 构建主单 + Map order = new HashMap<>(); + // etpsPreentNo: 入库单号 - 取拣货明细中的入库单号(第一个) + String inOrderNumber = materialDetailList.get(0).getInOrderNumber(); + order.put("etpsPreentNo", inOrderNumber != null ? inOrderNumber : ""); + order.put("inputTime", new Date()); + order.put("mtpckEndprdTypecd", "E"); // 成品(出口) + + // 4. 构建明细列表 + List> qnBillList = new ArrayList<>(); + int gNo = 1; + for (PickingMaterialDetailPO detail : materialDetailList) { + Map item = new HashMap<>(); + item.put("etpsPreentNo", detail.getInOrderNumber() != null ? detail.getInOrderNumber() : ""); + item.put("gNo", gNo++); + item.put("gdsMtno", detail.getMaterialCode() != null ? detail.getMaterialCode() : ""); + + // 获取物料详情获取单价和币制 + if (detail.getMaterialBaseInfoId() != null) { + MaterialBaseInfoPO materialInfo = materialBaseInfoApplicationService.getInfo(detail.getMaterialBaseInfoId()); + if (materialInfo != null) { + item.put("dclUprcAmt", materialInfo.getUnitPrice()); // 申报单价 + item.put("dclCurrcd", materialInfo.getCurrency() != null ? materialInfo.getCurrency() : ""); // 申报币制 + + // 计算申报总价 + BigDecimal unitPrice = materialInfo.getUnitPrice(); + BigDecimal pickingQty = detail.getPickingQuantity() != null ? detail.getPickingQuantity() : detail.getQuantity(); + if (unitPrice != null && pickingQty != null && unitPrice.compareTo(BigDecimal.ZERO) != 0) { + BigDecimal totalAmt = unitPrice.multiply(pickingQty).setScale(2, BigDecimal.ROUND_HALF_UP); + item.put("dclTotalAmt", totalAmt); + } + } + } + + item.put("dclQty", detail.getPickingQuantity() != null ? detail.getPickingQuantity() : detail.getQuantity()); // 申报数量 + item.put("orderNo", pickingOrder.getPickingOrderNumber()); // 出仓订单号 + item.put("orderRow", gNo - 1); // 出仓订单行号 + item.put("bondInvtNo", ""); // 原进口核注清单号(暂无) + item.put("invtRow", null); // 原进口核注清单行号(暂无) + item.put("whNo", detail.getWarehouseCode() != null ? detail.getWarehouseCode() : ""); // 仓库 + item.put("seatNo", detail.getStorageLocationCode() != null ? detail.getStorageLocationCode() : ""); // 库位 + item.put("whNoIn", detail.getWarehouseCode() != null ? detail.getWarehouseCode() : ""); + item.put("seatNoIn", detail.getStorageLocationCode() != null ? detail.getStorageLocationCode() : ""); + + qnBillList.add(item); + } + order.put("qnBillList", qnBillList); List> bodyList = new ArrayList<>(); - // bodyList.add(); + bodyList.add(order); GwLogDTO gwLogDTO = new GwLogDTO(); - gwLogDTO.setType("出口订单"); + gwLogDTO.setType("保税仓-出口仓单"); gwLogDTO.setBusinessId(id); gwLogDTO.setRequestBody(com.alibaba.fastjson.JSONObject.toJSONString(bodyList)); gwLogDTO.setResponseBody(""); diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java index 57f8865c4..ccb23bc30 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockShelfOrder/StockShelfOrderApplicationService.java @@ -2670,7 +2670,7 @@ public class StockShelfOrderApplicationService { GwLogDTO gwLogDTO = new GwLogDTO(); - gwLogDTO.setType("出口订单"); + gwLogDTO.setType("保税仓-进口仓单"); gwLogDTO.setBusinessId(id); gwLogDTO.setRequestBody(com.alibaba.fastjson.JSONObject.toJSONString(bodyList)); gwLogDTO.setResponseBody("");