PtlAgreementServiceImpl.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package com.ydtech.modules.protocol.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.HttpResult;
  6. import com.ydtech.core.page.PageResult;
  7. import com.ydtech.modules.protocol.entity.dto.PtlAgreementProductCostsSaveDto;
  8. import com.ydtech.modules.protocol.entity.dto.PtlAgreementSaveDto;
  9. import com.ydtech.modules.protocol.entity.dto.PtlAgreementUnderwritingRulesSaveDto;
  10. import com.ydtech.modules.protocol.entity.po.PtlAgreement;
  11. import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
  12. import com.ydtech.modules.protocol.entity.po.PtlAgreementUnderwritingRules;
  13. import com.ydtech.modules.protocol.entity.vo.PtlAgreementPageVo;
  14. import com.ydtech.modules.protocol.entity.vo.PtlAgreementSaveVo;
  15. import com.ydtech.modules.protocol.service.PtlAgreementProductCostsService;
  16. import com.ydtech.modules.protocol.service.PtlAgreementService;
  17. import com.ydtech.modules.protocol.dao.PtlAgreementMapper;
  18. import com.ydtech.modules.protocol.service.PtlAgreementUnderwritingRulesService;
  19. import org.apache.commons.lang3.ObjectUtils;
  20. import org.springframework.beans.BeanUtils;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import java.time.LocalDateTime;
  24. import java.util.List;
  25. /**
  26. * @author Administrator
  27. * @description 针对表【ptl_agreement(协议信息表)】的数据库操作Service实现
  28. * @createDate 2023-06-05 17:59:52
  29. */
  30. @Service
  31. public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, PtlAgreement>
  32. implements PtlAgreementService {
  33. private final PtlAgreementProductCostsService ptlAgreementProductCostsService;
  34. private final PtlAgreementUnderwritingRulesService ptlAgreementUnderwritingRulesService;
  35. public PtlAgreementServiceImpl(PtlAgreementProductCostsService ptlAgreementProductCostsService, PtlAgreementUnderwritingRulesService ptlAgreementUnderwritingRulesService) {
  36. this.ptlAgreementProductCostsService = ptlAgreementProductCostsService;
  37. this.ptlAgreementUnderwritingRulesService = ptlAgreementUnderwritingRulesService;
  38. }
  39. @Override
  40. @Transactional
  41. public HttpResult saveAgreement(PtlAgreementSaveVo agreement, String userName) {
  42. PtlAgreementSaveDto agreementSaveDto = agreement.getAgreement();
  43. PtlAgreement ptlAgreement = new PtlAgreement();
  44. BeanUtils.copyProperties(agreementSaveDto, ptlAgreement);
  45. ptlAgreement.setCreator(userName);
  46. ptlAgreement.setCreateTime(LocalDateTime.now());
  47. save(ptlAgreement);
  48. // 产品费用
  49. List<PtlAgreementProductCostsSaveDto> productCosts = agreement.getProductCosts();
  50. Integer agreementId = ptlAgreement.getId();
  51. List<PtlAgreementProductCosts> ptlAgreementProductCostsList = PtlAgreementProductCostsSaveDto.toPtlAgreementProductCosts(agreementId, productCosts);
  52. ptlAgreementProductCostsService.saveBatch(ptlAgreementProductCostsList);
  53. // 承包规则
  54. List<PtlAgreementUnderwritingRulesSaveDto> underwritingRules = agreement.getUnderwritingRules();
  55. List<PtlAgreementUnderwritingRules> ptlAgreementUnderwritingRulesList = PtlAgreementUnderwritingRulesSaveDto.toPtlAgreementUnderwritingRules(agreementId, underwritingRules);
  56. ptlAgreementUnderwritingRulesService.saveBatch(ptlAgreementUnderwritingRulesList);
  57. return HttpResult.ok();
  58. }
  59. @Override
  60. public HttpResult pageAgreement(PtlAgreementPageVo ptlAgreementPageVo) {
  61. int pageNum = ptlAgreementPageVo.getPageNum();
  62. int pageSize = ptlAgreementPageVo.getPageSize();
  63. Page<PtlAgreement> ptlAgreementPage = new Page<>(pageNum, pageSize);
  64. LambdaQueryWrapper<PtlAgreement> wrapper = new LambdaQueryWrapper<>();
  65. // 审核状态
  66. wrapper.eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getAuditStatus()), PtlAgreement::getAuditStatus, ptlAgreementPageVo.getAuditStatus())
  67. // 保险公司
  68. .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getInsuranceCompany()), PtlAgreement::getInsuranceCompany, ptlAgreementPageVo.getInsuranceCompany())
  69. // 录入时间
  70. .between(!ObjectUtils.isEmpty(ptlAgreementPageVo.getStartDate()) && ObjectUtils.isEmpty(ptlAgreementPageVo.getEndDate()), PtlAgreement::getCreateTime, ptlAgreementPageVo.getStartDate(), ptlAgreementPageVo.getEndDate());
  71. Page<PtlAgreement> agreementPage = page(ptlAgreementPage, wrapper);
  72. PageResult<PtlAgreement> ptlAgreementPageResult = new PageResult<>(pageNum, pageSize, (int) agreementPage.getTotal(), agreementPage.getRecords());
  73. return HttpResult.ok(ptlAgreementPageResult);
  74. }
  75. @Override
  76. public HttpResult getByAgreementId(String agreementId) {
  77. LambdaQueryWrapper<PtlAgreementProductCosts> costsLambdaQueryWrapper = new LambdaQueryWrapper<>();
  78. costsLambdaQueryWrapper.eq(PtlAgreementProductCosts::getAgreementId, agreementId);
  79. ptlAgreementProductCostsService.list();
  80. LambdaQueryWrapper<PtlAgreementUnderwritingRules> wrapper = new LambdaQueryWrapper<>();
  81. wrapper.eq(PtlAgreementUnderwritingRules::getAgreementId, agreementId);
  82. List<PtlAgreementUnderwritingRules> list = ptlAgreementUnderwritingRulesService.list(wrapper);
  83. return HttpResult.ok();
  84. }
  85. @Override
  86. @Transactional
  87. public HttpResult deleteAgreement(String agreementId) {
  88. removeById(agreementId);
  89. // 删除产品费用
  90. ptlAgreementProductCostsService.deleteByAgreementId(agreementId);
  91. // 删除承包规则
  92. ptlAgreementUnderwritingRulesService.deleteByAgreementId(agreementId);
  93. return HttpResult.ok();
  94. }
  95. }