Преглед на файлове

数据大屏添加接口

785834757 преди 2 години
родител
ревизия
c85aa058a0
променени са 19 файла, в които са добавени 330 реда и са изтрити 71 реда
  1. 13 1
      src/main/java/com/ydtech/modules/esm/controller/EsmUserController.java
  2. 5 1
      src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java
  3. 20 0
      src/main/java/com/ydtech/modules/esm/model/QueryChannel.java
  4. 12 0
      src/main/java/com/ydtech/modules/esm/model/QueryChannelParam.java
  5. 5 1
      src/main/java/com/ydtech/modules/esm/service/EsmUserReferrerService.java
  6. 9 2
      src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java
  7. 12 2
      src/main/java/com/ydtech/modules/largescreen/controller/DataController.java
  8. 18 1
      src/main/java/com/ydtech/modules/order/aop/aspect/QuoteVerificationAspect.java
  9. 2 0
      src/main/java/com/ydtech/modules/order/controller/GuoRenOrderApiController.java
  10. 2 0
      src/main/java/com/ydtech/modules/order/controller/YongChengOrderApiController.java
  11. 2 0
      src/main/java/com/ydtech/modules/order/controller/ZhongMeiOrderController.java
  12. 2 3
      src/main/java/com/ydtech/modules/protocol/controller/TaxSourceController.java
  13. 1 0
      src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementMapper.java
  14. 5 1
      src/main/java/com/ydtech/modules/protocol/service/ITaxSourceService.java
  15. 2 0
      src/main/java/com/ydtech/modules/protocol/service/PtlAgreementService.java
  16. 9 0
      src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java
  17. 157 59
      src/main/java/com/ydtech/modules/protocol/service/impl/TaxSourceServiceImpl.java
  18. 34 0
      src/main/resources/mapper/modules/esm/EsmUserReferrerMapper.xml
  19. 20 0
      src/main/resources/mapper/modules/protocol/PtlAgreementMapper.xml

+ 13 - 1
src/main/java/com/ydtech/modules/esm/controller/EsmUserController.java

@@ -16,6 +16,8 @@ import com.ydtech.modules.admin.service.SysUserRoleService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.model.QueryChannel;
+import com.ydtech.modules.esm.model.QueryChannelParam;
 import com.ydtech.modules.esm.model.vo.*;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.utils.StringUtils;
@@ -71,7 +73,7 @@ public class EsmUserController extends BaseController {
 
 //        List<String> strings = userRoleList.stream().map(x -> x.getUserId() + "").collect(Collectors.toList());
         Page page = new Page(dto.getPageNum(), dto.getPageSize());
-        Page<SysUser> pageData = esmUserReferrerService.getUserPage(page);
+        Page<SysUser> pageData = esmUserReferrerService.getUserPage(page,dto);
         //用户ID 代理人角色
         //Page<SysUserRole> pageData = sysUserRoleService.page(page, userRoleLqw);
         List<String> longs = new ArrayList<>();
@@ -135,6 +137,16 @@ public class EsmUserController extends BaseController {
 
     }
 
+
+    @ApiOperation(value = "查询渠道人数")
+    @PostMapping(value = "/queryChannelNum")
+    public HttpResult queryChannelNum(@RequestBody QueryChannelParam queryChannelParam){
+        Page page = new Page(queryChannelParam.getPageNum(), queryChannelParam.getPageSize());
+        QueryChannel queryChannel = new QueryChannel().convert(queryChannelParam);
+        Page<QueryChannel> pageData = esmUserReferrerService.getQueryChannelPage(page,queryChannel);
+        return HttpResult.ok(pageData);
+    }
+
     /**
      * 团队业绩统计
      *

+ 5 - 1
src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java

@@ -3,11 +3,13 @@ package com.ydtech.modules.esm.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
 import com.ydtech.modules.admin.model.vo.SysReferrerVo;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.model.vo.SysUserVO;
 import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.model.QueryChannel;
 import com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO;
 import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
 import org.apache.ibatis.annotations.Param;
@@ -188,5 +190,7 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
             , "</script>"})
     EsmTeamPolicyVO queryOrderCountHz(List<String> userList, String startDate, String endDate);
 
-    Page<SysUser> getUserPage(Page page);
+    Page<SysUser> getUserPage(Page page, SysUserDto dto);
+
+    Page<QueryChannel> getQueryChannelPage(Page page, QueryChannel queryChannel);
 }

+ 20 - 0
src/main/java/com/ydtech/modules/esm/model/QueryChannel.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.esm.model;
+
+import com.ydtech.core.page.PageRequest;
+import lombok.Data;
+
+@Data
+public class QueryChannel {
+    private String deptId;
+    private String deptName;
+    private String address;
+    private String count;
+
+    public QueryChannel convert(QueryChannelParam param){
+        QueryChannel queryChannel = new QueryChannel();
+        queryChannel.setDeptId(param.getDeptId());
+        queryChannel.setDeptName(param.getDeptName());
+        queryChannel.setAddress(param.getAddress());
+        return queryChannel;
+    }
+}

+ 12 - 0
src/main/java/com/ydtech/modules/esm/model/QueryChannelParam.java

@@ -0,0 +1,12 @@
+package com.ydtech.modules.esm.model;
+
+import com.ydtech.core.page.PageRequest;
+import lombok.Data;
+
+@Data
+public class QueryChannelParam extends PageRequest {
+    private String deptId;
+    private String deptName;
+    private String address;
+    private String count;
+}

+ 5 - 1
src/main/java/com/ydtech/modules/esm/service/EsmUserReferrerService.java

@@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
 import com.ydtech.modules.admin.model.vo.SysReferrerVo;
 import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.base.model.vo.PageVo;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.model.QueryChannel;
 import com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO;
 import com.ydtech.modules.esm.model.vo.EsmUserCountVO;
 import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
@@ -52,7 +54,9 @@ public interface EsmUserReferrerService extends IService<EsmUserReferrer> {
     public List<EsmUserReferrer> queryList(String affiliation);
     public List<String>  getUpUser(String userId,List<String> list);
 
-    public Page<SysUser> getUserPage(Page page);
+    public Page<SysUser> getUserPage(Page page, SysUserDto dto);
+
+    public Page<QueryChannel> getQueryChannelPage(Page page, QueryChannel queryChannel);
 }
 
 

+ 9 - 2
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
 import com.ydtech.modules.admin.model.vo.SysReferrerVo;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.service.SysUserService;
@@ -14,6 +15,7 @@ import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.base.model.vo.PageVo;
 import com.ydtech.modules.esm.dao.EsmUserReferrerMapper;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.model.QueryChannel;
 import com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO;
 import com.ydtech.modules.esm.model.vo.EsmUserCountVO;
 import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
@@ -138,8 +140,13 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
     }
 
     @Override
-    public Page<SysUser> getUserPage(Page page) {
-        return baseMapper.getUserPage(page);
+    public Page<SysUser> getUserPage(Page page, SysUserDto dto) {
+        return baseMapper.getUserPage(page,dto);
+    }
+
+    @Override
+    public Page<QueryChannel> getQueryChannelPage(Page page, QueryChannel queryChannel) {
+        return baseMapper.getQueryChannelPage(page,queryChannel);
     }
 
     @Override

+ 12 - 2
src/main/java/com/ydtech/modules/largescreen/controller/DataController.java

@@ -312,7 +312,7 @@ public class DataController {
 
         List<CompanyData> sumData = dataService.getCompanyOrderStatusData(dataQuery);
         List<ListData> listDatas = new ArrayList<>();
-
+        ListData sumListData = new ListData();
         sumData.forEach(item -> {
             ListData listData = new ListData();
             listData.setInsuranceCompany(item.getCompanyName());
@@ -326,9 +326,13 @@ public class DataController {
                 listData.setSumPremium("0");
             } else {
                 listData.setJqPremium(first.get().getJqPremium());
+                sumListData.setJqPremium(String.valueOf(Double.parseDouble(sumListData.getJqPremium()) + Double.parseDouble(first.get().getJqPremium())));
                 listData.setSyPremium(first.get().getSyPremium());
+                sumListData.setSyPremium(String.valueOf(Double.parseDouble(sumListData.getSyPremium()) + Double.parseDouble(first.get().getSyPremium())));
                 listData.setTaxPremium(first.get().getTaxPremium());
+                sumListData.setTaxPremium(String.valueOf(Double.parseDouble(sumListData.getTaxPremium()) + Double.parseDouble(first.get().getTaxPremium())));
                 listData.setSumPremium(first.get().getSumPremium());
+                sumListData.setSumPremium(String.valueOf(Double.parseDouble(sumListData.getSumPremium()) + Double.parseDouble(first.get().getSumPremium())));
             }
 
             Optional<OrderStatusData> first1 =
@@ -337,6 +341,7 @@ public class DataController {
                 listData.setQuoting("0");
             } else {
                 listData.setQuoting(first1.get().getSumOrderNum().toString());
+                sumListData.setQuoting(String.valueOf(Integer.parseInt(sumListData.getQuoting()) + first1.get().getSumOrderNum()));
             }
             Optional<OrderStatusData> first2 =
                     item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("1")).findFirst();
@@ -344,6 +349,7 @@ public class DataController {
                 listData.setUninsured("0");
             } else {
                 listData.setUninsured(first2.get().getSumOrderNum().toString());
+                sumListData.setUninsured(String.valueOf(Integer.parseInt(sumListData.getUninsured()) + first2.get().getSumOrderNum()));
             }
             Optional<OrderStatusData> first3 =
                     item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("2")).findFirst();
@@ -351,6 +357,7 @@ public class DataController {
                 listData.setUnderwrited("0");
             } else {
                 listData.setUnderwrited(first3.get().getSumOrderNum().toString());
+                sumListData.setUnderwrited(String.valueOf(Integer.parseInt(sumListData.getUnderwrited()) + first3.get().getSumOrderNum()));
             }
             Optional<OrderStatusData> first4 =
                     item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("3")).findFirst();
@@ -358,6 +365,7 @@ public class DataController {
                 listData.setInsured("0");
             } else {
                 listData.setInsured(first4.get().getSumOrderNum().toString());
+                sumListData.setInsured(String.valueOf(Integer.parseInt(sumListData.getInsured()) + first4.get().getSumOrderNum()));
             }
             Optional<OrderStatusData> first5 =
                     item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("4")).findFirst();
@@ -365,10 +373,12 @@ public class DataController {
                 listData.setUnderwriteReturn("0");
             } else {
                 listData.setUnderwriteReturn(first5.get().getSumOrderNum().toString());
+                sumListData.setUnderwriteReturn(String.valueOf(Integer.parseInt(sumListData.getUnderwriteReturn()) + first5.get().getSumOrderNum()));
             }
             listDatas.add(listData);
         });
-
+        sumListData.setInsuranceCompany("合计");
+        listDatas.add(sumListData);
         return HttpResult.ok(listDatas);
     }
 

+ 18 - 1
src/main/java/com/ydtech/modules/order/aop/aspect/QuoteVerificationAspect.java

@@ -6,8 +6,11 @@ import com.ydtech.modules.admin.model.SysUserRole;
 import com.ydtech.modules.admin.service.SysUserRoleService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.components.InsOrdersComponents;
+import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.protocol.service.PtlAgreementDeptService;
+import com.ydtech.modules.protocol.service.impl.TaxSourceServiceImpl;
 import com.ydtech.utils.StringUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -28,20 +31,34 @@ public class QuoteVerificationAspect {
 
     private final SysUserRoleService sysUserRoleService;
 
+    private final InsOrdersComponents insOrdersComponents;
+
+    private final TaxSourceServiceImpl taxSourceService;
+
     @Before("@annotation(com.ydtech.modules.order.aop.QuoteVerification)")
     public void doBefore(JoinPoint point) {
         Object[] args = point.getArgs();
         for (Object arg : args) {
             if (arg instanceof BaseQuoteVo) {
+                String companyId = ((BaseQuoteVo<?>) arg).getCompanyId();
                 String agreementId = ((BaseQuoteVo<?>) arg).getAgreementId();
+                String orderno = ((BaseQuoteVo<?>) arg).getOrderNo();
                 String deptId = ((BaseQuoteVo<?>) arg).getDeptId();
 
                 // 判断协议是否可以报价(代客录单时,机构需要传过来 没传为空时,为车险录单进来的 直接取登录用户机构即可)
                 if (StringUtils.isEmpty(deptId)) {
                     deptId = new BaseController().getDeptId();
                 }
-
                 String userId = new BaseController().getUserId();
+
+                //税源查询
+                BaseQuoteInfoVo quoteInfo = insOrdersComponents.getQuoteInfo(orderno, agreementId);
+                String taxAgreementId = taxSourceService.getAgreementId(deptId, userId, companyId, quoteInfo.getCarInfo().getLicenseNo(), quoteInfo.getCarInfo().getEnginedesc());
+                if(!"".equals(taxAgreementId)){
+                    ((BaseQuoteVo<?>) arg).setAgreementId(taxAgreementId);
+                }
+
+
                 SysUserRole userRole = sysUserRoleService.selectByUserId(userId);
                 if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) { //团队长可查询下面所有人员订单
                     return;

+ 2 - 0
src/main/java/com/ydtech/modules/order/controller/GuoRenOrderApiController.java

@@ -5,6 +5,7 @@ import com.ydtech.aop.request.RequestSingleParam;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.guoren.CarModelResp;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
+import com.ydtech.modules.order.aop.QuoteVerification;
 import com.ydtech.modules.order.entity.vo.guoren.GuoRenQuoteVo;
 import com.ydtech.modules.order.entity.api.guoren.constants.GoodsClassifyList;
 import com.ydtech.modules.order.entity.api.guoren.response.SpecialAgreementResponse;
@@ -57,6 +58,7 @@ public class GuoRenOrderApiController {
             @ApiResponse(code = 101, message = "转保单"),
             @ApiResponse(code = 200, message = "请求成功")
     })
+    @QuoteVerification("报价授权")
     @ApiOperation(value = "报价")
     @PostMapping("/quote")
     public HttpResult quoteApi(@RequestBody GuoRenQuoteVo quoteVo) {

+ 2 - 0
src/main/java/com/ydtech/modules/order/controller/YongChengOrderApiController.java

@@ -7,6 +7,7 @@ import com.ydtech.aop.request.RequestSingleParam;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.esm.model.EsmInsAttachInsure;
+import com.ydtech.modules.order.aop.QuoteVerification;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingQueryVo;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
@@ -42,6 +43,7 @@ public class YongChengOrderApiController {
             @ApiResponse(code = 101, message = "转保单"),
             @ApiResponse(code = 200, message = "请求成功")
     })
+    @QuoteVerification("报价授权")
     @ApiOperation(value = "永诚API方式 - 报价")
     @PostMapping("/quote")
     public HttpResult quoteApi(@RequestBody BaseQuoteVo<AccidentalDrivingVo> quoteVo) throws JsonProcessingException {

+ 2 - 0
src/main/java/com/ydtech/modules/order/controller/ZhongMeiOrderController.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.controller;
 
 import com.ydtech.aop.request.RequestSingleParam;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.order.aop.QuoteVerification;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
@@ -32,6 +33,7 @@ public class ZhongMeiOrderController {
     }
 
     @PostMapping("/quote")
+    @QuoteVerification("报价授权")
     @ApiOperation("报价")
     public HttpResult quote(@RequestBody BaseQuoteVo<AccidentalDrivingVo> zmQuoteVo) {
         BaseQuoteInfoVo quoteInfo = this.insOrdersComponents.getQuoteInfo(zmQuoteVo.getOrderNo(), zmQuoteVo.getAgreementId());

+ 2 - 3
src/main/java/com/ydtech/modules/protocol/controller/TaxSourceController.java

@@ -67,11 +67,10 @@ public class TaxSourceController extends BaseController {
 
     @GetMapping("/getAllAgreement")
     @ApiOperation("获取所有协议")
-    public HttpResult getAllAgreement(String license,String volume){
+    public HttpResult getAllAgreement(){
         String deptId = getDeptId();
         String userId = getUserId();
-        license = license.substring(0,2);
-        return HttpResult.ok(taxSourceService.getAgreementInsCompany(deptId,userId,license,volume));
+        return HttpResult.ok(taxSourceService.getAllAgreement(deptId,userId));
     }
 
     @PostMapping("/saveTaxSource")

+ 1 - 0
src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementMapper.java

@@ -18,6 +18,7 @@ public interface PtlAgreementMapper extends BaseMapper<PtlAgreement> {
 
     List<PtlAgreementInsCompanyDto> getAgreementCompany(@Param("localDate") LocalDate localDate, @Param("deptId") String deptId);
 
+    PtlAgreementInsCompanyDto getAgreementCompanyByCompanyId(@Param("localDate") LocalDate localDate, @Param("deptId") String deptId,@Param("companyId") String companyId);
 
 }
 

+ 5 - 1
src/main/java/com/ydtech/modules/protocol/service/ITaxSourceService.java

@@ -24,5 +24,9 @@ public interface ITaxSourceService extends IService<TaxSourceDto> {
     boolean saveTaxSource(TaxSourceVo taxSourceVo);
 
     TaxSourceVo getTaxSource(String companyId);
-    List<PtlAgreementInsCompanyDto> getAgreementInsCompany(String deptId, String userId,String license,String volume);
+//    List<PtlAgreementInsCompanyDto> getAgreementInsCompany(String deptId, String userId,String license,String volume);
+
+    List<PtlAgreementInsCompanyDto> getAllAgreement(String deptId, String userId);
+
+    String getAgreementId(String deptId, String userId,String companyId,String license,String volume);
 }

+ 2 - 0
src/main/java/com/ydtech/modules/protocol/service/PtlAgreementService.java

@@ -27,6 +27,8 @@ public interface PtlAgreementService extends IService<PtlAgreement> {
      */
     List<PtlAgreementInsCompanyDto> getAgreementCompany(String deptId);
 
+    PtlAgreementInsCompanyDto getAgreementCompany(String deptId,String companyId);
+
 
     /**
      * 通过协议id 判断是否存在

+ 9 - 0
src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java

@@ -96,6 +96,15 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
         return agreementCompany;
     }
 
+    @Override
+    public PtlAgreementInsCompanyDto getAgreementCompany(String deptId,String companyId) {
+        LocalDate localDate = LocalDate.now();
+        PtlAgreementInsCompanyDto agreementCompany = baseMapper.getAgreementCompanyByCompanyId(localDate, deptId,companyId);
+        return agreementCompany;
+    }
+
+
+
 
     @Override
     public PtlAgreement ifExistsById(String agreementId) {

+ 157 - 59
src/main/java/com/ydtech/modules/protocol/service/impl/TaxSourceServiceImpl.java

@@ -5,16 +5,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.github.pagehelper.PageHelper;
 import com.ydtech.constants.sys.SystemConstant;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.core.page.PageRequest;
 import com.ydtech.modules.admin.constants.RoleConstants;
 import com.ydtech.modules.admin.model.SysUserRole;
 import com.ydtech.modules.admin.service.SysUserRoleService;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.esm.service.EsmInsCompanyService;
-import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.protocol.constants.TaxSourceStatusConstants;
 import com.ydtech.modules.protocol.dao.TaxSourceMapper;
@@ -35,7 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Objects;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 @Service
 public class TaxSourceServiceImpl extends ServiceImpl<TaxSourceMapper,TaxSourceDto> implements ITaxSourceService {
@@ -193,73 +189,175 @@ public class TaxSourceServiceImpl extends ServiceImpl<TaxSourceMapper,TaxSourceD
         return agreementCompany;
     }
 
+    public PtlAgreementInsCompanyDto getAgreementInsCompany(String deptId, String userId,String companyId) {
+        // 领导标志
+        SysUserRole userRole = sysUserRoleService.selectByUserId(userId);
+
+        if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString()) && !RoleConstants.R21.getCode().equals(userRole.getRoleId().toString())) { //团队长可查询下面所有人员订单
+            deptId = null;
+        }
+
+        PtlAgreementInsCompanyDto agreementCompany = ptlAgreementService.getAgreementCompany(deptId,companyId);
+        return agreementCompany;
+    }
+
+//    @Override
+//    public List<PtlAgreementInsCompanyDto> getAgreementInsCompany(String deptId, String userId, String license,String volume) {
+//        //查出所有协议
+//        List<PtlAgreementInsCompanyDto> agreementInsCompany = this.getAgreementInsCompany(deptId, userId);
+//        if(license != null && volume != null) {
+//            //排除的部门信息
+//            List<TaxSourceExcludeDto> excludeDepts = taxSourceExcludeService.list(new LambdaQueryWrapper<TaxSourceExcludeDto>().eq(TaxSourceExcludeDto::getExcludeInfo, deptId)
+//                    .eq(TaxSourceExcludeDto::getType, TaxSourceStatusConstants.EXCLUDE_TYPE_DEPT));
+//
+//            agreementInsCompany.forEach(item ->
+//                    excludeDepts.stream()
+//                            .filter(taxSourceDto -> item.getId().equals(taxSourceDto.getInsCompanyId()) && taxSourceDto.getExcludeInfo().equals(deptId))
+//                            .findFirst()
+//                            .ifPresent(taxSourceDto -> item.setIsExclude(TaxSourceStatusConstants.TAX_SOURCE_START))
+//            );
+//            //查找排除的车牌号
+//            List<TaxSourceExcludeDto> licenseExclude = taxSourceExcludeService.list(new LambdaQueryWrapper<TaxSourceExcludeDto>().eq(TaxSourceExcludeDto::getExcludeInfo, license)
+//                    .eq(TaxSourceExcludeDto::getType, TaxSourceStatusConstants.EXCLUDE_TYPE_LICENSE));
+//            agreementInsCompany.forEach(item -> {
+//                licenseExclude.forEach(taxSourceDto -> {
+//                    if (item.getId().equals(taxSourceDto.getInsCompanyId())) {
+//                        if (license.equals(taxSourceDto.getExcludeInfo())) {
+//                            //排除
+//                            item.setIsExclude(TaxSourceStatusConstants.TAX_SOURCE_START);
+//                        }
+//                    }
+//                });
+//            });
+//
+//            //查找配置的默认项
+//            List<TaxSourceDto> taxSourceDefaultDtos = baseMapper.selectList(new LambdaQueryWrapper<TaxSourceDto>()
+//                    .eq(TaxSourceDto::getLicense, license));
+//            //设置协议的默认项
+//            agreementInsCompany.forEach(item -> {
+//                taxSourceDefaultDtos.forEach(taxSourceDto -> {
+//                    if (item.getId().equals(taxSourceDto.getInsCompanyId())) {
+//                        item.getAgreement().forEach(agreement -> {
+//                            if (agreement.getId().equals(taxSourceDto.getAgreementId())) {
+//                                agreement.setIsAllocation(TaxSourceStatusConstants.TAX_SOURCE_START);
+//                            }
+//                        });
+//                    }
+//                });
+//            });
+//            //判断汽车排量是否大于1升
+//            if (Float.parseFloat(volume) >= 1) {
+//                //查找是否配置税源
+//                List<TaxSourceDto> taxSourceDtos = baseMapper.selectList(new LambdaQueryWrapper<TaxSourceDto>().eq(TaxSourceDto::getIsTaxSource, "1"));
+//                //设置税源参数
+//                agreementInsCompany.forEach(item -> {
+//                    if (!TaxSourceStatusConstants.TAX_SOURCE_START.equals(item.getIsExclude())) {
+//                        taxSourceDtos.forEach(taxSourceDto -> {
+//                            if (item.getId().equals(taxSourceDto.getInsCompanyId())) {
+//                                item.getAgreement().forEach(agreement -> {
+//                                    if (agreement.getId().equals(taxSourceDto.getAgreementId())) {
+//                                        agreement.setIsTaxSource(TaxSourceStatusConstants.TAX_SOURCE_START);
+//                                        item.setIsTaxSource(TaxSourceStatusConstants.TAX_SOURCE_START);
+//                                        item.setTaxSourceAgreementId(taxSourceDto.getAgreementId());
+//                                    }
+//                                });
+//                            }
+//                        });
+//                    }
+//                });
+//            }
+//        }
+//        return agreementInsCompany;
+//    }
+
+    /**
+     * 返回是否是税源
+     * @param deptId
+     * @param userId
+     * @return
+     */
     @Override
-    public List<PtlAgreementInsCompanyDto> getAgreementInsCompany(String deptId, String userId, String license,String volume) {
+    public List<PtlAgreementInsCompanyDto> getAllAgreement(String deptId, String userId) {
         //查出所有协议
         List<PtlAgreementInsCompanyDto> agreementInsCompany = this.getAgreementInsCompany(deptId, userId);
+
+        //查找是否配置税源
+        List<TaxSourceDto> taxSourceDtos = baseMapper.selectList(new LambdaQueryWrapper<TaxSourceDto>().eq(TaxSourceDto::getIsTaxSource, "1"));
+        //设置税源参数
+        agreementInsCompany.forEach(item -> {
+            if (!TaxSourceStatusConstants.TAX_SOURCE_START.equals(item.getIsExclude())) {
+                taxSourceDtos.forEach(taxSourceDto -> {
+                    if (item.getId().equals(taxSourceDto.getInsCompanyId())) {
+                        item.getAgreement().forEach(agreement -> {
+                            if (agreement.getId().equals(taxSourceDto.getAgreementId())) {
+                                agreement.setIsTaxSource(TaxSourceStatusConstants.TAX_SOURCE_START);
+                                item.setIsTaxSource(TaxSourceStatusConstants.TAX_SOURCE_START);
+                                item.setTaxSourceAgreementId(taxSourceDto.getAgreementId());
+                            }
+                        });
+                    }
+                });
+            }
+        });
+        return agreementInsCompany;
+    }
+
+    /**
+     * 根据税源获取协议id
+     * @param deptId
+     * @param userId
+     * @param companyId
+     * @param license
+     * @param volume
+     * @return
+     */
+    @Override
+    public String getAgreementId(String deptId, String userId, String companyId, String license, String volume) {
+        String resultId = "";
+        boolean isExclude = false;
         //排除的部门信息
-        List<TaxSourceExcludeDto> excludeDepts = taxSourceExcludeService.list(new LambdaQueryWrapper<TaxSourceExcludeDto>().eq(TaxSourceExcludeDto::getExcludeInfo, deptId)
+        List<TaxSourceExcludeDto> excludeDepts = taxSourceExcludeService.list(new LambdaQueryWrapper<TaxSourceExcludeDto>()
+                .eq(TaxSourceExcludeDto::getExcludeInfo, deptId)
+                .eq(TaxSourceExcludeDto::getInsCompanyId, companyId)
                 .eq(TaxSourceExcludeDto::getType, TaxSourceStatusConstants.EXCLUDE_TYPE_DEPT));
 
-        agreementInsCompany.forEach(item ->
-                excludeDepts.stream()
-                        .filter(taxSourceDto -> item.getId().equals(taxSourceDto.getInsCompanyId()) && taxSourceDto.getExcludeInfo().equals(deptId))
-                        .findFirst()
-                        .ifPresent(taxSourceDto -> item.setIsExclude(TaxSourceStatusConstants.TAX_SOURCE_START))
-        );
+        //部门排除
+        if (excludeDepts.stream()
+                .filter(taxSourceDto -> taxSourceDto.getExcludeInfo().equals(deptId)).count() > 0) {
+            isExclude = true;
+        }
+
         //查找排除的车牌号
         List<TaxSourceExcludeDto> licenseExclude = taxSourceExcludeService.list(new LambdaQueryWrapper<TaxSourceExcludeDto>().eq(TaxSourceExcludeDto::getExcludeInfo, license)
                 .eq(TaxSourceExcludeDto::getType, TaxSourceStatusConstants.EXCLUDE_TYPE_LICENSE));
-        agreementInsCompany.forEach(item->{
-            licenseExclude.forEach(taxSourceDto -> {
-                if(item.getId().equals(taxSourceDto.getInsCompanyId())){
-                    if(license.equals(taxSourceDto.getExcludeInfo()))
-                    {
-                        //排除
-                        item.setIsExclude(TaxSourceStatusConstants.TAX_SOURCE_START);
-                    }
-                }
-            });
-        });
 
-        //查找配置的默认项
-        List<TaxSourceDto> taxSourceDefaultDtos = baseMapper.selectList(new LambdaQueryWrapper<TaxSourceDto>()
-                .eq(TaxSourceDto::getLicense, license));
-        //设置协议的默认项
-        agreementInsCompany.forEach(item->{
-            taxSourceDefaultDtos.forEach(taxSourceDto -> {
-                if(item.getId().equals(taxSourceDto.getInsCompanyId())){
-                    item.getAgreement().forEach(agreement -> {
-                        if(agreement.getId().equals(taxSourceDto.getAgreementId())){
-                            agreement.setIsAllocation(TaxSourceStatusConstants.TAX_SOURCE_START);
-                        }
-                    });
+        //车牌排除
+        if (licenseExclude.stream()
+                .filter(taxSourceDto -> taxSourceDto.getExcludeInfo().equals(license)).count() > 0) {
+            isExclude = true;
+        }
+
+        if (!isExclude) {
+            //判断排量 如果大于一升 走税源 否则走默认配置
+            if (Float.parseFloat(volume) >= 1) {
+                //查找是否配置税源
+                TaxSourceDto taxSourceDtos = baseMapper.selectOne(new LambdaQueryWrapper<TaxSourceDto>()
+                        .eq(TaxSourceDto::getIsTaxSource, "1")
+                        .eq(TaxSourceDto::getInsCompanyId, companyId));
+                if (taxSourceDtos != null) {
+                    resultId = taxSourceDtos.getAgreementId();
                 }
-            });
-        });
-        //判断汽车排量是否大于1升
-        if(Float.parseFloat(volume) >= 1) {
-            //查找是否配置税源
-            List<TaxSourceDto> taxSourceDtos = baseMapper.selectList(new LambdaQueryWrapper<TaxSourceDto>().eq(TaxSourceDto::getIsTaxSource, "1"));
-            //设置税源参数
-            agreementInsCompany.forEach(item -> {
-                if (!TaxSourceStatusConstants.TAX_SOURCE_START.equals(item.getIsExclude())) {
-                    taxSourceDtos.forEach(taxSourceDto -> {
-                        if (item.getId().equals(taxSourceDto.getInsCompanyId())) {
-                            item.getAgreement().forEach(agreement -> {
-                                if (agreement.getId().equals(taxSourceDto.getAgreementId())) {
-                                    agreement.setIsTaxSource(TaxSourceStatusConstants.TAX_SOURCE_START);
-                                    item.setIsTaxSource(TaxSourceStatusConstants.TAX_SOURCE_START);
-                                    item.setTaxSourceAgreementId(taxSourceDto.getAgreementId());
-                                }
-                            });
-                        }
-                    });
+            } else {
+                //查找配置的默认项
+                TaxSourceDto taxSourceDefaultDto = baseMapper.selectOne(new LambdaQueryWrapper<TaxSourceDto>()
+                        .eq(TaxSourceDto::getInsCompanyId, companyId)
+                        .eq(TaxSourceDto::getLicense, license));
+                if (taxSourceDefaultDto != null) {
+                    resultId = taxSourceDefaultDto.getAgreementId();
                 }
-            });
+            }
         }
-        return agreementInsCompany;
+        return resultId;
     }
 
-
 }

+ 34 - 0
src/main/resources/mapper/modules/esm/EsmUserReferrerMapper.xml

@@ -6,6 +6,9 @@
 
     <resultMap id="SysUserMap" type="com.ydtech.modules.admin.model.SysUser">
     </resultMap>
+
+    <resultMap id="QueryChannelMap" type="com.ydtech.modules.esm.model.QueryChannel">
+    </resultMap>
     <select id="getUserPage" resultMap="SysUserMap">
         SELECT
             su.*
@@ -16,5 +19,36 @@
             su.id != 'admin'
           AND su.STATUS = 1
           AND referrer_id IS NOT NULL
+        <if test="dto.userId != null and dto.userId != ''">
+            AND su.id = #{dto.userId}
+        </if>
+        <if test="dto.name != null and dto.name != ''">
+            AND su.name = #{dto.name}
+        </if>
+        <if test="dto.mobile != null and dto.mobile != ''">
+            AND su.mobile = #{dto.mobile}
+        </if>
+    </select>
+
+    <select id="getQueryChannelPage" resultMap="QueryChannelMap">
+        SELECT
+            sd.id as deptId,
+            sd.name as deptName,
+            sd.address,
+            count( su.id ) AS count
+        FROM
+            sys_dept sd
+                LEFT JOIN sys_user su ON su.dept_id = sd.id
+        WHERE
+            management_source = 1
+        <if test="queryChannel.deptId != null and queryChannel.deptId != ''">
+            AND sd.id = #{queryChannel.deptId}
+        </if>
+        <if test="queryChannel.deptName != null and queryChannel.deptName != ''">
+            AND sd.name = #{queryChannel.deptName}
+        </if>
+        GROUP BY
+            sd.id
     </select>
+
 </mapper>

+ 20 - 0
src/main/resources/mapper/modules/protocol/PtlAgreementMapper.xml

@@ -83,4 +83,24 @@
           order by pa.serial_number
     </select>
 
+    <select id="getAgreementCompanyByCompanyId" resultMap="AgreementCompanyResultMap">
+        select eic.*, pa.id as agreement_id, pa.agreement_name, paa.api_type, pa.underwriting_description
+        from esm_ins_company as eic
+        left join ptl_agreement as pa on pa.insurance_company_id = eic.id
+        left join ptl_agreement_attribution as paa on paa.id = pa.id
+        where (#{localDate} between start_date and end_date)
+        and (paa.template_id is not null)
+        and pa.valid_status = 1
+        and pa.id in (select distinct agreement_id
+        from ptl_agreement_dept
+        <if test="deptId != null and deptId != ''">
+            where dept_id = #{deptId}
+        </if>
+        <if test="companyId != null and companyId != ''">
+            and company_id = #{companyId}
+        </if>
+        )
+        order by pa.serial_number
+    </select>
+
 </mapper>