保税仓推送修改
This commit is contained in:
+75
-2
@@ -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<PickingMaterialDetailPO> materialDetailList = pickingMaterialDetailService.queryList(pickingMaterialDetailDO);
|
||||
|
||||
if (materialDetailList == null || materialDetailList.isEmpty()) {
|
||||
failCount++;
|
||||
failMsg.append("id:").append(id).append("无物料明细;");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 3. 构建主单
|
||||
Map<String, Object> 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<Map<String, Object>> qnBillList = new ArrayList<>();
|
||||
int gNo = 1;
|
||||
for (PickingMaterialDetailPO detail : materialDetailList) {
|
||||
Map<String, Object> 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<Map<String, Object>> 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("");
|
||||
|
||||
+1
-1
@@ -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("");
|
||||
|
||||
Reference in New Issue
Block a user