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 d71c925e6..b9b025000 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; @@ -1564,6 +1565,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(); @@ -1832,6 +1842,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) { @@ -1839,7 +1850,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/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/service/collect/RelCodeDetailService.java b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java index 797df1e56..f0afb09ce 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java @@ -122,12 +122,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 - - - - - - - - - - - - - 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); +