diff --git a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceQueueController.java b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceQueueController.java index 7aa1540e3..198aa0fdf 100644 --- a/src/main/java/com/glxp/api/controller/auth/SysWorkplaceQueueController.java +++ b/src/main/java/com/glxp/api/controller/auth/SysWorkplaceQueueController.java @@ -1,5 +1,7 @@ package com.glxp.api.controller.auth; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; @@ -11,10 +13,13 @@ import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.entity.basic.SysWorkplaceLayer; import com.glxp.api.entity.basic.SysWorkplaceQueue; +import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.system.SysPdfTemplateRelevanceLabelEntity; import com.glxp.api.entity.system.SystemPDFTemplateEntity; import com.glxp.api.req.basic.SysWorkplaceFreightRequest; import com.glxp.api.req.basic.SysWorkplaceLayerRequest; +import com.glxp.api.req.basic.SysWorkplaceQueueBindRequest; import com.glxp.api.req.basic.SysWorkplaceQueueRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.SysWorkplaceFreightResponse; @@ -22,9 +27,11 @@ import com.glxp.api.res.basic.SysWorkplaceQueueResponse; import com.glxp.api.res.basic.SysWorkplaceResponse; import com.glxp.api.service.auth.SysWorkplaceService; import com.glxp.api.service.basic.SysWorkplaceQueueService; +import com.glxp.api.service.basic.UdiProductService; import com.glxp.api.service.system.SystemPDFModuleService; import com.glxp.api.service.system.SystemPDFTemplateService; import com.glxp.api.util.JasperUtils; +import com.glxp.api.util.udi.FilterUdiUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; @@ -67,6 +74,15 @@ public class SysWorkplaceQueueController extends BaseController { @GetMapping("/udiwms/sysWorkplaceQueue/getQueueList") public BaseResponse getQueueList(SysWorkplaceQueueRequest request) { + + + String scanCode = request.getScanCode(); + if (StrUtil.isNotEmpty(scanCode)){ + UdiEntity udi = FilterUdiUtils.getUdi(scanCode); + if (udi != null ) request.setNameCode(udi.getUdi()); + } + request.setScanCode(null); + List page = sysWorkplaceQueueService.filterList(request); PageInfo pageInfo = new PageInfo<>(page); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); @@ -75,6 +91,25 @@ public class SysWorkplaceQueueController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + @GetMapping("/udiwms/sysWorkplaceQueue/getQueueBindList") + public BaseResponse getQueueBindList(SysWorkplaceQueueRequest request) { + + + String scanCode = request.getScanCode(); + if (StrUtil.isNotEmpty(scanCode)){ + UdiEntity udi = FilterUdiUtils.getUdi(scanCode); + if (udi != null ) request.setNameCode(udi.getUdi()); + } + request.setScanCode(null); + + List page = sysWorkplaceQueueService.filterBindList(request); + PageInfo pageInfo = new PageInfo<>(page); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(page); + return ResultVOUtils.success(pageSimpleResponse); + } + @GetMapping("/udiwms/sysWorkplaceQueue/getByCode") public BaseResponse getByCode(SysWorkplaceQueueRequest request) { @@ -170,19 +205,73 @@ public class SysWorkplaceQueueController extends BaseController { } - @PostMapping("/udiwms/WorkplaceQueue/update") - public BaseResponse update(@RequestBody SysWorkplaceQueue sysWorkplaceQueue){ + @PostMapping("/udiwms/WorkplaceQueue/bind") + public BaseResponse bind(@RequestBody SysWorkplaceQueueBindRequest sysWorkplaceQueueBindRequest){ - // TODO: 2024/11/9 做一个relId重复的判断 + String relId = sysWorkplaceQueueBindRequest.getRelId(); + List list = sysWorkplaceQueueService.list(new LambdaQueryWrapper().eq(SysWorkplaceQueue::getRelId, relId)); + if (CollUtil.isNotEmpty(list)){ + return ResultVOUtils.error("产品已绑定到货位槽码的信息,请先解绑"); + } + + Long id = sysWorkplaceQueueBindRequest.getId(); + SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getById(id); + sysWorkplaceQueue.setRelId(relId); sysWorkplaceQueue.setUpdateTime(new Date()); sysWorkplaceQueue.setUpdateUser(getUserId() + ""); boolean falg = sysWorkplaceQueueService.updateById(sysWorkplaceQueue); if (!falg) { - return ResultVOUtils.error(999, "更新失败"); + return ResultVOUtils.error(999, "绑定失败"); } return ResultVOUtils.success(); } + /** + * 根据货位槽号 获取 货位槽信息 + */ + @PostMapping("/udiwms/sysWorkplaceQueue/getInfoByCode") + public BaseResponse getInfoByCode(@RequestBody SysWorkplaceQueueRequest request){ + String code = request.getCode(); + if (StrUtil.isEmpty(code)){ + return ResultVOUtils.error("货位槽码不能为空"); + } + + List list = sysWorkplaceQueueService.filterBindList(request); + if (CollUtil.isEmpty(list)){ + return ResultVOUtils.error("未找到该货位槽码的信息"); + } + SysWorkplaceQueueResponse sysWorkplaceQueue = list.get(0); + return ResultVOUtils.success(sysWorkplaceQueue); + } + + + @Resource + UdiProductService udiProductService; + + /** + * 根据货位槽号 获取 货位槽信息 + */ + @PostMapping("/udiwms/sysWorkplaceQueue/getProductByCode") + public BaseResponse getProductByCode(@RequestBody SysWorkplaceQueueRequest request){ + String udiCode = request.getUdiCode(); + if (StrUtil.isEmpty(udiCode)){ + return ResultVOUtils.error("UDI码不能为空"); + } + + UdiProductEntity byNameCode = udiProductService.findByNameCode(udiCode); + if (byNameCode == null){ + return ResultVOUtils.error("UDI码未能识别出对应产品"); + } + + String relId = byNameCode.getRelId(); + List list = sysWorkplaceQueueService.list(new LambdaQueryWrapper().eq(SysWorkplaceQueue::getRelId, relId)); + if (CollUtil.isNotEmpty(list)){ + return ResultVOUtils.error("产品已绑定到货位槽码的信息,请先解绑"); + } + + return ResultVOUtils.success(byNameCode); + } + } diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 613cea9d6..47aa76d1b 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -12,6 +12,7 @@ import com.glxp.api.entity.basic.*; import com.glxp.api.entity.collect.IoCollectCode; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderOrigin; +import com.glxp.api.entity.collect.RelCodeDetail; import com.glxp.api.exception.JsonException; import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderRequest; @@ -1565,6 +1566,15 @@ public class IoCodeTempController extends BaseController { codeEnttity.setFifoSplit(addOrderRequest.getFifoSplit()); codeEnttity.setProductType(2); codeEnttity.setCount(1); + RelCodeDetailResponse codeRelEntity = relCodeDetailService.findByCode(code); + if (codeRelEntity != null) { + codeEnttity.setParentCode(codeRelEntity.getParentCode()); + RelCodeDetail relCodeDetail = relCodeDetailService.getOneByCode(codeRelEntity.getParentCode()); + if (relCodeDetail != null) { + codeEnttity.setGrantPaCode(relCodeDetail.getParentCode()); + } + } + String unitFk = null; if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { unitFk = addOrderRequest.getFromCorp(); @@ -1833,6 +1843,7 @@ public class IoCodeTempController extends BaseController { if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) { udiEntity.setSerialNo(addOrderRequest.getSerialNo()); } + RelCodeDetailResponse codeRelEntity = null; if (StrUtil.isEmpty(udiEntity.getBatchNo())) { IoCodeLostEntity codeLostEntity = codeLostService.findByCode(code); if (codeLostEntity != null) { @@ -1840,7 +1851,7 @@ public class IoCodeTempController extends BaseController { udiEntity.setProduceDate(codeLostEntity.getProduceDate()); udiEntity.setExpireDate(codeLostEntity.getExpireDate()); } else { - RelCodeDetailResponse codeRelEntity = relCodeDetailService.findByCode(code); + codeRelEntity = relCodeDetailService.findByCode(code); if (codeRelEntity != null) { udiEntity.setBatchNo(codeRelEntity.getBatchNo()); udiEntity.setProduceDate(MsDateUtil.formatDate(codeRelEntity.getMadeDate(), "yyMMdd")); diff --git a/src/main/java/com/glxp/api/dao/basic/SysWorkplaceQueueMapper.java b/src/main/java/com/glxp/api/dao/basic/SysWorkplaceQueueMapper.java index 53dd2064a..40c3e80a5 100644 --- a/src/main/java/com/glxp/api/dao/basic/SysWorkplaceQueueMapper.java +++ b/src/main/java/com/glxp/api/dao/basic/SysWorkplaceQueueMapper.java @@ -15,6 +15,7 @@ public interface SysWorkplaceQueueMapper extends BaseMapper { Integer selectMaxLayer(String freightCode); List filterList(SysWorkplaceQueueRequest request); + List filterBindList(SysWorkplaceQueueRequest request); Integer selectMaxGrid(@Param("freightCode") String freightCode,@Param("layer") Integer layer); diff --git a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceQueue.java b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceQueue.java index 425c14c64..f2f4c2056 100644 --- a/src/main/java/com/glxp/api/entity/basic/SysWorkplaceQueue.java +++ b/src/main/java/com/glxp/api/entity/basic/SysWorkplaceQueue.java @@ -117,7 +117,7 @@ public class SysWorkplaceQueue implements Serializable { */ @TableField(value = "relId") @ApiModelProperty(value = "") - private Long relId; + private String relId; diff --git a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java index a5689d3cc..74d51b1c9 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java @@ -220,4 +220,11 @@ public class IoCodeTempEntity { */ @TableField(value = "parentCode") private String parentCode; + + + /** + * 爷级编码 + */ + @TableField(value = "grantPaCode") + private String grantPaCode; } diff --git a/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueBindRequest.java b/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueBindRequest.java new file mode 100644 index 000000000..3fb93679d --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueBindRequest.java @@ -0,0 +1,21 @@ +package com.glxp.api.req.basic; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.util.List; + +/** + * @author : zhangsan + * @date : 2024/10/30 10:42 + * @modyified By : + */ + +@Data +public class SysWorkplaceQueueBindRequest{ + private Long id; + private String relId; + private String code; + + +} diff --git a/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueRequest.java b/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueRequest.java index c9e9a5eae..d24faa428 100644 --- a/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueRequest.java +++ b/src/main/java/com/glxp/api/req/basic/SysWorkplaceQueueRequest.java @@ -14,6 +14,9 @@ import java.util.List; @Data public class SysWorkplaceQueueRequest extends ListPageRequest { private String key; + private String scanCode; + private String udiCode; + private String nameCode; private String code; private String name; private Long workPlaceIdFk; diff --git a/src/main/java/com/glxp/api/res/basic/SysWorkplaceQueueResponse.java b/src/main/java/com/glxp/api/res/basic/SysWorkplaceQueueResponse.java index 5c673dcc5..ed331d0b3 100644 --- a/src/main/java/com/glxp/api/res/basic/SysWorkplaceQueueResponse.java +++ b/src/main/java/com/glxp/api/res/basic/SysWorkplaceQueueResponse.java @@ -80,6 +80,9 @@ public class SysWorkplaceQueueResponse { * 货架code */ private String freightCode; - + private String nameCode; + private String ggxh; + private String cpmctymc; + private String relId; } diff --git a/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java b/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java index 1cd50e09c..fa54f6b77 100644 --- a/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java +++ b/src/main/java/com/glxp/api/service/basic/SysWorkplaceQueueService.java @@ -152,6 +152,20 @@ public class SysWorkplaceQueueService extends ServiceImpl filterBindList(SysWorkplaceQueueRequest request) { + if (null == request) { + return Collections.emptyList(); + } + if (null != request.getPage() && null != request.getLimit()) { + PageHelper.offsetPage((request.getPage() - 1) * request.getLimit(), request.getLimit()); + } + List sysWorkplaceQueueResponses = sysWorkplaceQueueMapper.filterBindList(request); +// for (SysWorkplaceQueueResponse sysWorkplaceQueueResponse : sysWorkplaceQueueResponses){ +// sysWorkplaceQueueResponse.setCode(sysWorkplaceQueueResponse.getFreightCode() +sysWorkplaceQueueResponse.getCode()); +// } + return sysWorkplaceQueueResponses; + } + //删减卡槽 public void deleteQueue(SysWorkplaceQueueRequest sysWorkplaceQueueRequest) { Integer grid = sysWorkplaceQueueRequest.getGrids(); diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java index 5e7a2066e..89ab04da9 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java @@ -119,12 +119,26 @@ public class RelCodeDetailService extends ServiceImpl relCodeDetailResponse = filterList(relCodeDetailRequest); - if (CollUtil.isNotEmpty(relCodeDetailResponse)) { - return relCodeDetailResponse.get(0); + List relCodeDetailResponses = filterList(relCodeDetailRequest); + if (CollUtil.isNotEmpty(relCodeDetailResponses)) { + return relCodeDetailResponses.get(0); } else { - return null; + relCodeDetailRequest.setCurCode(null); + relCodeDetailRequest.setParentCode(code); + relCodeDetailResponses = filterList(relCodeDetailRequest); + if (CollUtil.isNotEmpty(relCodeDetailResponses)) { + RelCodeDetailResponse relCodeDetailResponse = relCodeDetailResponses.get(0); + relCodeDetailResponse.setCurCode(code); + relCodeDetailResponse.setParentCode(null); + return relCodeDetailResponse; + } } + return null; + } + + public RelCodeDetail getOneByCode(String code) { + RelCodeDetail relCodeDetail = getOne(new LambdaQueryWrapper().eq(RelCodeDetail::getCurCode, code)); + return relCodeDetail; } diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java index 8896b20b9..98d5fa1a9 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java @@ -14,6 +14,7 @@ import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.req.inout.FilterCodeRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.res.collect.RelCodeDetailResponse; import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.service.basic.IBasicBussinessTypeService; @@ -259,16 +260,25 @@ public class IoCodeTempService { public boolean ieExitRel(String code, String orderId) { boolean ret = false; - RelCodeDetail relCodeDetail = relCodeDetailService.getOne(new LambdaQueryWrapper().eq(RelCodeDetail::getCurCode, code)); + RelCodeDetailResponse relCodeDetail = relCodeDetailService.findByCode(code); if (relCodeDetail != null) { - ret = ioCodeTempDao.exists(new LambdaQueryWrapper().eq(IoCodeTempEntity::getOrderId, orderId).eq(IoCodeTempEntity::getCode, relCodeDetail.getParentCode())); + //判断是否存在关联关系:1.先判断当前单号是否存在父码,若存在则表示存在关联关系重复扫码 + if (StrUtil.isNotEmpty(relCodeDetail.getParentCode())) { + ret = ioCodeTempDao.exists(new LambdaQueryWrapper().eq(IoCodeTempEntity::getOrderId, orderId).eq(IoCodeTempEntity::getCode, relCodeDetail.getParentCode())); + if (!ret) { + relCodeDetail = relCodeDetailService.findByCode(relCodeDetail.getParentCode()); + ret = ioCodeTempDao.exists(new LambdaQueryWrapper().eq(IoCodeTempEntity::getOrderId, orderId).eq(IoCodeTempEntity::getCode, relCodeDetail.getParentCode())); + } + } + if (ret) + return true; + //若父码不存在,判断当前单号是否存在当前码的子码,若存在则表示存在关联关系重复扫码 + ret = ioCodeTempDao.exists(new LambdaQueryWrapper().eq(IoCodeTempEntity::getOrderId, orderId).eq(IoCodeTempEntity::getParentCode, code)); if (!ret) { - ret = ioCodeTempDao.exists(new LambdaQueryWrapper().eq(IoCodeTempEntity::getOrderId, orderId).eq(IoCodeTempEntity::getParentCode, code)); + ret = ioCodeTempDao.exists(new LambdaQueryWrapper().eq(IoCodeTempEntity::getOrderId, orderId).eq(IoCodeTempEntity::getGrantPaCode, code)); } - } return ret; } - } diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java index 3b2a903cc..ba8d9b2ec 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java @@ -511,7 +511,7 @@ public class IoSplitCodeService extends ServiceImpl + + - SELECT basic_products.*,basic_udirel.purType,basic_udirel.hcType + SELECT basic_products.*,basic_udirel.purType,basic_udirel.hcType,basic_udirel.id as relId FROM basic_products LEFT JOIN basic_udirel ON basic_udirel.uuid = basic_products.uuid WHERE (basic_products.nameCode = #{nameCode}) diff --git a/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml b/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml index 598e25e05..b553e763e 100644 --- a/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml @@ -1,68 +1,78 @@ - - - - - - - - - - - - - id, curCode, packLayer, parentCode, flag, batchIdFk - - - + + + + + + + + + + + + + id, + curCode, + packLayer, + parentCode, + flag, + batchIdFk + + diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 2b393bd83..6bd942728 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4721,3 +4721,14 @@ CALL Pro_Temp_ColumnWork('sys_workplace_queue', 'relId', CALL Pro_Temp_ColumnWork('thr_yb_setup', 'signData', 'char(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ''签到时间''', 1); +CALL Pro_Temp_ColumnWork('io_code_temp', 'grantPaCode', + ' varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ''爷级编码''', + 1); + +CALL Pro_Temp_ColumnWork('io_code', 'parentCode', + ' varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ''父级编码''', + 1); +CALL Pro_Temp_ColumnWork('io_code', 'grantPaCode', + ' varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ''爷级编码''', + 1); +