SysUserLinkPtlAgreementServiceImpl.java 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. package com.ydtech.modules.admin.service.impl;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.ydtech.modules.admin.dao.SysUserLinkPtlAgreementMapper;
  5. import com.ydtech.modules.admin.dao.SysUserMapper;
  6. import com.ydtech.modules.admin.model.SysUser;
  7. import com.ydtech.modules.admin.model.dto.SysUserDto;
  8. import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
  9. import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementQueryDto;
  10. import com.ydtech.modules.admin.model.po.SysUserLinkPtlAgreement;
  11. import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
  12. import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementAddVo;
  13. import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
  14. import com.ydtech.modules.admin.service.SysUserLinkPtlAgreementService;
  15. import com.ydtech.modules.esm.service.EsmInsCompanyService;
  16. import com.ydtech.modules.order.entity.BasePageResult;
  17. import com.ydtech.modules.protocol.entity.po.PtlAgreement;
  18. import com.ydtech.modules.protocol.service.PtlAgreementService;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Service;
  21. import org.springframework.transaction.annotation.Transactional;
  22. import java.util.ArrayList;
  23. import java.util.Date;
  24. import java.util.List;
  25. import java.util.stream.Collectors;
  26. /**
  27. * @version
  28. * @author: hxl
  29. * @Date: 2024/4/15 14:52
  30. * @Description: 用户关联协议表
  31. */
  32. @Service
  33. public class SysUserLinkPtlAgreementServiceImpl extends ServiceImpl<SysUserLinkPtlAgreementMapper, SysUserLinkPtlAgreement> implements SysUserLinkPtlAgreementService {
  34. @Autowired
  35. private SysUserLinkPtlAgreementMapper sysUserLinkPtlAgreementMapper;
  36. @Autowired
  37. private SysUserMapper sysUserMapper;
  38. @Autowired
  39. private PtlAgreementService ptlAgreementService;
  40. @Autowired
  41. private EsmInsCompanyService esmInsCompanyService;
  42. /**
  43. * @version
  44. * @author: hxl
  45. * @Date: 2024/4/15 15:13
  46. * @Description: 分页
  47. */
  48. @Override
  49. public BasePageResult<SysUserLinkPtlAgreementDto> queryPage(SysUserLinkPtlAgreementVo sysUserLinkPtlAgreementVo) {
  50. Page<SysUserLinkPtlAgreementDto> page = new Page<>(sysUserLinkPtlAgreementVo.getPageNum(),
  51. sysUserLinkPtlAgreementVo.getPageSize());
  52. // 获取供应商本级id 及其 下级id
  53. List<String> lowerId = esmInsCompanyService.getByLowerId(sysUserLinkPtlAgreementVo.getInsuranceCompany());
  54. Page<SysUserLinkPtlAgreementDto> sysUserLinkPtlAgreementDtoBasePageResult = sysUserLinkPtlAgreementMapper.queryPage(page, sysUserLinkPtlAgreementVo,lowerId);
  55. return new BasePageResult<>(sysUserLinkPtlAgreementVo.getPageNum(), page.getSize(), sysUserLinkPtlAgreementDtoBasePageResult.getTotal(), page.getPages(),
  56. sysUserLinkPtlAgreementDtoBasePageResult.getRecords());
  57. }
  58. /**
  59. * @version
  60. * @author: hxl
  61. * @Date: 2024/4/15 15:13
  62. * @Description: 添加修改
  63. */
  64. @Override
  65. public void addOrUpdate(SysUserLinkPtlAgreementAddVo sysUserLinkPtlAgreementAddVo, SysUser user) {
  66. String userId = sysUserLinkPtlAgreementAddVo.getUserId();
  67. List<Long> ptlAgreementIds = sysUserLinkPtlAgreementAddVo.getPtlAgreementIds();
  68. //删除数据重新添加
  69. //sysUserLinkPtlAgreementMapper.deleteByUserId(userId);
  70. List<SysUserLinkPtlAgreement> addList=new ArrayList<SysUserLinkPtlAgreement>();
  71. List<Long> ids=sysUserLinkPtlAgreementMapper.findAgreeIdsByUserId(userId);
  72. List<Long> differences = ptlAgreementIds.stream()
  73. .filter(i -> !ids.contains(i))
  74. .collect(Collectors.toList());
  75. //重新添加
  76. if(differences!=null && differences.size()>0){
  77. for (Long ptlAgreementId : differences) {
  78. SysUserLinkPtlAgreement add=new SysUserLinkPtlAgreement(userId,ptlAgreementId,user.getId(),user.getName(),new Date(),user.getId(),user.getName(),new Date());
  79. addList.add(add);
  80. }
  81. this.saveBatch(addList);
  82. }
  83. }
  84. /**
  85. * @version
  86. * @author: hxl
  87. * @Date: 2024/4/15 17:53
  88. * @Description: 通过id删除数据
  89. */
  90. @Override
  91. public void deleteByIds(List<Long> ids) {
  92. sysUserLinkPtlAgreementMapper.deleteBatchIds(ids);
  93. }
  94. /**
  95. * @version
  96. * @author: hxl
  97. * @Date: 2024/4/15 17:52
  98. * @Description: 查询所有的后线人员
  99. */
  100. @Override
  101. public List<SysUserBaseVO> findUserList(String userId) {
  102. return sysUserMapper.findQXUserList(userId);
  103. }
  104. /**
  105. * @version
  106. * @author: hxl
  107. * @Date: 2024/4/15 18:05
  108. * @Description: 查询所有审核的协议信息
  109. */
  110. @Override
  111. public List<PtlAgreement> findPtlAgreementList() {
  112. //预留查询条件后期添加
  113. PtlAgreement param =new PtlAgreement();
  114. return ptlAgreementService.findCheckAgreementList(param);
  115. }
  116. /**
  117. * @version
  118. * @author: whp
  119. * @Date: 2024/07/23
  120. * @Description: 查询审核的所有协议 协议名称拼接
  121. */
  122. @Override
  123. public List<PtlAgreement> findPtlAgreementListNew(String type) {
  124. //预留查询条件后期添加
  125. PtlAgreement param =new PtlAgreement();
  126. param.setAgreementType(type);
  127. return ptlAgreementService.findCheckAgreementListNew(param);
  128. }
  129. @Override
  130. @Transactional
  131. public void addOrUpdateAll(String userId, SysUser user) {
  132. // 获取所有协议
  133. List<PtlAgreement> list = sysUserLinkPtlAgreementMapper.findAllPtlAgreementListByUserId(userId);
  134. // 删除所有绑定的协议
  135. sysUserLinkPtlAgreementMapper.deleteByUserId(userId);
  136. // 重新绑定所有协议
  137. List<SysUserLinkPtlAgreement> addList = new ArrayList<>();
  138. for (PtlAgreement ptlAgreement : list) {
  139. SysUserLinkPtlAgreement add=new SysUserLinkPtlAgreement(userId,Long.parseLong(ptlAgreement.getId()),user.getId(),user.getName(),new Date(),user.getId(),user.getName(),new Date());
  140. addList.add(add);
  141. }
  142. saveBatch(addList);
  143. }
  144. /**
  145. * @version
  146. * @author: hxl
  147. * @Date: 2024/4/16 9:31
  148. * @Description: 通过用户id查询关联的协议列表
  149. */
  150. @Override
  151. public List<SysUserLinkPtlAgreementDto> findPtlAgreementListByUserId(String userId) {
  152. return sysUserLinkPtlAgreementMapper.findPtlAgreementListByUserId(userId);
  153. }
  154. @Override
  155. public List<PtlAgreement> findAllPtlAgreementListByUserId(String userId) {
  156. List<PtlAgreement> list = sysUserLinkPtlAgreementMapper.findAllPtlAgreementListByUserId(userId);
  157. if(list!=null && list.size()>0){
  158. for (PtlAgreement ptlAgreement : list) {
  159. if("1".equals(ptlAgreement.getFlag())){
  160. ptlAgreement.setFlag("true");
  161. }else{
  162. ptlAgreement.setFlag("false");
  163. }
  164. }
  165. }
  166. return list;
  167. }
  168. /**
  169. * @version
  170. * @author: hxl
  171. * @Date: 2024/4/23 11:43
  172. * @Description: 查询后线人员+分页
  173. */
  174. @Override
  175. public BasePageResult<SysUserBaseVO> findUserListByPage(SysUserDto sysUserDto) {
  176. Page<SysUserBaseVO> page = new Page<>(sysUserDto.getPageNum(),
  177. sysUserDto.getPageSize());
  178. Page<SysUserBaseVO> userPageResult = sysUserMapper.findUserListByPage(page, sysUserDto);
  179. return new BasePageResult<>(sysUserDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
  180. userPageResult.getRecords());
  181. }
  182. /**
  183. * @version
  184. * @author: hxl
  185. * @Date: 2024/7/2 11:28
  186. * @Description: 通过用户id查询的关联的协议列表+分页
  187. */
  188. @Override
  189. public BasePageResult<PtlAgreement> findPtlAgreementPageListByUserId(SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto) {
  190. Page<PtlAgreement> page = new Page<>(sysUserLinkPtlAgreementQueryDto.getPageNum(),
  191. sysUserLinkPtlAgreementQueryDto.getPageSize());
  192. Page<PtlAgreement> userPageResult = sysUserLinkPtlAgreementMapper.findPtlAgreementListByUserIdPage(page, sysUserLinkPtlAgreementQueryDto);
  193. List<PtlAgreement> records = userPageResult.getRecords();
  194. List<PtlAgreement> newList =new ArrayList<>();
  195. if(records!=null && records.size()>0){
  196. for (PtlAgreement ptlAgreement : records) {
  197. if("1".equals(ptlAgreement.getFlag())){
  198. ptlAgreement.setFlag("true");
  199. }else{
  200. ptlAgreement.setFlag("false");
  201. }
  202. newList.add(ptlAgreement);
  203. }
  204. }
  205. userPageResult.setRecords(newList);
  206. return new BasePageResult<>(sysUserLinkPtlAgreementQueryDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
  207. userPageResult.getRecords());
  208. }
  209. }