diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRxswinEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRxswinEOController.java index 9f63d9e9c..99f9f7159 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRxswinEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRxswinEOController.java @@ -236,4 +236,21 @@ public class ProjectRxswinEOController extends JeroControllerYES覆盖, flag-->NO不覆盖 + * @return + */ + @AutoLog(value = "调取后保存数据") + @ApiOperation(value="调取后保存数据", notes="调取后保存数据") + @GetMapping(value = "/addBatch") + public Result addBatch(@RequestParam(name="projectId",required=true) String projectId, + @RequestParam(name="ids",required=true) String ids, + @RequestParam(name="flag",required=true) String flag) { + projectRxswinEOService.addBatch(projectId, ids,flag); + return Result.OK(""); + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/StatusEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/StatusEnum.java index 05c34bbd5..c28f22ee6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/StatusEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/StatusEnum.java @@ -6,6 +6,8 @@ package com.jero.modules.project.enums; public enum StatusEnum { SAVE("保存","0"), SUBMIT("提交","1"), + COVER_YES("覆盖","YES"), + COVER_NO("不覆盖","NO"), ; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRxswinEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRxswinEOService.java index 548d3ce41..382ed1de4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRxswinEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRxswinEOService.java @@ -92,4 +92,7 @@ public interface IProjectRxswinEOService extends IService { * @param ids */ String iSExist(String projectId,String ids); + + + void addBatch(String projectId,String ids,String flag); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRxswinEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRxswinEOServiceImpl.java index 82bd94611..293c89d4b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRxswinEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRxswinEOServiceImpl.java @@ -208,28 +208,74 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl projectRxswinEOS = rxswinEOList.stream().filter(e -> themeList.contains(e.getTheme())).collect(Collectors.toList()); if(projectRxswinEOS.isEmpty()){ //直接新增 - for (ProjectRxswinEO projectRxswinEO : rxswinEOList) { - projectRxswinEO.setId(UUID.randomUUID().toString().replaceAll("-","")); - projectRxswinEO.setProjectId(projectId); - projectRxswinEO.setCreateTime(new Date()); - projectRxswinEO.setCreateBy(user.getUsername()); - projectRxswinEO.setState(StatusEnum.SAVE.getValue()); - } - this.saveBatch(rxswinEOList); + saveBatchInfo(projectId, user, rxswinEOList); }else{ return "YES"; } }else{ //直接新增 - for (ProjectRxswinEO projectRxswinEO : rxswinEOList) { - projectRxswinEO.setId(UUID.randomUUID().toString().replaceAll("-","")); - projectRxswinEO.setProjectId(projectId); - projectRxswinEO.setCreateTime(new Date()); - projectRxswinEO.setCreateBy(user.getUsername()); - projectRxswinEO.setState(StatusEnum.SAVE.getValue()); - } - this.saveBatch(rxswinEOList); + saveBatchInfo(projectId, user, rxswinEOList); } return "NO"; } + + private void saveBatchInfo(String projectId, LoginUser user, List rxswinEOList) { + for (ProjectRxswinEO projectRxswinEO : rxswinEOList) { + projectRxswinEO.setId(UUID.randomUUID().toString().replaceAll("-","")); + projectRxswinEO.setProjectId(projectId); + projectRxswinEO.setCreateTime(new Date()); + projectRxswinEO.setCreateBy(user.getUsername()); + projectRxswinEO.setState(StatusEnum.SAVE.getValue()); + } + this.saveBatch(rxswinEOList); + } + + /** + * 调取后保存数据 + * @param projectId + * @param ids + * @param flag + */ + @Override + public void addBatch(String projectId, String ids,String flag) { + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + //新增的 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectRxswinEO::getId, Arrays.asList(ids.split(","))); + List rxswinEOList = this.list(wrapper); + + //已存在的 + LambdaQueryWrapper wrapperTemp = new LambdaQueryWrapper<>(); + wrapperTemp.eq(ProjectRxswinEO::getProjectId, projectId); + List rxswinEOS = this.list(wrapperTemp); + + List themeList = rxswinEOS.stream().map(ProjectRxswinEO::getTheme).collect(Collectors.toList()); + List yesList = rxswinEOList.stream().filter(e -> themeList.contains(e.getTheme())).collect(Collectors.toList()); + List noList = rxswinEOList.stream().filter(e -> !themeList.contains(e.getTheme())).collect(Collectors.toList()); + + + if(StatusEnum.COVER_YES.getValue().equals(flag)){ + //未存在的进行新增 + saveBatchInfo(projectId, user, noList); + + for (ProjectRxswinEO projectRxswinEO : yesList) { + List collect = rxswinEOS.stream() + .filter(e -> projectRxswinEO.getTheme().equals(e.getTheme())).collect(Collectors.toList()); + if(!collect.isEmpty()){ + projectRxswinEO.setId(collect.get(0).getId()); + projectRxswinEO.setCreateTime(collect.get(0).getCreateTime()); + } + projectRxswinEO.setUpdateTime(new Date()); + projectRxswinEO.setCreateBy(user.getUsername()); + projectRxswinEO.setState(StatusEnum.SAVE.getValue()); + } + //已存在的进行覆盖 + this.updateBatchById(yesList); + + + }else if(StatusEnum.COVER_NO.getValue().equals(flag)){ + saveBatchInfo(projectId, user, noList); + } + } }