包装层级数量修改

dev_no_inv
yewj 9 months ago
parent 1894cfec9a
commit 8ed250abe8

@ -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<DiLevelResponse> diLevelResponses = udiProductService.findLevelByRelId(filterUdiRelRequest.getId());
return ResultVOUtils.success(diLevelResponses);
}
public void updateDi(UdiRelevanceEntity udiRelevanceEntity, String key) {
List<UdiProductEntity> udiInfoEntities = udiDlHttpClient.getOrUpdateByUuid(key);
List<UdiProductEntity> originProductEntities = udiProductService.findByUuids(udiRelevanceEntity.getUuid());

@ -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 {
}
}

@ -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;

@ -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;
}

@ -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;
}

@ -171,4 +171,14 @@ public class UdiRelevanceSaveRequest {
private Integer distributeLevel;
//工位预警数
private Integer workPlaceCount;
/**
*
*/
private Integer distributeMaxLevel;
/**
* 使
*/
private Integer useMaxLevel;
}

@ -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)

@ -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;
}
}

@ -255,9 +255,24 @@ public class UdiRelevanceResponse {
*/
private Integer bhsycjsl;
/**
* 使
*
*/
private String xjdw;
/**
*
*/
private Integer distributeMaxLevel;
/**
* 使
*/
private Integer useMaxLevel;
private Long productId;
/**

@ -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<UdiProductDao, UdiProductEnti
return udiProductDao.findByUuids(uuid);
}
public List<DiLevelResponse> findLevelByRelId(Long relId) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectById(relId);
List<UdiProductEntity> udiInfoEntities = findByUuids(udiRelevanceEntity.getUuid());
List<DiLevelResponse> diLevelResponses = new ArrayList<>();
if (CollUtil.isNotEmpty(udiInfoEntities)) {
Map<String, List<UdiProductEntity>> 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<UdiProductDao, UdiProductEnti
}
//修改关联表
udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount());
// udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount());
udiRelevanceEntity.setSplitEnable(addProductRequest.getSplitEnable());
udiRelevanceEntity.setAutoCode(addProductRequest.getAutoCode());
udiRelevanceEntity.setUseLevelDi(addProductRequest.getUseLevelDi());
udiRelevanceEntity.setUseLevelUnit(addProductRequest.getUseLevelUnit());
// udiRelevanceEntity.setUseLevelDi(addProductRequest.getUseLevelDi());
// udiRelevanceEntity.setUseLevelUnit(addProductRequest.getUseLevelUnit());
udiRelevanceEntity.setUseLevel(addProductRequest.getUseLevel());
udiRelevanceEntity.setDistributeLevelDi(addProductRequest.getDistributeLevelDi());
udiRelevanceEntity.setDistributeLevelUnit(addProductRequest.getDistributeLevelUnit());
udiRelevanceEntity.setDistributeLevelCount(addProductRequest.getDistributeLevelCount());
// udiRelevanceEntity.setDistributeLevelDi(addProductRequest.getDistributeLevelDi());
// udiRelevanceEntity.setDistributeLevelUnit(addProductRequest.getDistributeLevelUnit());
// udiRelevanceEntity.setDistributeLevelCount(addProductRequest.getDistributeLevelCount());
udiRelevanceEntity.setDistributeLevel(addProductRequest.getDistributeLevel());
udiRelevanceEntity.setPayFeeCode(addProductRequest.getPayFeeCode());
udiRelevanceEntity.setUseMaxLevel(addProductRequest.getUseMaxLevel());
udiRelevanceEntity.setDistributeMaxLevel(addProductRequest.getDistributeMaxLevel());
udiRelevanceDao.updateById(udiRelevanceEntity);
updateLevelCount(udiRelevanceEntity);
} else {
@ -305,32 +343,33 @@ public class UdiProductService extends ServiceImpl<UdiProductDao, UdiProductEnti
udiRelevanceEntity.setAttributeType(addProductRequest.getAttributeType());
udiRelevanceEntity.setHcType(addProductRequest.getHcType());
udiRelevanceEntity.setPayFeeCode(addProductRequest.getPayFeeCode());
if (addProductRequest.getDistributeLevelDi() != null) {
udiRelevanceEntity.setDistributeLevelDi(addProductRequest.getDistributeLevelDi());
}
if (addProductRequest.getDistributeLevelCount() != null) {
udiRelevanceEntity.setDistributeLevelCount(addProductRequest.getDistributeLevelCount());
}
if (addProductRequest.getDistributeLevelUnit() != null) {
udiRelevanceEntity.setDistributeLevelUnit(addProductRequest.getDistributeLevelUnit());
}
if (addProductRequest.getUseLevelDi() != null) {
udiRelevanceEntity.setUseLevelDi(addProductRequest.getUseLevelDi());
}
if (addProductRequest.getUseLevelUnit() != null) {
udiRelevanceEntity.setUseLevelUnit(addProductRequest.getUseLevelUnit());
}
if (addProductRequest.getUseLeverCount() != null) {
udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount());
}
// if (addProductRequest.getDistributeLevelDi() != null) {
// udiRelevanceEntity.setDistributeLevelDi(addProductRequest.getDistributeLevelDi());
// }
// if (addProductRequest.getDistributeLevelCount() != null) {
// udiRelevanceEntity.setDistributeLevelCount(addProductRequest.getDistributeLevelCount());
// }
// if (addProductRequest.getDistributeLevelUnit() != null) {
// udiRelevanceEntity.setDistributeLevelUnit(addProductRequest.getDistributeLevelUnit());
// }
//
// if (addProductRequest.getUseLevelDi() != null) {
// udiRelevanceEntity.setUseLevelDi(addProductRequest.getUseLevelDi());
// }
// if (addProductRequest.getUseLevelUnit() != null) {
// udiRelevanceEntity.setUseLevelUnit(addProductRequest.getUseLevelUnit());
// }
// if (addProductRequest.getUseLeverCount() != null) {
// udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount());
// }
if (addProductRequest.getDistributeLevel() != null) {
udiRelevanceEntity.setDistributeLevel(addProductRequest.getDistributeLevel());
}
if (addProductRequest.getUseLevel() != null) {
udiRelevanceEntity.setUseLevel(addProductRequest.getUseLevel());
}
udiRelevanceEntity.setUseMaxLevel(addProductRequest.getUseMaxLevel());
udiRelevanceEntity.setDistributeMaxLevel(addProductRequest.getDistributeMaxLevel());
if (CollUtil.isNotEmpty(addProductRequest.getDrugLevelLists())) {
for (UpdateLevelDrugRequest updateLevelDrugRequest : addProductRequest.getDrugLevelLists()) {
UdiProductEntity udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());
@ -381,78 +420,54 @@ public class UdiProductService extends ServiceImpl<UdiProductDao, UdiProductEnti
public void updateLevelCount(UdiRelevanceEntity udiRelevanceEntity) {
List<UdiProductEntity> udiProductEntities = udiProductDao.findByUuids(udiRelevanceEntity.getUuid());
Integer curLevel = udiRelevanceEntity.getDistributeLevel();
List<DiLevelResponse> 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()));
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 {
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getMyBhxjsl()) * IntUtil.value(nextLevelProduct1.getMyBhxjsl()));
}
} 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<UdiProductEntity> udiProductEntities) {
public List<UdiProductEntity> getNextLevelProduct(UdiProductEntity curProductEntity, List<UdiProductEntity> udiProductEntities) {
List<UdiProductEntity> 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;
}
@ -466,48 +481,29 @@ public class UdiProductService extends ServiceImpl<UdiProductDao, UdiProductEnti
UdiProductEntity byUuids = udiProductDao.findById(updateLevelDrugRequest.getProductId() + "");
UdiProductEntity udiProductEntity1 = null;
if (updateLevelDrugRequest.getProductId() != null) {
udiProductEntity1 = byUuids;
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit());
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
udiProductDao.updateById(udiProductEntity1);
return;
}
} else {
udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());
//有药品数据 但是nameCode如果为空的话 院内新增的 更改nameCode
}
if (udiProductEntity1 != null) {
//更新
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit());
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
updateUdiProductEntity(udiProductEntity1, updateLevelDrugRequest);
udiProductDao.updateById(udiProductEntity1);
} else {
//新增
udiProductEntity1 = udiProductDao.findByUuid(udiRelevanceEntity.getUuid());
udiProductEntity1.setNameCode(updateLevelDrugRequest.getNameCode());
udiProductEntity1.setPackLevel(updateLevelDrugRequest.getPackLevel() + "");
udiProductEntity1.setPackUnit(updateLevelDrugRequest.getPackUnit());
udiProductEntity1.setSjcpbm(updateLevelDrugRequest.getSjcpbm());
udiProductEntity1.setBhxjcpbm(updateLevelDrugRequest.getBhxjcpbm());
udiProductEntity1.setBhxjsl(updateLevelDrugRequest.getMyBhxjsl());
udiProductEntity1 = new UdiProductEntity();
udiProductEntity1.setUuid(udiRelevanceEntity.getUuid());
udiProductEntity1.setId(IdUtil.getSnowflakeNextId());
updateUdiProductEntity(udiProductEntity1, updateLevelDrugRequest);
udiProductDao.insert(udiProductEntity1);
}
if (IntUtil.value(udiProductEntity1.getPackLevel()) == 1) {
calculateDistCount(udiProductEntity1, udiRelevanceEntity);
calculateUseCount(udiProductEntity1, udiRelevanceEntity);
}
updateLevelCount(udiRelevanceEntity);
// if (IntUtil.value(udiProductEntity1.getPackLevel()) == 1) {
// calculateDistCount(udiProductEntity1, udiRelevanceEntity);
// calculateUseCount(udiProductEntity1, udiRelevanceEntity);
// }
} else {
//必须先提交后才能保存
UdiProductEntity udiProductEntity1 = udiProductDao.findByNameCode(updateLevelDrugRequest.getNameCode());
if (udiProductEntity1 != null) {
throw new JsonException(500, "层级编码已存在!");
@ -515,6 +511,17 @@ public class UdiProductService extends ServiceImpl<UdiProductDao, UdiProductEnti
}
}
private void updateUdiProductEntity(UdiProductEntity entity, UpdateLevelDrugRequest request) {
entity.setNameCode(request.getNameCode());
entity.setPackLevel(String.valueOf(request.getPackLevel()));
entity.setPackUnit(request.getPackUnit());
entity.setSjcpbm(request.getSjcpbm());
entity.setBhxjcpbm(request.getBhxjcpbm());
entity.setBhxjsl(request.getMyBhxjsl());
entity.setDiType(request.getDiType());
entity.setXjdw(request.getXjdw());
}
/**
*
*/
@ -522,8 +529,8 @@ public class UdiProductService extends ServiceImpl<UdiProductDao, UdiProductEnti
List<UdiProductEntity> 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<UdiProductDao, UdiProductEnti
List<UdiProductEntity> 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<UdiProductEntity> udiProductEntities, CountWrapper xjCountWrapper) {

@ -400,14 +400,14 @@ public class UdiRelevanceService extends ServiceImpl<UdiRelevanceDao, UdiRelevan
public UdiRelevanceEntity insertDefaultLevel(UdiRelevanceEntity udiRelevanceEntity, UdiProductEntity udiProductEntity) {
if (udiProductEntity != null) {
udiRelevanceEntity.setDistributeLevel(IntUtil.value(udiProductEntity.getPackLevel()));
udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getNameCode());
udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getPackUnit());
udiRelevanceEntity.setDistributeLevelCount(IntUtil.value(udiProductEntity.getBhxjsl()));
// udiRelevanceEntity.setDistributeLevelDi(udiProductEntity.getNameCode());
// udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getPackUnit());
// udiRelevanceEntity.setDistributeLevelCount(IntUtil.value(udiProductEntity.getBhxjsl()));
udiRelevanceEntity.setUseLevel(IntUtil.value(udiProductEntity.getPackLevel()));
udiRelevanceEntity.setUseLevelDi(udiProductEntity.getNameCode());
udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getPackUnit());
udiRelevanceEntity.setUseLeverCount(IntUtil.value(udiProductEntity.getBhxjsl()));
// udiRelevanceEntity.setUseLevelDi(udiProductEntity.getNameCode());
// udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getPackUnit());
// udiRelevanceEntity.setUseLeverCount(IntUtil.value(udiProductEntity.getBhxjsl()));
}
return udiRelevanceEntity;

@ -13,7 +13,9 @@ import com.glxp.api.entity.inout.IoSplitCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
import com.glxp.api.entity.inout.IoSplitFifoInv;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.inout.IoSplitCodeRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.collect.*;
import com.glxp.api.service.thrsys.SysWorkplacePutRelService;
@ -208,8 +210,12 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
} else {
//队列码数量大于扫码数量更新数量(一般指无序列号)
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderCodeMan.getRelId());
int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceEntity.getUseLeverCount();
// UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(collectOrderCodeMan.getRelId());
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setId(collectOrderCodeMan.getRelId());
filterUdiRelRequest.setPackLevel("1");
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest);
int removeCount = IntUtil.value(collectOrderCodeMan.getScanCount()) * udiRelevanceResponse.getBhxjsl();
splitFifoCodeService.updateById(IoSplitFifoCodeEntity.builder()
.id(splitFifoCodeEntity.getId())
.scanCount(IntUtil.value(splitFifoCodeEntity.getScanCount()) - IntUtil.value(collectOrderCodeMan.getScanCount()))
@ -231,7 +237,11 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
}
List<Integer> 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<IoSplitCodeMapper, IoSplitCo
collectOrderBiz.setTagStatus(3);
//手动扫码时涉及到拆零时,把拆零剩余数量插入至拆零表里
if (unTagCount < 0) {
if (IntUtil.value(udiRelevanceEntity.getUseLeverCount()) > -unTagCount) {
if (IntUtil.value(udiRelevanceResponse.getBhxjsl()) > -unTagCount) {
Optional<IoCollectOrderCodeMan> firstMatch = collectOrderCodeMEN.stream()
.filter(item ->
@ -273,8 +283,8 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
continue;
}
int quotient = collectOrderBiz.getUnTagCount() / IntUtil.value(udiRelevanceEntity.getUseLeverCount());
int remainder = collectOrderBiz.getUnTagCount() % IntUtil.value(udiRelevanceEntity.getUseLeverCount());
int quotient = collectOrderBiz.getUnTagCount() / IntUtil.value(udiRelevanceResponse.getBhxjsl());
int remainder = collectOrderBiz.getUnTagCount() % IntUtil.value(udiRelevanceResponse.getBhxjsl());
//2.如果整盒,从工位队列扣除
if (quotient > 0) {
List<IoSplitFifoCodeEntity> ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo());
@ -285,7 +295,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
for (int i = 0; i < quotient; i++) {
IoSplitFifoCodeEntity splitFifoCodeEntity = ioSplitFifoCodeEntities.get(i);
removeIds.add(splitFifoCodeEntity.getId());
collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceEntity.getUseLeverCount()));
collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl()));
collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder()
.codeIdFk(splitFifoCodeEntity.getId())
.udiCode(splitFifoCodeEntity.getCode())

@ -4,9 +4,9 @@ server:
spring:
datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
jdbc-url: jdbc:p6spy:mysql://dm.xmglxp.com:33066/udi_wms_yxfy?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_ywj?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: Glxp@6066
password: 123456
hikari:
connection-timeout: 60000
maximum-pool-size: 20

@ -58,6 +58,8 @@
basic_products.basicPrductRemak6,
basic_products.basicPrductRemak7,
basic_products.basicPrductRemak8,
basic_products.bhltcjsl, basic_products.bhsycjsl,
basic_products.xjdw, basic_products.levelUnit,
basic_corp.name as companyName
FROM basic_udirel
inner JOIN basic_products ON basic_products.uuid = basic_udirel.uuid
@ -1297,9 +1299,9 @@
updateUser,
remark, useExpireTime, `dispatch`,
groupBuy, needCert, isStack, distributeLevelDi,
distributeLevelUnit,distributeLevelCount,useLevelDi,useLevelUnit,useLeverCount,useLevel,distributeLevel,splitEnable,autoCode)
values (
#{id},
distributeLevelUnit, distributeLevelCount, useLevelDi, useLevelUnit, useLeverCount, useLevel, distributeLevel,
splitEnable, autoCode,distributeMaxLevel,useMaxLevel)
values (#{id},
#{uuid},
#{mainId},
#{thirdId},
@ -1340,8 +1342,7 @@
#{useLevel},
#{distributeLevel},
#{splitEnable},
#{autoCode}
)
#{autoCode},#{distributeMaxLevel},#{useMaxLevel})
</insert>
<insert id="insertUdiRelevanceignore"
@ -1356,8 +1357,7 @@
createUser,
updateUser,
remark, useExpireTime, dispatch, groupBuy, needCert, isStack)
values (
#{id},
values (#{id},
#{uuid},
#{mainId},
#{thirdId},
@ -1387,8 +1387,7 @@
#{dispatch},
#{groupBuy},
#{needCert},
#{isStack}
)
#{isStack})
</insert>
<delete id="deleteById" parameterType="Map">
@ -1549,6 +1548,12 @@
<if test="useLevel != null">
useLevel=#{useLevel},
</if>
<if test="distributeMaxLevel != null">
distributeMaxLevel=#{distributeMaxLevel},
</if>
<if test="useMaxLevel != null">
useMaxLevel=#{useMaxLevel},
</if>
<if test="distributeLevel != null">
distributeLevel=#{distributeLevel},
</if>
@ -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
@ -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 @@
<if test="id != '' and id != null">
AND basic_udirel.id = #{id}
</if>
<if test="packLevel != '' and packLevel null">
AND basic_products.packLevel = #{packLevel}
</if>
</where>
limit 1
</select>

@ -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外键',

Loading…
Cancel
Save