From 877578f9011a58b2eaa1817104cabe7510f3f5ca Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 14 May 2026 09:21:22 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- acs2/nladmin-system/pom.xml | 17 +- .../server/impl/XianGongAgvServiceImpl.java | 14 +- .../java/org/nl/acs/ext/xg/XgHttpUtil.java | 1 + .../common/utils/enums/RegionEnum.java | 3 + .../org/nl/acs/agv/server/AgvWaitUtil.java | 2 +- .../java/org/nl/config/mqtt2/MqttService.java | 2 +- .../common/utils/enums/RegionEnum.java | 29 ++-- .../mes/service/impl/MesToWmsServiceImpl.java | 5 + .../task_manage/task/tasks/fj/MDMDTask.java | 149 ++++++++++++++++++ 9 files changed, 190 insertions(+), 32 deletions(-) create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/MDMDTask.java diff --git a/acs2/nladmin-system/pom.xml b/acs2/nladmin-system/pom.xml index b5d06ef..3ec740f 100644 --- a/acs2/nladmin-system/pom.xml +++ b/acs2/nladmin-system/pom.xml @@ -51,11 +51,23 @@ org.openscada.jinterop org.openscada.jinterop.core 2.1.8 + + + org.bouncycastle + bcprov-jdk15on + + org.openscada.jinterop org.openscada.jinterop.deps 1.5.0 + + + org.bouncycastle + bcprov-jdk15on + + org.openscada.utgard @@ -420,11 +432,6 @@ lucene-analyzers-smartcn ${lucene.version} - - org.bouncycastle - bcprov-jdk15on - 1.68 - org.apache.lucene diff --git a/acs2/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java b/acs2/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java index 448bb19..74d77a0 100644 --- a/acs2/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java +++ b/acs2/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java @@ -161,14 +161,14 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { driver.setCar_no(reqParam.getString("robot_name")); result.put("code", HttpStatus.HTTP_OK); - result.put("message", "ok"); + result.put("message", "申请进入设备:"+device.getDevice_code()+"成功"); } else { result.put("code", HttpStatus.HTTP_BAD_REQUEST); - result.put("message", "ok"); + result.put("message", "当前action值为:"+driver.getAction()+"不允许进入"); } } else { result.put("code", HttpStatus.HTTP_BAD_REQUEST); - result.put("message", "ok"); + result.put("message", "当前设备不属于三色灯!"); } log.info("getBlockGroup反馈AGV输出参数:{}", result.toString()); return result; @@ -195,7 +195,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { driver.writing(Arrays.asList(key),Arrays.asList(value)); // 判断是否允许离开 1-允许,0-不允许 - if (driver.getAction() == XgAgvEnum.GS_ACTION_YES.getCode()) { + if (driver.getAction() == XgAgvEnum.GS_ACTION_NOT.getCode()) { // 判断是否清楚车号 if (device.getExtraValue().get("is_clean").toString().equals("1")) { // 清除第当前设备车号(第二次) @@ -207,14 +207,14 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { driver2.setCar_no(""); } result.put("code", HttpStatus.HTTP_OK); - result.put("message", "ok"); + result.put("message", "申请离开设备:"+device.getDevice_code()+"成功"); } else { result.put("code", HttpStatus.HTTP_BAD_REQUEST); - result.put("message", "ok"); + result.put("message", "当前action值为:"+driver.getAction()+"不允许离开"); } } else { result.put("code", HttpStatus.HTTP_BAD_REQUEST); - result.put("message", "ok"); + result.put("message", "当前设备不属于三色灯!"); } log.info("releaseBlockGroup反馈AGV输出参数:{}", result.toString()); return result; diff --git a/acs2/nladmin-system/src/main/java/org/nl/acs/ext/xg/XgHttpUtil.java b/acs2/nladmin-system/src/main/java/org/nl/acs/ext/xg/XgHttpUtil.java index 25d6de9..f6a1627 100644 --- a/acs2/nladmin-system/src/main/java/org/nl/acs/ext/xg/XgHttpUtil.java +++ b/acs2/nladmin-system/src/main/java/org/nl/acs/ext/xg/XgHttpUtil.java @@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; /** diff --git a/acs2/nladmin-system/src/main/java/org/nl/modules/common/utils/enums/RegionEnum.java b/acs2/nladmin-system/src/main/java/org/nl/modules/common/utils/enums/RegionEnum.java index ccd9e15..24b41b9 100644 --- a/acs2/nladmin-system/src/main/java/org/nl/modules/common/utils/enums/RegionEnum.java +++ b/acs2/nladmin-system/src/main/java/org/nl/modules/common/utils/enums/RegionEnum.java @@ -50,6 +50,9 @@ public enum RegionEnum { // D生产区-->地面货架 D_DMHJ("D", "DMHJ","PS20","Group-001"), + // 地面货架--> D生产区 + DMHJ_D("DMHJ", "D","PS20","Group-001"), + // 地面货架-->拆盘机 DMHJ_CPJ("DMHJ", "CPJ","PS20","Group-001"), diff --git a/acs3/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java b/acs3/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java index 8139683..7fd532b 100644 --- a/acs3/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java +++ b/acs3/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java @@ -35,7 +35,7 @@ public class AgvWaitUtil { @Autowired private ConveyorService conveyorService; - private final String code = "BZXXL,CPJSSX"; + private final String code = "AK001,ZB003,BK001"; //取货前等待 public JSONObject waitInGet(String deviceCode) { diff --git a/acs3/nladmin-system/src/main/java/org/nl/config/mqtt2/MqttService.java b/acs3/nladmin-system/src/main/java/org/nl/config/mqtt2/MqttService.java index 94b58dc..f7955d1 100644 --- a/acs3/nladmin-system/src/main/java/org/nl/config/mqtt2/MqttService.java +++ b/acs3/nladmin-system/src/main/java/org/nl/config/mqtt2/MqttService.java @@ -374,6 +374,6 @@ public class MqttService implements ApplicationAutoInitial { @Override public void autoInitial() throws Exception { - this.init(); + //this.init(); } } diff --git a/acs3/nladmin-system/src/main/java/org/nl/modules/common/utils/enums/RegionEnum.java b/acs3/nladmin-system/src/main/java/org/nl/modules/common/utils/enums/RegionEnum.java index b25d19f..a13cca9 100644 --- a/acs3/nladmin-system/src/main/java/org/nl/modules/common/utils/enums/RegionEnum.java +++ b/acs3/nladmin-system/src/main/java/org/nl/modules/common/utils/enums/RegionEnum.java @@ -32,33 +32,26 @@ import java.util.List; @AllArgsConstructor public enum RegionEnum { + // I区到E区 + I_E("I", "E","PS15","Group-005"), + + // E区到I区 + E_I("E", "I","PS15","Group-005"), + // A区到E区 A_E("A", "E","PS15","Group-005"), - // E区到G区 - E_G("E", "G","PS15","Group-005"), - // B区到D区 B_D("B", "D","PS15","Group-005"), - // B区到C区 - B_C("B", "C","PS15","Group-005"), + // I区到H区 + I_H("I", "H","PS15","Group-005"), + + // I区到B区 + I_B("I", "B","PS15","Group-005"), // C区到C区 C_C("C", "C","PS15","Group-005"), - - // F区到B区 - F_B("F", "B","PS15","Group-005"), - - // F区到H区 - F_H("F", "H","PS15","Group-005"), - - // F区到G区 - F_G("F", "G","PS15","Group-005"), - - // G区到F区 - G_F("G", "F","PS15","Group-005"), - ; // 起点区域 diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java index 7a7040a..849d59c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java @@ -320,6 +320,11 @@ public class MesToWmsServiceImpl implements MesToWmsService { private String ifTaskRegion(String start_region, String next_region) { String task_code = ""; + // 如果起点或者是终点是二期 + if (start_region.equals("TWOPOINT") && next_region.equals("TWOPOINT")) { + return "TWOPUBTask"; + } + // 如果起点和终点是相同区域则返回移库任务类 if (start_region.equals(next_region)) { return "PUBMOVETask"; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/MDMDTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/MDMDTask.java new file mode 100644 index 0000000..27df94e --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/MDMDTask.java @@ -0,0 +1,149 @@ +package org.nl.wms.sch.task_manage.task.tasks.fj; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.config.IdUtil; +import org.nl.wms.ext.mes.service.WmsToMesService; +import org.nl.wms.sch.task.service.ISchBaseTaskService; +import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; +import org.nl.wms.sch.task.service.dao.SchBaseTask; +import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.AcsTaskDto; +import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.task.TaskType; +import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import org.nl.wms.util.TaskUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +/** + * @Author: lxy + * @Description: D区送满托盘到地面货架 + * @Date: 2024/9/24 + */ +@Component(value = "MDMDTask") +@TaskType("MDMDTask") +public class MDMDTask extends AbstractTask { + @Autowired + private ISchBaseTaskService taskService; + + @Autowired + private ISchBaseTaskconfigService taskConfigService; + + @Autowired + private WmsToMesService wmsToMesService; + + @Override + public String create(JSONObject json) { + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(json.getString("TaskCode")); + task.setTask_status(TaskStatus.CREATE.getCode()); + task.setConfig_code(json.getString("task_type")); + task.setPoint_code1(json.getString("PickingLocation")); + task.setPoint_code2(json.getString("PlacedLocation")); + task.setRequest_param(json.toString()); + task.setPriority(json.getString("Priority")); + task.setIs_vehicle(json.getString("IsPanCode")); + task.setExt_group_data(json.getString("CarryIsEmptyTuoPan")); + task.setCreate_id(SecurityUtils.getCurrentUserId()); + task.setCreate_name(SecurityUtils.getCurrentNickName()); + task.setCreate_time(DateUtil.now()); + task.setWorkshop_code("A1"); + taskService.save(task); + return task.getTask_id(); + } + + @Override + public AcsTaskDto sendAcsParam(String taskId) { + SchBaseTask taskDao = taskService.getById(taskId); + + // 组织下发给acs的数据 + AcsTaskDto acsTaskDto = new AcsTaskDto(); + acsTaskDto.setExt_task_uuid(taskDao.getTask_id()); + acsTaskDto.setTask_code(taskDao.getTask_code()); + acsTaskDto.setStart_device_code(taskDao.getPoint_code1()); + acsTaskDto.setNext_device_code(taskDao.getPoint_code2()); + acsTaskDto.setPriority(taskDao.getPriority()); + acsTaskDto.setIs_vehicle(taskDao.getIs_vehicle()); + acsTaskDto.setTask_type("1"); + acsTaskDto.setDtl_type("1"); + acsTaskDto.setIs_empvehicle(taskDao.getExt_group_data()); + return acsTaskDto; + } + + @Override + protected void updateStatus(String task_code, TaskStatus status) { + // 校验任务 + SchBaseTask taskObj = taskService.getByCode(task_code); + if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成!"); + } + if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { + throw new BadRequestException("该任务已取消!"); + } + // 根据传来的类型去对任务进行操作 + if (status.equals(TaskStatus.EXECUTING)) { + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + taskObj.setRemark("执行中"); + TaskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); + } + if (status.equals(TaskStatus.FINISHED)) { + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + if (status.equals(TaskStatus.CANCELED)) { + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + } + + @Override + public void forceFinish(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + @Override + public void cancel(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + @Override + public void backMes(String task_code) { + wmsToMesService.receiveTaskStatusMesData(taskService.getByCode(task_code)); + } + + @Transactional(rollbackFor = Exception.class) + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark(GeneralDefinition.TASK_FINISH); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + + // 通知mes任务完成 + wmsToMesService.receiveTaskStatusMesData(taskObj); + } + + @Transactional(rollbackFor = Exception.class) + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + taskObj.setRemark(GeneralDefinition.TASK_CANCEL); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } +}