diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java index c8a3f919..b894c96a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java @@ -34,6 +34,11 @@ public enum AcsTaskEnum { TASK_WARP_EMPTY("8","包装机-送空框"), TASK_STRUCT_IN("9","入库-生产入库"), TASK_STRUCT_OUT("10","出库-生产出库"), + TASK_STRUCT_CHECK("14","盘点任务"), + TASK_STRUCT_SHUT("15","拼盘任务"), + TASK_STRUCT_CP_IN("11","入库-成品-生产入库"), + TASK_STRUCT_CP_OUT("12","出库-成品-生产出库"), + TASK_STRUCT_CP_CHECK("13","成品-盘点"), //回调状态 STATUS_START("1","执行中"), diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java index 34ec253f..f012a246 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java @@ -1,7 +1,6 @@ package org.nl.common.publish.event; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; @@ -22,6 +21,9 @@ public class PointEvent extends PublishEvent { private String type; private String point_code1; private String point_code2; + private String vehicle_code; + private String product_area; + private String task_group_id; private Map extParam; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/TaskEvent.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/TaskEvent.java new file mode 100644 index 00000000..b146a894 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/TaskEvent.java @@ -0,0 +1,26 @@ +package org.nl.common.publish.event; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Map; + + +/* + * @author ZZQ + * @Date 2023/4/28 13:50 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class TaskEvent extends PublishEvent { + + private String status; + private String task_type; + private String task_id; + private Map extParam; + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index bd8d02be..16f93441 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -10,6 +10,9 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; import org.nl.common.enums.WorkerOrderEnum; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.PointEvent; +import org.nl.common.publish.event.TaskEvent; import org.nl.common.utils.IdUtil; import org.nl.common.utils.MapOf; import org.nl.common.utils.OptionRecord; @@ -25,6 +28,7 @@ import org.nl.wms.product_manage.sch.service.dto.TaskDto; import org.nl.wms.product_manage.sch.tasks.WashMachineryTask; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpStatus; @@ -39,6 +43,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.function.Consumer; @Service @Slf4j @@ -126,8 +131,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ String status = row.getString("status"); // 任务处理类 try { - AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(processing_class)); - taskHandler.updateTaskStatus(row,status); + //发布一个任务执行事件 + TaskEvent event = TaskEvent.builder() + .task_id(task_id) + .task_type(taskDto.getTask_type()) + .status(status) + .build(); + BussEventMulticaster.Publish(event); + + /*AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(processing_class)); + taskHandler.updateTaskStatus(row,status);*/ } catch (Exception e) { log.error("任务状态更新失败:{}", e.getMessage()); JSONObject json = new JSONObject(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/PointListener.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/PointListener.java new file mode 100644 index 00000000..c650ff03 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/PointListener.java @@ -0,0 +1,50 @@ +package org.nl.wms.product_manage.sch; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSONObject; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.enums.StatusEnum; +import org.nl.common.publish.AbstraceListener; +import org.nl.common.publish.event.PointEvent; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.system.util.CodeUtil; +import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class PointListener extends AbstraceListener { + @Autowired + private ISchBaseTaskService taskService; + //创建任务 + @Override + protected String doEvent(PointEvent event) { + String task_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + JSONObject task = new JSONObject(); + 参数封装:{ + task.put("task_id", task_id); + task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); + task.put("task_type", event.getType()); + task.put("acs_task_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); + task.put("task_status", TaskStatusEnum.CREATED.getCode()); + task.put("point_code1", event.getPoint_code1()); + task.put("point_code2", event.getPoint_code2()); + task.put("vehicle_code", event.getVehicle_code()); + task.put("product_area",event.getProduct_area()); + task.put("task_group_id",event.getTask_group_id()); + task.put("finished_type", "1"); + task.put("is_delete", StatusEnum.LOCK_OFF.getCode()); + task.put("create_id", SecurityUtils.getCurrentUserId()); + task.put("create_name", SecurityUtils.getCurrentNickName()); + task.put("update_optid", SecurityUtils.getCurrentUserId()); + task.put("update_optname", SecurityUtils.getCurrentNickName()); + task.put("create_time", DateUtil.now()); + task.put("update_time", DateUtil.now()); + task.put("priority", "1");} + taskService.save(task.toJavaObject(SchBaseTask.class)); + return task_id; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/PointListener.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/PointListener.java deleted file mode 100644 index 23debd2c..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/PointListener.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.nl.wms.scheduler_manage.service.point; - -import org.nl.common.publish.AbstraceListener; -import org.nl.common.publish.event.PublishEvent; - -/* - * @author ZZQ - * @Date 2023/5/12 11:30 - */ -public class PointListener extends AbstraceListener { - //返回值用于回调 - @Override - protected String doEvent(PublishEvent event) { - return null; - } -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java index 16bc78ef..0147ca52 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/impl/SchBaseTaskServiceImpl.java @@ -61,6 +61,9 @@ public class SchBaseTaskServiceImpl extends ServiceImpl() + .set("task_status",StatusEnum.TASK_FINISH.getCode()) + .eq("task_id", task_id)); break; case "cancel": JSONArray cancel = new JSONArray(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/SHUTEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/SHUTEnum.java index 8df2d55a..412a5561 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/SHUTEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/SHUTEnum.java @@ -22,7 +22,7 @@ public enum SHUTEnum { //单据状态 BILL_STATUS(MapOf.of("生成", "10", "提交", "20", "执行中", "30", "确认", "60", "完成", "99")), //单据状态 - WORK_STATUS(MapOf.of("未生成", "00", "生成", "10", "执行中", "20", "确认", "30", "完成", "99")), + WORK_STATUS(MapOf.of("未生成", "00", "生成", "10", "移出中", "20", "移出确认", "30", "移回中", "40", "完成", "99")), ; private Map code; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/check/StIvtCheckmstCpController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/check/StIvtCheckmstCpController.java index 7c77a392..6a9e4c6f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/check/StIvtCheckmstCpController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/check/StIvtCheckmstCpController.java @@ -113,5 +113,13 @@ public class StIvtCheckmstCpController { iStIvtCheckmstCpService.processBox(whereJson); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/sendTask") + @Log("下发任务") + @ApiOperation("下发任务") + public ResponseEntity sendTask(@RequestBody JSONObject whereJson) { + iStIvtCheckmstCpService.sendTask(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/structIvt/StIvtStructivtCpController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/structIvt/StIvtStructivtCpController.java index 1ca07fcf..90e71582 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/structIvt/StIvtStructivtCpController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/structIvt/StIvtStructivtCpController.java @@ -2,15 +2,20 @@ package org.nl.wms.storage_manage.productmanage.controller.structIvt; import io.swagger.annotations.ApiOperation; import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtCpService; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.CpIvtQuery; import org.nl.wms.storage_manage.rawmanage.service.structIvt.dto.StructIvtYLQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Map; + /** *

* 仓位库存表 前端控制器 @@ -26,6 +31,14 @@ public class StIvtStructivtCpController { @Autowired private IStIvtStructivtCpService iStIvtStructivtCpService; + + @GetMapping + @Log("成品库存查询") + @ApiOperation("成品库存查询") + public ResponseEntity query(CpIvtQuery query, PageQuery page) { + return new ResponseEntity<>(iStIvtStructivtCpService.packageQuery(query,page), HttpStatus.OK); + } + @PostMapping("/getStructIvt") @Log("查询库存") @ApiOperation("查询库存") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckmstCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckmstCpService.java index b039d4bd..18c9c33f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckmstCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/IStIvtCheckmstCpService.java @@ -52,4 +52,8 @@ public interface IStIvtCheckmstCpService extends IService { Object getBucketrecord(JSONObject whereJson); void processBox(JSONObject whereJson); + + void taskOperate(JSONObject form); + + void sendTask(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckdtlCp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckdtlCp.java index 435c56d2..807590e8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckdtlCp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/StIvtCheckdtlCp.java @@ -107,7 +107,7 @@ public class StIvtCheckdtlCp implements Serializable { /** * 是否已下发 */ - private Boolean is_down; + private String is_down; /** * 盘点数量 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.java index 1ef5b4e6..17cf688b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckdtlCp; +import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckdtlBcp; import java.util.List; import java.util.Map; @@ -19,4 +20,6 @@ import java.util.Map; public interface StIvtCheckdtlCpMapper extends BaseMapper { List getCheckDtl(@Param("map") Map map); + + List queryCheckDtlByTask(@Param("map") Map map); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.xml index 36fb345f..773b59d9 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/dao/mapper/StIvtCheckdtlCpMapper.xml @@ -34,4 +34,16 @@ order by CheckDtl.seq_no + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckmstCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckmstCpServiceImpl.java index 602b53c5..58f24258 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckmstCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/check/impl/StIvtCheckmstCpServiceImpl.java @@ -14,7 +14,11 @@ import io.jsonwebtoken.lang.Assert; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.PointEvent; import org.nl.common.utils.IdUtil; +import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -24,11 +28,15 @@ import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattr import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.storage_manage.CHECKEnum; import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckdtlCpService; import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService; import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckdtlCp; import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckmstCp; +import org.nl.wms.storage_manage.productmanage.service.check.dao.mapper.StIvtCheckdtlCpMapper; import org.nl.wms.storage_manage.productmanage.service.check.dao.mapper.StIvtCheckmstCpMapper; import org.nl.wms.storage_manage.productmanage.service.check.dto.CheckQueryMst; import org.nl.wms.storage_manage.productmanage.service.moreOrLess.IStIvtMoreorlessmstCpService; @@ -38,6 +46,8 @@ import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckmstYl; import org.nl.wms.storage_manage.rawmanage.service.check.dto.CheckQuery; import org.nl.wms.storage_manage.rawmanage.service.moveOrLess.IStIvtMoreorlessmstYlService; import org.nl.wms.storage_manage.semimanage.MLEnum; +import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckdtlBcp; +import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckmstBcp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -47,6 +57,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.function.Consumer; /** *

@@ -77,6 +88,13 @@ public class StIvtCheckmstCpServiceImpl extends ServiceImpl dtl_list = stIvtCheckdtlCpMapper.queryCheckDtlByTask(MapOf.of("task_id", task_id)); + StIvtCheckdtlCp dtl = dtl_list.get(0); + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode()) && dtl.getIs_down().equals("2")) { + + // 更新任务为完成 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getTask_id, task_id) + ); + + // 更新明细为完成 + iStIvtCheckdtlCpService.update(new UpdateWrapper() + .set("status", CHECKEnum.DTL_STATUS.code("确认完成")) + .eq("struct_id", dtl.getStruct_id()) + .eq("check_id", dtl.getCheck_id())); + + //判断是否存在未完成的明细 + List list = iStIvtCheckdtlCpService.list(new QueryWrapper().eq("check_id", dtl.getCheck_id()) + .ne("status", CHECKEnum.DTL_STATUS.code("确认完成"))); + + if (list.size() == 0) { + + StIvtCheckmstCp jo_mst = this.getOne(new QueryWrapper().eq("check_id", dtl.getCheck_id())); + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); + jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); + jo_mst.setConfirm_time(DateUtil.now()); + + //解锁起点点位、仓位 + List finish_list = iStIvtCheckdtlCpService.list(new QueryWrapper().eq("check_id", dtl.getCheck_id()) + .eq("status", CHECKEnum.DTL_STATUS.code("确认完成"))); + + finish_list.stream() + .map(StIvtCheckdtlCp::getStruct_id) + .distinct() + .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + } + } else { + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + // 更新任务为完成 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getTask_id, task_id) + ); + } else { + // 更新任务为执行中 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) + .eq(SchBaseTask::getTask_id, task_id) + ); + } + + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void sendTask(JSONObject whereJson) { + String point_code2 = whereJson.getString("point_code2"); + + StIvtCheckdtlCp dtlDao = iStIvtCheckdtlCpService.getById(whereJson.getString("checkdtl_id")); + + // 找一个盘点位 + if (whereJson.getBoolean("is_antu_div")) { + // TODO 暂时写死 + point_code2 = "070515"; + } + + StIvtStructattr attrDao = structattrService.getById(whereJson.getString("struct_id")); + + PointEvent event = PointEvent.builder() + .type(AcsTaskEnum.TASK_STRUCT_CP_CHECK.getCode()) + .point_code1(attrDao.getStruct_code()) + .point_code2(point_code2) + .vehicle_code(attrDao.getStoragevehicle_code()) + .product_area("A1") // 暂时写死 + .build(); + BussEventMulticaster.Publish(event); + + dtlDao.setIs_down("1"); + iStIvtCheckdtlCpService.updateById(dtlDao); + + } + @Override @Transactional(rollbackFor = Exception.class) public void delete(Long[] ids) { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java index 271c2b8f..7af2d9d3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java @@ -141,4 +141,14 @@ public interface IStIvtIostorinvCpOutService extends IService * } */ void manualDiv(JSONObject whereJson); + + + /** + * 任务操作 + * @param whereJson + * { + * "" + * } + */ + void taskOperate(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java index d5a191a2..49883fed 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java @@ -154,4 +154,13 @@ public interface IStIvtIostorinvCpService extends IService { */ void confirm(JSONObject whereJson); + /** + * 任务操作 + * @param whereJson + * { + * "" + * } + */ + void taskOperate(JSONObject whereJson); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdisCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdisCpService.java index dae41843..c68a2865 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdisCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdisCpService.java @@ -50,4 +50,10 @@ public interface IStIvtIostorinvdisCpService extends IService list, StIvtIostorinvdtlCp dtlDao); + + /** + * 分配完成方法 + * @param json / + */ + void confirm(JSONObject json); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdtlCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdtlCpService.java index 8535e424..ec1eae4c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdtlCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdtlCpService.java @@ -45,4 +45,5 @@ public interface IStIvtIostorinvdtlCpService extends IService map); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisCpMapper.xml index b8a8d20e..6142e5fa 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisCpMapper.xml @@ -78,11 +78,17 @@ disdtl.bucketunique, mater.material_code, mater.material_name, - mater.material_spec + mater.material_spec, + task.task_code, + task.task_status, + task.task_type, + task.point_code1, + task.point_code2 FROM st_ivt_iostorinvdis_cp dis LEFT JOIN ST_IVT_IOStorInvDisDtl_CP disdtl ON disdtl.iostorinvdis_id = dis.iostorinvdis_id LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id + LEFT JOIN sch_base_task task ON task.task_id = dis.task_id WHERE 1=1 and dis.iostorinvdtl_id = #{iostorinvdtl_id} @@ -98,10 +104,16 @@ dis.*, mater.material_code, mater.material_name, - mater.material_spec + mater.material_spec, + task.task_code, + task.task_status, + task.task_type, + task.point_code1, + task.point_code2 FROM st_ivt_iostorinvdis_cp dis LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id + LEFT JOIN sch_base_task task ON task.task_id = dis.task_id WHERE 1=1 and dis.iostorinvdtl_id = #{iostorinvdtl_id} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java index b5413d10..940beca1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java @@ -7,11 +7,13 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; +import org.nl.common.enums.AcsTaskEnum; import org.nl.common.publish.BussEventMulticaster; import org.nl.common.publish.event.PointEvent; import org.nl.common.utils.IdUtil; @@ -378,9 +380,11 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl) disDao::setTask_id) .build(); BussEventMulticaster.Publish(event); @@ -413,7 +417,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完"))); + .allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完")) || row.getBill_status().equals(IOSEnum.BILL_STATUS.code("完成"))); if (!is_dis) throw new BadRequestException("请先分配单据!"); @@ -533,6 +537,53 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl().lambda() + .eq(StIvtIostorinvdisCp::getTask_id, task_id)); + + // 更新任务状态为完成 + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + // 更新任务为完成 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getTask_id, task_id) + ); + + // 更新分配为完成 + iostorinvdisCpService.update( + new UpdateWrapper().lambda() + .eq(StIvtIostorinvdisCp::getTask_id, task_id) + .set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("完成")) + ); + // 调用分配完成 + JSONObject mst_jo = new JSONObject(); + mst_jo.put("iostorinvdtl_id", disDao.getIostorinvdtl_id()); + mst_jo.put("iostorinv_id", disDao.getIostorinv_id()); + mst_jo.put("is_out", true); + iostorinvdisCpService.confirm(mst_jo); + + } else { + // 更新任务为执行中 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) + .eq(SchBaseTask::getTask_id, task_id) + ); + + // 更新分配为执行中 + iostorinvdisCpService.update( + new UpdateWrapper().lambda() + .eq(StIvtIostorinvdisCp::getTask_id, task_id) + .set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("执行中")) + ); + } + } + @NotNull private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) { JSONArray rows = whereJson.getJSONArray("tableData"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java index 04a85910..22b201c8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java @@ -14,6 +14,7 @@ import io.jsonwebtoken.lang.Assert; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; +import org.nl.common.enums.AcsTaskEnum; import org.nl.common.publish.BussEventMulticaster; import org.nl.common.publish.event.PointEvent; import org.nl.common.utils.IdUtil; @@ -52,6 +53,7 @@ import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivt import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil; import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService; import org.nl.wms.storage_manage.productmanage.util.RuleUtil; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -563,9 +565,11 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl) disDao::setTask_id) .build(); BussEventMulticaster.Publish(event); @@ -591,14 +595,14 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl dtlDaoList = iostorinvdtlCpService.list( new QueryWrapper().lambda() .eq(StIvtIostorinvdtlCp::getIostorinv_id, whereJson.getString("iostorinv_id")) ); boolean is_dis = dtlDaoList.stream() - .anyMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完"))); + .allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完")) || row.getBill_status().equals(IOSEnum.BILL_STATUS.code("完成"))); if (!is_dis) throw new BadRequestException("请先分配单据!"); @@ -657,6 +661,52 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl().lambda() + .eq(StIvtIostorinvdisCp::getTask_id, task_id)); + + // 更新任务状态为完成 + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + // 更新任务为完成 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getTask_id, task_id) + ); + // 更新分配明细为完成 + iostorinvdisCpService.update( + new UpdateWrapper().lambda() + .eq(StIvtIostorinvdisCp::getTask_id, task_id) + .set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("完成")) + ); + // 调用分配完成 + JSONObject mst_jo = new JSONObject(); + mst_jo.put("iostorinvdtl_id", disDao.getIostorinvdtl_id()); + mst_jo.put("iostorinv_id", disDao.getIostorinv_id()); + mst_jo.put("is_out", false); + iostorinvdisCpService.confirm(mst_jo); + + } else { + // 更新任务为执行中 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode()) + .eq(SchBaseTask::getTask_id, task_id) + ); + // 更新分配为执行中 + iostorinvdisCpService.update( + new UpdateWrapper().lambda() + .eq(StIvtIostorinvdisCp::getTask_id, task_id) + .set(StIvtIostorinvdisCp::getWork_status, IOSEnum.WORK_STATUS.code("执行中")) + ); + } + } + @NotNull private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) { JSONArray rows = whereJson.getJSONArray("tableData"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdisCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdisCpServiceImpl.java index 0d2a6986..60513573 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdisCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdisCpServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; @@ -19,7 +20,11 @@ import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrServ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; import org.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.IVTEnum; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisCpMapper; @@ -56,6 +61,15 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl list) { if (!CollectionUtils.isEmpty(list)){ @@ -168,4 +182,50 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl disDaoList = this.list( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdisCp::getIostorinvdtl_id, json.getString("iostorinvdtl_id")) + ); + + boolean is_confirm_dis = disDaoList.stream() + .allMatch(row -> row.getWork_status().equals(IOSEnum.WORK_STATUS.code("完成"))); + + if (is_confirm_dis) { + // 更新明细为完成 + iostorinvdtlCpService.update( + new UpdateWrapper().lambda() + .set(StIvtIostorinvdtlCp::getBill_status,IOSEnum.BILL_STATUS.code("完成")) + .eq(StIvtIostorinvdtlCp::getIostorinvdtl_id,json.getString("iostorinvdtl_id")) + ); + + // 判断明细是否为完成 + List dtlDaoList = iostorinvdtlCpService.list( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdtlCp::getIostorinv_id, json.getString("iostorinv_id")) + ); + + boolean is_confirm_dtl = dtlDaoList.stream() + .allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("完成"))); + + if (is_confirm_dtl) { + // 调用主表确认 + JSONObject param = new JSONObject(); + param.put("iostorinv_id", json.getString("iostorinv_id")); + if (json.getBoolean("is_out")) { + iStIvtIostorinvCpOutService.confirm(param); + } else { + iStIvtIostorinvCpService.confirm(param); + + } + } + + } + + + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java index b3071e4f..bcdcaeaa 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService; @@ -13,6 +14,7 @@ import org.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.IVTEnum; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdtlCpMapper; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/IStIvtStructivtCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/IStIvtStructivtCpService.java index b89401dd..7a4c8f04 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/IStIvtStructivtCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/IStIvtStructivtCpService.java @@ -2,7 +2,9 @@ package org.nl.wms.storage_manage.productmanage.service.structIvt; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.CpIvtQuery; import org.nl.wms.storage_manage.rawmanage.service.structIvt.dto.StructIvtYLQuery; import java.util.List; @@ -18,6 +20,13 @@ import java.util.Map; */ public interface IStIvtStructivtCpService extends IService { + + /** + * 成品库存查询 + * @param query / + */ + Object packageQuery(CpIvtQuery query, PageQuery page); + /** * 成品库存更新 * @param json @@ -58,4 +67,5 @@ public interface IStIvtStructivtCpService extends IService { * } */ List getStructIvtMore(StructIvtYLQuery whereJson); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java index 8f4dc19a..cd3c9df1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java @@ -3,7 +3,9 @@ package org.nl.wms.storage_manage.productmanage.service.structIvt.dao.mapper; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.CpIvtQuery; import org.nl.wms.storage_manage.rawmanage.service.structIvt.dto.StructIvtYLQuery; import java.util.List; @@ -27,4 +29,5 @@ public interface StIvtStructivtCpMapper extends BaseMapper { List getStructIvtMoreBox(JSONObject json); + List packageQuery(@Param("query") CpIvtQuery query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml index 4c9bf7f5..e44d6174 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml @@ -138,4 +138,44 @@ + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dto/CpIvtQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dto/CpIvtQuery.java new file mode 100644 index 00000000..e02b21b9 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dto/CpIvtQuery.java @@ -0,0 +1,27 @@ +package org.nl.wms.storage_manage.productmanage.service.structIvt.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; + +/* + * @author LXY + * @Date 2023/5/4 19:49 + */ +@Data +public class CpIvtQuery extends BaseQuery { + + + private String struct_code; + + private String material_code; + + @Override + public void paramMapping() { + super.doP.put("struct_code", QParam.builder().k(new String[]{"struct_code"}).type(QueryTEnum.LK).build()); + } + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java index 78a2a1ba..3da06584 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java @@ -6,6 +6,10 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.IdUtil; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; @@ -17,11 +21,13 @@ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtCpService; import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.mapper.StIvtStructivtCpMapper; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dto.CpIvtQuery; import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil; import org.nl.wms.storage_manage.rawmanage.service.structIvt.dto.StructIvtYLQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; import java.math.BigDecimal; import java.util.ArrayList; @@ -48,6 +54,15 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); + TableDataInfo build = TableDataInfo.build(this.baseMapper.packageQuery(query)); + build.setTotalElements(page.getTotal()); + + return build; + } + @Override @Transactional(rollbackFor = Exception.class) public void UpdateIvt(JSONObject json) { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/check/IStIvtCheckmstYlService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/check/IStIvtCheckmstYlService.java index deed9d77..bea9579d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/check/IStIvtCheckmstYlService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/check/IStIvtCheckmstYlService.java @@ -50,6 +50,10 @@ public interface IStIvtCheckmstYlService extends IService { void process1(JSONObject jo); + void taskOperate(JSONObject jo); + + void issueTask(JSONObject jo); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/check/impl/StIvtCheckmstYlServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/check/impl/StIvtCheckmstYlServiceImpl.java index 4edf33bc..bfa01a8c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/check/impl/StIvtCheckmstYlServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/check/impl/StIvtCheckmstYlServiceImpl.java @@ -250,6 +250,16 @@ public class StIvtCheckmstYlServiceImpl extends ServiceImpl { + + @Override + protected String doEvent(TaskEvent event) { + String task_type = event.getTask_type(); + JSONObject form = new JSONObject(); + form.put("status", event.getStatus()); + form.put("task_id", event.getTask_id()); + + for (TASKEnum value : TASKEnum.values()) { + if (value.predicate().test(task_type)) { + value.consumer().accept(form); + } + } + return null; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/FunctionStrategy.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/FunctionStrategy.java new file mode 100644 index 00000000..f1895b8f --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/FunctionStrategy.java @@ -0,0 +1,11 @@ +package org.nl.wms.storage_manage.semimanage; + +import java.util.function.Consumer; +import java.util.function.Predicate; + +public interface FunctionStrategy { + + Predicate

predicate(); + + Consumer consumer(); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java new file mode 100644 index 00000000..e9a59faa --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java @@ -0,0 +1,67 @@ +package org.nl.wms.storage_manage.semimanage; + +import com.alibaba.fastjson.JSONObject; +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService; +import org.nl.wms.storage_manage.rawmanage.service.check.IStIvtCheckmstYlService; +import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckmstBcpService; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService; +import org.nl.wms.storage_manage.semimanage.service.shutFrame.IStIvtShutframeinvBcpService; + +import java.util.function.Consumer; +import java.util.function.Predicate; + +@Getter +@AllArgsConstructor +public enum TASKEnum implements FunctionStrategy { + IN_TASK(type -> AcsTaskEnum.TASK_STRUCT_IN.getCode().equals(type), form -> { + IStIvtIostorinvBcpService bean = SpringContextHolder.getBean(IStIvtIostorinvBcpService.class); + bean.taskOperate(form); + }), + OUT_TASK(type -> AcsTaskEnum.TASK_STRUCT_OUT.getCode().equals(type), form -> { + IStIvtIostorinvBcpOutService bean = SpringContextHolder.getBean(IStIvtIostorinvBcpOutService.class); + bean.taskOperate(form); + }), + CHECK_TASK(type -> AcsTaskEnum.TASK_STRUCT_CHECK.getCode().equals(type), form -> { + IStIvtCheckmstBcpService bean = SpringContextHolder.getBean(IStIvtCheckmstBcpService.class); + bean.taskOperate(form); + }), + SHUT_TASK(type -> AcsTaskEnum.TASK_STRUCT_SHUT.getCode().equals(type), form -> { + IStIvtShutframeinvBcpService bean = SpringContextHolder.getBean(IStIvtShutframeinvBcpService.class); + bean.taskOperate(form); + }), + CP_IN_TASK(type -> AcsTaskEnum.TASK_STRUCT_CP_IN.getCode().equals(type), form -> { + IStIvtIostorinvCpService bean = SpringContextHolder.getBean(IStIvtIostorinvCpService.class); + bean.taskOperate(form); + }), + CP_OUT_TASK(type -> AcsTaskEnum.TASK_STRUCT_CP_OUT.getCode().equals(type), form -> { + IStIvtIostorinvCpOutService bean = SpringContextHolder.getBean(IStIvtIostorinvCpOutService.class); + bean.taskOperate(form); + }), + CP_CHECK_TASK(type -> AcsTaskEnum.TASK_STRUCT_CP_CHECK.getCode().equals(type), form -> { + IStIvtCheckmstCpService bean = SpringContextHolder.getBean(IStIvtCheckmstCpService.class); + bean.taskOperate(form); + }), + + ; + + private final Predicate predicate; + + private final Consumer consumer; + + @Override + public Predicate predicate() { + return this.predicate; + } + + @Override + public Consumer consumer() { + return this.consumer; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/check/StIvtCheckmstBcpController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/check/StIvtCheckmstBcpController.java index 9d82f67d..dd73dbbd 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/check/StIvtCheckmstBcpController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/check/StIvtCheckmstBcpController.java @@ -89,6 +89,14 @@ public class StIvtCheckmstBcpController { return new ResponseEntity<>(HttpStatus.NO_CONTENT); } + @PostMapping("/issueTask") + @Log("下发任务") + @ApiOperation("下发任务") + public ResponseEntity issueTask(@RequestBody JSONObject whereJson) { + checkmstBcpService.issueTask(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + @PostMapping("/process0") @Log("账务为准") @ApiOperation("账务为准") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/iostorInv/StIvtIostorinvBcpOutController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/iostorInv/StIvtIostorinvBcpOutController.java index e8750f83..2cf4ec16 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/iostorInv/StIvtIostorinvBcpOutController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/iostorInv/StIvtIostorinvBcpOutController.java @@ -57,11 +57,7 @@ public class StIvtIostorinvBcpOutController { @ApiOperation("删除出入库单") @PostMapping("/delete") public ResponseEntity delete(@RequestBody Long[] ids) { - if (ids.length>0){ - bcpOutService.update(new UpdateWrapper() - .set("is_delete","1") - .in("iostorinv_id",ids)); - } + bcpOutService.delete(ids); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/shutFrame/StIvtShutframeinvBcpController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/shutFrame/StIvtShutframeinvBcpController.java index be449d5a..780a7c04 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/shutFrame/StIvtShutframeinvBcpController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/shutFrame/StIvtShutframeinvBcpController.java @@ -66,6 +66,14 @@ public class StIvtShutframeinvBcpController { return new ResponseEntity<>(shutframeinvBcpService.getBillDtl(jo), HttpStatus.OK); } + @PostMapping("/issueTask") + @Log("任务下发") + @ApiOperation("任务下发") + public ResponseEntity issueTask(@RequestBody JSONObject jo) { + shutframeinvBcpService.issueTask(jo); + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/confirm") @Log("拼盘确认") @ApiOperation("拼盘确认") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/IStIvtCheckmstBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/IStIvtCheckmstBcpService.java index 7b3f35e0..75b0f8fa 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/IStIvtCheckmstBcpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/IStIvtCheckmstBcpService.java @@ -48,4 +48,8 @@ public interface IStIvtCheckmstBcpService extends IService { void process0(JSONObject jo); void process1(JSONObject jo); + + void issueTask(JSONObject jo); + + void taskOperate(JSONObject jo); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/StIvtCheckdtlBcp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/StIvtCheckdtlBcp.java index 222bd47b..4d6e9371 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/StIvtCheckdtlBcp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/StIvtCheckdtlBcp.java @@ -107,7 +107,7 @@ public class StIvtCheckdtlBcp implements Serializable { /** * 是否已下发 */ - private Boolean is_down; + private String is_down; /** * 盘点数量 @@ -154,5 +154,7 @@ public class StIvtCheckdtlBcp implements Serializable { */ private String process_time; + private String task_id; + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/StIvtCheckdtlBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/StIvtCheckdtlBcpMapper.java index c681a5be..c0625f6b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/StIvtCheckdtlBcpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/StIvtCheckdtlBcpMapper.java @@ -18,4 +18,6 @@ import java.util.Map; public interface StIvtCheckdtlBcpMapper extends BaseMapper { List getCheckDtl(@Param("map") Map map); + + List queryCheckDtlByTask(@Param("map") Map map); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml index ec559f6e..705d8020 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml @@ -35,4 +35,16 @@ order by CheckDtl.seq_no + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java index f17b70f0..62d6a490 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java @@ -14,7 +14,11 @@ import io.jsonwebtoken.lang.Assert; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.PointEvent; import org.nl.common.utils.IdUtil; +import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -26,20 +30,26 @@ import org.nl.wms.storage_manage.CHECKEnum; import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckdtlYl; import org.nl.wms.storage_manage.rawmanage.service.check.dao.StIvtCheckmstYl; import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckdtlBcp; +import org.nl.wms.storage_manage.semimanage.service.check.dao.mapper.StIvtCheckdtlBcpMapper; import org.nl.wms.storage_manage.semimanage.service.check.dto.CheckQuery; import org.nl.wms.storage_manage.semimanage.MLEnum; import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckdtlBcpService; import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckmstBcpService; import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckmstBcp; import org.nl.wms.storage_manage.semimanage.service.check.dao.mapper.StIvtCheckmstBcpMapper; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp; import org.nl.wms.storage_manage.semimanage.service.moveOrLess.IStIvtMoreorlessmstBcpService; +import org.nl.wms.storage_manage.semimanage.service.shutFrame.dao.StIvtShutframedtlBcp; +import org.nl.wms.storage_manage.semimanage.service.shutFrame.dao.StIvtShutframeinvBcp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.function.Consumer; /** *

@@ -62,6 +72,8 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl().eq("struct_id", dtl.getStruct_id())); + + PointEvent event = PointEvent.builder() + .type(AcsTaskEnum.TASK_STRUCT_SHUT.getCode()) + .point_code1(struct.getStruct_code()) + .point_code2(point_code) + .vehicle_code(dtl.getStoragevehicle_code()) + .product_area(mst.getWorkshop_id()) + .callback((Consumer) task_id -> dtl.setTask_id(task_id)) + .build(); + + BussEventMulticaster.Publish(event); + + checkdtlBcpService.update(new UpdateWrapper() + .set("is_down", "1") + .set("checkpoint_id", point_code) + .set("status", CHECKEnum.DTL_STATUS.code("盘点中")) + .eq("struct_id", dtl.getStruct_id()) + .eq("check_id", dtl.getCheck_id())); + } + + @Override + public void taskOperate(JSONObject form) { + String task_id = form.getString("task_id"); + String status = form.getString("status"); + List dtl_list = checkdtlBcpMapper.queryCheckDtlByTask(MapOf.of("task_id", task_id)); + StIvtCheckdtlBcp dtl = dtl_list.get(0); + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode()) && dtl.getIs_down().equals("2")) { + checkdtlBcpService.update(new UpdateWrapper() + .set("status", CHECKEnum.DTL_STATUS.code("完成")) + .eq("struct_id", dtl.getStruct_id()) + .eq("check_id", dtl.getCheck_id())); + //判断是否存在未完成的明细 + List list = checkdtlBcpService.list(new QueryWrapper().eq("check_id", dtl.getCheck_id()) + .ne("status", CHECKEnum.DTL_STATUS.code("完成"))); + if (list.size() == 0) { + StIvtCheckmstBcp jo_mst = this.getOne(new QueryWrapper().eq("check_id", dtl.getCheck_id())); + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); + jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); + jo_mst.setConfirm_time(DateUtil.now()); + //解锁起点点位、仓位 + List finish_list = checkdtlBcpService.list(new QueryWrapper().eq("check_id", dtl.getCheck_id()) + .eq("status", CHECKEnum.DTL_STATUS.code("完成"))); + finish_list.stream() + .map(finish -> finish.getStruct_id()) + .distinct() + .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + } + } + } + @Override public void process1(JSONObject whereJson) { JSONObject form = whereJson.getJSONObject("form"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpOutService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpOutService.java index 1b9b34b8..c7f32b04 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpOutService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpOutService.java @@ -29,6 +29,14 @@ public interface IStIvtIostorinvBcpOutService extends IService { */ String updateBill(JSONObject form); + void taskOperate(JSONObject form); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java index b466ccd3..be673443 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.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.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; @@ -11,6 +12,7 @@ import io.jsonwebtoken.lang.Assert; import org.apache.commons.lang3.StringUtils; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; +import org.nl.common.enums.AcsTaskEnum; import org.nl.common.publish.BussEventMulticaster; import org.nl.common.publish.event.PointEvent; import org.nl.common.utils.IdUtil; @@ -23,11 +25,14 @@ import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrServ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; import org.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService; import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService; import org.nl.wms.storage_manage.productmanage.util.RuleUtil; +import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckdtlBcp; +import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckmstBcp; import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService; import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp; import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.mapper.StIvtIostorinvBcpMapper; @@ -80,6 +85,18 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl().eq("iostorinv_id", id)); + dao.setIs_delete(true); + + //仓位解锁 + structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")).eq("struct_id", dao.getStruct_id())); + this.updateById(dao); + } + } + @Override @Transactional public void create(JSONObject form) { @@ -107,6 +124,12 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl().lambda() + .eq(StIvtStructattr::getStruct_code, mst.getStruct_code()) + .set(StIvtStructattr::getInv_code,mst.getBill_code()) + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁"))); } } @@ -146,7 +169,7 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl().eq("struct_id",mst.getStruct_id())); + structivtBcpService.remove(new QueryWrapper().eq("struct_id", mst.getStruct_id())); /*structivtflowService.recordStructivtFlow( StIvtStructivtflowDto.builder() @@ -157,6 +180,14 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl().lambda() + .eq(StIvtStructattr::getStruct_code, mst.getStruct_code()) + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .set(StIvtStructattr::getInv_code,"") + .set(StIvtStructattr::getStoragevehicle_code, "")); + return null; } @@ -170,6 +201,8 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl) mst::setTask_id) .build(); BussEventMulticaster.Publish(event); @@ -207,4 +240,21 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)); + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) + .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("完成"))); + JSONObject mst_jo = new JSONObject(); + mst_jo.put("iostorinv_id", mst.getIostorinv_id()); + this.confirm(mst_jo); + } else { + this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) + .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))); + } + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java index dbfb5157..a3dc5ca3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java @@ -4,21 +4,25 @@ 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 com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import io.jsonwebtoken.lang.Assert; import org.apache.commons.lang3.StringUtils; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; +import org.nl.common.enums.AcsTaskEnum; import org.nl.common.publish.BussEventMulticaster; import org.nl.common.publish.event.PointEvent; import org.nl.common.utils.IdUtil; +import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; import org.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowDto; @@ -162,6 +166,13 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl().lambda() + .eq(StIvtStructattr::getStruct_code, mst.getStruct_code()) + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .set(StIvtStructattr::getInv_code, "") + .set(StIvtStructattr::getStoragevehicle_code, mst.getStoragevehicle_code())); + /*structivtflowService.recordStructivtFlow( StIvtStructivtflowDto.builder() .bill_code(mst.getBill_code()).change_type_scode(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_CONFIRM).bill_table("st_ivt_iostorinv_bcp") @@ -191,7 +202,13 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl) mst::setTask_id) .build(); BussEventMulticaster.Publish(event); @@ -241,4 +260,22 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)); + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) + .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("完成"))); + JSONObject mst_jo = new JSONObject(); + mst_jo.put("iostorinv_id", mst.getIostorinv_id()); + this.confirm(mst_jo); + } else { + this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) + .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))); + } + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/IStIvtShutframeinvBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/IStIvtShutframeinvBcpService.java index 2cbfe111..5676ee57 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/IStIvtShutframeinvBcpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/IStIvtShutframeinvBcpService.java @@ -36,5 +36,9 @@ public interface IStIvtShutframeinvBcpService extends IService @@ -59,6 +70,9 @@ public class StIvtShutframeinvBcpServiceImpl extends ServiceImpl().eq("task_id", task_id)); + + List task_list = taskService.list(new QueryWrapper() + .eq("task_group_id", task.getTask_group_id()) + .ne("task_status", StatusEnum.TASK_FINISH) + .eq("is_delete", false)); + + if (task_list.size() <= 0) { + all_finish = true; + } + + List list = shutframedtlBcpService.list(new QueryWrapper().eq("task_id", task.getTask_group_id())); + + StIvtShutframedtlBcp dtl = list.get(0); + + String work_status = dtl.getWork_status(); + + if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { + if (work_status.equals(SHUTEnum.WORK_STATUS.code("移出中")) || work_status.equals(SHUTEnum.WORK_STATUS.code("生成"))) { + shutframedtlBcpService.update(new UpdateWrapper() + .eq("task_id", task.getTask_group_id()) + .set("work_status", SHUTEnum.WORK_STATUS.code("移出中"))); + } + if (work_status.equals(SHUTEnum.WORK_STATUS.code("移出确认")) || work_status.equals(SHUTEnum.WORK_STATUS.code("移回中"))) { + shutframedtlBcpService.update(new UpdateWrapper() + .eq("task_id", task.getTask_group_id()) + .set("work_status", SHUTEnum.WORK_STATUS.code("移回中"))); + } + } + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode()) && all_finish) { + if (work_status.equals(SHUTEnum.WORK_STATUS.code("移出中"))) { + shutframedtlBcpService.update(new UpdateWrapper() + .eq("task_id", task.getTask_group_id()) + .set("work_status", SHUTEnum.WORK_STATUS.code("移出确认"))); + } + if (work_status.equals(SHUTEnum.WORK_STATUS.code("移回中"))) { + shutframedtlBcpService.update(new UpdateWrapper() + .eq("task_id", task.getTask_group_id()) + .set("work_status", SHUTEnum.WORK_STATUS.code("完成"))); + JSONObject jo = new JSONObject(); + jo.put("shutframeinv_id", dtl.getShutframeinv_id()); + this.confirm(jo); + } + } + + } + + @Override + public void issueTask(JSONObject form) { + Assert.notNull(new Object[]{form, form.get("shutframeinv_id")}, "请求参数不能为空"); + + //查询可用的半成品移出点位 + List point_list = Arrays.asList(new String[]{"PP01", "PP02"}); + if (point_list.size() < 2) { + throw new BadRequestException("拼盘需要两个可用的拼盘点位!"); + } + StIvtShutframeinvBcp mst = this.getById(form.getString("shutframeinv_id")); + + List list = shutframedtlBcpService.list(new QueryWrapper().eq("shutframeinv_id", form.getString("shutframeinv_id"))); + + String task_group_id = IdUtil.getStringId(); + PointEvent event = PointEvent.builder() + .type(AcsTaskEnum.TASK_STRUCT_SHUT.getCode()) + .point_code1(list.get(0).getTurnin_struct_code()) + .point_code2(point_list.get(0)) + .task_group_id(task_group_id) + .vehicle_code(list.get((0)).getStoragevehicle_code_in()) + .product_area(mst.getWorkshop_id()) + .build(); + + PointEvent event2 = PointEvent.builder() + .type(AcsTaskEnum.TASK_STRUCT_SHUT.getCode()) + .point_code1(list.get(0).getTurnout_struct_code()) + .point_code2(point_list.get(1)) + .vehicle_code(list.get((0)).getStoragevehicle_code()) + .product_area(mst.getWorkshop_id()) + .build(); + BussEventMulticaster.Publish(event); + BussEventMulticaster.Publish(event2); + + shutframedtlBcpService.update(new UpdateWrapper().lambda() + .set(StIvtShutframedtlBcp::getTask_id, task_group_id) + .eq(StIvtShutframedtlBcp::getShutframeinv_id, mst.getShutframeinv_id())); + } + @Override public void confirm(JSONObject form) { Assert.notNull(new Object[]{form, form.get("shutframeinv_id")}, "请求参数不能为空"); diff --git a/mes/qd/src/views/wms/storage_manage/product/productCheck/CheckDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productCheck/CheckDialog.vue index 09e72e61..ec21482f 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productCheck/CheckDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productCheck/CheckDialog.vue @@ -79,7 +79,8 @@ type="primary" icon="el-icon-plus" size="mini" - @click="addrow" + :disabled="add_flag" + @click="sendTask" > 下发任务 @@ -320,6 +321,12 @@ export default { check_resultFormat(row, column) { return this.dict.label.check_result[row.check_result] }, + sendTask() { + this.nowrow.is_antu_div = true // 是否自动分配盘点位 + check.sendTask(this.nowrow).then( res => { + this.crud.notify('任务下发成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) + }) + }, addrow() { if (this.nowrow === null) { this.crud.notify('请先选中一条已存在的库存明细!', CRUD.NOTIFICATION_TYPE.INFO) diff --git a/mes/qd/src/views/wms/storage_manage/product/productCheck/check.js b/mes/qd/src/views/wms/storage_manage/product/productCheck/check.js index e29e49af..a52d033e 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productCheck/check.js +++ b/mes/qd/src/views/wms/storage_manage/product/productCheck/check.js @@ -127,6 +127,14 @@ export function processBox(data) { }) } +export function sendTask(data) { + return request({ + url: '/api/stIvtCheckmstCp/sendTask', + method: 'post', + data + }) +} + export default { add, edit, @@ -141,5 +149,6 @@ export default { getOutBillDis, process1, getBucketrecord, - processBox + processBox, + sendTask } diff --git a/mes/qd/src/views/wms/storage_manage/product/productIn/ViewDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productIn/ViewDialog.vue index 19858b46..70ace6bd 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productIn/ViewDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productIn/ViewDialog.vue @@ -141,7 +141,8 @@ - + + @@ -156,7 +157,7 @@ export default { name: 'ViewDialog', components: { }, mixins: [crud()], - dicts: ['ST_INV_IN_TYPE', 'product_area', 'IO_BILL_STATUS'], + dicts: ['ST_INV_IN_TYPE', 'product_area', 'IO_BILL_STATUS', 'task_status', 'SCH_TASK_TYPE_DTL'], props: { dialogShow: { type: Boolean, @@ -247,6 +248,12 @@ export default { this.tabledis = [] }) } + }, + formatStatus(row) { + return this.dict.label.task_status[row.task_status] + }, + formatType(row) { + return this.dict.label.SCH_TASK_TYPE_DTL[row.task_type] } } } diff --git a/mes/qd/src/views/wms/storage_manage/product/productIvt/index.vue b/mes/qd/src/views/wms/storage_manage/product/productIvt/index.vue new file mode 100644 index 00000000..298a9b4a --- /dev/null +++ b/mes/qd/src/views/wms/storage_manage/product/productIvt/index.vue @@ -0,0 +1,150 @@ + + + + diff --git a/mes/qd/src/views/wms/storage_manage/product/productIvt/productivt.js b/mes/qd/src/views/wms/storage_manage/product/productIvt/productivt.js new file mode 100644 index 00000000..bd560a4d --- /dev/null +++ b/mes/qd/src/views/wms/storage_manage/product/productIvt/productivt.js @@ -0,0 +1,31 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: '/api/stIvtStructivtCp', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: '/api/stIvtStructivtCp/delete', + method: 'post', + data: ids + }) +} + +export function edit(data) { + return request({ + url: '/api/stIvtStructivtCp/update', + method: 'post', + data + }) +} + +export default { + add, + edit, + del +} diff --git a/mes/qd/src/views/wms/storage_manage/product/productOut/DivDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productOut/DivDialog.vue index 8b7e169a..0ad11270 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productOut/DivDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productOut/DivDialog.vue @@ -445,11 +445,13 @@ export default { this.crud.notify('请选择分配明细!', CRUD.NOTIFICATION_TYPE.INFO) return false } - + this.loadingSetAllPoint = true productOut.setPoint({ 'iostorinvdis_id': this.currentDis.iostorinvdis_id, 'point_code': this.form2.point_code }).then(res => { this.crud.notify('设置成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) this.queryTableDtl() this.tabledis = [] + }).finally(() => { + this.loadingSetAllPoint = false }) }, cellStyle({ row, column, rowIndex, columnIndex }) { diff --git a/mes/qd/src/views/wms/storage_manage/product/productOut/ViewDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productOut/ViewDialog.vue index d29d049c..12e66c89 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productOut/ViewDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productOut/ViewDialog.vue @@ -141,7 +141,8 @@ - + + @@ -156,7 +157,7 @@ export default { name: 'ViewDialog', components: { }, mixins: [crud()], - dicts: ['ST_INV_OUT_TYPE', 'product_area', 'IO_BILL_STATUS'], + dicts: ['ST_INV_OUT_TYPE', 'product_area', 'IO_BILL_STATUS','task_status', 'SCH_TASK_TYPE_DTL'], props: { dialogShow: { type: Boolean, @@ -247,6 +248,12 @@ export default { this.tabledis = [] }) } + }, + formatStatus(row) { + return this.dict.label.task_status[row.task_status] + }, + formatType(row) { + return this.dict.label.SCH_TASK_TYPE_DTL[row.task_type] } } } diff --git a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/AddDialog.vue b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/AddDialog.vue index 69d75809..c295b146 100644 --- a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/AddDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/AddDialog.vue @@ -12,26 +12,46 @@ > - + - 保存 + 保存 关闭 - + - + - + - + - + @@ -138,7 +163,7 @@

- + - + - - + + - + - - + + - - diff --git a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/ViewDialog.vue b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/ViewDialog.vue index ed872468..8009ff96 100644 --- a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/ViewDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/ViewDialog.vue @@ -9,11 +9,18 @@ @close="close" @open="open" > - + - + - + @@ -85,12 +92,19 @@ /> - + - +
@@ -109,13 +123,13 @@ :header-cell-style="{background:'#f5f7fa',color:'#606266'}" @current-change="handleDtlCurrentChange" > - - - - - - - + + + + + + + @@ -123,7 +137,7 @@