代码备份

dev_2.5_inv
yewj 3 months ago
parent da6eb90bdb
commit 7415b0c02d

@ -282,8 +282,7 @@ public class IoCodeTempController extends BaseController {
} }
} }
} }
BaseResponse response = ResultVOUtils.error(501, com.glxp.api.util.StringUtils.isNotEmpty(baseResponse.getMessage()) ? BaseResponse response = ResultVOUtils.error(501, com.glxp.api.util.StringUtils.isNotEmpty(baseResponse.getMessage()) ? "单据存在未对照产品: " + baseResponse.getMessage() : "未找到匹配单据");
"单据存在未对照产品: " + baseResponse.getMessage() : "未找到匹配单据");
response.setData(code); response.setData(code);
return response; return response;
} else { } else {
@ -311,8 +310,7 @@ public class IoCodeTempController extends BaseController {
} }
String code = ""; String code = "";
String originCode = addEnterCodeRequest.getOriginCode(); String originCode = addEnterCodeRequest.getOriginCode();
if (originCode == null) if (originCode == null) originCode = "";
originCode = "";
if (addEnterCodeRequest.getCode().contains(originCode)) { if (addEnterCodeRequest.getCode().contains(originCode)) {
addEnterCodeRequest.setCode(addEnterCodeRequest.getCode().replace(originCode, "")); addEnterCodeRequest.setCode(addEnterCodeRequest.getCode().replace(originCode, ""));
} }
@ -370,8 +368,7 @@ public class IoCodeTempController extends BaseController {
@PostMapping("warehouse/inout/batchVailCode") @PostMapping("warehouse/inout/batchVailCode")
public BaseResponse batchVailCode(@RequestBody AddEnterCodeRequest addEnterCodeRequest) { public BaseResponse batchVailCode(@RequestBody AddEnterCodeRequest addEnterCodeRequest) {
List<String> codeList = addEnterCodeRequest.getCodeList(); List<String> codeList = addEnterCodeRequest.getCodeList();
if (CollUtil.isEmpty(codeList)) if (CollUtil.isEmpty(codeList)) return ResultVOUtils.error(500, "追溯码不能为空");
return ResultVOUtils.error(500, "追溯码不能为空");
codeList = codeList.stream().distinct().collect(Collectors.toList()); codeList = codeList.stream().distinct().collect(Collectors.toList());
List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>(); List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>();
List<String> prefixes = Arrays.asList("01", "11", "17", "10", "21"); List<String> prefixes = Arrays.asList("01", "11", "17", "10", "21");
@ -470,6 +467,14 @@ public class IoCodeTempController extends BaseController {
addOrderCodeRequest.setCodeList(codeList); addOrderCodeRequest.setCodeList(codeList);
} }
if (CollUtil.isNotEmpty(codeList)) {
String firstCode = codeList.get(0);
UdiEntity udiEntity = FilterUdiUtils.getUdi(firstCode);
if (IntUtil.value(udiEntity.getProductType()) == 2) {
addOrderCodeRequest.setProductType(2);
}
}
// 获取第一个码判断类型,如果是药品类型则使用批量处理方法 // 获取第一个码判断类型,如果是药品类型则使用批量处理方法
if (!codeList.isEmpty() && IntUtil.value(addOrderCodeRequest.getProductType()) == 2) { if (!codeList.isEmpty() && IntUtil.value(addOrderCodeRequest.getProductType()) == 2) {
String firstCode = codeList.get(0); String firstCode = codeList.get(0);
@ -518,25 +523,13 @@ public class IoCodeTempController extends BaseController {
addOrderRequest.setAction(ConstantType.SPLIT_OUT); addOrderRequest.setAction(ConstantType.SPLIT_OUT);
} }
addOrderRequest.setFromCorp(ConstantType.SPLIT_CORP); addOrderRequest.setFromCorp(ConstantType.SPLIT_CORP);
BaseResponse baseResponse = null; BaseResponse baseResponse = null;
addOrderRequest.setCode(code); addOrderRequest.setCode(code);
IoOrderEntity ioOrderEntity = orderService.findCorpOrderId(addOrderCodeRequest.getCorpOrderId()); IoOrderEntity ioOrderEntity = orderService.findCorpOrderId(addOrderCodeRequest.getCorpOrderId());
if (ioOrderEntity != null) { if (ioOrderEntity != null) {
addOrderRequest.setBillNo(ioOrderEntity.getBillNo()); addOrderRequest.setBillNo(ioOrderEntity.getBillNo());
} }
if (IntUtil.value(udiEntity.getProductType()) == 2) { baseResponse = addMaterOrder(addOrderRequest, udiEntity, code, groupNumber);
try {
baseResponse = addDrugOrder(addOrderRequest, udiEntity, code, groupNumber);
} catch (JsonException e) {
if (e.getCode() == 507) {
baseResponse = ResultVOUtils.error(e.getCode(), e.getMessage());
}
}
} else {
baseResponse = addMaterOrder(addOrderRequest, udiEntity, code, groupNumber);
}
if (baseResponse.getCode() == 20000) { if (baseResponse.getCode() == 20000) {
vailCodeResultResponse.setCode(code); vailCodeResultResponse.setCode(code);
vailCodeResultResponse.setStatus(1); vailCodeResultResponse.setStatus(1);
@ -561,7 +554,7 @@ public class IoCodeTempController extends BaseController {
@RepeatSubmit() @RepeatSubmit()
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@PostMapping("warehouse/inout/addOrderWeb") @PostMapping("warehouse/inout/addOrderWeb")
// @CusRedissonAnnotation(cacheName = RedissonCacheKey.WEB_ADD_CODE, key = {"#addOrderRequest.corpOrderId", "#addOrderRequest.code"}, timeOutMsg = "系统正在处理,请勿重复扫码") @CusRedissonAnnotation(cacheName = RedissonCacheKey.WEB_ADD_CODE, key = {"#addOrderRequest.corpOrderId", "#addOrderRequest.code"}, timeOutMsg = "系统正在处理,请勿重复扫码")
@Log(title = "单据管理", businessType = BusinessType.INSERT) @Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse addOrderWeb(@RequestBody AddOrderRequest addOrderRequest, BindingResult bindingResult) { public BaseResponse addOrderWeb(@RequestBody AddOrderRequest addOrderRequest, BindingResult bindingResult) {
@ -575,8 +568,7 @@ public class IoCodeTempController extends BaseController {
code = code.replace("\u001D", ""); code = code.replace("\u001D", "");
} }
UdiEntity udiEntity = FilterUdiUtils.getUdi(code); UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null) if (udiEntity == null) return ResultVOUtils.error(500, "无效条码!");
return ResultVOUtils.error(500, "无效条码!");
if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) { if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) {
udiEntity.setBatchNo(addOrderRequest.getBatchNo()); udiEntity.setBatchNo(addOrderRequest.getBatchNo());
@ -596,10 +588,14 @@ public class IoCodeTempController extends BaseController {
} }
//TODO 退货校验是否有库存 提示产品不存在 //TODO 退货校验是否有库存 提示产品不存在
if (StrUtil.equals("return", addOrderRequest.getSplitType())) { if (StrUtil.equals("return", addOrderRequest.getSplitType())) {
//ioSplitFifoInvService.getOne(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getInvCode,"").last("limit 1"));
} }
Integer groupNumber = getMaxGroupNumber() == null ? 1 : getMaxGroupNumber() + 1; Integer groupNumber = getMaxGroupNumber() == null ? 1 : getMaxGroupNumber() + 1;
if (IntUtil.value(udiEntity.getProductType()) == 2) { if (IntUtil.value(udiEntity.getProductType()) == 2) {
// UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getCode());
// InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(ioOrderEntity.getInvCode());
// BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(ioOrderEntity.getAction());
// return addCoodeService.addDrugOrder(addOrderRequest, udiEntity, code, groupNumber, bussinessTypeEntity, udiRelevanceResponse, getUser(), invWarehouseEntity);
return addDrugOrder(addOrderRequest, udiEntity, code, groupNumber); return addDrugOrder(addOrderRequest, udiEntity, code, groupNumber);
} else { } else {
return addMaterOrder(addOrderRequest, udiEntity, code, groupNumber); return addMaterOrder(addOrderRequest, udiEntity, code, groupNumber);
@ -712,8 +708,7 @@ public class IoCodeTempController extends BaseController {
if (ioCodeEnttity == null) { if (ioCodeEnttity == null) {
return checkOriginCodeRes; return checkOriginCodeRes;
} }
} else } else return checkOriginCodeRes;
return checkOriginCodeRes;
} else { } else {
udiEntity.setBatchNo(codeLostEntity.getBatchNo()); udiEntity.setBatchNo(codeLostEntity.getBatchNo());
udiEntity.setExpireDate(codeLostEntity.getExpireDate()); udiEntity.setExpireDate(codeLostEntity.getExpireDate());
@ -725,8 +720,7 @@ public class IoCodeTempController extends BaseController {
if (ioCodeEnttity == null) { if (ioCodeEnttity == null) {
return checkOriginCodeRes; return checkOriginCodeRes;
} }
} else } else return checkOriginCodeRes;
return checkOriginCodeRes;
} }
} else { } else {
BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity); BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity);
@ -737,10 +731,8 @@ public class IoCodeTempController extends BaseController {
udiEntity.setExpireDate(codeLostEntity.getExpireDate()); udiEntity.setExpireDate(codeLostEntity.getExpireDate());
udiEntity.setProduceDate(codeLostEntity.getProduceDate()); udiEntity.setProduceDate(codeLostEntity.getProduceDate());
checkOriginCodeRes = checkOriginCode(udiEntity); checkOriginCodeRes = checkOriginCode(udiEntity);
if (checkOriginCodeRes != null) if (checkOriginCodeRes != null) return checkOriginCodeRes;
return checkOriginCodeRes; } else return checkOriginCodeRes;
} else
return checkOriginCodeRes;
} }
} }
@ -999,14 +991,12 @@ public class IoCodeTempController extends BaseController {
String errMsg = ioCheckInoutService.checkCode(genDetaiEntity); String errMsg = ioCheckInoutService.checkCode(genDetaiEntity);
if (errMsg != null) { if (errMsg != null) {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);
} else } else codeTempService.updateById(exitLocalEntity);
codeTempService.updateById(exitLocalEntity);
} else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) {
String errMsg = ioCheckInoutService.checkNoPiCode(genDetaiEntity); String errMsg = ioCheckInoutService.checkNoPiCode(genDetaiEntity);
if (errMsg != null) { if (errMsg != null) {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);
} else } else codeTempService.updateById(exitLocalEntity);
codeTempService.updateById(exitLocalEntity);
} else { } else {
boolean update = true; boolean update = true;
String priceFifo = systemParamConfigService.selectValueByParamKey("price_fifo"); String priceFifo = systemParamConfigService.selectValueByParamKey("price_fifo");
@ -1119,10 +1109,8 @@ public class IoCodeTempController extends BaseController {
} }
} }
} else if (udiRelevanceResponses.size() == 0) { } else if (udiRelevanceResponses.size() == 0) {
if (unitFk == null) if (unitFk == null) return ResultVOUtils.error(500, "耗材字典不存在此产品!");
return ResultVOUtils.error(500, "耗材字典不存在此产品!"); else return ResultVOUtils.error(500, "当前供应商不存在此配送产品!");
else
return ResultVOUtils.error(500, "当前供应商不存在此配送产品!");
} }
//校验供应商是否配送此产品 //校验供应商是否配送此产品
@ -1184,8 +1172,7 @@ public class IoCodeTempController extends BaseController {
genDetaiEntity = codeEnttity; genDetaiEntity = codeEnttity;
if (baseResponse == null) { if (baseResponse == null) {
baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk); baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk);
if (baseResponse != null) if (baseResponse != null) return baseResponse;
return baseResponse;
} else { } else {
if (baseResponse.getCode() == 501) { if (baseResponse.getCode() == 501) {
return baseResponse; return baseResponse;
@ -1245,8 +1232,7 @@ public class IoCodeTempController extends BaseController {
//预出库退货校验队列库存 //预出库退货校验队列库存
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) { if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)) {
IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEnttity.getCode(), orderEntity.getWorkPlaceCode()); IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEnttity.getCode(), orderEntity.getWorkPlaceCode());
if (ioSplitFifoCodeEntity == null) if (ioSplitFifoCodeEntity == null) return ResultVOUtils.error(500, "当前工位库存库存不足");
return ResultVOUtils.error(500, "当前工位库存库存不足");
if (ioSplitFifoCodeEntity.getScanCount() < codeEnttity.getCount()) { if (ioSplitFifoCodeEntity.getScanCount() < codeEnttity.getCount()) {
return ResultVOUtils.error(500, "当前工位库存库存不足"); return ResultVOUtils.error(500, "当前工位库存库存不足");
@ -1260,14 +1246,12 @@ public class IoCodeTempController extends BaseController {
String errMsg = ioCheckInoutService.checkCode(codeEnttity); String errMsg = ioCheckInoutService.checkCode(codeEnttity);
if (errMsg != null) { if (errMsg != null) {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);
} else } else codeTempService.insert(codeEnttity);
codeTempService.insert(codeEnttity);
} else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) {
String errMsg = ioCheckInoutService.checkNoPiCode(codeEnttity); String errMsg = ioCheckInoutService.checkNoPiCode(codeEnttity);
if (errMsg != null) { if (errMsg != null) {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);
} else } else codeTempService.insert(codeEnttity);
codeTempService.insert(codeEnttity);
} else { } else {
checkPrice(codeEnttity, bussinessTypeEntity, inBatch, codeEnttitys); checkPrice(codeEnttity, bussinessTypeEntity, inBatch, codeEnttitys);
codeTempService.insert(codeEnttity); codeTempService.insert(codeEnttity);
@ -1637,7 +1621,7 @@ public class IoCodeTempController extends BaseController {
SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper<SysWorkplaceQueue>() SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper<SysWorkplaceQueue>()
.eq(SysWorkplaceQueue::getCode, orderEntity.getWorkPlaceQueueCode())); .eq(SysWorkplaceQueue::getCode, orderEntity.getWorkPlaceQueueCode()).last("limit 1"));
if (sysWorkplaceQueue.getRelId() == null) { if (sysWorkplaceQueue.getRelId() == null) {
//虚拟槽位这个时候就要设置 //虚拟槽位这个时候就要设置
if (sysWorkplace.getQueueStatus() == 0) { if (sysWorkplace.getQueueStatus() == 0) {
@ -1787,8 +1771,7 @@ public class IoCodeTempController extends BaseController {
long recentTime = Math.abs(recent * 24 * 60 * 60 * 1000); long recentTime = Math.abs(recent * 24 * 60 * 60 * 1000);
long resultTime = expireTime - System.currentTimeMillis(); long resultTime = expireTime - System.currentTimeMillis();
if (resultTime > 0 && resultTime < recentTime) { if (resultTime > 0 && resultTime < recentTime) {
long time = udiRelevanceResponse.getIsDateBy() == 2 long time = udiRelevanceResponse.getIsDateBy() == 2 ? resultTime / (60 * 60 * 1000) // 单位:小时
? resultTime / (60 * 60 * 1000) // 单位:小时
: resultTime / (24 * 60 * 60 * 1000); // 单位:天 : resultTime / (24 * 60 * 60 * 1000); // 单位:天
String unit = udiRelevanceResponse.getIsDateBy() == 2 ? "时" : "天"; String unit = udiRelevanceResponse.getIsDateBy() == 2 ? "时" : "天";
return ResultVOUtils.error(505, "当前产品临近过期,距过期还剩" + time + unit + ",是否确定继续添加?"); return ResultVOUtils.error(505, "当前产品临近过期,距过期还剩" + time + unit + ",是否确定继续添加?");
@ -1888,8 +1871,7 @@ public class IoCodeTempController extends BaseController {
code = code.replace("\u001D", ""); code = code.replace("\u001D", "");
} }
UdiEntity udiEntity = FilterUdiUtils.getUdi(code); UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null) if (udiEntity == null) return ResultVOUtils.error(500, "无效条码!");
return ResultVOUtils.error(500, "无效条码!");
if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) { if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) {
udiEntity.setBatchNo(addOrderRequest.getBatchNo()); udiEntity.setBatchNo(addOrderRequest.getBatchNo());
@ -1927,8 +1909,7 @@ public class IoCodeTempController extends BaseController {
return addDrugOrder(addOrderRequest, udiEntity, code, groupNumber); return addDrugOrder(addOrderRequest, udiEntity, code, groupNumber);
} }
public void checkPrice(IoCodeTempEntity codeTempEntity, BasicBussinessTypeEntity bussinessTypeEntity, String public void checkPrice(IoCodeTempEntity codeTempEntity, BasicBussinessTypeEntity bussinessTypeEntity, String inBatch, List<IoCodeTempEntity> codeTempEntities) {
inBatch, List<IoCodeTempEntity> codeTempEntities) {
String priceFifo = systemParamConfigService.selectValueByParamKey("price_fifo"); String priceFifo = systemParamConfigService.selectValueByParamKey("price_fifo");
if (IntUtil.value(priceFifo) > 0) { if (IntUtil.value(priceFifo) > 0) {
//入库时添加入库批号 //入库时添加入库批号
@ -1971,8 +1952,7 @@ public class IoCodeTempController extends BaseController {
} }
//校验供应商是否配送此产品 //校验供应商是否配送此产品
public BaseResponse checkCorp(IoCodeTempEntity codeEnttity, BasicBussinessTypeEntity public BaseResponse checkCorp(IoCodeTempEntity codeEnttity, BasicBussinessTypeEntity bussinessTypeEntity, String unitFk) {
bussinessTypeEntity, String unitFk) {
CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest(); CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest();
UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEnttity.getCode()); UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEnttity.getCode());
companyProductRelevanceRequest.setNameCode(udiEntity.getUdi()); companyProductRelevanceRequest.setNameCode(udiEntity.getUdi());
@ -2010,8 +1990,7 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.error(501, "耗材字典不存在此产品!"); return ResultVOUtils.error(501, "耗材字典不存在此产品!");
} else { } else {
codeEnttity.setStatus(0); codeEnttity.setStatus(0);
if (codeEnttity.getRelId() == null) if (codeEnttity.getRelId() == null) codeEnttity.setRelId(udiRelevanceEntities.get(0).getId());
codeEnttity.setRelId(udiRelevanceEntities.get(0).getId());
} }
return null; return null;
@ -2042,16 +2021,14 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.error(501, "耗材字典不存在此产品!"); return ResultVOUtils.error(501, "耗材字典不存在此产品!");
} else { } else {
codeEnttity.setStatus(0); codeEnttity.setStatus(0);
if (codeEnttity.getRelId() == null) if (codeEnttity.getRelId() == null) codeEnttity.setRelId(udiRelevanceEntities.get(0).getId());
codeEnttity.setRelId(udiRelevanceEntities.get(0).getId());
} }
return null; return null;
} }
//校验供应商唯一性 //校验供应商唯一性
public BaseResponse checkSupId(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity public BaseResponse checkSupId(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity codeEnttity, String unitFk) {
codeEnttity, String unitFk) {
if ((bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT) || bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN))) if ((bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT) || bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN)))
return null; return null;
@ -2098,31 +2075,30 @@ public class IoCodeTempController extends BaseController {
public List<IoCodeTempEntity> isExitLocalList(String code, List<IoCodeTempEntity> codeEnttityList) { public List<IoCodeTempEntity> isExitLocalList(String code, List<IoCodeTempEntity> codeEnttityList) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(code); UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
List<IoCodeTempEntity> codeTempEntities = codeEnttityList.stream() List<IoCodeTempEntity> codeTempEntities = codeEnttityList.stream().filter(item -> {
.filter(item -> { if (item.getCode().equals(code)) {
if (item.getCode().equals(code)) { if (StrUtil.emptyIfNull(item.getSerialNo()).equals(StrUtil.emptyIfNull(udiEntity.getSerialNo()))) {
if (StrUtil.emptyIfNull(item.getSerialNo()).equals(StrUtil.emptyIfNull(udiEntity.getSerialNo()))) { return true;
return true; }
} if (!StrUtil.emptyIfNull(item.getNameCode()).equals(StrUtil.emptyIfNull(udiEntity.getUdi()))) {
if (!StrUtil.emptyIfNull(item.getNameCode()).equals(StrUtil.emptyIfNull(udiEntity.getUdi()))) { return false;
return false; }
} if (!StrUtil.emptyIfNull(item.getBatchNo()).toUpperCase(Locale.ROOT).equals(StrUtil.emptyIfNull(udiEntity.getBatchNo()).toUpperCase(Locale.ROOT))) {
if (!StrUtil.emptyIfNull(item.getBatchNo()).toUpperCase(Locale.ROOT).equals(StrUtil.emptyIfNull(udiEntity.getBatchNo()).toUpperCase(Locale.ROOT))) { return false;
return false; }
} if (!StrUtil.emptyIfNull(item.getProduceDate()).equals(StrUtil.emptyIfNull(udiEntity.getProduceDate()))) {
if (!StrUtil.emptyIfNull(item.getProduceDate()).equals(StrUtil.emptyIfNull(udiEntity.getProduceDate()))) { return false;
return false; }
} if (!StrUtil.emptyIfNull(item.getExpireDate()).equals(StrUtil.emptyIfNull(udiEntity.getExpireDate()))) {
if (!StrUtil.emptyIfNull(item.getExpireDate()).equals(StrUtil.emptyIfNull(udiEntity.getExpireDate()))) { return false;
return false; }
} if (!StrUtil.emptyIfNull(item.getSerialNo()).equals(StrUtil.emptyIfNull(udiEntity.getSerialNo()))) {
if (!StrUtil.emptyIfNull(item.getSerialNo()).equals(StrUtil.emptyIfNull(udiEntity.getSerialNo()))) {
return false;
}
return true;
}
return false; return false;
}).sorted(Comparator.comparing(IoCodeTempEntity::getInBatchNo)).collect(Collectors.toList()); }
return true;
}
return false;
}).sorted(Comparator.comparing(IoCodeTempEntity::getInBatchNo)).collect(Collectors.toList());
Collections.reverse(codeTempEntities); Collections.reverse(codeTempEntities);
return codeTempEntities; return codeTempEntities;
} }
@ -2201,8 +2177,7 @@ public class IoCodeTempController extends BaseController {
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(codeTempEntity.getAction()); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(codeTempEntity.getAction());
BaseResponse baseResponse = checkSupId(bussinessTypeEntity, codeTempEntity, codeTempEntity.getSupId()); BaseResponse baseResponse = checkSupId(bussinessTypeEntity, codeTempEntity, codeTempEntity.getSupId());
if (baseResponse != null) if (baseResponse != null) return baseResponse;
return baseResponse;
codeTempEntity.setRelId(codeSaveRequest.getRelId()); codeTempEntity.setRelId(codeSaveRequest.getRelId());
int reCount = udiCalCountUtil.getActCount(codeTempEntity); int reCount = udiCalCountUtil.getActCount(codeTempEntity);
@ -2215,8 +2190,7 @@ public class IoCodeTempController extends BaseController {
String errMsg = ioCheckInoutService.checkCode(codeTempEntity); String errMsg = ioCheckInoutService.checkCode(codeTempEntity);
if (errMsg != null) { if (errMsg != null) {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);
} else } else codeTempService.updateById(codeTempEntity);
codeTempService.updateById(codeTempEntity);
} else { } else {
codeTempService.updateById(codeTempEntity); codeTempService.updateById(codeTempEntity);
} }
@ -2254,8 +2228,7 @@ public class IoCodeTempController extends BaseController {
@PostMapping("warehouse/inout/saveTempCode") @PostMapping("warehouse/inout/saveTempCode")
@Log(title = "单据管理", businessType = BusinessType.UPDATE) @Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse saveCode(@RequestBody IoCodeTempEntity codeTempEntity) { public BaseResponse saveCode(@RequestBody IoCodeTempEntity codeTempEntity) {
if (codeTempEntity.getCount() == null) if (codeTempEntity.getCount() == null) codeTempEntity.setCount(1);
codeTempEntity.setCount(1);
if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo()) && codeTempEntity.getSerialNo().length() > 20) { if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo()) && codeTempEntity.getSerialNo().length() > 20) {
return ResultVOUtils.error(500, "无效条码!序列号超出最大范围"); return ResultVOUtils.error(500, "无效条码!序列号超出最大范围");
@ -2326,8 +2299,7 @@ public class IoCodeTempController extends BaseController {
int b = codeTempService.updateById(codeTempEntity); int b = codeTempService.updateById(codeTempEntity);
if (b > 0) if (b > 0) return ResultVOUtils.success("修改成功");
return ResultVOUtils.success("修改成功");
else return ResultVOUtils.error(500, "修改失败!"); else return ResultVOUtils.error(500, "修改失败!");
} }
@ -2363,8 +2335,7 @@ public class IoCodeTempController extends BaseController {
code = code.replace("\u001D", ""); code = code.replace("\u001D", "");
} }
UdiEntity udiEntity = FilterUdiUtils.getUdi(code); UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null) if (udiEntity == null) return ResultVOUtils.error(500, "无效条码!");
return ResultVOUtils.error(500, "无效条码!");
if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) { if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) {
udiEntity.setBatchNo(addOrderRequest.getBatchNo()); udiEntity.setBatchNo(addOrderRequest.getBatchNo());
@ -2415,8 +2386,7 @@ public class IoCodeTempController extends BaseController {
if (ioCodeEnttity == null) { if (ioCodeEnttity == null) {
return checkOriginCodeRes; return checkOriginCodeRes;
} }
} else } else return checkOriginCodeRes;
return checkOriginCodeRes;
} else { } else {
udiEntity.setBatchNo(codeLostEntity.getBatchNo()); udiEntity.setBatchNo(codeLostEntity.getBatchNo());
udiEntity.setExpireDate(codeLostEntity.getExpireDate()); udiEntity.setExpireDate(codeLostEntity.getExpireDate());
@ -2428,8 +2398,7 @@ public class IoCodeTempController extends BaseController {
if (ioCodeEnttity == null) { if (ioCodeEnttity == null) {
return checkOriginCodeRes; return checkOriginCodeRes;
} }
} else } else return checkOriginCodeRes;
return checkOriginCodeRes;
} }
} else { } else {
BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity); BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity);
@ -2616,14 +2585,12 @@ public class IoCodeTempController extends BaseController {
String errMsg = ioCheckInoutService.checkCode(genDetaiEntity); String errMsg = ioCheckInoutService.checkCode(genDetaiEntity);
if (errMsg != null) { if (errMsg != null) {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);
} else } else codeTempService.updateById(exitLocalEntity);
codeTempService.updateById(exitLocalEntity);
} else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) {
String errMsg = ioCheckInoutService.checkNoPiCode(genDetaiEntity); String errMsg = ioCheckInoutService.checkNoPiCode(genDetaiEntity);
if (errMsg != null) { if (errMsg != null) {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);
} else } else codeTempService.updateById(exitLocalEntity);
codeTempService.updateById(exitLocalEntity);
} else { } else {
codeTempService.updateById(exitLocalEntity); codeTempService.updateById(exitLocalEntity);
} }
@ -2693,10 +2660,8 @@ public class IoCodeTempController extends BaseController {
} }
} else if (udiRelevanceResponses.size() == 0) { } else if (udiRelevanceResponses.size() == 0) {
if (unitFk == null) if (unitFk == null) return ResultVOUtils.error(500, "耗材字典不存在此产品!");
return ResultVOUtils.error(500, "耗材字典不存在此产品!"); else return ResultVOUtils.error(500, "当前供应商不存在此配送产品!");
else
return ResultVOUtils.error(500, "当前供应商不存在此配送产品!");
} }
//校验供应商是否配送此产品 //校验供应商是否配送此产品
@ -2752,8 +2717,7 @@ public class IoCodeTempController extends BaseController {
genDetaiEntity = codeEnttity; genDetaiEntity = codeEnttity;
if (baseResponse == null) { if (baseResponse == null) {
baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk); baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk);
if (baseResponse != null) if (baseResponse != null) return baseResponse;
return baseResponse;
} else { } else {
if (baseResponse.getCode() == 501) { if (baseResponse.getCode() == 501) {
return baseResponse; return baseResponse;
@ -2790,14 +2754,12 @@ public class IoCodeTempController extends BaseController {
String errMsg = ioCheckInoutService.checkCode(codeEnttity); String errMsg = ioCheckInoutService.checkCode(codeEnttity);
if (errMsg != null) { if (errMsg != null) {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);
} else } else codeTempService.insert(codeEnttity);
codeTempService.insert(codeEnttity);
} else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) {
String errMsg = ioCheckInoutService.checkNoPiCode(codeEnttity); String errMsg = ioCheckInoutService.checkNoPiCode(codeEnttity);
if (errMsg != null) { if (errMsg != null) {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);
} else } else codeTempService.insert(codeEnttity);
codeTempService.insert(codeEnttity);
} else { } else {
codeTempService.insert(codeEnttity); codeTempService.insert(codeEnttity);
} }
@ -2811,13 +2773,11 @@ public class IoCodeTempController extends BaseController {
/** /**
* @param purType 1:23 * @param purType 1:23
*/ */
public boolean checkDiAttribute(BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse public boolean checkDiAttribute(BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse udiRelevanceEntity, Integer purType) {
udiRelevanceEntity, Integer purType) {
if (bussinessTypeEntity.getUseDyCount() == 2) { if (bussinessTypeEntity.getUseDyCount() == 2) {
if (IntUtil.value(udiRelevanceEntity.getPurType()) == IntUtil.value(purType)) { if (IntUtil.value(udiRelevanceEntity.getPurType()) == IntUtil.value(purType)) {
return true; return true;
} else } else return false;
return false;
} }
return true; return true;
} }
@ -2829,8 +2789,7 @@ public class IoCodeTempController extends BaseController {
if (bussinessTypeEntity.getUseDyCount() == 2) { if (bussinessTypeEntity.getUseDyCount() == 2) {
if (udiRelevanceService.findPurType(relId) == IntUtil.value(purType)) { if (udiRelevanceService.findPurType(relId) == IntUtil.value(purType)) {
return true; return true;
} else } else return false;
return false;
} }
return true; return true;
} }
@ -2897,8 +2856,7 @@ public class IoCodeTempController extends BaseController {
} }
AddCodeResult addCodeResult = new AddCodeResult(); AddCodeResult addCodeResult = new AddCodeResult();
if (CollUtil.isEmpty(codeOnelist)) if (CollUtil.isEmpty(codeOnelist)) return ResultVOUtils.error(500, "追溯码不能为空");
return ResultVOUtils.error(500, "追溯码不能为空");
List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>(); List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>();
Integer groupNumber = getMaxGroupNumber() == null ? 1 : getMaxGroupNumber() + 1; Integer groupNumber = getMaxGroupNumber() == null ? 1 : getMaxGroupNumber() + 1;
for (String code : codeOnelist) { for (String code : codeOnelist) {
@ -2952,9 +2910,7 @@ public class IoCodeTempController extends BaseController {
} else { } else {
// IoCollectOrderBackup byBillNo = ioCollectOrderBackupService.getByBillNo(orderFinishBillNo); // IoCollectOrderBackup byBillNo = ioCollectOrderBackupService.getByBillNo(orderFinishBillNo);
IoCollectOrderCodeMan one = collectOrderCodeManService.getOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>() IoCollectOrderCodeMan one = collectOrderCodeManService.getOne(new LambdaQueryWrapper<IoCollectOrderCodeMan>().eq(IoCollectOrderCodeMan::getOrderIdFk, orderFinishBillNo).eq(IoCollectOrderCodeMan::getUdiCode, code));
.eq(IoCollectOrderCodeMan::getOrderIdFk, orderFinishBillNo)
.eq(IoCollectOrderCodeMan::getUdiCode, code));
addOrderRequest.setScanActCount(one.getScanActCount()); addOrderRequest.setScanActCount(one.getScanActCount());
baseResponse = addMaterOrder(addOrderRequest, udiEntity, code, groupNumber); baseResponse = addMaterOrder(addOrderRequest, udiEntity, code, groupNumber);
} }
@ -2984,14 +2940,11 @@ public class IoCodeTempController extends BaseController {
List<String> codeList = addEnterCodeRequest.getCodeList(); List<String> codeList = addEnterCodeRequest.getCodeList();
String orderId = addEnterCodeRequest.getOrderId(); String orderId = addEnterCodeRequest.getOrderId();
IoOrderEntity order = orderService.findByBillNo(orderId); IoOrderEntity order = orderService.findByBillNo(orderId);
if (order == null) if (order == null) return ResultVOUtils.error(500, "单据不存在");
return ResultVOUtils.error(500, "单据不存在"); if (CollUtil.isEmpty(codeList)) return ResultVOUtils.error(500, "追溯码不能为空");
if (CollUtil.isEmpty(codeList))
return ResultVOUtils.error(500, "追溯码不能为空");
//器械的码 可能会是一样的 //器械的码 可能会是一样的
List<IoCodeTempEntity> ioCodeTempEntities = codeTempService.selectByCodes(codeList, orderId); List<IoCodeTempEntity> ioCodeTempEntities = codeTempService.selectByCodes(codeList, orderId);
if (CollUtil.isEmpty(ioCodeTempEntities)) if (CollUtil.isEmpty(ioCodeTempEntities)) return ResultVOUtils.error(500, "当前追溯码不存在");
return ResultVOUtils.error(500, "当前追溯码不存在");
for (IoCodeTempEntity codeTempEntity : ioCodeTempEntities) { for (IoCodeTempEntity codeTempEntity : ioCodeTempEntities) {
codeTempService.removeCodeById(codeTempEntity); codeTempService.removeCodeById(codeTempEntity);
} }
@ -3039,8 +2992,7 @@ public class IoCodeTempController extends BaseController {
* @return * @return
*/ */
@PostMapping("/udiwms/warehouse/inout/removeCodes") @PostMapping("/udiwms/warehouse/inout/removeCodes")
public BaseResponse removeCodes(@RequestBody FilterCodeRequest filterCodeRequest, public BaseResponse removeCodes(@RequestBody FilterCodeRequest filterCodeRequest, BindingResult bindingResult) {
BindingResult bindingResult) {
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
} }
@ -3176,11 +3128,7 @@ public class IoCodeTempController extends BaseController {
* @param codeEnttitys * @param codeEnttitys
* @return * @return
*/ */
private boolean handleCodeCheckAndUpdate(BasicBussinessTypeEntity bussinessTypeEntity, private boolean handleCodeCheckAndUpdate(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity genDetaiEntity, IoCodeTempEntity exitLocalEntity, String inBatch, List<IoCodeTempEntity> codeEnttitys) {
IoCodeTempEntity genDetaiEntity,
IoCodeTempEntity exitLocalEntity,
String inBatch,
List<IoCodeTempEntity> codeEnttitys) {
try { try {
if (bussinessTypeEntity.getCheckWebNew() == 1 && bussinessTypeEntity.isCheckEnable()) { if (bussinessTypeEntity.getCheckWebNew() == 1 && bussinessTypeEntity.isCheckEnable()) {
String errMsg = ioCheckInoutService.checkCode(genDetaiEntity); String errMsg = ioCheckInoutService.checkCode(genDetaiEntity);
@ -3202,17 +3150,11 @@ public class IoCodeTempController extends BaseController {
if (IntUtil.value(priceFifo) > 0) { if (IntUtil.value(priceFifo) > 0) {
if (bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { if (bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
//1.获取当前批次已出库数量 //1.获取当前批次已出库数量
Integer outCount = invProductServiceNew.selectCountByInBatch(exitLocalEntity.getRelId() + "", Integer outCount = invProductServiceNew.selectCountByInBatch(exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_OUT);
exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(),
exitLocalEntity.getInvCode(), ConstantType.TYPE_OUT);
//2.获取当前批次入库数量 //2.获取当前批次入库数量
Integer inCount = invProductServiceNew.selectCountByInBatch(exitLocalEntity.getRelId() + "", Integer inCount = invProductServiceNew.selectCountByInBatch(exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT);
exitLocalEntity.getBatchNo(), bussinessTypeEntity, exitLocalEntity.getInBatchNo(),
exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT);
if ((IntUtil.value(inCount) - IntUtil.value(outCount) - IntUtil.value(exitLocalEntity.getReCount())) < 0) { if ((IntUtil.value(inCount) - IntUtil.value(outCount) - IntUtil.value(exitLocalEntity.getReCount())) < 0) {
InvProductNewVo nextInvProduct = invProductServiceNew.selectNextInBatch(bussinessTypeEntity, InvProductNewVo nextInvProduct = invProductServiceNew.selectNextInBatch(bussinessTypeEntity, exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), exitLocalEntity.getInvCode(), ConstantType.TYPE_PUT, exitLocalEntity.getInBatchNo());
exitLocalEntity.getRelId() + "", exitLocalEntity.getBatchNo(), exitLocalEntity.getInvCode(),
ConstantType.TYPE_PUT, exitLocalEntity.getInBatchNo());
if (nextInvProduct != null) { if (nextInvProduct != null) {
genDetaiEntity.setPrice(nextInvProduct.getPrice()); genDetaiEntity.setPrice(nextInvProduct.getPrice());
genDetaiEntity.setInBatchNo(nextInvProduct.getInBatchNo()); genDetaiEntity.setInBatchNo(nextInvProduct.getInBatchNo());
@ -3232,4 +3174,6 @@ public class IoCodeTempController extends BaseController {
return false; return false;
} }
} }
} }

@ -29,7 +29,7 @@ public class IoCollectErrorLog implements Serializable {
* *
*/ */
@TableField(value = "orderId") @TableField(value = "orderId")
private Long orderId; private String orderId;
/** /**
* *
@ -44,7 +44,7 @@ public class IoCollectErrorLog implements Serializable {
private String manuCode; private String manuCode;
/** /**
* 12 * 12,3:退;4:退
*/ */
@TableField(value = "`type`") @TableField(value = "`type`")
private Integer type; private Integer type;

@ -315,7 +315,6 @@ public class UdiProductService extends ServiceImpl<UdiProductDao, UdiProductEnti
if (i == 0) { if (i == 0) {
throw new JsonException(500, "更新错误"); throw new JsonException(500, "更新错误");
} }
try { try {
ThreadUtil.execAsync(() -> { ThreadUtil.execAsync(() -> {
CodeRel codeRel = new CodeRel(); CodeRel codeRel = new CodeRel();

@ -379,7 +379,6 @@ public class AddCoodeService {
* *
*/ */
public BaseResponse addDrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code, Integer groupNumber, BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse udiRelevanceResponse, AuthAdmin authAdmin, InvWarehouseEntity invWarehouseEntity) { public BaseResponse addDrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code, Integer groupNumber, BasicBussinessTypeEntity bussinessTypeEntity, UdiRelevanceResponse udiRelevanceResponse, AuthAdmin authAdmin, InvWarehouseEntity invWarehouseEntity) {
long startTime = System.currentTimeMillis();
AddCodeResult addCodeResult = new AddCodeResult(); AddCodeResult addCodeResult = new AddCodeResult();
// 检查码是否空 // 检查码是否空
@ -387,7 +386,7 @@ public class AddCoodeService {
return ResultVOUtils.error(500, "无效条码"); return ResultVOUtils.error(500, "无效条码");
} }
if (IntUtil.value(udiRelevanceResponse.getNotCodeType()) != 0 && ( bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT) || bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN))) { if (IntUtil.value(udiRelevanceResponse.getNotCodeType()) != 0 && (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT) || bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN))) {
return ResultVOUtils.error(500, "当前为无码类型产品,无需扫码!"); return ResultVOUtils.error(500, "当前为无码类型产品,无需扫码!");
} }
@ -664,8 +663,6 @@ public class AddCoodeService {
} }
} }
//校验完成 获取当前槽位 绑定产品 //校验完成 获取当前槽位 绑定产品
SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getCode, orderEntity.getWorkPlaceQueueCode()).last("limit 1")); SysWorkplaceQueue sysWorkplaceQueue = sysWorkplaceQueueService.getOne(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getCode, orderEntity.getWorkPlaceQueueCode()).last("limit 1"));
if (sysWorkplaceQueue.getRelId() == null) { if (sysWorkplaceQueue.getRelId() == null) {
//虚拟槽位这个时候就要设置 //虚拟槽位这个时候就要设置
@ -691,9 +688,7 @@ public class AddCoodeService {
return ResultVOUtils.error(507, "当前单据下只允许上货单一产品!"); return ResultVOUtils.error(507, "当前单据下只允许上货单一产品!");
} }
} }
} }
} }
if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) { if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) {
@ -709,7 +704,6 @@ public class AddCoodeService {
if (baseResponse != null) { if (baseResponse != null) {
deleteEmptyBillNo(orderEntity); deleteEmptyBillNo(orderEntity);
} }
genDetaiEntity = codeEnttity;
if (baseResponse == null) { if (baseResponse == null) {
baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk); baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk);
if (baseResponse != null) return baseResponse; if (baseResponse != null) return baseResponse;
@ -724,48 +718,10 @@ public class AddCoodeService {
} }
if (IntUtil.value(bussinessTypeEntity.getUseDyCount()) == 2) { BaseResponse invRes = checkInvService.checkInv(bussinessTypeEntity, codeEnttity, false);
if (bussinessTypeEntity.isScanPreIn() && checkDiAttribute(bussinessTypeEntity, udiRelevanceResponse.getId(), 2)) { //校验预验收库存 if (invRes != null) {
BaseResponse invRes = checkInvService.checkPreInInv(bussinessTypeEntity, codeEnttity, false); deleteEmptyBillNo(orderEntity);
if (invRes != null) { return invRes;
deleteEmptyBillNo(orderEntity);
return invRes;
}
}
if (bussinessTypeEntity.isAdvancePreIn() && checkDiAttribute(bussinessTypeEntity, udiRelevanceResponse.getId(), 3)) { //校验寄售库存
BaseResponse invRes = checkInvService.checkPreInv(bussinessTypeEntity, codeEnttity, false);
if (invRes != null) {
deleteEmptyBillNo(orderEntity);
return invRes;
}
}
if (bussinessTypeEntity.isVailInv() && checkDiAttribute(bussinessTypeEntity, udiRelevanceResponse.getId(), 1)) {
BaseResponse invRes = checkInvService.checkInv(bussinessTypeEntity, codeEnttity, false);
if (invRes != null) {
deleteEmptyBillNo(orderEntity);
return invRes;
}
}
} else {
if (bussinessTypeEntity.isScanPreIn()) { //校验预验收库存
BaseResponse invRes = checkInvService.checkPreInInv(bussinessTypeEntity, codeEnttity, false);
if (invRes != null) {
deleteEmptyBillNo(orderEntity);
return invRes;
}
} else if (bussinessTypeEntity.isAdvancePreIn()) { //校验寄售库存
BaseResponse invRes = checkInvService.checkPreInv(bussinessTypeEntity, codeEnttity, false);
if (invRes != null) {
deleteEmptyBillNo(orderEntity);
return invRes;
}
} else {
BaseResponse invRes = checkInvService.checkInv(bussinessTypeEntity, codeEnttity, false);
if (invRes != null) {
deleteEmptyBillNo(orderEntity);
return invRes;
}
}
} }
@ -823,67 +779,65 @@ public class AddCoodeService {
.collect(Collectors.groupingBy(entity -> entity.getRelId() + ":" + StrUtil.trimToEmpty(entity.getBatchNo()))); .collect(Collectors.groupingBy(entity -> entity.getRelId() + ":" + StrUtil.trimToEmpty(entity.getBatchNo())));
// 使用synchronized块来保护关键部分 // 使用synchronized块来保护关键部分
synchronized (orderEntity.getBillNo().intern()) { // 获取当前订单的所有明细码
// 获取当前订单的所有明细码 // 处理每个分组
// 处理每个分组 for (Map.Entry<String, List<IoCodeTempEntity>> entry : groupedTempEntities.entrySet()) {
for (Map.Entry<String, List<IoCodeTempEntity>> entry : groupedTempEntities.entrySet()) { List<IoCodeTempEntity> group = entry.getValue();
List<IoCodeTempEntity> group = entry.getValue(); if (CollUtil.isEmpty(group)) {
if (CollUtil.isEmpty(group)) { continue;
continue; }
}
IoCodeTempEntity representative = group.get(0); IoCodeTempEntity representative = group.get(0);
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById( UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(
representative.getRelId(), representative.getRelId(),
representative.getSupId()); representative.getSupId());
// 计算该组的总数量
int totalCount = group.stream().mapToInt(IoCodeTempEntity::getMyCount).sum();
int totalReCount = group.stream().mapToInt(IoCodeTempEntity::getMyReCount).sum();
// 在数据库层面使用悲观锁或乐观锁查询现有记录
IoOrderDetailCodeEntity existingEntity = orderDetailCodeDao.selectOne(
new QueryWrapper<IoOrderDetailCodeEntity>()
.eq("orderIdFk", orderEntity.getBillNo())
.eq("bindRlFk", representative.getRelId())
.eq(StrUtil.isNotEmpty(representative.getBatchNo()), "batchNo", representative.getBatchNo())
.last("limit 1 FOR UPDATE")); // 添加行级锁
IoOrderDetailCodeEntity resultDetailEntity;
if (existingEntity != null) {
// 更新现有明细码的数量
existingEntity.setCount(existingEntity.getCount() + totalCount);
existingEntity.setReCount(existingEntity.getReCount() + totalReCount);
existingEntity.setUpdateTime(new Date());
orderDetailCodeDao.updateCount(existingEntity);
resultDetailEntity = existingEntity;
} else {
// 创建新记录
resultDetailEntity = buildEntity(orderEntity, representative, udiRelevanceResponse, totalCount, totalReCount);
orderDetailCodeDao.insert(resultDetailEntity);
}
// 批量更新价格信息
List<IoCodeTempEntity> updateBatch = new ArrayList<>();
for (IoCodeTempEntity entity : group) {
if (entity.getPrice() == null && udiRelevanceResponse != null && udiRelevanceResponse.getPrice() != null) {
entity.setPrice(udiRelevanceResponse.getPrice());
}
entity.setBizId(resultDetailEntity.getId());
updateBatch.add(entity);
}
// 批量更新以提高性能 // 计算该组的总数量
if (!updateBatch.isEmpty()) { int totalCount = group.stream().mapToInt(IoCodeTempEntity::getMyCount).sum();
codeTempService.batchUpdate(updateBatch); int totalReCount = group.stream().mapToInt(IoCodeTempEntity::getMyReCount).sum();
// 在数据库层面使用悲观锁或乐观锁查询现有记录
IoOrderDetailCodeEntity existingEntity = orderDetailCodeDao.selectOne(
new QueryWrapper<IoOrderDetailCodeEntity>()
.eq("orderIdFk", orderEntity.getBillNo())
.eq("bindRlFk", representative.getRelId())
.eq(StrUtil.isNotEmpty(representative.getBatchNo()), "batchNo", representative.getBatchNo())
.last("limit 1 FOR UPDATE")); // 添加行级锁
IoOrderDetailCodeEntity resultDetailEntity;
if (existingEntity != null) {
// 更新现有明细码的数量
existingEntity.setCount(existingEntity.getCount() + totalCount);
existingEntity.setReCount(existingEntity.getReCount() + totalReCount);
existingEntity.setUpdateTime(new Date());
orderDetailCodeDao.updateCount(existingEntity);
resultDetailEntity = existingEntity;
} else {
// 创建新记录
resultDetailEntity = buildEntity(orderEntity, representative, udiRelevanceResponse, totalCount, totalReCount);
orderDetailCodeDao.insert(resultDetailEntity);
}
// 批量更新价格信息
List<IoCodeTempEntity> updateBatch = new ArrayList<>();
for (IoCodeTempEntity entity : group) {
if (entity.getPrice() == null && udiRelevanceResponse != null && udiRelevanceResponse.getPrice() != null) {
entity.setPrice(udiRelevanceResponse.getPrice());
} }
entity.setBizId(resultDetailEntity.getId());
updateBatch.add(entity);
} }
// 返回最新的明细码列表 // 批量更新以提高性能
return orderDetailCodeDao.selectList( if (!updateBatch.isEmpty()) {
new QueryWrapper<IoOrderDetailCodeEntity>() codeTempService.batchUpdate(updateBatch);
.select("id", "count", "reCount", "bindRlFk", "batchNo", "price") }
.eq("orderIdFk", orderEntity.getBillNo()));
} }
// 返回最新的明细码列表
return orderDetailCodeDao.selectList(
new QueryWrapper<IoOrderDetailCodeEntity>()
.select("id", "count", "reCount", "bindRlFk", "batchNo", "price")
.eq("orderIdFk", orderEntity.getBillNo()));
} }
public Integer getMaxGroupNumber() { public Integer getMaxGroupNumber() {

@ -17,10 +17,7 @@ import com.glxp.api.dao.inout.IoSplitCodeMapper;
import com.glxp.api.entity.basic.SysWorkplacePutRel; import com.glxp.api.entity.basic.SysWorkplacePutRel;
import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.collect.*; import com.glxp.api.entity.collect.*;
import com.glxp.api.entity.inout.IoCodeLostEntity; import com.glxp.api.entity.inout.*;
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.exception.JsonException;
import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.inout.IoSplitCodeRequest; import com.glxp.api.req.inout.IoSplitCodeRequest;
@ -211,12 +208,11 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
//如果手动扫码判断该码是否在队列里,如果已在队列,则队列里剔除 //如果手动扫码判断该码是否在队列里,如果已在队列,则队列里剔除
List<IoCollectOrderCodeMan> collectOrderCodeMEN = collectOrderCodeManService.listByBillNo(collectOrder.getBillNo()); List<IoCollectOrderCodeMan> collectOrderCodeMEN = collectOrderCodeManService.listByBillNo(collectOrder.getBillNo());
if (CollUtil.isNotEmpty(collectOrderCodeMEN)) { if (CollUtil.isNotEmpty(collectOrderCodeMEN)) {
// replaceCode(collectOrderCodeMEN, collectOrder); // dealOrderReplace(collectOrderCodeMEN, collectOrder);
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) { for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) {
if (IntUtil.value(collectOrderCodeMan.getRemoveFlag())) { if (IntUtil.value(collectOrderCodeMan.getRemoveFlag())) {
continue; continue;
} }
IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), putWorkPlaceCode); IoSplitFifoCodeEntity splitFifoCodeEntity = splitFifoCodeService.findByCode(collectOrderCodeMan.getUdiCode(), putWorkPlaceCode);
if (splitFifoCodeEntity != null) { if (splitFifoCodeEntity != null) {
collectOrderCodeMan.setRemoveFlag(true); collectOrderCodeMan.setRemoveFlag(true);
@ -370,7 +366,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
/** /**
* *
*/ */
public void replaceCode(List<IoCollectOrderCodeMan> collectOrderCodeManList, IoCollectOrder collectOrder) { public void dealOrderReplace(List<IoCollectOrderCodeMan> collectOrderCodeManList, IoCollectOrder collectOrder) {
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeManList) { for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeManList) {
// 1. 查找已完成成单据扫码是否已被分配 // 1. 查找已完成成单据扫码是否已被分配
@ -382,7 +378,6 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
throw new JsonException(500, collectCodeBackup.getCode() + "重复扫码,请盘查后重试!"); throw new JsonException(500, collectCodeBackup.getCode() + "重复扫码,请盘查后重试!");
} }
IoCollectOrderBackup collectOrderBackup = collectOrderBackupMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderBackup>().eq(IoCollectOrderBackup::getBillNo, collectCodeBackup.getBillNo())); IoCollectOrderBackup collectOrderBackup = collectOrderBackupMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderBackup>().eq(IoCollectOrderBackup::getBillNo, collectCodeBackup.getBillNo()));
collectOrderCodeMan.setRemoveFlag(true); collectOrderCodeMan.setRemoveFlag(true);
// 单据已被上传至医保 // 单据已被上传至医保
@ -391,7 +386,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (splitFifoCodeEntity == null) { if (splitFifoCodeEntity == null) {
throw new JsonException(500, "工位存量不足!"); throw new JsonException(500, "工位存量不足!");
} }
IoCollectErrorLog ioCollectErrorLog = IoCollectErrorLog.builder().orderId(collectOrder.getId()).autoCode(splitFifoCodeEntity.getCode()).manuCode(collectOrderCodeMan.getUdiCode()).type(2) //未上传医保替换码 IoCollectErrorLog ioCollectErrorLog = IoCollectErrorLog.builder().orderId(collectOrder.getId()+"").autoCode(splitFifoCodeEntity.getCode()).manuCode(collectOrderCodeMan.getUdiCode()).type(2) //未上传医保替换码
.updateTime(new Date()).build(); .updateTime(new Date()).build();
collectErrorLogMapper.insert(ioCollectErrorLog); collectErrorLogMapper.insert(ioCollectErrorLog);
collectCodeBackup.setCode(splitFifoCodeEntity.getCode()); collectCodeBackup.setCode(splitFifoCodeEntity.getCode());
@ -403,7 +398,7 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
if (splitFifoCodeEntity == null) { if (splitFifoCodeEntity == null) {
throw new JsonException(500, "工位存量不足!"); throw new JsonException(500, "工位存量不足!");
} }
IoCollectErrorLog ioCollectErrorLog = IoCollectErrorLog.builder().orderId(collectOrder.getId()).autoCode(splitFifoCodeEntity.getCode()).manuCode(collectOrderCodeMan.getUdiCode()).type(1) //未上传医保替换码 IoCollectErrorLog ioCollectErrorLog = IoCollectErrorLog.builder().orderId(collectOrder.getId()+"").autoCode(splitFifoCodeEntity.getCode()).manuCode(collectOrderCodeMan.getUdiCode()).type(1) //未上传医保替换码
.updateTime(new Date()).build(); .updateTime(new Date()).build();
collectErrorLogMapper.insert(ioCollectErrorLog); collectErrorLogMapper.insert(ioCollectErrorLog);
//替换已完成单据的码 //替换已完成单据的码
@ -415,6 +410,63 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
} }
} }
// public void workReturnReplace(IoCodeEntity codeEntity, Long workPlaceCode) {
//
// IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), workPlaceCode);
// if (ioSplitFifoCodeEntity == null) {
// // 1.判断工位库存是否足够
// // 2.工位库存足够的话,判断已完成单是否存在,
// // 3.存在的话,判断已完成单是否已上传医保
// // 4.已上传医保的话,调用医保删除接口
//
// List<IoSplitFifoCodeEntity> splitFifoCodeEntitys = splitFifoCodeService.findByRelId(workPlaceCode, codeEntity.getRelId(), codeEntity.getBatchNo(), null);
// if (CollUtil.isEmpty(splitFifoCodeEntitys)) {
// throw new JsonException(500, "工位库存不足!");
// }
// ioSplitFifoCodeEntity = splitFifoCodeEntitys.get(0);
//
// List<IoCollectCodeBackup> collectCodeBackups = collectCodeBackMapper.selectList(new LambdaQueryWrapper<IoCollectCodeBackup>().eq(IoCollectCodeBackup::getCode, ioSplitFifoCodeEntity.getCode()));
// if (CollUtil.isNotEmpty(collectCodeBackups)) {
// IoCollectCodeBackup collectCodeBackup = collectCodeBackups.get(0);
//
// if (IntUtil.value(collectCodeBackup.getFifoSplit()) == 3) {
// throw new JsonException(500, collectCodeBackup.getCode() + "重复扫码,请盘查后重试!");
// }
//
// IoCollectOrderBackup collectOrderBackup = collectOrderBackupMapper.selectOne(new LambdaQueryWrapper<IoCollectOrderBackup>().eq(IoCollectOrderBackup::getBillNo, collectCodeBackup.getBillNo()));
// // 单据已被上传至医保
// if (IntUtil.value(collectOrderBackup.getUploadStatus()) == 2) {
// IoSplitFifoCodeEntity splitFifoCodeEntity = removeInvByCode(collectOrderCodeMan, collectOrder.getWorkPlaceCode());
// if (splitFifoCodeEntity == null) {
// throw new JsonException(500, "工位存量不足!");
// }
// IoCollectErrorLog ioCollectErrorLog = IoCollectErrorLog.builder().orderId(codeEntity.getOrderId()).autoCode(splitFifoCodeEntity.getCode()).manuCode(ioSplitFifoCodeEntity.getCode()).type(4) //已上传医保替换码
// .updateTime(new Date()).build();
// collectErrorLogMapper.insert(ioCollectErrorLog);
// collectCodeBackup.setCode(splitFifoCodeEntity.getCode());
// collectCodeBackMapper.updateById(collectCodeBackup);
//
// } else {
// //单据未上传医保,上传医保失败
// IoSplitFifoCodeEntity splitFifoCodeEntity = removeInvByCode(collectOrderCodeMan, collectOrder.getWorkPlaceCode());
// if (splitFifoCodeEntity == null) {
// throw new JsonException(500, "工位存量不足!");
// }
// IoCollectErrorLog ioCollectErrorLog = IoCollectErrorLog.builder().orderId(collectOrder.getId()).autoCode(splitFifoCodeEntity.getCode()).manuCode(collectOrderCodeMan.getUdiCode()).type(3) //未上传医保替换码
// .updateTime(new Date()).build();
// collectErrorLogMapper.insert(ioCollectErrorLog);
// //替换已完成单据的码
// collectCodeBackup.setCode(splitFifoCodeEntity.getCode());
// collectCodeBackMapper.updateById(collectCodeBackup);
// }
// }
//
// }
//
// }
@Resource @Resource
IoCollectErrorLogMapper collectErrorLogMapper; IoCollectErrorLogMapper collectErrorLogMapper;
@ -444,6 +496,28 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
return null; return null;
} }
/**
* 使
*/
public IoSplitFifoCodeEntity removeInvByCode(IoSplitFifoCodeEntity splitFifoCodeEntity) {
splitFifoCodeService.removeById(splitFifoCodeEntity.getId());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount()));
splitFifoInv.setOutCodeCount(IntUtil.value(splitFifoInv.getOutCodeCount()) + IntUtil.value(splitFifoCodeEntity.getScanCount()));
int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount());
splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0);
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount()));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInvService.updateById(splitFifoInv);
}
return splitFifoCodeEntity;
}
/** /**
* *
*/ */

@ -7,10 +7,15 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.collect.IoCollectCodeBackMapper;
import com.glxp.api.dao.collect.IoCollectOrderBackupMapper;
import com.glxp.api.dao.inout.IoSplitFifoInvMapper; import com.glxp.api.dao.inout.IoSplitFifoInvMapper;
import com.glxp.api.entity.basic.SysWorkplaceLayer; import com.glxp.api.entity.basic.SysWorkplaceLayer;
import com.glxp.api.entity.basic.SysWorkplacePutRel; import com.glxp.api.entity.basic.SysWorkplacePutRel;
import com.glxp.api.entity.basic.SysWorkplaceQueue; import com.glxp.api.entity.basic.SysWorkplaceQueue;
import com.glxp.api.entity.collect.IoCollectCodeBackup;
import com.glxp.api.entity.collect.IoCollectErrorLog;
import com.glxp.api.entity.collect.IoCollectOrderBackup;
import com.glxp.api.entity.collect.IoSplitFifoInvRel; import com.glxp.api.entity.collect.IoSplitFifoInvRel;
import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inout.*;
import com.glxp.api.exception.JsonException; import com.glxp.api.exception.JsonException;
@ -133,7 +138,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
.availableCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())).lockCount(0) .availableCount(IntUtil.value(ioSplitFifoCodeEntity.getTotalCount())).lockCount(0)
.createTime(new Date()).updateTime(new Date()).remark(null) .createTime(new Date()).updateTime(new Date()).remark(null)
.enableRemind(false).invRemindCount(0) .enableRemind(false).invRemindCount(0)
.workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode() == null ? setQueueCode(ioSplitFifoCodeEntity.getWorkPlaceCode(), orderEntity.getCreateUser(),ioSplitFifoCodeEntity.getRelId()) : orderEntity.getWorkPlaceQueueCode()) .workPlaceQueueCode(orderEntity.getWorkPlaceQueueCode() == null ? setQueueCode(ioSplitFifoCodeEntity.getWorkPlaceCode(), orderEntity.getCreateUser(), ioSplitFifoCodeEntity.getRelId()) : orderEntity.getWorkPlaceQueueCode())
.build(); .build();
splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount())); splitFifoInv.setReCodeCount(IntUtil.value(splitFifoInv.getInCodeCount()) - IntUtil.value(splitFifoInv.getOutCodeCount()));
save(splitFifoInv); save(splitFifoInv);
@ -164,7 +169,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
@Resource @Resource
SysWorkplaceLayerService sysWorkplaceLayerService; SysWorkplaceLayerService sysWorkplaceLayerService;
public String setQueueCode(Long workPlaceCode, String userId,Long relId) { public String setQueueCode(Long workPlaceCode, String userId, Long relId) {
List<SysWorkplaceQueue> queues = sysWorkplaceQueueService.list(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getWorkPlaceIdFk, workPlaceCode)); List<SysWorkplaceQueue> queues = sysWorkplaceQueueService.list(new LambdaQueryWrapper<SysWorkplaceQueue>().eq(SysWorkplaceQueue::getWorkPlaceIdFk, workPlaceCode));
if (queues.size() == 0) { if (queues.size() == 0) {
throw new JsonException(500, "请增加取货槽"); throw new JsonException(500, "请增加取货槽");
@ -172,7 +177,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
//需要先判断 该产品是否已经有库存了 不然 工位有库存 在设置新的虚拟槽位 会显示同样产品 的多条数据但是 下面码明细一样 //需要先判断 该产品是否已经有库存了 不然 工位有库存 在设置新的虚拟槽位 会显示同样产品 的多条数据但是 下面码明细一样
List<IoSplitFifoInv> ioSplitFifoInvs = list(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getRelId, relId)); List<IoSplitFifoInv> ioSplitFifoInvs = list(new LambdaQueryWrapper<IoSplitFifoInv>().eq(IoSplitFifoInv::getRelId, relId));
if (ioSplitFifoInvs != null && ioSplitFifoInvs.size() > 0){ if (ioSplitFifoInvs != null && ioSplitFifoInvs.size() > 0) {
return ioSplitFifoInvs.get(0).getWorkPlaceQueueCode(); return ioSplitFifoInvs.get(0).getWorkPlaceQueueCode();
} }
@ -205,11 +210,11 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
sysWorkplaceLayerRequest.setWorkPlaceIdFk(workPlaceCode); sysWorkplaceLayerRequest.setWorkPlaceIdFk(workPlaceCode);
sysWorkplaceLayerRequest.setQueueNum(layer.getQueueNum() + 1); sysWorkplaceLayerRequest.setQueueNum(layer.getQueueNum() + 1);
Boolean aBoolean = sysWorkplaceLayerService.addSysWorkplaceLayer(sysWorkplaceLayerRequest, Long.valueOf(userId)); Boolean aBoolean = sysWorkplaceLayerService.addSysWorkplaceLayer(sysWorkplaceLayerRequest, Long.valueOf(userId));
if (!aBoolean){ if (!aBoolean) {
throw new JsonException(500, "虚拟槽位增加失败"); throw new JsonException(500, "虚拟槽位增加失败");
} }
} }
return setQueueCode(workPlaceCode, userId,relId); return setQueueCode(workPlaceCode, userId, relId);
} }
@ -217,6 +222,10 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
SysWorkplacePutRelService sysWorkplacePutRelService; SysWorkplacePutRelService sysWorkplacePutRelService;
@Resource @Resource
IoSplitFifoInvRelService splitFifoInvRelService; IoSplitFifoInvRelService splitFifoInvRelService;
@Resource
IoCollectOrderBackupMapper collectOrderBackupMapper;
@Resource
IoCollectCodeBackMapper collectCodeBackMapper;
/** /**
* *
@ -230,6 +239,9 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
if (CollUtil.isNotEmpty(codeList)) { if (CollUtil.isNotEmpty(codeList)) {
for (IoCodeEntity codeEntity : codeList) { for (IoCodeEntity codeEntity : codeList) {
IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), workPlaceCode); IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), workPlaceCode);
if (StrUtil.isEmpty(codeEntity.getSerialNo())) { if (StrUtil.isEmpty(codeEntity.getSerialNo())) {
if (ioSplitFifoCodeEntity != null) { if (ioSplitFifoCodeEntity != null) {
ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) - IntUtil.value(codeEntity.getCount())); ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) - IntUtil.value(codeEntity.getCount()));
@ -387,6 +399,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
@Resource @Resource
IoSplitCodeService ioSplitCodeService; IoSplitCodeService ioSplitCodeService;
public List<IoSplitInvResponse> getStock(IoSplitFifoInvRequest ioSplitFifoInvRequest) { public List<IoSplitInvResponse> getStock(IoSplitFifoInvRequest ioSplitFifoInvRequest) {
if (ioSplitFifoInvRequest == null) { if (ioSplitFifoInvRequest == null) {
return Collections.emptyList(); return Collections.emptyList();
@ -396,7 +409,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
PageHelper.offsetPage(offset, ioSplitFifoInvRequest.getLimit()); PageHelper.offsetPage(offset, ioSplitFifoInvRequest.getLimit());
} }
List<IoSplitInvResponse> ioSplitInvResponses = this.baseMapper.getStockList(ioSplitFifoInvRequest); List<IoSplitInvResponse> ioSplitInvResponses = this.baseMapper.getStockList(ioSplitFifoInvRequest);
for (IoSplitInvResponse ioSplitInvResponse : ioSplitInvResponses){ for (IoSplitInvResponse ioSplitInvResponse : ioSplitInvResponses) {
IoSplitCodeRequest ioSplitCodeRequest = new IoSplitCodeRequest(); IoSplitCodeRequest ioSplitCodeRequest = new IoSplitCodeRequest();
ioSplitCodeRequest.setRelId(ioSplitInvResponse.getRelId()); ioSplitCodeRequest.setRelId(ioSplitInvResponse.getRelId());
List<IoSplitCodeEntity> ioSplitCodeEntities = ioSplitCodeService.filterList(ioSplitCodeRequest); List<IoSplitCodeEntity> ioSplitCodeEntities = ioSplitCodeService.filterList(ioSplitCodeRequest);
@ -407,23 +420,23 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
ioSplitInvResponse.setSplitRemCount(totalRemainCount); ioSplitInvResponse.setSplitRemCount(totalRemainCount);
} }
} }
ioSplitInvResponses.forEach(t -> { ioSplitInvResponses.forEach(t -> {
if (IntUtil.value(t.getQueueEnableRemind())) { if (IntUtil.value(t.getQueueEnableRemind())) {
int count = IntUtil.value(t.getRemCount()) - IntUtil.value(t.getQueueRemindCount()); int count = IntUtil.value(t.getRemCount()) - IntUtil.value(t.getQueueRemindCount());
if (count > 0) { if (count > 0) {
t.setRemindState(1); t.setRemindState(1);
} else {
t.setRemindState(2);
}
} else { } else {
t.setRemindState(0); t.setRemindState(2);
}
Integer suggestOutCount = t.getSuggestOutCount();
if (suggestOutCount != null && suggestOutCount < 0) {
t.setSuggestOutCount(0);
} }
}); } else {
return ioSplitInvResponses; t.setRemindState(0);
}
Integer suggestOutCount = t.getSuggestOutCount();
if (suggestOutCount != null && suggestOutCount < 0) {
t.setSuggestOutCount(0);
}
});
return ioSplitInvResponses;
} }
} }

Loading…
Cancel
Save