From f6c5072ee4b4d2aed80b9d95967325c3d1143003 Mon Sep 17 00:00:00 2001 From: 10001392 <1055202292@qq.com> Date: Thu, 5 Dec 2024 14:48:18 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=B7=A5=E4=BD=9C=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E3=80=91=E5=90=8C=E6=AD=A5SAP=E9=80=BB=E8=BE=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ProcessWorkCenterService.java | 60 ++++++++++++------- 1 file changed, 39 insertions(+), 21 deletions(-) diff --git a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessWorkCenterService.java b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessWorkCenterService.java index acdfbd1d..e3cff356 100644 --- a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessWorkCenterService.java +++ b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessWorkCenterService.java @@ -1,7 +1,8 @@ package com.nflg.product.technology.service; +import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -73,17 +74,15 @@ public class ProcessWorkCenterService extends ServiceImpl "1000".equals(add.get("LSTAR"))).collect(Collectors.toList()); - List addList = new ArrayList<>(tOut.size()); + tOut = tOut.stream().filter(out -> "1000".equals(out.get("LSTAR"))).collect(Collectors.toList()); + // SAP所有数据 + List sapList = new ArrayList<>(tOut.size()); tOut.forEach(out -> { ProcessWorkCenterEntity add = new ProcessWorkCenterEntity(); - add.setRowId(IdWorker.getId()); - // add.setMaterialNo(out.get("MATNR").toString().replaceAll("^[0]+","")); add.setWorkCenter(out.get("ARBPL").toString()); add.setFactory(out.get("WERKS").toString()); add.setName(out.get("KTEXT1").toString()); add.setType(out.get("VERWE").toString()); - // workCenter.setDescription();// 描述 add.setHeader(out.get("VERAN").toString()); add.setHeaderDescription(out.get("KTEXT").toString()); add.setUsefulness(out.get("PLANV").toString()); @@ -102,25 +101,44 @@ public class ProcessWorkCenterService extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - processWorkCenterMapper.delete(wrapper); - - //全量新增 - processWorkCenterMapper.insertBatch(addList); - /* list = Convert.convert(new TypeReference>() { - }, tOut);*/ + // 数据库已有数据 + List dbList = this.list(); + Set workCenterSet = new HashSet<>(); + if (CollUtil.isNotEmpty(dbList)) { + // 工厂_工作中心代码 唯一 + workCenterSet = dbList.stream().map(item -> item.getFactory() + "_" + item.getWorkCenter()).collect(Collectors.toSet()); + } + // 本次SAP新增数据 + List newList = new ArrayList<>(); + // 数据库已有的SAP数据 + List existsList = new ArrayList<>(); + for (ProcessWorkCenterEntity sap : sapList) { + if (!workCenterSet.contains(sap.getFactory() + "_" + sap.getWorkCenter())) { + sap.setRowId(IdWorker.getId()); + sap.setCreatedBy(SessionUtil.getUserName()); + sap.setCreatedTime(new Date()); + // TODO 自动关联虚拟工作中心 + newList.add(sap); + } else { + existsList.add(sap); + } + } + if (CollUtil.isNotEmpty(newList)) { + this.saveBatch(newList); + } + if (CollUtil.isNotEmpty(existsList)) { + existsList.forEach(exists -> { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("factory", exists.getFactory()) + .eq("work_center", exists.getWorkCenter()); + this.update(exists, updateWrapper); + }); + } } } catch (Exception e) { throw new RuntimeException(e);