|
|
|
@ -151,11 +151,11 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
|
|
|
|
|
}
|
|
|
|
|
boolean shouldContinue = false;
|
|
|
|
|
|
|
|
|
|
//todo 扫码超出 没有校验到..
|
|
|
|
|
//扫入的校验码全是没有没有的 导致 checkCount 一直为0
|
|
|
|
|
for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) {
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(collectOrderBizResponse.getNameCode());
|
|
|
|
|
Integer checkCount = ioCollectOrderCheckCodeService.getCountByRelIdAndBillNo(udiRelevanceResponse.getId(), filterCodeRequest.getBillNo());
|
|
|
|
|
if (checkCount == collectOrderBizResponse.getScanActCount()) {
|
|
|
|
|
if (checkCount == collectOrderBizResponse.getScanCount()) {
|
|
|
|
|
vailCodeResultResponse.setStatus(3);
|
|
|
|
|
vailCodeResultResponse.setCode(code);
|
|
|
|
|
vailCodeResultResponse.setErrMsg("追溯码校验校验超出");
|
|
|
|
@ -186,7 +186,6 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
|
|
|
|
|
vailCodeResultResponse.setSucMsg("校验成功");
|
|
|
|
|
vailCodeResultResponses.add(vailCodeResultResponse);
|
|
|
|
|
//校验成功 加入校验表
|
|
|
|
|
//todo 更改完成之后 需要放开注释
|
|
|
|
|
setOrderCheckStatus(ioCollectCodeBackup);
|
|
|
|
|
} else {
|
|
|
|
|
vailCodeResultResponse.setStatus(5);
|
|
|
|
@ -201,7 +200,6 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public AddEnterCodeResponse setAddEnterCodeResponse(UdiEntity udiEntity, UdiRelevanceResponse checkUdi) {
|
|
|
|
|
AddEnterCodeResponse addEnterCodeResponse = new AddEnterCodeResponse();
|
|
|
|
|
BeanUtils.copyProperties(udiEntity, addEnterCodeResponse);
|
|
|
|
@ -294,26 +292,40 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
|
|
|
|
|
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
|
|
|
|
|
collectOrderBizRequest.setOrderIdFk(filterCodeRequest.getBillNo());
|
|
|
|
|
List<CollectOrderBizResponse> list = ioCollectOrderBizBackupService.filterList(collectOrderBizRequest);
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
List<IoCollectCodeBackup> uniqueBackupsCodes = new ArrayList<>();
|
|
|
|
|
for (CollectOrderBizResponse collectOrderBizResponse : list) {
|
|
|
|
|
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(collectOrderBizResponse.getNameCode());
|
|
|
|
|
//先根据产品 和订单号搜索当前产品码是否包含有替换码
|
|
|
|
|
List<IoCollectCodeBackup> ioCollectCodeBackups1 = list(new LambdaQueryWrapper<IoCollectCodeBackup>()
|
|
|
|
|
.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> uniqueBackupsCodes = ioCollectCodeBackups.stream()
|
|
|
|
|
List<String> uniqueCodes = uniqueBackupsCodes.stream()
|
|
|
|
|
.map(IoCollectCodeBackup::getCode)
|
|
|
|
|
.filter(code -> !ioCollectOrderCheckCodes.stream()
|
|
|
|
|
.map(IoCollectOrderCheckCode::getCode)
|
|
|
|
|
.anyMatch(code::equals))
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
//uniqueBackupsCodes 校验码表中不存在的码
|
|
|
|
|
//uniqueCodes 替换掉的码
|
|
|
|
|
|
|
|
|
|
System.out.println(uniqueCodes);
|
|
|
|
|
List<String> checkCodeList = ioCollectOrderCheckCodes.stream()
|
|
|
|
|
.map(IoCollectOrderCheckCode::getCode)
|
|
|
|
|
.filter(code -> !ioCollectCodeBackups.stream()
|
|
|
|
@ -330,7 +342,7 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
boolean b = removeBatchByIds(ioCollectCodeBackups);
|
|
|
|
|
boolean b = removeBatchByIds(uniqueBackupsCodes);
|
|
|
|
|
ArrayList<IoCollectCodeBackup> collectCodeBackups = new ArrayList<>();
|
|
|
|
|
for (IoCollectOrderCheckCode ioCollectOrderCheckCode : ioCollectOrderCheckCodes) {
|
|
|
|
|
IoCollectCodeBackup ioCollectCodeBackup = new IoCollectCodeBackup();
|
|
|
|
|