From a04100a7791e5566c52f137fe2ec337b6b8bba3f Mon Sep 17 00:00:00 2001 From: zengchenxi Date: Tue, 23 Apr 2024 15:29:22 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E9=9C=80=E6=B1=82=E3=80=91=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E4=BE=9B=E5=BA=94=E5=95=86=E8=8E=B7=E5=8F=96=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/biz/manager/ChanjetManager.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java index 2f41ffdc..9571022b 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetManager.java @@ -22,6 +22,7 @@ import com.chanko.yunxi.mes.module.biz.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.procedure.ProcedureDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.processbom.ProcessBomDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.storage.StorageDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.supplier.SupplierDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskreport.TaskReportDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.workshop.WorkshopDO; import com.chanko.yunxi.mes.module.biz.dal.mysql.customer.CustomerMapper; @@ -257,6 +258,67 @@ public class ChanjetManager { @Transactional(rollbackFor = Exception.class) public void querySupplier() throws ChanjetApiException { + String maxTs = null; + do { + QueryPartnerReqVO.QueryPartnerParamVO paramVO = new QueryPartnerReqVO.QueryPartnerParamVO(new HashMap() {{ + put("Name", "供应商"); + }}, maxTs); + CommonResult> result = chanjetSpi.invokeRetList(QUERY_CUSTOMER, new QueryPartnerReqVO(paramVO), QueryPartnerResVO.class); + if(!result.isSuccess()){ + throw new RuntimeException(result.getMsg()); + } + if(CollUtil.isNotEmpty(result.getData())){ + + List dataList = result.getData(); + Map> dataGroupById = dataList.stream().collect(Collectors.groupingBy(QueryPartnerResVO::getID)); + + List doList = supplierMapper.selectList(new LambdaQueryWrapper() {{ + in(SupplierDO::getId, dataGroupById.keySet()); + }}); + Map> existsDOGroupById = doList.stream().collect(Collectors.groupingBy(SupplierDO::getId)); + + // 取最大 ts + QueryPartnerResVO maxTsVO = dataList.stream().sorted(Comparator.comparing((d) -> 0 - Long.parseLong(d.getTS().substring(2), 16))).findFirst().get(); + maxTs = maxTsVO.getTS(); + + // 处理 + ArrayList insertList = new ArrayList<>(16); + ArrayList updateList = new ArrayList<>(16); + dataGroupById.forEach((id, voList) -> { + QueryPartnerResVO vo = voList.get(0); + List existsDOs = existsDOGroupById.get(id); + + if(CollUtil.isNotEmpty(existsDOs)){ + SupplierDO existsDO = existsDOs.get(0); + existsDO.setCode(vo.getCode()) + .setBrief(vo.getShorthand()) + .setStatus(!vo.getDisabled() ? ValidStatusEnum.VALID.getCode() : ValidStatusEnum.INVALID.getCode()) + .setName(vo.getName()); + updateList.add(existsDO); + }else{ + SupplierDO aDO = new SupplierDO(); + aDO.setId(vo.getID()) + .setCode(vo.getCode()) + .setBrief(vo.getShorthand()) + .setStatus(!vo.getDisabled() ? ValidStatusEnum.VALID.getCode() : ValidStatusEnum.INVALID.getCode()) + .setName(vo.getName()); + insertList.add(aDO); + } + }); + + // 入库 + if(CollUtil.isNotEmpty(updateList)) supplierMapper.updateBatch(updateList); + if(CollUtil.isNotEmpty(insertList)) supplierMapper.insertBatch(insertList); + + if(result.getData().size() < paramVO.getPageSize()){ + maxTs = null; + } + }else{ + maxTs = null; + } + + }while (maxTs != null); + } /**