调取后保存数据

This commit is contained in:
zhn
2023-08-28 17:43:17 +08:00
parent 6a3b345a73
commit 62c1e145a9
4 changed files with 84 additions and 16 deletions
@@ -236,4 +236,21 @@ public class ProjectRxswinEOController extends JeroController<ProjectRxswinEO, I
return Result.OK(iSExist);
}
/**
*
* @param projectId
* @param ids
* @param flag flag-->YES覆盖, 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("");
}
}
@@ -6,6 +6,8 @@ package com.jero.modules.project.enums;
public enum StatusEnum {
SAVE("保存","0"),
SUBMIT("提交","1"),
COVER_YES("覆盖","YES"),
COVER_NO("不覆盖","NO"),
;
@@ -92,4 +92,7 @@ public interface IProjectRxswinEOService extends IService<ProjectRxswinEO> {
* @param ids
*/
String iSExist(String projectId,String ids);
void addBatch(String projectId,String ids,String flag);
}
@@ -208,28 +208,74 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
List<ProjectRxswinEO> 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<ProjectRxswinEO> 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<ProjectRxswinEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProjectRxswinEO::getId, Arrays.asList(ids.split(",")));
List<ProjectRxswinEO> rxswinEOList = this.list(wrapper);
//已存在的
LambdaQueryWrapper<ProjectRxswinEO> wrapperTemp = new LambdaQueryWrapper<>();
wrapperTemp.eq(ProjectRxswinEO::getProjectId, projectId);
List<ProjectRxswinEO> rxswinEOS = this.list(wrapperTemp);
List<String> themeList = rxswinEOS.stream().map(ProjectRxswinEO::getTheme).collect(Collectors.toList());
List<ProjectRxswinEO> yesList = rxswinEOList.stream().filter(e -> themeList.contains(e.getTheme())).collect(Collectors.toList());
List<ProjectRxswinEO> 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<ProjectRxswinEO> 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);
}
}
}