Merge remote-tracking branch 'origin/dev_fifo_z' into dev_fifo_z

dev_fifo_z
yewj 6 months ago
commit 2097e537f6

@ -151,11 +151,11 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
} }
boolean shouldContinue = false; boolean shouldContinue = false;
//todo 扫码超出 没有校验到.. //扫入的校验码全是没有没有的 导致 checkCount 一直为0
for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) { for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) {
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(collectOrderBizResponse.getNameCode()); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(collectOrderBizResponse.getNameCode());
Integer checkCount = ioCollectOrderCheckCodeService.getCountByRelIdAndBillNo(udiRelevanceResponse.getId(), filterCodeRequest.getBillNo()); Integer checkCount = ioCollectOrderCheckCodeService.getCountByRelIdAndBillNo(udiRelevanceResponse.getId(), filterCodeRequest.getBillNo());
if (checkCount == collectOrderBizResponse.getScanActCount()) { if (checkCount == collectOrderBizResponse.getScanCount()) {
vailCodeResultResponse.setStatus(3); vailCodeResultResponse.setStatus(3);
vailCodeResultResponse.setCode(code); vailCodeResultResponse.setCode(code);
vailCodeResultResponse.setErrMsg("追溯码校验校验超出"); vailCodeResultResponse.setErrMsg("追溯码校验校验超出");
@ -186,7 +186,6 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
vailCodeResultResponse.setSucMsg("校验成功"); vailCodeResultResponse.setSucMsg("校验成功");
vailCodeResultResponses.add(vailCodeResultResponse); vailCodeResultResponses.add(vailCodeResultResponse);
//校验成功 加入校验表 //校验成功 加入校验表
//todo 更改完成之后 需要放开注释
setOrderCheckStatus(ioCollectCodeBackup); setOrderCheckStatus(ioCollectCodeBackup);
} else { } else {
vailCodeResultResponse.setStatus(5); vailCodeResultResponse.setStatus(5);
@ -201,7 +200,6 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
} }
public AddEnterCodeResponse setAddEnterCodeResponse(UdiEntity udiEntity, UdiRelevanceResponse checkUdi) { public AddEnterCodeResponse setAddEnterCodeResponse(UdiEntity udiEntity, UdiRelevanceResponse checkUdi) {
AddEnterCodeResponse addEnterCodeResponse = new AddEnterCodeResponse(); AddEnterCodeResponse addEnterCodeResponse = new AddEnterCodeResponse();
BeanUtils.copyProperties(udiEntity, addEnterCodeResponse); BeanUtils.copyProperties(udiEntity, addEnterCodeResponse);
@ -229,34 +227,34 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
public BaseResponse replaceScanCode(IoCollectCodeRequest filterCodeRequest) { public BaseResponse replaceScanCode(IoCollectCodeRequest filterCodeRequest) {
IoCollectOrderBackup orderBackup = ioCollectOrderBackupService.getByBillNo(filterCodeRequest.getBillNo()); IoCollectOrderBackup orderBackup = ioCollectOrderBackupService.getByBillNo(filterCodeRequest.getBillNo());
if (orderBackup.getCheckCodeConfirm() == 0 || orderBackup.getCheckCodeConfirm() == null){ if (orderBackup.getCheckCodeConfirm() == 0 || orderBackup.getCheckCodeConfirm() == null) {
orderBackup.setCheckCodeConfirm(1); orderBackup.setCheckCodeConfirm(1);
ioCollectOrderBackupService.updateByBillNo(orderBackup); ioCollectOrderBackupService.updateByBillNo(orderBackup);
} }
if (StrUtil.isNotEmpty(filterCodeRequest.getCode())) { if (StrUtil.isNotEmpty(filterCodeRequest.getCode())) {
insert(filterCodeRequest,orderBackup); insert(filterCodeRequest, orderBackup);
} else { } else {
List<String> codeList = filterCodeRequest.getCodeList(); List<String> codeList = filterCodeRequest.getCodeList();
for (String code : codeList) { for (String code : codeList) {
filterCodeRequest.setCode(code); filterCodeRequest.setCode(code);
insert(filterCodeRequest,orderBackup); insert(filterCodeRequest, orderBackup);
} }
} }
return ResultVOUtils.success(orderBackup); return ResultVOUtils.success(orderBackup);
} }
public void insert(IoCollectCodeRequest filterCodeRequest,IoCollectOrderBackup orderBackup) { public void insert(IoCollectCodeRequest filterCodeRequest, IoCollectOrderBackup orderBackup) {
IoCollectOrderCheckCode one = ioCollectOrderCheckCodeService.getOne(new LambdaQueryWrapper<IoCollectOrderCheckCode>().eq(IoCollectOrderCheckCode::getCode, filterCodeRequest.getCode())); IoCollectOrderCheckCode one = ioCollectOrderCheckCodeService.getOne(new LambdaQueryWrapper<IoCollectOrderCheckCode>().eq(IoCollectOrderCheckCode::getCode, filterCodeRequest.getCode()));
if (one != null) { if (one != null) {
throw new JsonException(500, "该追溯码已被其他单据校验"); throw new JsonException(500, "该追溯码已被其他单据校验");
} }
if (orderBackup == null) { if (orderBackup == null) {
throw new JsonException(500, "订单不存在"); throw new JsonException(500, "订单不存在");
} }
UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeRequest.getCode()); UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeRequest.getCode());
if (udiEntity == null) { if (udiEntity == null) {
throw new JsonException(500, "产品不存在"); throw new JsonException(500, "产品不存在");
} }
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
//吗替换的接口 替换哪个码 //吗替换的接口 替换哪个码
@ -275,7 +273,7 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
.build(); .build();
ioCollectOrderCheckCodeService.save(ioCollectOrderCheckCode); ioCollectOrderCheckCodeService.save(ioCollectOrderCheckCode);
IoCollectCodeBackup ioCollectCodeBackup = new IoCollectCodeBackup(); IoCollectCodeBackup ioCollectCodeBackup = new IoCollectCodeBackup();
BeanUtils.copyProperties(ioCollectOrderCheckCode,ioCollectCodeBackup); BeanUtils.copyProperties(ioCollectOrderCheckCode, ioCollectCodeBackup);
ioCollectCodeBackup.setScanCodeCheckStatus(3); ioCollectCodeBackup.setScanCodeCheckStatus(3);
ioCollectCodeBackup.setId(null); ioCollectCodeBackup.setId(null);
save(ioCollectCodeBackup); save(ioCollectCodeBackup);
@ -283,8 +281,8 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
public BaseResponse commitCheckCodeOrder(IoCollectCodeRequest filterCodeRequest) { public BaseResponse commitCheckCodeOrder(IoCollectCodeRequest filterCodeRequest) {
IoCollectOrderBackup orderBackup = ioCollectOrderBackupService.getByBillNo(filterCodeRequest.getBillNo()); IoCollectOrderBackup orderBackup = ioCollectOrderBackupService.getByBillNo(filterCodeRequest.getBillNo());
if (orderBackup.getCheckCodeStatus() == 1){ if (orderBackup.getCheckCodeStatus() == 1) {
return ResultVOUtils.error(500,"该单据已校验完成"); return ResultVOUtils.error(500, "该单据已校验完成");
} }
//已经完成单据码表 //已经完成单据码表
List<IoCollectCodeBackup> ioCollectCodeBackups = list(new LambdaQueryWrapper<IoCollectCodeBackup>().eq(IoCollectCodeBackup::getBillNo, filterCodeRequest.getBillNo())); List<IoCollectCodeBackup> ioCollectCodeBackups = list(new LambdaQueryWrapper<IoCollectCodeBackup>().eq(IoCollectCodeBackup::getBillNo, filterCodeRequest.getBillNo()));
@ -294,26 +292,40 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest(); CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
collectOrderBizRequest.setOrderIdFk(filterCodeRequest.getBillNo()); collectOrderBizRequest.setOrderIdFk(filterCodeRequest.getBillNo());
List<CollectOrderBizResponse> list = ioCollectOrderBizBackupService.filterList(collectOrderBizRequest); List<CollectOrderBizResponse> list = ioCollectOrderBizBackupService.filterList(collectOrderBizRequest);
//
List<IoCollectCodeBackup> uniqueBackupsCodes = new ArrayList<>();
for (CollectOrderBizResponse collectOrderBizResponse : list) { for (CollectOrderBizResponse collectOrderBizResponse : list) {
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(collectOrderBizResponse.getNameCode()); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(collectOrderBizResponse.getNameCode());
Integer checkCount = ioCollectOrderCheckCodeService.getCountByRelIdAndBillNo(udiRelevanceResponse.getId(), filterCodeRequest.getBillNo()); //先根据产品 和订单号搜索当前产品码是否包含有替换码
if (checkCount < collectOrderBizResponse.getScanCount()) { List<IoCollectCodeBackup> ioCollectCodeBackups1 = list(new LambdaQueryWrapper<IoCollectCodeBackup>()
return ResultVOUtils.error(500, udiRelevanceResponse.getCpmctymc() + "追溯码未校验完成"); .eq(IoCollectCodeBackup::getBillNo, filterCodeRequest.getBillNo())
.eq(IoCollectCodeBackup::getRelId, udiRelevanceResponse.getId()));
List<IoCollectCodeBackup> collects = ioCollectCodeBackups1.stream()
.filter(backup -> backup.getScanCodeCheckStatus() != null)
.filter(backup -> backup.getScanCodeCheckStatus() == 3)
.collect(Collectors.toList());
if (collects.size() > 0) {
uniqueBackupsCodes.addAll(ioCollectCodeBackups1);
//如果有数据说明改产品已经 替换过码了需要全部校验
Integer checkCount = ioCollectOrderCheckCodeService.getCountByRelIdAndBillNo(udiRelevanceResponse.getId(), filterCodeRequest.getBillNo());
if (checkCount < collectOrderBizResponse.getScanCount()) {
return ResultVOUtils.error(500, udiRelevanceResponse.getCpmctymc() + "追溯码未校验完成");
}
} }
} }
//校验处方码表与校验码表是否多出或者缺少 //校验处方码表与校验码表是否多出或者缺少
// 使用流过滤出只在ioCollectCodeBackups中存在的code List<String> uniqueCodes = uniqueBackupsCodes.stream()
List<String> uniqueBackupsCodes = ioCollectCodeBackups.stream()
.map(IoCollectCodeBackup::getCode) .map(IoCollectCodeBackup::getCode)
.filter(code -> !ioCollectOrderCheckCodes.stream() .filter(code -> !ioCollectOrderCheckCodes.stream()
.map(IoCollectOrderCheckCode::getCode) .map(IoCollectOrderCheckCode::getCode)
.anyMatch(code::equals)) .anyMatch(code::equals))
.collect(Collectors.toList()); .collect(Collectors.toList());
//uniqueBackupsCodes 校验码表中不存在的码 //uniqueCodes 替换掉的码
System.out.println(uniqueCodes);
List<String> checkCodeList = ioCollectOrderCheckCodes.stream() List<String> checkCodeList = ioCollectOrderCheckCodes.stream()
.map(IoCollectOrderCheckCode::getCode) .map(IoCollectOrderCheckCode::getCode)
.filter(code -> !ioCollectCodeBackups.stream() .filter(code -> !ioCollectCodeBackups.stream()
@ -323,18 +335,18 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
// 对比原始码表多出来的码 checkCodeList // 对比原始码表多出来的码 checkCodeList
//检查码是否存在队列如果存在移除 //检查码是否存在队列如果存在移除
for (String code : checkCodeList){ for (String code : checkCodeList) {
IoSplitFifoCodeEntity ioSplitFifoCodeEntity = ioSplitFifoCodeService.getOne(new LambdaQueryWrapper<IoSplitFifoCodeEntity>().eq(IoSplitFifoCodeEntity::getCode, code)); IoSplitFifoCodeEntity ioSplitFifoCodeEntity = ioSplitFifoCodeService.getOne(new LambdaQueryWrapper<IoSplitFifoCodeEntity>().eq(IoSplitFifoCodeEntity::getCode, code));
if (ioSplitFifoCodeEntity != null){ if (ioSplitFifoCodeEntity != null) {
ioSplitFifoCodeService.removeById(ioSplitFifoCodeEntity); ioSplitFifoCodeService.removeById(ioSplitFifoCodeEntity);
} }
} }
boolean b = removeBatchByIds(ioCollectCodeBackups); boolean b = removeBatchByIds(uniqueBackupsCodes);
ArrayList<IoCollectCodeBackup> collectCodeBackups = new ArrayList<>(); ArrayList<IoCollectCodeBackup> collectCodeBackups = new ArrayList<>();
for (IoCollectOrderCheckCode ioCollectOrderCheckCode : ioCollectOrderCheckCodes){ for (IoCollectOrderCheckCode ioCollectOrderCheckCode : ioCollectOrderCheckCodes) {
IoCollectCodeBackup ioCollectCodeBackup = new IoCollectCodeBackup(); IoCollectCodeBackup ioCollectCodeBackup = new IoCollectCodeBackup();
BeanUtils.copyProperties(ioCollectOrderCheckCode,ioCollectCodeBackup); BeanUtils.copyProperties(ioCollectOrderCheckCode, ioCollectCodeBackup);
ioCollectCodeBackup.setScanCodeCheckStatus(1); ioCollectCodeBackup.setScanCodeCheckStatus(1);
collectCodeBackups.add(ioCollectCodeBackup); collectCodeBackups.add(ioCollectCodeBackup);
} }
@ -349,7 +361,7 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
.eq(IoCollectCodeBackup::getBillNo, billNo)); .eq(IoCollectCodeBackup::getBillNo, billNo));
} }
public IoCollectOrderBizBackup checkProduct(String billNo,UdiEntity udiEntity){ public IoCollectOrderBizBackup checkProduct(String billNo, UdiEntity udiEntity) {
List<IoCollectOrderBizBackup> ioCollectOrderBizBackups = ioCollectOrderBizBackupService.listByBillNo(billNo); List<IoCollectOrderBizBackup> ioCollectOrderBizBackups = ioCollectOrderBizBackupService.listByBillNo(billNo);
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), null); List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), null);
if (CollUtil.isEmpty(udiRelevanceResponses)) throw new JsonException(500, "字典不存在此产品!"); if (CollUtil.isEmpty(udiRelevanceResponses)) throw new JsonException(500, "字典不存在此产品!");

Loading…
Cancel
Save