From f7843f27395e0fff0afc0e5d2910a60cf3ba0704 Mon Sep 17 00:00:00 2001 From: yewj Date: Mon, 11 Nov 2024 16:49:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 12 +- .../api/entity/inout/IoCodeTempEntity.java | 5 + .../service/collect/RelCodeDetailService.java | 22 ++- .../service/inout/impl/IoCodeTempService.java | 20 ++- .../mapper/collect/RelCodeDetailMapper.xml | 137 ++++++++++-------- src/main/resources/schemas/schema_v2.4.sql | 10 ++ 6 files changed, 134 insertions(+), 72 deletions(-) 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 679d1dce..dd475a7f 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -21,6 +21,7 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.BasicCorpEntity; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiProductEntity; +import com.glxp.api.entity.collect.RelCodeDetail; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inv.InvPreInProductDetailEntity; import com.glxp.api.entity.inv.InvPreProductDetailEntity; @@ -959,6 +960,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) { @@ -966,7 +968,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(DateUtil.formatDate(codeRelEntity.getMadeDate(), "yyMMdd")); @@ -1123,6 +1125,14 @@ public class IoCodeTempController extends BaseController { codeEnttity.setSerialNo(udiEntity.getSerialNo()); codeEnttity.setDeptCode(invWarehouseEntity.getParentId()); codeEnttity.setInvCode(addOrderRequest.getInvCode()); + if (codeRelEntity != null) { + codeEnttity.setParentCode(codeRelEntity.getParentCode()); + RelCodeDetail relCodeDetail = relCodeDetailService.getOneByCode(codeRelEntity.getParentCode()); + if (relCodeDetail != null) { + codeEnttity.setGrantPaCode(relCodeDetail.getParentCode()); + } + } + codeEnttity.setCount(1); codeEnttity.setProductType(2); String unitFk = null; 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 e0673d79..a4623a54 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java @@ -185,4 +185,9 @@ public class IoCodeTempEntity { @TableField(value = "parentCode") private String parentCode; + /** + * 爷级编码 + */ + @TableField(value = "grantPaCode") + private String grantPaCode; } 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 35bb93cf..26631e46 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java @@ -118,12 +118,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/impl/IoCodeTempService.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempService.java index a157c11e..c293dc3e 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempService.java @@ -1,6 +1,7 @@ package com.glxp.api.service.inout.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,6 +12,7 @@ import com.glxp.api.entity.collect.RelCodeDetail; import com.glxp.api.entity.inout.IoCodeEntity; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.collect.RelCodeDetailResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.service.collect.RelCodeDetailService; import com.glxp.api.util.BeanCopyUtils; @@ -124,13 +126,23 @@ 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/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml b/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml index 598e25e0..5a27c7db 100644 --- a/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/RelCodeDetailMapper.xml @@ -1,68 +1,79 @@ - - - - - - - - - - - - - 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 b4a09d98..8fca6abd 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -1095,6 +1095,16 @@ CALL Pro_Temp_ColumnWork('thr_products_add_di', 'majorStatus', CALL Pro_Temp_ColumnWork('io_code_temp', 'parentCode', ' varchar(255) 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); CALL Pro_Temp_ColumnWork('rel_code_batch', 'erpId',