|
@@ -1,6 +1,8 @@
|
|
|
package cn.cslg.report.service.business.InvalidReReport;
|
|
|
|
|
|
import cn.cslg.report.common.model.dto.invalidReReport.ArgumentsScenarioDTO;
|
|
|
+import cn.cslg.report.common.model.vo.invalidReReport.ArgumentsScenarioVO;
|
|
|
+import cn.cslg.report.common.model.vo.invalidReReport.ArgumentsVO;
|
|
|
import cn.cslg.report.common.utils.Response;
|
|
|
import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
|
|
|
import cn.cslg.report.entity.Template;
|
|
@@ -22,6 +24,7 @@ import org.springframework.stereotype.Service;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@Service
|
|
@@ -30,52 +33,156 @@ import java.util.List;
|
|
|
public class ArgumentsScenarioService extends ServiceImpl<ArgumentsScenarioMapper, ArgumentsScenarios> {
|
|
|
private final LoginUtils loginUtils;
|
|
|
private final AssoArgumentsService assoArgumentsService;
|
|
|
- //添加陈述意见方案
|
|
|
+ private final ArgumentsService argumentsService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加陈述意见方案
|
|
|
+ * @param argumentsScenarioDTO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public String addArgumentsScenario(ArgumentsScenarioDTO argumentsScenarioDTO) {
|
|
|
Integer loginId = loginUtils.getId();
|
|
|
- List<Integer> argumentIds =argumentsScenarioDTO.getArgumentIds();
|
|
|
- Integer reportId =argumentsScenarioDTO.getReportId();
|
|
|
- Integer rightSort =argumentsScenarioDTO.getRightSort();
|
|
|
- if(argumentIds==null||argumentIds.size()==0||reportId==null||rightSort==null){
|
|
|
+ //修改方案/理由
|
|
|
+ List<Integer> argumentIds = argumentsScenarioDTO.getArgumentIds();
|
|
|
+ //报告id
|
|
|
+ Integer reportId = argumentsScenarioDTO.getReportId();
|
|
|
+ //权要排序
|
|
|
+ Integer rightSort = argumentsScenarioDTO.getRightSort();
|
|
|
+ if(argumentIds == null || argumentIds.size() == 0 || reportId == null || rightSort == null){
|
|
|
return Response.error("请按要求输入参数");
|
|
|
}
|
|
|
- ArgumentsScenarios argumentsScenarios =new ArgumentsScenarios();
|
|
|
+ ArgumentsScenarios argumentsScenarios = new ArgumentsScenarios();
|
|
|
BeanUtils.copyProperties(argumentsScenarioDTO,argumentsScenarios);
|
|
|
argumentsScenarios.setCreateId(loginId);
|
|
|
argumentsScenarios.insert();
|
|
|
//添加陈述意见方案和陈述意见关联关系
|
|
|
- List<AssoArguments> assoArguments=new ArrayList<>();
|
|
|
+ List<AssoArguments> assoArguments = new ArrayList<>();
|
|
|
argumentIds.forEach(item->{
|
|
|
- AssoArguments assoArgument =new AssoArguments();
|
|
|
+ AssoArguments assoArgument = new AssoArguments();
|
|
|
assoArgument.setArgumentId(item);
|
|
|
assoArgument.setCreateId(loginId);
|
|
|
assoArgument.setScenarioId(argumentsScenarios.getId());
|
|
|
assoArguments.add(assoArgument);
|
|
|
});
|
|
|
assoArgumentsService.saveBatch(assoArguments);
|
|
|
-return Response.success();
|
|
|
+ return Response.success("添加陈述意见方案成功");
|
|
|
}
|
|
|
|
|
|
- //删除陈述意见方案
|
|
|
+ /**
|
|
|
+ * 删除陈述意见方案
|
|
|
+ * @param scenarioIds
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public String deleteArgumentsScenario(List<Integer> scenarioIds) {
|
|
|
//若ids为空或者size=0则返回请至少选择一个方案进行删除
|
|
|
- if(scenarioIds==null||scenarioIds.size()==0){
|
|
|
- Response.error("请至少选择一个方案");
|
|
|
+ if(scenarioIds == null || scenarioIds.size() == 0){
|
|
|
+ return Response.error("请至少选择一个方案");
|
|
|
}
|
|
|
- //根据陈述意见方案id批量删除陈述意见方案
|
|
|
//根据陈述意见方案id批量删除陈述意见方案和陈述意见关联关系
|
|
|
- return "";
|
|
|
+ LambdaQueryWrapper<AssoArguments> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.in(AssoArguments::getScenarioId,scenarioIds);
|
|
|
+ assoArgumentsService.remove(wrapper);
|
|
|
+ //根据陈述意见方案id批量删除陈述意见方案
|
|
|
+ this.removeByIds(scenarioIds);
|
|
|
+ return Response.success("删除成功");
|
|
|
}
|
|
|
|
|
|
//查询陈述意见方案
|
|
|
- public String queryArgumentsScenario(Template template) {
|
|
|
+ public List<ArgumentsScenarioVO> queryArgumentsScenario(Integer reportId) {
|
|
|
+ //新建需要返回的陈述意见方案集合
|
|
|
+ List<ArgumentsScenarioVO> argumentsScenarioVOS = new ArrayList<>();
|
|
|
+ //判断传入报告id是否为空
|
|
|
+ if(reportId != null && reportId > 0){
|
|
|
+ //根据报告id查询表中多个陈述意见方案实体类的集合
|
|
|
+ LambdaQueryWrapper<ArgumentsScenarios> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(ArgumentsScenarios::getReportId,reportId);
|
|
|
+ List<ArgumentsScenarios> argumentsScenariosList = this.list(wrapper);
|
|
|
+ //判断查出来的集合是否为空,不为空则遍历查询陈述意见和装载
|
|
|
+ if(argumentsScenariosList != null && argumentsScenariosList.size() > 0){
|
|
|
+ for(ArgumentsScenarios argumentsScenarios:argumentsScenariosList){
|
|
|
+ //新建陈述意见方案返回VO类
|
|
|
+ ArgumentsScenarioVO argumentsScenarioVO = new ArgumentsScenarioVO();
|
|
|
+ //复制,装载陈述意见方案基本信息
|
|
|
+ BeanUtils.copyProperties(argumentsScenarios, argumentsScenarioVO);
|
|
|
+ //调用查询装载陈述意见信息接口
|
|
|
+ List<ArgumentsVO> argumentsVOList = this.loadArguments(argumentsScenarios.getId());
|
|
|
+ argumentsScenarioVO.setArgumentsVOList(argumentsVOList);
|
|
|
+ argumentsScenarioVOS.add(argumentsScenarioVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return argumentsScenarioVOS;
|
|
|
+ }
|
|
|
|
|
|
- return "";
|
|
|
+ public List<ArgumentsVO> loadArguments(Integer scenariosId){
|
|
|
+ //新建需要返回的陈述意见返回VO类
|
|
|
+ List<ArgumentsVO> argumentsVOList = new ArrayList<>();
|
|
|
+ //判断传入陈述意见方案id是否为空
|
|
|
+ if(scenariosId != null && scenariosId > 0) {
|
|
|
+ //根据陈述意见方案id查询关联关系
|
|
|
+ LambdaQueryWrapper<AssoArguments> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(AssoArguments::getScenarioId, scenariosId);
|
|
|
+ List<AssoArguments> assoArgumentsList = assoArgumentsService.list(wrapper);
|
|
|
+ //获取关联表中陈述意见方案对应的陈述意见ids
|
|
|
+ List<Integer> argumentsIds = assoArgumentsList.stream().map(AssoArguments::getArgumentId).collect(Collectors.toList());
|
|
|
+ //根据陈述意见ids查询出所有的陈述意见对象的集合
|
|
|
+ LambdaQueryWrapper<Arguments> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ wrapper1.in(Arguments::getId, argumentsIds);
|
|
|
+ List<Arguments> argumentsList = argumentsService.list(wrapper1);
|
|
|
+ //遍历陈述意见对象集合,装载到VO类集合
|
|
|
+ for(Arguments arguments:argumentsList){
|
|
|
+ ArgumentsVO argumentsVO = new ArgumentsVO();
|
|
|
+ BeanUtils.copyProperties(arguments, argumentsVO);
|
|
|
+ argumentsVOList.add(argumentsVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return argumentsVOList;
|
|
|
}
|
|
|
- //更新陈述意见方案
|
|
|
- public String updateArgumentsScenario(ArgumentsScenarioDTO argumentsScenarioDTO) {
|
|
|
|
|
|
- return "";
|
|
|
+ /**
|
|
|
+ * 更新陈述意见方案
|
|
|
+ * @param argumentsScenarioDTO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String updateArgumentsScenario(ArgumentsScenarioDTO argumentsScenarioDTO) {
|
|
|
+ if(argumentsScenarioDTO.getId() == null){
|
|
|
+ return Response.error("请选择陈述意见方案");
|
|
|
+ }
|
|
|
+ ArgumentsScenarios argumentsScenarios = this.getById(argumentsScenarioDTO.getId());
|
|
|
+ BeanUtils.copyProperties(argumentsScenarioDTO, argumentsScenarios);
|
|
|
+ argumentsScenarios.updateById();
|
|
|
+ //需要更新入关联表的陈述意见ids
|
|
|
+ List<Integer> argumentIds = argumentsScenarioDTO.getArgumentIds();
|
|
|
+ //关联表中所有的陈述意见ids
|
|
|
+ LambdaQueryWrapper<AssoArguments> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(AssoArguments::getScenarioId, argumentsScenarioDTO.getId());
|
|
|
+ List<AssoArguments> assoArguments = assoArgumentsService.list(wrapper);
|
|
|
+ List<Integer> oldArgumentIds = assoArguments.stream().map(AssoArguments::getArgumentId).collect(Collectors.toList());
|
|
|
+ //需要删除的陈述意见ids在关联表中
|
|
|
+ List<Integer> needDeleteIds = new ArrayList<>();
|
|
|
+ for(Integer id:oldArgumentIds){
|
|
|
+ if(!argumentIds.contains(id)){
|
|
|
+ needDeleteIds.add(id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(needDeleteIds != null && needDeleteIds.size() > 0){
|
|
|
+ //删除
|
|
|
+ LambdaQueryWrapper<AssoArguments> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ wrapper1.in(AssoArguments::getArgumentId, needDeleteIds);
|
|
|
+ assoArgumentsService.remove(wrapper1);
|
|
|
+ }
|
|
|
+ //需要新增的陈述意见ids
|
|
|
+ List<Integer> needInsertIds = new ArrayList<>();
|
|
|
+ for(Integer insertId:argumentIds){
|
|
|
+ if(!oldArgumentIds.contains(insertId)){
|
|
|
+ needInsertIds.add(insertId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(needInsertIds != null && needDeleteIds.size() > 0){
|
|
|
+ //新增
|
|
|
+ assoArgumentsService.add(argumentsScenarioDTO.getId(), needInsertIds);
|
|
|
+ }
|
|
|
+ return Response.success("更新成功");
|
|
|
}
|
|
|
}
|
|
|
|