数据初始化计算计量单元数量

workplace
yewj 11 months ago
parent 4f5b4282e1
commit f79c6de737

@ -314,4 +314,16 @@ public class UdiProductEntity {
@TableField(value = "majorStatus") @TableField(value = "majorStatus")
private Integer majorStatus; private Integer majorStatus;
/**
* 使
*/
@TableField(value = "bhltcjsl")
private Integer bhltcjsl;
/**
* 使
*/
@TableField(value = "bhsycjsl")
private Integer bhsycjsl;
} }

@ -225,6 +225,13 @@ public class UdiRelevanceEntity {
@TableField(value = "distributeLevelCount") @TableField(value = "distributeLevelCount")
private Integer distributeLevelCount; private Integer distributeLevelCount;
/**
*
*/
@TableField(value = "distributeLevel")
private Integer distributeLevel;
/** /**
* 使 * 使
*/ */
@ -244,6 +251,13 @@ public class UdiRelevanceEntity {
private Integer useLeverCount; private Integer useLeverCount;
/**
* 使
*/
@TableField(value = "useLevel")
private Integer useLevel;
/** /**
* *
*/ */

@ -278,6 +278,7 @@ public class AddProductRequest {
*/ */
private String payFeeCode; private String payFeeCode;
private String packUnit; private String packUnit;
private Integer useLevel;
private Integer distributeLevel;
} }

@ -267,19 +267,21 @@ public class UdiProductService {
udiProductEntity.setDiType(1); udiProductEntity.setDiType(1);
} }
udiProductDao.updateUdiInfo(udiProductEntity); udiProductDao.updateUdiInfo(udiProductEntity);
}
//修改关联表 //修改关联表
udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount()); udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount());
udiRelevanceEntity.setSplitEnable(addProductRequest.getSplitEnable()); udiRelevanceEntity.setSplitEnable(addProductRequest.getSplitEnable());
udiRelevanceEntity.setUseLevelDi(addProductRequest.getUseLevelDi()); udiRelevanceEntity.setUseLevelDi(addProductRequest.getUseLevelDi());
udiRelevanceEntity.setUseLevelUnit(addProductRequest.getUseLevelUnit()); udiRelevanceEntity.setUseLevelUnit(addProductRequest.getUseLevelUnit());
udiRelevanceEntity.setUseLevel(addProductRequest.getUseLevel());
udiRelevanceEntity.setDistributeLevelDi(addProductRequest.getDistributeLevelDi()); udiRelevanceEntity.setDistributeLevelDi(addProductRequest.getDistributeLevelDi());
udiRelevanceEntity.setDistributeLevelUnit(addProductRequest.getDistributeLevelUnit()); udiRelevanceEntity.setDistributeLevelUnit(addProductRequest.getDistributeLevelUnit());
udiRelevanceEntity.setDistributeLevelCount(addProductRequest.getDistributeLevelCount()); udiRelevanceEntity.setDistributeLevelCount(addProductRequest.getDistributeLevelCount());
udiRelevanceEntity.setDistributeLevel(addProductRequest.getDistributeLevel());
udiRelevanceEntity.setPayFeeCode(addProductRequest.getPayFeeCode()); udiRelevanceEntity.setPayFeeCode(addProductRequest.getPayFeeCode());
udiRelevanceDao.updateById(udiRelevanceEntity); udiRelevanceDao.updateById(udiRelevanceEntity);
updateLevelCount(udiRelevanceEntity);
}
} else { } else {
udiRelevanceEntity = new UdiRelevanceEntity(); udiRelevanceEntity = new UdiRelevanceEntity();
udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId()); udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId());
@ -312,6 +314,12 @@ public class UdiProductService {
if (addProductRequest.getUseLeverCount() != null) { if (addProductRequest.getUseLeverCount() != null) {
udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount()); udiRelevanceEntity.setUseLeverCount(addProductRequest.getUseLeverCount());
} }
if (addProductRequest.getDistributeLevel() != null) {
udiRelevanceEntity.setDistributeLevel(addProductRequest.getDistributeLevel());
}
if (addProductRequest.getUseLevel() != null) {
udiRelevanceEntity.setUseLevel(addProductRequest.getUseLevel());
}
if (CollUtil.isNotEmpty(addProductRequest.getDrugLevelLists())) { if (CollUtil.isNotEmpty(addProductRequest.getDrugLevelLists())) {
for (UpdateLevelDrugRequest updateLevelDrugRequest : addProductRequest.getDrugLevelLists()) { for (UpdateLevelDrugRequest updateLevelDrugRequest : addProductRequest.getDrugLevelLists()) {
@ -349,10 +357,94 @@ public class UdiProductService {
} }
udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity); udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity);
updateLevelCount(udiRelevanceEntity);
} }
return addProductRequest; return addProductRequest;
} }
/**
*
*
* @param udiRelevanceEntity
*/
public void updateLevelCount(UdiRelevanceEntity udiRelevanceEntity) {
List<UdiProductEntity> udiProductEntities = udiProductDao.findByUuids(udiRelevanceEntity.getUuid());
Integer curLevel = udiRelevanceEntity.getDistributeLevelCount();
//更新各个层级流通时包含计量单元数量
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.getBhxjsl()) * IntUtil.value(nextLevelProduct1.getBhxjsl()) * IntUtil.value(nextLevelProduct2.getBhxjsl()) * IntUtil.value(udiRelevanceEntity.getDistributeLevelCount()));
} else {
udiProductEntity.setBhltcjsl(IntUtil.value(udiProductEntity.getBhxjsl()) * IntUtil.value(nextLevelProduct1.getBhxjsl()) * IntUtil.value(nextLevelProduct2.getBhxjsl()) * IntUtil.value(udiRelevanceEntity.getDistributeLevelCount()));
}
} else {
udiProductEntity.setBhltcjsl(IntUtil.value(udiProductEntity.getBhxjsl()) * IntUtil.value(nextLevelProduct1.getBhxjsl()) * IntUtil.value(udiRelevanceEntity.getDistributeLevelCount()));
}
} else {
if (nextLevelProduct1 != null && IntUtil.value(nextLevelProduct1.getPackLevel()) == IntUtil.value(curLevel)) {
udiProductEntity.setBhltcjsl(IntUtil.value(udiProductEntity.getBhxjsl()) * IntUtil.value(udiRelevanceEntity.getDistributeLevelCount()));
}
}
} else {
if (udiProductEntity != null && IntUtil.value(udiProductEntity.getPackLevel()) == IntUtil.value(curLevel)) {
udiProductEntity.setBhltcjsl(IntUtil.value(udiRelevanceEntity.getDistributeLevelCount()));
}
}
}
}
//更新各个层级使用时包含计量单元数量
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.getBhxjsl()) * IntUtil.value(nextLevelProduct1.getBhxjsl()) * IntUtil.value(nextLevelProduct2.getBhxjsl()) * IntUtil.value(udiRelevanceEntity.getUseLeverCount()));
} else {
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getBhxjsl()) * IntUtil.value(nextLevelProduct1.getBhxjsl()) * IntUtil.value(nextLevelProduct2.getBhxjsl()) * IntUtil.value(udiRelevanceEntity.getUseLeverCount()));
}
} else {
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getBhxjsl()) * IntUtil.value(nextLevelProduct1.getBhxjsl()) * IntUtil.value(udiRelevanceEntity.getUseLeverCount()));
}
} else {
if (nextLevelProduct1 != null && IntUtil.value(nextLevelProduct1.getPackLevel()) == IntUtil.value(curLevel)) {
udiProductEntity.setBhsycjsl(IntUtil.value(udiProductEntity.getBhxjsl()) * IntUtil.value(udiRelevanceEntity.getUseLeverCount()));
}
}
} else {
if (udiProductEntity != null && IntUtil.value(udiProductEntity.getPackLevel()) == IntUtil.value(curLevel)) {
udiProductEntity.setBhsycjsl(IntUtil.value(udiRelevanceEntity.getUseLeverCount()));
}
}
}
}
udiProductDao.updateBatchById(udiProductEntities);
}
public UdiProductEntity getNextLevelProduct(UdiProductEntity curProductEntity, List<UdiProductEntity> udiProductEntities) {
for (UdiProductEntity udiProductEntity : udiProductEntities) {
if (StrUtil.emptyIfNull(curProductEntity.getBhxjcpbm()).equals(udiProductEntity.getNameCode())) {
return udiProductEntity;
}
}
return null;
}
/** /**
* *
*/ */
@ -419,7 +511,7 @@ public class UdiProductService {
public UdiProductEntity findUltimateEntity(UdiProductEntity udiProductEntity, List<UdiProductEntity> udiProductEntities, CountWrapper xjCountWrapper) { public UdiProductEntity findUltimateEntity(UdiProductEntity udiProductEntity, List<UdiProductEntity> udiProductEntities, CountWrapper xjCountWrapper) {
if (StrUtil.isEmpty(udiProductEntity.getBhxjcpbm())) { if (StrUtil.isEmpty(udiProductEntity.getBhxjcpbm())) {
xjCountWrapper.addCount(udiProductEntity.getBhxjsl()); xjCountWrapper.addCount(IntUtil.value(udiProductEntity.getBhxjsl()));
return udiProductEntity; return udiProductEntity;
} }
@ -427,7 +519,7 @@ public class UdiProductService {
.filter(item -> item.getNameCode().equals(udiProductEntity.getBhxjcpbm())) .filter(item -> item.getNameCode().equals(udiProductEntity.getBhxjcpbm()))
.findFirst(); .findFirst();
nextEntityOptional.ifPresent(entity -> xjCountWrapper.addCount(udiProductEntity.getBhxjsl())); nextEntityOptional.ifPresent(entity -> xjCountWrapper.addCount(IntUtil.value(udiProductEntity.getBhxjsl())));
return nextEntityOptional return nextEntityOptional
.map(entity -> findUltimateEntity(entity, udiProductEntities, xjCountWrapper)) .map(entity -> findUltimateEntity(entity, udiProductEntities, xjCountWrapper))

@ -103,9 +103,23 @@ public class UdiCalCountUtil {
return getSplitActCount(udiRelevanceService.selectGroupById(relId)); return getSplitActCount(udiRelevanceService.selectGroupById(relId));
} }
// public int getSplitLtCount(){ /**
// *
// } *
* @return
*/
public int getCirActCount() {
return 0;
}
/**
* 使
*
* @return
*/
public int getUseActCount() {
return 0;
}
public int getActCount(IoCodeTempEntity codeTempEntity) { public int getActCount(IoCodeTempEntity codeTempEntity) {

@ -4216,3 +4216,17 @@ CALL Pro_Temp_ColumnWork('basic_collect_bustype', 'sortNumber',
CALL Pro_Temp_ColumnWork('sys_workplace', 'invRemindNumber', CALL Pro_Temp_ColumnWork('sys_workplace', 'invRemindNumber',
'int NULL DEFAULT b''0'' COMMENT ''存量提醒数''', 'int NULL DEFAULT b''0'' COMMENT ''存量提醒数''',
1); 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'useLevel',
'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);
CALL Pro_Temp_ColumnWork('basic_products', 'bhsycjsl',
'int NULL DEFAULT NULL COMMENT ''当前层级包含使用层级数量''',
1);
Loading…
Cancel
Save