From db15415e3c00be97aca35c4f3ed32e62972ebf1b Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 27 Dec 2022 17:30:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/wms/sch/tasks/OutTask.java | 49 ++++++++++++----- .../service/impl/CheckOutBillServiceImpl.java | 53 +++++++++++++++++-- .../org/nl/wms/st/outbill/wql/ST_OUTIVT03.wql | 12 ++--- 3 files changed, 93 insertions(+), 21 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java index c365978c8..1627a0145 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutTask.java @@ -42,23 +42,48 @@ public class OutTask extends AbstractAcsTask { /* * 下发给ACS时需要特殊处理 */ - JSONArray 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 ASC").getResultJSONArray(0); + //任务表 + WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task"); + + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); ArrayList resultList = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { JSONObject json = arr.getJSONObject(i); - AcsTaskDto dto = AcsTaskDto.builder() - .ext_task_id(json.getString("task_id")) - .task_code(json.getString("task_code")) - .task_type(json.getString("acs_task_type")) - .start_device_code(json.getString("point_code1")) - .next_device_code(json.getString("point_code2")) - .vehicle_code(json.getString("vehicle_code")) - .priority(json.getString("priority")) - .remark(json.getString("remark")) - .build(); - resultList.add(dto); + // 1.查询此任务是否有任务组 + if (ObjectUtil.isEmpty(json.getString("task_group_id"))) { + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code")) + .priority(json.getString("priority")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + } else { + // 2.有任务组:按照执行顺序下发 大到小 + JSONArray taskArr = wo_Task.query("task_group_id = '" + json.getString("task_group_id") + "' order by sort_seq DESC").getResultJSONArray(0); + + for (int j = 0; j < taskArr.size(); j++) { + JSONObject json2 = taskArr.getJSONObject(j); + + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(json2.getString("task_id")) + .task_code(json2.getString("task_code")) + .task_type(json2.getString("acs_task_type")) + .start_device_code(json2.getString("point_code1")) + .next_device_code(json2.getString("point_code2")) + .vehicle_code(json2.getString("vehicle_code")) + .priority(json2.getString("priority")) + .remark(json2.getString("remark")) + .build(); + resultList.add(dto); + } + } } return resultList; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java index 05255ca70..661d66c60 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java @@ -27,6 +27,7 @@ import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; import org.nl.wms.ext.sap.service.impl.LmsToSapServiceImpl; import org.nl.wms.pda.mps.eum.RegionTypeEnum; +import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.tasks.OutTask; import org.nl.wms.st.inbill.service.CheckOutBillService; @@ -2465,16 +2466,62 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { @Override @Transactional(rollbackFor = Exception.class) public void issueTask(JSONObject whereJson) { - //出库分配表 - WQLObject wo_dis = WQLObject.getWQLObject("ST_IVT_IOStorInvDis"); //任务表 WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task"); Long currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); + + JSONObject jsonTask = wo_Task.query("task_id = '" + whereJson.getString("task_id") + "'").uniqueResult(0); + + // 调用出库任务类下发任务 + new OutTask().immediateNotifyAcs(jsonTask.getString("task_id")); +// List acsTaskDtos = new OutTask().addTask(); +// System.out.println(acsTaskDtos.toString()); + + // 更新任务状态为下发 + jsonTask.put("task_status",TaskStatusEnum.ISSUE.getCode()); + jsonTask.put("update_optid",currentUserId); + jsonTask.put("update_optname",nickName); + jsonTask.put("update_time",now); + wo_Task.update(jsonTask); + + /* ArrayList resultList = new ArrayList<>(); + // 1.查询此任务是否有任务组 - // 2.有任务组:按照执行顺序下发 + JSONObject jsonTask = wo_Task.query("task_id = '" + whereJson.getString("task_id") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonTask.getString("task_group_id"))) { + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(jsonTask.getString("task_id")) + .task_code(jsonTask.getString("task_code")) + .task_type(jsonTask.getString("acs_task_type")) + .start_device_code(jsonTask.getString("point_code1")) + .next_device_code(jsonTask.getString("point_code2")) + .vehicle_code(jsonTask.getString("vehicle_code")) + .priority(jsonTask.getString("priority")) + .remark(jsonTask.getString("remark")) + .build(); + resultList.add(dto); + } else { + // 2.有任务组:按照执行顺序下发 大到小 + JSONArray taskArr = wo_Task.query("task_group_id = '" + jsonTask.getString("task_group_id") + "' order by sort_seq DESC").getResultJSONArray(0); + for (int i = 0; i < taskArr.size(); i++) { + JSONObject json = taskArr.getJSONObject(i); + + AcsTaskDto dto = AcsTaskDto.builder() + .ext_task_id(json.getString("task_id")) + .task_code(json.getString("task_code")) + .task_type(json.getString("acs_task_type")) + .start_device_code(json.getString("point_code1")) + .next_device_code(json.getString("point_code2")) + .vehicle_code(json.getString("vehicle_code")) + .priority(json.getString("priority")) + .remark(json.getString("remark")) + .build(); + resultList.add(dto); + } + }*/ } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT03.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT03.wql index 8a13a055d..1d63ceae9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT03.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT03.wql @@ -255,12 +255,12 @@ IF 输入.flag = "6" QUERY SELECT - ivt.struct_id, - ivt.material_id, - sum(ivt.canuse_qty) AS canuse_qty, - max(ivt.pcsn) AS pcsn, - ivt.qty_unit_id, - unit.unit_name + max( ivt.struct_id ) AS struct_id, + max( ivt.material_id ) AS material_id, + sum( ivt.canuse_qty ) AS canuse_qty, + max( ivt.pcsn ) AS pcsn, + max( ivt.qty_unit_id ) AS qty_unit_id, + max( unit.unit_name ) AS unit_name FROM ST_IVT_StructIvt ivt LEFT JOIN md_pb_measureunit unit ON ivt.qty_unit_id = unit.measure_unit_id