From 73d44a07c5ebd18042a3302f167ae3293c2ce6ae Mon Sep 17 00:00:00 2001
From: liuxy
Date: Wed, 26 Aug 2026 20:16:47 +0800
Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E6=89=8B=E6=8C=81=E5=BC=80?=
=?UTF-8?q?=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../system/service/menu/ISysMenuService.java | 19 +-
.../secutiry/impl/OnlineUserService.java | 108 +++++--
.../service/IMdMeMaterialbaseService.java | 10 +-
.../impl/MdMeMaterialbaseServiceImpl.java | 44 +--
.../ext/controller/MesToWmsController.java | 14 +
.../nl/wms/ext/service/AcsToWmsService.java | 1 +
.../nl/wms/ext/service/MesToWmsService.java | 50 +++-
.../nl/wms/ext/service/WmsToMesService.java | 29 ++
.../ext/service/impl/AcsToWmsServiceImpl.java | 15 +-
.../ext/service/impl/MesToWmsServiceImpl.java | 56 +++-
.../ext/service/impl/WmsToMesServiceImpl.java | 26 ++
.../controller/AuthorizationsController.java | 9 +-
.../controller/ManMadeController.java | 26 +-
.../ProductCallMaterialController.java | 63 ++++
.../controller/PublicController.java | 77 +++++
.../controller/TaskController.java | 72 +++++
.../controller/UnMaterialDisController.java | 56 ++++
.../service/ManMadeService.java | 22 +-
.../service/ProductCallMaterialService.java | 72 +++++
.../service/PublicService.java | 72 +++++
.../buss_management/service/TaskService.java | 60 ++++
.../service/UnMaterialDisService.java | 54 ++++
.../service/impl/ManMadeServiceImpl.java | 70 +++--
.../impl/ProductCallMaterialServiceImpl.java | 162 +++++++++++
.../service/impl/PublicServiceImpl.java | 117 ++++++++
.../service/impl/TaskServiceImpl.java | 70 +++++
.../impl/UnMaterialDisServiceImpl.java | 171 +++++++++++
.../java/org/nl/wms/pda/util/PdaResponse.java | 14 +-
.../controller/SchBasePointController.java | 2 +-
.../service/ISchBasePointService.java | 28 +-
.../service/ISchBaseTaskService.java | 45 ++-
.../dao/mapper/SchBasePointMapper.java | 93 ++----
.../service/dao/mapper/SchBasePointMapper.xml | 271 +-----------------
.../service/dao/mapper/SchBaseTaskMapper.java | 22 ++
.../service/dao/mapper/SchBaseTaskMapper.xml | 36 +++
.../service/impl/SchBasePointServiceImpl.java | 27 +-
.../service/impl/SchBaseTaskServiceImpl.java | 28 +-
.../sch_manage/service/util/AbstractTask.java | 7 +-
.../util/tasks/MouldCallMaterialTask.java | 8 +-
.../util/tasks/MouldLowMaterialTask.java | 8 +-
.../service/util/tasks/PdaPointTask.java | 8 +-
.../util/tasks/ProductCallMaterialTask.java | 221 ++++++++++++++
.../util/tasks/ProductUnMaterialTask.java | 204 +++++++++++++
.../service/util/tasks/UnMaterialDisTask.java | 209 ++++++++++++++
.../wms/sch_manage/util/PointDisRuleUtil.java | 1 +
.../src/views/wms/basedata/material/index.vue | 160 +----------
.../src/views/wms/sch/task/index.vue | 2 +-
47 files changed, 2275 insertions(+), 664 deletions(-)
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/controller/ProductCallMaterialController.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/controller/PublicController.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/controller/TaskController.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/controller/UnMaterialDisController.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/service/ProductCallMaterialService.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/service/PublicService.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/service/TaskService.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/service/UnMaterialDisService.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/service/impl/ProductCallMaterialServiceImpl.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/service/impl/PublicServiceImpl.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/service/impl/TaskServiceImpl.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/buss_management/service/impl/UnMaterialDisServiceImpl.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ProductCallMaterialTask.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ProductUnMaterialTask.java
create mode 100644 LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/UnMaterialDisTask.java
diff --git a/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java b/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java
index ac81039..76ba034 100644
--- a/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java
+++ b/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/menu/ISysMenuService.java
@@ -1,11 +1,13 @@
package org.nl.system.service.menu;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.domain.vo.MenuVo;
import org.nl.system.service.menu.dao.SysMenu;
import org.nl.system.service.menu.dto.MenuDto;
import org.nl.system.service.menu.dto.MenuQuery;
+import org.nl.wms.pda.util.PdaResponse;
import java.util.List;
import java.util.Map;
@@ -30,6 +32,7 @@ public interface ISysMenuService extends IService {
/**
* 条件查询
+ *
* @param query
* @param page
* @return
@@ -100,6 +103,7 @@ public interface ISysMenuService extends IService {
/**
* 根据id查询
+ *
* @param userId 标识
* @return List 菜单集合
*/
@@ -115,14 +119,16 @@ public interface ISysMenuService extends IService {
/**
* 获取菜单父级
+ *
* @param menuDtos 、
- * @param pid 父级id
+ * @param pid 父级id
* @return List 菜单集合
*/
- List buildMenus(List menuDtos,String pid);
+ List buildMenus(List menuDtos, String pid);
/**
* 获取菜单
+ *
* @param systemType /
* @return List 菜单集合
*/
@@ -130,6 +136,7 @@ public interface ISysMenuService extends IService {
/**
* 构建菜单树
+ *
* @param menuDtos 原始数据
* @return /
*/
@@ -137,6 +144,7 @@ public interface ISysMenuService extends IService {
/**
* 懒加载菜单数据
+ *
* @param pid /
* @return /
*/
@@ -144,6 +152,7 @@ public interface ISysMenuService extends IService {
/**
* s
+ *
* @param sysMenu
* @return
*/
@@ -151,15 +160,17 @@ public interface ISysMenuService extends IService {
/**
* 根据roleId获取
- * @param roleId /
+ *
+ * @param roleId /
* @param systemType /
- * @param category /
+ * @param category /
* @return List
+ *
+ * @author Liuxy
+ * @since 2026-08-14
+ */
+@Component(value = "ProductCallMaterialTask")
+@TaskType("ProductCallMaterialTask")
+public class ProductCallMaterialTask extends AbstractTask {
+
+ /**
+ * 任务服务类
+ */
+ @Autowired
+ private ISchBaseTaskService taskService;
+
+ /**
+ * 点位服务
+ */
+ @Resource
+ private ISchBasePointService iSchBasePointService;
+
+ @Override
+ public String create(JSONObject json) {
+ SchBaseTask task = new SchBaseTask();
+ task.setTask_id(IdUtil.getStringId());
+ task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
+ task.setTask_status(TaskStatus.CREATE.getCode());
+ task.setConfig_code(ProductCallMaterialTask.class.getSimpleName());
+ task.setPoint_code1(json.getString("point_code1"));
+ task.setPoint_code2(json.getString("point_code2"));
+ task.setVehicle_code(json.getString("vehicle_code"));
+ task.setMaterial_id(json.getString("material_id"));
+ task.setMaterial_qty(json.getBigDecimal("material_qty"));
+ task.setMaterial_pcsn(json.getString("material_pcsn"));
+ task.setUnit_name(json.getString("unit_name"));
+ task.setRequest_param(json.toString());
+ task.setPriority(json.getString("Priority"));
+ task.setContact_task(json.getString("contact_task"));
+ task.setRemark(json.getString("remark"));
+ task.setCreate_id(SecurityUtils.getCurrentUserId());
+ task.setCreate_name(SecurityUtils.getCurrentNickName());
+ task.setCreate_time(DateUtil.now());
+ taskService.save(task);
+ if (ObjectUtil.isNotEmpty(task.getPoint_code1())) {
+ // 更新起点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, task.getPoint_code1())
+ .set(SchBasePoint::getIs_lock, IOSConstant.ONE)
+ );
+ // 下发任务
+ this.sendTaskOne(task.getTask_id());
+ }
+ return task.getTask_id();
+ }
+
+ @Override
+ public AcsTaskDto sendAcsParam(String taskId) {
+ SchBaseTask taskDao = taskService.getById(taskId);
+
+ // 组织下发给acs的数据
+ AcsTaskDto acsTaskDto = new AcsTaskDto();
+ acsTaskDto.setExt_task_id(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.setVehicle_code(taskDao.getVehicle_code());
+
+ acsTaskDto.setVehicle_type(IOSConstant.ONE);
+ acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
+
+ acsTaskDto.setPriority(IOSConstant.ONE);
+ acsTaskDto.setAgv_system_type(IOSConstant.TWO);
+
+ return acsTaskDto;
+ }
+
+ @Override
+ @Transactional
+ 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("执行中");
+ taskObj.setUpdate_time(DateUtil.now());
+ taskService.updateById(taskObj);
+ }
+ if (status.equals(TaskStatus.FINISHED)) {
+ this.finishTask(taskObj);
+ }
+ if (status.equals(TaskStatus.CANCELED)) {
+ this.cancelTask(taskObj);
+ }
+ }
+
+ @Override
+ @Transactional
+ public void forceFinish(String task_code) {
+ SchBaseTask taskObj = taskService.getByCode(task_code);
+ if (ObjectUtil.isEmpty(taskObj)) {
+ throw new BadRequestException("该任务不存在");
+ }
+ this.finishTask(taskObj);
+ }
+
+ @Override
+ @Transactional
+ public void cancel(String task_code) {
+ SchBaseTask taskObj = taskService.getByCode(task_code);
+ if (ObjectUtil.isEmpty(taskObj)) {
+ throw new BadRequestException("该任务不存在");
+ }
+ if (Integer.parseInt(taskObj.getTask_status()) > Integer.parseInt(TaskStatus.EXECUTING.getCode())) {
+ throw new BadRequestException("只能取消生成中的任务!");
+ }
+ this.cancelTask(taskObj);
+ }
+
+ @Transactional
+ public void finishTask(SchBaseTask taskObj) {
+ // 更新起点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
+ .set(SchBasePoint::getVehicle_code, "")
+ .set(SchBasePoint::getMaterial_id, "")
+ .set(SchBasePoint::getMaterial_qty, "")
+ .set(SchBasePoint::getMaterial_pcsn, "")
+ .set(SchBasePoint::getUnit_name, "")
+ .set(SchBasePoint::getIs_lock, IOSConstant.ZERO)
+ .set(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
+ );
+ // 更新终点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
+ .set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
+ .set(SchBasePoint::getMaterial_id, taskObj.getMaterial_id())
+ .set(SchBasePoint::getMaterial_qty, taskObj.getMaterial_qty())
+ .set(SchBasePoint::getMaterial_pcsn, taskObj.getMaterial_pcsn())
+ .set(SchBasePoint::getUnit_name, taskObj.getUnit_name())
+ .set(SchBasePoint::getIs_lock, IOSConstant.ZERO)
+ .set(SchBasePoint::getPoint_status, PointStatusEnum.FULL_POINT.getCode())
+ );
+ // 更新任务
+ taskObj.setRemark("已完成");
+ taskObj.setTask_status(TaskStatus.FINISHED.getCode());
+ taskObj.setUpdate_time(DateUtil.now());
+ taskService.updateById(taskObj);
+ // 回传mes
+ taskService.returnTaskMes(taskObj);
+ }
+
+ @Transactional
+ public void cancelTask(SchBaseTask taskObj) {
+ // 更新任务
+ taskObj.setRemark("已取消");
+ taskObj.setTask_status(TaskStatus.CANCELED.getCode());
+ taskObj.setUpdate_time(DateUtil.now());
+ taskService.updateById(taskObj);
+ // 更新起点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
+ .set(SchBasePoint::getIs_lock, IOSConstant.ZERO)
+ );
+ }
+
+ @Override
+ public void taskOperate(String task_id, JSONObject whereJson) {
+ SchBaseTask taskDao = taskService.getById(task_id);
+ taskDao.setPoint_code1(whereJson.getString("startPoint"));
+ taskDao.setVehicle_code(whereJson.getString("pkgId"));
+ taskDao.setMaterial_id(whereJson.getString("materialCode"));
+ taskDao.setMaterial_pcsn(whereJson.getString("pcsn"));
+ taskDao.setMaterial_qty(whereJson.getBigDecimal("qty"));
+ taskDao.setUnit_name(whereJson.getString("unitName"));
+ taskService.updateById(taskDao);
+ this.sendTaskOne(taskDao.getTask_id());
+ }
+}
diff --git a/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ProductUnMaterialTask.java b/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ProductUnMaterialTask.java
new file mode 100644
index 0000000..7b10949
--- /dev/null
+++ b/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/ProductUnMaterialTask.java
@@ -0,0 +1,204 @@
+package org.nl.wms.sch_manage.service.util.tasks;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import org.nl.common.exception.BadRequestException;
+import org.nl.common.utils.CodeUtil;
+import org.nl.common.utils.SecurityUtils;
+import org.nl.config.IdUtil;
+import org.nl.wms.sch_manage.enums.PointStatusEnum;
+import org.nl.wms.sch_manage.enums.TaskStatus;
+import org.nl.wms.sch_manage.service.ISchBasePointService;
+import org.nl.wms.sch_manage.service.ISchBaseTaskService;
+import org.nl.wms.sch_manage.service.dao.SchBasePoint;
+import org.nl.wms.sch_manage.service.dao.SchBaseTask;
+import org.nl.wms.sch_manage.service.util.ACSTaskTypeEnum;
+import org.nl.wms.sch_manage.service.util.AbstractTask;
+import org.nl.wms.sch_manage.service.util.AcsTaskDto;
+import org.nl.wms.sch_manage.service.util.TaskType;
+import org.nl.wms.warehouse_management.enums.IOSConstant;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+/**
+ *
+ * 制程下料任务类
+ *
+ *
+ * @author Liuxy
+ * @since 2026-08-14
+ */
+@Component(value = "ProductUnMaterialTask")
+@TaskType("ProductUnMaterialTask")
+public class ProductUnMaterialTask extends AbstractTask {
+
+ /**
+ * 任务服务类
+ */
+ @Autowired
+ private ISchBaseTaskService taskService;
+
+ /**
+ * 点位服务
+ */
+ @Resource
+ private ISchBasePointService iSchBasePointService;
+
+ @Override
+ public String create(JSONObject json) {
+ SchBaseTask task = new SchBaseTask();
+ task.setTask_id(IdUtil.getStringId());
+ task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
+ task.setTask_status(TaskStatus.CREATE.getCode());
+ task.setConfig_code(ProductUnMaterialTask.class.getSimpleName());
+ task.setPoint_code1(json.getString("point_code1"));
+ task.setPoint_code2(json.getString("point_code2"));
+ task.setVehicle_code(json.getString("vehicle_code"));
+ task.setMaterial_id(json.getString("material_id"));
+ task.setMaterial_qty(json.getBigDecimal("material_qty"));
+ task.setMaterial_pcsn(json.getString("material_pcsn"));
+ task.setUnit_name(json.getString("unit_name"));
+ task.setRequest_param(json.toString());
+ task.setPriority(json.getString("Priority"));
+ task.setContact_task(json.getString("contact_task"));
+ task.setRemark(json.getString("remark"));
+ task.setCreate_id(SecurityUtils.getCurrentUserId());
+ task.setCreate_name(SecurityUtils.getCurrentNickName());
+ task.setCreate_time(DateUtil.now());
+ taskService.save(task);
+
+ this.sendTaskOne(task.getTask_id());
+ return task.getTask_id();
+ }
+
+ @Override
+ public AcsTaskDto sendAcsParam(String taskId) {
+ SchBaseTask taskDao = taskService.getById(taskId);
+
+ // 组织下发给acs的数据
+ AcsTaskDto acsTaskDto = new AcsTaskDto();
+ acsTaskDto.setExt_task_id(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.setVehicle_code(taskDao.getVehicle_code());
+
+ acsTaskDto.setVehicle_type(IOSConstant.ONE);
+ acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
+
+ acsTaskDto.setPriority(IOSConstant.ONE);
+ acsTaskDto.setAgv_system_type(IOSConstant.TWO);
+
+ return acsTaskDto;
+ }
+
+ @Override
+ @Transactional
+ 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("执行中");
+ taskObj.setUpdate_time(DateUtil.now());
+ taskService.updateById(taskObj);
+ }
+ if (status.equals(TaskStatus.FINISHED)) {
+ this.finishTask(taskObj);
+ }
+ if (status.equals(TaskStatus.CANCELED)) {
+ this.cancelTask(taskObj);
+ }
+ }
+
+ @Override
+ @Transactional
+ public void forceFinish(String task_code) {
+ SchBaseTask taskObj = taskService.getByCode(task_code);
+ if (ObjectUtil.isEmpty(taskObj)) {
+ throw new BadRequestException("该任务不存在");
+ }
+ this.finishTask(taskObj);
+ }
+
+ @Override
+ @Transactional
+ public void cancel(String task_code) {
+ SchBaseTask taskObj = taskService.getByCode(task_code);
+ if (ObjectUtil.isEmpty(taskObj)) {
+ throw new BadRequestException("该任务不存在");
+ }
+ if (Integer.parseInt(taskObj.getTask_status()) > Integer.parseInt(TaskStatus.EXECUTING.getCode())) {
+ throw new BadRequestException("只能取消生成中的任务!");
+ }
+ this.cancelTask(taskObj);
+ }
+
+ @Transactional
+ public void finishTask(SchBaseTask taskObj) {
+ // 更新起点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
+ .set(SchBasePoint::getVehicle_code, "")
+ .set(SchBasePoint::getMaterial_id, "")
+ .set(SchBasePoint::getMaterial_qty, "")
+ .set(SchBasePoint::getMaterial_pcsn, "")
+ .set(SchBasePoint::getUnit_name, "")
+ .set(SchBasePoint::getIs_lock, IOSConstant.ZERO)
+ .set(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
+ );
+ // 更新终点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
+ .set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
+ .set(SchBasePoint::getMaterial_id, taskObj.getMaterial_id())
+ .set(SchBasePoint::getMaterial_qty, taskObj.getMaterial_qty())
+ .set(SchBasePoint::getMaterial_pcsn, taskObj.getMaterial_pcsn())
+ .set(SchBasePoint::getUnit_name, taskObj.getUnit_name())
+ .set(SchBasePoint::getIs_lock, IOSConstant.ZERO)
+ .set(SchBasePoint::getPoint_status, PointStatusEnum.FULL_POINT.getCode())
+ );
+ // 更新任务
+ taskObj.setRemark("已完成");
+ taskObj.setTask_status(TaskStatus.FINISHED.getCode());
+ taskObj.setUpdate_time(DateUtil.now());
+ taskService.updateById(taskObj);
+ // 回传mes
+ taskService.returnTaskMes(taskObj);
+ }
+
+ @Transactional
+ public void cancelTask(SchBaseTask taskObj) {
+ // 更新任务
+ taskObj.setRemark("已取消");
+ taskObj.setTask_status(TaskStatus.CANCELED.getCode());
+ taskObj.setUpdate_time(DateUtil.now());
+ taskService.updateById(taskObj);
+ // 更新起点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
+ .set(SchBasePoint::getIs_lock, IOSConstant.ZERO)
+ );
+ }
+
+ @Override
+ public void taskOperate(String task_id, JSONObject whereJson) {
+ }
+}
diff --git a/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/UnMaterialDisTask.java b/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/UnMaterialDisTask.java
new file mode 100644
index 0000000..9e67a5b
--- /dev/null
+++ b/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/UnMaterialDisTask.java
@@ -0,0 +1,209 @@
+package org.nl.wms.sch_manage.service.util.tasks;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import org.nl.common.exception.BadRequestException;
+import org.nl.common.utils.CodeUtil;
+import org.nl.common.utils.SecurityUtils;
+import org.nl.config.IdUtil;
+import org.nl.wms.sch_manage.enums.PointStatusEnum;
+import org.nl.wms.sch_manage.enums.TaskStatus;
+import org.nl.wms.sch_manage.service.ISchBasePointService;
+import org.nl.wms.sch_manage.service.ISchBaseTaskService;
+import org.nl.wms.sch_manage.service.dao.SchBasePoint;
+import org.nl.wms.sch_manage.service.dao.SchBaseTask;
+import org.nl.wms.sch_manage.service.util.ACSTaskTypeEnum;
+import org.nl.wms.sch_manage.service.util.AbstractTask;
+import org.nl.wms.sch_manage.service.util.AcsTaskDto;
+import org.nl.wms.sch_manage.service.util.TaskType;
+import org.nl.wms.warehouse_management.enums.IOSConstant;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+/**
+ *
+ * 下料配送任务类
+ *
+ *
+ * @author Liuxy
+ * @since 2026-08-14
+ */
+@Component(value = "UnMaterialDisTask")
+@TaskType("UnMaterialDisTask")
+public class UnMaterialDisTask extends AbstractTask {
+
+ /**
+ * 任务服务类
+ */
+ @Autowired
+ private ISchBaseTaskService taskService;
+
+ /**
+ * 点位服务
+ */
+ @Resource
+ private ISchBasePointService iSchBasePointService;
+
+ @Override
+ public String create(JSONObject json) {
+ SchBaseTask task = new SchBaseTask();
+ String materialId = json.getString("material_id");
+ task.setTask_id(IdUtil.getStringId());
+ task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
+ task.setTask_status(TaskStatus.CREATE.getCode());
+ task.setConfig_code(UnMaterialDisTask.class.getSimpleName());
+ task.setPoint_code1(json.getString("point_code1"));
+ task.setPoint_code2(json.getString("point_code2"));
+ task.setVehicle_code(json.getString("vehicle_code"));
+ task.setMaterial_id(ObjectUtil.isEmpty(materialId) ? "0" : materialId);
+ task.setMaterial_qty(json.getBigDecimal("material_qty"));
+ task.setMaterial_pcsn(json.getString("material_pcsn"));
+ task.setUnit_name(json.getString("unit_name"));
+ task.setRequest_param(json.toString());
+ task.setPriority(json.getString("Priority"));
+ task.setContact_task(json.getString("contact_task"));
+ task.setRemark(json.getString("remark"));
+ task.setCreate_id(SecurityUtils.getCurrentUserId());
+ task.setCreate_name(SecurityUtils.getCurrentNickName());
+ task.setCreate_time(DateUtil.now());
+ taskService.save(task);
+ // 更新起点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, task.getPoint_code1())
+ .set(SchBasePoint::getIs_lock, IOSConstant.ONE)
+ );
+
+ this.sendTaskOne(task.getTask_id());
+ return task.getTask_id();
+ }
+
+ @Override
+ public AcsTaskDto sendAcsParam(String taskId) {
+ SchBaseTask taskDao = taskService.getById(taskId);
+
+ // 组织下发给acs的数据
+ AcsTaskDto acsTaskDto = new AcsTaskDto();
+ acsTaskDto.setExt_task_id(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.setVehicle_code(taskDao.getVehicle_code());
+
+ acsTaskDto.setVehicle_type(IOSConstant.ONE);
+ acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
+
+ acsTaskDto.setPriority(IOSConstant.ONE);
+ acsTaskDto.setAgv_system_type(IOSConstant.TWO);
+
+ return acsTaskDto;
+ }
+
+ @Override
+ @Transactional
+ 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("执行中");
+ taskObj.setUpdate_time(DateUtil.now());
+ taskService.updateById(taskObj);
+ }
+ if (status.equals(TaskStatus.FINISHED)) {
+ this.finishTask(taskObj);
+ }
+ if (status.equals(TaskStatus.CANCELED)) {
+ this.cancelTask(taskObj);
+ }
+ }
+
+ @Override
+ @Transactional
+ public void forceFinish(String task_code) {
+ SchBaseTask taskObj = taskService.getByCode(task_code);
+ if (ObjectUtil.isEmpty(taskObj)) {
+ throw new BadRequestException("该任务不存在");
+ }
+ this.finishTask(taskObj);
+ }
+
+ @Override
+ @Transactional
+ public void cancel(String task_code) {
+ SchBaseTask taskObj = taskService.getByCode(task_code);
+ if (ObjectUtil.isEmpty(taskObj)) {
+ throw new BadRequestException("该任务不存在");
+ }
+ if (Integer.parseInt(taskObj.getTask_status()) > Integer.parseInt(TaskStatus.EXECUTING.getCode())) {
+ throw new BadRequestException("只能取消生成中的任务!");
+ }
+ this.cancelTask(taskObj);
+ }
+
+ @Transactional
+ public void finishTask(SchBaseTask taskObj) {
+ // 更新起点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
+ .set(SchBasePoint::getVehicle_code, "")
+ .set(SchBasePoint::getMaterial_id, "")
+ .set(SchBasePoint::getMaterial_qty, "")
+ .set(SchBasePoint::getMaterial_pcsn, "")
+ .set(SchBasePoint::getUnit_name, "")
+ .set(SchBasePoint::getIs_lock, IOSConstant.ZERO)
+ .set(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
+ );
+ // 更新终点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2())
+ .set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
+ .set(SchBasePoint::getMaterial_id, taskObj.getMaterial_id())
+ .set(SchBasePoint::getMaterial_qty, taskObj.getMaterial_qty())
+ .set(SchBasePoint::getMaterial_pcsn, taskObj.getMaterial_pcsn())
+ .set(SchBasePoint::getUnit_name, taskObj.getUnit_name())
+ .set(SchBasePoint::getIs_lock, IOSConstant.ZERO)
+ .set(SchBasePoint::getPoint_status, PointStatusEnum.FULL_POINT.getCode())
+ );
+ // 更新任务
+ taskObj.setRemark("已完成");
+ taskObj.setTask_status(TaskStatus.FINISHED.getCode());
+ taskObj.setUpdate_time(DateUtil.now());
+ taskService.updateById(taskObj);
+ }
+
+ @Transactional
+ public void cancelTask(SchBaseTask taskObj) {
+ // 更新任务
+ taskObj.setRemark("已取消");
+ taskObj.setTask_status(TaskStatus.CANCELED.getCode());
+ taskObj.setUpdate_time(DateUtil.now());
+ taskService.updateById(taskObj);
+ // 更新起点
+ iSchBasePointService.update(
+ new UpdateWrapper().lambda()
+ .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1())
+ .set(SchBasePoint::getIs_lock, IOSConstant.ZERO)
+ );
+ }
+
+ @Override
+ public void taskOperate(String task_id, JSONObject whereJson) {
+ }
+}
diff --git a/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/util/PointDisRuleUtil.java b/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/util/PointDisRuleUtil.java
index 4c19b59..17c1b9c 100644
--- a/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/util/PointDisRuleUtil.java
+++ b/LMS/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/util/PointDisRuleUtil.java
@@ -180,6 +180,7 @@ public class PointDisRuleUtil {
new QueryWrapper().lambda()
.eq(SchBasePoint::getRow_num, schBasePointMapper.getEmpRowNum(regionCode))
.eq(SchBasePoint::getIs_used, IOSConstant.ONE)
+ .eq(SchBasePoint::getRegion_code, regionCode)
.orderByAsc(SchBasePoint::getIn_order_seq)
);
}
diff --git a/LMS/nladmin-ui/src/views/wms/basedata/material/index.vue b/LMS/nladmin-ui/src/views/wms/basedata/material/index.vue
index c301a4a..e8bc54d 100644
--- a/LMS/nladmin-ui/src/views/wms/basedata/material/index.vue
+++ b/LMS/nladmin-ui/src/views/wms/basedata/material/index.vue
@@ -31,17 +31,6 @@
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
否
@@ -147,75 +87,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -372,14 +242,8 @@ export default {
is_used: [
{ required: true, message: '是否启用不能为空', trigger: 'blur' }
],
- supp_code: [
- { required: true, message: '供应商不能为空', trigger: 'blur' }
- ],
base_unit_id: [
{ required: true, message: '计量单位不能为空', trigger: 'blur' }
- ],
- material_type_id: [
- { required: true, message: '物料类别不能为空', trigger: 'blur' }
]
}
}
@@ -452,14 +316,6 @@ export default {
openDelete(row) {
this.form2 = row
this.deleteDialog = true
- },
- deleteRow() {
- crudMaterial.deleteRow(this.form2).then(res => {
- this.form2 = {}
- this.deleteDialog = false
- this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
- this.crud.toQuery()
- })
}
}
}
diff --git a/LMS/nladmin-ui/src/views/wms/sch/task/index.vue b/LMS/nladmin-ui/src/views/wms/sch/task/index.vue
index 6225a08..51a4118 100644
--- a/LMS/nladmin-ui/src/views/wms/sch/task/index.vue
+++ b/LMS/nladmin-ui/src/views/wms/sch/task/index.vue
@@ -217,9 +217,9 @@
+
-