From ed91503153cef8743e280a4bf508f7c08abfdeca Mon Sep 17 00:00:00 2001 From: xiejunyu Date: Wed, 8 Jun 2022 14:55:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E6=B8=85=E5=8D=95=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E6=B6=88=E6=81=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BussDocumentLibraryEOServiceImpl.java | 1 + .../impl/DummyInventoryBaseEOServiceImpl.java | 225 ++-- .../impl/DummyInventoryInfoEOServiceImpl.java | 1151 +++++++++-------- 3 files changed, 658 insertions(+), 719 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 0363ed8a1..41183d96f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -1560,6 +1560,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl list = this.list(); if(list.size() != 0){ diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java index 8f129cf7e..a95377c5c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryBaseEOServiceImpl.java @@ -13,10 +13,7 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl; import com.jero.modules.domain.service.DomainUserRelService; -import com.jero.modules.dummy.entity.DummyContentChangeEO; -import com.jero.modules.dummy.entity.DummyInventoryBaseEO; -import com.jero.modules.dummy.entity.DummyInventoryInfoEO; -import com.jero.modules.dummy.entity.DummyReadEO; +import com.jero.modules.dummy.entity.*; import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum; import com.jero.modules.dummy.enums.InventoryStateEnum; import com.jero.modules.dummy.enums.ReadFlagEnum; @@ -50,13 +47,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.IOException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -96,6 +87,10 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,ids); iDummyInventoryInfoEOService.remove(wrapper); + + //关联删除虚拟清单log + QueryWrapper logEOQueryWrapper = new QueryWrapper<>(); + logEOQueryWrapper.in("dummy_inventory_base_id",ids); + dummyLogEOService.remove(logEOQueryWrapper); } /** @@ -273,15 +273,18 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,dummyInventoryBaseEO.getId()); List dummyInventoryInfoEOList = iDummyInventoryInfoEOService.list(lambdaQueryWrapper); + String contentLog = null; if(dummyContentChangeEOList.size() == 0){ //没有添加过需要进行第一次添加 + Date thisTime = new Date(); List list = new ArrayList<>(); if(dummyInventoryBaseEOList.size() != 0){ String base = JSONArray.toJSONString(dummyInventoryBaseEOList); DummyContentChangeEO dummyContentChangeEOBase = new DummyContentChangeEO(); dummyContentChangeEOBase.setConnectId(dummyInventoryBaseEO.getId()); dummyContentChangeEOBase.setContentJson(base); + dummyContentChangeEOBase.setUpdateTime(thisTime); list.add(dummyContentChangeEOBase); } if(dummyInventoryInfoEOList.size() != 0){ @@ -290,6 +293,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl dummyContentChangeEOInfoList = iDummyContentChangeEOService.list(wrapperInfo); - if(CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)){ - //3.对比基础表数据 - //3.1截止到现在发布,期间修改的数据(基础) - //最新的数据为-->dummyInventoryBaseEOList + Date lastIssueTime = null; + Date now = new Date(); - //3.2基础表数据对比 - String baseCJ=dummyContentChangeEOBaseList.get(0).getContentJson(); - List baseCJList = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list + if (CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)) { + lastIssueTime = dummyContentChangeEOInfoList.get(0).getUpdateTime(); - //对比,获取值不同的字段 - Map baseDiff = null; - for(int i=0;i< baseCJList.size();i++) { - baseCJList.get(i); - dummyInventoryBaseEOList.get(i); - baseDiff = ListDiff.compareObject(baseCJList.get(i), dummyInventoryBaseEOList.get(i)); - } + if(CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)){ + //3.对比基础表数据 + //3.1截止到现在发布,期间修改的数据(基础) + //最新的数据为-->dummyInventoryBaseEOList - //4.对比详情表数据 - //4.1截止到现在发布,期间修改的数据(详情) - //现在的数据为-->dummyInventoryInfoEOList + //3.2基础表数据对比 + String baseCJ=dummyContentChangeEOBaseList.get(0).getContentJson(); + List baseCJList = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list - //4.2详情表数据(一条基础数据可能对应多个详情数据---一对多) - //数据库里原来的详情数据 - String addSerialNumber=null; - String deleteSerialNumber=null; - List addSerialNumberList =null; - List deleteSerialNumberList =null; + //对比,获取值不同的字段 + Map baseDiff = null; + for(int i=0;i< baseCJList.size();i++) { + baseCJList.get(i); + dummyInventoryBaseEOList.get(i); + baseDiff = ListDiff.compareObject(baseCJList.get(i), dummyInventoryBaseEOList.get(i)); + } - //获取数据库里保存的json - String infoCJ = dummyContentChangeEOInfoList.get(0).getContentJson(); - List infoCJList = JSONArray.parseArray(infoCJ, DummyInventoryInfoEO.class);//json转list - - //翻译字典code值 - disposeDataToEn(dummyInventoryInfoEOList); - - //获取数据库和传入同时存在的编号 - //获取两个的编号 - List infoCJBaseSerialNumberList = infoCJList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList()); - List dummyInventoryInfoEOSerialNumberList = dummyInventoryInfoEOList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList()); - - List sameDummyInventoryInfoEOList = new ArrayList<>(); - List sameinfoCJList = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(dummyInventoryInfoEOSerialNumberList)) { - //查询共有编号 - List sameSerialNumberList = infoCJBaseSerialNumberList.stream().filter(t -> dummyInventoryInfoEOSerialNumberList.contains(t)).collect(Collectors.toList()); - - if(CollectionUtils.isNotEmpty(sameSerialNumberList)) { - - for (String sameSerialNumber : sameSerialNumberList) { - //查询传入里包含共有编号的数据 - DummyInventoryInfoEO sameInfoEO = dummyInventoryInfoEOList.stream().filter(e->e.getSerialNumber().equals(sameSerialNumber)).collect(Collectors.toList()).get(0); - sameDummyInventoryInfoEOList.add(sameInfoEO); - //查询数据库里包含共有编号的数据 - DummyInventoryInfoEO sameInfoCJ = infoCJList.stream().filter(e -> e.getSerialNumber().equals(sameSerialNumber)).collect(Collectors.toList()).get(0); - sameinfoCJList.add(sameInfoCJ); + //4.查详情表两次发布的时间之间的数据 + if(lastIssueTime != now){ + QueryWrapper logEOQueryWrapper = new QueryWrapper<>(); + logEOQueryWrapper.orderByAsc("create_time") + .between("create_time",lastIssueTime,now) + .eq("dummy_inventory_base_id",dummyInventoryBaseEO.getId()) + .eq("is_en_log",CutEnum.EN.getValue()); + List updateLogList = dummyLogEOService.list(logEOQueryWrapper); + if(CollectionUtils.isNotEmpty(updateLogList)){ + contentLog = updateLogList.stream().map(e -> e.getLogContent()).collect(Collectors.joining(",")); } } - } - //4.2.1处理现原共有有详情数据不同值字段 - Map infoDiff = null; - List> infoDiffList=new ArrayList<>(); + //列表,维护清单不同的字段,addSerialNumber,deleteSerialNumber都为空->证明是没有更新的数据,不发送消息,数据不处理 + if(MapUtils.isNotEmpty(baseDiff) || StringUtils.isNotEmpty(contentLog)) { + //向订阅该领域管理的人发消息和飞书 + sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), contentLog,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); - for (int i = 0; i < sameinfoCJList.size(); i++) { - infoDiff = ListDiff.compareObject(sameinfoCJList.get(i), sameDummyInventoryInfoEOList.get(i)); - if (MapUtils.isNotEmpty(infoDiff)) { - if(infoDiff.size() > 1) { - infoDiffList.add(infoDiff); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //5.数据对比完成后.更新之前保存的dummy_inventory_info中的content_json数据,重新保存最新的数据 + if(MapUtils.isNotEmpty(baseDiff)){//列表有不同字段 + String base = JSONArray.toJSONString(dummyInventoryBaseEOList); + UpdateWrapper baseUpdateWrapper=new UpdateWrapper<>(); + baseUpdateWrapper.set("content_json",base) + .set("update_by",sysUser.getUsername()) + .set("update_time",now) + .eq("connect_id",dummyInventoryBaseEOList.get(0).getId()); + dummyContentChangeEOMapper.update(null,baseUpdateWrapper); } - } - } - - //4.2.2处理新增数据 - List infoCJSerialNumberList = infoCJList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList()); - for (DummyInventoryInfoEO dummyInventoryInfoEO : infoCJList) { - addSerialNumberList = dummyInventoryInfoEOList.stream().filter(e -> !dummyInventoryInfoEO.equals(e.getId())) - .map(f -> f.getSerialNumber()).collect(Collectors.toList()); - } - //去掉发布时传入的和数据库同时有的数据 - for(String midSerialNumber:infoCJSerialNumberList){ - addSerialNumberList.remove(midSerialNumber); - } - addSerialNumber =StringUtils.join(addSerialNumberList,","); - - //4.2.3处理删除的数据 - for (DummyInventoryInfoEO dummyInventoryInfoEO : infoCJList) { - deleteSerialNumberList = dummyInventoryInfoEOList.stream().filter(e -> !dummyInventoryInfoEO.equals(e.getId())) - .map(f -> f.getSerialNumber()).collect(Collectors.toList()); - - } - for(String midSerialNumber:deleteSerialNumberList){ - infoCJSerialNumberList.remove(midSerialNumber); - } - deleteSerialNumber=StringUtils.join(infoCJSerialNumberList,","); - - //列表,维护清单不同的字段,addSerialNumber,deleteSerialNumber都为空->证明是没有更新的数据,不发送消息,数据不处理 - if(MapUtils.isNotEmpty(baseDiff) || CollectionUtils.isNotEmpty(infoDiffList) - || StringUtils.isNotEmpty(addSerialNumber) || StringUtils.isNotEmpty(deleteSerialNumber)) { - //向订阅该领域管理的人发消息和飞书 - sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), infoDiffList, addSerialNumber, deleteSerialNumber,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); - - - - Date now=new Date(); - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - //5.数据对比完成后.更新之前保存的dummy_inventory_info中的content_json数据,重新保存最新的数据 - if(MapUtils.isNotEmpty(baseDiff)){//列表有不同字段 - String base = JSONArray.toJSONString(dummyInventoryBaseEOList); - UpdateWrapper baseUpdateWrapper=new UpdateWrapper<>(); - baseUpdateWrapper.set("content_json",base) - .set("update_by",sysUser.getUsername()) - .set("update_time",now) - .eq("connect_id",dummyInventoryBaseEOList.get(0).getId()); - dummyContentChangeEOMapper.update(null,baseUpdateWrapper); - } - if(CollectionUtils.isNotEmpty(infoDiffList) || StringUtils.isNotEmpty(addSerialNumber) - || StringUtils.isNotEmpty(deleteSerialNumber)){//维护清单有不同字段,addSerialNumber,deleteSerialNumber也有数据 +// if(CollectionUtils.isNotEmpty(infoDiffList) || StringUtils.isNotEmpty(addSerialNumber) +// || StringUtils.isNotEmpty(deleteSerialNumber)){//维护清单有不同字段,addSerialNumber,deleteSerialNumber也有数据 String info = JSONArray.toJSONString(dummyInventoryInfoEOList); UpdateWrapper infoUpdateWrapper=new UpdateWrapper<>(); infoUpdateWrapper.set("content_json",info) @@ -430,6 +371,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl有新增,再次发布 @@ -443,9 +385,17 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl e.getSerialNumber()).collect(Collectors.joining(",")); +// String addSerialNumber = dummyInventoryInfoEOList.stream().map(e -> e.getSerialNumber()).collect(Collectors.joining(",")); + QueryWrapper logEOQueryWrapper = new QueryWrapper<>(); + logEOQueryWrapper.orderByAsc("create_time") + .between("create_time",lastIssueTime,now) + .eq("dummy_inventory_base_id",dummyInventoryBaseEO.getId()) + .eq("is_en_log",CutEnum.EN.getValue()); + List updateLogList = dummyLogEOService.list(logEOQueryWrapper); + contentLog = updateLogList.stream().map(e -> e.getLogContent()).collect(Collectors.joining(",")); + iDummyContentChangeEOService.saveBatch(list); - sendMsg(null,dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId(), null, addSerialNumber,null,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); + sendMsg(null,dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId(),contentLog ,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); } } @@ -453,7 +403,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl baseDiff, String idTemp,List> infoDiffList, - String addSerialNumber,String deleteSerialNumber,String state,String cut) { + private void sendMsg(Map baseDiff, String idTemp,String contentLog,String state,String cut) { String baseName = queryById(idTemp).getName();//基础表id String useExplain = queryById(idTemp).getUseExplain(); @@ -1080,7 +1029,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl" - + baseName + "" + " "; + + baseName + "" + " "; String content = null; String contentInfo = null; @@ -1092,8 +1041,8 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl baseDiff, List> infoDiffList - , String addSerialNumber, String deleteSerialNumber,String contentLog) { + public String setContentInfo(String contentInfo, Map baseDiff,String contentLog) { int row = 1; //设置虚拟清单列表的修改消息 @@ -1147,27 +1095,10 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl infoDiff : infoDiffList) { - if (infoDiff.size() > 1) { - contentInfo += row + ". The Number " + infoDiff.get("serialNumber") + " has been updated as follows : " + "\r\n"; - contentInfo = setInfoDiffListContent(contentInfo,infoDiffList,contentLog); - } - } - } return contentInfo; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java index 437db76d7..e341dfc56 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/dummy/service/impl/DummyInventoryInfoEOServiceImpl.java @@ -116,65 +116,65 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl baseList = dummyInventoryBaseEOService.list(infoEOQueryWrapper.eq("id", dummyInventoryInfoEO.getDummyInventoryBaseId())); if(CollectionUtils.isNotEmpty(baseList)){ - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getIds())){ - //虚拟清单详情数据 - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,Arrays.asList(dummyInventoryInfoEO.getDummyInventoryBaseId())); - List dummyInventoryInfoEOS = this.list(lambdaQueryWrapper); + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getIds())){ + //虚拟清单详情数据 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,Arrays.asList(dummyInventoryInfoEO.getDummyInventoryBaseId())); + List dummyInventoryInfoEOS = this.list(lambdaQueryWrapper); - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(BussDocumentLibraryEO::getId, Arrays.asList(dummyInventoryInfoEO.getIds().split(","))); - List bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(wrapper); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(BussDocumentLibraryEO::getId, Arrays.asList(dummyInventoryInfoEO.getIds().split(","))); + List bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(wrapper); - List serialNumberList = new ArrayList<>(); - if(bussDocumentLibraryEOList.size() != 0){ - serialNumberList = bussDocumentLibraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList()); - } + List serialNumberList = new ArrayList<>(); + if(bussDocumentLibraryEOList.size() != 0){ + serialNumberList = bussDocumentLibraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList()); + } - //需要验重(验重--已添加过的不能再添加,提示该标准已存在清单中,不可添加) - if(dummyInventoryInfoEOS.size() != 0 && serialNumberList.size() != 0){ - List finalSerialNumberList = serialNumberList; - List collect = dummyInventoryInfoEOS.stream() - .filter(e -> finalSerialNumberList.contains(e.getSerialNumber())).collect(Collectors.toList()); - List serialNumberListTemp = collect.stream().map(DummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList()); - if(serialNumberListTemp.size() > 0){ - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException(StringUtils.join(serialNumberListTemp,",") + "已存在不能重复添加,请重新选择"); - }else{ - throw new JeroBootException(StringUtils.join(serialNumberListTemp,",") + "Already exists and cannot be added again"); + //需要验重(验重--已添加过的不能再添加,提示该标准已存在清单中,不可添加) + if(dummyInventoryInfoEOS.size() != 0 && serialNumberList.size() != 0){ + List finalSerialNumberList = serialNumberList; + List collect = dummyInventoryInfoEOS.stream() + .filter(e -> finalSerialNumberList.contains(e.getSerialNumber())).collect(Collectors.toList()); + List serialNumberListTemp = collect.stream().map(DummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList()); + if(serialNumberListTemp.size() > 0){ + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException(StringUtils.join(serialNumberListTemp,",") + "已存在不能重复添加,请重新选择"); + }else{ + throw new JeroBootException(StringUtils.join(serialNumberListTemp,",") + "Already exists and cannot be added again"); + } } } - } - List list = new ArrayList<>(); - for (BussDocumentLibraryEO bussDocumentLibraryEO : bussDocumentLibraryEOList) { - DummyInventoryInfoEO dummyInventoryInfoEOTemp = new DummyInventoryInfoEO(); - BeanUtils.copyProperties(bussDocumentLibraryEO,dummyInventoryInfoEOTemp); - String id = UUID.randomUUID().toString().replace("-", ""); - dummyInventoryInfoEOTemp.setId(id); - dummyInventoryInfoEOTemp.setDummyInventoryBaseId(dummyInventoryInfoEO.getDummyInventoryBaseId()); - dummyInventoryInfoEOTemp.setCreateTime(new Date()); - dummyInventoryInfoEOTemp.setUpdateTime(new Date()); - list.add(dummyInventoryInfoEOTemp); + List list = new ArrayList<>(); + for (BussDocumentLibraryEO bussDocumentLibraryEO : bussDocumentLibraryEOList) { + DummyInventoryInfoEO dummyInventoryInfoEOTemp = new DummyInventoryInfoEO(); + BeanUtils.copyProperties(bussDocumentLibraryEO,dummyInventoryInfoEOTemp); + String id = UUID.randomUUID().toString().replace("-", ""); + dummyInventoryInfoEOTemp.setId(id); + dummyInventoryInfoEOTemp.setDummyInventoryBaseId(dummyInventoryInfoEO.getDummyInventoryBaseId()); + dummyInventoryInfoEOTemp.setCreateTime(new Date()); + dummyInventoryInfoEOTemp.setUpdateTime(new Date()); + list.add(dummyInventoryInfoEOTemp); + } + this.saveBatch(list); + //更新log + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String username = sysUser.getUsername(); + String serialNumber = list.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(",")); + String contentLog = username+"向清单中添加了“"+serialNumber+"”"; + String enContentLog = username+" added “"+serialNumber+"” to the list."; + dummyLogEOService.updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.CN.getValue()); + dummyLogEOService.updateLog(enContentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.EN.getValue()); } - this.saveBatch(list); - //更新log - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String username = sysUser.getUsername(); - String serialNumber = list.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(",")); - String contentLog = username+"向清单中添加了“"+serialNumber+"”"; - String enContentLog = username+" added “"+serialNumber+"” to the list."; - dummyLogEOService.updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.CN.getValue()); - dummyLogEOService.updateLog(enContentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.EN.getValue()); - } - }else{ - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("该虚拟清单不存在,新增失败"); }else{ - throw new JeroBootException("The virtual list does not exist, and adding failed."); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("该虚拟清单不存在,新增失败"); + }else{ + throw new JeroBootException("The virtual list does not exist, and adding failed."); + } } } - } /** * 更新 @@ -190,56 +190,56 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl infoEOList = new ArrayList<>(); - infoEOList.add(dummyInventoryInfoEO); - List infoEOListCopy = new ArrayList<>(); - infoEOListCopy.add(dummyInventoryInfoEOCopy); + List infoEOList = new ArrayList<>(); + infoEOList.add(dummyInventoryInfoEO); + List infoEOListCopy = new ArrayList<>(); + infoEOListCopy.add(dummyInventoryInfoEOCopy); - //查询数据库里原来的数据 - QueryWrapper queryWrapper = new QueryWrapper<>(); - List dataList = list(queryWrapper.eq("id", dummyInventoryInfoEO.getId())); - List dataListCopy = DeepCopyListUtil.depCopy(dataList); + //查询数据库里原来的数据 + QueryWrapper queryWrapper = new QueryWrapper<>(); + List dataList = list(queryWrapper.eq("id", dummyInventoryInfoEO.getId())); + List dataListCopy = DeepCopyListUtil.depCopy(dataList); // saveOrUpdate(dummyInventoryInfoEO); - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.in(DummyInventoryInfoEO::getId,dummyInventoryInfoEO.getId()); - setDateNull(dummyInventoryInfoEO, updateWrapper); - //保存 - this.update(dummyInventoryInfoEO,updateWrapper); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(DummyInventoryInfoEO::getId,dummyInventoryInfoEO.getId()); + setDateNull(dummyInventoryInfoEO, updateWrapper); + //保存 + this.update(dummyInventoryInfoEO,updateWrapper); - //翻译-中文 - dummyInventoryBaseEOService.disposeData(infoEOList); - dummyInventoryBaseEOService.disposeData(dataList); - //翻译-英文 - dummyInventoryBaseEOService.disposeDataToEn(infoEOListCopy); - dummyInventoryBaseEOService.disposeDataToEn(dataListCopy); + //翻译-中文 + dummyInventoryBaseEOService.disposeData(infoEOList); + dummyInventoryBaseEOService.disposeData(dataList); + //翻译-英文 + dummyInventoryBaseEOService.disposeDataToEn(infoEOListCopy); + dummyInventoryBaseEOService.disposeDataToEn(dataListCopy); - //比对不同字段 - Map infoDiff = ListDiff.compareObject(dataList.get(0),dummyInventoryInfoEO); - Map infoDiffEn = ListDiff.compareObject(dataListCopy.get(0),dummyInventoryInfoEOCopy); + //比对不同字段 + Map infoDiff = ListDiff.compareObject(dataList.get(0),dummyInventoryInfoEO); + Map infoDiffEn = ListDiff.compareObject(dataListCopy.get(0),dummyInventoryInfoEOCopy); - //设置更新log - List> infoDiffList = new ArrayList<>(); - infoDiffList.add(infoDiff); - List> infoDiffListEn = new ArrayList<>(); - infoDiffListEn.add(infoDiffEn); - if(infoDiff.size()>1) { - contentLog = dummyInventoryBaseEOService.setInfoDiffListContent(null, infoDiffList, contentLog); - enContentLog = dummyInventoryBaseEOService.setInfoDiffListContent(enContentLog, infoDiffListEn, null); + //设置更新log + List> infoDiffList = new ArrayList<>(); + infoDiffList.add(infoDiff); + List> infoDiffListEn = new ArrayList<>(); + infoDiffListEn.add(infoDiffEn); + if(infoDiff.size()>1) { + contentLog = dummyInventoryBaseEOService.setInfoDiffListContent(null, infoDiffList, contentLog); + enContentLog = dummyInventoryBaseEOService.setInfoDiffListContent(enContentLog, infoDiffListEn, null); - dummyLogEOService.updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.CN.getValue()); - dummyLogEOService.updateLog(enContentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.EN.getValue()); - } + dummyLogEOService.updateLog(contentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.CN.getValue()); + dummyLogEOService.updateLog(enContentLog, dummyInventoryInfoEO.getDummyInventoryBaseId(),CutEnum.EN.getValue()); + } }else{ if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ throw new JeroBootException("该虚拟清单不存在,编辑失败"); @@ -272,34 +272,34 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.in(DummyInventoryInfoEO::getId,ids); - List dummyInventoryInfoEOList = this.list(wrapper); - List fileIdList = new ArrayList<>(); - for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOList) { - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignDeliverableTemplate())){ - fileIdList.addAll(Arrays.asList(dummyInventoryInfoEO.getDesignDeliverableTemplate().split(","))); + //文件同步删除 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(DummyInventoryInfoEO::getId,ids); + List dummyInventoryInfoEOList = this.list(wrapper); + List fileIdList = new ArrayList<>(); + for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOList) { + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignDeliverableTemplate())){ + fileIdList.addAll(Arrays.asList(dummyInventoryInfoEO.getDesignDeliverableTemplate().split(","))); + } + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoDeliverableTemplate())){ + fileIdList.addAll(Arrays.asList(dummyInventoryInfoEO.getPrehomoDeliverableTemplate().split(","))); + } + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyDeliverableTemplate())){ + fileIdList.addAll(Arrays.asList(dummyInventoryInfoEO.getVerifyDeliverableTemplate().split(","))); + } } - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoDeliverableTemplate())){ - fileIdList.addAll(Arrays.asList(dummyInventoryInfoEO.getPrehomoDeliverableTemplate().split(","))); - } - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyDeliverableTemplate())){ - fileIdList.addAll(Arrays.asList(dummyInventoryInfoEO.getVerifyDeliverableTemplate().split(","))); - } - } - iOSSFileService.removeByIds(fileIdList); - removeByIds(ids); + iOSSFileService.removeByIds(fileIdList); + removeByIds(ids); - //更新log - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String username = sysUser.getUsername(); - String projectId = dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId(); - String serialNumber = dummyInventoryInfoEOList.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(",")); - String contentLog = username+"删除了清单中的“"+serialNumber+"”"; - String enContentLog = username+" deleted “"+serialNumber+"” from the list"; - dummyLogEOService.updateLog(contentLog, projectId,CutEnum.CN.getValue()); - dummyLogEOService.updateLog(enContentLog, projectId,CutEnum.EN.getValue()); + //更新log + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String username = sysUser.getUsername(); + String projectId = dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId(); + String serialNumber = dummyInventoryInfoEOList.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(",")); + String contentLog = username+"删除了清单中的“"+serialNumber+"”"; + String enContentLog = username+" deleted “"+serialNumber+"” from the list"; + dummyLogEOService.updateLog(contentLog, projectId,CutEnum.CN.getValue()); + dummyLogEOService.updateLog(enContentLog, projectId,CutEnum.EN.getValue()); }else{ if(CutEnum.CN.getValue().equals(cut)){ throw new JeroBootException("该虚拟清单不存在,删除失败"); @@ -350,25 +350,25 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.in(DummyInventoryInfoEO::getId,Arrays.asList(ids.split(","))); - List dummyInventoryInfoEOList = this.list(wrapper); - for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOList) { - dummyInventoryInfoEO.setId(UUID.randomUUID().toString().replace("-", "")); - } - this.saveBatch(dummyInventoryInfoEOList); + if(StringUtils.isNotBlank(ids)){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(DummyInventoryInfoEO::getId,Arrays.asList(ids.split(","))); + List dummyInventoryInfoEOList = this.list(wrapper); + for (DummyInventoryInfoEO dummyInventoryInfoEO : dummyInventoryInfoEOList) { + dummyInventoryInfoEO.setId(UUID.randomUUID().toString().replace("-", "")); + } + this.saveBatch(dummyInventoryInfoEOList); - //更新log - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String username = sysUser.getUsername(); - String projectId = dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId(); - String serialNumber = dummyInventoryInfoEOList.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(",")); - String contentLog = username+"复制了“"+serialNumber+"”"; - String enContentLog = username+" copied “"+serialNumber+"”"; - dummyLogEOService.updateLog(contentLog, projectId,CutEnum.CN.getValue()); - dummyLogEOService.updateLog(enContentLog, projectId,CutEnum.EN.getValue()); - } + //更新log + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String username = sysUser.getUsername(); + String projectId = dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId(); + String serialNumber = dummyInventoryInfoEOList.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(",")); + String contentLog = username+"复制了“"+serialNumber+"”"; + String enContentLog = username+" copied “"+serialNumber+"”"; + dummyLogEOService.updateLog(contentLog, projectId,CutEnum.CN.getValue()); + dummyLogEOService.updateLog(enContentLog, projectId,CutEnum.EN.getValue()); + } }else{ if(CutEnum.CN.getValue().equals(cut)){ throw new JeroBootException("该虚拟清单不存在,复制失败"); @@ -385,193 +385,200 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl idsList = Arrays.asList(dummyInventoryInfoEO.getIds().split(",")); + List infoEOList = listByIds(idsList); + String baseId = null; + if (CollectionUtils.isNotEmpty(infoEOList)) { + baseId = infoEOList.get(0).getDummyInventoryBaseId(); + } //检查虚拟清单是否存在 QueryWrapper infoEOQueryWrapper = new QueryWrapper<>(); - List baseList = dummyInventoryBaseEOService.list(infoEOQueryWrapper.in("id", dummyInventoryInfoEO.getIds())); - if(CollectionUtils.isNotEmpty(baseList)){ - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getIds())){ - //根据id查询数据库中完整信息,翻译 - List idList = Arrays.asList(dummyInventoryInfoEO.getIds().split(",")); - QueryWrapper queryWrapper = new QueryWrapper<>(); - List infoList = list(queryWrapper.in("id", idList)); - String projectId = infoList.get(0).getDummyInventoryBaseId(); - List dummyInventoryInfoEOList = new ArrayList<>(); - for (String id : dummyInventoryInfoEO.getIds().split(",")) { - DummyInventoryInfoEO dummyInventoryInfoEOTemp = new DummyInventoryInfoEO(); - dummyInventoryInfoEOTemp.setId(id); - //实施类别 implementType - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getImplementType())){ - dummyInventoryInfoEOTemp.setImplementType(dummyInventoryInfoEO.getImplementType()); - }else{ - dummyInventoryInfoEOTemp.setImplementType(""); + List baseList = dummyInventoryBaseEOService.list(infoEOQueryWrapper.eq("id",baseId)); + if(CollectionUtils.isNotEmpty(baseList)){ + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getIds())){ + //根据id查询数据库中完整信息,翻译 + List idList = Arrays.asList(dummyInventoryInfoEO.getIds().split(",")); + QueryWrapper queryWrapper = new QueryWrapper<>(); + List infoList = list(queryWrapper.in("id", idList)); + String projectId = infoList.get(0).getDummyInventoryBaseId(); + + List dummyInventoryInfoEOList = new ArrayList<>(); + for (String id : dummyInventoryInfoEO.getIds().split(",")) { + DummyInventoryInfoEO dummyInventoryInfoEOTemp = new DummyInventoryInfoEO(); + dummyInventoryInfoEOTemp.setId(id); + //实施类别 implementType + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getImplementType())){ + dummyInventoryInfoEOTemp.setImplementType(dummyInventoryInfoEO.getImplementType()); + }else{ + dummyInventoryInfoEOTemp.setImplementType(""); + } + //认证类型 attestationType + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationType())){ + dummyInventoryInfoEOTemp.setAttestationType(dummyInventoryInfoEO.getAttestationType()); + }else{ + dummyInventoryInfoEOTemp.setAttestationType(""); + } + //认证级别 attestationRank + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationRank())){ + dummyInventoryInfoEOTemp.setAttestationRank(dummyInventoryInfoEO.getAttestationRank()); + }else{ + dummyInventoryInfoEOTemp.setAttestationRank(""); + } + //责任领域 dutyTerritory + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getDutyTerritory())){ + dummyInventoryInfoEOTemp.setDutyTerritory(dummyInventoryInfoEO.getDutyTerritory()); + }else{ + dummyInventoryInfoEOTemp.setDutyTerritory(""); + } + //适用范围 shi4Yong4Fan4Wei2 + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2())){ + dummyInventoryInfoEOTemp.setShi4Yong4Fan4Wei2(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2()); + }else{ + dummyInventoryInfoEOTemp.setShi4Yong4Fan4Wei2(""); + } + //技术领域 technologyTerritory + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())){ + dummyInventoryInfoEOTemp.setTechnologyTerritory(dummyInventoryInfoEO.getTechnologyTerritory()); + }else{ + dummyInventoryInfoEOTemp.setTechnologyTerritory(""); + } + //适用地区 region + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getRegion())){ + dummyInventoryInfoEOTemp.setRegion(dummyInventoryInfoEO.getRegion()); + }else{ + dummyInventoryInfoEOTemp.setRegion(""); + } + //新车实施日期 + if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){ + dummyInventoryInfoEOTemp.setXin1Che1Xing2Shi2Shi1Ri4Qi1(dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1()); + } + //在产车实施日期 + if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getImplementTime())){ + dummyInventoryInfoEOTemp.setImplementTime(dummyInventoryInfoEO.getImplementTime()); + } + dummyInventoryInfoEOList.add(dummyInventoryInfoEOTemp); } - //认证类型 attestationType - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationType())){ - dummyInventoryInfoEOTemp.setAttestationType(dummyInventoryInfoEO.getAttestationType()); - }else{ - dummyInventoryInfoEOTemp.setAttestationType(""); - } - //认证级别 attestationRank - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationRank())){ - dummyInventoryInfoEOTemp.setAttestationRank(dummyInventoryInfoEO.getAttestationRank()); - }else{ - dummyInventoryInfoEOTemp.setAttestationRank(""); - } - //责任领域 dutyTerritory - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getDutyTerritory())){ - dummyInventoryInfoEOTemp.setDutyTerritory(dummyInventoryInfoEO.getDutyTerritory()); - }else{ - dummyInventoryInfoEOTemp.setDutyTerritory(""); - } - //适用范围 shi4Yong4Fan4Wei2 - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2())){ - dummyInventoryInfoEOTemp.setShi4Yong4Fan4Wei2(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2()); - }else{ - dummyInventoryInfoEOTemp.setShi4Yong4Fan4Wei2(""); - } - //技术领域 technologyTerritory - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())){ - dummyInventoryInfoEOTemp.setTechnologyTerritory(dummyInventoryInfoEO.getTechnologyTerritory()); - }else{ - dummyInventoryInfoEOTemp.setTechnologyTerritory(""); - } - //适用地区 region - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getRegion())){ - dummyInventoryInfoEOTemp.setRegion(dummyInventoryInfoEO.getRegion()); - }else{ - dummyInventoryInfoEOTemp.setRegion(""); - } - //新车实施日期 - if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){ - dummyInventoryInfoEOTemp.setXin1Che1Xing2Shi2Shi1Ri4Qi1(dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1()); - } - //在产车实施日期 - if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getImplementTime())){ - dummyInventoryInfoEOTemp.setImplementTime(dummyInventoryInfoEO.getImplementTime()); - } - dummyInventoryInfoEOList.add(dummyInventoryInfoEOTemp); - } // this.updateBatchById(dummyInventoryInfoEOList); - for (DummyInventoryInfoEO inventoryInfoEO : dummyInventoryInfoEOList) { - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.in(DummyInventoryInfoEO::getId,inventoryInfoEO.getId()); - setDateNull(inventoryInfoEO, updateWrapper); - //保存 - this.update(inventoryInfoEO,updateWrapper); - } + for (DummyInventoryInfoEO inventoryInfoEO : dummyInventoryInfoEOList) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(DummyInventoryInfoEO::getId,inventoryInfoEO.getId()); + setDateNull(inventoryInfoEO, updateWrapper); + //保存 + this.update(inventoryInfoEO,updateWrapper); + } - //更新log - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String username = sysUser.getUsername(); - String contentLog = username+"批量设置了“"; - StringBuilder contentLogBuilder = new StringBuilder(contentLog); - String enContentLog = username+" batch set “"; - StringBuilder enContentLogBuilder = new StringBuilder(enContentLog); + //更新log + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String username = sysUser.getUsername(); + String contentLog = username+"批量设置了“"; + StringBuilder contentLogBuilder = new StringBuilder(contentLog); + String enContentLog = username+" batch set “"; + StringBuilder enContentLogBuilder = new StringBuilder(enContentLog); - List infoListCopy = DeepCopyListUtil.depCopy(infoList); + List infoListCopy = DeepCopyListUtil.depCopy(infoList); - //根据id查询数据库中完整信息,翻译 - dummyInventoryBaseEOService.disposeData(infoList); - dummyInventoryBaseEOService.disposeDataToEn(infoListCopy); + //根据id查询数据库中完整信息,翻译 + dummyInventoryBaseEOService.disposeData(infoList); + dummyInventoryBaseEOService.disposeDataToEn(infoListCopy); - //翻译传入的数据 - List inputList = new ArrayList<>(); - inputList.add(dummyInventoryInfoEO); - dummyInventoryBaseEOService.disposeData(inputList); - DummyInventoryInfoEO inputInfoEO = inputList.get(0); + //翻译传入的数据 + List inputList = new ArrayList<>(); + inputList.add(dummyInventoryInfoEO); + dummyInventoryBaseEOService.disposeData(inputList); + DummyInventoryInfoEO inputInfoEO = inputList.get(0); - for (String id : idList) { - DummyInventoryInfoEO info = infoList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0); - DummyInventoryInfoEO infoCopy = infoListCopy.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0); - contentLogBuilder.append(info.getSerialNumber() + ":"); - enContentLogBuilder.append(infoCopy.getSerialNumber() + ":"); - DummyInventoryInfoEO dummyInventoryInfoEOTemp = new DummyInventoryInfoEO(); - dummyInventoryInfoEOTemp.setId(id); + for (String id : idList) { + DummyInventoryInfoEO info = infoList.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0); + DummyInventoryInfoEO infoCopy = infoListCopy.stream().filter(e -> id.equals(e.getId())).collect(Collectors.toList()).get(0); + contentLogBuilder.append(info.getSerialNumber() + ":"); + enContentLogBuilder.append(infoCopy.getSerialNumber() + ":"); + DummyInventoryInfoEO dummyInventoryInfoEOTemp = new DummyInventoryInfoEO(); + dummyInventoryInfoEOTemp.setId(id); - //实施类别 implementType - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getImplementType())) { - if (!info.getImplementType().equals(inputInfoEO.getImplementType()) && !inputInfoEO.getImplementType().equals("空")){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getName(), info.getImplementType(), inputInfoEO.getImplementType()); - setUpdateEnContentLog(enContentLogBuilder,DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getEnName(), infoCopy.getImplementType(), inputInfoEO.getImplementType()); + //实施类别 implementType + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getImplementType())) { + if (!info.getImplementType().equals(inputInfoEO.getImplementType()) && !inputInfoEO.getImplementType().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getName(), info.getImplementType(), inputInfoEO.getImplementType()); + setUpdateEnContentLog(enContentLogBuilder,DummyInventoryBaseFieldEnum.IMPLEMENT_TYPE.getEnName(), infoCopy.getImplementType(), inputInfoEO.getImplementType()); + } } - } - //认证类型 attestationType - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationType())) { - if (!info.getAttestationType().equals(inputInfoEO.getAttestationType()) && !inputInfoEO.getAttestationType().equals("空")){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getName(), info.getAttestationType(), inputInfoEO.getAttestationType()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getEnName(), infoCopy.getAttestationType(), inputInfoEO.getAttestationType()); + //认证类型 attestationType + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationType())) { + if (!info.getAttestationType().equals(inputInfoEO.getAttestationType()) && !inputInfoEO.getAttestationType().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getName(), info.getAttestationType(), inputInfoEO.getAttestationType()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_TYPE.getEnName(), infoCopy.getAttestationType(), inputInfoEO.getAttestationType()); + } } - } - //认证级别 attestationRank - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationRank())) { - if (!info.getAttestationRank().equals(inputInfoEO.getAttestationRank()) && !inputInfoEO.getAttestationRank().equals("空")){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getName(), info.getAttestationRank(), inputInfoEO.getAttestationRank()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getEnName(), infoCopy.getAttestationRank(), inputInfoEO.getAttestationRank()); + //认证级别 attestationRank + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getAttestationRank())) { + if (!info.getAttestationRank().equals(inputInfoEO.getAttestationRank()) && !inputInfoEO.getAttestationRank().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getName(), info.getAttestationRank(), inputInfoEO.getAttestationRank()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.ATTESTATION_RANK.getEnName(), infoCopy.getAttestationRank(), inputInfoEO.getAttestationRank()); + } } - } - //责任领域 dutyTerritory - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getDutyTerritory())) { - if (!info.getDutyTerritory().equals(inputInfoEO.getDutyTerritory()) && !inputInfoEO.getDutyTerritory().equals("空")){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getName(), info.getDutyTerritory(), inputInfoEO.getDutyTerritory()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getEnName(), infoCopy.getDutyTerritory(), inputInfoEO.getDutyTerritory()); + //责任领域 dutyTerritory + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getDutyTerritory())) { + if (!info.getDutyTerritory().equals(inputInfoEO.getDutyTerritory()) && !inputInfoEO.getDutyTerritory().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getName(), info.getDutyTerritory(), inputInfoEO.getDutyTerritory()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.DUTY_TERRITORY.getEnName(), infoCopy.getDutyTerritory(), inputInfoEO.getDutyTerritory()); + } } - } - //适用范围 shi4Yong4Fan4Wei2 - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2())){ - if (!info.getShi4Yong4Fan4Wei2().equals(inputInfoEO.getShi4Yong4Fan4Wei2()) && !inputInfoEO.getShi4Yong4Fan4Wei2().equals("空")){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getName(),info.getShi4Yong4Fan4Wei2(),inputInfoEO.getShi4Yong4Fan4Wei2()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getEnName(),infoCopy.getShi4Yong4Fan4Wei2(),inputInfoEO.getShi4Yong4Fan4Wei2()); + //适用范围 shi4Yong4Fan4Wei2 + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2())){ + if (!info.getShi4Yong4Fan4Wei2().equals(inputInfoEO.getShi4Yong4Fan4Wei2()) && !inputInfoEO.getShi4Yong4Fan4Wei2().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getName(),info.getShi4Yong4Fan4Wei2(),inputInfoEO.getShi4Yong4Fan4Wei2()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.SHI4_YONG4_FAN4_WEI2.getEnName(),infoCopy.getShi4Yong4Fan4Wei2(),inputInfoEO.getShi4Yong4Fan4Wei2()); + } } - } - //技术领域 technologyTerritory - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())){ - if (!info.getTechnologyTerritoryName().equals(inputInfoEO.getTechnologyTerritoryName()) && !inputInfoEO.getTechnologyTerritoryName().equals("空")){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getName(),info.getTechnologyTerritoryName(),inputInfoEO.getTechnologyTerritoryName()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getEnName(),infoCopy.getTechnologyTerritoryName(),inputInfoEO.getTechnologyTerritoryName()); + //技术领域 technologyTerritory + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())){ + if (!info.getTechnologyTerritoryName().equals(inputInfoEO.getTechnologyTerritoryName()) && !inputInfoEO.getTechnologyTerritoryName().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getName(),info.getTechnologyTerritoryName(),inputInfoEO.getTechnologyTerritoryName()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.TECHNOLOGY_TERRITORY.getEnName(),infoCopy.getTechnologyTerritoryName(),inputInfoEO.getTechnologyTerritoryName()); + } } - } - //适用地区 region - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getRegion())){ - if (!info.getRegion().equals(inputInfoEO.getRegion()) && !inputInfoEO.getRegion().equals("空")){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.REGION.getName(),info.getRegion(),inputInfoEO.getRegion()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.REGION.getEnName(),infoCopy.getRegion(),inputInfoEO.getRegion()); + //适用地区 region + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getRegion())){ + if (!info.getRegion().equals(inputInfoEO.getRegion()) && !inputInfoEO.getRegion().equals("空")){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.REGION.getName(),info.getRegion(),inputInfoEO.getRegion()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.REGION.getEnName(),infoCopy.getRegion(),inputInfoEO.getRegion()); + } } - } - //新车实施日期 - if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){ - if (info.getXin1Che1Xing2Shi2Shi1Ri4Qi1() == null){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(),"空",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(),"null",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); - }else { - if (!info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String().equals(inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String())) { - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + //新车实施日期 + if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1())){ + if (info.getXin1Che1Xing2Shi2Shi1Ri4Qi1() == null){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(),"空",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(),"null",inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + }else { + if (!info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String().equals(inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String())) { + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.XIN1_CHE1_XING2_SHI2_SHI1_RI4_QI1.getEnName(), info.getXin1Che1Xing2Shi2Shi1Ri4Qi1String(), inputInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1String()); + } + } + } + //在产车实施日期 + if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getImplementTime())){ + if (info.getImplementTime() == null){ + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName(),"空",inputInfoEO.getImplementTimeString()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getEnName(),"null",inputInfoEO.getImplementTimeString()); + }else { + if (!info.getImplementTimeString().equals(inputInfoEO.getImplementTimeString())) { + setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString()); + setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getEnName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString()); + } } } } - //在产车实施日期 - if(ObjectUtils.isNotEmpty(dummyInventoryInfoEO.getImplementTime())){ - if (info.getImplementTime() == null){ - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName(),"空",inputInfoEO.getImplementTimeString()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getEnName(),"null",inputInfoEO.getImplementTimeString()); - }else { - if (!info.getImplementTimeString().equals(inputInfoEO.getImplementTimeString())) { - setUpdateContentLog(contentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString()); - setUpdateEnContentLog(enContentLogBuilder, DummyInventoryBaseFieldEnum.IMPLEMENT_TIME.getEnName(), info.getImplementTimeString(), inputInfoEO.getImplementTimeString()); - } - } - } - } - contentLog = contentLogBuilder.substring(0, contentLogBuilder.length() - 1); - contentLog += "”"; - enContentLog = enContentLogBuilder.substring(0, enContentLogBuilder.length() - 1); - enContentLog += "”"; - dummyLogEOService.updateLog(contentLog, projectId,CutEnum.CN.getValue()); - dummyLogEOService.updateLog(enContentLog, projectId,CutEnum.EN.getValue()); - } + contentLog = contentLogBuilder.substring(0, contentLogBuilder.length() - 1); + contentLog += "”"; + enContentLog = enContentLogBuilder.substring(0, enContentLogBuilder.length() - 1); + enContentLog += "”"; + dummyLogEOService.updateLog(contentLog, projectId,CutEnum.CN.getValue()); + dummyLogEOService.updateLog(enContentLog, projectId,CutEnum.EN.getValue()); + } }else{ if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ throw new JeroBootException("该虚拟清单不存在,批量编辑失败"); @@ -878,249 +885,249 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl infoEOQueryWrapper = new QueryWrapper<>(); List baseList = dummyInventoryBaseEOService.list(infoEOQueryWrapper.eq("id", dummyInventoryInfoEO.getDummyInventoryBaseId())); if(CollectionUtils.isNotEmpty(baseList)){ - String title = ""; - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - title = "*编号,子标题,实施类别,WVTA ID,认证类型,*认证级别,适用增补件,*责任领域,备注," + - "设计交付物类型,设计交付物模板,设计发起人,设计责任人,pre交付物类型,pre交付物模板,pre发起人,pre责任人,验证交付物类型,验证交付物模板,验证发起人,验证责任人"; - }else{ - title = "*Number,Sub-Title,Usage," + - "WVTA ID,Certification Type," + - "*Certification Level," +"Applicable Supplement,"+ - "*Responsible Field,Comments," + - "design type of deliverables,design deliverable template,design initiator,design person liable," + - "pre type of deliverables,pre deliverable template,pre initiator,pre person liable," + - "verify type of deliverables,verify deliverable template,verify initiator,verify person liable"; - } - - int pos = file.getOriginalFilename().lastIndexOf("."); - String str = file.getOriginalFilename().substring(pos + 1).toLowerCase(); - String filenameorg = file.getOriginalFilename().substring(0, pos); - //判断上传文件必须是zip - if (!str.equals("zip")) { + String title = ""; if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("请上传zip格式的文件或rar格式的文件"); + title = "*编号,子标题,实施类别,WVTA ID,认证类型,*认证级别,适用增补件,*责任领域,备注," + + "设计交付物类型,设计交付物模板,设计发起人,设计责任人,pre交付物类型,pre交付物模板,pre发起人,pre责任人,验证交付物类型,验证交付物模板,验证发起人,验证责任人"; }else{ - throw new JeroBootException("Please upload a zip file or rar file"); + title = "*Number,Sub-Title,Usage," + + "WVTA ID,Certification Type," + + "*Certification Level," +"Applicable Supplement,"+ + "*Responsible Field,Comments," + + "design type of deliverables,design deliverable template,design initiator,design person liable," + + "pre type of deliverables,pre deliverable template,pre initiator,pre person liable," + + "verify type of deliverables,verify deliverable template,verify initiator,verify person liable"; } - } - String path = uploadpath + File.separator + "modal" + File.separator + filenameorg + System.currentTimeMillis(); - File saveDirectory = new File(path); - if (!saveDirectory.isDirectory()) { - saveDirectory.mkdir(); - } - FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path + File.separator + file.getOriginalFilename())); - //解压缩 - String zipEntryName = ""; - if (str.equals("zip")) { - zipEntryName = FileUnZip.unZipFiles(path + File.separator + file.getOriginalFilename(), path); - } + int pos = file.getOriginalFilename().lastIndexOf("."); + String str = file.getOriginalFilename().substring(pos + 1).toLowerCase(); + String filenameorg = file.getOriginalFilename().substring(0, pos); + //判断上传文件必须是zip + if (!str.equals("zip")) { + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("请上传zip格式的文件或rar格式的文件"); + }else{ + throw new JeroBootException("Please upload a zip file or rar file"); + } - - //判断压缩包下是否只有一个文件夹 - File fileTemp = new File(path); - int length = fileTemp.listFiles().length; - if (length > 2) { - //删除原上传文件 - FileUnZip.deleteDir(saveDirectory); - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("压缩包中必须有且仅有一个文件夹,请重新上传"); - }else{ - throw new JeroBootException("There must be only one folder in the compressed package Please upload it again"); + } + String path = uploadpath + File.separator + "modal" + File.separator + filenameorg + System.currentTimeMillis(); + File saveDirectory = new File(path); + if (!saveDirectory.isDirectory()) { + saveDirectory.mkdir(); + } + FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path + File.separator + file.getOriginalFilename())); + //解压缩 + String zipEntryName = ""; + if (str.equals("zip")) { + zipEntryName = FileUnZip.unZipFiles(path + File.separator + file.getOriginalFilename(), path); } - } - File fileNew = new File(zipEntryName); - List fileList = new ArrayList<>(); - for (File file1 : fileNew.listFiles()) { - if (file1.getName().contains(".xls") || file1.getName().contains(".xlsx")) { - fileList.add(file1); + + //判断压缩包下是否只有一个文件夹 + File fileTemp = new File(path); + int length = fileTemp.listFiles().length; + if (length > 2) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("压缩包中必须有且仅有一个文件夹,请重新上传"); + }else{ + throw new JeroBootException("There must be only one folder in the compressed package Please upload it again"); + } + } - } - if (fileList.size() == 0) { - //删除原上传文件 - FileUnZip.deleteDir(saveDirectory); - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("压缩包根目录下没有excel作为导入数据,请重新上传"); - }else{ - throw new JeroBootException("Excel does not exist in the root directory of the compressed package Please upload it again"); + File fileNew = new File(zipEntryName); + List fileList = new ArrayList<>(); + for (File file1 : fileNew.listFiles()) { + if (file1.getName().contains(".xls") || file1.getName().contains(".xlsx")) { + fileList.add(file1); + } + } + if (fileList.size() == 0) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("压缩包根目录下没有excel作为导入数据,请重新上传"); + }else{ + throw new JeroBootException("Excel does not exist in the root directory of the compressed package Please upload it again"); + } + + } else if (fileList.size() > 1) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("压缩包根目录下仅能存在一个excel为导入数据,请重新上传"); + }else{ + throw new JeroBootException("Only one Excel file can be imported in the compressed package root directory. Please upload data again"); + } + } - } else if (fileList.size() > 1) { - //删除原上传文件 - FileUnZip.deleteDir(saveDirectory); - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("压缩包根目录下仅能存在一个excel为导入数据,请重新上传"); - }else{ - throw new JeroBootException("Only one Excel file can be imported in the compressed package root directory. Please upload data again"); + // 数据相关处理, + // 1.获取其中的Excel, + List excelfilelist = FileUnZip.readImpExcelFile(zipEntryName); + System.gc(); + if (excelfilelist.size() < 1) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("压缩包内没有上传Excel数据"); + }else{ + throw new JeroBootException("No Excel data is uploaded in the compressed package"); + } + + } else if (excelfilelist.size() > 1) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("压缩包内有多个Excel数据源"); + }else{ + throw new JeroBootException("There are multiple Excel data sources in the zip package"); + } + } - - } - - // 数据相关处理, - // 1.获取其中的Excel, - List excelfilelist = FileUnZip.readImpExcelFile(zipEntryName); - System.gc(); - if (excelfilelist.size() < 1) { - //删除原上传文件 - FileUnZip.deleteDir(saveDirectory); - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("压缩包内没有上传Excel数据"); - }else{ - throw new JeroBootException("No Excel data is uploaded in the compressed package"); - } - - } else if (excelfilelist.size() > 1) { - //删除原上传文件 - FileUnZip.deleteDir(saveDirectory); - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("压缩包内有多个Excel数据源"); - }else{ - throw new JeroBootException("There are multiple Excel data sources in the zip package"); - } - - } - List datas = new ArrayList<>(); - File excelFile = excelfilelist.get(0); - Workbook workbook = WorkbookFactory.create(excelFile); - List> dataList = new ArrayList<>(); - if (workbook != null) { - DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); - Sheet sheet = workbook.getSheetAt(0); - if (sheet != null) { - StringBuilder headerSb = new StringBuilder(); - int rowNos = sheet.getLastRowNum();// 得到excel的总记录条数 - for (int i = 0; i <= rowNos; i++) { - Row row = sheet.getRow(i); - Row headerRow = sheet.getRow(i); - boolean isBlank = isRowEmpty(row); - String key = ""; - if (row != null && !isBlank) { - int columNos = headerRow.getLastCellNum();// 表头总共的列数 - Map rowList = new LinkedHashMap<>(); - for (int j = 0; j < columNos; j++) { - Cell cell = row.getCell(j); - Cell headerCell = headerRow.getCell(j); - if (cell != null) { - if (i == 0) { - cell.setCellType(HSSFCell.CELL_TYPE_STRING); - headerSb.append(cell.getStringCellValue() + ","); - if(j == 8){ - break; - } - }else if(i == 1){ - if(j > 8){ - String flag = ""; - if(8 < j && j < 13){ - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - flag ="设计"; - }else{ - flag ="design "; - } - key = flag + headerCell.getStringCellValue(); - } - if(12 < j && j < 17){ - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - flag ="pre"; - }else{ - flag ="pre "; - } - key = flag + headerCell.getStringCellValue(); - } - if(16 < j && j < 21){ - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - flag ="验证"; - }else{ - flag ="verify "; - } - key = flag + headerCell.getStringCellValue(); - - } - headerSb.append(key + ","); - } - } else if(i > 2){ - List headList = Arrays.asList(headerSb.toString().split(",")); - String field =""; - if (HSSFCell.CELL_TYPE_NUMERIC == cell.getCellType() && HSSFDateUtil.isCellDateFormatted(cell)) { - Date d = cell.getDateCellValue(); - field = fieldConvert(headList.get(j)); - rowList.put(field, df.format(d)); - } else { - field = fieldConvert(headList.get(j)); + List datas = new ArrayList<>(); + File excelFile = excelfilelist.get(0); + Workbook workbook = WorkbookFactory.create(excelFile); + List> dataList = new ArrayList<>(); + if (workbook != null) { + DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Sheet sheet = workbook.getSheetAt(0); + if (sheet != null) { + StringBuilder headerSb = new StringBuilder(); + int rowNos = sheet.getLastRowNum();// 得到excel的总记录条数 + for (int i = 0; i <= rowNos; i++) { + Row row = sheet.getRow(i); + Row headerRow = sheet.getRow(i); + boolean isBlank = isRowEmpty(row); + String key = ""; + if (row != null && !isBlank) { + int columNos = headerRow.getLastCellNum();// 表头总共的列数 + Map rowList = new LinkedHashMap<>(); + for (int j = 0; j < columNos; j++) { + Cell cell = row.getCell(j); + Cell headerCell = headerRow.getCell(j); + if (cell != null) { + if (i == 0) { cell.setCellType(HSSFCell.CELL_TYPE_STRING); - String stringCellValue = cell.getStringCellValue(); - if (StringUtils.isNotBlank(stringCellValue)) { - String replace = stringCellValue.replace(",", ","); - rowList.put(field, replace); + headerSb.append(cell.getStringCellValue() + ","); + if(j == 8){ + break; + } + }else if(i == 1){ + if(j > 8){ + String flag = ""; + if(8 < j && j < 13){ + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + flag ="设计"; + }else{ + flag ="design "; + } + key = flag + headerCell.getStringCellValue(); + } + if(12 < j && j < 17){ + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + flag ="pre"; + }else{ + flag ="pre "; + } + key = flag + headerCell.getStringCellValue(); + } + if(16 < j && j < 21){ + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + flag ="验证"; + }else{ + flag ="verify "; + } + key = flag + headerCell.getStringCellValue(); + + } + headerSb.append(key + ","); + } + } else if(i > 2){ + List headList = Arrays.asList(headerSb.toString().split(",")); + String field =""; + if (HSSFCell.CELL_TYPE_NUMERIC == cell.getCellType() && HSSFDateUtil.isCellDateFormatted(cell)) { + Date d = cell.getDateCellValue(); + field = fieldConvert(headList.get(j)); + rowList.put(field, df.format(d)); } else { - rowList.put(field, ""); + field = fieldConvert(headList.get(j)); + cell.setCellType(HSSFCell.CELL_TYPE_STRING); + String stringCellValue = cell.getStringCellValue(); + if (StringUtils.isNotBlank(stringCellValue)) { + String replace = stringCellValue.replace(",", ","); + rowList.put(field, replace); + } else { + rowList.put(field, ""); + } } } } } - } - if (i > 2) { - dataList.add(rowList); + if (i > 2) { + dataList.add(rowList); + } } } - } - if (dataList.size() == 0) { - //删除原上传文件 - FileUnZip.deleteDir(saveDirectory); - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("请填写必填字段内容,带*的为必填"); + if (dataList.size() == 0) { + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("请填写必填字段内容,带*的为必填"); + }else{ + throw new JeroBootException("Please fill in the required fields marked with *"); + } + }else{ - throw new JeroBootException("Please fill in the required fields marked with *"); + //数据转换 JSON.parseObject(JSON.toJSONString(map), MyUser.class) + for (Map stringStringMap : dataList) { + DummyInventoryInfoEO dummyInventoryInfoEOTemp = JSON.parseObject(JSON.toJSONString(stringStringMap), DummyInventoryInfoEO.class); + dummyInventoryInfoEOTemp.setCut(dummyInventoryInfoEO.getCut()); + dummyInventoryInfoEOTemp.setDummyInventoryBaseId(dummyInventoryInfoEO.getDummyInventoryBaseId()); + datas.add(dummyInventoryInfoEOTemp); + } + } + // 校验头部是否符合模板 + String substring = headerSb.toString(); + if (substring.endsWith(",") || substring.endsWith(",")){ + substring = headerSb.substring(0, headerSb.length() - 1); } - }else{ - //数据转换 JSON.parseObject(JSON.toJSONString(map), MyUser.class) - for (Map stringStringMap : dataList) { - DummyInventoryInfoEO dummyInventoryInfoEOTemp = JSON.parseObject(JSON.toJSONString(stringStringMap), DummyInventoryInfoEO.class); - dummyInventoryInfoEOTemp.setCut(dummyInventoryInfoEO.getCut()); - dummyInventoryInfoEOTemp.setDummyInventoryBaseId(dummyInventoryInfoEO.getDummyInventoryBaseId()); - datas.add(dummyInventoryInfoEOTemp); - } - } - // 校验头部是否符合模板 - String substring = headerSb.toString(); - if (substring.endsWith(",") || substring.endsWith(",")){ - substring = headerSb.substring(0, headerSb.length() - 1); - } + String excelHeader = substring.toString(); + if (!title.equals(excelHeader)) { + workbook.close(); + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("读取失败,请严格按照模板文件导入数据"); + }else{ + throw new JeroBootException("The data fails to be read. Import data strictly according to the template file"); + } - String excelHeader = substring.toString(); - if (!title.equals(excelHeader)) { - workbook.close(); - //删除原上传文件 - FileUnZip.deleteDir(saveDirectory); - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("读取失败,请严格按照模板文件导入数据"); - }else{ - throw new JeroBootException("The data fails to be read. Import data strictly according to the template file"); } - } } - } - workbook.close(); + workbook.close(); // //树形数据字典 - List categoryList = sysCategoryService.list(); - //普通数据字典 - List dictItemList = sysDictItemServiceImpl.selectItemsAll(); - importDatas(datas, categoryList, dictItemList, zipEntryName,saveDirectory,dummyInventoryInfoEO); - //删除原上传文件 - FileUnZip.deleteDir(saveDirectory); - }else{ - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("该虚拟清单不存在,导入失败"); + List categoryList = sysCategoryService.list(); + //普通数据字典 + List dictItemList = sysDictItemServiceImpl.selectItemsAll(); + importDatas(datas, categoryList, dictItemList, zipEntryName,saveDirectory,dummyInventoryInfoEO); + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); }else{ - throw new JeroBootException("The virtual inventory does not exist, and the import failed."); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("该虚拟清单不存在,导入失败"); + }else{ + throw new JeroBootException("The virtual inventory does not exist, and the import failed."); + } } } - } private void importDatas(List dataList, @@ -1532,8 +1539,8 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl categoryList, List nameList,DummyInventoryInfoEO dummyInventoryInfoEO, - String errorMsg, String value,List msgList, - String nameCn,String nameEn,String dictCode) { + String errorMsg, String value,List msgList, + String nameCn,String nameEn,String dictCode) { if (StringUtils.isNotBlank(value)) { StringBuilder sb = new StringBuilder(); for (String s : value.split(",")) { @@ -1766,75 +1773,75 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl infoEOQueryWrapper = new QueryWrapper<>(); List baseList = dummyInventoryBaseEOService.list(infoEOQueryWrapper.eq("id", dummyInventoryInfoEO.getDummyInventoryBaseId())); if(CollectionUtils.isNotEmpty(baseList)){ - List dataList = new ArrayList<>(); - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryInfoEO,request.getParameterMap()); - queryWrapper.in("dummy_inventory_base_id",dummyInventoryInfoEO.getDummyInventoryBaseId()); - if(StringUtils.isNotBlank(dummyInventoryInfoEO.getIds())){ - queryWrapper.in("id",Arrays.asList(dummyInventoryInfoEO.getIds().split(","))); - } - queryWrapper.orderByDesc("create_time","serial_number"); - //导出的数据 - dataList = this.list(queryWrapper); - - //文件 - List fileInfos = getOssFiles(dataList); - //数据转换(文件名称,技术领域,对应标准,发起人,责任人) - dataTransition(dataList, fileInfos,dummyInventoryInfoEO); - - OutputStream os = null; - try { - response.setContentType("application/force-download"); - Workbook workbook = new XSSFWorkbook(); - String path = uploadpath + "/tempZip"; - File fileTemp = new File(path); - if (fileTemp.exists()) { - fileTemp.delete(); + List dataList = new ArrayList<>(); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryInfoEO,request.getParameterMap()); + queryWrapper.in("dummy_inventory_base_id",dummyInventoryInfoEO.getDummyInventoryBaseId()); + if(StringUtils.isNotBlank(dummyInventoryInfoEO.getIds())){ + queryWrapper.in("id",Arrays.asList(dummyInventoryInfoEO.getIds().split(","))); } - fileTemp.mkdirs(); + queryWrapper.orderByDesc("create_time","serial_number"); + //导出的数据 + dataList = this.list(queryWrapper); + //文件 - exportFile(dataList,fileInfos); - //excel - OutputStream excelOS = new FileOutputStream(path + File.separator + "虚拟清单.xlsx"); - ExportParams exportParams = new ExportParams(); - exportParams.setType(ExcelType.XSSF); - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - workbook = ExcelExportUtil.exportExcel(exportParams, DummyInventoryInfoEO.class, dataList); - }else{ - List dataListEn = new ArrayList<>(); - for (DummyInventoryInfoEO inventoryInfoEO : dataList) { - DummyInventoryInfoEOEn dummyInventoryInfoEOEn = new DummyInventoryInfoEOEn(); - BeanUtils.copyProperties(inventoryInfoEO,dummyInventoryInfoEOEn); - dataListEn.add(dummyInventoryInfoEOEn); + List fileInfos = getOssFiles(dataList); + //数据转换(文件名称,技术领域,对应标准,发起人,责任人) + dataTransition(dataList, fileInfos,dummyInventoryInfoEO); + + OutputStream os = null; + try { + response.setContentType("application/force-download"); + Workbook workbook = new XSSFWorkbook(); + String path = uploadpath + "/tempZip"; + File fileTemp = new File(path); + if (fileTemp.exists()) { + fileTemp.delete(); } - //下拉选中英文转换 - transition(dataListEn); - workbook = ExcelExportUtil.exportExcel(exportParams, DummyInventoryInfoEOEn.class, dataListEn); - } - workbook.write(excelOS); - excelOS.flush(); + fileTemp.mkdirs(); + //文件 + exportFile(dataList,fileInfos); + //excel + OutputStream excelOS = new FileOutputStream(path + File.separator + "虚拟清单.xlsx"); + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + workbook = ExcelExportUtil.exportExcel(exportParams, DummyInventoryInfoEO.class, dataList); + }else{ + List dataListEn = new ArrayList<>(); + for (DummyInventoryInfoEO inventoryInfoEO : dataList) { + DummyInventoryInfoEOEn dummyInventoryInfoEOEn = new DummyInventoryInfoEOEn(); + BeanUtils.copyProperties(inventoryInfoEO,dummyInventoryInfoEOEn); + dataListEn.add(dummyInventoryInfoEOEn); + } + //下拉选中英文转换 + transition(dataListEn); + workbook = ExcelExportUtil.exportExcel(exportParams, DummyInventoryInfoEOEn.class, dataListEn); + } + workbook.write(excelOS); + excelOS.flush(); - ZipUtil.zip(path, path + ".zip"); - //文件 - FileInputStream fis = new FileInputStream(path + ".zip"); - os = response.getOutputStream(); + ZipUtil.zip(path, path + ".zip"); + //文件 + FileInputStream fis = new FileInputStream(path + ".zip"); + os = response.getOutputStream(); - int len = 0; - while ((len = fis.read()) != -1) { - os.write(len); + int len = 0; + while ((len = fis.read()) != -1) { + os.write(len); + } + os.flush(); + fis.close(); + } catch (IOException e) { + if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ + throw new JeroBootException("下载文件失败"); + }else{ + throw new JeroBootException("Failed to download file"); + } + } finally { + IOUtils.closeQuietly(os); + File file = new File(uploadpath + "/tempZip"); + FileUtil.deleteContents(file); } - os.flush(); - fis.close(); - } catch (IOException e) { - if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ - throw new JeroBootException("下载文件失败"); - }else{ - throw new JeroBootException("Failed to download file"); - } - } finally { - IOUtils.closeQuietly(os); - File file = new File(uploadpath + "/tempZip"); - FileUtil.deleteContents(file); - } }else{ if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ throw new JeroBootException("该虚拟清单不存在,导出失败");