diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java index feb92aa46..709377549 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java @@ -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 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 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 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 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 ifShallow(List taskArr) { + // 筛选出深货位 + List 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 result = taskArr.stream() + .distinct() + .collect(Collectors.toList()); + return result; + } + @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql new file mode 100644 index 000000000..06536b531 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/wql/OUT_TASK01.wql @@ -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 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java index 8d1677830..4b348944f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvServiceImpl.java @@ -443,9 +443,11 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl 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 paramLockList = new ArrayList<>();