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 detailDOList 采购收货子
*/
@ -379,8 +379,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration());
Map<String, List<PurchasereceiptRequestDetailDO>> listMap = new HashMap<>();
List<PurchasereceiptJobMainCreateReqVO> 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<PurchasereceiptRequestDetailDO> 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<PurchasereceiptRequestDetailDO> purchasereceiptRequestDetailDOList = listMap.get(mapKey);
for(int i = 0; i < purchasereceiptRequestDetailDOList.size(); i++) {
//PurchasereceiptJobMainCreateReqVO不包含id、创建人等信息
PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO;
List<PurchasereceiptJobDetailCreateReqVO> 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());

Loading…
Cancel
Save