rev:成品出库优先级

This commit is contained in:
2024-08-20 20:33:38 +08:00
parent e86234f638
commit ac5fe25d56
3 changed files with 142 additions and 4 deletions

View File

@@ -13,6 +13,7 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.LashManageSer
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.LashManageService;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.sch.AcsTaskDto;
@@ -51,7 +52,10 @@ public class TwoOutTask extends AbstractAcsTask {
map.put("handle_class", THIS_CLASS);
// 未下发的出库任务
List<JSONObject> arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' order by sort_seq")
/* List<JSONObject> arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' order by sort_seq")
.getResultJSONArray(0).toJavaList(JSONObject.class);*/
List<JSONObject> arr = WQL.getWO("OUT_TASK01").addParam("flag", "1").process()
.getResultJSONArray(0).toJavaList(JSONObject.class);
// 未下发的任务根据任务组进行分组
@@ -90,6 +94,9 @@ public class TwoOutTask extends AbstractAcsTask {
}
}
// 判断是否有深货位对应的浅货位有起点终点确定的的任务:有就下发
taskArr = ifShallow(taskArr);
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
for (int i = 0; i < taskArr.size(); i++) {
JSONObject json = taskArr.get(i);
@@ -105,7 +112,7 @@ public class TwoOutTask extends AbstractAcsTask {
.vehicle_code2(json.getString("vehicle_code"))
.interaction_json(json.getJSONObject("request_param"))
.route_plan_code(getRoutePlanCode(json.getString("point_code1")))
.priority(json.getString("priority"))
.priority(json.getString("zdepth"))
.class_type(json.getString("task_type"))
.dtl_type(String.valueOf(dtl_type))
.product_area(IOSEnum.PRODUCT_AREA.code("BLK"))
@@ -121,6 +128,33 @@ public class TwoOutTask extends AbstractAcsTask {
return resultList;
}
private List<JSONObject> ifShallow(List<JSONObject> taskArr) {
// 筛选出深货位
List<JSONObject> collect = taskArr.stream()
.filter(row -> row.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("")))
.collect(Collectors.toList());
if (ObjectUtil.isEmpty(collect)){
return taskArr;
}
// 找对应的浅货位任务
for (JSONObject json : collect) {
json.put("flag", "2");
JSONObject jsonObject = WQL.getWO("OUT_TASK01").addParamMap(json)
.process().uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonObject)) {
taskArr.add(jsonObject);
}
}
List<JSONObject> result = taskArr.stream()
.distinct()
.collect(Collectors.toList());
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) {

View File

@@ -0,0 +1,102 @@
[交易说明]
交易名: 出库任务
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
输入.row_num TYPEAS s_string
输入.col_num TYPEAS s_string
输入.layer_num TYPEAS s_string
输入.block_num TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
QUERY
SELECT
task.*,
attr.zdepth,
attr.row_num,
attr.col_num,
attr.layer_num,
attr.block_num
FROM
sch_base_task task
INNER JOIN st_ivt_structattr attr ON attr.struct_code = task.point_code1
WHERE
task.handle_class = 'org.nl.b_lms.sch.tasks.TwoOutTask'
and task.task_status = '04'
and task.is_delete = '0'
and attr.sect_code = 'BZC01'
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "2"
QUERY
SELECT
task.*,
attr.zdepth,
attr.row_num,
attr.col_num,
attr.layer_num,
attr.block_num
FROM
sch_base_task task
INNER JOIN st_ivt_structattr attr ON attr.struct_code = task.point_code1
WHERE
task.handle_class = 'org.nl.b_lms.sch.tasks.TwoOutTask'
and task.task_status = '04'
and task.is_delete = '0'
and attr.sect_code = 'BZC01'
and attr.zdepth = '1'
OPTION 输入.row_num <> ""
attr.row_num = 输入.row_num
ENDOPTION
OPTION 输入.col_num <> ""
attr.col_num = 输入.col_num
ENDOPTION
OPTION 输入.layer_num <> ""
attr.layer_num = 输入.layer_num
ENDOPTION
OPTION 输入.block_num <> ""
attr.block_num = 输入.block_num
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -443,9 +443,11 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvMapper,
.map(row -> JSONObject.parseObject(JSON.toJSONString(row)))
.collect(Collectors.toList()).get(0);
if (jsonDis.getIntValue("work_status") > Integer.parseInt(IOSEnum.WORK_STATUS.code("生成"))) {
// 完成了不能取消
/* if (jsonDis.getIntValue("work_status") > Integer.parseInt(IOSEnum.WORK_STATUS.code("生成"))) {
throw new BadRequestException("任务正在执行中或已经完成,不能取消!");
}
}*/
// 解锁仓位
ArrayList<String> paramLockList = new ArrayList<>();