From df6ab03d4b0723b9c42e0576cbd2fbbbf461dfb9 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 22 Aug 2025 14:12:55 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=90=88=E7=AE=B1=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...apper.xml => IStIvtCombinedBoxService.xml} | 0 .../mapper/MdPbStoragevehicleextMapper.java | 8 + .../mapper/MdPbStoragevehicleextMapper.xml | 64 +++ .../MdPbStoragevehicleextServiceImpl.java | 2 +- .../service/impl/StructattrServiceImpl.java | 6 +- ...apper.xml => IStIvtCombinedBoxService.xml} | 0 .../service/util/tasks/BackInTask.java | 17 + .../service/util/tasks/CombinedBoxInTask.java | 228 ++++++++++ .../util/tasks/CombinedBoxMoveTask.java | 265 +++++++++++ .../service/util/tasks/DetainInTask.java | 18 + .../service/util/tasks/PdaPointTask.java | 9 +- .../service/util/tasks/SelectBackInTask.java | 16 + .../ISIvtCombinedBoxController.java | 97 ++++ .../warehouse_management/enums/IOSEnum.java | 9 +- .../service/IStIvtCombinedBoxService.java | 96 ++++ .../service/IStIvtMoveinvService.java | 6 + .../service/dao/StIvtCombinedBox.java | 92 ++++ ...apper.xml => IStIvtCombinedBoxService.xml} | 0 .../dao/mapper/StIvtCombinedBoxMapper.java | 30 ++ .../dao/mapper/StIvtCombinedBoxMapper.xml | 40 ++ .../service/dto/StIvtCombinedBoxDto.java | 32 ++ .../impl/RawAssistIStorServiceImpl.java | 2 +- .../impl/StIvtCombinedBoxServiceImpl.java | 425 ++++++++++++++++++ .../service/impl/StIvtMoveinvServiceImpl.java | 21 +- .../impl/StIvtMoveinvdtlServiceImpl.java | 1 + .../src/views/wms/st/combinedBox/AddDtl.vue | 218 +++++++++ .../views/wms/st/combinedBox/WeighDialog.vue | 178 ++++++++ .../views/wms/st/combinedBox/combinedBox.js | 59 +++ .../src/views/wms/st/combinedBox/index.vue | 356 +++++++++++++++ .../src/views/wms/st/movebill/index.vue | 1 + 30 files changed, 2274 insertions(+), 22 deletions(-) rename wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/role/dao/mapper/{SysRoleMapper.xml => IStIvtCombinedBoxService.xml} (100%) rename wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/{SchBaseTaskconfigMapper.xml => IStIvtCombinedBoxService.xml} (100%) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxInTask.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxMoveTask.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/ISIvtCombinedBoxController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCombinedBoxService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCombinedBox.java rename wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/{IOStorInvDtlMapper.xml => IStIvtCombinedBoxService.xml} (100%) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCombinedBoxMapper.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCombinedBoxMapper.xml create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/StIvtCombinedBoxDto.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtCombinedBoxServiceImpl.java create mode 100644 wms/nladmin-ui/src/views/wms/st/combinedBox/AddDtl.vue create mode 100644 wms/nladmin-ui/src/views/wms/st/combinedBox/WeighDialog.vue create mode 100644 wms/nladmin-ui/src/views/wms/st/combinedBox/combinedBox.js create mode 100644 wms/nladmin-ui/src/views/wms/st/combinedBox/index.vue diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/role/dao/mapper/SysRoleMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/role/dao/mapper/IStIvtCombinedBoxService.xml similarity index 100% rename from wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/role/dao/mapper/SysRoleMapper.xml rename to wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/role/dao/mapper/IStIvtCombinedBoxService.xml diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java index 1ff38fe..72d72e6 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java @@ -94,4 +94,12 @@ public interface MdPbStoragevehicleextMapper extends BaseMapper */ List getBigScreenIvt(); + + /** + * 获取可用库存分页查询 + * @param page 分页条件 + * @param whereJson 查询条件 + * @return IPage + */ + IPage getCanuseIvtQtyAsc(Page page, @Param("param") Map whereJson); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml index 746721a..8072c3d 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml @@ -365,4 +365,68 @@ GROUP BY ext.material_id ORDER BY canuse_qty DESC + + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java index 48ff32b..73f4bb0 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java @@ -216,7 +216,7 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl dtlList = new ArrayList<>(); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java index 13a6ea9..7e3e648 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java @@ -312,8 +312,10 @@ public class StructattrServiceImpl extends ServiceImpl row.getStruct_code().equals(json.getString("struct_code"))) .findFirst().orElse(null); - attrDao.setLock_type(json.getString("lock_type")); - this.update(attrDao); + if (ObjectUtil.isNotEmpty(attrDao)) { + attrDao.setLock_type(json.getString("lock_type")); + this.update(attrDao); + } } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBaseTaskconfigMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/IStIvtCombinedBoxService.xml similarity index 100% rename from wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/SchBaseTaskconfigMapper.xml rename to wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/dao/mapper/IStIvtCombinedBoxService.xml diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java index 0cc6a11..078cae7 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +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; @@ -11,7 +12,9 @@ import org.nl.config.IdUtil; import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.sch_manage.enums.TaskEnum; 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.AbstractTask; import org.nl.wms.sch_manage.service.util.AcsTaskDto; @@ -46,6 +49,12 @@ public class BackInTask extends AbstractTask { @Resource private IOStorInvDisMapper ioStorInvDisMapper; + /** + * 点位服务 + */ + @Autowired + private ISchBasePointService iSchBasePointService; + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); @@ -146,6 +155,14 @@ public class BackInTask extends AbstractTask { taskObj.setRemark("已完成"); taskService.updateById(taskObj); rawAssistIStorService.taskFinish(taskObj); + // 更新起点 + iSchBasePointService.update( + new UpdateWrapper().lambda() + .set(SchBasePoint::getVehicle_code, null) + .set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位")) + .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1()) + + ); } @Transactional(rollbackFor = Exception.class) diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxInTask.java new file mode 100644 index 0000000..e43aabd --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxInTask.java @@ -0,0 +1,228 @@ +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.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +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.basedata_manage.enums.BaseDataEnum; +import org.nl.wms.sch_manage.enums.TaskEnum; +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.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.IOSEnum; +import org.nl.wms.warehouse_management.service.IRawAssistIStorService; +import org.nl.wms.warehouse_management.service.IStIvtCombinedBoxService; +import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; +import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl; +import org.nl.wms.warehouse_management.service.dao.StIvtCombinedBox; +import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; +import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper; +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 2025-08-22 + */ +@Component(value = "CombinedBoxInTask") +@TaskType("CombinedBoxInTask") +public class CombinedBoxInTask extends AbstractTask { + @Autowired + private ISchBaseTaskService taskService; + + /** + * 入库服务 + */ + @Resource + private IRawAssistIStorService rawAssistIStorService; + + /** + * 分配明细mapper + */ + @Resource + private IOStorInvDisMapper ioStorInvDisMapper; + + /** + * 点位服务 + */ + @Autowired + private ISchBasePointService iSchBasePointService; + + /** + * 合箱记录服务 + */ + @Autowired + private IStIvtCombinedBoxService iStIvtCombinedBoxService; + + /** + * 入库明细服务 + */ + @Autowired + private IOStorInvDtlMapper ioStorInvDtlMapper; + + @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(CombinedBoxInTask.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.setGroup_id(json.getString("group_id")); + task.setRequest_param(json.toString()); + task.setTask_type(TaskEnum.TASK_TYPE.code("料箱")); + task.setPriority(json.getString("Priority")); + 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.setTask_type("1"); + + 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("执行中"); + taskService.updateById(taskObj); + } + if (status.equals(TaskStatus.FINISHED)) { + this.finishTask(taskObj); + } + if (status.equals(TaskStatus.CANCELED)) { + this.cancelTask(taskObj); + } + + } + + @Override + public void forceFinish(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj); + } + + @Override + public void cancel(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + if (!TaskStatus.CREATE.getCode().equals(taskObj.getTask_status())) { + throw new BadRequestException("任务状态必须为生成才能取消任务"); + } + this.cancelTask(taskObj); + + } + + @Transactional(rollbackFor = Exception.class) + public void finishTask(SchBaseTask taskObj) { + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark("已完成"); + taskService.updateById(taskObj); + rawAssistIStorService.taskFinish(taskObj); + // 更新起点 + iSchBasePointService.update( + new UpdateWrapper().lambda() + .set(SchBasePoint::getVehicle_code, null) + .set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位")) + .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1()) + + ); + this.taskConfirm(taskObj.getTask_code()); + } + + @Transactional(rollbackFor = Exception.class) + public void cancelTask(SchBaseTask taskObj) { + // 取消任务 + taskService.update(new LambdaUpdateWrapper() + .set(SchBaseTask::getIs_delete, BaseDataEnum.IS_YES_NOT.code("是")) + .set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode()) + .set(SchBaseTask::getRemark, "已取消") + .eq(SchBaseTask::getTask_id, taskObj.getTask_id()) + ); + //分配表清除任务 + ioStorInvDisMapper.update(new IOStorInvDis(), new LambdaUpdateWrapper<>(IOStorInvDis.class) + .set(IOStorInvDis::getTask_id, null) + .set(IOStorInvDis::getPoint_code, null) + .set(IOStorInvDis::getIs_issued, 0) + .set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("未生成")) + .eq(IOStorInvDis::getTask_id, taskObj.getTask_id()) + ); + + // 更新任务状态 + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setRemark("已取消"); + taskService.updateById(taskObj); + } + + @Override + public void taskConfirm(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + // 查询分配明细 + IOStorInvDis disDao = ioStorInvDisMapper.selectOne( + new QueryWrapper().lambda() + .eq(IOStorInvDis::getTask_id, taskObj.getTask_id()) + ); + // 查询明细 + IOStorInvDtl dtlDao = ioStorInvDtlMapper.selectById(disDao.getIostorinvdtl_id()); + // 更新合箱记录状态为完成 + StIvtCombinedBox boxDao = iStIvtCombinedBoxService.getById(dtlDao.getSource_bill_code()); + boxDao.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("完成")); + iStIvtCombinedBoxService.updateById(boxDao); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxMoveTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxMoveTask.java new file mode 100644 index 0000000..b04c8fb --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/CombinedBoxMoveTask.java @@ -0,0 +1,265 @@ +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.query.QueryWrapper; +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.basedata_manage.service.IMdPbStoragevehicleextService; +import org.nl.wms.basedata_manage.service.IStructattrService; +import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; +import org.nl.wms.basedata_manage.service.dao.Structattr; +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.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.IOSEnum; +import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; +import org.nl.wms.warehouse_management.service.IStIvtCombinedBoxService; +import org.nl.wms.warehouse_management.service.IStIvtMoveinvService; +import org.nl.wms.warehouse_management.service.IStIvtMoveinvdtlService; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; +import org.nl.wms.warehouse_management.service.dao.StIvtCombinedBox; +import org.nl.wms.warehouse_management.service.dao.StIvtMoveinvdtl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +/** + *

+ * 合箱移库任务类 + *

+ * + * @author Liuxy + * @since 2025-08-21 + */ +@Component(value = "CombinedBoxMoveTask") +@TaskType("CombinedBoxMoveTask") +public class CombinedBoxMoveTask extends AbstractTask { + + /** + * 任务服务类 + */ + @Autowired + private ISchBaseTaskService taskService; + + /** + * 移库主表服务类 + */ + @Autowired + private IStIvtMoveinvService iStIvtMoveinvService; + + /** + * 移库明细服务类 + */ + @Autowired + private IStIvtMoveinvdtlService iStIvtMoveinvdtlService; + + /** + * 合箱记录服务 + */ + @Autowired + private IStIvtCombinedBoxService iStIvtCombinedBoxService; + + /** + * 仓位服务 + */ + @Autowired + private IStructattrService iStructattrService; + + /** + * 点位服务 + */ + @Autowired + private ISchBasePointService iSchBasePointService; + + /** + * 库存记录服务 + */ + @Autowired + private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; + + /** + * 组盘记录服务 + */ + @Autowired + private IMdPbGroupplateService iMdPbGroupplateService; + + @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(CombinedBoxMoveTask.class.getSimpleName()); + task.setPoint_code1(json.getString("point_code1")); + task.setPoint_code2(json.getString("point_code2")); + task.setVehicle_code(json.getString("vehicle_code")); + task.setGroup_id(json.getString("group_id")); + task.setRequest_param(json.toString()); + task.setPriority(json.getString("Priority")); + 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.setTask_type("1"); + 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)) { + // 更新明细状态 + iStIvtMoveinvService.executing(taskObj); + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + taskObj.setRemark("执行中"); + taskService.updateById(taskObj); + } + if (status.equals(TaskStatus.FINISHED)) { + this.finishTask(taskObj); + } + if (status.equals(TaskStatus.CANCELED)) { + this.cancelTask(taskObj); + } + } + + @Override + public void forceFinish(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj); + } + + @Override + 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.CREATE.getCode())) { + throw new BadRequestException("只能取消生成中的任务!"); + } + this.cancelTask(taskObj); + } + + @Transactional + public void finishTask(SchBaseTask taskObj) { + // 完成任务 + this.taskConfirm(taskObj.getTask_code()); + // 更新任务状态 + taskObj.setRemark("已完成"); + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskService.updateById(taskObj); + } + + @Transactional + public void cancelTask(SchBaseTask taskObj) { + // 删除任务 + StIvtMoveinvdtl dtlDao = iStIvtMoveinvdtlService.getOne( + new QueryWrapper().lambda() + .eq(StIvtMoveinvdtl::getTask_id, taskObj.getTask_id()) + ); + iStIvtMoveinvService.cancelTask(dtlDao); + // 更新合箱记录状态 + StIvtCombinedBox boxDao = iStIvtCombinedBoxService.getById(dtlDao.getSource_bill_code()); + boxDao.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("生成")); + boxDao.setMove_id(""); + iStIvtCombinedBoxService.updateById(boxDao); + + // 更新任务状态 + taskObj.setRemark("已取消"); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskService.updateById(taskObj); + } + + @Override + public void taskConfirm(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + StIvtMoveinvdtl dtlDao = iStIvtMoveinvdtlService.getOne( + new QueryWrapper().lambda() + .eq(StIvtMoveinvdtl::getTask_id, taskObj.getTask_id()) + ); + + // 更新起点 + iStructattrService.update( + new UpdateWrapper().lambda() + .eq(Structattr::getStruct_code, taskObj.getPoint_code1()) + .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .set(Structattr::getStoragevehicle_code, null) + ); + // 更新终点 + iSchBasePointService.update( + new UpdateWrapper().lambda() + .set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code()) + .set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有箱有料")) + .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2()) + + ); + + // 更新移库明细状态 + dtlDao.setWork_status(IOSEnum.MOVE_DTL_STATUS.code("完成")); + iStIvtMoveinvdtlService.updateById(dtlDao); + // 更新移库主表状态 + iStIvtMoveinvService.updateMstStatus(dtlDao.getMoveinv_id()); + + // 更新合箱记录状态 + StIvtCombinedBox boxDao = iStIvtCombinedBoxService.getById(dtlDao.getSource_bill_code()); + boxDao.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("移库完成")); + iStIvtCombinedBoxService.updateById(boxDao); + + // 删除库存记录 + iMdPbStoragevehicleextService.remove( + new QueryWrapper().lambda() + .eq(MdPbStoragevehicleext::getStoragevehicle_code, dtlDao.getStoragevehicle_code()) + .eq(MdPbStoragevehicleext::getPcsn, dtlDao.getPcsn()) + .eq(MdPbStoragevehicleext::getMaterial_id, boxDao.getMaterial_id()) + ); + + // 更新组盘记录为生成 + iMdPbGroupplateService.update( + new UpdateWrapper().lambda() + .set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")) + .eq(GroupPlate::getStoragevehicle_code, dtlDao.getStoragevehicle_code()) + .eq(GroupPlate::getPcsn, dtlDao.getPcsn()) + .eq(GroupPlate::getMaterial_id, boxDao.getMaterial_id()) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) + ); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/DetainInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/DetainInTask.java index 999ec9a..287ba66 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/DetainInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/DetainInTask.java @@ -4,14 +4,18 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +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.basedata_manage.enums.BaseDataEnum; +import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.sch_manage.enums.TaskEnum; 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.AbstractTask; import org.nl.wms.sch_manage.service.util.AcsTaskDto; @@ -46,6 +50,12 @@ public class DetainInTask extends AbstractTask { @Resource private IOStorInvDisMapper ioStorInvDisMapper; + /** + * 点位服务 + */ + @Autowired + private ISchBasePointService iSchBasePointService; + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); @@ -146,6 +156,14 @@ public class DetainInTask extends AbstractTask { taskObj.setRemark("已完成"); taskService.updateById(taskObj); rawAssistIStorService.taskFinish(taskObj); + // 更新起点 + iSchBasePointService.update( + new UpdateWrapper().lambda() + .set(SchBasePoint::getVehicle_code, null) + .set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位")) + .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1()) + + ); } @Transactional(rollbackFor = Exception.class) diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java index ff1b083..b6d09d4 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/PdaPointTask.java @@ -27,9 +27,12 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; /** - * @Author: Liuxy - * @Description: 手持定点任务 - * @Date: 2025/6/6 + *

+ * 点对点任务类 + *

+ * + * @author Liuxy + * @since 2025-08-21 */ @Component(value = "PdaPointTask") @TaskType("PdaPointTask") diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/SelectBackInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/SelectBackInTask.java index 67ce618..2f6e12e 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/SelectBackInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/SelectBackInTask.java @@ -13,7 +13,9 @@ import org.nl.config.IdUtil; import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.sch_manage.enums.TaskEnum; 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.AbstractTask; import org.nl.wms.sch_manage.service.util.AcsTaskDto; @@ -53,6 +55,12 @@ public class SelectBackInTask extends AbstractTask { @Resource private IMdPbGroupplateService iMdPbGroupplateService; + /** + * 点位服务 + */ + @Autowired + private ISchBasePointService iSchBasePointService; + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); @@ -197,5 +205,13 @@ public class SelectBackInTask extends AbstractTask { .eq(GroupPlate::getPcsn, disDao.getPcsn()) .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库")) ); + // 更新起点 + iSchBasePointService.update( + new UpdateWrapper().lambda() + .set(SchBasePoint::getVehicle_code, null) + .set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位")) + .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1()) + + ); } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/ISIvtCombinedBoxController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/ISIvtCombinedBoxController.java new file mode 100644 index 0000000..274eea9 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/ISIvtCombinedBoxController.java @@ -0,0 +1,97 @@ +package org.nl.wms.warehouse_management.controller; + + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.warehouse_management.service.IStIvtCombinedBoxService; +import org.nl.wms.warehouse_management.service.dao.StIvtCombinedBox; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; +import java.util.Set; + +/** + *

+ * 合箱管理 控制层 + *

+ * + * @author Liuxy + * @since 2025-08-21 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/combinedBox") +@Slf4j +public class ISIvtCombinedBoxController { + + @Autowired + private IStIvtCombinedBoxService iStIvtCombinedBoxService; + + @GetMapping + @Log("分页查询") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(iStIvtCombinedBoxService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @GetMapping("/getCanuseIvt") + @Log("获取可用库存物料") + public ResponseEntity getCanuseIvt(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(iStIvtCombinedBoxService.getCanuseIvt(whereJson, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增合箱") + public ResponseEntity create(@Validated @RequestBody StIvtCombinedBox dto) { + iStIvtCombinedBoxService.create(dto); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改合箱") + public ResponseEntity update(@Validated @RequestBody StIvtCombinedBox dto) { + iStIvtCombinedBoxService.update(dto); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除合箱") + public ResponseEntity delete(@RequestBody Set ids) { + iStIvtCombinedBoxService.delete(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/sendMoveTask") + @Log("下发移库任务") + public ResponseEntity sendMoveTask(@RequestBody StIvtCombinedBox dto) { + iStIvtCombinedBoxService.sendMoveTask(dto); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PostMapping("/getWeigh") + @Log("获取称重重量") + public ResponseEntity getWeigh(@RequestBody StIvtCombinedBox dto) { + return new ResponseEntity<>(iStIvtCombinedBoxService.getWeigh(dto), HttpStatus.CREATED); + } + + @PostMapping("/saveWeigh") + @Log("保存称重重量") + public ResponseEntity saveWeigh(@RequestBody StIvtCombinedBox dto) { + iStIvtCombinedBoxService.saveWeigh(dto); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PostMapping("/confirmIn") + @Log("入库确认") + public ResponseEntity confirmIn(@RequestBody StIvtCombinedBox dto) { + iStIvtCombinedBoxService.confirmIn(dto); + return new ResponseEntity<>(HttpStatus.CREATED); + } + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java index f9ae5a2..095e28e 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java @@ -38,11 +38,11 @@ public enum IOSEnum { )), // 移库业务类型 - MOVE_BILL_TYPE(MapOf.of("库内移库","2001")), + MOVE_BILL_TYPE(MapOf.of("库内移库","2001", "合箱移库","2002")), // 入库任务配置类编码 IN_CONFIG_CODE(MapOf.of("0001","DetainInTask", "0002", "BackInTask", - "0003", "GeBoxInTask", "0004", "PieceBoxInTask", "0005", "SelectBackInTask", "0009", "HandInTask" + "0003", "CombinedBoxInTask", "0004", "PieceBoxInTask", "0005", "SelectBackInTask", "0009", "HandInTask" )), // 出库任务配置类编码 @@ -51,7 +51,7 @@ public enum IOSEnum { )), // 移库任务配置类编码 - MOVE_CONFIG_CODE(MapOf.of("2001","InsideMoveTask", "2002", "2002", + MOVE_CONFIG_CODE(MapOf.of("2001","InsideMoveTask", "2002", "CombinedBoxMoveTask", "2003", "2003", "2004", "2004", "2005", "2005" )), @@ -61,6 +61,9 @@ public enum IOSEnum { //组盘记录状态 GROUP_PLATE_STATUS(MapOf.of( "组盘", "1", "入库", "2", "出库", "3")), + //合箱记录状态 + COMBINED_BOX_STATUS(MapOf.of( "生成", "1", "移库中", "2", "移库完成", "3", "入库中", "4", "完成", "5")), + // 锁类型 LOCK_TYPE(MapOf.of("未锁定", "0", "入库锁", "1", "出库锁", "2" , "移入锁", "3", "移出锁", "4", "空托盘入库锁", "5", "空托盘出库锁", "6", diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCombinedBoxService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCombinedBoxService.java new file mode 100644 index 0000000..107a401 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtCombinedBoxService.java @@ -0,0 +1,96 @@ +package org.nl.wms.warehouse_management.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.warehouse_management.service.dao.StIvtCombinedBox; +import org.nl.wms.warehouse_management.service.dto.StIvtCombinedBoxDto; + +import java.util.Map; +import java.util.Set; + +/** + *

+ * 合箱记录表 服务类 + *

+ * + * @author Liuxy + * @since 2025-08-21 + */ +public interface IStIvtCombinedBoxService extends IService { + + /** + * 分页查询 + * + * @param whereJson : {查询参数} + * @param page : 分页对象 + * @return 返回结果 + */ + IPage queryAll(Map whereJson, PageQuery page); + + /** + * 新增合箱 + * + * @param dto 实体类 + */ + void create(StIvtCombinedBox dto); + + /** + * 修改合箱 + * + * @param dto 实体类 + */ + void update(StIvtCombinedBox dto); + + /** + * 删除合箱 + * + * @param ids id集合 + */ + void delete(Set ids); + + /** + * 获取可用库存物料 + * + * @param whereJson : { + * 分页参数:page,size + * stor_id: 仓库id + * struct_code: 货位编码 + * material_code: 物料编码 + * pcsn: 批次 + * bake_num: 烘干次数 + * } + * @param page : 分页对象 + * @return 返回结果 + */ + IPage getCanuseIvt(Map whereJson, PageQuery page); + + /** + * 下发移库任务 + * + * @param dto 实体类 + */ + void sendMoveTask(StIvtCombinedBox dto); + + /** + * 获取称重重量 + * @param dto 实体类dto + * @return JSONObject { + * weigh_qty + * } + */ + JSONObject getWeigh(StIvtCombinedBox dto); + + /** + * 保存称重 + * @param dto 实体类dto + */ + void saveWeigh(StIvtCombinedBox dto); + + /** + * 入库确认 + * @param dto 实体类dto + */ + void confirmIn(StIvtCombinedBox dto); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoveinvService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoveinvService.java index 88400e5..f3fd172 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoveinvService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoveinvService.java @@ -93,6 +93,12 @@ public interface IStIvtMoveinvService extends IService { */ void executing(SchBaseTask taskObj); + /** + * 更新主表状态 + * @param moveinv_id 移库单id + */ + void updateMstStatus(String moveinv_id); + /** * 强制确认 * @param dto 新增修改dto实体类 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCombinedBox.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCombinedBox.java new file mode 100644 index 0000000..5a898fc --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtCombinedBox.java @@ -0,0 +1,92 @@ +package org.nl.wms.warehouse_management.service.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 合箱记录表 + *

+ * + * @author Liuxy + * @since 2025-08-21 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_combinedbox") +public class StIvtCombinedBox implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id标识 + */ + @TableId(value = "id") + private String id; + + /** + * 状态 + */ + private String status; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 烘干次数 + */ + private Integer hot_num; + + /** + * 半满箱载具编码 + */ + private String vehicle_code; + + /** + * 半满箱载具编码 + */ + private String pcsn; + + /** + * 半满箱库存数量 + */ + private BigDecimal ivt_qty; + + /** + * 移库单明细 + */ + private String move_id; + + /** + * 称重重量 + */ + private BigDecimal weight_qty; + + /** + * 加料重量 + */ + private BigDecimal material_qty; + + /** + * 创建人 + */ + private String create_id; + + /** + * 创建人名称 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IOStorInvDtlMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IStIvtCombinedBoxService.xml similarity index 100% rename from wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IOStorInvDtlMapper.xml rename to wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IStIvtCombinedBoxService.xml diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCombinedBoxMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCombinedBoxMapper.java new file mode 100644 index 0000000..0a02aea --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCombinedBoxMapper.java @@ -0,0 +1,30 @@ +package org.nl.wms.warehouse_management.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.warehouse_management.service.dao.StIvtCombinedBox; +import org.nl.wms.warehouse_management.service.dto.StIvtCombinedBoxDto; + +import java.util.Map; + +/** + *

+ * 合箱记录表 Mapper 接口 + *

+ * + * @author Liuxy + * @since 2025-08-21 + */ +public interface StIvtCombinedBoxMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页条件 + * @param whereJson 查询条件 + * @return IPage + */ + IPage queryAllByPage(Page page, @Param("param") Map whereJson); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCombinedBoxMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCombinedBoxMapper.xml new file mode 100644 index 0000000..9bb8441 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtCombinedBoxMapper.xml @@ -0,0 +1,40 @@ + + + + + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/StIvtCombinedBoxDto.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/StIvtCombinedBoxDto.java new file mode 100644 index 0000000..0411568 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dto/StIvtCombinedBoxDto.java @@ -0,0 +1,32 @@ +package org.nl.wms.warehouse_management.service.dto; + +import lombok.Data; +import org.nl.wms.warehouse_management.service.dao.StIvtCombinedBox; + +/** + *

+ * 合箱dto + *

+ * + * @author Liuxy + * @since 2025-08-14 + */ +@Data +public class StIvtCombinedBoxDto extends StIvtCombinedBox { + + /** + * 物料标批次 + */ + private String material_spec; + + /** + * 物料编码 + */ + private String material_code; + + /** + * 物料编码 + */ + private String material_name; + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java index 07d1992..23dbfc3 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java @@ -214,7 +214,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl + * 合箱记录表 服务实现类 + *

+ * + * @author Liuxy + * @since 2025-08-21 + */ +@Service +public class StIvtCombinedBoxServiceImpl extends ServiceImpl implements IStIvtCombinedBoxService { + + /** + * 载具扩展属性mapper + */ + @Resource + private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper; + + /** + * 仓位服务 + */ + @Autowired + private IStructattrService iStructattrService; + + /** + * 物料服务 + */ + @Autowired + private IMdMeMaterialbaseService iMdMeMaterialbaseService; + + /** + * 计量单位服务 + */ + @Autowired + private IMdPbMeasureunitService iMdPbMeasureunitService; + + /** + * 移库单服务 + */ + @Autowired + private IStIvtMoveinvService iStIvtMoveinvService; + + /** + * 移库单明细服务 + */ + @Autowired + private IStIvtMoveinvdtlService iStIvtMoveinvdtlService; + + /** + * 点位信息服务 + */ + @Autowired + private ISchBasePointService iSchBasePointService; + + /** + * 载具信息服务 + */ + @Autowired + private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; + + /** + * wms调用acs服务 + */ + @Autowired + private WmsToAcsService wmsToAcsService; + + /** + * 入库服务 + */ + @Autowired + private IRawAssistIStorService iRawAssistIStorService; + + /** + * 库区服务 + */ + @Autowired + private ISectattrService iSectattrService; + + /** + * 入库明细服务 + */ + @Autowired + private IOStorInvDtlMapper ioStorInvDtlMapper; + + /** + * 组盘记录服务 + */ + @Autowired + private IMdPbGroupplateService iMdPbGroupplateService; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()), + whereJson); + } + + @Override + @Transactional + public void create(StIvtCombinedBox dto) { + dto.setId(IdUtil.getStringId()); + dto.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("生成")); + dto.setCreate_id(SecurityUtils.getCurrentUserId()); + dto.setCreate_name(SecurityUtils.getCurrentNickName()); + dto.setCreate_time(DateUtil.now()); + this.save(dto); + } + + @Override + @Transactional + public void update(StIvtCombinedBox dto) { + this.updateById(dto); + } + + @Override + @Transactional + public void delete(Set ids) { + this.removeByIds(ids); + } + + @Override + public IPage getCanuseIvt(Map whereJson, PageQuery page) { + return mdPbStoragevehicleextMapper.getCanuseIvtQtyAsc(new Page<>(page.getPage() + 1, page.getSize()), + whereJson); + } + + @Override + @Transactional + public void sendMoveTask(StIvtCombinedBox dto) { + // 组织移库生成单据 + String movedtl_id = createMoveTask(dto); + // 更新单据状态 + dto.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("移库中")); + dto.setMove_id(movedtl_id); + this.updateById(dto); + } + + @Override + public JSONObject getWeigh(StIvtCombinedBox dto) { + // 判断当前载具是否是称重位上的载具 + SchBasePoint pointDao = iSchBasePointService.getById(IOSConstant.CZW_POINT); + if (!pointDao.getVehicle_code().equals(dto.getVehicle_code())) { + throw new BadRequestException("当前称重位载具与合箱载具不符,当前称重位载具为【" + pointDao.getVehicle_code() + "】"); + } + // 获取载具信息 + MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getByCode(pointDao.getVehicle_code()); + if (ObjectUtil.isEmpty(vehicleDao.getWeigth())) { + throw new BadRequestException("请维护当前载具重量【" + pointDao.getVehicle_code() + "】"); + } + + // TODO 调用ACS接口获取称重信息 + AcsResponse weighAcs = wmsToAcsService.getWeighAcs(new JSONObject()); + JSONObject jsonResult = weighAcs.getResultData(); + + // 称重重量 + double weigh_qty = NumberUtil.round(jsonResult.getDoubleValue("weigh_qty"), 2).doubleValue(); + // 扣除载具重量 + double sub_qty = NumberUtil.sub(weigh_qty, vehicleDao.getWeigth().doubleValue()); + + JSONObject result = new JSONObject(); + result.put("weigh_qty", NumberUtil.round(sub_qty, 2)); + return result; + } + + @Override + @Transactional + public void saveWeigh(StIvtCombinedBox dto) { + // 更新合箱记录称重重量、加料重量 + StIvtCombinedBox boxDao = this.getById(dto.getId()); + boxDao.setWeight_qty(dto.getWeight_qty()); + boxDao.setMaterial_qty(dto.getMaterial_qty()); + this.updateById(dto); + + // 更新组盘重量 + iMdPbGroupplateService.update( + new UpdateWrapper().lambda() + .set(GroupPlate::getQty, dto.getWeight_qty()) + .eq(GroupPlate::getStoragevehicle_code, dto.getVehicle_code()) + .eq(GroupPlate::getPcsn, dto.getPcsn()) + .eq(GroupPlate::getMaterial_id, boxDao.getMaterial_id()) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")) + ); + } + + @Override + @Transactional + public void confirmIn(StIvtCombinedBox dto) { + // 组织入库数据 + JSONObject resultJson = createCombineBoxIn(dto); + // 调用分配 + JSONObject resultMap = divCombineBoxIn(resultJson); + // 调用下发 + sendTask(resultMap); + // 更新合箱记录为入库中 + StIvtCombinedBox boxDao = this.getById(dto.getId()); + boxDao.setStatus(IOSEnum.COMBINED_BOX_STATUS.code("入库中")); + this.updateById(boxDao); + } + + /** + * 创建移库单并下发任务 + * @param dto 合箱实体类 + * @return movedtl_id 明细标识 + */ + private String createMoveTask(StIvtCombinedBox dto) { + // 查询移出货位 + List attrDaoList = iStructattrService.list( + new QueryWrapper().lambda() + .eq(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .ne(Structattr::getIs_emptyvehicle, IOSConstant.ONE) + .eq(Structattr::getStoragevehicle_code, dto.getVehicle_code()) + ); + if (ObjectUtil.isEmpty(attrDaoList)) { + throw new BadRequestException("当前载具正在执行任务或者载具不在库内!"); + } + if (attrDaoList.size() > 1) { + throw new BadRequestException("库内载具【"+dto.getVehicle_code()+"】重复,请检查数据!"); + } + + // 组织主表 + MoveInsertDto moveInsertDto = new MoveInsertDto(); + moveInsertDto.setBill_type(IOSEnum.MOVE_BILL_TYPE.code("合箱移库")); + moveInsertDto.setBiz_date(DateUtil.today()); + moveInsertDto.setStor_id(attrDaoList.get(0).getStor_id()); + moveInsertDto.setTotal_qty(dto.getIvt_qty()); + moveInsertDto.setDetail_count(BigDecimal.ONE); + moveInsertDto.setBill_status(IOSEnum.MOVE_MST_STATUS.code("生成")); + moveInsertDto.setRemark("由合箱单据创建!"); + + // 组织明细 + List dtlList = new ArrayList<>(); + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("turnout_sect_code", attrDaoList.get(0).getSect_code()); + jsonDtl.put("turnout_struct_code", attrDaoList.get(0).getStruct_code()); + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(dto.getMaterial_id()); + jsonDtl.put("material_code", materDao.getMaterial_code()); + jsonDtl.put("material_id", materDao.getMaterial_id()); + jsonDtl.put("pcsn", dto.getPcsn()); + MdPbMeasureunit unitDao = iMdPbMeasureunitService.getByCode("KG"); + jsonDtl.put("qty_unit_id", unitDao.getMeasure_unit_id()); + jsonDtl.put("qty_unit_name", unitDao.getUnit_name()); + jsonDtl.put("qty", dto.getIvt_qty()); + jsonDtl.put("turnin_sect_code", IOSConstant.CZW_POINT); + jsonDtl.put("turnin_struct_code", IOSConstant.CZW_POINT); + jsonDtl.put("work_status", IOSEnum.MOVE_DTL_STATUS.code("生成")); + jsonDtl.put("storagevehicle_code", dto.getVehicle_code()); + jsonDtl.put("source_bill_code", dto.getId()); + dtlList.add(jsonDtl); + moveInsertDto.setTableData(dtlList); + + // 调用移库单新增 + String move_id = iStIvtMoveinvService.create(moveInsertDto); + // 下发任务 + StIvtMoveinv moveDao = new StIvtMoveinv(); + moveDao.setMoveinv_id(move_id); + iStIvtMoveinvService.sendTask(moveDao); + + // 查询明细标识 + StIvtMoveinvdtl dtlDao = iStIvtMoveinvdtlService.getOne( + new QueryWrapper().lambda() + .eq(StIvtMoveinvdtl::getMoveinv_id, move_id) + ); + return dtlDao.getMoveinvdtl_id(); + } + + /** + * 组织入库数据 + * @param dto 合箱实体类dto + * @return JSONObject + */ + private JSONObject createCombineBoxIn(StIvtCombinedBox dto) { + // 查询移库单明细 + StIvtMoveinvdtl moveDtlDao = iStIvtMoveinvdtlService.getById(dto.getMove_id()); + // 查询主表 + StIvtMoveinv moveMstDao = iStIvtMoveinvService.getById(moveDtlDao.getMoveinv_id()); + // 查询移库仓位 + Structattr attrDao = iStructattrService.getByCode(moveDtlDao.getTurnout_struct_code()); + + // 组织主表数据 + Map jsonMst = new HashMap<>(); + jsonMst.put("stor_id", moveMstDao.getStor_id()); + jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成")); + jsonMst.put("total_qty", dto.getWeight_qty()); + jsonMst.put("detail_count", 1); + jsonMst.put("bill_type", IOSEnum.IN_BILL_TYPE.code("合箱入库")); + jsonMst.put("biz_date", DateUtil.now()); + + // 组织明细数据 + ArrayList tableData = new ArrayList<>(); + HashMap dtl = new HashMap<>(); + dtl.put("storagevehicle_code", dto.getVehicle_code()); + dtl.put("pcsn", dto.getPcsn()); + dtl.put("qty_unit_id", moveDtlDao.getQty_unit_id()); + dtl.put("qty_unit_name", moveDtlDao.getQty_unit_name()); + dtl.put("qty", dto.getWeight_qty().toString()); + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(dto.getMaterial_id()); + dtl.put("material_code", materDao.getMaterial_code()); + dtl.put("material_name", materDao.getMaterial_name()); + dtl.put("material_id", materDao.getMaterial_id()); + dtl.put("plan_qty", dto.getWeight_qty().toString()); + dtl.put("ext_code", dto.getId()); + // 调用新增 + tableData.add(dtl); + jsonMst.put("tableData", tableData); + String iostorinv_id = iRawAssistIStorService.insertDtl(jsonMst); + + JSONObject result = new JSONObject(); + result.put("sect_id", attrDao.getSect_id()); + result.put("iostorinv_id", iostorinv_id); + return result; + } + + /** + * 组织分配数据 + * + * @param whereJson { + * iostorinv_id + * sect_id + * } + * @return JSONObject + */ + private JSONObject divCombineBoxIn(JSONObject whereJson) { + // 查询库区 + Sectattr sectDao = iSectattrService.getById(whereJson.getString("sect_id")); + // 组织主数据 + Map jsonMst = new HashMap<>(); + jsonMst.put("checked", true); + jsonMst.put("sect_id", sectDao.getSect_id()); + jsonMst.put("stor_id", sectDao.getStor_id()); + // 组织明细数据 + IOStorInvDtl dtlDao = ioStorInvDtlMapper.selectOne( + new QueryWrapper().lambda() + .eq(IOStorInvDtl::getIostorinv_id, whereJson.getString("iostorinv_id")) + ); + // 查找分配明细 + Map map = new HashMap<>(); + map.put("iostorinvdtl_id", dtlDao.getIostorinvdtl_id()); + List disDtl = iRawAssistIStorService.getDisDtl(map); + // 类型转换 + ArrayList tableMater = new ArrayList<>(); + disDtl.forEach(item -> { + tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class)); + }); + jsonMst.put("tableMater", tableMater); + // 调用分配 + iRawAssistIStorService.divStruct(jsonMst); + + JSONObject result = new JSONObject(); + result.put("storagevehicle_code", disDtl.get(0).getStoragevehicle_code()); + result.put("point_code", IOSConstant.CZW_POINT); + result.put("sect_id", disDtl.get(0).getSect_id()); + result.put("iostorinv_id", disDtl.get(0).getIostorinv_id()); + return result; + } + + /** + * 下发任务 + * + * @param whereJson { + * storagevehicle_code:载具编码 + * point_code:点位编码 + * sect_id:库区 + * iostorinv_id: id + * } + */ + private void sendTask(JSONObject whereJson) { + // 组织主数据 + Map jsonMst = new HashMap<>(); + jsonMst.put("point_code", whereJson.getString("point_code")); + // 组织明细数据 + IOStorInvDtl dtlDao = ioStorInvDtlMapper.selectOne( + new QueryWrapper().lambda() + .eq(IOStorInvDtl::getIostorinv_id, whereJson.getString("iostorinv_id")) + ); + // 查找分配明细 + Map map = new HashMap<>(); + map.put("iostorinvdtl_id", dtlDao.getIostorinvdtl_id()); + List disDtl = iRawAssistIStorService.getDisDtl(map); + // 类型转换 + ArrayList tableMater = new ArrayList<>(); + disDtl.forEach(item -> { + tableMater.add(JSONObject.parseObject(JSONObject.toJSONString(item), LinkedHashMap.class)); + }); + jsonMst.put("tableMater", tableMater); + + iRawAssistIStorService.divPoint(jsonMst); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvServiceImpl.java index 94532a2..d57a31f 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvServiceImpl.java @@ -14,9 +14,7 @@ import org.nl.common.utils.CodeUtil; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; -import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; import org.nl.wms.basedata_manage.service.IStructattrService; -import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; import org.nl.wms.sch_manage.enums.TaskStatus; @@ -24,7 +22,6 @@ import org.nl.wms.sch_manage.service.ISchBaseTaskService; import org.nl.wms.sch_manage.service.dao.SchBaseTask; import org.nl.wms.sch_manage.service.util.AbstractTask; import org.nl.wms.sch_manage.service.util.TaskFactory; -import org.nl.wms.sch_manage.service.util.tasks.InsideMoveTask; import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IStIvtMoveinvService; @@ -37,7 +34,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; /** @@ -141,9 +141,9 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl ids) { - for(String moveinv_id : ids) { + for (String moveinv_id : ids) { JSONObject json = new JSONObject(); - json.put("moveinv_id",moveinv_id); + json.put("moveinv_id", moveinv_id); List moveDtl = iStIvtMoveinvdtlService.getMoveDtl(json); // 组织删除参数 @@ -181,7 +181,7 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl moveDtl = iStIvtMoveinvdtlService.getMoveDtl(JSONObject.parseObject(JSONObject.toJSONString(dtlDao),JSONObject.class)); + List moveDtl = iStIvtMoveinvdtlService.getMoveDtl(JSONObject.parseObject(JSONObject.toJSONString(dtlDao), JSONObject.class)); // 过滤当前明细 List paramList = moveDtl.stream() .filter(row -> row.getString("moveinvdtl_id").equals(dtlDao.getMoveinvdtl_id())) @@ -297,11 +297,8 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl dtlDaoList = iStIvtMoveinvdtlService.list( diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvdtlServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvdtlServiceImpl.java index 9ee9120..7383c36 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvdtlServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtMoveinvdtlServiceImpl.java @@ -75,6 +75,7 @@ public class StIvtMoveinvdtlServiceImpl extends ServiceImpl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取 消 + 确 定 + + + + + + diff --git a/wms/nladmin-ui/src/views/wms/st/combinedBox/WeighDialog.vue b/wms/nladmin-ui/src/views/wms/st/combinedBox/WeighDialog.vue new file mode 100644 index 0000000..5e6b6ab --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/combinedBox/WeighDialog.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/st/combinedBox/combinedBox.js b/wms/nladmin-ui/src/views/wms/st/combinedBox/combinedBox.js new file mode 100644 index 0000000..12f2e18 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/combinedBox/combinedBox.js @@ -0,0 +1,59 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/combinedBox', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/combinedBox/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/combinedBox', + method: 'put', + data + }) +} + +export function sendMoveTask(data) { + return request({ + url: 'api/combinedBox/sendMoveTask', + method: 'post', + data + }) +} + +export function getWeigh(data) { + return request({ + url: 'api/combinedBox/getWeigh', + method: 'post', + data + }) +} + +export function saveWeigh(data) { + return request({ + url: 'api/combinedBox/saveWeigh', + method: 'post', + data + }) +} + +export function confirmIn(data) { + return request({ + url: 'api/combinedBox/confirmIn', + method: 'post', + data + }) +} + +export default { add, edit, del, sendMoveTask, getWeigh, saveWeigh, confirmIn } diff --git a/wms/nladmin-ui/src/views/wms/st/combinedBox/index.vue b/wms/nladmin-ui/src/views/wms/st/combinedBox/index.vue new file mode 100644 index 0000000..b7ee14e --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/combinedBox/index.vue @@ -0,0 +1,356 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/st/movebill/index.vue b/wms/nladmin-ui/src/views/wms/st/movebill/index.vue index 5307feb..704966c 100644 --- a/wms/nladmin-ui/src/views/wms/st/movebill/index.vue +++ b/wms/nladmin-ui/src/views/wms/st/movebill/index.vue @@ -185,6 +185,7 @@ +