rev:成品出库优先级
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
@@ -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<>();
|
||||
|
||||
Reference in New Issue
Block a user