From 7e5570671e6eeba17e681360ce714ded7c1d7b57 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Wed, 8 Jan 2025 20:32:45 +0800 Subject: [PATCH] =?UTF-8?q?1/8=20=E6=89=AB=E7=A0=81=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E5=B7=AE=E4=B8=80=E4=B8=AA=E6=89=AB?= =?UTF-8?q?=E7=A0=81=E8=BF=87=E5=A4=9A=E6=A0=A1=E9=AA=8C1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectCodeBackService.java | 66 +++++++++++-------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectCodeBackService.java b/src/main/java/com/glxp/api/service/collect/IoCollectCodeBackService.java index 0d052575e..c5835ffa0 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectCodeBackService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectCodeBackService.java @@ -151,11 +151,11 @@ public class IoCollectCodeBackService extends ServiceImpl codeList = filterCodeRequest.getCodeList(); for (String code : codeList) { filterCodeRequest.setCode(code); - insert(filterCodeRequest,orderBackup); + insert(filterCodeRequest, 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().eq(IoCollectOrderCheckCode::getCode, filterCodeRequest.getCode())); if (one != null) { - throw new JsonException(500, "该追溯码已被其他单据校验"); + throw new JsonException(500, "该追溯码已被其他单据校验"); } if (orderBackup == null) { - throw new JsonException(500, "订单不存在"); + throw new JsonException(500, "订单不存在"); } UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeRequest.getCode()); if (udiEntity == null) { - throw new JsonException(500, "产品不存在"); + throw new JsonException(500, "产品不存在"); } UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); //吗替换的接口 替换哪个码 @@ -275,7 +273,7 @@ public class IoCollectCodeBackService extends ServiceImpl ioCollectCodeBackups = list(new LambdaQueryWrapper().eq(IoCollectCodeBackup::getBillNo, filterCodeRequest.getBillNo())); @@ -294,26 +292,40 @@ public class IoCollectCodeBackService extends ServiceImpl list = ioCollectOrderBizBackupService.filterList(collectOrderBizRequest); + + // + List uniqueBackupsCodes = new ArrayList<>(); for (CollectOrderBizResponse collectOrderBizResponse : list) { UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(collectOrderBizResponse.getNameCode()); - Integer checkCount = ioCollectOrderCheckCodeService.getCountByRelIdAndBillNo(udiRelevanceResponse.getId(), filterCodeRequest.getBillNo()); - if (checkCount < collectOrderBizResponse.getScanCount()) { - return ResultVOUtils.error(500, udiRelevanceResponse.getCpmctymc() + "追溯码未校验完成"); + //先根据产品 和订单号搜索当前产品码是否包含有替换码 + List ioCollectCodeBackups1 = list(new LambdaQueryWrapper() + .eq(IoCollectCodeBackup::getBillNo, filterCodeRequest.getBillNo()) + .eq(IoCollectCodeBackup::getRelId, udiRelevanceResponse.getId())); + List 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 uniqueBackupsCodes = ioCollectCodeBackups.stream() + List 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 checkCodeList = ioCollectOrderCheckCodes.stream() .map(IoCollectOrderCheckCode::getCode) .filter(code -> !ioCollectCodeBackups.stream() @@ -323,18 +335,18 @@ public class IoCollectCodeBackService extends ServiceImpl().eq(IoSplitFifoCodeEntity::getCode, code)); - if (ioSplitFifoCodeEntity != null){ + if (ioSplitFifoCodeEntity != null) { ioSplitFifoCodeService.removeById(ioSplitFifoCodeEntity); } } - boolean b = removeBatchByIds(ioCollectCodeBackups); + boolean b = removeBatchByIds(uniqueBackupsCodes); ArrayList collectCodeBackups = new ArrayList<>(); - for (IoCollectOrderCheckCode ioCollectOrderCheckCode : ioCollectOrderCheckCodes){ + for (IoCollectOrderCheckCode ioCollectOrderCheckCode : ioCollectOrderCheckCodes) { IoCollectCodeBackup ioCollectCodeBackup = new IoCollectCodeBackup(); - BeanUtils.copyProperties(ioCollectOrderCheckCode,ioCollectCodeBackup); + BeanUtils.copyProperties(ioCollectOrderCheckCode, ioCollectCodeBackup); ioCollectCodeBackup.setScanCodeCheckStatus(1); collectCodeBackups.add(ioCollectCodeBackup); } @@ -349,7 +361,7 @@ public class IoCollectCodeBackService extends ServiceImpl ioCollectOrderBizBackups = ioCollectOrderBizBackupService.listByBillNo(billNo); List udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), null); if (CollUtil.isEmpty(udiRelevanceResponses)) throw new JsonException(500, "字典不存在此产品!");