From b48d210bc7d78a355544227c51f066b4edf2b68b Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Mon, 25 Jul 2022 18:45:31 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E5=8F=98=E6=9B=B4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProjectLawsInventoryEOServiceImpl.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 372956882..bbe1040b2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -4029,13 +4029,15 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl updateLawsInventoryWrapper = new QueryWrapper<>(); - updateLawsInventoryWrapper.lambda().in(ProjectLawsInventoryEO::getId,idList); ProjectLawsInventoryEO projectLawsInventoryEO = new ProjectLawsInventoryEO(); projectLawsInventoryEO.setInventoryAffirmStatus(InventoryAffirmStatusEnum.NOT_STARTED.getValue()); projectLawsInventoryEO.setTaskAffirmStatus(TaskAffirmStatusEnum.NOT_STARTED.getValue()); //清单、任务确认初始化。 - this.baseMapper.update(projectLawsInventoryEO,updateLawsInventoryWrapper); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(ProjectLawsInventoryEO::getId,idList); + updateWrapper.set(ProjectLawsInventoryEO::getRegulationOwnerSubmitStatus,null); + updateWrapper.set(ProjectLawsInventoryEO::getHomologationEngineerSubmitStatus,null); + super.update(projectLawsInventoryEO, updateWrapper); QueryWrapper taskInventoryQueryWrapper = new QueryWrapper<>(); taskInventoryQueryWrapper.lambda().in(ProjectTaskInventoryEO::getProjectLawsInventoryId,idList); @@ -4061,8 +4063,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl queryLawsInventoryWrapper = new QueryWrapper<>(); + queryLawsInventoryWrapper.lambda().in(ProjectLawsInventoryEO::getId,idList); + List projectTaskInventoryEOList = new ArrayList<>(); - List projectLawsInventoryEOList = this.baseMapper.selectList(updateLawsInventoryWrapper); + List projectLawsInventoryEOList = this.baseMapper.selectList(queryLawsInventoryWrapper); projectLawsInventoryEOList.forEach(projectLawsInventory -> { ProjectTaskInventoryEO projectTaskInventoryEO = new ProjectTaskInventoryEO(); String projectTaskInventoryId = UUID.randomUUID().toString().replace("-", ""); From 2ca19d1120df4c6790aa851d99b242ca4dd2d488 Mon Sep 17 00:00:00 2001 From: qq787203167 <787203167@qq.com> Date: Tue, 26 Jul 2022 16:45:07 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A6=85=E9=81=93?= =?UTF-8?q?=E5=B7=B2=E7=9F=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/views/system/modules/UserModal.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/jero-web/src/views/system/modules/UserModal.vue b/jero-web/src/views/system/modules/UserModal.vue index d0ddf3695..0864d5ce1 100644 --- a/jero-web/src/views/system/modules/UserModal.vue +++ b/jero-web/src/views/system/modules/UserModal.vue @@ -59,6 +59,7 @@ + \ No newline at end of file From 685c06630a50aaf06ff24d7e64f78fdd391d71d7 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Tue, 26 Jul 2022 17:01:36 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95--?= =?UTF-8?q?=E7=BC=96=E8=BE=91(=E5=88=A4=E7=A9=BA)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectLawsInventoryEOServiceImpl.java | 126 +++++++++++++----- 1 file changed, 90 insertions(+), 36 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index bbe1040b2..75a6367f5 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -2831,49 +2831,76 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl e.getId().equals(projectLawsInventoryEO.getRegulationOwnerId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setRegulationOwnerName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getRegulationOwnerId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setRegulationOwnerName(userName); + } } //认证工程师 if (StringUtils.isNotBlank(projectLawsInventoryEO.getHomologationEngineerId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getHomologationEngineerId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setHomologationEngineerName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getHomologationEngineerId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setHomologationEngineerName(userName); + } } //工程接口人 if (StringUtils.isNotBlank(projectLawsInventoryEO.getEngineeringInterfacePerson())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getEngineeringInterfacePerson())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setEngineeringInterfacePersonName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getEngineeringInterfacePerson())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setEngineeringInterfacePersonName(userName); + } } //发起人 if (StringUtils.isNotBlank(projectLawsInventoryEO.getDesignInitiatorId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setDesignInitiatorName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setDesignInitiatorName(userName); + } } if (StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoInitiatorId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setPrehomoInitiatorName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setPrehomoInitiatorName(userName); + } } if (StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyInitiatorId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setVerifyInitiatorName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setVerifyInitiatorName(userName); + } } //责任人 if (StringUtils.isNotBlank(projectLawsInventoryEO.getDesignDutyId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setDesignDutyName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setDesignDutyName(userName); + } } if (StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoDutyId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setPrehomoDutyName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setPrehomoDutyName(userName); + } } if (StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyDutyId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setVerifyDutyName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setVerifyDutyName(userName); + } } } @@ -3197,49 +3224,76 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl e.getId().equals(projectLawsInventoryEO.getRegulationOwnerId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setRegulationOwnerName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getRegulationOwnerId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setRegulationOwnerName(userName); + } } //认证工程师 if (StringUtils.isNotBlank(projectLawsInventoryEO.getHomologationEngineerId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getHomologationEngineerId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setHomologationEngineerName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getHomologationEngineerId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setHomologationEngineerName(userName); + } } //工程接口人 if (StringUtils.isNotBlank(projectLawsInventoryEO.getEngineeringInterfacePerson())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getEngineeringInterfacePerson())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setEngineeringInterfacePersonName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getEngineeringInterfacePerson())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setEngineeringInterfacePersonName(userName); + } } //发起人 if (StringUtils.isNotBlank(projectLawsInventoryEO.getDesignInitiatorId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setDesignInitiatorName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setDesignInitiatorName(userName); + } } if (StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoInitiatorId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setPrehomoInitiatorName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setPrehomoInitiatorName(userName); + } } if (StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyInitiatorId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setVerifyInitiatorName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyInitiatorId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setVerifyInitiatorName(userName); + } } //责任人 if (StringUtils.isNotBlank(projectLawsInventoryEO.getDesignDutyId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setDesignDutyName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getDesignDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setDesignDutyName(userName); + } } if (StringUtils.isNotBlank(projectLawsInventoryEO.getPrehomoDutyId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setPrehomoDutyName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getPrehomoDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setPrehomoDutyName(userName); + } } if (StringUtils.isNotBlank(projectLawsInventoryEO.getVerifyDutyId())) { - String userName = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()).get(0); - projectLawsInventoryEO.setVerifyDutyName(userName); + List collect = userList.stream().filter(e -> e.getId().equals(projectLawsInventoryEO.getVerifyDutyId())).map(f -> f.getUsername()).collect(Collectors.toList()); + if(collect.size() != 0){ + String userName = collect.get(0); + projectLawsInventoryEO.setVerifyDutyName(userName); + } } } From 9331fdd3cab32f6a2a063aa762fea72d87b7ede7 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Tue, 26 Jul 2022 18:21:09 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=BA=93=E6=8E=A8?= =?UTF-8?q?=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BussDocumentLibraryEOServiceImpl.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 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 a56b95bbc..ce37902db 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 @@ -4770,9 +4770,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl Date: Tue, 26 Jul 2022 21:29:39 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E6=97=B6=E5=8F=91=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DummyInventoryBaseEOServiceImpl.java | 442 +++++++++++++----- 1 file changed, 322 insertions(+), 120 deletions(-) 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 32e772497..a016f8884 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,7 +13,11 @@ 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.*; +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.DummyLogEO; +import com.jero.modules.dummy.entity.DummyReadEO; import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum; import com.jero.modules.dummy.enums.InventoryStateEnum; import com.jero.modules.dummy.enums.ReadFlagEnum; @@ -23,7 +27,6 @@ import com.jero.modules.dummy.service.IDummyContentChangeEOService; import com.jero.modules.dummy.service.IDummyInventoryBaseEOService; import com.jero.modules.dummy.service.IDummyInventoryInfoEOService; import com.jero.modules.dummy.service.IDummyReadEOService; -import com.jero.modules.dummy.util.ListDiff; import com.jero.modules.dummy.vo.VirtualCreaterVo; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.oss.entity.OSSFile; @@ -48,7 +51,13 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.IOException; import java.text.SimpleDateFormat; -import java.util.*; +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.stream.Collectors; /** @@ -351,33 +360,21 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl wrapper =new LambdaQueryWrapper<>(); wrapper.in(DummyContentChangeEO::getConnectId,dummyInventoryBaseEO.getId()); List dummyContentChangeEOList = iDummyContentChangeEOService.list(wrapper); - //基础数据 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(DummyInventoryBaseEO::getId,dummyInventoryBaseEO.getId()); - List dummyInventoryBaseEOList = this.list(queryWrapper); //详情数据 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,dummyInventoryBaseEO.getId()); List dummyInventoryInfoEOList = iDummyInventoryInfoEOService.list(lambdaQueryWrapper); - String contentLog = ""; + String contentLog = "The "+ baseEO.getName()+" virtual list you subscribed to has been updated as follows:" + "
"; 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){ - disposeDataToEn(dummyInventoryInfoEOList); String info = JSONArray.toJSONString(dummyInventoryInfoEOList); DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO(); dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId()); + dummyContentChangeEOInfo.setConnectId(dummyInventoryBaseEO.getId()); dummyContentChangeEOInfo.setContentJson(info); dummyContentChangeEOInfo.setUpdateTime(thisTime); list.add(dummyContentChangeEOInfo); @@ -386,132 +383,337 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl wrapperBase =new LambdaQueryWrapper<>(); - wrapperBase.in(DummyContentChangeEO::getConnectId,dummyInventoryBaseEO.getId()); - List dummyContentChangeEOBaseList = iDummyContentChangeEOService.list(wrapperBase); //2. 查询之前保存过的详情数据 LambdaQueryWrapper wrapperInfo =new LambdaQueryWrapper<>(); wrapperInfo.in(DummyContentChangeEO::getParentId,dummyInventoryBaseEO.getId()); List dummyContentChangeEOInfoList = iDummyContentChangeEOService.list(wrapperInfo); + if(dummyContentChangeEOInfoList.size() != 0){ + String contentJson = dummyContentChangeEOInfoList.get(0).getContentJson(); + List baseCJList = JSONArray.parseArray(contentJson, DummyInventoryInfoEO.class); + List serialNumberOldList = baseCJList.stream().map(DummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList()); + //变更后的数据 + if(dummyInventoryInfoEOList.size() != 0){ + List serialNumberNewList = dummyInventoryInfoEOList.stream().map(DummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList()); + //新增的法规 + List collectAdd = dummyInventoryInfoEOList.stream() + .filter(e -> !serialNumberOldList.contains(e.getSerialNumber())).collect(Collectors.toList()); - Date lastIssueTime = null; + List serialNumberAddList = serialNumberNewList.stream().filter(e->!serialNumberOldList.contains(e)).collect(Collectors.toList()); + //删除的法规 + List collectDelete = baseCJList.stream() + .filter(e -> !serialNumberNewList.contains(e.getSerialNumber())).collect(Collectors.toList()); + List serialNumberDeleteList = serialNumberOldList.stream().filter(e->!serialNumberNewList.contains(e)).collect(Collectors.toList()); - - if (CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)) { - lastIssueTime = dummyContentChangeEOInfoList.get(0).getUpdateTime(); - - if(CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)){ - //3.对比基础表数据 - //3.1截止到现在发布,期间修改的数据(基础) - //最新的数据为-->dummyInventoryBaseEOList - - //3.2基础表数据对比 - String baseCJ=dummyContentChangeEOBaseList.get(0).getContentJson(); - List baseCJList = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list - - //对比,获取值不同的字段 - 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)); + //发消息 + int count = 1; + if(serialNumberAddList.size() != 0){ + List hrefList = new ArrayList<>(); + for (DummyInventoryInfoEO dummyInventoryInfoEO : collectAdd) { + String href = "" + dummyInventoryInfoEO.getSerialNumber() + ""; + hrefList.add(href); + } + contentLog += count+". New regulations: " + StringUtils.join(hrefList,",") + "
"; + count++; + } + if(serialNumberDeleteList.size() != 0){ + List hrefList = new ArrayList<>(); + for (DummyInventoryInfoEO dummyInventoryInfoEO : collectDelete) { + String href = "" + dummyInventoryInfoEO.getSerialNumber() + ""; + hrefList.add(href); + } + contentLog += count + ". Remove regulations: " + StringUtils.join(hrefList,",") + "
"; } - //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)){ - List contentLogList = updateLogList.stream().map(e -> e.getLogContent()).collect(Collectors.toList()); - for(int i=0 ; i < contentLogList.size() ;i++){ - String content = contentLogList.get(i); - if(StringUtils.isNotBlank(content) && content.endsWith("
")){ - content = content.substring(0,content.length()-5); - } - contentLog += "("+ (i+1) +")" + content + "
"; + if(serialNumberAddList.size() != 0 || serialNumberDeleteList.size() != 0){ + List userNameList = dummyReadEOService.queryReadUserInfo(dummyInventoryBaseEO.getId()); + List thirdIdList = new ArrayList<>(); + if(userNameList.size() != 0){ + List userIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getId()).collect(Collectors.toList()); + thirdIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getThirdId()).collect(Collectors.toList()); + if(userIdList.size() != 0){ + //封装消息的实体类 + String title = "The "+ baseEO.getName()+" virtual list you subscribed to has been updated"; + SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, title, title, contentLog,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + sysAnnouncementService.saveAnnouncement(sysAnnouncement); + bussDocumentLibraryEOService.sendWebsocket(dummyInventoryBaseEO.getId(), title); + } + } + //飞书 + if(thirdIdList.size() != 0){ + String href = backUrl + "/virtualListDetails?name=" + baseEO.getName() + "&useExplain=" + baseEO.getUseExplain() +"&id=" + baseEO.getId() +"&title=维护虚拟清单"; + try { + iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), contentLog, MessageTypeEnum.PUSH.getName(), href); + } catch (IOException e) { + e.printStackTrace(); } } } - if(StringUtils.isNotBlank(contentLog) && contentLog.endsWith("
")){ - contentLog = contentLog.substring(0,contentLog.length()-5); - } - - //列表,维护清单不同的字段,addSerialNumber,deleteSerialNumber都为空->证明是没有更新的数据,不发送消息,数据不处理 - if(MapUtils.isNotEmpty(baseDiff) || StringUtils.isNotEmpty(contentLog)) { - //向订阅该领域管理的人发消息和飞书 - sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), contentLog,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); - - //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也有数据 - String info = JSONArray.toJSONString(dummyInventoryInfoEOList); - UpdateWrapper infoUpdateWrapper=new UpdateWrapper<>(); - infoUpdateWrapper.set("content_json",info) - .set("update_by",sysUser.getUsername()) - .set("update_time",now) - .eq("parent_id",dummyInventoryBaseEOList.get(0).getId()); - dummyContentChangeEOMapper.update(null,infoUpdateWrapper); -// } - } } - }else{//基础数据发布过,详情原为空-->有新增,再次发布 - List list = new ArrayList<>(); - if(dummyInventoryInfoEOList.size() != 0){ - disposeDataToEn(dummyInventoryInfoEOList); - String info = JSONArray.toJSONString(dummyInventoryInfoEOList); - DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO(); - dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId()); - dummyContentChangeEOInfo.setContentJson(info); - list.add(dummyContentChangeEOInfo); - } - if(list.size() != 0){//原详情为空,查所有数据,不限时间 - 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); + //删除之前保存的变更的数据 + iDummyContentChangeEOService.deleteById(dummyContentChangeEOInfoList.get(0).getId()); - List contentLogList = updateLogList.stream().map(e -> e.getLogContent()).collect(Collectors.toList()); - for(int i=0 ; i < contentLogList.size() ;i++){ - String content = contentLogList.get(i); - if(StringUtils.isNotBlank(content) && content.endsWith("
")){ - content = content.substring(0,content.length()-5); - } - contentLog += "("+ (i+1) +")" + content + "
"; - } - if(StringUtils.isNotBlank(contentLog) && contentLog.endsWith("
")){ - contentLog = contentLog.substring(0,contentLog.length()-5); - } - iDummyContentChangeEOService.saveBatch(list); - sendMsg(null,dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId(),contentLog ,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); - - } + //重新保存 + DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO(); + String contentJsonTemp = JSONArray.toJSONString(dummyInventoryInfoEOList); + dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId()); + dummyContentChangeEOInfo.setConnectId(dummyInventoryBaseEO.getId()); + dummyContentChangeEOInfo.setContentJson(contentJsonTemp); + dummyContentChangeEOInfo.setUpdateTime(new Date()); + iDummyContentChangeEOService.save(dummyContentChangeEOInfo); } } }else{ //撤回,需要发消息 try { - sendMsg(null, dummyInventoryBaseEO.getId(),null,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); + List userNameList = dummyReadEOService.queryReadUserInfo(dummyInventoryBaseEO.getId()); + List thirdIdList = new ArrayList<>(); + if(userNameList.size() != 0){ + List userIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getId()).collect(Collectors.toList()); + thirdIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getThirdId()).collect(Collectors.toList()); + if(userIdList.size() != 0){ + //封装消息的实体类 The XX virtual list you subscribed to has been withdrawn + String title = "The "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn"; + //Please note that the XX virtual list you subscribed to has been withdrawn. + String contentLog = "Please note that the "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn"; + SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, title, title, contentLog,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + sysAnnouncementService.saveAnnouncement(sysAnnouncement); + bussDocumentLibraryEOService.sendWebsocket(dummyInventoryBaseEO.getId(), title); + } + sendMsg(null, dummyInventoryBaseEO.getId(),null,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); + } + //飞书 + if(thirdIdList.size() != 0){ + String contentInfoTemp = "Please note that the "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn"; + String href = backUrl + "/virtualListDetails?name=" + baseEO.getName() + "&useExplain=" + baseEO.getUseExplain() +"&id=" + baseEO.getId() +"&title=维护虚拟清单"; + iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), contentInfoTemp, MessageTypeEnum.PUSH.getName(), href); + } }catch (Exception e){ e.printStackTrace(); } } } +// /** +// * 发布 +// * 发布与撤回均需要发消息 +// * 首次发布不发消息 +// * +// * @param dummyInventoryBaseEO +// */ +// @Override +// @Transactional +// public void issue(DummyInventoryBaseEO dummyInventoryBaseEO){ +// // 增加创建者校验 +// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// String loginUserName = sysUser.getUsername(); +// +// DummyInventoryBaseEO baseEO = queryById(dummyInventoryBaseEO.getId()); +// List createByNameList =new ArrayList<>(); +// if (StringUtils.isNotBlank(baseEO.getCreateBy())) { +// createByNameList = Arrays.asList(baseEO.getCreateBy().split(",")); +// +// if (CollectionUtils.isNotEmpty(createByNameList)){ +// if (!createByNameList.contains(loginUserName)) { +// if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) { +// throw new JeroBootException("当前用户非创建者,无法发布"); +// } else { +// throw new JeroBootException("The current user is not the creator and cannot be issued."); +// } +// } +// } +// } +// Date now = new Date(); +// UpdateWrapper baseWrapper=new UpdateWrapper<>(); +// baseWrapper.set("state",dummyInventoryBaseEO.getState()); +// +// if(InventoryStateEnum.ISSUE.getValue().equals(dummyInventoryBaseEO.getState())){ +// baseWrapper.set("update_by",sysUser.getUsername()) +// .set("update_time",now); +// } +// baseWrapper.eq("id",dummyInventoryBaseEO.getId()); +// dummyInventoryBaseEOMapper.update(null,baseWrapper); +//// this.updateById(dummyInventoryBaseEO); +// //不管有没有维护清单,都返回操作成功 +// //发布与撤回均需要发消息(向订阅的人员发消息) +// //首次发布不发消息 +// //(1)首次发布将虚拟清单的基础数据和详情数据存入维护清单内容变更表_dummy_content_change +// //(2)撤回再次编辑完后再次发布,发消息 +// //A. 分别判断基础数据和详情数据同上次发布的数据是否发生变化 +// //发生变化-->发消息,删除dummy_content_change中上一次存入的数据,将本次数据存入 +// //没有变化-->不发消息,数据不处理 +// +// //先判断是发布还是撤回 1-->发布 2-->撤回 +// //撤回需要发消息 +// +// if(InventoryStateEnum.ISSUE.getValue().equals(dummyInventoryBaseEO.getState())){ +// //先判断第一次发布的时候是否保存过数据 +// LambdaQueryWrapper wrapper =new LambdaQueryWrapper<>(); +// wrapper.in(DummyContentChangeEO::getConnectId,dummyInventoryBaseEO.getId()); +// List dummyContentChangeEOList = iDummyContentChangeEOService.list(wrapper); +// //基础数据 +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper.in(DummyInventoryBaseEO::getId,dummyInventoryBaseEO.getId()); +// List dummyInventoryBaseEOList = this.list(queryWrapper); +// //详情数据 +// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); +// lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,dummyInventoryBaseEO.getId()); +// List dummyInventoryInfoEOList = iDummyInventoryInfoEOService.list(lambdaQueryWrapper); +// String contentLog = ""; +// +// 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){ +// disposeDataToEn(dummyInventoryInfoEOList); +// String info = JSONArray.toJSONString(dummyInventoryInfoEOList); +// DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO(); +// dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId()); +// dummyContentChangeEOInfo.setContentJson(info); +// dummyContentChangeEOInfo.setUpdateTime(thisTime); +// list.add(dummyContentChangeEOInfo); +// } +// if(list.size() != 0){ +// iDummyContentChangeEOService.saveBatch(list); +// } +// }else{ +// //1.查询之前保存过的基础数据 +// LambdaQueryWrapper wrapperBase =new LambdaQueryWrapper<>(); +// wrapperBase.in(DummyContentChangeEO::getConnectId,dummyInventoryBaseEO.getId()); +// List dummyContentChangeEOBaseList = iDummyContentChangeEOService.list(wrapperBase); +// //2. 查询之前保存过的详情数据 +// LambdaQueryWrapper wrapperInfo =new LambdaQueryWrapper<>(); +// wrapperInfo.in(DummyContentChangeEO::getParentId,dummyInventoryBaseEO.getId()); +// List dummyContentChangeEOInfoList = iDummyContentChangeEOService.list(wrapperInfo); +// +// Date lastIssueTime = null; +// +// +// if (CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)) { +// lastIssueTime = dummyContentChangeEOInfoList.get(0).getUpdateTime(); +// +// if(CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)){ +// //3.对比基础表数据 +// //3.1截止到现在发布,期间修改的数据(基础) +// //最新的数据为-->dummyInventoryBaseEOList +// +// //3.2基础表数据对比 +// String baseCJ=dummyContentChangeEOBaseList.get(0).getContentJson(); +// List baseCJList = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list +// +// //对比,获取值不同的字段 +// 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)); +// } +// +// //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)){ +// List contentLogList = updateLogList.stream().map(e -> e.getLogContent()).collect(Collectors.toList()); +// for(int i=0 ; i < contentLogList.size() ;i++){ +// String content = contentLogList.get(i); +// if(StringUtils.isNotBlank(content) && content.endsWith("
")){ +// content = content.substring(0,content.length()-5); +// } +// contentLog += "("+ (i+1) +")" + content + "
"; +// } +// } +// } +// if(StringUtils.isNotBlank(contentLog) && contentLog.endsWith("
")){ +// contentLog = contentLog.substring(0,contentLog.length()-5); +// } +// +// //列表,维护清单不同的字段,addSerialNumber,deleteSerialNumber都为空->证明是没有更新的数据,不发送消息,数据不处理 +// if(MapUtils.isNotEmpty(baseDiff) || StringUtils.isNotEmpty(contentLog)) { +// //向订阅该领域管理的人发消息和飞书 +// sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), contentLog,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); +// +// //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也有数据 +// String info = JSONArray.toJSONString(dummyInventoryInfoEOList); +// UpdateWrapper infoUpdateWrapper=new UpdateWrapper<>(); +// infoUpdateWrapper.set("content_json",info) +// .set("update_by",sysUser.getUsername()) +// .set("update_time",now) +// .eq("parent_id",dummyInventoryBaseEOList.get(0).getId()); +// dummyContentChangeEOMapper.update(null,infoUpdateWrapper); +//// } +// } +// } +// }else{//基础数据发布过,详情原为空-->有新增,再次发布 +// List list = new ArrayList<>(); +// if(dummyInventoryInfoEOList.size() != 0){ +// disposeDataToEn(dummyInventoryInfoEOList); +// String info = JSONArray.toJSONString(dummyInventoryInfoEOList); +// DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO(); +// dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId()); +// dummyContentChangeEOInfo.setContentJson(info); +// list.add(dummyContentChangeEOInfo); +// } +// if(list.size() != 0){//原详情为空,查所有数据,不限时间 +// 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); +// +// List contentLogList = updateLogList.stream().map(e -> e.getLogContent()).collect(Collectors.toList()); +// for(int i=0 ; i < contentLogList.size() ;i++){ +// String content = contentLogList.get(i); +// if(StringUtils.isNotBlank(content) && content.endsWith("
")){ +// content = content.substring(0,content.length()-5); +// } +// contentLog += "("+ (i+1) +")" + content + "
"; +// } +// if(StringUtils.isNotBlank(contentLog) && contentLog.endsWith("
")){ +// contentLog = contentLog.substring(0,contentLog.length()-5); +// } +// iDummyContentChangeEOService.saveBatch(list); +// sendMsg(null,dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId(),contentLog ,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); +// +// } +// } +// } +// }else{ +// //撤回,需要发消息 +// try { +// sendMsg(null, dummyInventoryBaseEO.getId(),null,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); +// }catch (Exception e){ +// e.printStackTrace(); +// } +// } +// } //翻译成中文名 public void disposeData(List records) { From 1b29bb2ed2b1069e8c028b69ebd60d6724c9a8ba Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Wed, 27 Jul 2022 09:50:15 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E6=B8=85=E5=8D=95--?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E9=A3=9E=E4=B9=A6=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DummyInventoryBaseEOServiceImpl.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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 a016f8884..6af72e8d9 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 @@ -365,6 +365,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl dummyInventoryInfoEOList = iDummyInventoryInfoEOService.list(lambdaQueryWrapper); String contentLog = "The "+ baseEO.getName()+" virtual list you subscribed to has been updated as follows:" + "
"; + String contentLogFeishu = "The "+ baseEO.getName()+" virtual list you subscribed to has been updated as follows:" + " "; if(dummyContentChangeEOList.size() == 0){ //没有添加过需要进行第一次添加 @@ -415,6 +416,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl"; + contentLogFeishu += count+". New regulations: " + StringUtils.join(serialNumberAddList,",") + " "; count++; } if(serialNumberDeleteList.size() != 0){ @@ -426,6 +428,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl"; + contentLogFeishu += count + ". Remove regulations: " + StringUtils.join(serialNumberDeleteList,",") + " "; } if(serialNumberAddList.size() != 0 || serialNumberDeleteList.size() != 0){ @@ -436,7 +439,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl e.getThirdId()).collect(Collectors.toList()); if(userIdList.size() != 0){ //封装消息的实体类 - String title = "The "+ baseEO.getName()+" virtual list you subscribed to has been updated"; + String title = "The "+ baseEO.getName()+" virtual list you subscribed to has been updated."; SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, title, title, contentLog,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); sysAnnouncementService.saveAnnouncement(sysAnnouncement); bussDocumentLibraryEOService.sendWebsocket(dummyInventoryBaseEO.getId(), title); @@ -446,7 +449,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl e.getThirdId()).collect(Collectors.toList()); if(userIdList.size() != 0){ //封装消息的实体类 The XX virtual list you subscribed to has been withdrawn - String title = "The "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn"; + String title = "The "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn."; //Please note that the XX virtual list you subscribed to has been withdrawn. - String contentLog = "Please note that the "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn"; + String contentLog = "Please note that the "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn."; SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, title, title, contentLog,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); sysAnnouncementService.saveAnnouncement(sysAnnouncement); bussDocumentLibraryEOService.sendWebsocket(dummyInventoryBaseEO.getId(), title); } - sendMsg(null, dummyInventoryBaseEO.getId(),null,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut()); } //飞书 if(thirdIdList.size() != 0){ - String contentInfoTemp = "Please note that the "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn"; + String contentInfoTemp = "Please note that the "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn."; String href = backUrl + "/virtualListDetails?name=" + baseEO.getName() + "&useExplain=" + baseEO.getUseExplain() +"&id=" + baseEO.getId() +"&title=维护虚拟清单"; iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), contentInfoTemp, MessageTypeEnum.PUSH.getName(), href); } From dcd0d41910b501f9b2f4b2bea87073a10d9cc206 Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Wed, 27 Jul 2022 14:14:49 +0800 Subject: [PATCH 07/16] =?UTF-8?q?56405=20=E6=B3=95=E8=A7=84/=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E4=BB=BB=E5=8A=A1=E8=AE=A1=E5=88=92=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=BF=AE=E6=94=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...LawsTechnologyEvaluationEOServiceImpl.java | 28 +++++++++++++++++++ .../enums/ProjectTaskPlanningNameEnum.java | 10 ++++--- jero-web/src/common/lang/en-us.js | 5 ++-- jero-web/src/common/lang/zh-cn.js | 5 ++-- .../components/settingList.vue | 8 +++--- .../components/TaskPlanList.vue | 6 ++-- .../projectStatusBoard/index.vue | 6 ++-- 7 files changed, 50 insertions(+), 18 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java index 97fcc3cb4..b02e02d74 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java @@ -360,6 +360,17 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl titleList = Arrays.asList(title.split(",")); + //校验模板 + for (int cellIndex = 0; cellIndex < 3; cellIndex++){ + boolean flag = false; + Cell cell = firstRow.getCell(cellIndex); + for (String titl : titleList) { + if(StringUtils.equals(titl,cell.toString())){ + flag = true; + break; + } + } + if(!flag){ + throw new JeroBootException(verifyTemplateMsg); + } + } + int rowNos = sheet.getPhysicalNumberOfRows();// 得到excel的总记录条数 for (int i = 0; i < rowNos ; i++) { Row row = sheet.getRow(i + 1); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java index e2ca5fee7..34169acd6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/ProjectTaskPlanningNameEnum.java @@ -4,11 +4,13 @@ public enum ProjectTaskPlanningNameEnum { LIST_CONFIRMATION("清单确认"," Checklist confirmation"), LEGAL_TASK_CONFIRMATION("任务确认","Task confirmation"), DESIGN_DEADLINE("设计符合性","Design compliance"), - PREHOMO_DEADLINE("Pre-Homo","Pre-Homo"), - ATTESTATION_START_TIME("认证开始","Certification begins"), - ATTESTATION_END_TIME("认证结束"," End of certification"), +// PREHOMO_DEADLINE("Pre-Homo","Pre-Homo"), +// ATTESTATION_START_TIME("认证开始","Certification begins"), +// ATTESTATION_END_TIME("认证结束"," End of certification"), + PREHOMO_DEADLINE("摸底试验结束","Pre-Homo Completion"), // name:Pre-Homo value:Pre-Homo + ATTESTATION_START_TIME("认证试验结束","Homo Test Completion"),// name:认证开始 value:Certification begins + ATTESTATION_END_TIME("认证批准","Type Approval"),// name:认证结束 value:End of certification VERIFY_DEADLINE("验证符合性","Verify compliance"), - ; String name; String value; diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index c1c5b2d4a..db5e4d815 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -713,8 +713,9 @@ module.exports = { confirmationOfRegulationsList: 'Regulation List Confirmation', regulatoryTaskConfirmation: 'Regulation Task Confirmation', - certificationStart: 'Homo KO', - certificationEnd: 'Homo Completion', + certificationStart: 'Homo Test Completion', + preHomoCompletion:'Pre-Homo Completion', + certificationEnd: 'Type Approval', directoryName: 'Catalogue Name', batch: 'Batch', uploadTime: 'Upload Time', diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 43142beb5..9bb86cd15 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -728,8 +728,9 @@ module.exports = { time: '时间', confirmationOfRegulationsList: '法规清单确认', regulatoryTaskConfirmation: '法规任务确认', - certificationStart: '认证开始', - certificationEnd: '认证结束', + certificationStart: '认证试验结束', + preHomoCompletion:'摸底试验结束', + certificationEnd: '认证批准', directoryName: '目录名称', batch: '批次', uploadTime: '上传时间', diff --git a/jero-web/src/views/projectManagement/components/settingList.vue b/jero-web/src/views/projectManagement/components/settingList.vue index cb5f214a6..a16be93a9 100644 --- a/jero-web/src/views/projectManagement/components/settingList.vue +++ b/jero-web/src/views/projectManagement/components/settingList.vue @@ -71,12 +71,12 @@
* - - {{$t('PrehomoConfirmation')}} + + {{$t('preHomoCompletion')}}
Date: Thu, 28 Jul 2022 14:04:53 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A6=85=E9=81=93?= =?UTF-8?q?=E5=B7=B2=E7=9F=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/listEditModel.vue | 14 +++++------ .../components/listOfRegulations.vue | 25 +++++++++++++++---- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/jero-web/src/views/projectManagement/components/listEditModel.vue b/jero-web/src/views/projectManagement/components/listEditModel.vue index 38f185c66..ea5608dd6 100644 --- a/jero-web/src/views/projectManagement/components/listEditModel.vue +++ b/jero-web/src/views/projectManagement/components/listEditModel.vue @@ -31,7 +31,7 @@
@@ -994,7 +994,7 @@ // } else if (row.designInitiator == 0) { // this.designInitiatorList = res.result.studioPersonList || [] // } else if (!row.designInitiator || row.designInitiator == '') { - this.designInitiatorList = res.result.allPersonList || [] + this.designInitiatorList = res.result.allPersonList || [] // } //设计符合性确认-责任人 // if (row.designDuty == 1) { @@ -1006,7 +1006,7 @@ // } else if (row.designInitiator == 0) { // this.designDutyList = res.result.studioPersonList || [] // } else if (!row.designDuty || row.designDuty == '') { - this.designDutyList = res.result.allPersonList || [] + this.designDutyList = res.result.allPersonList || [] // } //prehomo确认-发起人 // if (row.prehomoInitiator == 1) { @@ -1018,7 +1018,7 @@ // } else if (row.designInitiator == 0) { // this.prehomoInitiatorList = res.result.studioPersonList || [] // } else if (!row.prehomoInitiator || row.prehomoInitiator == '') { - this.prehomoInitiatorList = res.result.allPersonList || [] + this.prehomoInitiatorList = res.result.allPersonList || [] // } //prehomo确认-责任人 // if (row.prehomoDuty == 1) { @@ -1030,7 +1030,7 @@ // } else if (row.designInitiator == 0) { // this.prehomoDutyList = res.result.studioPersonList || [] // } else if (!row.prehomoDuty || row.prehomoDuty == '') { - this.prehomoDutyList = res.result.allPersonList || [] + this.prehomoDutyList = res.result.allPersonList || [] // } //验证符合性确认-发起人 // if (row.verifyInitiator == 1) { @@ -1042,7 +1042,7 @@ // } else if (row.designInitiator == 0) { // this.verifyInitiatorList = res.result.studioPersonList || [] // } else if (!row.verifyInitiator || row.verifyInitiator == '') { - this.verifyInitiatorList = res.result.allPersonList || [] + this.verifyInitiatorList = res.result.allPersonList || [] // } //验证符合性确认-责任人 // if (row.verifyDuty == 1) { @@ -1054,7 +1054,7 @@ // } else if (row.designInitiator == 0) { // this.verifyDutyList = res.result.studioPersonList || [] // } else if (!row.verifyDuty || row.verifyDuty == '') { - this.verifyDutyList = res.result.allPersonList || [] + this.verifyDutyList = res.result.allPersonList || [] // } callback() }, diff --git a/jero-web/src/views/projectManagement/components/listOfRegulations.vue b/jero-web/src/views/projectManagement/components/listOfRegulations.vue index d23200165..6a69c579a 100644 --- a/jero-web/src/views/projectManagement/components/listOfRegulations.vue +++ b/jero-web/src/views/projectManagement/components/listOfRegulations.vue @@ -169,6 +169,11 @@
+
+ + {{ $t('export') }} +
{{ $t('submit') }} @@ -1061,11 +1066,21 @@ } }, handleExport() { + let roleCodeIndex + if (this.isDisplay) { + roleCodeIndex = 0 + } else { + roleCodeIndex = 4 + } + if (this.formInlineRoleSwitching.roleSwitchingCode == '11' || this.formInlineRoleSwitching.roleSwitchingCode == '12') { + roleCodeIndex = 0 + } let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) let query = { ...this.queryParam, ids: selectedRowKeys.join(','), ...this.queryParamQuery, + roleCode:roleCodeIndex, projectLibraryId: this.$route.query.id } downloadFile(this.url.exportData, this.$route.query.projectName + this.$t('listOfRegulations') + '.zip', query, this.Deselect) @@ -1733,7 +1748,7 @@ } else if (!dataSource[i].designDueDate) { this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber + this.$t('confirmationOfDesignConformity') + this.$t('theDeadlineEmpty') } < /div>) continue - }else if (!dataSource[i].designDeliverableType) { + } else if (!dataSource[i].designDeliverableType) { this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber + this.$t('confirmationOfDesignConformity') + this.$t('theDeliveryTypeCannotBeEmpty') } < /div>) continue } @@ -1751,7 +1766,7 @@ } else if (!dataSource[i].prehomoDueDate) { this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber + this.$t('PrehomoConfirmation') + this.$t('theDeadlineEmpty') } < /div>) continue - }else if (!dataSource[i].prehomoDeliverableType) { + } else if (!dataSource[i].prehomoDeliverableType) { this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber + this.$t('PrehomoConfirmation') + this.$t('theDeliveryTypeCannotBeEmpty') } < /div>) continue } @@ -1769,7 +1784,7 @@ } else if (!dataSource[i].verifyDueDate) { this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber + this.$t('verificationAndConformityconfirmation') + this.$t('theDeadlineEmpty') } < /div>) continue - }else if (!dataSource[i].verifyDeliverableType) { + } else if (!dataSource[i].verifyDeliverableType) { this.rowKeysWarningList.push( < div > { dataSource[i].serialNumber + this.$t('verificationAndConformityconfirmation') + this.$t('theDeliveryTypeCannotBeEmpty') } < /div>) continue } @@ -1864,7 +1879,7 @@ _this.getRowKeys(selectedRowKeys, 2, function() { _this.visibleComment = true _this.formInlineComment = {} - _this.$nextTick(()=>{ + _this.$nextTick(() => { _this.$refs.ruleFormComment.clearValidate() }) }) @@ -1886,7 +1901,7 @@ }) } let query = { - commentContent: this.$t('For')+content.join(',') + this.$t('markedRejection')+':' + this.formInlineComment.commentContent, + commentContent: this.$t('For') + content.join(',') + this.$t('markedRejection') + ':' + this.formInlineComment.commentContent, projectLibraryId: this.$route.query.id } this.confirmLoadingComment = true From 464117f59dbfef268167701ac2ef391feda8974c Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Thu, 28 Jul 2022 14:24:34 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=AE=8C=E5=96=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProjectLawsInventoryEOServiceImpl.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 75a6367f5..82664d081 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -3630,6 +3630,17 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl{ + q.eq("regulation_owner_id",currentUser.getId()). + or().eq("homologation_engineer_id",currentUser.getId()); + }); + } //导出的数据 dataList = this.list(queryWrapper); From fd4bbbfc65fce41821f5d9bd52385f2b0ef2cb06 Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Thu, 28 Jul 2022 14:56:07 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E6=B3=95=E8=A7=84=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E3=80=81=E6=8A=8A=E6=96=87=E6=A1=A3=E5=BA=93?= =?UTF-8?q?=E6=95=B0=E6=8D=AEid=E6=B7=BB=E5=8A=A0=E8=BF=9B=E6=B3=95?= =?UTF-8?q?=E8=A7=84=E6=B8=85=E5=8D=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/service/impl/ProjectLawsInventoryEOServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 82664d081..15c79a89f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -4632,6 +4632,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl Date: Thu, 28 Jul 2022 15:01:05 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E6=B8=85=E5=8D=95-?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=95=B0=E6=8D=AE=E6=97=B6=EF=BC=8C=E5=B0=86?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8E=E6=96=87=E6=A1=A3=E5=BA=93=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E7=BB=91=E5=AE=9A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dummy/service/impl/DummyInventoryInfoEOServiceImpl.java | 1 + 1 file changed, 1 insertion(+) 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 0fb3ca0d2..2faae8a76 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 @@ -1501,6 +1501,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl Date: Fri, 29 Jul 2022 11:34:27 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A6=85=E9=81=93?= =?UTF-8?q?=E5=B7=B2=E7=9F=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/documentTools/virtualList/components/editModel.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jero-web/src/views/documentTools/virtualList/components/editModel.vue b/jero-web/src/views/documentTools/virtualList/components/editModel.vue index 482b97ace..408eff413 100644 --- a/jero-web/src/views/documentTools/virtualList/components/editModel.vue +++ b/jero-web/src/views/documentTools/virtualList/components/editModel.vue @@ -31,7 +31,7 @@
From 32730675dcea8279b0e3a4428a5e9bb31f864b65 Mon Sep 17 00:00:00 2001 From: liyawei Date: Fri, 29 Jul 2022 18:18:55 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E8=AE=A4=E8=AF=81-=E4=B8=8A=E6=8A=A5?= =?UTF-8?q?=E5=BA=93-=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AF=BC=E5=87=BAexcel?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF-=E5=9B=BE=E7=89=87=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IParamsReportDetailEOService.java | 1 + .../impl/ParamsReportDetailEOServiceImpl.java | 13 +- .../jero/modules/project/util/ExcelUtil.java | 415 ++++++++++++++++-- 3 files changed, 384 insertions(+), 45 deletions(-) diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportDetailEOService.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportDetailEOService.java index 925a271be..551b001b1 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportDetailEOService.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/IParamsReportDetailEOService.java @@ -53,6 +53,7 @@ public interface IParamsReportDetailEOService extends IService allParamsInfoList = queryForExportCustom(paramsReportDetailVO); HashMap params = (HashMap) allParamsInfoList.get(0); + List> imgListAll = (List>) allParamsInfoList.get(1).get("imgListAll"); String templateUrl = ""; ParamsExportTemplateEO paramsExportTemplateEO = paramsExportTemplateEOService.getById(paramsReportDetailVO.getExportTemplateId()); @@ -820,7 +824,14 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl transformParameters = new HashMap<>(); transformParameters.put("NIO 07200103", "dfasdfas"); - -// InputStream smlPart = pkg.getParts().get(new PartName("/xl/sharedStrings.xml")); // 获取所有sheet - Source xsltSource = new StreamSource(new File("D:\\text\\sharedStrings.xml")); TransformerFactory transFact = TransformerFactory.newInstance(); Templates cachedXSLT = transFact.newTemplates(xsltSource); - - pkg.getWorkbookPart().transform(cachedXSLT,transformParameters,result); + pkg.getWorkbookPart().transform(cachedXSLT,transformParameters,result);*/ // variableReplace(); // xlsx4JAddImage(); + + WorkbookPart workbookPart = pkg.getWorkbookPart(); + WorksheetPart sheet = workbookPart.getWorksheet(0); + Worksheet ws = sheet.getContents(); + SheetData data = ws.getSheetData(); + System.out.println("mmmmmmm"); + } + + public static void replacePictureBatchPOI(Workbook workbook, SpreadsheetMLPackage pkg, List> imgListAll) throws Exception { + //获取全部sheet页中表格 + Sheet sheet=null; + int partNameNum = 0; + for (int i = 0; i < workbook.getNumberOfSheets(); i++) {//获取每个Sheet表 + sheet = workbook.getSheetAt(i); + WorksheetPart worksheetPart = (WorksheetPart) pkg.getParts().get(new PartName("/xl/worksheets/" + sheet.getSheetName().toLowerCase() + ".xml")); + partNameNum++; + + //获得数据的总行数 + int totalRowNum = sheet.getLastRowNum(); + + //获得所有数据 + for (int x = 0; x < totalRowNum; x++) { + //获得第x行对象 + Row row = sheet.getRow(x); + if (!(row == null)) { + //获得总列数 + int cellLength = row.getLastCellNum(); + //如果x行里的所有单元格 + for (int y = 0; y < cellLength; y++) { + + org.apache.poi.ss.usermodel.Cell cell = row.getCell(y); + if(ObjectUtil.isNull(cell)) { + continue; + } + String cellValue = cell.getStringCellValue(); + + for (Map imgMap : imgListAll) { + String key = (String) imgMap.get("key"); + String text = (String) imgMap.get("text"); + byte[] bytes = (byte[]) imgMap.get("bytes"); + if (("${" + key + "}").equals(cellValue)) { + putImagePOI(worksheetPart, pkg, cell, bytes, sheet.getSheetName().toLowerCase(), String.valueOf(partNameNum)); + } + } + } + } + } + + } + } + + public static void replacePictureBatch(SpreadsheetMLPackage pkg,List> imgListAll) throws Exception { + Parts parts = pkg.getParts(); + Map map = parts.getParts(); + + for (Map.Entry partMap : map.entrySet()) { + int partNameNum = 0; + if (partMap.getValue() instanceof WorksheetPart) { + String partName = String.valueOf(partMap.getKey()); + WorksheetPart worksheetPart = (WorksheetPart) partMap.getValue(); + SheetData sheetData = worksheetPart.getJaxbElement().getSheetData(); + partNameNum++; + + for (org.xlsx4j.sml.Row r : sheetData.getRow() ) { // 循环表格行 + for (Cell c : r.getC()) { // 循环表格单元格 + Object cellValue = c.getV(); // 获取单元格数内容 + + if (cellValue instanceof String) { + for (Map imgMap : imgListAll) { + String key = (String) imgMap.get("key"); + String text = (String) imgMap.get("text"); + byte[] bytes = (byte[]) imgMap.get("bytes"); + + if (("${" + key + "}").equals(cellValue)) { + c.setV(text); + putImage(worksheetPart, pkg, c, bytes, partName, String.valueOf(partNameNum)); + } + } + } + } + } + } + } + } + + private static void putImagePOI(WorksheetPart worksheetPart, SpreadsheetMLPackage pkg, org.apache.poi.ss.usermodel.Cell newCell, byte[] bytes, String sheetName, String partName) throws Exception { + ByteArrayInputStream in = new ByteArrayInputStream(bytes); + BufferedImage bufferedImage = ImageIO.read(in); + BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(pkg, worksheetPart, bytes); + String imagePartName = imagePart.getPartName().getName(); + + PartName drawingPart = new PartName(worksheetPart.getPartName().getName().replace("worksheets/" + sheetName, "drawings/drawing" + partName)); + Drawing drawing = (Drawing) pkg.getParts().get(drawingPart); + int currentId = 0; + if (drawing == null) { + drawing = new Drawing(drawingPart); + drawing.setContents(new org.docx4j.dml.spreadsheetdrawing.CTDrawing()); + Relationship relationship = worksheetPart.addTargetPart(drawing); + org.xlsx4j.sml.CTDrawing smlDrawing = new org.xlsx4j.sml.CTDrawing(); + smlDrawing.setId(relationship.getId()); + smlDrawing.setParent(worksheetPart.getContents()); + worksheetPart.getContents().setDrawing(smlDrawing); + } else { + currentId = drawing.getContents().getEGAnchor().size(); + } + + CTTwoCellAnchor anchor = new CTTwoCellAnchor(); + anchor.setFrom(new CTMarker()); + anchor.getFrom().setCol(newCell.getColumnIndex()); + anchor.getFrom().setRow(newCell.getRowIndex()); + anchor.setTo(new CTMarker()); + anchor.getTo().setCol(newCell.getColumnIndex() + 1); + anchor.getTo().setRow(newCell.getRowIndex() + 1); + + CTPicture picture = new CTPicture(); + + CTBlipFillProperties blipFillProperties = new CTBlipFillProperties(); + blipFillProperties.setStretch(new CTStretchInfoProperties()); + blipFillProperties.getStretch().setFillRect(new CTRelativeRect()); + blipFillProperties.setBlip(new CTBlip()); + blipFillProperties.getBlip().setEmbed("rId" + (currentId + 1)); + blipFillProperties.getBlip().setCstate(STBlipCompression.NONE); + + picture.setBlipFill(blipFillProperties); + + CTNonVisualDrawingProps nonVisualDrawingProps = new CTNonVisualDrawingProps(); + nonVisualDrawingProps.setId(currentId + 2); + nonVisualDrawingProps.setName(imagePartName.substring(imagePartName.lastIndexOf("/") + 1)); + nonVisualDrawingProps.setDescr(nonVisualDrawingProps.getName()); + + CTNonVisualPictureProperties nonVisualPictureProperties = new CTNonVisualPictureProperties(); + nonVisualPictureProperties.setPicLocks(new CTPictureLocking()); + nonVisualPictureProperties.getPicLocks().setNoChangeAspect(true); + CTPictureNonVisual nonVisualPicture = new CTPictureNonVisual(); + + nonVisualPicture.setCNvPr(nonVisualDrawingProps); + nonVisualPicture.setCNvPicPr(nonVisualPictureProperties); + + picture.setNvPicPr(nonVisualPicture); + + CTShapeProperties shapeProperties = new CTShapeProperties(); + CTTransform2D transform2D = new CTTransform2D(); + transform2D.setOff(new CTPoint2D()); + transform2D.setExt(new CTPositiveSize2D()); + shapeProperties.setXfrm(transform2D); + shapeProperties.setPrstGeom(new CTPresetGeometry2D()); + shapeProperties.getPrstGeom().setPrst(STShapeType.RECT); + shapeProperties.getPrstGeom().setAvLst(new CTGeomGuideList()); + CTPositiveSize2D positivesize2D = new CTPositiveSize2D(); + transform2D.setExt(positivesize2D); + positivesize2D.setCx( XlsxUtils.convertPxToEmu(bufferedImage.getWidth()) ); + positivesize2D.setCy( XlsxUtils.convertPxToEmu(bufferedImage.getHeight()) ); + + picture.setSpPr(shapeProperties); + + anchor.setPic(picture); + anchor.setClientData(new CTAnchorClientData()); + anchor.setEditAs(STEditAs.ONE_CELL); + drawing.getContents().getEGAnchor().add(anchor); + + Relationship rel = new Relationship(); + rel.setId("rId" + (currentId + 1)); + rel.setType(Namespaces.IMAGE); + rel.setTarget(imagePartName); + + drawing.getRelationshipsPart().addRelationship(rel); + RelationshipsPart relPart = drawing.getRelationshipsPart(); + pkg.getParts().remove(relPart.getPartName()); + pkg.getParts().put(relPart); + pkg.getParts().remove(drawing.getPartName()); + pkg.getParts().put(drawing); + } + + private static void putImage(WorksheetPart worksheetPart, SpreadsheetMLPackage pkg, Cell newCell, byte[] bytes, String sheetName, String partName) throws Exception { + ByteArrayInputStream in = new ByteArrayInputStream(bytes); + BufferedImage bufferedImage = ImageIO.read(in); + + BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(pkg, worksheetPart, bytes); + CTTwoCellAnchor anchor = new CTTwoCellAnchor(); + anchor.setFrom(new CTMarker()); + CellReference cellReference = new CellReference("", newCell.getR()); + anchor.getFrom().setCol(cellReference.getColumn() - 1); + anchor.getFrom().setRow(cellReference.getRow() - 1); + anchor.setTo(new CTMarker()); + anchor.getTo().setCol(cellReference.getColumn()); + anchor.getTo().setRow(cellReference.getRow()); + + PartName drawingPart = new PartName(worksheetPart.getPartName().getName().replace("worksheets/" + sheetName, "drawings/drawing" + partName)); + String imagePartName = imagePart.getPartName().getName(); + Drawing drawing = (Drawing) pkg.getParts().get(drawingPart); + int currentId = 0; + if (drawing == null) { + drawing = new Drawing(drawingPart); + drawing.setContents(new org.docx4j.dml.spreadsheetdrawing.CTDrawing()); + Relationship relationship = worksheetPart.addTargetPart(drawing); + org.xlsx4j.sml.CTDrawing smlDrawing = new org.xlsx4j.sml.CTDrawing(); + smlDrawing.setId(relationship.getId()); + smlDrawing.setParent(worksheetPart.getContents()); + worksheetPart.getContents().setDrawing(smlDrawing); + } else { + currentId = drawing.getContents().getEGAnchor().size(); + } + + CTPicture picture = new CTPicture(); + + CTBlipFillProperties blipFillProperties = new CTBlipFillProperties(); + blipFillProperties.setStretch(new CTStretchInfoProperties()); + blipFillProperties.getStretch().setFillRect(new CTRelativeRect()); + blipFillProperties.setBlip(new CTBlip()); + blipFillProperties.getBlip().setEmbed("rId" + (currentId + 1)); + blipFillProperties.getBlip().setCstate(STBlipCompression.PRINT); + + picture.setBlipFill(blipFillProperties); + + CTNonVisualDrawingProps nonVisualDrawingProps = new CTNonVisualDrawingProps(); + nonVisualDrawingProps.setId(currentId + 2); + nonVisualDrawingProps.setName(imagePartName.substring(imagePartName.lastIndexOf("/") + 1)); + nonVisualDrawingProps.setDescr(nonVisualDrawingProps.getName()); + + CTNonVisualPictureProperties nonVisualPictureProperties = new CTNonVisualPictureProperties(); + nonVisualPictureProperties.setPicLocks(new CTPictureLocking()); + nonVisualPictureProperties.getPicLocks().setNoChangeAspect(true); + CTPictureNonVisual nonVisualPicture = new CTPictureNonVisual(); + + nonVisualPicture.setCNvPr(nonVisualDrawingProps); + nonVisualPicture.setCNvPicPr(nonVisualPictureProperties); + + picture.setNvPicPr(nonVisualPicture); + + CTShapeProperties shapeProperties = new CTShapeProperties(); + CTTransform2D transform2D = new CTTransform2D(); + transform2D.setOff(new CTPoint2D()); + transform2D.setExt(new CTPositiveSize2D()); + shapeProperties.setXfrm(transform2D); + shapeProperties.setPrstGeom(new CTPresetGeometry2D()); + shapeProperties.getPrstGeom().setPrst(STShapeType.RECT); + shapeProperties.getPrstGeom().setAvLst(new CTGeomGuideList()); + CTPositiveSize2D positivesize2D = new CTPositiveSize2D(); + transform2D.setExt(positivesize2D); + positivesize2D.setCx( XlsxUtils.convertPxToEmu(bufferedImage.getWidth()) ); + positivesize2D.setCy( XlsxUtils.convertPxToEmu(bufferedImage.getHeight()) ); + + picture.setSpPr(shapeProperties); + + anchor.setPic(picture); + anchor.setClientData(new CTAnchorClientData()); + + drawing.getContents().getEGAnchor().add(anchor); + + Relationship rel = new Relationship(); + rel.setId("rId" + (currentId + 1)); + rel.setType(Namespaces.IMAGE); + rel.setTarget(imagePartName); + + drawing.getRelationshipsPart().addRelationship(rel); + RelationshipsPart relPart = drawing.getRelationshipsPart(); + pkg.getParts().remove(relPart.getPartName()); + pkg.getParts().put(relPart); + pkg.getParts().remove(drawing.getPartName()); + pkg.getParts().put(drawing); + } + + private static String getWmlTemplateString(JaxbSmlPart smlPart) { + String wmlTemplateString = null; + PartStore partStore = smlPart.getPackage().getSourcePartStore(); + String name = smlPart.getPartName().getName(); + try { + InputStream is = partStore.loadPart( + name.substring(1)); + if (is == null) { + log.warn(name + " missing from part store"); + } else { + log.info("Lazily unmarshalling " + name); +// wmlTemplateString = convertStreamToString(is); + + // This seems to be about 5% faster than the Scanner approach + wmlTemplateString = IOUtils.toString(is, "UTF-8"); + List placeholderList = new ArrayList<>(); + getAllPlaceholderElementFromObject(wmlTemplateString, 0, placeholderList); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + + } finally { + return wmlTemplateString; + } + } + + private static List getAllPlaceholderElementFromObject(String wmlTemplateString, int offset, List placeholderList) { + + int startKey = wmlTemplateString.indexOf("${", offset); + if (startKey == -1) + return null; + else { + int keyEnd = wmlTemplateString.indexOf('}', startKey); + String placeHolder = wmlTemplateString.substring(startKey, keyEnd + 1); + if (isPlaceholder(placeHolder)) { + placeholderList.add(placeHolder); + } + return getAllPlaceholderElementFromObject(wmlTemplateString, keyEnd + 1, placeholderList); + } + } + + /** + * 判断字符串是否有${}占位符 + * + * @param str 需要判断的字符串 + * @return 是否字符串是否有${}占位符 + * @author liyawei + */ + private static boolean isPlaceholder(String str) { + if (str != null && !str.isEmpty()) { + Pattern pattern = Pattern.compile("([$]\\{[A-Za-z0-9./ -]+\\})"); // 识别范围 认证模块专用 + Matcher m = pattern.matcher(str); + return m.find(); + } + return false; } public static void xlsx4JAddImage() throws Exception { @@ -88,17 +422,11 @@ public class ExcelUtil { System.out.println("\n\n done .. " + outputfilepath); } - public static void variableReplace(InputStream is, OutputStream os, HashMap mappings) throws Exception { - - SpreadsheetMLPackage opcPackagepkg = SpreadsheetMLPackage.load(is); - + public static void variableReplace(SpreadsheetMLPackage pkg, HashMap mappings) throws Exception { // Be sure to get the part which actually contains your variables! - JaxbSmlPart smlPart = (JaxbSmlPart)opcPackagepkg.getParts().get(new PartName("/xl/sharedStrings.xml")); // 获取所有sheet + JaxbSmlPart smlPart = (JaxbSmlPart)pkg.getParts().get(new PartName("/xl/sharedStrings.xml")); // 获取所有sheet //JaxbSmlPart smlPart = (JaxbSmlPart)opcPackagepkg.getParts().get(new PartName("/xl/worksheets/sheet1.xml")); smlPart.variableReplace(mappings); - - // Save it - opcPackagepkg.save(os); } /** @@ -128,14 +456,14 @@ public class ExcelUtil { CTBlip blip = dmlObjectFactory.createCTBlip(); blipfillproperties.setBlip(blip); blip.setCstate(org.docx4j.dml.STBlipCompression.NONE); - blip.setEmbed( imageRelID ); + blip.setEmbed( imageRelID ); //------- // Create object for extLst CTOfficeArtExtensionList officeartextensionlist = dmlObjectFactory.createCTOfficeArtExtensionList(); blip.setExtLst(officeartextensionlist); // Create object for ext CTOfficeArtExtension officeartextension = dmlObjectFactory.createCTOfficeArtExtension(); officeartextensionlist.getExt().add( officeartextension); - officeartextension.setUri( "{28A0092B-C50C-407E-A947-70E740481C1C}"); + officeartextension.setUri( "{28A0092B-C50C-407E-A947-70E740481C1C}"); //------ blip.setLink( ""); // Create object for stretch CTStretchInfoProperties stretchinfoproperties = dmlObjectFactory.createCTStretchInfoProperties(); @@ -143,10 +471,10 @@ public class ExcelUtil { // Create object for fillRect CTRelativeRect relativerect = dmlObjectFactory.createCTRelativeRect(); stretchinfoproperties.setFillRect(relativerect); - relativerect.setR( new Integer(0) ); - relativerect.setT( new Integer(0) ); - relativerect.setL( new Integer(0) ); - relativerect.setB( new Integer(0) ); + relativerect.setR( new Integer(0) ); //------ + relativerect.setT( new Integer(0) ); //------ + relativerect.setL( new Integer(0) ); //------ + relativerect.setB( new Integer(0) ); //------ // Create object for spPr CTShapeProperties shapeproperties = dmlObjectFactory.createCTShapeProperties(); picture.setSpPr(shapeproperties); @@ -157,13 +485,13 @@ public class ExcelUtil { // Create object for off CTPoint2D point2d = dmlObjectFactory.createCTPoint2D(); transform2d.setOff(point2d); - point2d.setY( 0 ); - point2d.setX( 0 ); + point2d.setY( 0 ); //------ + point2d.setX( 0 ); //------ // Create object for ext CTPositiveSize2D positivesize2d = dmlObjectFactory.createCTPositiveSize2D(); transform2d.setExt(positivesize2d); - positivesize2d.setCx( 714375 ); - positivesize2d.setCy( 714375 ); + positivesize2d.setCx( 714375 ); //------ + positivesize2d.setCy( 714375 ); //------ // Create object for prstGeom CTPresetGeometry2D presetgeometry2d = dmlObjectFactory.createCTPresetGeometry2D(); shapeproperties.setPrstGeom(presetgeometry2d); @@ -177,9 +505,9 @@ public class ExcelUtil { // Create object for cNvPr CTNonVisualDrawingProps nonvisualdrawingprops = dmlObjectFactory.createCTNonVisualDrawingProps(); picturenonvisual.setCNvPr(nonvisualdrawingprops); - nonvisualdrawingprops.setDescr( ""); - nonvisualdrawingprops.setName( "Picture 1"); - nonvisualdrawingprops.setId( 2 ); + nonvisualdrawingprops.setDescr( ""); //------ + nonvisualdrawingprops.setName( "Picture 1"); //------ + nonvisualdrawingprops.setId( 2 ); //------ // Create object for cNvPicPr CTNonVisualPictureProperties nonvisualpictureproperties = dmlObjectFactory.createCTNonVisualPictureProperties(); picturenonvisual.setCNvPicPr(nonvisualpictureproperties); @@ -190,18 +518,18 @@ public class ExcelUtil { // Create object for to CTMarker marker = dmlspreadsheetdrawingObjectFactory.createCTMarker(); twocellanchor.setTo(marker); - marker.setCol(1); - marker.setColOff( 104775 ); - marker.setRow(3); - marker.setRowOff( 142875 ); + marker.setCol(1); //------ + marker.setColOff( 104775 ); //------ + marker.setRow(3); //------ + marker.setRowOff( 142875 ); //------ // Create object for from CTMarker marker2 = dmlspreadsheetdrawingObjectFactory.createCTMarker(); twocellanchor.setFrom(marker2); - marker2.setCol(0); - marker2.setColOff( 0 ); - marker2.setRow(0); - marker2.setRowOff( 0 ); - twocellanchor.setEditAs(STEditAs.fromValue("name")); + marker2.setCol(0); //------ + marker2.setColOff( 0 ); //------ + marker2.setRow(0); //------ + marker2.setRowOff( 0 ); //------ + twocellanchor.setEditAs(STEditAs.ONE_CELL); // return drawingWrapped; return drawing; @@ -264,5 +592,4 @@ public class ExcelUtil { XmlUtils.unmarshalString(openXML)); } - } From 24393dd2020124b4e2d714ca08ac508c07cf6d8a Mon Sep 17 00:00:00 2001 From: liyawei Date: Fri, 29 Jul 2022 18:25:40 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E8=AE=A4=E8=AF=81-=E4=B8=8A=E6=8A=A5?= =?UTF-8?q?=E5=BA=93-=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AF=BC=E5=87=BAexcel?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF-=E5=9B=BE=E7=89=87=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/project/util/CellReference.java | 112 ++++++++++++++++++ .../jero/modules/project/util/XlsxUtils.java | 56 +++++++++ 2 files changed, 168 insertions(+) create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/util/CellReference.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/util/XlsxUtils.java diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/util/CellReference.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/util/CellReference.java new file mode 100644 index 000000000..fc67eb2d9 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/util/CellReference.java @@ -0,0 +1,112 @@ +/* + * Copyright 2013 Haulmont + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.jero.modules.project.util; + +import org.apache.commons.lang3.ObjectUtils; +import org.xlsx4j.sml.Cell; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class CellReference implements Comparable { + public static final Pattern CELL_COORDINATES_PATTERN = Pattern.compile("([A-z]+)([0-9]+)"); + private int column; + private int row; + private String sheet; + + public CellReference(String sheet, int row, int column) { + this.column = column; + this.row = row; + this.sheet = sheet; + } + + public CellReference(String sheet, String cellRef) { + Matcher matcher = CELL_COORDINATES_PATTERN.matcher(cellRef); + if (matcher.find()) { + column = XlsxUtils.getNumberFromColumnReference(matcher.group(1)); + row = Integer.valueOf(matcher.group(2)); + this.sheet = sheet; + } else { + throw new RuntimeException(String.format("Wrong cell %s", cellRef)); + } + } + + public CellReference(String sheet, Cell cell) { + this(sheet, cell.getR()); + } + + public CellReference shift(int downShift, int rightShift) { + row += downShift; + column += rightShift; + return this; + } + + public CellReference move(int row, int col) { + this.row = row; + this.column = col; + return this; + } + + public String toReference() { + return XlsxUtils.getColumnReferenceFromNumber(getColumn()) + getRow(); + } + + public int getColumn() { + return column; + } + + public int getRow() { + return row; + } + + public String getSheet() { + return sheet; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + CellReference that = (CellReference) o; + + if (column != that.column) return false; + if (row != that.row) return false; + if (sheet != null ? !sheet.equals(that.sheet) : that.sheet != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = column; + result = 31 * result + row; + result = 31 * result + (sheet != null ? sheet.hashCode() : 0); + return result; + } + + @Override + public int compareTo(Object o) { + if (o instanceof CellReference) { + int rows = ObjectUtils.compare(row, ((CellReference) o).row); + int columns = ObjectUtils.compare(column, ((CellReference) o).column); + return rows != 0 ? rows : columns; + + } else { + throw new IllegalArgumentException("Could not compare with " + o); + } + } +} \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/util/XlsxUtils.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/util/XlsxUtils.java new file mode 100644 index 000000000..49a72d3bf --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/util/XlsxUtils.java @@ -0,0 +1,56 @@ +/* + * Copyright 2013 Haulmont + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.jero.modules.project.util; + +public final class XlsxUtils { + + private static final long PX_PER_INCH = 96; + private static final long EMU_PER_INCH = 914400; + + private XlsxUtils() { + } + + public static int getNumberFromColumnReference(String columnReference) { + int sum = 0; + + for (int i = 0; i < columnReference.length(); i++) { + char c = columnReference.charAt(i); + int number = ((int) c) - 64 - 1; + + int pow = columnReference.length() - i - 1; + sum += Math.pow(26, pow) * (number + 1); + } + return sum; + } + + public static String getColumnReferenceFromNumber(int number) { + int remain = 0; + StringBuilder ref = new StringBuilder(); + do { + + remain = (number - 1) % 26; + number = (number - 1) / 26; + + ref.append((char) (remain + 64 + 1)); + } while (number > 0); + + return ref.reverse().toString(); + } + + public static long convertPxToEmu(long px) { + return px * EMU_PER_INCH / PX_PER_INCH; + } +} From a71c033e78085667d3b045bb50887a261f4573b7 Mon Sep 17 00:00:00 2001 From: zer0Black Date: Sun, 31 Jul 2022 10:56:06 +0800 Subject: [PATCH 15/16] =?UTF-8?q?space=E5=90=8C=E6=AD=A5=E7=9A=84=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=97=A5=E5=BF=97=E6=94=B9=E4=B8=BAinfo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/jero/modules/space/job/SpaceJobHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/space/job/SpaceJobHandler.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/space/job/SpaceJobHandler.java index 33560fecf..967b2f388 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/space/job/SpaceJobHandler.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/space/job/SpaceJobHandler.java @@ -136,7 +136,7 @@ public class SpaceJobHandler implements Job { } } projectYearNameInfoEOService.saveBatch(diffYearNameList); - log.error("从Space获取项目名称相关数据,成功保存"); + log.info("从Space获取项目名称相关数据,成功保存"); } } } From a21d139770b06868275151f665cadf5d813cfc8f Mon Sep 17 00:00:00 2001 From: zer0Black Date: Mon, 1 Aug 2022 09:53:28 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E5=8E=BB=E9=99=A4NumberInfo=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/NumberInfo/NumberInfo.vue | 54 ------------------ jero-web/src/components/NumberInfo/index.js | 3 - jero-web/src/components/NumberInfo/index.less | 55 ------------------- jero-web/src/views/Home.vue | 13 ----- 4 files changed, 125 deletions(-) delete mode 100644 jero-web/src/components/NumberInfo/NumberInfo.vue delete mode 100644 jero-web/src/components/NumberInfo/index.js delete mode 100644 jero-web/src/components/NumberInfo/index.less diff --git a/jero-web/src/components/NumberInfo/NumberInfo.vue b/jero-web/src/components/NumberInfo/NumberInfo.vue deleted file mode 100644 index 81508780b..000000000 --- a/jero-web/src/components/NumberInfo/NumberInfo.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - - - \ No newline at end of file diff --git a/jero-web/src/components/NumberInfo/index.js b/jero-web/src/components/NumberInfo/index.js deleted file mode 100644 index a471501ab..000000000 --- a/jero-web/src/components/NumberInfo/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import NumberInfo from './NumberInfo' - -export default NumberInfo \ No newline at end of file diff --git a/jero-web/src/components/NumberInfo/index.less b/jero-web/src/components/NumberInfo/index.less deleted file mode 100644 index 719113da9..000000000 --- a/jero-web/src/components/NumberInfo/index.less +++ /dev/null @@ -1,55 +0,0 @@ -@import "../index"; - -@numberInfo-prefix-cls: ~"@{ant-pro-prefix}-number-info"; - -.@{numberInfo-prefix-cls} { - - .ant-pro-number-info-subtitle { - color: @text-color-secondary; - font-size: @font-size-base; - height: 22px; - line-height: 22px; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - white-space: nowrap; - } - - .number-info-value { - margin-top: 4px; - font-size: 0; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - white-space: nowrap; - - & > span { - color: @heading-color; - display: inline-block; - line-height: 32px; - height: 32px; - font-size: 24px; - margin-right: 32px; - } - - .sub-total { - color: @text-color-secondary; - font-size: @font-size-lg; - vertical-align: top; - margin-right: 0; - i { - font-size: 12px; - transform: scale(0.82); - margin-left: 4px; - } - :global { - .anticon-caret-up { - color: @red-6; - } - .anticon-caret-down { - color: @green-6; - } - } - } - } -} \ No newline at end of file diff --git a/jero-web/src/views/Home.vue b/jero-web/src/views/Home.vue index c9cab99cc..185c587fd 100644 --- a/jero-web/src/views/Home.vue +++ b/jero-web/src/views/Home.vue @@ -95,17 +95,6 @@ fourth incident in September, according to the safety recall report. After meeting with US regulators in October, the firm decided to issue a voluntary recall. - -

# NumberInfo 组件

- - NumberInfo - - -
@@ -116,14 +105,12 @@ import AvatarList from '@/components/AvatarList' import CountDown from '@/components/CountDown/CountDown' import Ellipsis from '@/components/Ellipsis' - import NumberInfo from '@/components/NumberInfo' const AvatarListItem = AvatarList.AvatarItem export default { name: 'Home', components: { - NumberInfo, Ellipsis, CountDown, Trend,