wks 1 سال پیش
والد
کامیت
b5fb6ae590
1فایلهای تغییر یافته به همراه64 افزوده شده و 35 حذف شده
  1. 64 35
      src/main/java/com/ydtech/modules/scheme/service/impl/PtlSchemeRulesServiceImpl.java

+ 64 - 35
src/main/java/com/ydtech/modules/scheme/service/impl/PtlSchemeRulesServiceImpl.java

@@ -6,27 +6,26 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.enums.dict.insurance.EnergyType;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.service.SysUserService;
-import com.ydtech.modules.fee.dto.vo.RuleAttrMappingVo;
-import com.ydtech.modules.order.entity.InsAreaCompany;
-import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
-import com.ydtech.modules.protocol.entity.po.PtlNewCarJudgeRules;
+import com.ydtech.modules.protocol.entity.dto.TaxSourceExcludeDto;
+import com.ydtech.modules.protocol.service.ITaxSourceExcludeService;
 import com.ydtech.modules.protocol.service.ITaxSourceService;
-import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
-import com.ydtech.modules.protocols.entity.vo.AgreementProductCosts;
-import com.ydtech.modules.scheme.dao.PtlSchemeRulesAttrLinkMapper;
 import com.ydtech.modules.scheme.dao.PtlSchemeRulesMapper;
-import com.ydtech.modules.scheme.entity.po.*;
+import com.ydtech.modules.scheme.entity.po.PtlSchemeRules;
+import com.ydtech.modules.scheme.entity.po.PtlSchemeRulesAttr;
+import com.ydtech.modules.scheme.entity.po.PtlSchemeRulesAttrLink;
 import com.ydtech.modules.scheme.entity.vo.*;
 import com.ydtech.modules.scheme.service.*;
-import com.ydtech.utils.ObjectUtil;
-import com.ydtech.utils.idgen.IdGenerate;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -59,20 +58,24 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
     @Autowired
     PtlOptionalSchemeService ptlOptionalSchemeService;
 
+    @Autowired
+    ITaxSourceExcludeService iTaxSourceExcludeService;
+
     /**
      * 保存规则
+     *
      * @param ruleSaveVo
      * @return
      */
     @Override
     @Transactional
-    public int addRules(RuleSaveVo ruleSaveVo){
+    public int addRules(RuleSaveVo ruleSaveVo) {
         //保存 方案
         PtlSchemeRules rule = ruleSaveVo.getRule();
         this.baseMapper.insert(rule);
         //保存 方案规则
         List<PtlSchemeRulesAttrLink> attrs = ruleSaveVo.getAttrs();
-        attrs.forEach(attr->{
+        attrs.forEach(attr -> {
             attr.setRulesId(String.valueOf(rule.getId()));
         });
         ptlSchemeRulesAttrLinkService.saveBatch(attrs);
@@ -82,18 +85,19 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
 
     /**
      * 修改规则
+     *
      * @param ruleSaveVo
      * @return
      */
     @Override
     @Transactional
-    public boolean updateRules(RuleSaveVo ruleSaveVo){
+    public boolean updateRules(RuleSaveVo ruleSaveVo) {
         this.updateById(ruleSaveVo.getRule());
         //删除之后再新增
-        LambdaQueryWrapper<PtlSchemeRulesAttrLink> queryWrapper= new LambdaQueryWrapper<>();
-        queryWrapper.eq(PtlSchemeRulesAttrLink::getRulesId,ruleSaveVo.getRule().getId());
+        LambdaQueryWrapper<PtlSchemeRulesAttrLink> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PtlSchemeRulesAttrLink::getRulesId, ruleSaveVo.getRule().getId());
         ptlSchemeRulesAttrLinkService.remove(queryWrapper);
-        ruleSaveVo.getAttrs().forEach(attr->{
+        ruleSaveVo.getAttrs().forEach(attr -> {
             attr.setRulesId(ruleSaveVo.getRule().getId());
         });
         ptlSchemeRulesAttrLinkService.saveBatch(ruleSaveVo.getAttrs());
@@ -102,6 +106,7 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
 
     /**
      * 删除规则
+     *
      * @param ruleId
      * @return
      */
@@ -109,13 +114,13 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
     @Transactional
     public boolean deleteRules(String ruleId) {
         PtlSchemeRules ptlSchemeRules = this.getById(ruleId);
-        if(Objects.isNull(ptlSchemeRules)){
+        if (Objects.isNull(ptlSchemeRules)) {
             throw new SystemException("规则不存在");
         }
         this.removeById(ruleId);
 
         LambdaQueryWrapper<PtlSchemeRulesAttrLink> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(PtlSchemeRulesAttrLink::getRulesId,ruleId);
+        queryWrapper.eq(PtlSchemeRulesAttrLink::getRulesId, ruleId);
         ptlSchemeRulesAttrLinkService.remove(queryWrapper);
 
         return true;
@@ -123,6 +128,7 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
 
     /**
      * 查询规则分页信息
+     *
      * @param page
      * @param ruleQueryVo
      * @return
@@ -135,18 +141,21 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
 
     /**
      * 根据规则过滤保险公司
+     *
      * @param ruleFilterVo
      * @return
      */
     @Override
-    public List<PtlAgreementInsCompanyDto> ruleFilterCompany(String userId,RuleFilterVo ruleFilterVo) {
+    public List<PtlAgreementInsCompanyDto> ruleFilterCompany(String userId, RuleFilterVo ruleFilterVo) {
         String deptId = sysUserService.getById(userId).getDeptId();
         //首先获取有权限的保险公司
         List<PtlAgreementInsCompanyDto> agreementInsCompany = taxSourceService.getAllAgreement(deptId, userId);
         //用户可读取的所有保险公司id
-        List<String> companyIds = agreementInsCompany.stream().map(PtlAgreementInsCompanyDto::getId).collect(Collectors.toList());
+        List<String> companyIds = agreementInsCompany.stream()
+                .map(PtlAgreementInsCompanyDto::getId)
+                .collect(Collectors.toList());
 
-        if(companyIds.isEmpty()){
+        if (companyIds.isEmpty()) {
             throw new SystemException("暂无可报价公司");
         }
 
@@ -154,7 +163,8 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
         List<PtlAgreementInsCompanyDto> ptlAgreementInsCompanyDtos = new ArrayList<>();
 
         List<PtlSchemeRules> userAllSchemeByCompanyIds = ptlSchemeService.getUserAllSchemeByCompanyIds(ruleFilterVo.getProductId(), companyIds,
-                ruleFilterVo.getCarInfo().getCimodelclass(), EnergyType.isNewEnergy(ruleFilterVo.getCarInfo().getEnergyType()));
+                ruleFilterVo.getCarInfo().getCimodelclass(), EnergyType.isNewEnergy(ruleFilterVo.getCarInfo()
+                        .getEnergyType()));
 
         //获取所有规则属性
         List<PtlSchemeRulesAttr> rulesAttrList = ptlSchemeRulesAttrService.getAllRulesAttrList();
@@ -166,23 +176,25 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
                 ruleFilterVo.getInsureInfo(),
                 null);
         //赛选规则
-        userAllSchemeByCompanyIds.forEach(scheme->{
+        userAllSchemeByCompanyIds.forEach(scheme -> {
             List<SchemeRuleResultVo> rulesVo = ptlSchemeRulesAttrLinkService.getSchemeRulesAttrLinks(scheme.getCompanyId(), ruleFilterVo.getProductId());
 
-            for(SchemeRuleResultVo rule:rulesVo)
-            {
+            for (SchemeRuleResultVo rule : rulesVo) {
                 List<SchemeRuleResultVo> vo = new ArrayList<>();
                 vo.add(rule);
                 boolean allRulesPassed = vo.stream().allMatch(r ->
                         ruleFilteringService.judgements(r.getAttrLinks(), rulesAttrList, ruleAttrMappingVoList)
                 );
-                if(allRulesPassed) {
+                if (allRulesPassed) {
                     agreementInsCompany.stream()
                             .filter(x -> x.getId().equals(scheme.getCompanyId()))
                             .forEach(item -> {
-                                if (ptlAgreementInsCompanyDtos.stream().noneMatch(existing -> existing.getId().equals(scheme.getCompanyId()))) {
-                                    item.setInsGuide(ptlOptionalSchemeService.getCompanyInsGuide( scheme.getCompanyId(), ruleFilterVo.getProductId(),
-                                            ruleFilterVo.getCarInfo().getCarnature(), ruleFilterVo.getCarInfo().getCimodelclass(), EnergyType.isNewEnergy(ruleFilterVo.getCarInfo().getEnergyType())? "1" : "0"));
+                                if (ptlAgreementInsCompanyDtos.stream()
+                                        .noneMatch(existing -> existing.getId().equals(scheme.getCompanyId()))) {
+                                    item.setInsGuide(ptlOptionalSchemeService.getCompanyInsGuide(scheme.getCompanyId(), ruleFilterVo.getProductId(),
+                                            ruleFilterVo.getCarInfo().getCarnature(), ruleFilterVo.getCarInfo()
+                                                    .getCimodelclass(), EnergyType.isNewEnergy(ruleFilterVo.getCarInfo()
+                                                    .getEnergyType()) ? "1" : "0"));
                                     ptlAgreementInsCompanyDtos.add(item);
                                 }
                             });
@@ -190,13 +202,31 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
                 }
             }
         });
-        Map<String, PtlAgreementInsCompanyDto> collect = ptlAgreementInsCompanyDtos.stream().collect(Collectors.toMap(PtlAgreementInsCompanyDto::getId, x -> x));
-        List<PtlAgreementInsCompanyDto> collect1 = companyIds.stream().map(collect::get).filter(ObjectUtils::isNotEmpty).collect(Collectors.toList());
+        Map<String, PtlAgreementInsCompanyDto> collect = ptlAgreementInsCompanyDtos.stream()
+                .collect(Collectors.toMap(PtlAgreementInsCompanyDto::getId, x -> x));
+
+        List<String> list = iTaxSourceExcludeService.lambdaQuery()
+                .eq(TaxSourceExcludeDto::getExcludeInfo, deptId)
+                .list()
+                .stream()
+                .map(TaxSourceExcludeDto::getInsCompanyId)
+                .collect(Collectors.toList());
+
+        List<PtlAgreementInsCompanyDto> collect1 = companyIds.stream()
+                .map(collect::get)
+                .peek(x->{
+                    if (!ObjectUtils.isEmpty(x) && !list.isEmpty() && list.contains(x.getId())) {
+                        x.setIsTaxSource("0");
+                    }
+                })
+                .filter(ObjectUtils::isNotEmpty)
+                .collect(Collectors.toList());
         return collect1;
     }
 
     /**
      * 根据产品id 和保险公司获取规则
+     *
      * @param companyId
      * @param productId
      * @return
@@ -204,13 +234,12 @@ public class PtlSchemeRulesServiceImpl extends ServiceImpl<PtlSchemeRulesMapper,
     @Override
     public PtlSchemeRules getRuleByProductId(String companyId, String productId) {
         LambdaQueryWrapper<PtlSchemeRules> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(PtlSchemeRules::getCompanyId,companyId);
-        queryWrapper.eq(PtlSchemeRules::getProductId,productId);
+        queryWrapper.eq(PtlSchemeRules::getCompanyId, companyId);
+        queryWrapper.eq(PtlSchemeRules::getProductId, productId);
         return baseMapper.selectOne(queryWrapper);
     }
 
 
-
 //    private String verificationRule(List<PtlAgreementInsCompanyDto> agreementInsCompany, InsAreaCompany insAreaCompany,
 //                                     InsOrders insOrders, StringBuilder logs) {
 //        //匹配费用因子