package com.ydtech.modules.protocol.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ydtech.core.page.HttpResult; import com.ydtech.core.page.PageResult; import com.ydtech.modules.protocol.entity.dto.PtlAgreementProductCostsSaveDto; import com.ydtech.modules.protocol.entity.dto.PtlAgreementSaveDto; import com.ydtech.modules.protocol.entity.dto.PtlAgreementUnderwritingRulesSaveDto; import com.ydtech.modules.protocol.entity.po.PtlAgreement; import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts; import com.ydtech.modules.protocol.entity.po.PtlAgreementUnderwritingRules; import com.ydtech.modules.protocol.entity.vo.PtlAgreementPageVo; import com.ydtech.modules.protocol.entity.vo.PtlAgreementSaveVo; import com.ydtech.modules.protocol.service.PtlAgreementProductCostsService; import com.ydtech.modules.protocol.service.PtlAgreementService; import com.ydtech.modules.protocol.dao.PtlAgreementMapper; import com.ydtech.modules.protocol.service.PtlAgreementUnderwritingRulesService; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; /** * @author Administrator * @description 针对表【ptl_agreement(协议信息表)】的数据库操作Service实现 * @createDate 2023-06-05 17:59:52 */ @Service public class PtlAgreementServiceImpl extends ServiceImpl implements PtlAgreementService { private final PtlAgreementProductCostsService ptlAgreementProductCostsService; private final PtlAgreementUnderwritingRulesService ptlAgreementUnderwritingRulesService; public PtlAgreementServiceImpl(PtlAgreementProductCostsService ptlAgreementProductCostsService, PtlAgreementUnderwritingRulesService ptlAgreementUnderwritingRulesService) { this.ptlAgreementProductCostsService = ptlAgreementProductCostsService; this.ptlAgreementUnderwritingRulesService = ptlAgreementUnderwritingRulesService; } @Override @Transactional public HttpResult saveAgreement(PtlAgreementSaveVo agreement, String userName) { PtlAgreementSaveDto agreementSaveDto = agreement.getAgreement(); PtlAgreement ptlAgreement = new PtlAgreement(); BeanUtils.copyProperties(agreementSaveDto, ptlAgreement); ptlAgreement.setCreator(userName); ptlAgreement.setCreateTime(LocalDateTime.now()); save(ptlAgreement); // 产品费用 List productCosts = agreement.getProductCosts(); Integer agreementId = ptlAgreement.getId(); List ptlAgreementProductCostsList = PtlAgreementProductCostsSaveDto.toPtlAgreementProductCosts(agreementId, productCosts); ptlAgreementProductCostsService.saveBatch(ptlAgreementProductCostsList); // 承包规则 List underwritingRules = agreement.getUnderwritingRules(); List ptlAgreementUnderwritingRulesList = PtlAgreementUnderwritingRulesSaveDto.toPtlAgreementUnderwritingRules(agreementId, underwritingRules); ptlAgreementUnderwritingRulesService.saveBatch(ptlAgreementUnderwritingRulesList); return HttpResult.ok(); } @Override public HttpResult pageAgreement(PtlAgreementPageVo ptlAgreementPageVo) { int pageNum = ptlAgreementPageVo.getPageNum(); int pageSize = ptlAgreementPageVo.getPageSize(); Page ptlAgreementPage = new Page<>(pageNum, pageSize); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); // 审核状态 wrapper.eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getAuditStatus()), PtlAgreement::getAuditStatus, ptlAgreementPageVo.getAuditStatus()) // 保险公司 .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getInsuranceCompany()), PtlAgreement::getInsuranceCompany, ptlAgreementPageVo.getInsuranceCompany()) // 录入时间 .between(!ObjectUtils.isEmpty(ptlAgreementPageVo.getStartDate()) && ObjectUtils.isEmpty(ptlAgreementPageVo.getEndDate()), PtlAgreement::getCreateTime, ptlAgreementPageVo.getStartDate(), ptlAgreementPageVo.getEndDate()); Page agreementPage = page(ptlAgreementPage, wrapper); PageResult ptlAgreementPageResult = new PageResult<>(pageNum, pageSize, (int) agreementPage.getTotal(), agreementPage.getRecords()); return HttpResult.ok(ptlAgreementPageResult); } @Override public HttpResult getByAgreementId(String agreementId) { LambdaQueryWrapper costsLambdaQueryWrapper = new LambdaQueryWrapper<>(); costsLambdaQueryWrapper.eq(PtlAgreementProductCosts::getAgreementId, agreementId); ptlAgreementProductCostsService.list(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PtlAgreementUnderwritingRules::getAgreementId, agreementId); List list = ptlAgreementUnderwritingRulesService.list(wrapper); return HttpResult.ok(); } @Override @Transactional public HttpResult deleteAgreement(String agreementId) { removeById(agreementId); // 删除产品费用 ptlAgreementProductCostsService.deleteByAgreementId(agreementId); // 删除承包规则 ptlAgreementUnderwritingRulesService.deleteByAgreementId(agreementId); return HttpResult.ok(); } }