Browse Source

修改bug

master
刘忱 2 years ago
parent
commit
db177d4f67
  1. 26
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

26
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 mainDO 采购收货主
* @param detailDOList 采购收货子 * @param detailDOList 采购收货子
*/ */
@ -379,8 +379,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration()); JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration());
Map<String, List<PurchasereceiptRequestDetailDO>> listMap = new HashMap<>(); Map<String, List<PurchasereceiptRequestDetailDO>> listMap = new HashMap<>();
List<PurchasereceiptJobMainCreateReqVO> purchasereceiptJobMainCreateReqVOList = new ArrayList<>(); List<PurchasereceiptJobMainCreateReqVO> purchasereceiptJobMainCreateReqVOList = new ArrayList<>();
// 获取拆分类型,如果为FALSE则不拆分 // 获取拆分类型,如果为FALSE则不拆分
String key = ""; String key;
if ("TRUE".equals(jsonObject.get("ByItem"))) {//按零件拆分 if ("TRUE".equals(jsonObject.get("ByItem"))) {//按零件拆分
key = "item"; key = "item";
} else if ("TRUE".equals(jsonObject.get("ByContainer"))) {//按器具拆分 } 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"))); int count = Integer.parseInt(String.valueOf(jsonObject.get("JobDetailCount")));
if(count == 0) { if(count == 0) {//0表示不拆分
count = Integer.MAX_VALUE; count = Integer.MAX_VALUE;
} }
for(PurchasereceiptRequestDetailDO detailDO : detailDOList) { for(PurchasereceiptRequestDetailDO detailDO : detailDOList) {
List<PurchasereceiptRequestDetailDO> list; List<PurchasereceiptRequestDetailDO> list;
//从map取出list
switch (key) { switch (key) {
case "item": case "item":
list = listMap.get(detailDO.getItemCode()); list = listMap.get(detailDO.getItemCode());
@ -410,12 +411,25 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
if(list == null) { if(list == null) {
list = new ArrayList<>(); list = new ArrayList<>();
} }
//向list增加数据
list.add(detailDO); 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()) { for(String mapKey : listMap.keySet()) {
List<PurchasereceiptRequestDetailDO> purchasereceiptRequestDetailDOList = listMap.get(mapKey); List<PurchasereceiptRequestDetailDO> purchasereceiptRequestDetailDOList = listMap.get(mapKey);
for(int i = 0; i < purchasereceiptRequestDetailDOList.size(); i++) { for(int i = 0; i < purchasereceiptRequestDetailDOList.size(); i++) {
//PurchasereceiptJobMainCreateReqVO不包含id、创建人等信息
PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO; PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO;
List<PurchasereceiptJobDetailCreateReqVO> subList = null; List<PurchasereceiptJobDetailCreateReqVO> subList = null;
if(i % count == 0) { if(i % count == 0) {
@ -428,7 +442,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
subList.add(purchasereceiptJobDetailCreateReqVO); subList.add(purchasereceiptJobDetailCreateReqVO);
} }
} }
//插入数据库 //把任务插入数据库
for(PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO : purchasereceiptJobMainCreateReqVOList) { for(PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO : purchasereceiptJobMainCreateReqVOList) {
PurchasereceiptJobMainDO purchasereceiptJobMainDO = PurchasereceiptJobMainConvert.INSTANCE.convert(purchasereceiptJobMainCreateReqVO); PurchasereceiptJobMainDO purchasereceiptJobMainDO = PurchasereceiptJobMainConvert.INSTANCE.convert(purchasereceiptJobMainCreateReqVO);
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_JOB.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_JOB.getCode());

Loading…
Cancel
Save