From 6c541c8ab9a7a2325aecfd6052446ad5f587fb03 Mon Sep 17 00:00:00 2001 From: yewj Date: Tue, 12 Nov 2024 16:21:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/collect/IoCollectOrderCodeMan.java | 13 ++++++ .../collect/IoCollectOrderCodeManService.java | 46 ++++++++++++++++++- .../api/service/inout/IoSplitCodeService.java | 1 + src/main/resources/schemas/schema_v2.4.sql | 7 +++ 4 files changed, 65 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java index d5dba69cc..dc0d2720a 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderCodeMan.java @@ -109,5 +109,18 @@ public class IoCollectOrderCodeMan implements Serializable { @TableField(exist = false) private Integer remainCount; + /** + * 父级编码 + */ + @TableField(value = "parentCode") + private String parentCode; + + + /** + * 爷级编码 + */ + @TableField(value = "grantPaCode") + private String grantPaCode; + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java index ecb8f368a..520916863 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java @@ -20,6 +20,7 @@ import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderBiz; import com.glxp.api.entity.collect.IoCollectOrderCodeMan; +import com.glxp.api.entity.collect.RelCodeDetail; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoSplitCodeEntity; import com.glxp.api.entity.inv.AnncmntProductEntity; @@ -30,6 +31,7 @@ import com.glxp.api.req.collect.CollectOrderCodeManRequest; import com.glxp.api.req.inout.AddTagCodeReqeust; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.collect.CollectOrderCodeManResponse; +import com.glxp.api.res.collect.RelCodeDetailResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.auth.SysWorkplaceService; @@ -153,9 +155,11 @@ public class IoCollectOrderCodeManService extends ServiceImpl 1) { + throw new JsonException(500, "当前产品不支持采集该包装层级追溯码!"); + } } else { - if (IntUtil.value(udiRelevanceResponse.getDistributeMaxLevel()) < IntUtil.value(udiRelevanceResponse.getPackLevel())) { + if (udiRelevanceResponse.getDistributeMaxLevel() != null && IntUtil.value(udiRelevanceResponse.getDistributeMaxLevel()) < IntUtil.value(udiRelevanceResponse.getPackLevel())) { throw new JsonException(500, "当前产品不支持采集该包装层级追溯码!"); } if (IntUtil.value(udiRelevanceResponse.getPackLevel()) < IntUtil.value(udiRelevanceResponse.getDistributeLevel())) { @@ -438,6 +442,9 @@ public class IoCollectOrderCodeManService extends ServiceImpl().eq(IoCollectOrderCodeMan::getOrderIdFk, orderId).eq(IoCollectOrderCodeMan::getUdiCode, relCodeDetail.getParentCode())); + if (!ret) { + relCodeDetail = relCodeDetailService.findByCode(relCodeDetail.getParentCode()); + ret = collectOrderCodeManMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrderCodeMan::getOrderIdFk, orderId).eq(IoCollectOrderCodeMan::getUdiCode, relCodeDetail.getParentCode())); + } + } + if (ret) + return true; + //若父码不存在,判断当前单号是否存在当前码的子码,若存在则表示存在关联关系重复扫码 + ret = collectOrderCodeManMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrderCodeMan::getOrderIdFk, orderId).eq(IoCollectOrderCodeMan::getParentCode, code)); + if (!ret) { + ret = collectOrderCodeManMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrderCodeMan::getOrderIdFk, orderId).eq(IoCollectOrderCodeMan::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 ba8d9b2ec..6e70d9b59 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java @@ -72,6 +72,7 @@ public class IoSplitCodeService extends ServiceImpl