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 @@
+
-