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