From db177d4f67114fa7223e4a98f529363b7e670371 Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Fri, 10 Nov 2023 11:01:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...PurchasereceiptRequestMainServiceImpl.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java index 30c5521e..5f99727e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java @@ -369,7 +369,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq } /** - * 生成采购收货任务 + * 生成采购收货任务,不要改动事务传播方式,否则会有事务问题 * @param mainDO 采购收货主 * @param detailDOList 采购收货子 */ @@ -379,8 +379,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration()); Map> listMap = new HashMap<>(); List purchasereceiptJobMainCreateReqVOList = new ArrayList<>(); - // 获取拆分类型,如果够为FALSE则不拆分 - String key = ""; + // 获取拆分类型,如果都为FALSE则不拆分 + String key; if ("TRUE".equals(jsonObject.get("ByItem"))) {//按零件拆分 key = "item"; } else if ("TRUE".equals(jsonObject.get("ByContainer"))) {//按器具拆分 @@ -392,11 +392,12 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq } // 每个任务单最多任务数 int count = Integer.parseInt(String.valueOf(jsonObject.get("JobDetailCount"))); - if(count == 0) { + if(count == 0) {//0表示不拆分 count = Integer.MAX_VALUE; } for(PurchasereceiptRequestDetailDO detailDO : detailDOList) { List list; + //从map取出list switch (key) { case "item": list = listMap.get(detailDO.getItemCode()); @@ -410,12 +411,25 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq if(list == null) { list = new ArrayList<>(); } + //向list增加数据 list.add(detailDO); - listMap.put(key, list); + //放回map + switch (key) { + case "item": + listMap.put(detailDO.getItemCode(), list); + case "container": + listMap.put(detailDO.getContainerNumber(), list); + case "location": + listMap.put(detailDO.getFromLocationCode(), list); + default: + listMap.put(key, list); + } } + //组装任务数据 for(String mapKey : listMap.keySet()) { List purchasereceiptRequestDetailDOList = listMap.get(mapKey); for(int i = 0; i < purchasereceiptRequestDetailDOList.size(); i++) { + //PurchasereceiptJobMainCreateReqVO不包含id、创建人等信息 PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO; List subList = null; if(i % count == 0) { @@ -428,7 +442,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq subList.add(purchasereceiptJobDetailCreateReqVO); } } - //插入数据库 + //把任务插入数据库 for(PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO : purchasereceiptJobMainCreateReqVOList) { PurchasereceiptJobMainDO purchasereceiptJobMainDO = PurchasereceiptJobMainConvert.INSTANCE.convert(purchasereceiptJobMainCreateReqVO); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_JOB.getCode());