ProofGroupService.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. package cn.cslg.pas.service.business;
  2. import cn.cslg.pas.common.dto.DomainFieldDTO;
  3. import cn.cslg.pas.common.dto.invalidDTO.AddProofGroupDTO;
  4. import cn.cslg.pas.common.dto.invalidDTO.GetProofGroupDTO;
  5. import cn.cslg.pas.common.dto.invalidDTO.UpdateMessageDTO;
  6. import cn.cslg.pas.common.utils.GenerateObjectUtil;
  7. import cn.cslg.pas.common.vo.invalidVO.ProofGroupVO;
  8. import cn.cslg.pas.domain.business.AssoGroupFeature;
  9. import cn.cslg.pas.domain.business.InvalidStatutes;
  10. import cn.cslg.pas.domain.business.ProofGroup;
  11. import cn.cslg.pas.exception.XiaoShiException;
  12. import cn.cslg.pas.mapper.ProofGroupMapper;
  13. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  14. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.beans.BeanUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.web.bind.annotation.RequestBody;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. import java.util.stream.Collectors;
  23. /**
  24. * 无效证据Service
  25. *
  26. * @Author xiexiang
  27. * @Date 2023/12/25
  28. */
  29. @Service
  30. @Slf4j
  31. public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup> {
  32. @Autowired
  33. private InvalidStatutesService invalidStatutesService;
  34. /**
  35. * 添加or修改证据组合
  36. *
  37. * @param addProofGroupDTO
  38. * @return
  39. */
  40. public List<Integer> addProofGroup(AddProofGroupDTO addProofGroupDTO) {
  41. List<Integer> proofGroupIds = new ArrayList<>();
  42. if (addProofGroupDTO != null) {
  43. Integer id = addProofGroupDTO.getId();
  44. List<String> descriptions = addProofGroupDTO.getDescriptions();
  45. Integer projectId = addProofGroupDTO.getProjectId();
  46. Integer claimId = addProofGroupDTO.getClaimId();
  47. Integer statutesId = addProofGroupDTO.getStatutesId();
  48. if (projectId == null) {
  49. throw new XiaoShiException("projectId不能为空");
  50. }
  51. if (claimId == null) {
  52. throw new XiaoShiException("claimId不能为空");
  53. }
  54. if (statutesId == null) {
  55. throw new XiaoShiException("invalidStatutesId不能为空");
  56. }
  57. LambdaQueryWrapper<InvalidStatutes> queryWrapper = new LambdaQueryWrapper<>();
  58. queryWrapper.eq(InvalidStatutes::getStatutesId, statutesId)
  59. .eq(InvalidStatutes::getClaimId, claimId)
  60. .eq(InvalidStatutes::getProjectId, projectId);
  61. InvalidStatutes invalidStatutes = invalidStatutesService.getOne(queryWrapper, false);
  62. if (invalidStatutes == null) {
  63. throw new XiaoShiException("查询无效法条错误");
  64. }
  65. Integer invalidStatutesId = invalidStatutes.getId();
  66. List<ProofGroup> proofGroups = new ArrayList<>();
  67. if (id != null) {
  68. //单个更新
  69. ProofGroup proofGroup = this.getById(id);
  70. proofGroup.setInvalidStatutesId(invalidStatutesId);
  71. if (!descriptions.isEmpty() && descriptions.size() == 1) {
  72. proofGroup.setDescription(descriptions.get(0));
  73. } else {
  74. proofGroup.setDescription(null);
  75. }
  76. proofGroup.updateById();
  77. proofGroupIds.add(proofGroup.getId());
  78. } else {
  79. //批量新增
  80. //如果证据组合说明不为空
  81. if (!descriptions.isEmpty()) {
  82. descriptions.forEach(item -> {
  83. ProofGroup proofGroup = new ProofGroup();
  84. proofGroup.setInvalidStatutesId(invalidStatutesId);
  85. proofGroup.setDescription(item);
  86. proofGroups.add(proofGroup);
  87. });
  88. } else {
  89. ProofGroup proofGroup = new ProofGroup();
  90. proofGroup.setInvalidStatutesId(invalidStatutesId);
  91. proofGroups.add(proofGroup);
  92. }
  93. this.saveBatch(proofGroups);
  94. }
  95. proofGroupIds = proofGroups.stream().map(ProofGroup::getId).collect(Collectors.toList());
  96. } else {
  97. throw new XiaoShiException("参数不能为空");
  98. }
  99. return proofGroupIds;
  100. }
  101. /**
  102. * 查询证据组合
  103. *
  104. * @param invalidStatutesId
  105. * @return
  106. */
  107. public List<ProofGroupVO> queryProofGroup(Integer invalidStatutesId) {
  108. List<ProofGroupVO> proofGroupVOS = new ArrayList<>();
  109. if (invalidStatutesId == null) {
  110. throw new XiaoShiException("invalidStatutesId不能为空");
  111. }
  112. InvalidStatutes invalidStatutes = invalidStatutesService.getById(invalidStatutesId);
  113. if (invalidStatutes == null) {
  114. throw new XiaoShiException("查询invalidStatutes错误");
  115. }
  116. LambdaQueryWrapper<ProofGroup> queryWrapper = new LambdaQueryWrapper<>();
  117. queryWrapper.eq(ProofGroup::getInvalidStatutesId, invalidStatutesId);
  118. List<ProofGroup> proofGroups = this.list(queryWrapper);
  119. if (!proofGroups.isEmpty()) {
  120. proofGroups.forEach(item -> {
  121. ProofGroupVO proofGroupVO = new ProofGroupVO();
  122. proofGroupVO.setId(item.getId());
  123. proofGroupVO.setInvalidStatutesId(invalidStatutesId);
  124. proofGroupVO.setStatutesId(invalidStatutes.getStatutesId());
  125. proofGroupVO.setClaimId(invalidStatutes.getClaimId());
  126. proofGroupVO.setProjectId(invalidStatutes.getProjectId());
  127. proofGroupVO.setDescription(item.getDescription());
  128. proofGroupVOS.add(proofGroupVO);
  129. });
  130. }
  131. return proofGroupVOS;
  132. }
  133. /**
  134. * 更新信息
  135. *
  136. * @param updateMessageDTO
  137. * @return
  138. */
  139. public Boolean updateMessage(@RequestBody UpdateMessageDTO updateMessageDTO) {
  140. List<Integer> ids = updateMessageDTO.getIds();
  141. List<DomainFieldDTO> domainFieldDTOS = updateMessageDTO.getFieldList();
  142. for(Integer id:ids) {
  143. ProofGroup proofGroup = this.getById(id);
  144. if (proofGroup == null) {
  145. throw new XiaoShiException("证据不存在");
  146. }
  147. if (domainFieldDTOS == null || domainFieldDTOS.size() == 0) {
  148. throw new XiaoShiException("请输入值");
  149. }
  150. domainFieldDTOS.forEach(item -> {
  151. try {
  152. if (item.getValue() != null) {
  153. GenerateObjectUtil.setObjectProperty(proofGroup, item.getField(), item.getValue());
  154. }
  155. } catch (Exception e) {
  156. throw new XiaoShiException("装载失败");
  157. }
  158. });
  159. proofGroup.updateById();
  160. }
  161. return true;
  162. }
  163. /**
  164. * 查询详情
  165. *
  166. * @param getProofGroupDTO
  167. * @return
  168. */
  169. public ProofGroupVO queryProofGroupDetail(GetProofGroupDTO getProofGroupDTO) {
  170. Integer proofId = getProofGroupDTO.getProofGroupId();
  171. if (proofId == null) {
  172. throw new XiaoShiException("请输入id");
  173. }
  174. ProofGroup proofGroup = this.getById(proofId);
  175. if (proofGroup == null) {
  176. throw new XiaoShiException("证据组合不存在");
  177. }
  178. ProofGroupVO proofGroupVO = new ProofGroupVO();
  179. BeanUtils.copyProperties(proofGroup, proofGroupVO);
  180. return proofGroupVO;
  181. }
  182. /**
  183. * 查询详情
  184. *
  185. * @param ids
  186. * @return
  187. */
  188. public Boolean removeProofGroup(List<Integer> ids) {
  189. if(ids==null||ids.size()==0){
  190. throw new XiaoShiException("请至少选择一个组合");
  191. }
  192. this.removeBatchByIds(ids);
  193. return true;
  194. }
  195. }