From a513b1a0584d398d0f2b653774cfa70a54e7863e Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Sun, 8 Jan 2023 16:13:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../acs/service/impl/AcsToWmsServiceImpl.java | 41 +++++++++---- .../impl/ProductInstorServiceImpl.java | 3 +- .../nl/wms/sch/tasks/EmptyVehicleTask.java | 58 ++++++++++++------- .../java/org/nl/wms/sch/tasks/InTask.java | 10 +++- .../service/impl/HandMoveStorServiceImpl.java | 2 +- lms/nladmin-ui/src/App.vue | 2 +- .../src/views/wms/st/outbill/AddDialog.vue | 2 +- 7 files changed, 80 insertions(+), 38 deletions(-) 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 5df04209d..d5a3732ac 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 @@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; @@ -194,7 +195,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (ObjectUtil.isEmpty(type)) throw new BadRequestException("ACS申请任务失败!任务类型不能为空"); if (ObjectUtil.isEmpty(device_code)) throw new BadRequestException("ACS申请任务失败!点位不能为空"); - if (ObjectUtil.isEmpty(vehicle_code)) throw new BadRequestException("ACS申请任务失败!载具不能为空"); /* * 根据type判断是什么业务类型: @@ -204,15 +204,33 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { * 4.出库口申请入发货区任务 */ if (type.equals("1")) { + if (ObjectUtil.isEmpty(vehicle_code)) throw new BadRequestException("ACS申请任务失败!载具不能为空"); //通过该木箱码查询对应的分配明细 JSONArray dis_rows = WQLObject.getWQLObject("st_ivt_iostorinvdis").query("work_status = '00' AND box_no = '" + vehicle_code + "'").getResultJSONArray(0); if (ObjectUtil.isEmpty(dis_rows)) { throw new BadRequestException("未查询到木箱:" + vehicle_code + "相关入库分配明细记录!"); } + ArrayList dis_list = new ArrayList<>(); + for (int i = 0; i < dis_rows.size(); i++) { + HashMap dis_map = new HashMap<>(); + JSONObject dis_row = dis_rows.getJSONObject(i); + dis_map.put("box_no",dis_row.getString("box_no")); + dis_map.put("point_code",device_code); + dis_map.put("sect_id",dis_row.getString("sect_id")); + dis_map.put("sect_code",dis_row.getString("sect_code")); + dis_map.put("sect_name",dis_row.getString("sect_name")); + dis_map.put("struct_id",dis_row.getString("struct_id")); + dis_map.put("struct_code",dis_row.getString("struct_code")); + dis_map.put("struct_name",dis_row.getString("struct_name")); + dis_map.put("iostorinv_id",dis_row.getString("iostorinv_id")); + dis_list.add(dis_map); + } Map map = new HashMap(); - ArrayList list = (ArrayList) JSONObject.parseArray(dis_rows.toJSONString(),String.class); - map.put("tableMater", list); + //查询主存区的sect + JSONObject sect_jo = WQLObject.getWQLObject("st_ivt_sectattr").query("sect_type_attr = '00' AND is_used = '1'").uniqueResult(0); + map.put("tableMater", dis_list); map.put("point_code", device_code); + map.put("sect_id", sect_jo.getString("sect_id")); map.put("checked", true); map.put("auto_issue", "1"); //自动分配货位并下发任务 @@ -227,6 +245,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { b、没有,则优先找空的巷道;按空位置顺序分配; 3、任务下发,判断巷道的任务类型,只能为空盘入库或者无任务类型; * */ + vehicle_code = CodeUtil.getNewCode("VEHICCLE_CODE_KTP"); JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "21").process().uniqueResult(0); JSONObject struct_jo = new JSONObject(); @@ -277,9 +296,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String placement_type = empty_row.getString("placement_type"); if (placement_type.equals("01") || placement_type.equals("03")) { - struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq").uniqueResult(0); + struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq").uniqueResult(0); } else { - struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq desc").uniqueResult(0); + struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq desc").uniqueResult(0); } } if (ObjectUtil.isEmpty(struct_jo)) { @@ -290,7 +309,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { task_jo.put("point_code1", struct_jo.getString("struct_code")); task_jo.put("point_code2", device_code); task_jo.put("task_type", "010504"); - task_jo.put("vehicle_code", struct_jo.getString("vehicle_code")); + task_jo.put("vehicle_code", struct_jo.getString("storagevehicle_code")); EmptyVehicleTask task = new EmptyVehicleTask(); task.createTask(task_jo); @@ -389,10 +408,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String box_length = sub_jo.getString("box_length"); String box_width = sub_jo.getString("box_width"); String box_high = sub_jo.getString("box_high"); - result.put("box_length", box_length); - result.put("box_width", box_width); - result.put("box_high", box_high); - result.put("bundle_times", 2); + JSONObject data = new JSONObject(); + data.put("box_length", box_length); + data.put("box_width", box_width); + data.put("box_high", box_high); + data.put("bundle_times", 2); + result.put("data",data); } else if (type.equals("3")) { //烘箱出箱任务 String device_code = whereJson.getString("device_code"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java index c5e2ac972..a3a22c488 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/ProductInstorServiceImpl.java @@ -160,7 +160,8 @@ public class ProductInstorServiceImpl implements ProductInstorService { //创建二楼去一楼的任务 JSONObject form = new JSONObject(); form.put("point_code1", point_code); - form.put("point_code2", "TBJ01"); + form.put("point_code2", "NTB01"); + form.put("vehicle_code", box_no); form.put("task_type", "010507"); cutConveyorTask.createTask(form); } else { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/EmptyVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/EmptyVehicleTask.java index d2a623bd0..70fad0668 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/EmptyVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/EmptyVehicleTask.java @@ -41,15 +41,27 @@ public class EmptyVehicleTask extends AbstractAcsTask { for (int i = 0; i < arr.size(); i++) { JSONObject json = arr.getJSONObject(i); - //判断该任务所在的块、排存在其他任务 - String point_code2 = json.getString("point_code2"); - JSONObject struct_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("struct_code = '"+point_code2+"'").uniqueResult(0); - String row_num = struct_jo.getString("row_num"); - String block_num = struct_jo.getString("block_num"); - JSONObject task_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("block_num = '"+block_num+"' AND row_num = '"+row_num+"' AND lock_type in ('3','6')").uniqueResult(0); - if (ObjectUtil.isNotEmpty(task_jo)){ - continue; - } + JSONObject struct_jo = new JSONObject(); + /*//判断该任务所在的块、排存在其他任务 + if (json.getString("task_type").equals("010502")){ + String point_code2 = json.getString("point_code2"); + struct_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("struct_code = '"+point_code2+"'").uniqueResult(0); + String row_num = struct_jo.getString("row_num"); + String block_num = struct_jo.getString("block_num"); + JSONObject task_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("block_num = '"+block_num+"' AND row_num = '"+row_num+"' AND lock_type in ('3','6')").uniqueResult(0); + if (ObjectUtil.isNotEmpty(task_jo)){ + continue; + } + }else { + String point_code1 = json.getString("point_code1"); + struct_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("struct_code = '"+point_code1+"'").uniqueResult(0); + String row_num = struct_jo.getString("row_num"); + String block_num = struct_jo.getString("block_num"); + JSONObject task_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("block_num = '"+block_num+"' AND row_num = '"+row_num+"' AND lock_type in ('3','6')").uniqueResult(0); + if (ObjectUtil.isNotEmpty(task_jo)){ + continue; + } + }*/ char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length()-1); AcsTaskDto dto = AcsTaskDto.builder() @@ -77,34 +89,38 @@ public class EmptyVehicleTask extends AbstractAcsTask { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); + + JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '"+taskObj.getString("task_id")+"'").uniqueResult(0); HashMap map = new HashMap(); //1:执行中,2:完成 ,3:acs取消 - if (status.equals("1")) { - map.put("task_status", "03"); + if (status.equals(TaskStatusEnum.EXECUTING.getCode())) { + map.put("task_status", TaskStatusEnum.EXECUTING.getCode()); } - if (status.equals("2")) { + if (status.equals(TaskStatusEnum.FINISHED.getCode())) { map.put("task_status", TaskStatusEnum.FINISHED.getCode()); //解锁货位、点位。更新点位仓位状态 - if (taskObj.getString("task_type").equals("010502")){ - String vehicle_code = taskObj.getString("vehicle_code"); + if (task_jo.getString("task_type").equals("010502")){ + String vehicle_code = task_jo.getString("vehicle_code"); map.put("lock_type", "1"); - map.put("point_status", "03"); + map.put("point_status", "3"); map.put("vehicle_code", vehicle_code); - point_table.update(map, "point_code = '" + taskObj.getString("point_code2") + "'"); + point_table.update(map, "point_code = '" + task_jo.getString("point_code2") + "'"); HashMap struct_map = new HashMap<>(); struct_map.put("lock_type", "1"); struct_map.put("storagevehicle_code", vehicle_code); - struct_table.update(struct_map, "struct_code = '" + taskObj.getString("point_code2") + "'"); + struct_map.put("is_emptyvehicle", "1"); + struct_table.update(struct_map, "struct_code = '" + task_jo.getString("point_code2") + "'"); } - if (taskObj.getString("task_type").equals("010504")){ + if (task_jo.getString("task_type").equals("010504")){ map.put("lock_type", "1"); - map.put("point_status", "01"); + map.put("point_status", "1"); map.put("vehicle_code", ""); - point_table.update(map, "point_code = '" + taskObj.getString("point_code2") + "'"); + point_table.update(map, "point_code = '" + task_jo.getString("point_code1") + "'"); HashMap struct_map = new HashMap<>(); struct_map.put("lock_type", "1"); struct_map.put("storagevehicle_code", ""); - struct_table.update(struct_map, "struct_code = '" + taskObj.getString("point_code2") + "'"); + struct_map.put("is_emptyvehicle", "0"); + struct_table.update(struct_map, "struct_code = '" + task_jo.getString("point_code1") + "'"); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java index a970412fd..298578bb3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InTask.java @@ -75,8 +75,8 @@ public class InTask extends AbstractAcsTask { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); HashMap map = new HashMap(); - //1:执行中,2:完成 ,3:acs取消 - if (status.equals("1")) { + //1:执行中,2:完成 ,0:acs取消 + if (status.equals(TaskStatusEnum.EXECUTING.getCode())) { map.put("task_status", TaskStatusEnum.EXECUTING.getCode()); //更新入库单分配任务状态 HashMap dis_map = new HashMap(); @@ -84,7 +84,7 @@ public class InTask extends AbstractAcsTask { dis_map.put("is_issued", "1"); WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(dis_map, "task_id = '" + taskObj.getString("task_id") + "'"); } - if (status.equals("2")) { + if (status.equals(TaskStatusEnum.FINISHED.getCode())) { map.put("task_status", TaskStatusEnum.FINISHED.getCode()); //调用入库分配确认方法 InbillServiceImpl inbillService = SpringContextHolder.getBean(InbillServiceImpl.class); @@ -92,6 +92,10 @@ public class InTask extends AbstractAcsTask { dis_form.put("task_id", taskObj.getString("task_id")); inbillService.confirmDis(dis_form); } + if (StrUtil.equals(status, "0")) { + // 更新删除字段 + map.put("is_delete","1"); + } map.put("update_optid", currentUserId); map.put("update_optname", nickName); map.put("update_time", now); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java index 2617f866f..833f46b48 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java @@ -717,13 +717,13 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { JSONObject from_start = new JSONObject(); from_start.put("lock_type", "1"); from_start.put("storagevehicle_code", jo.getString("storagevehicle_code")); - from_start.put("is_free", "1"); from_start.put("struct_id", jo.getString("turnout_struct_id")); storPublicService.updateStructAndPoint(from_start); //解锁终点点位、仓位,添加载具 JSONObject from_end = new JSONObject(); from_end.put("lock_type", "1"); from_end.put("struct_id", jo.getString("turnin_struct_id")); + from_start.put("is_free", "1"); from_end.put("storagevehicle_code", jo.getString("storagevehicle_code")); storPublicService.updateStructAndPoint(from_end); diff --git a/lms/nladmin-ui/src/App.vue b/lms/nladmin-ui/src/App.vue index 2f82bccfe..2f6aeeb52 100644 --- a/lms/nladmin-ui/src/App.vue +++ b/lms/nladmin-ui/src/App.vue @@ -24,7 +24,7 @@ export default { this.timmer = setTimeout(() => { sessionStorage.clear() this.logout() - }, 1000 * 60 * 15) // 15分钟 https://blog.csdn.net/qq_42345108/article/details/103496456 + }, 1000 * 60 * 30) // 15分钟 https://blog.csdn.net/qq_42345108/article/details/103496456 }, logout() { this.$store.dispatch('LogOut').then(() => { diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue index bc3503e34..d6c682c72 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue @@ -98,7 +98,7 @@ - +