包装层级数量修改

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());

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

@ -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()));
}
} 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<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;
}
@ -464,50 +479,31 @@ public class UdiProductService extends ServiceImpl<UdiProductDao, UdiProductEnti
if (updateLevelDrugRequest.getRelId() != null) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectById(updateLevelDrugRequest.getRelId());
UdiProductEntity byUuids = udiProductDao.findById(updateLevelDrugRequest.getProductId()+ "");
UdiProductEntity byUuids = udiProductDao.findById(updateLevelDrugRequest.getProductId() + "");
UdiProductEntity udiProductEntity1 = null;
if (updateLevelDrugRequest.getProductId() != 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());
}
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
@ -1288,18 +1290,18 @@
<insert id="insertUdiRelevance" keyProperty="id" parameterType="com.glxp.api.entity.basic.UdiRelevanceEntity">
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>
<insert id="insertUdiRelevanceignore"
parameterType="com.glxp.api.entity.basic.UdiRelevanceEntity">
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})
</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
@ -1699,7 +1704,7 @@
<select id="selectProductNameByRelId" resultType="java.lang.String">
select basic_products.cpmctymc
from basic_udirel
left join basic_products on basic_udirel.uuid = basic_products.uuid
left join basic_products on basic_udirel.uuid = basic_products.uuid
where basic_udirel.id = #{relId}
</select>
@ -1728,7 +1733,7 @@
<select id="selectRelIdByNameCode" resultType="java.lang.String">
select basic_udirel.id
from basic_udirel
inner join basic_products on basic_udirel.uuid = basic_products.uuid
inner join basic_products on basic_udirel.uuid = basic_products.uuid
where basic_products.nameCode = #{nameCode}
</select>
@ -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>
@ -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}
</select>
</mapper>

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