PtlAgreementUndwrtRulesNewServiceImpl.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415
  1. package com.ydtech.modules.protocols.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.ydtech.core.page.PageRequest;
  6. import com.ydtech.core.page.PageResult;
  7. import com.ydtech.modules.base.controller.BaseController;
  8. import com.ydtech.modules.protocol.entity.po.PtlAgreement;
  9. import com.ydtech.modules.protocol.entity.po.PtlAreaLicense;
  10. import com.ydtech.modules.protocol.service.PtlAreaLicenseService;
  11. import com.ydtech.modules.protocols.dao.PtlAgreementProductCostsAttrLinkMapper;
  12. import com.ydtech.modules.protocols.dao.PtlAgreementUndwrtRulesNewMapper;
  13. import com.ydtech.modules.protocols.entity.po.*;
  14. import com.ydtech.modules.protocols.entity.vo.AgreementProductCostsSave;
  15. import com.ydtech.modules.protocols.entity.vo.AgreementUndwrtRules;
  16. import com.ydtech.modules.protocols.entity.vo.AgreementUndwrtRulesSave;
  17. import com.ydtech.modules.protocols.service.*;
  18. import org.springframework.beans.BeanUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Service;
  21. import org.springframework.transaction.annotation.Transactional;
  22. import java.time.LocalDateTime;
  23. import java.util.*;
  24. import java.util.stream.Collectors;
  25. /**
  26. * @description 协议承保规则属性 service实现类
  27. * @createDate 2024-2-22 15:44:29
  28. * @Entity com.ydtech.modules.protocol.entity.po.PtlAgreementUndwrtRulesAttrMapper
  29. */
  30. @Service
  31. public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreementUndwrtRulesNewMapper, PtlAgreementUndwrtRulesNew>
  32. implements PtlAgreementUndwrtRulesNewService {
  33. @Autowired
  34. private PtlAgreementUndwrtRulesAttrLinkService ptlAgreementUndwrtRulesAttrLinkService;
  35. @Autowired
  36. private PtlAreaLicenseService ptlAreaLicenseService;
  37. @Autowired
  38. private PtlAgreementUndwrtRulesAttrService ptlAgreementUndwrtRulesAttrService;
  39. @Autowired
  40. private PtlAgreementUndwrtRulesNewHistoryService ptlAgreementUndwrtRulesNewHistoryService;
  41. @Autowired
  42. private PtlAgreementUndwrtRulesAttrLinkHistoryService ptlAgreementUndwrtRulesAttrLinkHistoryService;
  43. @Override
  44. public AgreementUndwrtRulesSave rulesGet(String ruleId, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
  45. //设置费用入口信息
  46. PtlAgreementUndwrtRulesNew ptlAgreementUndwrtRulesNew = baseMapper.selectOne(new LambdaQueryWrapper<PtlAgreementUndwrtRulesNew>().eq(PtlAgreementUndwrtRulesNew::getId, ruleId));
  47. AgreementUndwrtRulesSave agreementUndwrtRulesSave = new AgreementUndwrtRulesSave();
  48. BeanUtils.copyProperties(ptlAgreementUndwrtRulesNew, agreementUndwrtRulesSave);
  49. //设置费用因子属性
  50. List<PtlAgreementUndwrtRulesAttr> ptlAgreementUndwrtRulesAttrs = new ArrayList<>();
  51. List<PtlAgreementUndwrtRulesAttrLink> list = ptlAgreementUndwrtRulesAttrLinkService.list(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLink>()
  52. .eq(PtlAgreementUndwrtRulesAttrLink::getRulesId, ruleId));
  53. undwrtRulesAttrList.stream().forEach(x -> {
  54. //处理多选和下拉
  55. if ("checkbox".equals(x.getAttrType()) || "select".equals(x.getAttrType())) {
  56. //处理车牌
  57. if ("select".equals(x.getAttrType()) && "LicenseNo".equals(x.getAttrCode())) {
  58. PtlAgreementUndwrtRulesAttrLink licenseNo = list.stream().filter(l -> l.getAttrCode().equals("LicenseNo")).findFirst().orElse(null);
  59. if (licenseNo != null) {
  60. //根据operator 获取车牌的地区id
  61. List<PtlAreaLicense> byParentNumber = ptlAreaLicenseService.getByParentNumber(licenseNo.getOperator());
  62. List<PtlAgreementUndwrtRulesDictLabal> dictLabal = byParentNumber.stream().map(y -> {
  63. PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = new PtlAgreementUndwrtRulesDictLabal();
  64. ptlAgreementUndwrtRulesDictLabal.setDictId(y.getId());
  65. ptlAgreementUndwrtRulesDictLabal.setCode(y.getAreaNumber());
  66. ptlAgreementUndwrtRulesDictLabal.setName(y.getLicense());
  67. return ptlAgreementUndwrtRulesDictLabal;
  68. }).collect(Collectors.toList());
  69. x.setDictLabal(dictLabal);
  70. }
  71. }
  72. x.setMinArray(new String[]{});
  73. list.stream().filter(y -> y.getAttrCode().equals(x.getAttrCode())).findFirst().ifPresent(z -> {
  74. if (null != z.getMin()) {
  75. x.setId(z.getId());
  76. x.setMinArray(z.getMin().split(","));
  77. x.setMax(z.getMax());
  78. x.setOperator(z.getOperator());
  79. }
  80. });
  81. } else {
  82. list.stream().filter(y -> y.getAttrCode().equals(x.getAttrCode())).findFirst().ifPresent(z -> {
  83. x.setId(z.getId());
  84. x.setMin(z.getMin());
  85. x.setMax(z.getMax());
  86. x.setOperator(z.getOperator());
  87. });
  88. }
  89. ptlAgreementUndwrtRulesAttrs.add(x);
  90. });
  91. agreementUndwrtRulesSave.setCostsAttrLinks(ptlAgreementUndwrtRulesAttrs);
  92. return agreementUndwrtRulesSave;
  93. }
  94. @Override
  95. public List<PtlAgreementUndwrtRulesNew> rulesList(String agreementId) {
  96. List<PtlAgreementUndwrtRulesNew> rulesList = baseMapper.selectList(new LambdaQueryWrapper<PtlAgreementUndwrtRulesNew>()
  97. .eq(PtlAgreementUndwrtRulesNew::getAgreementId, agreementId)
  98. .eq(PtlAgreementUndwrtRulesNew::getValidInd, "1"));
  99. List<PtlAgreementUndwrtRulesAttrLink> ptlAgreementUndwrtRulesAttrLinkList = ptlAgreementUndwrtRulesAttrLinkService.list();
  100. rulesList.forEach(item -> {
  101. List<PtlAgreementUndwrtRulesAttrLink> collect = ptlAgreementUndwrtRulesAttrLinkList.stream().filter(x -> Objects.equals(x.getRulesId(), item.getId())).collect(Collectors.toList());
  102. item.setRulesAttrList(collect);
  103. });
  104. return rulesList;
  105. }
  106. @Override
  107. public Page rulesPage(Page page, String agreementId) {
  108. Page<PtlAgreementUndwrtRulesNew> rulesPage = baseMapper.selectPage(page, new LambdaQueryWrapper<PtlAgreementUndwrtRulesNew>()
  109. .eq(PtlAgreementUndwrtRulesNew::getAgreementId, agreementId));
  110. // List<PtlAgreementUndwrtRulesAttrLink> ptlAgreementUndwrtRulesAttrLinkList = ptlAgreementUndwrtRulesAttrLinkService.list();
  111. List<PtlAgreementUndwrtRulesNew> records = rulesPage.getRecords();
  112. //遍历费用列表
  113. List<String> ids = new ArrayList<>();
  114. records.forEach(x -> {
  115. ids.add(x.getId());
  116. });
  117. //获取费用属性
  118. List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
  119. List<PtlAgreementUndwrtRulesAttrLink> list = ptlAgreementUndwrtRulesAttrLinkService.list(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLink>()
  120. .in(PtlAgreementUndwrtRulesAttrLink::getRulesId, ids));
  121. Map<String, List<PtlAgreementUndwrtRulesAttrLink>> groupedByCostsId = list.stream()
  122. .collect(Collectors.groupingBy(PtlAgreementUndwrtRulesAttrLink::getRulesId));
  123. groupedByCostsId.forEach((k, v) -> {
  124. records.stream().filter(x -> x.getId().equals(k)).findFirst().ifPresent(x -> x.setDesc(buildDesc(v, undwrtRulesAttrList)));
  125. });
  126. // records.forEach(item -> {
  127. // List<PtlAgreementUndwrtRulesAttrLink> collect = ptlAgreementUndwrtRulesAttrLinkList.stream().filter(x -> Objects.equals(x.getRulesId(), item.getId())).collect(Collectors.toList());
  128. // item.setRulesAttrList(collect);
  129. // });
  130. rulesPage.setRecords(records);
  131. return rulesPage;
  132. }
  133. /**
  134. * 遍历费用属性描述文字
  135. * @param v
  136. * @param undwrtRulesAttrList
  137. * @return
  138. */
  139. private String buildDesc(List<PtlAgreementUndwrtRulesAttrLink> v, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
  140. String desc = "";
  141. for (int i = 0; i < v.size(); i++) {
  142. int finalI = i;
  143. PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = undwrtRulesAttrList.stream().filter(x -> x.getAttrCode().equals(v.get(finalI).getAttrCode())).findAny().get();
  144. //数值范围判断
  145. if ("inputNumber".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
  146. desc += inputNumberIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
  147. }
  148. if ("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
  149. desc += radioIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
  150. }
  151. if ("checkbox".equals(ptlAgreementUndwrtRulesAttr.getAttrType()) || "select".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
  152. desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "包含" + v.get(i).getMin() + "\n";
  153. }
  154. }
  155. return desc;
  156. }
  157. private String radioIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {
  158. PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
  159. x.getCode().equals(ptlAgreementProductCostsAttrLink.getMin())).findAny().get();
  160. return ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + ptlAgreementUndwrtRulesDictLabal.getName();
  161. }
  162. private String inputNumberIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {
  163. if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
  164. return ptlAgreementUndwrtRulesAttr.getAttrName() + "范围值" + ptlAgreementProductCostsAttrLink.getMin() + "到" + ptlAgreementProductCostsAttrLink.getMax();
  165. } else if ("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
  166. return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于" + ptlAgreementProductCostsAttrLink.getMin();
  167. } else if ("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
  168. return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于等于" + ptlAgreementProductCostsAttrLink.getMin();
  169. } else if ("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
  170. return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于" + ptlAgreementProductCostsAttrLink.getMax();
  171. } else if ("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
  172. return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于等于" + ptlAgreementProductCostsAttrLink.getMax();
  173. }
  174. return "";
  175. }
  176. @Transactional
  177. @Override
  178. public boolean rulesAdd(AgreementUndwrtRules agreementUndwrtRules) {
  179. //添加承保规则主表信息
  180. PtlAgreementUndwrtRulesNew ptlAgreementUndwrtRulesNew = new PtlAgreementUndwrtRulesNew();
  181. BeanUtils.copyProperties(agreementUndwrtRules, ptlAgreementUndwrtRulesNew);
  182. ptlAgreementUndwrtRulesNew.setId(null);
  183. int insert = baseMapper.insert(ptlAgreementUndwrtRulesNew);
  184. //保存承包规则历史记录
  185. PtlAgreementUndwrtRulesNewHistory ptlAgreementUndwrtRulesNewHistory = new PtlAgreementUndwrtRulesNewHistory();
  186. BeanUtils.copyProperties(agreementUndwrtRules, ptlAgreementUndwrtRulesNewHistory);
  187. //添加承包规则ID
  188. ptlAgreementUndwrtRulesNewHistory.setRulesId(ptlAgreementUndwrtRulesNew.getId());
  189. //生成批次ID
  190. String uuid = UUID.randomUUID().toString();
  191. ptlAgreementUndwrtRulesNewHistory.setBatch(uuid);
  192. ptlAgreementUndwrtRulesNewHistory.setId(null);
  193. ptlAgreementUndwrtRulesNewHistory.setOperatorType("add");
  194. ptlAgreementUndwrtRulesNewHistory.setModifier(BaseController.getUser().getId());
  195. ptlAgreementUndwrtRulesNewHistory.setOperatorTime(LocalDateTime.now());
  196. ptlAgreementUndwrtRulesNewHistoryService.save(ptlAgreementUndwrtRulesNewHistory);
  197. //创建承包规则费用因子历史记录容器
  198. List<PtlAgreementUndwrtRulesAttrLinkHistory> undwrtRulesAttrLinkHistories = new ArrayList<>();
  199. //遍历承保规则属性
  200. List<PtlAgreementUndwrtRulesAttrLink> rulesAttrList = agreementUndwrtRules.getRulesAttrList();
  201. List<PtlAgreementUndwrtRulesAttrLink> costsAttrLink = new ArrayList<>();
  202. rulesAttrList.forEach(x -> {
  203. //单独处理车牌号
  204. if ("LicenseNo".equals(x.getAttrCode()) && (x.getMin() != null && !x.getMin().equals(""))) {
  205. x.setOperator(x.getDictLabal().getJSONObject(0).getString("parentNumber"));
  206. x.setRulesId(ptlAgreementUndwrtRulesNew.getId());
  207. x.setId(0);
  208. costsAttrLink.add(x);
  209. PtlAgreementUndwrtRulesAttrLinkHistory undwrtRulesAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
  210. BeanUtils.copyProperties(x, undwrtRulesAttrLinkHistory);
  211. //设置承包规则费用因子历史记录
  212. undwrtRulesAttrLinkHistory.setBatch(uuid);
  213. undwrtRulesAttrLinkHistory.setId(null);
  214. undwrtRulesAttrLinkHistory.setOperatorType("add");
  215. undwrtRulesAttrLinkHistory.setModifier(BaseController.getUser().getId());
  216. undwrtRulesAttrLinkHistory.setOperatorTime(LocalDateTime.now());
  217. undwrtRulesAttrLinkHistories.add(undwrtRulesAttrLinkHistory);
  218. } else {
  219. if ((!"0".equals(x.getMin()) && null != x.getMin()) || (!"0".equals(x.getMax()) && null != x.getMax())) {
  220. x.setRulesId(ptlAgreementUndwrtRulesNew.getId());
  221. x.setId(0);
  222. costsAttrLink.add(x);
  223. PtlAgreementUndwrtRulesAttrLinkHistory undwrtRulesAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
  224. BeanUtils.copyProperties(x, undwrtRulesAttrLinkHistory);
  225. //设置承包规则费用因子历史记录
  226. undwrtRulesAttrLinkHistory.setBatch(uuid);
  227. undwrtRulesAttrLinkHistory.setId(null);
  228. undwrtRulesAttrLinkHistory.setOperatorType("add");
  229. undwrtRulesAttrLinkHistory.setModifier(BaseController.getUser().getId());
  230. undwrtRulesAttrLinkHistory.setOperatorTime(LocalDateTime.now());
  231. undwrtRulesAttrLinkHistories.add(undwrtRulesAttrLinkHistory);
  232. }
  233. }
  234. });
  235. ptlAgreementUndwrtRulesAttrLinkHistoryService.saveBatch(undwrtRulesAttrLinkHistories);
  236. ptlAgreementUndwrtRulesAttrLinkService.saveBatch(costsAttrLink);
  237. return true;
  238. }
  239. @Transactional
  240. @Override
  241. public boolean rulesUpdate(AgreementUndwrtRules agreementUndwrtRules) {
  242. //更新费用主表信息
  243. PtlAgreementUndwrtRulesNew ptlAgreementUndwrtRulesNew = new PtlAgreementUndwrtRulesNew();
  244. BeanUtils.copyProperties(agreementUndwrtRules, ptlAgreementUndwrtRulesNew);
  245. int update = baseMapper.updateById(ptlAgreementUndwrtRulesNew);
  246. //保存承包规则历史记录
  247. PtlAgreementUndwrtRulesNewHistory ptlAgreementUndwrtRulesNewHistory = new PtlAgreementUndwrtRulesNewHistory();
  248. BeanUtils.copyProperties(agreementUndwrtRules, ptlAgreementUndwrtRulesNewHistory);
  249. //添加承包规则ID
  250. ptlAgreementUndwrtRulesNewHistory.setRulesId(ptlAgreementUndwrtRulesNew.getId());
  251. //生成批次ID
  252. String uuid = UUID.randomUUID().toString();
  253. ptlAgreementUndwrtRulesNewHistory.setBatch(uuid);
  254. ptlAgreementUndwrtRulesNewHistory.setId(null);
  255. ptlAgreementUndwrtRulesNewHistory.setOperatorType("update");
  256. ptlAgreementUndwrtRulesNewHistory.setModifier(BaseController.getUser().getId());
  257. ptlAgreementUndwrtRulesNewHistory.setOperatorTime(LocalDateTime.now());
  258. ptlAgreementUndwrtRulesNewHistoryService.save(ptlAgreementUndwrtRulesNewHistory);
  259. //创建承包规则费用因子历史记录容器
  260. List<PtlAgreementUndwrtRulesAttrLinkHistory> undwrtRulesAttrLinkHistories = new ArrayList<>();
  261. //设置费用因子属性
  262. //先删除属性值
  263. ptlAgreementUndwrtRulesAttrLinkService.remove(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLink>()
  264. .eq(PtlAgreementUndwrtRulesAttrLink::getRulesId, ptlAgreementUndwrtRulesNew.getId()));
  265. List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
  266. //再添加属性值
  267. List<PtlAgreementUndwrtRulesAttrLink> costsAttrLinks = agreementUndwrtRules.getRulesAttrList();
  268. List<PtlAgreementUndwrtRulesAttrLink> costsAttrLink = new ArrayList<>();
  269. costsAttrLinks.forEach(x -> {
  270. //转换数组
  271. if(x.getMinArray() != null && x.getMinArray().length > 0){
  272. x.setMin(String.join(",",x.getMinArray()));
  273. }
  274. //处理中文逗号
  275. if(x.getMin() != null && x.getMin().contains(","))
  276. {
  277. x.setMin(x.getMin().replace(",",","));
  278. }
  279. //单独处理车牌号
  280. if ("LicenseNo".equals(x.getAttrCode()) && (x.getMin() != null && x.getMin() != "")) {
  281. x.setOperator(x.getDictLabal().getJSONObject(0).getString("parentNumber"));
  282. x.setRulesId(ptlAgreementUndwrtRulesNew.getId());
  283. x.setId(0);
  284. costsAttrLink.add(x);
  285. PtlAgreementUndwrtRulesAttrLinkHistory undwrtRulesAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
  286. BeanUtils.copyProperties(x, undwrtRulesAttrLinkHistory);
  287. //设置承包规则费用因子历史记录
  288. undwrtRulesAttrLinkHistory.setBatch(uuid);
  289. undwrtRulesAttrLinkHistory.setId(null);
  290. undwrtRulesAttrLinkHistory.setOperatorType("update");
  291. undwrtRulesAttrLinkHistory.setModifier(BaseController.getUser().getId());
  292. undwrtRulesAttrLinkHistory.setOperatorTime(LocalDateTime.now());
  293. undwrtRulesAttrLinkHistories.add(undwrtRulesAttrLinkHistory);
  294. } else {
  295. PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = undwrtRulesAttrList.stream().filter(y -> y.getAttrCode().equals(x.getAttrCode())).findFirst().orElse(null);
  296. //单独判断radio radio中存在0的属性值
  297. if ("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
  298. if (null != x.getMin()) {
  299. x.setRulesId(ptlAgreementUndwrtRulesNew.getId());
  300. x.setId(0);
  301. costsAttrLink.add(x);
  302. PtlAgreementUndwrtRulesAttrLinkHistory undwrtRulesAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
  303. BeanUtils.copyProperties(x, undwrtRulesAttrLinkHistory);
  304. //设置承包规则费用因子历史记录
  305. undwrtRulesAttrLinkHistory.setBatch(uuid);
  306. undwrtRulesAttrLinkHistory.setId(null);
  307. undwrtRulesAttrLinkHistory.setOperatorType("update");
  308. undwrtRulesAttrLinkHistory.setModifier(BaseController.getUser().getId());
  309. undwrtRulesAttrLinkHistory.setOperatorTime(LocalDateTime.now());
  310. undwrtRulesAttrLinkHistories.add(undwrtRulesAttrLinkHistory);
  311. }
  312. } else {
  313. if ((!"0".equals(x.getMin()) && null != x.getMin()) || (!"0".equals(x.getMax()) && null != x.getMax())) {
  314. x.setRulesId(ptlAgreementUndwrtRulesNew.getId());
  315. x.setId(0);
  316. costsAttrLink.add(x);
  317. PtlAgreementUndwrtRulesAttrLinkHistory undwrtRulesAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
  318. BeanUtils.copyProperties(x, undwrtRulesAttrLinkHistory);
  319. //设置承包规则费用因子历史记录
  320. undwrtRulesAttrLinkHistory.setBatch(uuid);
  321. undwrtRulesAttrLinkHistory.setId(null);
  322. undwrtRulesAttrLinkHistory.setOperatorType("update");
  323. undwrtRulesAttrLinkHistory.setModifier(BaseController.getUser().getId());
  324. undwrtRulesAttrLinkHistory.setOperatorTime(LocalDateTime.now());
  325. undwrtRulesAttrLinkHistories.add(undwrtRulesAttrLinkHistory);
  326. }
  327. }
  328. }
  329. });
  330. ptlAgreementUndwrtRulesAttrLinkHistoryService.saveBatch(undwrtRulesAttrLinkHistories);
  331. ptlAgreementUndwrtRulesAttrLinkService.saveBatch(costsAttrLink);
  332. return true;
  333. }
  334. @Transactional
  335. @Override
  336. public boolean rulesDelete(String rulesId) {
  337. //获取承包规则
  338. PtlAgreementUndwrtRulesNew ptlAgreementUndwrtRulesNew = baseMapper.selectById(rulesId);
  339. //保存承包规则历史记录
  340. PtlAgreementUndwrtRulesNewHistory ptlAgreementUndwrtRulesNewHistory = new PtlAgreementUndwrtRulesNewHistory();
  341. BeanUtils.copyProperties(ptlAgreementUndwrtRulesNew, ptlAgreementUndwrtRulesNewHistory);
  342. //添加费用ID
  343. ptlAgreementUndwrtRulesNewHistory.setRulesId(ptlAgreementUndwrtRulesNew.getId());
  344. //生成批次ID
  345. String uuid = UUID.randomUUID().toString();
  346. ptlAgreementUndwrtRulesNewHistory.setBatch(uuid);
  347. ptlAgreementUndwrtRulesNewHistory.setId(null);
  348. ptlAgreementUndwrtRulesNewHistory.setOperatorType("delete");
  349. ptlAgreementUndwrtRulesNewHistory.setModifier(BaseController.getUser().getId());
  350. ptlAgreementUndwrtRulesNewHistory.setOperatorTime(LocalDateTime.now());
  351. ptlAgreementUndwrtRulesNewHistoryService.save(ptlAgreementUndwrtRulesNewHistory);
  352. //创建承包规则费用因子历史记录容器
  353. List< PtlAgreementUndwrtRulesAttrLinkHistory> costsAttrLinkHistories = new ArrayList<>();
  354. //获取承包规则费用因子出口历史记
  355. List<PtlAgreementUndwrtRulesAttrLink> costsAttrLinks = ptlAgreementUndwrtRulesAttrLinkService.list(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLink>()
  356. .eq(PtlAgreementUndwrtRulesAttrLink::getRulesId, rulesId));
  357. costsAttrLinks.forEach(x -> {
  358. PtlAgreementUndwrtRulesAttrLinkHistory costsAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
  359. BeanUtils.copyProperties(x, costsAttrLinkHistory);
  360. //设置承包规则费用因子历史记录
  361. costsAttrLinkHistory.setBatch(uuid);
  362. costsAttrLinkHistory.setId(null);
  363. costsAttrLinkHistory.setOperatorType("add");
  364. costsAttrLinkHistory.setModifier(BaseController.getUser().getId());
  365. costsAttrLinkHistory.setOperatorTime(LocalDateTime.now());
  366. costsAttrLinkHistories.add(costsAttrLinkHistory);
  367. });
  368. //保存产品费用因子历史记录
  369. ptlAgreementUndwrtRulesAttrLinkHistoryService.saveBatch(costsAttrLinkHistories);
  370. baseMapper.deleteById(rulesId);
  371. ptlAgreementUndwrtRulesAttrLinkService.remove(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLink>().eq(PtlAgreementUndwrtRulesAttrLink::getRulesId, rulesId));
  372. return true;
  373. }
  374. }