From 24c1c64c95083d0d642c24a5e47360342a2c06f6 Mon Sep 17 00:00:00 2001 From: liuxy Date: Sat, 22 Oct 2022 14:24:09 +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 --- .../wms/ext/acs/rest/AcsToWmsController.java | 6 +- .../wms/ext/acs/service/AcsToWmsService.java | 8 -- .../acs/service/impl/AcsToWmsServiceImpl.java | 42 +++------ .../wms/sch/tasks/HtSendEmpVehicleTask.java | 90 ++++++++++++++----- 4 files changed, 83 insertions(+), 63 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index 3777dca..301c847 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -53,11 +53,11 @@ public class AcsToWmsController { return new ResponseEntity<>(acsToWmsService.apply(whereJson), HttpStatus.OK); } - @PostMapping("/towApply") + @PostMapping("/againApply") @Log("二次申请任务") @ApiOperation("二次申请任务") @SaCheckPermission("menu:list") - public ResponseEntity towApply(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(acsToWmsService.towApply(whereJson), HttpStatus.OK); + public ResponseEntity towApply(@RequestBody String task_id) { + return new ResponseEntity<>(acsToWmsService.againApply(task_id), HttpStatus.OK); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index be70dfe..17e9538 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -51,12 +51,4 @@ public interface AcsToWmsService { */ JSONObject apply(JSONObject whereJson); - /** - * ACS客户端--->LMS服务端 - * 二次任务申请 - * - * @param whereJson 条件 - * @return JSONObject - */ - JSONObject towApply(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index e60de0b..9835f00 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -112,8 +112,21 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return result; } + @LokiLog(type = LokiLogType.ACS_TO_LMS) @Override public String againApply(String task_id) { + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); + JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); + + try { + Class clz = Class.forName(jsonTask.getString("handle_class")); + Object obj = clz.newInstance(); + Method m = obj.getClass().getDeclaredMethod("againApply", JSONObject.class, String.class); + Object invoke = m.invoke(task_id); + } catch (Exception e) { + + } + return null; } @@ -362,35 +375,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return null; } - @Override - @Transactional(rollbackFor = Exception.class) - public JSONObject towApply(JSONObject whereJson) { - /* - * 1.入空载具 - * 2.出空载具 - * 3.入物料 - * 4.出物料 - */ - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 - WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); // 点位表 - - String task_id = whereJson.getString("task_id"); - - JSONObject jsonTask = taskTab.query("task_id ='" + task_id + "'").uniqueResult(0); - JSONObject jsonPoint2 = pointTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0); - if (StrUtil.equals(jsonTask.getString("acs_task_type"), "1")) { - // 根据 point_code2 的类型找对对应的列 - pointTab.query("region_id = '"+jsonPoint2.getString("region_id")+ - "' and block_num = '"+jsonPoint2.getString("block_num")+ - "' and col_num = '"+jsonPoint2.getString("col_num")+ - "' and point_status = '2' order by in_empty_seq ASC").uniqueResult(0); - - } - - - return null; - } - @LokiLog(type = LokiLogType.ACS_TO_LMS) @Transactional(rollbackFor = Exception.class) public JSONObject inCreateRegion(JSONObject json) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/HtSendEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/HtSendEmpVehicleTask.java index 250a97c..0c5f226 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/HtSendEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/HtSendEmpVehicleTask.java @@ -65,7 +65,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { JSONObject endPoint = pointTab.query("point_code = '" + point_code + "'").uniqueResult(0); //终点是叠盘架 - if (StrUtil.equals(endPoint.getString("region_id"),RegionTypeEnum.DPJQA.getId())) { + if (StrUtil.equals(endPoint.getString("region_id"), RegionTypeEnum.DPJQA.getId())) { Integer vehicle_qty = endPoint.getInteger("vehicle_qty"); vehicle_qty += jsonTask.getInteger("vehicle_qty"); endPoint.put("lock_type", "1"); @@ -152,12 +152,12 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { // 如果此时point_code2为空则生成起点确认的任务 if (ObjectUtil.isEmpty(point_code2)) { JSONObject param = new JSONObject(); - param.put("task_status","2"); - param.put("point_code1",point_code1); - param.put("vehicle_type",jsonVehicle.getString("vehicle_type")); - param.put("vehicle_qty",qty); - param.put("vehicle_code",jsonVehicle.getString("vehicle_code")); - param.put("acs_task_type","1"); + param.put("task_status", "2"); + param.put("point_code1", point_code1); + param.put("vehicle_type", jsonVehicle.getString("vehicle_type")); + param.put("vehicle_qty", qty); + param.put("vehicle_code", jsonVehicle.getString("vehicle_code")); + param.put("acs_task_type", "1"); task_id = this.pubCreateTask(param); } else { // 说明货梯无任务:找终点 @@ -169,12 +169,12 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { // 如果终点为空则创建起点确定的任务 if (ObjectUtil.isEmpty(endPoint)) { JSONObject param2 = new JSONObject(); - param2.put("task_status","2"); - param2.put("point_code1",point_code1); - param2.put("vehicle_type",jsonVehicle.getString("vehicle_type")); - param2.put("vehicle_qty",qty); - param2.put("vehicle_code",jsonVehicle.getString("vehicle_code")); - param.put("acs_task_type","1"); + param2.put("task_status", "2"); + param2.put("point_code1", point_code1); + param2.put("vehicle_type", jsonVehicle.getString("vehicle_type")); + param2.put("vehicle_qty", qty); + param2.put("vehicle_code", jsonVehicle.getString("vehicle_code")); + param.put("acs_task_type", "1"); task_id = this.pubCreateTask(param2); } else { // 不为空则创建到养生A区等待点的任务 @@ -183,13 +183,13 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { // String sub_1 = endPoint.substring(0, endPoint.indexOf("-")); // String sub_2 = endPoint.substring(endPoint.indexOf("-"), endPoint.length()); JSONObject param2 = new JSONObject(); - param2.put("task_status","4"); - param2.put("point_code1",point_code1); - param2.put("point_code2",endPoint); - param2.put("vehicle_type",jsonVehicle.getString("vehicle_type")); - param2.put("vehicle_qty",qty); - param2.put("vehicle_code",jsonVehicle.getString("vehicle_code")); - param.put("acs_task_type","1"); + param2.put("task_status", "4"); + param2.put("point_code1", point_code1); + param2.put("point_code2", endPoint); + param2.put("vehicle_type", jsonVehicle.getString("vehicle_type")); + param2.put("vehicle_qty", qty); + param2.put("vehicle_code", jsonVehicle.getString("vehicle_code")); + param.put("acs_task_type", "1"); task_id = this.pubCreateTask(param2); // 锁定终点 @@ -280,8 +280,8 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { } // 更新任务表point_code2 - jsonTask.put("point_code2",endPoint); - jsonTask.put("task_status","4"); + jsonTask.put("point_code2", endPoint); + jsonTask.put("task_status", "4"); taskTab.update(jsonTask); // 锁定终点 @@ -377,7 +377,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 JSONObject jsonTask = new JSONObject(); - jsonTask.put("task_id", IdUtil.getSnowflake(1,1).nextId()); + jsonTask.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); jsonTask.put("task_code", CodeUtil.getNewCode("TASK_CODE")); jsonTask.put("task_type", ""); jsonTask.put("task_status", param.getString("task_status")); @@ -416,4 +416,48 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { return result; } + @Transactional(rollbackFor = Exception.class) + public String againApply(String task_id) { + + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 + WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); // 点位表 + + String point_code = ""; + + JSONObject jsonTask = taskTab.query("task_id ='" + task_id + "'").uniqueResult(0); + JSONObject jsonPoint2 = pointTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0); + + // 根据 区域、块、列找到第一个有物料的货位 + JSONObject jsonOnePoint = pointTab.query("region_id = '" + jsonPoint2.getString("region_id") + + "' and block_num = '" + jsonPoint2.getString("block_num") + + "' and col_num = '" + jsonPoint2.getString("col_num") + + "' and point_code <> '"+jsonPoint2.getString("point_code")+ + "' and point_status = '2' order by in_empty_seq ASC").uniqueResult(0); + + // 如果为空说明这一列其他货位为空 则入到最后一个货位 + if (ObjectUtil.isEmpty(jsonOnePoint)) { + JSONObject jsonEmpPoint = pointTab.query("region_id = '" + jsonPoint2.getString("region_id") + + "' and block_num = '" + jsonPoint2.getString("block_num") + + "' and col_num = '" + jsonPoint2.getString("col_num") + + "' and point_code <> '"+jsonPoint2.getString("point_code")+ + "' and point_status = '1' order by in_empty_seq DESC").uniqueResult(0); + + if (ObjectUtil.isEmpty(jsonEmpPoint)) point_code = jsonEmpPoint.getString("point_code"); + } else { + // 找前一位的空位 + double in_empty_seq = NumberUtil.sub(jsonOnePoint.getIntValue("in_empty_seq"), 1); + + JSONObject jsonEmpPoint = pointTab.query("region_id = '" + jsonPoint2.getString("region_id") + + "' and block_num = '" + jsonPoint2.getString("block_num") + + "' and col_num = '" + jsonPoint2.getString("col_num") + + "' and point_code <> '"+jsonPoint2.getString("point_code")+ + "' and in_empty_seq = '"+ in_empty_seq + + "' and point_status = '1'").uniqueResult(0); + + if (ObjectUtil.isNotEmpty(jsonEmpPoint)) point_code = jsonEmpPoint.getString("point_code"); + } + + return point_code; + } + }