diff --git a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java index e5a536647..8a134e0ae 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.basic; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; @@ -17,6 +18,7 @@ import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.http.NmpaUdiClient; import com.glxp.api.req.basic.*; import com.glxp.api.req.thrsys.FilterBasicThirdSysRequest; +import com.glxp.api.res.DiLevelResponse; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.service.auth.CustomerService; @@ -377,9 +379,19 @@ public class UdiContrastController { public BaseResponse delLevel(@RequestBody AddProductRequest addProductRequest) { boolean b = udiProductService.deleteByNameCode(addProductRequest.getNameCode()); return ResultVOUtils.success("删除成功!"); + } + /** + * 耗材字典信息获取同一产品对应DI信息 + */ + @AuthRuleAnnotation("") + @GetMapping("/udiwms/udi/local/levelByUuid") + public BaseResponse filterLocalByUuid(FilterUdiRelRequest filterUdiRelRequest) { + List diLevelResponses = udiProductService.findLevelByRelId(filterUdiRelRequest.getId()); + return ResultVOUtils.success(diLevelResponses); } + public void updateDi(UdiRelevanceEntity udiRelevanceEntity, String key) { List udiInfoEntities = udiDlHttpClient.getOrUpdateByUuid(key); List originProductEntities = udiProductService.findByUuids(udiRelevanceEntity.getUuid()); diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java index c91b0d257..b2d0f85f7 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java @@ -246,7 +246,7 @@ public class UdiRelevanceController extends BaseController { UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(filterUdiRelRequest.getId()); FilterUdiRelRequest tempRequest = new FilterUdiRelRequest(); tempRequest.setUuid(udiRelevanceEntity.getUuid()); - if (filterUdiRelRequest.getProductType() == 2){ + if (filterUdiRelRequest.getProductType() == 2) { tempRequest.setNameCode(filterUdiRelRequest.getNameCode()); } List udiInfoEntities = udiProductService.filterAllUdiInfo(tempRequest); @@ -361,15 +361,15 @@ public class UdiRelevanceController extends BaseController { udiRelevanceEntity.setModifyTime(new Date()); udiRelevanceEntity.setUpdateUser(customerService.getUserId() + ""); udiRelevanceEntity.setUseMuti(udiRelevanceEntity.getUseMuti()); - udiRelevanceEntity.setUseLeverCount(udiRelevanceSaveRequest.getUseLeverCount()); +// udiRelevanceEntity.setUseLeverCount(udiRelevanceSaveRequest.getUseLeverCount()); udiRelevanceEntity.setSplitEnable(udiRelevanceSaveRequest.getSplitEnable()); udiRelevanceEntity.setAutoCode(udiRelevanceSaveRequest.getAutoCode()); - udiRelevanceEntity.setUseLevelDi(udiRelevanceSaveRequest.getUseLevelDi()); - udiRelevanceEntity.setUseLevelUnit(udiRelevanceSaveRequest.getUseLevelUnit()); +// udiRelevanceEntity.setUseLevelDi(udiRelevanceSaveRequest.getUseLevelDi()); +// udiRelevanceEntity.setUseLevelUnit(udiRelevanceSaveRequest.getUseLevelUnit()); udiRelevanceEntity.setUseLevel(udiRelevanceSaveRequest.getUseLevel()); - udiRelevanceEntity.setDistributeLevelDi(udiRelevanceSaveRequest.getDistributeLevelDi()); - udiRelevanceEntity.setDistributeLevelUnit(udiRelevanceSaveRequest.getDistributeLevelUnit()); - udiRelevanceEntity.setDistributeLevelCount(udiRelevanceSaveRequest.getDistributeLevelCount()); +// udiRelevanceEntity.setDistributeLevelDi(udiRelevanceSaveRequest.getDistributeLevelDi()); +// udiRelevanceEntity.setDistributeLevelUnit(udiRelevanceSaveRequest.getDistributeLevelUnit()); +// udiRelevanceEntity.setDistributeLevelCount(udiRelevanceSaveRequest.getDistributeLevelCount()); udiRelevanceEntity.setDistributeLevel(udiRelevanceSaveRequest.getDistributeLevel()); udiRelevanceEntity.setPayFeeCode(udiRelevanceSaveRequest.getPayFeeCode()); udiRelevanceEntity.setSplitEnable(udiRelevanceSaveRequest.getSplitEnable()); @@ -866,5 +866,4 @@ public class UdiRelevanceController extends BaseController { } - } diff --git a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java index 5830ca700..4dea758b3 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java @@ -327,12 +327,16 @@ public class UdiProductEntity { private Integer bhsycjsl; - - //工位预警数量 @TableField(value = "workPlaceCount") private Integer workPlaceCount; + /** + * 下级单位 + */ + @TableField(value = "xjdw") + private String xjdw; + public Integer getMyBhxjsl() { if (bhxjsl == null || bhxjsl == 0) return 1; diff --git a/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java index 46ddfc6f8..b37cf0f34 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java @@ -213,20 +213,20 @@ public class UdiRelevanceEntity { private Boolean newNeedUpload; - /** - * 流通计量层层级标识 - */ - @TableField(value = "distributeLevelDi") - private String distributeLevelDi; - - /** - * 流通计量层级单位 - */ - @TableField(value = "distributeLevelUnit") - private String distributeLevelUnit; - - /** - * 流通时包含计量单元的数量 +// /** +// * 流通计量层层级标识 +// */ +// @TableField(value = "distributeLevelDi") +// private String distributeLevelDi; +// +// /** +// * 流通计量层级单位 +// */ +// @TableField(value = "distributeLevelUnit") +// private String distributeLevelUnit; +// + /** + * 流通时最小包装层级包含计量单元的数量 */ @TableField(value = "distributeLevelCount") private Integer distributeLevelCount; @@ -238,23 +238,23 @@ public class UdiRelevanceEntity { private Integer distributeLevel; - /** - * 使用计量层级标识 - */ - @TableField(value = "useLevelDi") - private String useLevelDi; - - /** - * 使用计量层级单位 - */ - @TableField(value = "useLevelUnit") - private String useLevelUnit; - - /** - * 使用是当前层级包含计量单元数量 - */ - @TableField(value = "useLeverCount") - private Integer useLeverCount; +// /** +// * 使用计量层级标识 +// */ +// @TableField(value = "useLevelDi") +// private String useLevelDi; +// +// /** +// * 使用计量层级单位 +// */ +// @TableField(value = "useLevelUnit") +// private String useLevelUnit; +// +// /** +// * 使用是当前层级包含计量单元数量 +// */ +// @TableField(value = "useLeverCount") +// private Integer useLeverCount; /** @@ -293,5 +293,16 @@ public class UdiRelevanceEntity { */ @TableField(value = "isStack") private Boolean isStack; + /** + * 配送时允许采集的最大层级 + */ + @TableField(value = "distributeMaxLevel") + private Integer distributeMaxLevel; + /** + * 使用时允许采集的最大层级 + */ + @TableField(value = "useMaxLevel") + private Integer useMaxLevel; + } diff --git a/src/main/java/com/glxp/api/req/basic/AddProductRequest.java b/src/main/java/com/glxp/api/req/basic/AddProductRequest.java index 07cfb71ab..d5aeeaba8 100644 --- a/src/main/java/com/glxp/api/req/basic/AddProductRequest.java +++ b/src/main/java/com/glxp/api/req/basic/AddProductRequest.java @@ -265,12 +265,12 @@ public class AddProductRequest { private Long id; - private String distributeLevelDi; - private String distributeLevelUnit; - private Integer distributeLevelCount; - private String useLevelDi; - private String useLevelUnit; - private Integer useLeverCount; + // private String distributeLevelDi; +// private String distributeLevelUnit; +// private Integer distributeLevelCount; +// private String useLevelDi; +// private String useLevelUnit; +// private Integer useLeverCount; private Boolean splitEnable; private Boolean autoCode; @@ -278,8 +278,18 @@ public class AddProductRequest { * 收费编码 */ private String payFeeCode; - private String packUnit; private Integer useLevel; private Integer distributeLevel; + /** + * 流通允许采集的最大层级 + */ + private Integer distributeMaxLevel; + + + /** + * 使用允许采集的最大层级 + */ + private Integer useMaxLevel; + } diff --git a/src/main/java/com/glxp/api/req/basic/UdiRelevanceSaveRequest.java b/src/main/java/com/glxp/api/req/basic/UdiRelevanceSaveRequest.java index a3a58c7c5..834901f1e 100644 --- a/src/main/java/com/glxp/api/req/basic/UdiRelevanceSaveRequest.java +++ b/src/main/java/com/glxp/api/req/basic/UdiRelevanceSaveRequest.java @@ -171,4 +171,14 @@ public class UdiRelevanceSaveRequest { private Integer distributeLevel; //工位预警数 private Integer workPlaceCount; + /** + * 流通允许采集的最大层级 + */ + private Integer distributeMaxLevel; + + + /** + * 使用允许采集的最大层级 + */ + private Integer useMaxLevel; } diff --git a/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java b/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java index 3ca114098..854a01eac 100644 --- a/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java +++ b/src/main/java/com/glxp/api/req/basic/UpdateLevelDrugRequest.java @@ -33,6 +33,8 @@ public class UpdateLevelDrugRequest { private Long relId; private Long productId; private String uuid; + private String xjdw; + private Integer diType; public Integer getMyBhxjsl() { if (bhxjsl == null || bhxjsl == 0) diff --git a/src/main/java/com/glxp/api/res/DiLevelResponse.java b/src/main/java/com/glxp/api/res/DiLevelResponse.java new file mode 100644 index 000000000..2034f5feb --- /dev/null +++ b/src/main/java/com/glxp/api/res/DiLevelResponse.java @@ -0,0 +1,21 @@ +package com.glxp.api.res; + +import lombok.Data; + +@Data +public class DiLevelResponse { + + private String levelUnit; + private Integer packLevel; + private String packUnit; + private Integer diType; + private String xjdw; + private Integer bhxjsl; + + public Integer getMyBhxjsl() { + if (bhxjsl == null || bhxjsl == 0) + return 1; + + return bhxjsl; + } +} diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index 191702025..e766d999e 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -255,9 +255,24 @@ public class UdiRelevanceResponse { */ private Integer bhsycjsl; + /** - * 当前层级包含使用层级数量 + * 下级单位 + */ + private String xjdw; + + /** + * 流通允许采集的最大层级 */ + private Integer distributeMaxLevel; + + + /** + * 使用允许采集的最大层级 + */ + private Integer useMaxLevel; + + private Long productId; /** diff --git a/src/main/java/com/glxp/api/service/basic/UdiProductService.java b/src/main/java/com/glxp/api/service/basic/UdiProductService.java index df20eebea..2aca941fc 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -19,6 +19,7 @@ import com.glxp.api.req.basic.AddProductRequest; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.basic.UdiInfoRequest; import com.glxp.api.req.basic.UpdateLevelDrugRequest; +import com.glxp.api.res.DiLevelResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.util.*; @@ -129,6 +130,41 @@ public class UdiProductService extends ServiceImpl findLevelByRelId(Long relId) { + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectById(relId); + List udiInfoEntities = findByUuids(udiRelevanceEntity.getUuid()); + List diLevelResponses = new ArrayList<>(); + if (CollUtil.isNotEmpty(udiInfoEntities)) { + + Map> groupedByLevel = udiInfoEntities.stream() + .collect(Collectors.groupingBy(UdiProductEntity::getPackLevel)); + groupedByLevel.forEach((level, entities) -> { + UdiProductEntity udiProductEntity = entities.get(0); + DiLevelResponse diLevelResponse = new DiLevelResponse(); + diLevelResponse.setLevelUnit(udiProductEntity.getLevelUnit()); + diLevelResponse.setPackLevel(IntUtil.value(udiProductEntity.getPackLevel())); + diLevelResponse.setDiType(udiProductEntity.getDiType()); + diLevelResponse.setXjdw(udiProductEntity.getXjdw()); + diLevelResponse.setPackUnit(udiProductEntity.getPackUnit()); + diLevelResponse.setBhxjsl(udiProductEntity.getBhxjsl()); + diLevelResponses.add(diLevelResponse); + if (udiProductEntity.getProductsType() == 2 && IntUtil.value(udiProductEntity.getPackLevel()) == 1) { + DiLevelResponse diLevelResponse1 = new DiLevelResponse(); + diLevelResponse1.setLevelUnit(udiProductEntity.getXjdw()); + diLevelResponse1.setPackLevel(0); + diLevelResponse1.setDiType(ConstantStatus.DITYPE_SYDY); + diLevelResponse1.setXjdw(udiProductEntity.getXjdw()); + diLevelResponse1.setPackUnit(udiProductEntity.getXjdw()); + diLevelResponse1.setBhxjsl(1); + diLevelResponses.add(diLevelResponse1); + } + }); + } + Collections.sort(diLevelResponses, Comparator.comparing(DiLevelResponse::getPackLevel)); + return diLevelResponses; + } + public boolean insertUdiInfo(UdiProductEntity udiProductEntity) { if (udiProductEntity.getId() == null) { udiProductEntity.setId(IdUtil.getSnowflakeNextId()); @@ -278,17 +314,19 @@ public class UdiProductService extends ServiceImpl udiProductEntities = udiProductDao.findByUuids(udiRelevanceEntity.getUuid()); Integer curLevel = udiRelevanceEntity.getDistributeLevel(); + List diLevelResponses = findLevelByRelId(udiRelevanceEntity.getId()); + //更新各个层级流通时包含计量单元数量 if (CollUtil.isNotEmpty(udiProductEntities)) { for (UdiProductEntity udiProductEntity : udiProductEntities) { - if (IntUtil.value(udiProductEntity.getPackLevel()) > IntUtil.value(curLevel)) { - UdiProductEntity nextLevelProduct1 = getNextLevelProduct(udiProductEntity, udiProductEntities); - if (nextLevelProduct1 != null && IntUtil.value(nextLevelProduct1.getPackLevel()) > IntUtil.value(curLevel)) { - UdiProductEntity nextLevelProduct2 = getNextLevelProduct(nextLevelProduct1, udiProductEntities); - if (nextLevelProduct2 != null && IntUtil.value(nextLevelProduct2.getPackLevel()) > IntUtil.value(curLevel)) { - UdiProductEntity nextLevelProduct3 = getNextLevelProduct(nextLevelProduct2, udiProductEntities); - if (nextLevelProduct3 != null && IntUtil.value(nextLevelProduct3.getPackLevel()) == IntUtil.value(curLevel)) { - udiProductEntity.setBhltcjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()) * IntUtil.value(nextLevelProduct2.getMyBhxjsl())); - } else { - udiProductEntity.setBhltcjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()) * IntUtil.value(nextLevelProduct2.getMyBhxjsl())); - } - } else { - udiProductEntity.setBhltcjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl())); - } - } else { - if (nextLevelProduct1 != null && IntUtil.value(nextLevelProduct1.getPackLevel()) == IntUtil.value(curLevel)) { - udiProductEntity.setBhltcjsl(IntUtil.value(udiProductEntity.getMyBhxjsl())); + int bhltsl = 1; + if (IntUtil.value(udiProductEntity.getPackLevel()) > curLevel) { + bhltsl = udiProductEntity.getBhxjsl(); + for (DiLevelResponse diLevelResponse : diLevelResponses) { + if (IntUtil.value(udiProductEntity.getPackLevel()) > diLevelResponse.getPackLevel() && IntUtil.value(diLevelResponse.getPackLevel()) > curLevel) { + bhltsl = bhltsl * diLevelResponse.getBhxjsl(); } } - } else { - if (udiProductEntity != null && IntUtil.value(udiProductEntity.getPackLevel()) == IntUtil.value(curLevel)) { - udiProductEntity.setBhltcjsl(IntUtil.value(udiRelevanceEntity.getDistributeLevelCount())); - } } + udiProductEntity.setBhltcjsl(bhltsl); } } - curLevel = udiRelevanceEntity.getUseLevel(); //更新各个层级使用时包含计量单元数量 if (CollUtil.isNotEmpty(udiProductEntities)) { for (UdiProductEntity udiProductEntity : udiProductEntities) { - if (IntUtil.value(udiProductEntity.getPackLevel()) > IntUtil.value(curLevel)) { - UdiProductEntity nextLevelProduct1 = getNextLevelProduct(udiProductEntity, udiProductEntities); - if (nextLevelProduct1 != null && IntUtil.value(nextLevelProduct1.getPackLevel()) > IntUtil.value(curLevel)) { - UdiProductEntity nextLevelProduct2 = getNextLevelProduct(nextLevelProduct1, udiProductEntities); - if (nextLevelProduct2 != null && IntUtil.value(nextLevelProduct2.getPackLevel()) > IntUtil.value(curLevel)) { - UdiProductEntity nextLevelProduct3 = getNextLevelProduct(nextLevelProduct2, udiProductEntities); - if (nextLevelProduct3 != null && IntUtil.value(nextLevelProduct3.getPackLevel()) == IntUtil.value(curLevel)) { - udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()) * IntUtil.value(nextLevelProduct2.getMyBhxjsl())); - } else { - udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()) * IntUtil.value(nextLevelProduct2.getMyBhxjsl())); - } - } else { - udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl())); + int bhltsl = 1; + if (IntUtil.value(udiProductEntity.getPackLevel()) > curLevel) { + bhltsl = udiProductEntity.getBhxjsl(); + for (DiLevelResponse diLevelResponse : diLevelResponses) { + if (IntUtil.value(udiProductEntity.getPackLevel()) > diLevelResponse.getPackLevel() && IntUtil.value(diLevelResponse.getPackLevel()) > curLevel) { + bhltsl = bhltsl * diLevelResponse.getBhxjsl(); } - } else { - if (nextLevelProduct1 != null && IntUtil.value(nextLevelProduct1.getPackLevel()) == IntUtil.value(curLevel)) { - udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl())); - } - } - } else { - if (udiProductEntity != null && IntUtil.value(udiProductEntity.getPackLevel()) == IntUtil.value(curLevel)) { - udiProductEntity.setBhsycjsl(IntUtil.value(udiRelevanceEntity.getUseLeverCount())); } } + udiProductEntity.setBhsycjsl(bhltsl); } } udiProductDao.updateBatchById(udiProductEntities); } - public UdiProductEntity getNextLevelProduct(UdiProductEntity curProductEntity, List udiProductEntities) { - + public List getNextLevelProduct(UdiProductEntity curProductEntity, List udiProductEntities) { + List nextUdiProductEntities = new ArrayList<>(); for (UdiProductEntity udiProductEntity : udiProductEntities) { - if (StrUtil.emptyIfNull(curProductEntity.getBhxjcpbm()).equals(udiProductEntity.getNameCode())) { - return udiProductEntity; +// if (StrUtil.emptyIfNull(curProductEntity.getBhxjcpbm()).equals(udiProductEntity.getNameCode())) { +// return udiProductEntity; +// } + if ((IntUtil.value(curProductEntity.getPackLevel()) - IntUtil.value(udiProductEntity.getPackLevel())) == 1) { + nextUdiProductEntities.add(udiProductEntity); } } - return null; + return nextUdiProductEntities; } @@ -464,50 +479,31 @@ public class UdiProductService extends ServiceImpl udiProductEntities = udiProductDao.findByUuids(udiProductEntity.getUuid()); CountWrapper xjCountWrapper = new CountWrapper(); findUltimateEntity(udiProductEntity, udiProductEntities, xjCountWrapper); - udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getNameCode()); - udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getPackUnit()); +// udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getNameCode()); +// udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getPackUnit()); udiRelevanceEntity.setDistributeLevel(IntUtil.value(udiProductEntity.getPackLevel())); udiRelevanceEntity.setDistributeLevelCount(xjCountWrapper.getCount()); } @@ -535,10 +542,10 @@ public class UdiProductService extends ServiceImpl udiProductEntities = udiProductDao.findByUuids(udiProductEntity.getUuid()); CountWrapper xjCountWrapper = new CountWrapper(); findUltimateEntity(udiProductEntity, udiProductEntities, xjCountWrapper); - udiRelevanceEntity.setUseLevelDi(udiProductEntity.getNameCode()); - udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getPackUnit()); +// udiRelevanceEntity.setUseLevelDi(udiProductEntity.getNameCode()); +// udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getPackUnit()); udiRelevanceEntity.setUseLevel(IntUtil.value(udiProductEntity.getPackLevel())); - udiRelevanceEntity.setUseLeverCount(xjCountWrapper.getCount()); +// udiRelevanceEntity.setUseLeverCount(xjCountWrapper.getCount()); } public UdiProductEntity findUltimateEntity(UdiProductEntity udiProductEntity, List udiProductEntities, CountWrapper xjCountWrapper) { diff --git a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java index 84fb37a2b..bb8b1bcdf 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java @@ -400,14 +400,14 @@ public class UdiRelevanceService extends ServiceImpl removeIds = new ArrayList<>(); for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { - UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderBiz.getRelId()); +// UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderBiz.getRelId()); + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setId(collectOrderBiz.getRelId()); + filterUdiRelRequest.setPackLevel("1"); + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest); //去除掉已经手动扫码的数据,找出需要自动扫码的明细,执行上述的拆零或整取 int unTagCount = collectOrderBiz.getCount() - IntUtil.value(collectOrderBiz.getScanActCount()); if (unTagCount > 0) { @@ -240,7 +250,7 @@ public class IoSplitCodeService extends ServiceImpl -unTagCount) { + if (IntUtil.value(udiRelevanceResponse.getBhxjsl()) > -unTagCount) { Optional firstMatch = collectOrderCodeMEN.stream() .filter(item -> @@ -273,8 +283,8 @@ public class IoSplitCodeService extends ServiceImpl 0) { List ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo()); @@ -285,7 +295,7 @@ public class IoSplitCodeService extends ServiceImpl replace - INTO basic_udirel - (id, uuid, mainId, thirdId, thirdId1, thirdId2, thirdId3, thirdId4, udplatCode, isUseDy, isDisable, - isLock, - lockStatus, isAdavence, purType, attributeType, hcType, useMuti, useNum, supName, createTime, - updateTime, modifyTime, - createUser, - updateUser, - remark, useExpireTime, `dispatch`, - groupBuy, needCert, isStack,distributeLevelDi, - distributeLevelUnit,distributeLevelCount,useLevelDi,useLevelUnit,useLeverCount,useLevel,distributeLevel,splitEnable,autoCode) - values ( - #{id}, + INTO basic_udirel + (id, uuid, mainId, thirdId, thirdId1, thirdId2, thirdId3, thirdId4, udplatCode, isUseDy, isDisable, + isLock, + lockStatus, isAdavence, purType, attributeType, hcType, useMuti, useNum, supName, createTime, + updateTime, modifyTime, + createUser, + updateUser, + remark, useExpireTime, `dispatch`, + groupBuy, needCert, isStack, distributeLevelDi, + distributeLevelUnit, distributeLevelCount, useLevelDi, useLevelUnit, useLeverCount, useLevel, distributeLevel, + splitEnable, autoCode,distributeMaxLevel,useMaxLevel) + values (#{id}, #{uuid}, #{mainId}, #{thirdId}, @@ -1334,30 +1336,28 @@ #{distributeLevelUnit}, #{distributeLevelCount}, #{useLevelDi} - , + , #{useLevelUnit}, #{useLeverCount}, #{useLevel}, #{distributeLevel}, #{splitEnable}, - #{autoCode} - ) + #{autoCode},#{distributeMaxLevel},#{useMaxLevel}) insert - ignore + ignore INTO basic_udirel - (id, uuid, mainId, thirdId, thirdId1, thirdId2, thirdId3, thirdId4, udplatCode, isUseDy, isDisable, - isLock, - lockStatus, isAdavence, purType, attributeType, hcType, useMuti, useNum, supName, createTime, - updateTime, modifyTime, - createUser, - updateUser, - remark, useExpireTime, dispatch, groupBuy, needCert, isStack) - values ( - #{id}, + (id, uuid, mainId, thirdId, thirdId1, thirdId2, thirdId3, thirdId4, udplatCode, isUseDy, isDisable, + isLock, + lockStatus, isAdavence, purType, attributeType, hcType, useMuti, useNum, supName, createTime, + updateTime, modifyTime, + createUser, + updateUser, + remark, useExpireTime, dispatch, groupBuy, needCert, isStack) + values (#{id}, #{uuid}, #{mainId}, #{thirdId}, @@ -1387,8 +1387,7 @@ #{dispatch}, #{groupBuy}, #{needCert}, - #{isStack} - ) + #{isStack}) @@ -1549,6 +1548,12 @@ useLevel=#{useLevel}, + + distributeMaxLevel=#{distributeMaxLevel}, + + + useMaxLevel=#{useMaxLevel}, + distributeLevel=#{distributeLevel}, @@ -1674,7 +1679,7 @@ basic_products.sfwwjbz, basic_products.syqsfxyjxmj, basic_products.mjfs, - basic_products.categoryName, basic_products.bhltcjsl, basic_products.bhsycjsl + basic_products.categoryName, basic_products.bhltcjsl, basic_products.bhsycjsl,basic_products.xjdw FROM basic_udirel INNER JOIN basic_products on basic_udirel.uuid = basic_products.uuid @@ -1699,7 +1704,7 @@ @@ -1728,7 +1733,7 @@ @@ -1939,7 +1944,8 @@ basic_products.zdcfsycs, basic_products.sfwwjbz, basic_products.syqsfxyjxmj, - basic_products.mjfs, + basic_products.mjfs, basic_products.bhltcjsl, basic_products.bhsycjsl, + basic_products.xjdw, basic_products.levelUnit, basic_products.categoryName FROM basic_udirel inner JOIN basic_products @@ -1948,6 +1954,9 @@ AND basic_udirel.id = #{id} + + AND basic_products.packLevel = #{packLevel} + limit 1 @@ -2086,8 +2095,8 @@ basic_products.mjfs, basic_products.categoryName from basic_udirel AS bu - LEFT JOIN basic_products - ON bu.uuid = basic_products.uuid + LEFT JOIN basic_products + ON bu.uuid = basic_products.uuid where basic_products.nameCode = #{nameCode} diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index bbaa61561..7902d6047 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4000,6 +4000,21 @@ CALL Pro_Temp_ColumnWork('basic_udirel', 'payFeeCode', 1); +CALL Pro_Temp_ColumnWork('basic_udirel', 'distributeMaxLevel', + 'int NULL DEFAULT NULL COMMENT ''配送时允许采集的最大层级:''', + 1); + +CALL Pro_Temp_ColumnWork('basic_udirel', 'useMaxLevel', + 'int NULL DEFAULT NULL COMMENT ''使用时允许采集的最大层级''', + 1); + + +CALL Pro_Temp_ColumnWork('basic_products', 'xjdw', + 'varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''最小销售产品标识''', + 1); + + + INSERT IGNORE INTO `basic_bussiness_type`(`id`, `mainAction`, `action`, `name`, `enable`, `remark`, `thirdSysFk`, `genUnit`, `innerOrder`, `secCheckEnable`, `checkEnable`, `checkUdims`, `checkPdaEd`, `checkPdaUn`, `checkPc`, `checkWebNew`, `checkSp`, @@ -4223,10 +4238,17 @@ CALL Pro_Temp_ColumnWork('sys_workplace', 'invRemindNumber', CALL Pro_Temp_ColumnWork('basic_udirel', 'useLevel', 'int NULL DEFAULT NULL COMMENT ''使用层级''', 1); +CALL Pro_Temp_ColumnWork('basic_udirel', 'distributeMaxLevel', + 'int NULL DEFAULT NULL COMMENT ''流通采集最大层级''', + 1); +CALL Pro_Temp_ColumnWork('basic_udirel', 'useMaxLevel', + 'int NULL DEFAULT NULL COMMENT ''使用采集最大层级''', + 1); CALL Pro_Temp_ColumnWork('basic_udirel', 'distributeLevel', 'int NULL DEFAULT NULL COMMENT ''流通层级''', 1); + CALL Pro_Temp_ColumnWork('basic_products', 'bhltcjsl', 'int NULL DEFAULT NULL COMMENT ''当前层级包含流通层级数量''', 1); @@ -4424,6 +4446,9 @@ CALL Pro_Temp_ColumnWork('io_collect_order', 'thrBusType', CALL Pro_Temp_ColumnWork('io_collect_order_backup', 'thrBusType', 'varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''第三方单据类型''', 1); +CALL Pro_Temp_ColumnWork('sys_workplace', 'workPlaceClass', + ' tinyint NULL DEFAULT b''1'' COMMENT ''工位类型 工位类型 1:采集工位; 2: 上货工位''', + 1); @@ -4462,8 +4487,7 @@ CREATE TABLE IF NOT EXISTS `sys_workplace_put_rel` COLLATE = utf8mb4_0900_ai_ci COMMENT = '上货工位绑定采集工与业务类型' ROW_FORMAT = Dynamic; - -CREATE TABLE `io_split_fifo_inv_rel` +CREATE TABLE IF NOT EXISTS `io_split_fifo_inv_rel` ( `id` int NOT NULL AUTO_INCREMENT, `invIdFk` bigint NULL DEFAULT NULL COMMENT '库存ID外键',