From 418fc4b966090f2d99f034c5e6869b4e8ffc77fb Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Tue, 4 Jul 2023 08:47:09 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E5=88=BB=E5=AD=97=E5=8C=85=E8=A3=85?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/common/utils/LocalCache.java | 2 +- .../java/org/nl/config/ConventConfig.java | 5 +- .../storage/IStIvtStructattrService.java | 8 + .../impl/StIvtStructattrServiceImpl.java | 19 +- .../service/impl/MaterialbaseServiceImpl.java | 4 +- .../CacheLineHandController.java | 5 +- .../PdaProductIosController.java | 4 +- .../pda/controller/TmpKZController.java | 53 +++++ .../pda/service/CacheLineHandService.java | 2 +- .../dto/CachelineVehileMaterialDto.java | 2 +- .../pda/{ => service}/dto/MaterialDto.java | 2 +- .../impl/CacheLineHandServiceImpl.java | 5 +- .../tasks/callEmpty/WashCallEmptyTask.java | 200 ++++++++++++++++ .../sendMaterial/WashSendMaterialQZTask.java | 213 ++++++++++++++++++ .../sendMaterial/WashSendMaterialTask.java | 170 +++++++------- .../service/point/ISchBasePointService.java | 6 + .../point/impl/SchBasePointServiceImpl.java | 30 +++ .../scheduler/EngraveScheduleService.java | 91 ++++---- .../productmanage/util/DivRuleCpService.java | 6 +- .../util/impl/DivRuleCpServiceImpl.java | 45 ++-- .../storage_manage/semimanage/TASKEnum.java | 5 + .../IStIvtIostorinvBcpOutService.java | 8 +- .../impl/StIvtIostorinvBcpOutServiceImpl.java | 211 +++++++++++------ .../impl/StIvtIostorinvBcpServiceImpl.java | 94 ++++---- .../structIvt/IStIvtStructivtBcpService.java | 3 + .../dao/mapper/StIvtStructivtBcpMapper.java | 3 + .../mapper/xml/StIvtStructivtBcpMapper.xml | 21 ++ .../impl/StIvtStructivtBcpServiceImpl.java | 5 + .../controller/dict/SysDictController.java | 5 +- .../service/dict/impl/SysDictServiceImpl.java | 2 +- .../wms/product_manage/workorder/index.vue | 4 +- 31 files changed, 939 insertions(+), 294 deletions(-) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/{rest => controller}/CacheLineHandController.java (99%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/{rest => controller}/PdaProductIosController.java (96%) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java rename mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/{ => service}/dto/CachelineVehileMaterialDto.java (91%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/{ => service}/dto/MaterialDto.java (91%) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callEmpty/WashCallEmptyTask.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialQZTask.java diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/LocalCache.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/LocalCache.java index 2cf1c1d8..e550d9cc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/LocalCache.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/LocalCache.java @@ -3,7 +3,7 @@ package org.nl.common.utils; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import lombok.extern.slf4j.Slf4j; -import org.nl.wms.pda_manage.pda.dto.MaterialDto; +import org.nl.wms.pda_manage.pda.service.dto.MaterialDto; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java b/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java index 6a055b31..fa22b523 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/config/ConventConfig.java @@ -9,9 +9,11 @@ import org.nl.wms.product_manage.sch.tasks.SpeMachinery.SpeEmpTask; import org.nl.wms.product_manage.sch.tasks.SpeMachinery.SpeFullTask; import org.nl.wms.product_manage.sch.tasks.WashMachineryTask; import org.nl.wms.product_manage.sch.tasks.callEmpty.PlotterCallEmptyTask; +import org.nl.wms.product_manage.sch.tasks.callEmpty.WashCallEmptyTask; import org.nl.wms.product_manage.sch.tasks.callMaterial.WrapCallMaterialTask; import org.nl.wms.product_manage.sch.tasks.sendEmpty.WrapSendEmptyTask; import org.nl.wms.product_manage.sch.tasks.sendMaterial.PlotterSendMaterialTask; +import org.nl.wms.product_manage.sch.tasks.sendMaterial.WashSendMaterialTask; import org.springframework.context.SmartLifecycle; import org.springframework.context.annotation.Configuration; @@ -27,9 +29,10 @@ public class ConventConfig implements SmartLifecycle { AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_LACK, SpringContextHolder.getBean(WashMachineryTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_SEND_FULL, SpringContextHolder.getBean(PlotterSendMaterialTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_EMP, SpringContextHolder.getBean(PlotterCallEmptyTask.class)); -// AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_PLOTTER_CALL_MATERIAL, SpringContextHolder.getBean(EngraveCallMaterialTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_CALL_FULL, SpringContextHolder.getBean(WrapCallMaterialTask.class)); AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WARP_SEND_EMP, SpringContextHolder.getBean(WrapSendEmptyTask.class)); + AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_FULL, SpringContextHolder.getBean(WashSendMaterialTask.class)); + AcsToWmsServiceImpl.Task_Collent.put(AcsTaskEnum.REQUEST_WASH_EMP, SpringContextHolder.getBean(WashCallEmptyTask.class)); System.out.println("初始化Task_Collent完成777"+AcsToWmsServiceImpl.Task_Collent.size()); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java index 5bca0bec..fd21b982 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java @@ -4,6 +4,7 @@ package org.nl.wms.masterdata_manage.storage.service.storage; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; /** *

@@ -46,4 +47,11 @@ public interface IStIvtStructattrService extends IService { * @param jo */ StIvtStructattr getExceedAttr(JSONObject jo); + + /** + * 仓位锁定 + * @param type + * @param inv_code + */ + void lockStruct(String struct_code, String type, String inv_code); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java index 48223438..f9c7b34e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java @@ -16,8 +16,12 @@ import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrServ 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.masterdata_manage.storage.service.storage.dao.mapper.StIvtStructattrMapper; +import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; @@ -35,10 +39,6 @@ public class StIvtStructattrServiceImpl extends ServiceImpl struct_list = structattrService.list(new QueryWrapper().eq("is_used", true) + List struct_list = this.list(new QueryWrapper().eq("is_used", true) .eq("sect_id", sect.getSect_id())); if (struct_list.size() > 0) { JSONArray struct_ja = new JSONArray(); @@ -137,4 +137,13 @@ public class StIvtStructattrServiceImpl extends ServiceImpl().lambda() + .eq(StIvtStructattr::getStruct_code, struct_code) + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code(type)) + .set(StIvtStructattr::getInv_code,inv_code)); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/impl/MaterialbaseServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/impl/MaterialbaseServiceImpl.java index e17110a4..a6c5e6d6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/impl/MaterialbaseServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份master/service/impl/MaterialbaseServiceImpl.java @@ -13,7 +13,6 @@ import lombok.RequiredArgsConstructor; import org.json.XML; import lombok.extern.slf4j.Slf4j; import org.nl.common.utils.WebServiceUtil; -import org.nl.config.thread.ThreadPoolExecutorUtil; import org.nl.modules.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.utils.RedisUtils; @@ -29,14 +28,13 @@ import org.nl.wms.masterdata_manage.备份master.constant.MaterOptTypeEnum; import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService; import org.nl.wms.masterdata_manage.备份master.service.MaterialbaseService; import org.nl.wms.masterdata_manage.备份master.service.dto.MaterialbaseDto; -import org.nl.wms.pda_manage.pda.dto.MaterialDto; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Pageable; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.nl.wms.pda_manage.pda.service.dto.MaterialDto; import javax.annotation.Resource; import java.util.*; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/CacheLineHandController.java similarity index 99% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/CacheLineHandController.java index 84c9071f..874273e0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/CacheLineHandController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/CacheLineHandController.java @@ -1,4 +1,4 @@ -package org.nl.wms.pda_manage.pda.rest; +package org.nl.wms.pda_manage.pda.controller; import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONArray; @@ -12,7 +12,7 @@ import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; import org.nl.common.utils.api.ResultCode; import org.nl.modules.common.exception.BizCoreException; -import org.nl.wms.pda_manage.pda.dto.MaterialDto; +import org.nl.wms.pda_manage.pda.service.dto.MaterialDto; import org.nl.wms.pda_manage.pda.service.CacheLineHandService; import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService; import org.springframework.beans.factory.annotation.Autowired; @@ -21,7 +21,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; import java.util.List; import java.util.Map; import java.util.regex.Pattern; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/PdaProductIosController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaProductIosController.java similarity index 96% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/PdaProductIosController.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaProductIosController.java index add8e032..051e1519 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/rest/PdaProductIosController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaProductIosController.java @@ -1,4 +1,4 @@ -package org.nl.wms.pda_manage.pda.rest; +package org.nl.wms.pda_manage.pda.controller; import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.lang.Assert; @@ -7,8 +7,6 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.nl.common.domain.ConstantParam; import org.nl.common.anno.Log; import org.nl.common.utils.MapOf; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java new file mode 100644 index 00000000..a61d2e19 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java @@ -0,0 +1,53 @@ +package org.nl.wms.pda_manage.pda.controller; + +/* + * @author ZZQ + * @Date 2023/7/3 15:29 + * 刻字相关临时方案 + */ + +import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Api(tags = "成品手持服务") +@RequestMapping("/api/pda") +@Slf4j +@SaIgnore +public class TmpKZController { + + @RequestMapping("deviceinstorQty") + public ResponseEntity deviceinstorQty(@RequestBody JSONObject param){ + + return new ResponseEntity<>( HttpStatus.OK); + } + + @RequestMapping("callVechile") + public ResponseEntity callVechile(@RequestBody JSONObject param){ + return new ResponseEntity<>( HttpStatus.OK); + } + @RequestMapping("kzunload") + public ResponseEntity kzunload(@RequestBody JSONObject param){ + return new ResponseEntity<>( HttpStatus.OK); + } + @RequestMapping("kzresidue") + public ResponseEntity kzresidue(@RequestBody JSONObject param){ + return new ResponseEntity<>( HttpStatus.OK); + } + @RequestMapping("tmpcallVechile") + public ResponseEntity tmpcallVechile(@RequestBody JSONObject param){ + return new ResponseEntity<>( HttpStatus.OK); + } + @RequestMapping("tmpsendVechile") + public ResponseEntity tmpsendVechile(@RequestBody JSONObject param){ + return new ResponseEntity<>( HttpStatus.OK); + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/CacheLineHandService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/CacheLineHandService.java index 77e2d448..d1c4b386 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/CacheLineHandService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/CacheLineHandService.java @@ -3,7 +3,7 @@ package org.nl.wms.pda_manage.pda.service; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.nl.common.utils.api.CommonResult; -import org.nl.wms.pda_manage.pda.dto.MaterialDto; +import org.nl.wms.pda_manage.pda.service.dto.MaterialDto; import org.springframework.data.domain.Pageable; import java.util.List; import java.util.Map; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/dto/CachelineVehileMaterialDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/dto/CachelineVehileMaterialDto.java similarity index 91% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/dto/CachelineVehileMaterialDto.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/dto/CachelineVehileMaterialDto.java index 16dd20b5..c31ce9c7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/dto/CachelineVehileMaterialDto.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/dto/CachelineVehileMaterialDto.java @@ -1,4 +1,4 @@ -package org.nl.wms.pda_manage.pda.dto; +package org.nl.wms.pda_manage.pda.service.dto; import lombok.Data; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/dto/MaterialDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/dto/MaterialDto.java similarity index 91% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/dto/MaterialDto.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/dto/MaterialDto.java index ec8bba83..e039cf17 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/dto/MaterialDto.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/dto/MaterialDto.java @@ -1,4 +1,4 @@ -package org.nl.wms.pda_manage.pda.dto; +package org.nl.wms.pda_manage.pda.service.dto; import lombok.Data; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java index 2a52a3b8..07a944c6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/service/impl/CacheLineHandServiceImpl.java @@ -8,7 +8,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import io.jsonwebtoken.lang.Assert; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -18,7 +17,6 @@ import org.nl.common.enums.StatusEnum; import org.nl.common.utils.*; import org.nl.common.utils.api.CommonResult; import org.nl.common.utils.api.RestBusinessTemplate; -import org.nl.config.thread.ThreadPoolExecutorUtil; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.wql.WQL; @@ -27,7 +25,7 @@ import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; -import org.nl.wms.pda_manage.pda.dto.MaterialDto; +import org.nl.wms.pda_manage.pda.service.dto.MaterialDto; import org.nl.wms.pda_manage.pda.service.CacheLineHandService; import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; @@ -46,7 +44,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Pageable; import org.springframework.scheduling.annotation.Async; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callEmpty/WashCallEmptyTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callEmpty/WashCallEmptyTask.java new file mode 100644 index 00000000..da59ae24 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/callEmpty/WashCallEmptyTask.java @@ -0,0 +1,200 @@ +package org.nl.wms.product_manage.sch.tasks.callEmpty; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +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 lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.enums.StatusEnum; +import org.nl.common.enums.WorkerOrderEnum; +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.ext.acs.service.WmsToAcsService; +import org.nl.wms.product_manage.sch.manage.AbstractAcsTask; +import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +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; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 清洗下料叫空框请求 + */ +@Slf4j +@Service +public class WashCallEmptyTask extends AbstractAcsTask { + + @Autowired + private IPdmProduceWorkorderService workorderService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBasePointService pointService; + @Autowired + private WmsToAcsService wms; + @Override + @Transactional(rollbackFor = Exception.class) + public void updateTaskStatus(JSONObject param, String status) { + SchBaseTask task = taskService.getById(param.getString("task_id")); + if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_RUNNING.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + } + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + // 完成 + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_FINISH.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3())); + } + if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_CANNEL.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3())); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String createTask(JSONObject param) { + String end_point_code = param.getString("device_code"); + PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper() + .eq("workorder_code", param.getString("workorder_code")) + .eq("is_delete", false) + .lt("workorder_status", WorkerOrderEnum.COMPLETE.getCode())); + Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); + //?刻字满料请求:可以存在多个任务? + List list = taskService.list(new QueryWrapper() + .lt("task_status", StatusEnum.TASK_FINISH.getCode()) + .and(wa->wa + .eq("point_code1", param.getString("device_code")) + .or() + .eq("point_code2", param.getString("device_code"))) + ); + if (!CollectionUtils.isEmpty(list)){ + throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code"))); + } + // 查找任务状态 + String taskdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + JSONObject task = new JSONObject(); + task.put("task_id", taskdtl_id); + task.put("task_name", AcsTaskEnum.TASK_PLOTTER_EMPTY.getDesc()); + task.put("task_type", AcsTaskEnum.TASK_PLOTTER_EMPTY.getCode()); + task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); + task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()); + task.put("material_id", order.getMaterial_id()); + task.put("task_status", StatusEnum.TASK_CREATE.getCode()); + task.put("point_code2", end_point_code); + task.put("handle_class", this.getClass().getName()); + task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); + String currentUserId = SecurityUtils.getCurrentUserId(); + task.put("create_id", currentUserId); + task.put("create_name", SecurityUtils.getCurrentNickName()); + task.put("update_id", currentUserId); + task.put("update_name", SecurityUtils.getCurrentNickName()); + task.put("create_time", DateUtil.now()); + task.put("update_time", DateUtil.now()); + task.put("priority", "1"); + task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); + task.put("table_fk_id",order.getWorkorder_code()); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); + taskService.save(schBaseTask); + // 找终点 + try { + pointConfirm(task); + JSONArray data = new JSONArray(); + data.add(task); + // 下发 + wms.issueTaskToAcs2(data); + } catch (Exception ex) { + log.error("刻字请求异常,error:{}",ex); + schBaseTask.setRemark(ex.getMessage()); + schBaseTask.setUpdate_time(new Date()); + schBaseTask.setUpdate_name("acs"); + schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); + taskService.save(schBaseTask); + } + return taskdtl_id; + } + + @Override + public void cancel(String task_id) { + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_CANNEL.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task_id)); + } + + /** + * 满料请求 + * 从刻字机满料缓存区中获取空位放入就行 + * @param taskObj: 任务对象 + */ + @Override + public void pointConfirm(JSONObject taskObj) { + // 去刻字缓存区寻找空框 TODO:空箱 + List> points = pointService.queryVehicle( + MapOf.of("is_used", "1", + "lock_type", StatusEnum.LOCK_OFF.getCode(), + "region_code", "A1_KZHC", + "material_null", "material_null")); + if (ObjectUtil.isNotEmpty(points)) { + Map map = points.get(0); + if (CollectionUtils.isEmpty(map)|| StringUtils.isEmpty(map.get("point_code"))){ + throw new BadRequestException("刻字缓存区没有可用货位."); + } + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_ON.getCode()) + .eq("point_code",map.get("point_code"))); + // 设置点位 + taskObj.put("update_time", DateUtil.now()); + taskObj.put("point_code1",map.get("point_code")); + SchBaseTask schBaseTask = taskObj.toJavaObject(SchBaseTask.class); + schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); + schBaseTask.setUpdate_time(new Date()); + taskService.updateById(schBaseTask); + } else { + throw new BadRequestException("刻字缓存区没有可用货位."); + } + } + + @Override + public List schedulerTask(List tasks) { + ArrayList Merge = new ArrayList<>(); + if (!CollectionUtils.isEmpty(tasks)){ + for (SchBaseTask task : tasks) { + task.setTask_group_id(org.nl.common.utils.IdUtil.getStringId()); + Merge.add(task); + } + } + return Merge; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialQZTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialQZTask.java new file mode 100644 index 00000000..086e083f --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialQZTask.java @@ -0,0 +1,213 @@ +package org.nl.wms.product_manage.sch.tasks.sendMaterial; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +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 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.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.wms.ext.acs.service.WmsToAcsService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +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.AbstractAcsTask; +import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; +import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +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.IOSEnum; +import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService; +import org.nl.wms.storage_manage.productmanage.util.RuleUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/* + * @author ZZQ 清洗异常时去异常位 + * @Date 2023/6/16 08:40 + */ +@Service +@Slf4j +public class WashSendMaterialQZTask extends AbstractAcsTask { + + @Autowired + private DivRuleCpService divRuleCpService; + @Autowired + private IStIvtSectattrService sectattrService; + @Autowired + private IPdmProduceWorkorderService workorderService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBasePointService pointService; + @Autowired + private WmsToAcsService wms; + @Override + + @Transactional(rollbackFor = Exception.class) + public void updateTaskStatus(JSONObject param, String status) { + SchBaseTask task = taskService.getById(param.getString("task_id")); + if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { + taskService.update(new UpdateWrapper() + .set("task_status", StatusEnum.TASK_RUNNING.getCode()) + .set("update_name","acs") + .set("update_time", DateUtil.now()).eq("task_id",task.getTask_id())); + } + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + // 完成 + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_FINISH.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3())); + } + if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { + // 完成 + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_CANNEL.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task.getTask_id())); + pointService.update(new UpdateWrapper() + .set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .in("point_code",task.getPoint_code1(),task.getPoint_code2(),task.getPoint_code3())); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String createTask(JSONObject param) { + String start_point_code = param.getString("device_code"); + PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper() + .eq("workorder_code", param.getString("workorder_code")) + .eq("is_delete", false) + .lt("workorder_status", WorkerOrderEnum.COMPLETE.getCode())); + Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); + //?刻字满料请求:可以存在多个任务? + List list = taskService.list(new QueryWrapper() + .lt("task_status", StatusEnum.TASK_FINISH.getCode()) + .and(wa->wa + .eq("point_code1", param.getString("device_code")) + .or() + .eq("point_code2", param.getString("device_code"))) + ); + if (!CollectionUtils.isEmpty(list)){ + throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code"))); + } + // 查找任务状态 + String taskdtl_id = IdUtil.getStringId(); + JSONObject task = new JSONObject(); + task.put("task_id", taskdtl_id); + task.put("task_name", AcsTaskEnum.REQUEST_WASH_FULL_ERROR.getDesc()); + task.put("task_type", AcsTaskEnum.REQUEST_WASH_FULL_ERROR.getCode()); + task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); + task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()); + task.put("material_id", order.getMaterial_id()); + task.put("material_qty", param.getString("weight")); + task.put("vehicle_code", param.getString("vehicle_code")); + task.put("task_status", TaskStatusEnum.CREATED.getCode()); + task.put("point_code1", start_point_code); + task.put("handle_class", this.getClass().getName()); + task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); + String currentUserId = SecurityUtils.getCurrentUserId(); + task.put("create_id", currentUserId); + task.put("create_name", SecurityUtils.getCurrentNickName()); + task.put("create_time", DateUtil.now()); + task.put("priority", "1"); + task.put("finished_type", "1"); + task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); + task.put("table_fk_id",order.getWorkorder_code()); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); + taskService.save(schBaseTask); + // 找终点 + try { + pointConfirm(task); + JSONArray data = new JSONArray(); + data.add(task); + // 下发 + wms.issueTaskToAcs2(data); + } catch (Exception ex) { + // 未找到 + log.error("刻字满料请求异常,error:{}",ex); + schBaseTask.setRemark(ex.getMessage()); + schBaseTask.setUpdate_time(new Date()); + schBaseTask.setUpdate_name("acs"); + schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); + taskService.save(schBaseTask); + } + return taskdtl_id; + } + + @Override + public void cancel(String task_id) { + taskService.update(new UpdateWrapper() + .set("task_status",StatusEnum.TASK_CANNEL.getCode()) + .set("update_name","acs") + .set("update_time",DateUtil.now()).eq("task_id",task_id)); + } + + /** + * 满料请求 + * 从刻字机满料缓存区中获取空位放入就行 + */ + @Override + @Transactional(timeout=TransactionDefinition.ISOLATION_READ_UNCOMMITTED) + public void pointConfirm(JSONObject task) { + // 去刻字缓存区寻找空位 + List list = pointService.list(new QueryWrapper().isNull("vehicle_code") + .eq("is_used", "1") + .eq("region_code","A1_BCP_YC")//半成品 + .eq("lock_type", StatusEnum.LOCK_OFF.getCode())); + + if (ObjectUtil.isNotEmpty(list)) { + // 找到位置 + // 点位上锁 + SchBasePoint point = list.get(0); + point.setLock_type(StatusEnum.LOCK_ON.getCode()); + pointService.updateById(point); + // 设置点位 + task.put("update_time", DateUtil.now()); + task.put("point_code2",point.getPoint_code()); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); + schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); + schBaseTask.setTask_type(AcsTaskEnum.TASK_WASH_FULL_QZ.getCode()); + schBaseTask.setUpdate_time(new Date()); + taskService.updateById(schBaseTask); + } else { + throw new BadRequestException("异常位没有可用货位."); + } + } + + @Override + public List schedulerTask(List tasks) { + ArrayList Merge = new ArrayList<>(); + if (!CollectionUtils.isEmpty(tasks)){ + for (SchBaseTask task : tasks) { + task.setTask_group_id(IdUtil.getStringId()); + Merge.add(task); + } + } + return Merge; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialTask.java index 92c15c7c..b470c9ec 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/sch/tasks/sendMaterial/WashSendMaterialTask.java @@ -8,10 +8,12 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; import org.nl.common.enums.WorkerOrderEnum; import org.nl.common.utils.IdUtil; +import org.nl.common.utils.RedissonUtils; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -31,6 +33,7 @@ import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.storage_manage.IOSEnum; 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.structIvt.dao.StIvtStructivtBcp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.TransactionDefinition; @@ -45,11 +48,14 @@ import java.util.stream.Collectors; /* * @author ZZQ * @Date 2023/6/16 08:40 + * 清洗机下料满料请求 */ @Service @Slf4j public class WashSendMaterialTask extends AbstractAcsTask { + @Autowired + private IStIvtStructattrService structattrService; @Autowired private DivRuleCpService divRuleCpService; @Autowired @@ -61,6 +67,8 @@ public class WashSendMaterialTask extends AbstractAcsTask { @Autowired private ISchBasePointService pointService; @Autowired + private WashSendMaterialQZTask sendMaterialQZTask; + @Autowired private WmsToAcsService wms; @Override @@ -98,63 +106,69 @@ public class WashSendMaterialTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public String createTask(JSONObject param) { - String start_point_code = param.getString("device_code"); - PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper() - .eq("workorder_code", param.getString("workorder_code")) - .eq("is_delete", false) - .lt("workorder_status", WorkerOrderEnum.COMPLETE.getCode())); - Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); - //?刻字满料请求:可以存在多个任务? - List list = taskService.list(new QueryWrapper() - .lt("task_status", StatusEnum.TASK_FINISH.getCode()) - .and(wa->wa - .eq("point_code1", param.getString("device_code")) - .or() - .eq("point_code2", param.getString("device_code"))) - ); - if (!CollectionUtils.isEmpty(list)){ - throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code"))); - } - // 查找任务状态 - String taskdtl_id = IdUtil.getStringId(); - JSONObject task = new JSONObject(); - task.put("task_id", taskdtl_id); - task.put("task_name", AcsTaskEnum.REQUEST_WASH_FULL.getDesc()); - task.put("task_type", AcsTaskEnum.REQUEST_WASH_FULL.getCode()); - task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); - task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()); - task.put("material_id", order.getMaterial_id()); - task.put("task_status", TaskStatusEnum.CREATED.getCode()); - task.put("point_code1", start_point_code); - task.put("handle_class", this.getClass().getName()); - task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); - String currentUserId = SecurityUtils.getCurrentUserId(); - task.put("create_id", currentUserId); - task.put("create_name", SecurityUtils.getCurrentNickName()); - task.put("create_time", DateUtil.now()); - task.put("priority", "1"); - task.put("finished_type", "1"); - task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); - task.put("table_fk_id",order.getWorkorder_code()); - SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); - taskService.save(schBaseTask); - // 找终点 - try { - pointConfirm(task); - JSONArray data = new JSONArray(); - data.add(task); - // 下发 - wms.issueTaskToAcs2(data); - } catch (Exception ex) { - // 未找到 - log.error("刻字满料请求异常,error:{}",ex); - schBaseTask.setRemark(ex.getMessage()); - schBaseTask.setUpdate_time(new Date()); - schBaseTask.setUpdate_name("acs"); - schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); + if (StringUtils.isEmpty(param.getString("weight"))||StringUtils.isEmpty(param.getString("vehicle_code"))){ + return sendMaterialQZTask.createTask(param); + }else { + String start_point_code = param.getString("device_code"); + PdmProduceWorkorder order = workorderService.getOne(new QueryWrapper() + .eq("workorder_code", param.getString("workorder_code")) + .eq("is_delete", false) + .lt("workorder_status", WorkerOrderEnum.COMPLETE.getCode())); + Assert.notNull(order, String.format("下发工单%s不存在未完成工单", param.getString("workorder_code"))); + //?刻字满料请求:可以存在多个任务? + List list = taskService.list(new QueryWrapper() + .lt("task_status", StatusEnum.TASK_FINISH.getCode()) + .and(wa->wa + .eq("point_code1", param.getString("device_code")) + .or() + .eq("point_code2", param.getString("device_code"))) + ); + if (!CollectionUtils.isEmpty(list)){ + throw new BadRequestException(String.format("设备%s存在未完成任务"+list.stream().map(SchBaseTask::getTask_id).collect(Collectors.toList()).toString(), param.getString("device_code"))); + } + // 查找任务状态 + String taskdtl_id = IdUtil.getStringId(); + JSONObject task = new JSONObject(); + task.put("task_id", taskdtl_id); + task.put("task_name", AcsTaskEnum.REQUEST_WASH_FULL.getDesc()); + task.put("task_type", AcsTaskEnum.REQUEST_WASH_FULL.getCode()); + task.put("task_code", CodeUtil.getNewCode("TASK_CODE")); + task.put("acs_task_type", AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode()); + task.put("material_id", order.getMaterial_id()); + task.put("material_qty", param.getString("weight")); + task.put("vehicle_code", param.getString("vehicle_code")); + task.put("task_status", TaskStatusEnum.CREATED.getCode()); + task.put("point_code1", start_point_code); + task.put("handle_class", this.getClass().getName()); + task.put("is_delete", StatusEnum.STATUS_FLASE.getCode()); + String currentUserId = SecurityUtils.getCurrentUserId(); + task.put("create_id", currentUserId); + task.put("create_name", SecurityUtils.getCurrentNickName()); + task.put("create_time", DateUtil.now()); + task.put("priority", "1"); + task.put("finished_type", "1"); + task.put("agv_system_type", AcsTaskEnum.AGV_SYSTEM_XC.getCode()); + task.put("table_fk_id",order.getWorkorder_code()); + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); taskService.save(schBaseTask); + // 找终点 + try { + pointConfirm(task); + JSONArray data = new JSONArray(); + data.add(task); + // 下发 + wms.issueTaskToAcs2(data); + } catch (Exception ex) { + // 未找到 + log.error("刻字满料请求异常,error:{}",ex); + schBaseTask.setRemark(ex.getMessage()); + schBaseTask.setUpdate_time(new Date()); + schBaseTask.setUpdate_name("acs"); + schBaseTask.setTask_status(StatusEnum.TASK_START_ERROR.getCode()); + taskService.save(schBaseTask); + } + return taskdtl_id; } - return taskdtl_id; } @Override @@ -167,33 +181,31 @@ public class WashSendMaterialTask extends AbstractAcsTask { /** * 满料请求 - * 从刻字机满料缓存区中获取空位放入就行 + * 清洗机入半成品库 */ @Override - @Transactional(timeout=TransactionDefinition.ISOLATION_READ_UNCOMMITTED) public void pointConfirm(JSONObject task) { - // 去刻字缓存区寻找空位 - //分配货位。下发任务,更新主单据状态。更新明细任务 - StIvtSectattr sect = sectattrService.getOne(new QueryWrapper().eq("sect_name", "半成品库区")); - JSONObject jo = new JSONObject(); - jo.put("sect_id", sect.getSect_id()); - jo.put("stor_id", sect.getStor_id()); - jo.put("rule_type", RuleUtil.PRODUCTION_IN_1); - StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo); - //少出入库记录 - if (ObjectUtil.isEmpty(stIvtStructattr)) { - throw new BadRequestException("无可分配货位"); - } - stIvtStructattr.setLock_type(IOSEnum.LOCK_TYPE.code("入库锁")); - stIvtStructattr.setInv_code(task.getString("task_code")); - // 设置点位 - task.put("update_time", DateUtil.now()); - task.put("point_code2",stIvtStructattr.getStruct_code()); - SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); - schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); - schBaseTask.setUpdate_time(new Date()); - schBaseTask.setTask_type(AcsTaskEnum.TASK_STRUCT_IN.getCode()); - taskService.updateById(schBaseTask); + RedissonUtils.lock(()->{ + // 去刻字缓存区寻找空位 + //分配货位。下发任务,更新主单据状态。更新明细任务 + StIvtSectattr sect = sectattrService.getOne(new QueryWrapper().eq("sect_name", "半成品库区")); + JSONObject jo = new JSONObject(); + jo.put("sect_id", sect.getSect_id()); + jo.put("stor_id", sect.getStor_id()); + jo.put("rule_type", RuleUtil.PRODUCTION_IN_1); + StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo); + //少出入库记录 + if (ObjectUtil.isEmpty(stIvtStructattr)) { + throw new BadRequestException("无可分配货位"); + } + // 设置点位 + SchBaseTask schBaseTask = task.toJavaObject(SchBaseTask.class); + schBaseTask.setTask_status(StatusEnum.TASK_START_END_P.getCode()); + schBaseTask.setUpdate_time(new Date()); + schBaseTask.setTask_type(AcsTaskEnum.TASK_STRUCT_IN.getCode()); + taskService.updateById(schBaseTask); + structattrService.lockStruct(stIvtStructattr.getStruct_code(), "入库锁",schBaseTask.getTask_id()); + },"banchengpin_ruku",1); } @Override diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java index 3e0331ce..0b922e6c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java @@ -56,4 +56,10 @@ public interface ISchBasePointService extends IService { Map getWorkprodureByCode(String id); List> getAllPointRegin(String points); + + /** + * 任务回调 + * @param jo + */ + void taskOperate(JSONObject jo); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java index 4f967c7e..751c9e17 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java @@ -6,6 +6,7 @@ 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.service.impl.ServiceImpl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; @@ -14,16 +15,25 @@ 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.enums.StatusEnum; 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.wql.core.bean.WQLObject; +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.point.ISchBasePointService; import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; import org.nl.wms.scheduler_manage.service.point.dao.mapper.SchBasePointMapper; import org.nl.wms.scheduler_manage.service.region.ISchBaseRegionService; import org.nl.wms.scheduler_manage.service.region.dao.SchBaseRegion; +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.dao.StIvtCheckdtlCp; +import org.nl.wms.storage_manage.productmanage.service.check.dao.StIvtCheckmstCp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -47,6 +57,9 @@ public class SchBasePointServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize()); @@ -193,4 +206,21 @@ public class SchBasePointServiceImpl extends ServiceImpl> getAllPointRegin(String points) { return this.baseMapper.getRegionCollent(points); } + + @Override + public void taskOperate(JSONObject form) { + String status = form.getString("status"); + + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + //释放目标点位 + // 更新任务为完成 + SchBaseTask one = taskService.getOne(new QueryWrapper() + .eq("task_id", form.getString("task_id"))); + this.update(new UpdateWrapper() + .set("vehicle_code",StringUtils.isEmpty(one.getVehicle_code())?UUID.randomUUID().toString():one.getVehicle_code()) + .set("vehicle_qty",one.getMaterial_qty()) + .set("material_id",one.getMaterial_id()) + .set("lock_type",StatusEnum.LOCK_OFF.getCode()).set("point_code",one.getPoint_code2())); + } + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/EngraveScheduleService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/EngraveScheduleService.java index 891ce732..41bd0ad0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/EngraveScheduleService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/scheduler/EngraveScheduleService.java @@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.enums.WorkerOrderEnum; import org.nl.common.utils.BaseCode; import org.nl.common.utils.IdUtil; +import org.nl.common.utils.RedissonUtils; import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.product_manage.sch.tasks.sendMaterial.WashSendMaterialTask; @@ -15,6 +16,7 @@ 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.productmanage.service.structIvt.dao.StIvtStructivtCp; import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService; +import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -77,51 +79,54 @@ public class EngraveScheduleService { Map> collect = list.stream().collect(Collectors.groupingBy(PdmProduceWorkorder::getMaterial_id)); //工单开工规则 for (Map.Entry> entry : collect.entrySet()) { - JSONObject form = new JSONObject(); - form.put("stor_id","528627995269533696");//st_ivt_sectattr紫铜车间-半成品库区 - form.put("sect_id","1528631044482404352"); - form.put("material_id",entry.getKey()); - form.put("product_code","A1");//车间 - form.put("point_code","A1_KZPP_D"); - StIvtStructivtCp structivtCp = stIvtIostorinvBcpOutService.autoConfirm(form); - if (structivtCp == null){ continue; } - //生成输送线到刻字机任务 - //工单物料分配规则 - MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper().eq("material_id", entry.getKey()).eq("is_delete", false)); - List current_workorders = entry.getValue(); - BigDecimal canuse_qty = structivtCp.getCanuse_qty(); - String grop_id = IdUtil.getStringId(); - for (PdmProduceWorkorder current_workorder : current_workorders) { - BigDecimal need = current_workorder.getPlan_qty().subtract(current_workorder.getDq_real_qty()); - if (need.intValue() <= 0){ continue; } - int min = Math.min(canuse_qty.intValue(), need.intValue()); + JSONObject form = new JSONObject(); + form.put("stor_id","528627995269533696");//st_ivt_sectattr紫铜车间-半成品库区 + form.put("sect_id","1528631044482404352"); + form.put("material_id",entry.getKey()); + form.put("product_code","A1");//车间 + form.put("point_code","A1_KZPP_D");//刻字爬坡倒料点 + StIvtStructivtBcp stIvtStructivtBcp = stIvtIostorinvBcpOutService.autoConfirmout(form); + if (stIvtStructivtBcp != null){ + //生成输送线到刻字机任务 + //工单物料分配规则 + MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper().eq("material_id", entry.getKey()).eq("is_delete", false)); + List current_workorders = entry.getValue(); + BigDecimal canuse_qty = stIvtStructivtBcp.getCanuse_qty(); + String grop_id = IdUtil.getStringId(); - JSONObject taskForm = new JSONObject(); - taskForm.put("workorder_code",current_workorder.getWorkorder_code()); - taskForm.put("device_code",current_workorder.getDevice_code()); - taskForm.put("qty",min); - taskForm.put("weight",material.getNet_weight().doubleValue()*min); - taskForm.put("material_id",material.getMaterial_id()); - taskForm.put("material_code",material.getMaterial_code()); - taskForm.put("material_spec",material.getMaterial_spec()); - taskForm.put("task_grop_id", grop_id); - engraveCallMaterialTask.createTask(taskForm); - canuse_qty = canuse_qty.subtract(need); - if (canuse_qty.intValue()<=0){return;} - } - if (canuse_qty.intValue() > 0){ - JSONObject taskForm = new JSONObject(); - taskForm.put("workorder_code"," "); - taskForm.put("device_code",""); - taskForm.put("qty",canuse_qty); - taskForm.put("weight",material.getNet_weight().multiply(canuse_qty)); - taskForm.put("material_id",material.getMaterial_id()); - taskForm.put("material_code",material.getMaterial_code()); - taskForm.put("material_spec",material.getMaterial_spec()); - taskForm.put("task_grop_id", grop_id); - engraveCallMaterialTask.createTask(taskForm); - } + for (PdmProduceWorkorder current_workorder : current_workorders) { + BigDecimal need = current_workorder.getPlan_qty().subtract(current_workorder.getDq_real_qty()); + if (need.intValue() <= 0){ continue; } + int min = Math.min(canuse_qty.intValue(), need.intValue()); + + JSONObject taskForm = new JSONObject(); + taskForm.put("workorder_code",current_workorder.getWorkorder_code()); + taskForm.put("device_code",current_workorder.getDevice_code()); + taskForm.put("qty",min); + taskForm.put("weight",material.getNet_weight().doubleValue()*min); + taskForm.put("material_id",material.getMaterial_id()); + taskForm.put("material_code",material.getMaterial_code()); + taskForm.put("material_spec",material.getMaterial_spec()); + taskForm.put("task_grop_id", grop_id); + engraveCallMaterialTask.createTask(taskForm); + canuse_qty = canuse_qty.subtract(need); + if (canuse_qty.intValue()<=0){return;} + } + if (canuse_qty.intValue() > 0){ + JSONObject taskForm = new JSONObject(); + taskForm.put("workorder_code"," "); + taskForm.put("device_code",""); + taskForm.put("qty",canuse_qty); + taskForm.put("weight",material.getNet_weight().multiply(canuse_qty)); + taskForm.put("material_id",material.getMaterial_id()); + taskForm.put("material_code",material.getMaterial_code()); + taskForm.put("material_spec",material.getMaterial_spec()); + taskForm.put("task_grop_id", grop_id); + engraveCallMaterialTask.createTask(taskForm); + } + } } + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/DivRuleCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/DivRuleCpService.java index ad21e3b4..63adae59 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/DivRuleCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/DivRuleCpService.java @@ -3,6 +3,7 @@ package org.nl.wms.storage_manage.productmanage.util; import com.alibaba.fastjson.JSONObject; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; +import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; /** *

@@ -39,5 +40,8 @@ public interface DivRuleCpService { * @return StIvtStructattr / */ StIvtStructivtCp divRuleOut(JSONObject whereJson); - StIvtStructivtCp divRuleOutAndLock(JSONObject whereJson); + + StIvtStructivtBcp divRuleOutBcp(JSONObject whereJson); + + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java index 583f60b3..c3593efd 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java @@ -14,8 +14,13 @@ import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivt import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; 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.structIvt.IStIvtStructivtBcpService; +import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; /** *

@@ -34,13 +39,13 @@ public class DivRuleCpServiceImpl implements DivRuleCpService { @Autowired protected IStIvtStructivtCpService iStIvtStructivtCpService; // 仓位库存服务 - private StIvtStructattr attrDao; + @Autowired + private IStIvtStructivtBcpService bcpService; - private StIvtStructivtCp ivtDao; @Override public StIvtStructattr divRuleIn(JSONObject whereJson) { - + StIvtStructattr attrDao; String stor_id = whereJson.getString("stor_id"); String sect_id = whereJson.getString("sect_id"); @@ -49,15 +54,15 @@ public class DivRuleCpServiceImpl implements DivRuleCpService { switch (whereJson.getString("rule_type")) { case RuleUtil.PRODUCTION_IN_1 : - attrDao = iStIvtStructattrService.getOne( + attrDao = iStIvtStructattrService.getOne( new QueryWrapper().lambda() .eq(StIvtStructattr::getStor_id, stor_id) .eq(StIvtStructattr::getSect_id, sect_id) .eq(StIvtStructattr::getIs_used, IOSEnum.IS_USED.code("是")) .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) - .eq(StIvtStructattr::getStoragevehicle_code,"") + .eq(StIvtStructattr::getStoragevehicle_code, "") .orderByAsc(StIvtStructattr::getStruct_code) - ,false); + , false); break; case RuleUtil.PRODUCTION_IN_2 : attrDao = iStIvtStructattrService.getExceedAttr(whereJson); @@ -70,13 +75,15 @@ public class DivRuleCpServiceImpl implements DivRuleCpService { .eq(StIvtStructattr::getStruct_id, attrDao.getControl_code()) ); break; + default: + return null; } - return attrDao; } @Override public StIvtStructivtCp divRuleOut(JSONObject whereJson) { + StIvtStructivtCp ivtDao; String stor_id = whereJson.getString("stor_id"); String sect_id = whereJson.getString("sect_id"); @@ -97,30 +104,14 @@ public class DivRuleCpServiceImpl implements DivRuleCpService { throw new BadRequestException("物料不能为空"); ivtDao = iStIvtStructivtCpService.queryIvtOutOne(whereJson); break; + default: + return null; } - return ivtDao; } @Override - public StIvtStructivtCp divRuleOutAndLock(JSONObject whereJson) { - RedissonUtils.lock(()->{ - switch (whereJson.getString("rule_type")) { - case RuleUtil.PRODUCTION_OUT_1 : - if (ObjectUtil.isEmpty(whereJson.getString("sale_id"))) throw new BadRequestException("销售单不能为空"); - ivtDao = iStIvtStructivtCpService.queryIvtOutOne(whereJson); - break; - case RuleUtil.PRODUCTION_OUT_2 : - ivtDao = iStIvtStructivtCpService.queryIvtOutOne(whereJson); - break; - } - //锁定 - iStIvtStructattrService.update(new UpdateWrapper().lambda() - .eq(StIvtStructattr::getStruct_code, ivtDao.getStruct_code()) - .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁")) - .set(StIvtStructattr::getInv_code,"")); - },whereJson.getString("material_id"),1); - return ivtDao; + public StIvtStructivtBcp divRuleOutBcp(JSONObject whereJson) { + return bcpService.queryIvtOutOne(whereJson); } - } 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 index 73b783c1..6931ecbe 100644 --- 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 @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import org.nl.common.enums.AcsTaskEnum; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; import org.nl.wms.storage_manage.pda.service.PdaStBcpInService; import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService; @@ -57,6 +58,10 @@ public enum TASKEnum implements FunctionStrategy { IStIvtCheckmstCpService bean = SpringContextHolder.getBean(IStIvtCheckmstCpService.class); bean.taskOperate(form); }), + POINT_FINISH_TASK(type -> AcsTaskEnum.TASK_WASH_FULL_QZ.getCode().equals(type), form -> { + ISchBasePointService bean = SpringContextHolder.getBean(ISchBasePointService.class); + bean.taskOperate(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 6ff5650a..b077672b 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 @@ -3,9 +3,11 @@ package org.nl.wms.storage_manage.semimanage.service.iostorInv; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp; import org.nl.wms.storage_manage.semimanage.service.iostorInv.dto.BcpIostorInvQuery; +import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; import java.util.List; import java.util.Map; @@ -53,7 +55,11 @@ public interface IStIvtIostorinvBcpOutService extends IService().eq("material_id", form.getString("material_id"))); - JSONObject param = new JSONObject(); - param.put("stor_id", form.getString("stor_id")); - param.put("sect_id", form.getString("sect_id")); - param.put("material_id", form.getString("material_id")); - param.put("rule_type", RuleUtil.PRODUCTION_OUT_2); - // 2.锁定仓位 - StIvtStructivtCp structivtBcp = divRuleCpService.divRuleOutAndLock(param); - if (structivtBcp == null){ - return null; - } - StIvtIostorinvBcp mst = new StIvtIostorinvBcp(); - mst.setIostorinv_id(IdUtil.getStringId()); - mst.setBill_code(CodeUtil.getNewCode("IO_CODE")); - mst.setBiz_date(form.getString("biz_date")); - mst.setBill_type(form.getString("bill_type")); - mst.setIo_type(IOSEnum.IO_TYPE.code("出库")); - mst.setBill_status(IOSEnum.BILL_STATUS.code("生成")); - mst.setRemark(form.getString("remark")); - mst.setWorkshop_id(form.getString("product_code")); - mst.setPoint_code(form.getString("point_code")); - mst.setMaterial_id(material.getMaterial_id()); - mst.setPcsn(StringUtils.isNotEmpty(form.getString("pcsn")) ? form.getString("pcsn") : DateUtil.today()); - mst.setPlan_qty(structivtBcp.getCanuse_qty()); - mst.setQuality_scode(structivtBcp.getQuality_scode()); - mst.setQty_unit_id(structivtBcp.getQty_unit_id()); - mst.setBase_bill_code(""); - mst.setQty_unit_name(" "); - mst.setUnit_weight(material.getNet_weight()); - mst.setStoragevehicle_code(" "); - mst.setStoragevehicle_id(" "); - 仓库数据: - { - StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper().eq("stor_id", form.getString("stor_id"))); - mst.setStor_id(stor.getStor_id()); - mst.setStor_code(stor.getStor_code()); - mst.setStor_name(stor.getStor_name()); - StIvtSectattr sect = sectattrService.getById(form.getString("sect_id")); - mst.setSect_code(sect.getSect_code()); - mst.setSect_id(sect.getSect_id()); - mst.setSect_name(sect.getSect_name()); - mst.setStruct_id(structivtBcp.getStruct_id()); - mst.setStruct_code(structivtBcp.getStruct_code()); - mst.setStruct_name(structivtBcp.getStruct_name()); - } - mst.setCreate_id("1"); - mst.setCreate_name("acs"); - mst.setCreate_time(DateUtil.now()); - PointEvent event = PointEvent.builder() - .type(AcsTaskEnum.TASK_STRUCT_OUT.getCode()) - .point_code1(mst.getPoint_code()) - .point_code2(structivtBcp.getStruct_code()) - .vehicle_code(mst.getStoragevehicle_code()) - .product_area(mst.getWorkshop_id()) - .callback((Consumer) mst::setTask_id) - .build(); - BussEventMulticaster.Publish(event); - mst.setWork_status(IOSEnum.WORK_STATUS.code("生成")); - mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); - this.save(mst); - return structivtBcp; + public StIvtStructivtBcp autoConfirmout(JSONObject form) { + final StIvtStructivtBcp[] structivtBcp = new StIvtStructivtBcp[1]; + RedissonUtils.lock(()->{ + MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper().eq("material_id", form.getString("material_id"))); + JSONObject param = new JSONObject(); + param.put("stor_id", form.getString("stor_id")); + param.put("sect_id", form.getString("sect_id")); + param.put("material_id", form.getString("material_id")); + param.put("rule_type", RuleUtil.PRODUCTION_OUT_2); + // 2.锁定仓位 + structivtBcp[0] = divRuleCpService.divRuleOutBcp(param); + if (structivtBcp[0] != null){ + StIvtIostorinvBcp mst = new StIvtIostorinvBcp(); + mst.setIostorinv_id(IdUtil.getStringId()); + mst.setBill_code(CodeUtil.getNewCode("IO_CODE")); + mst.setBiz_date(form.getString("biz_date")); + mst.setBill_type(form.getString("bill_type")); + mst.setIo_type(IOSEnum.IO_TYPE.code("出库")); + mst.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + mst.setRemark(form.getString("remark")); + mst.setWorkshop_id(form.getString("product_code")); + mst.setPoint_code(form.getString("point_code")); + mst.setMaterial_id(material.getMaterial_id()); + mst.setPcsn(StringUtils.isNotEmpty(form.getString("pcsn")) ? form.getString("pcsn") : DateUtil.today()); + mst.setPlan_qty(structivtBcp[0].getCanuse_qty()); + mst.setQuality_scode(structivtBcp[0].getQuality_scode()); + mst.setQty_unit_id(structivtBcp[0].getQty_unit_id()); + mst.setBase_bill_code(""); + mst.setQty_unit_name(" "); + mst.setUnit_weight(material.getNet_weight()); + mst.setStoragevehicle_code(" "); + mst.setStoragevehicle_id(" "); + 仓库数据: + { + StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper().eq("stor_id", form.getString("stor_id"))); + mst.setStor_id(stor.getStor_id()); + mst.setStor_code(stor.getStor_code()); + mst.setStor_name(stor.getStor_name()); + StIvtSectattr sect = sectattrService.getById(form.getString("sect_id")); + mst.setSect_code(sect.getSect_code()); + mst.setSect_id(sect.getSect_id()); + mst.setSect_name(sect.getSect_name()); + mst.setStruct_id(structivtBcp[0].getStruct_id()); + mst.setStruct_code(structivtBcp[0].getStruct_code()); + mst.setStruct_name(structivtBcp[0].getStruct_name()); + } + mst.setCreate_id("1"); + mst.setCreate_name("acs"); + mst.setCreate_time(DateUtil.now()); + PointEvent event = PointEvent.builder() + .type(AcsTaskEnum.TASK_STRUCT_OUT.getCode()) + .point_code1(mst.getPoint_code()) + .point_code2(structivtBcp[0].getStruct_code()) + .vehicle_code(mst.getStoragevehicle_code()) + .product_area(mst.getWorkshop_id()) + .callback((Consumer) mst::setTask_id) + .build(); + BussEventMulticaster.Publish(event); + mst.setWork_status(IOSEnum.WORK_STATUS.code("生成")); + mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); + this.save(mst); + this.lockStruct(structivtBcp[0].getStruct_code(), "出库锁",mst.getTask_id()); + } + },form.getString("material_id"),1); + return structivtBcp[0]; + } + + @Override + public StIvtStructattr autoConfirmin(JSONObject form) { + final StIvtStructattr[] structattr = new StIvtStructattr[1]; + RedissonUtils.lock(()->{ + MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper().eq("material_id", form.getString("material_id"))); + JSONObject param = new JSONObject(); + param.put("stor_id", form.getString("stor_id")); + param.put("sect_id", form.getString("sect_id")); + param.put("material_id", form.getString("material_id")); + param.put("rule_type", RuleUtil.PRODUCTION_OUT_2); + // 2.锁定仓位 + structattr[0] = divRuleCpService.divRuleIn(param); + if (structattr[0] != null){ + StIvtIostorinvBcp mst = new StIvtIostorinvBcp(); + mst.setIostorinv_id(IdUtil.getStringId()); + mst.setBill_code(CodeUtil.getNewCode("IO_CODE")); + mst.setBiz_date(form.getString("biz_date")); + mst.setBill_type(form.getString("bill_type")); + mst.setIo_type(IOSEnum.IO_TYPE.code("出库")); + mst.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + mst.setRemark(form.getString("remark")); + mst.setWorkshop_id(form.getString("product_code")); + mst.setPoint_code(form.getString("point_code")); + mst.setMaterial_id(material.getMaterial_id()); + mst.setPcsn(StringUtils.isNotEmpty(form.getString("pcsn")) ? form.getString("pcsn") : DateUtil.today()); +// mst.setPlan_qty(structattr.getCanuse_qty()); +// mst.setQuality_scode(structattr.getQuality_scode()); +// mst.setQty_unit_id(structattr.getQty_unit_id()); + mst.setBase_bill_code(""); + mst.setQty_unit_name(" "); + mst.setUnit_weight(material.getNet_weight()); + mst.setStoragevehicle_code(" "); + mst.setStoragevehicle_id(" "); + 仓库数据: + { + StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper().eq("stor_id", form.getString("stor_id"))); + mst.setStor_id(stor.getStor_id()); + mst.setStor_code(stor.getStor_code()); + mst.setStor_name(stor.getStor_name()); + StIvtSectattr sect = sectattrService.getById(form.getString("sect_id")); + mst.setSect_code(sect.getSect_code()); + mst.setSect_id(sect.getSect_id()); + mst.setSect_name(sect.getSect_name()); + mst.setStruct_id(structattr[0].getStruct_id()); + mst.setStruct_code(structattr[0].getStruct_code()); + mst.setStruct_name(structattr[0].getStruct_name()); + } + mst.setCreate_id("1"); + mst.setCreate_name("acs"); + mst.setCreate_time(DateUtil.now()); + PointEvent event = PointEvent.builder() + .type(AcsTaskEnum.TASK_STRUCT_OUT.getCode()) + .point_code1(mst.getPoint_code()) + .point_code2(structattr[0].getStruct_code()) + .vehicle_code(mst.getStoragevehicle_code()) + .product_area(mst.getWorkshop_id()) + .callback((Consumer) mst::setTask_id) + .build(); + BussEventMulticaster.Publish(event); + mst.setWork_status(IOSEnum.WORK_STATUS.code("生成")); + mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); + this.save(mst); + this.lockStruct(structattr[0].getStruct_code(), "出库锁",mst.getTask_id()); + } + } ,"banchengpin_ruku",2); + return structattr[0]; + } + + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public void lockStruct(String struct, String type, String inv_code) { + structattrService.update(new UpdateWrapper().lambda() + .eq(StIvtStructattr::getStruct_code, struct) + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code(type)) + .set(StIvtStructattr::getInv_code,inv_code)); } @Override 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 6231396b..b0ef33b1 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 @@ -20,6 +20,7 @@ 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.RedissonUtils; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; @@ -259,58 +260,55 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl().eq("sect_name", "半成品库区")); - JSONObject jo = new JSONObject(); - jo.put("sect_id", sect.getSect_id()); - jo.put("stor_id", sect.getStor_id()); - jo.put("rule_type", RuleUtil.PRODUCTION_IN_1); - StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo); + RedissonUtils.lock(()->{ + Assert.notNull(new Object[]{form, form.get("iostorinv_id")}, "请求参数不能为空"); + StIvtIostorinvBcp mst = this.getById(form.getString("iostorinv_id")); + checkParam(mst); + //分配货位。下发任务,更新主单据状态。更新明细任务 + StIvtSectattr sect = sectattrService.getOne(new QueryWrapper().eq("sect_name", "半成品库区")); + JSONObject jo = new JSONObject(); + jo.put("sect_id", sect.getSect_id()); + jo.put("stor_id", sect.getStor_id()); + jo.put("rule_type", RuleUtil.PRODUCTION_IN_1); + StIvtStructattr stIvtStructattr = divRuleCpService.divRuleIn(jo); - if (ObjectUtil.isEmpty(stIvtStructattr)) { - throw new BadRequestException("无可分配货位"); - } + if (ObjectUtil.isEmpty(stIvtStructattr)) { + throw new BadRequestException("无可分配货位"); + } - stIvtStructattr.setLock_type(IOSEnum.LOCK_TYPE.code("入库锁")); - stIvtStructattr.setInv_code(mst.getBill_code()); - //维护载具 - structattrService.updateById(stIvtStructattr); + 仓库信息: + { + mst.setSect_id(stIvtStructattr.getSect_id()); + mst.setSect_code(stIvtStructattr.getSect_code()); + mst.setSect_name(stIvtStructattr.getSect_name()); + mst.setStruct_id(stIvtStructattr.getStruct_id()); + mst.setStruct_code(stIvtStructattr.getStruct_code()); + mst.setStruct_name(stIvtStructattr.getStruct_name()); + } - 仓库信息: - { - mst.setSect_id(stIvtStructattr.getSect_id()); - mst.setSect_code(stIvtStructattr.getSect_code()); - mst.setSect_name(stIvtStructattr.getSect_name()); - mst.setStruct_id(stIvtStructattr.getStruct_id()); - mst.setStruct_code(stIvtStructattr.getStruct_code()); - mst.setStruct_name(stIvtStructattr.getStruct_name()); - } + PointEvent event = PointEvent.builder() + .type(AcsTaskEnum.TASK_STRUCT_IN.getCode()) + .acs_task_type("7") + .task_group_id(IdUtil.getStringId()) + .point_code1(mst.getPoint_code()) + .point_code2(stIvtStructattr.getStruct_code()) + .vehicle_code(mst.getStoragevehicle_code()) + .product_area(mst.getWorkshop_id()) + .callback((Consumer) mst::setTask_id) + .build(); + BussEventMulticaster.Publish(event); - PointEvent event = PointEvent.builder() - .type(AcsTaskEnum.TASK_STRUCT_IN.getCode()) - .acs_task_type("7") - .task_group_id(IdUtil.getStringId()) - .point_code1(mst.getPoint_code()) - .point_code2(stIvtStructattr.getStruct_code()) - .vehicle_code(mst.getStoragevehicle_code()) - .product_area(mst.getWorkshop_id()) - .callback((Consumer) mst::setTask_id) - .build(); - BussEventMulticaster.Publish(event); - - mst.setWork_status(IOSEnum.WORK_STATUS.code("生成")); - mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); - mst.setUpdate_time(DateUtil.now()); - mst.setUpdate_id(SecurityUtils.getCurrentUserId()); - mst.setUpdate_name(SecurityUtils.getCurrentNickName()); - this.updateById(mst); - - // 下发任务 - sendTask(mst.getTask_id()); - return mst.getTask_id(); + mst.setWork_status(IOSEnum.WORK_STATUS.code("生成")); + mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); + mst.setUpdate_time(DateUtil.now()); + mst.setUpdate_id(SecurityUtils.getCurrentUserId()); + mst.setUpdate_name(SecurityUtils.getCurrentNickName()); + this.updateById(mst); + // 下发任务 + sendTask(mst.getTask_id()); + structattrService.lockStruct(stIvtStructattr.getStruct_code(), "入库锁",mst.getTask_id()); + },"banchengpin_ruku",2); + return null; } private void checkParam(StIvtIostorinvBcp mst) { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java index ba5d0dae..1a06fe1f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java @@ -3,6 +3,7 @@ package org.nl.wms.storage_manage.semimanage.service.structIvt; import com.alibaba.fastjson.JSONObject; import org.nl.common.domain.query.PageQuery; import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; import org.nl.wms.storage_manage.rawmanage.service.structIvt.dto.StructIvtYLQuery; import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; import com.baomidou.mybatisplus.extension.service.IService; @@ -41,4 +42,6 @@ public interface IStIvtStructivtBcpService extends IService { List getPdaBcpIvt(JSONObject jo); List getPdaBcpMaterialIvt(JSONObject jo); + + StIvtStructivtBcp queryIvtOutOne(JSONObject json); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java index b36a59a8..0f58b14f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.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.common.domain.query.PageQuery; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; import org.nl.wms.storage_manage.semimanage.service.structIvt.dto.StructIvtBcpQuery; @@ -35,4 +36,6 @@ public interface StIvtStructivtBcpMapper extends BaseMapper { List getPdaBcpIvt(JSONObject jo); List getPdaBcpMaterialIvt(JSONObject jo); + + StIvtStructivtBcp queryIvtOutOne(JSONObject json); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml index 81235a8d..dc58fff2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml @@ -236,4 +236,25 @@ + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java index 9dcb05cb..0a5ad5aa 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java @@ -61,6 +61,11 @@ public class StIvtStructivtBcpServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/controller/dict/SysDictController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/controller/dict/SysDictController.java index e76587a0..893162a0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/controller/dict/SysDictController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/controller/dict/SysDictController.java @@ -3,6 +3,7 @@ package org.nl.wms.system_manage.controller.dict; import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.nl.common.anno.Log; @@ -121,8 +122,8 @@ public class SysDictController { @ApiOperation("查询字典详情") @PostMapping("/dictDetailByCode") @SaIgnore - public ResponseEntity createDetail(@RequestBody String code){ - return new ResponseEntity<>(dictService.getDictByName(code),HttpStatus.OK); + public ResponseEntity queryDetail(@RequestBody JSONObject code){ + return new ResponseEntity<>(TableDataInfo.build(dictService.getDictByName(code.getString("code"))),HttpStatus.OK); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/dict/impl/SysDictServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/dict/impl/SysDictServiceImpl.java index f081be8c..a94366da 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/dict/impl/SysDictServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/dict/impl/SysDictServiceImpl.java @@ -121,7 +121,7 @@ public class SysDictServiceImpl extends ServiceImpl impleme public List getDictByName(String name) { List dictList = sysDictMapper.selectList(new LambdaQueryWrapper().eq(Dict::getCode, name) .isNotNull(Dict::getLabel) - .ne(Dict::getLabel, "")); + .ne(Dict::getLabel, "").select(Dict::getLabel,Dict::getValue)); return dictList; } diff --git a/mes/qd/src/views/wms/product_manage/workorder/index.vue b/mes/qd/src/views/wms/product_manage/workorder/index.vue index b47b5e4e..207ddbd0 100644 --- a/mes/qd/src/views/wms/product_manage/workorder/index.vue +++ b/mes/qd/src/views/wms/product_manage/workorder/index.vue @@ -391,9 +391,9 @@ @clear="form.material_id='',form.material_code='',form.material_name='',form.material_spec=''" /> - +