fix:取货点未qzz_point

This commit is contained in:
zhangzq
2025-05-21 15:26:52 +08:00
parent df866ae0d1
commit 25f61098cf
2 changed files with 40 additions and 37 deletions

View File

@@ -3255,7 +3255,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
StructAllsetDto left = needStructs.get(0); StructAllsetDto left = needStructs.get(0);
StructAllsetDto right = needStructs.get(needStructs.size()-1); StructAllsetDto right = needStructs.get(needStructs.size()-1);
//确认左/右出库并根据出库顺序获取货位集合 //确认左/右出库并根据出库顺序获取货位集合
List<JSONObject> structs = 左右出库确认(needStructs, left, right); List<JSONObject> structs = 左右出库确认(needStructs, left, right,whereJson.getString("iostorinv_id"));
//attr.struct_code,attr.lock_type,attr.storagevehicle_code,attr.inv_code,storagevehicle_code //attr.struct_code,attr.lock_type,attr.storagevehicle_code,attr.inv_code,storagevehicle_code
List<String> needStructList = needStructs.stream().map(StructAllsetDto::getStruct_code).collect(Collectors.toList()); List<String> needStructList = needStructs.stream().map(StructAllsetDto::getStruct_code).collect(Collectors.toList());
/** /**
@@ -3270,29 +3270,29 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
for (int i = 0; i < structs.size(); i++) { for (int i = 0; i < structs.size(); i++) {
JSONObject item = structs.get(i); JSONObject item = structs.get(i);
item.put("task_group_id",taskGroup); item.put("task_group_id",taskGroup);
item.put("seq",i); item.put("sort_seq",i);
item.put("point_code",point_code); item.put("point_code",point_code);
item.put("point_id",jsonPoint2.getString("point_id")); item.put("point_id",jsonPoint2.getString("point_id"));
String structCode = item.getString("struct_code"); String structCode = item.getString("struct_code");
if (CollectionUtils.isEmpty(needStructs)){ if (CollectionUtils.isEmpty(needStructList)){
break; break;
} }
if (!item.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))){
continue;
}
if (needStructList.contains(structCode)){ if (needStructList.contains(structCode)){
//出库 //出库
this.createOut(item); this.createOut(item);
needStructList.remove(structCode); needStructList.remove(structCode);
}else { }else {
//移库 //移库:如果当前存在业务锁定则说明存在相关任务,不需要移库,直接跳过
if (!item.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))){
continue;
}
this.createMove(item); this.createMove(item);
} }
} }
}; };
} }
private List<JSONObject> 左右出库确认(List<StructAllsetDto> structs, StructAllsetDto left, StructAllsetDto right) { private List<JSONObject> 左右出库确认(List<StructAllsetDto> structs, StructAllsetDto left, StructAllsetDto right,String invId) {
/** /**
* 1.查询当前排被锁住的货位集合 * 1.查询当前排被锁住的货位集合
* 2.过滤仓位没有没有被其他单据锁定的货位 * 2.过滤仓位没有没有被其他单据锁定的货位
@@ -3308,9 +3308,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
//查询当前排 //查询当前排
//lock_type('2','3','6','7') //lock_type('2','3','6','7')
// 查询仓位被锁住的货位 // 查询仓位被锁住的货位
HashMap param = MapOf.of("flag", "51", "sect_id",left.getSect_id(),"block_num", left.getBlock_num(), "row_num", left.getRow_num()); HashMap param = MapOf.of("invId",invId,"flag", "51", "sect_id",left.getSect_id(),"block_num", left.getBlock_num(), "row_num", left.getRow_num());
JSONArray allLock = WQL.getWO("ST_OUTIVT04").addParamMap(param).process().getResultJSONArray(0); JSONArray allLock = WQL.getWO("ST_OUTIVT04").addParamMap(param).process().getResultJSONArray(0);
List<JSONObject> hasLock = this.isNumList(allLock); List<JSONObject> hasLock = this.isNumList(allLock);
String option; String option;
//如果货位有锁定则需要判断左右 //如果货位有锁定则需要判断左右
//口回口口回口*口口 <---> //口回口口回口*口口 <--->
@@ -3360,8 +3361,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
//查询当前排最大order //查询当前排最大order
HashMap maxParam = MapOf.of("flag", "52", "sect_id",left.getSect_id(),"block_num", left.getBlock_num(), "row_num", left.getRow_num()); HashMap maxParam = MapOf.of("flag", "52", "sect_id",left.getSect_id(),"block_num", left.getBlock_num(), "row_num", left.getRow_num());
JSONObject result = WQL.getWO("ST_OUTIVT04").addParamMap(maxParam).process().uniqueResult(0); JSONObject result = WQL.getWO("ST_OUTIVT04").addParamMap(maxParam).process().uniqueResult(0);
Integer maxSeq = result.getInteger("maxSeq"); Integer maxSeq = result.getInteger("maxseq");
Integer minSeq = result.getInteger("minSeq"); Integer minSeq = result.getInteger("minseq");
int leftVe = Integer.valueOf(left.getOut_order_seq()) - minSeq; int leftVe = Integer.valueOf(left.getOut_order_seq()) - minSeq;
int rightVe = maxSeq - Integer.valueOf(right.getOut_order_seq()); int rightVe = maxSeq - Integer.valueOf(right.getOut_order_seq());
option = leftVe>rightVe?"03":"02"; option = leftVe>rightVe?"03":"02";
@@ -3369,8 +3370,9 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
option = placementType; option = placementType;
} }
} }
//option确认了左边出库还是右边出库0302 //option确认了左边出库还是右边出库0302
HashMap structParam = MapOf.of("flag", "53", "out_order_seq",option,"sect_id",left.getSect_id(),"block_num", left.getBlock_num(), "row_num", left.getRow_num()); String orderBy = "order by out_order_seq "+(option.equals("02")?"asc":"desc");
HashMap structParam = MapOf.of("flag", "53", "order_by",orderBy,"sect_id",left.getSect_id(),"block_num", left.getBlock_num(), "row_num", left.getRow_num());
return WQL.getWO("ST_OUTIVT04").addParamMap(structParam).process().getResultJSONArray(0).toJavaList(JSONObject.class); return WQL.getWO("ST_OUTIVT04").addParamMap(structParam).process().getResultJSONArray(0).toJavaList(JSONObject.class);
} }
@Transactional @Transactional
@@ -3429,7 +3431,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
form.put("point_code1", json.getString("struct_code")); form.put("point_code1", json.getString("struct_code"));
form.put("point_code2", jsonMove.getString("struct_code")); form.put("point_code2", jsonMove.getString("struct_code"));
form.put("task_group_id", struct.getLongValue("task_group_id")); // 任务组 form.put("task_group_id", struct.getLongValue("task_group_id")); // 任务组
form.put("sort_seq", struct.getIntValue("seq") + 1); // 任务组顺序号 form.put("sort_seq", struct.getIntValue("sort_seq") + 1); // 任务组顺序号
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
json.put("task_type", form.getString("task_type")); json.put("task_type", form.getString("task_type"));
@@ -3472,7 +3474,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
param.put("material_id", oneDis.getMaterial_id()); param.put("material_id", oneDis.getMaterial_id());
// 更新出库任务:任务组和顺序号 // 更新出库任务:任务组和顺序号
param.put("task_group_id", struct.getString("task_group_id")); // 任务组 param.put("task_group_id", struct.getString("task_group_id")); // 任务组
param.put("sort_seq", struct.getString("sort_seq")+1); // 任务组顺序号 param.put("sort_seq", struct.getIntValue("sort_seq")+1); // 任务组顺序号
String create_task_id = outTask.createTask(param); String create_task_id = outTask.createTask(param);
//批量更细分配明细 //批量更细分配明细
List<Long> disIds = list.stream().map(StIvtIostorinvdis::getIostorinvdis_id).collect(Collectors.toList()); List<Long> disIds = list.stream().map(StIvtIostorinvdis::getIostorinvdis_id).collect(Collectors.toList());

View File

@@ -18,8 +18,9 @@
输入.iostorinvdtl_id TYPEAS s_string 输入.iostorinvdtl_id TYPEAS s_string
输入.block_num TYPEAS s_string 输入.block_num TYPEAS s_string
输入.sect_id TYPEAS s_string 输入.sect_id TYPEAS s_string
输入.invId TYPEAS s_string
输入.row_num TYPEAS s_string 输入.row_num TYPEAS s_string
输入.out_order_seq TYPEAS s_string 输入.order_by TYPEAS f_string
输入.iostorinvdis_id TYPEAS s_string 输入.iostorinvdis_id TYPEAS s_string
[临时表] [临时表]
@@ -278,7 +279,7 @@
IF 输入.flag = "51" IF 输入.flag = "51"
QUERY QUERY
SELECT SELECT
attr.struct_code,attr.lock_type,attr.storagevehicle_code,attr.inv_code attr.struct_code,attr.lock_type,attr.storagevehicle_code,attr.inv_code,attr.out_order_seq
FROM FROM
st_ivt_structattr attr st_ivt_structattr attr
WHERE WHERE
@@ -287,13 +288,16 @@
AND attr.row_num = 输入.row_num AND attr.row_num = 输入.row_num
AND attr.sect_id = 输入.sect_id AND attr.sect_id = 输入.sect_id
AND IFNULL( attr.storagevehicle_code, '' ) <> '' AND IFNULL( attr.storagevehicle_code, '' ) <> ''
OPTION 输入.invId <> ""
attr.inv_id <> 输入.invId
ENDOPTION
ENDSELECT ENDSELECT
ENDQUERY ENDQUERY
ENDIF ENDIF
IF 输入.flag = "52" IF 输入.flag = "52"
QUERY QUERY
SELECT SELECT
MAX(attr.out_order_seq) as maxSeq,MIN(attr.out_order_seq) as minSeq MAX(attr.out_order_seq) as maxseq,MIN(attr.out_order_seq) as minseq
FROM FROM
st_ivt_structattr attr st_ivt_structattr attr
WHERE WHERE
@@ -305,25 +309,22 @@
ENDQUERY ENDQUERY
ENDIF ENDIF
IF 输入.flag = "53" IF 输入.flag = "53"
QUERY QUERY
SELECT SELECT
attr.struct_code,attr.lock_type,attr.storagevehicle_code,attr.inv_code attr.struct_code,attr.lock_type,attr.storagevehicle_code,attr.inv_code
FROM FROM
st_ivt_structattr attr st_ivt_structattr attr
WHERE WHERE
attr.block_num = 输入.block_num attr.block_num = 输入.block_num
AND attr.row_num = 输入.row_num AND attr.row_num = 输入.row_num
AND attr.sect_id = 输入.sect_id AND attr.sect_id = 输入.sect_id
AND IFNULL( attr.storagevehicle_code, '' ) <> '' AND IFNULL( attr.storagevehicle_code, '' ) <> ''
OPTION 输入.out_order_seq == "03" OPTION 输入.order_by <> ""
ORDER BY out_order_seq asc 1=1 输入.order_by
ENDOPTION ENDOPTION
OPTION 输入.out_order_seq == "02" ENDSELECT
ORDER BY out_order_seq desc ENDQUERY
ENDOPTION ENDIF
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "6" IF 输入.flag = "6"
QUERY QUERY