From a6f0637927ef0715b3cd099a2bf33a954597eca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Wed, 26 Nov 2025 09:56:01 +0800 Subject: [PATCH] =?UTF-8?q?ocr=E8=AF=86=E5=88=AB=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ConsStockFlowServiceImpl.java | 71 ++++++++++--------- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java index a2980e46c..9a87b456c 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java @@ -270,42 +270,49 @@ public class ConsStockFlowServiceImpl extends ServiceImpl { - String infoStr = AliOcrUtil.appCall(inputStream, originalFilename); - SaleOrderDTO saleOrderDTO = JSONObject.parseObject(infoStr, SaleOrderDTO.class); + try { - ArrayList bodyList = new ArrayList<>(); - Set nameList = saleOrderDTO.getItems().stream().map(SaleOrderDTO.Item::getConName).collect(Collectors.toSet()); - Map consInfoMap = new HashMap<>(); - if (!nameList.isEmpty()) { - consInfoMap = consInfoMapper.selectListByQuery(new QueryWrapper().in(ConsInfo::getConName, nameList)) - .stream().collect(Collectors.toMap(ConsInfo::getConName, consInfo -> consInfo)); - } - ArrayList unInCons = new ArrayList<>(); - for (SaleOrderDTO.Item item : saleOrderDTO.getItems()) { - ConsInfo consInfo = consInfoMap.get(item.getConName()); - if (consInfo == null) { - unInCons.add(item); - continue; + String infoStr = AliOcrUtil.appCall(inputStream, originalFilename); + SaleOrderDTO saleOrderDTO = JSONObject.parseObject(infoStr, SaleOrderDTO.class); + + ArrayList bodyList = new ArrayList<>(); + Set nameList = saleOrderDTO.getItems().stream().map(SaleOrderDTO.Item::getConName).collect(Collectors.toSet()); + Map consInfoMap = new HashMap<>(); + if (!nameList.isEmpty()) { + consInfoMap = consInfoMapper.selectListByQuery(new QueryWrapper().in(ConsInfo::getConName, nameList).eq(ConsInfo::getShopId, StpKit.USER.getShopId())) + .stream().collect(Collectors.toMap(ConsInfo::getConName, consInfo -> consInfo)); } - bodyList.add(new ConsInOutStockBodyParam() - .setConId(consInfo.getId().toString()) - .setConName(consInfo.getConName()) - .setPurchasePrice(new BigDecimal(item.getPurchasePrice())) - .setUnitName(item.getUnitName()) - .setSubTotal(new BigDecimal(item.getSubTotal())) - .setInOutNumber(new BigDecimal(item.getInOutNumber()))); + ArrayList unInCons = new ArrayList<>(); + for (SaleOrderDTO.Item item : saleOrderDTO.getItems()) { + ConsInfo consInfo = consInfoMap.get(item.getConName()); + if (consInfo == null) { + unInCons.add(item); + continue; + } + bodyList.add(new ConsInOutStockBodyParam() + .setConId(consInfo.getId().toString()) + .setConName(consInfo.getConName()) + .setPurchasePrice(new BigDecimal(item.getPurchasePrice())) + .setUnitName(item.getUnitName()) + .setSubTotal(new BigDecimal(item.getSubTotal())) + .setInOutNumber(new BigDecimal(item.getInOutNumber()))); + } + + ConsInOutStockHeadParam headParam = new ConsInOutStockHeadParam(); + headParam.setBatchNo(saleOrderDTO.getOrderNumber()) + .setInOutDate(LocalDate.parse(saleOrderDTO.getDate())) + .setAmountPayable(new BigDecimal(saleOrderDTO.getTotalAmount())) + .setBodyList(bodyList) + .setUnInCons(unInCons) + .setOcrSaleOrder(saleOrderDTO); + + + mkOcr.setResp(JSON.toJSONString(headParam)); + ocrService.updateById(mkOcr); + }catch (Exception e) { + log.warn("ocr失败: {}", e.getMessage()); } - ConsInOutStockHeadParam headParam = new ConsInOutStockHeadParam(); - headParam.setBatchNo(saleOrderDTO.getOrderNumber()) - .setInOutDate(LocalDate.parse(saleOrderDTO.getDate())) - .setAmountPayable(new BigDecimal(saleOrderDTO.getTotalAmount())) - .setBodyList(bodyList) - .setUnInCons(unInCons) - .setOcrSaleOrder(saleOrderDTO); - - mkOcr.setResp(JSON.toJSONString(headParam)); - ocrService.updateById(mkOcr); }); return mkOcr.getId();