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