From dfa30f5b1b2f489bf6096a2e8be16a7694d59899 Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 14 Jun 2023 16:25:12 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E4=BB=BB=E5=8A=A1=E4=B8=8B?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/common/publish/event/PointEvent.java | 1 + .../wms/ext/acs/service/WmsToAcsService.java | 1 + .../acs/service/impl/AcsToWmsServiceImpl.java | 9 ++- .../acs/service/impl/WmsToAcsServiceImpl.java | 26 +++++++ .../dao/mapper/xml/StIvtStructattrMapper.xml | 4 +- .../wms/product_manage/sch/PointListener.java | 3 +- .../impl/StIvtIostorinvCpOutServiceImpl.java | 16 ++-- .../impl/StIvtIostorinvCpServiceImpl.java | 22 ++++-- .../dao/mapper/StIvtMoreorlessmstCpMapper.xml | 2 +- .../impl/StIvtIostorinvBcpOutServiceImpl.java | 64 +++++++++++++++- .../impl/StIvtIostorinvBcpServiceImpl.java | 73 ++++++++++++++++++- 11 files changed, 199 insertions(+), 22 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java index f012a246..cd9770ef 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java @@ -19,6 +19,7 @@ import java.util.Map; public class PointEvent extends PublishEvent { private String type; + private String acs_task_type; private String point_code1; private String point_code2; private String vehicle_code; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java index 63187126..f9f44952 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java @@ -19,6 +19,7 @@ public interface WmsToAcsService { Map issueTaskToAcs(JSONArray arr); Map issueTaskToAcs2(JSONArray arr); + Map issueTaskToAcs3(JSONArray arr); /** * WMS客户端--->ACS服务端 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 7243ee12..826f7a55 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -138,10 +138,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ String status = row.getString("status"); // 任务处理类 try { - - AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(processing_class)); - if (taskHandler!=null){ - taskHandler.updateTaskStatus(row,status); + if (ObjectUtil.isNotEmpty(processing_class)) { + AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(processing_class)); + if (taskHandler!=null){ + taskHandler.updateTaskStatus(row,status); + } } //发布一个任务执行事件:服务跟任务不一样,可以同事存在 TaskEvent event = TaskEvent.builder() diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index 20bbc3f7..cd306336 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -66,6 +66,32 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{ return AcsUtil.notifyAcs(api, form); } + @Override + public Map issueTaskToAcs3(JSONArray arr) { + JSONArray form = new JSONArray(); + for (Object o : arr) { + JSONObject task = (JSONObject) o; + Boolean is_send = task.getBoolean("is_send"); + String send = "1"; + if (!is_send) send = "0"; + + JSONObject param = new JSONObject(MapOf.of("task_id", task.getString("task_id") + , "task_code", task.getString("task_code") + , "task_group_id", task.getString("task_group_id") + , "start_point_code", task.getString("point_code1") + , "next_point_code", task.getString("point_code2") + , "task_type", task.getString("acs_task_type") + , "priority", task.getString("priority") + , "is_send", send + , "vehicle_code", task.getString("vehicle_code") + , "agv_system_type", task.getString("agv_system_type") + )); + form.add(param); + } + String api = "api/wms/task"; + return AcsUtil.notifyAcs(api, form); + } + @Override public Map cancelToAcs(JSONArray arr) { String api = "api/wms/cancelTask"; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructattrMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructattrMapper.xml index c7707299..ba3211a2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructattrMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructattrMapper.xml @@ -6,7 +6,7 @@ SELECT a.* FROM - `st_ivt_structattr` a + st_ivt_structattr a INNER JOIN st_ivt_structattr b ON a.struct_id = b.control_code WHERE a.is_used = '1' @@ -29,6 +29,8 @@ and b.sect_id = #{sect_id} + ORDER BY a.struct_code + LIMIT 1 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/PointListener.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/PointListener.java index c650ff03..c6d7b661 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/PointListener.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/PointListener.java @@ -28,7 +28,7 @@ public class PointListener extends AbstraceListener { task.put("task_id", task_id); task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); task.put("task_type", event.getType()); - task.put("acs_task_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); + task.put("acs_task_type", event.getAcs_task_type()); task.put("task_status", TaskStatusEnum.CREATED.getCode()); task.put("point_code1", event.getPoint_code1()); task.put("point_code2", event.getPoint_code2()); @@ -43,6 +43,7 @@ public class PointListener extends AbstraceListener { task.put("update_optname", SecurityUtils.getCurrentNickName()); task.put("create_time", DateUtil.now()); task.put("update_time", DateUtil.now()); + task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); task.put("priority", "1");} taskService.save(task.toJavaObject(SchBaseTask.class)); return task_id; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java index 18466b72..36f3653c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java @@ -386,6 +386,8 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl().lambda() @@ -586,6 +588,11 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl().lambda() @@ -729,6 +732,11 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)); if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + // 完成 this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("完成"))); JSONObject mst_jo = new JSONObject(); mst_jo.put("iostorinv_id", mst.getIostorinv_id()); this.confirm(mst_jo); - } else { + } else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { + // 执行中 this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))); + + // 更新任务 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status,TaskStatusEnum.EXECUTING.getCode()) + .eq(SchBaseTask::getTask_id,task_id ) + ); + + } else { + // 取消 + delTask(task_id); } } + + private void delTask(String task_id) { + + StIvtIostorinvBcp mstDao = this.getOne( + new QueryWrapper().lambda() + .eq(StIvtIostorinvBcp::getTask_id, task_id) + ); + + // 删除任务 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()) + .eq(SchBaseTask::getTask_id, mstDao.getTask_id()) + ); + + // 更新主表 + mstDao.setTask_id(""); + mstDao.setWork_status(IOSEnum.WORK_STATUS.code("未生成")); + mstDao.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + this.updateById(mstDao); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java index fa0fdc54..8c2870e1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java @@ -2,6 +2,9 @@ package org.nl.wms.storage_manage.semimanage.service.iostorInv.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -19,10 +22,14 @@ import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowDto; @@ -73,6 +80,8 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))); - }else { - // + // 更新任务 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status,TaskStatusEnum.EXECUTING.getCode()) + .eq(SchBaseTask::getTask_id,task_id ) + ); + }else { + // 取消 + delTask(task_id); } } + private void delTask(String task_id) { + + StIvtIostorinvBcp mstDao = this.getOne( + new QueryWrapper().lambda() + .eq(StIvtIostorinvBcp::getTask_id, task_id) + ); + + // 解锁仓位 + structattrService.update( + new UpdateWrapper().lambda() + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(StIvtStructattr::getStruct_id, mstDao.getStruct_id()) + ); + + // 删除任务 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()) + .eq(SchBaseTask::getTask_id, mstDao.getTask_id()) + ); + + // 更新主表 + mstDao.setSect_id(""); + mstDao.setSect_code(""); + mstDao.setSect_name(""); + mstDao.setStruct_id(""); + mstDao.setStruct_code(""); + mstDao.setStruct_name(""); + mstDao.setTask_id(""); + mstDao.setWork_status(IOSEnum.WORK_STATUS.code("未生成")); + mstDao.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + this.updateById(mstDao); + } + + public void sendTask(String task_id) { + + SchBaseTask taskDao = iSchBaseTaskService.getById(task_id); + JSONArray param = new JSONArray(); + param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao))); + // 1.下发任务 + WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class); + bean.issueTaskToAcs3(param); + + // 2.更新任务状态 + taskDao.setTask_status(TaskStatusEnum.ISSUE.getCode()); + iSchBaseTaskService.updateById(taskDao); + } + }