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 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
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++) {
JSONObject item = structs.get(i);
item.put("task_group_id",taskGroup);
item.put("seq",i);
item.put("sort_seq",i);
item.put("point_code",point_code);
item.put("point_id",jsonPoint2.getString("point_id"));
String structCode = item.getString("struct_code");
if (CollectionUtils.isEmpty(needStructs)){
if (CollectionUtils.isEmpty(needStructList)){
break;
}
if (!item.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))){
continue;
}
if (needStructList.contains(structCode)){
//出库
this.createOut(item);
needStructList.remove(structCode);
}else {
//移库
//移库:如果当前存在业务锁定则说明存在相关任务,不需要移库,直接跳过
if (!item.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))){
continue;
}
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.查询当前排被锁住的货位集合
* 2.过滤仓位没有没有被其他单据锁定的货位
@@ -3308,9 +3308,10 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
//查询当前排
//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);
List<JSONObject> hasLock = this.isNumList(allLock);
String option;
//如果货位有锁定则需要判断左右
//口回口口回口*口口 <--->
@@ -3360,8 +3361,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
//查询当前排最大order
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);
Integer maxSeq = result.getInteger("maxSeq");
Integer minSeq = result.getInteger("minSeq");
Integer maxSeq = result.getInteger("maxseq");
Integer minSeq = result.getInteger("minseq");
int leftVe = Integer.valueOf(left.getOut_order_seq()) - minSeq;
int rightVe = maxSeq - Integer.valueOf(right.getOut_order_seq());
option = leftVe>rightVe?"03":"02";
@@ -3369,8 +3370,9 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
option = placementType;
}
}
//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());
//option确认了左边出库还是右边出库0302
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);
}
@Transactional
@@ -3429,7 +3431,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
form.put("point_code1", json.getString("struct_code"));
form.put("point_code2", jsonMove.getString("struct_code"));
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_code", IdUtil.getSnowflake(1, 1).nextId());
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("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);
//批量更细分配明细
List<Long> disIds = list.stream().map(StIvtIostorinvdis::getIostorinvdis_id).collect(Collectors.toList());

View File

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