Эх сурвалжийг харах

Merge remote-tracking branch 'origin/test'

y 2 жил өмнө
parent
commit
2184d8b97c
39 өөрчлөгдсөн 1370 нэмэгдсэн , 226 устгасан
  1. 39 0
      docker/shell-pre.sh
  2. 30 0
      src/main/java/com/ydtech/constants/enums/dict/agreement/ValidStatus.java
  3. 2 1
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserDto.java
  4. 3 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java
  5. 57 59
      src/main/java/com/ydtech/modules/esm/controller/EsmUserController.java
  6. 4 0
      src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java
  7. 3 0
      src/main/java/com/ydtech/modules/esm/service/EsmUserReferrerService.java
  8. 8 1
      src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java
  9. 4 4
      src/main/java/com/ydtech/modules/fnc/dao/InsPlySettleMapper.java
  10. 7 1
      src/main/java/com/ydtech/modules/fnc/entity/InsPlySettle.java
  11. 19 2
      src/main/java/com/ydtech/modules/fnc/service/impl/InsPlySettleServiceImpl.java
  12. 145 105
      src/main/java/com/ydtech/modules/ins/controller/InsPayApplyController.java
  13. 2 0
      src/main/java/com/ydtech/modules/ins/dao/InsPayApplyDao.java
  14. 48 0
      src/main/java/com/ydtech/modules/ins/dao/impl/InsPayApplyDaoImpl.java
  15. 140 0
      src/main/java/com/ydtech/modules/ins/model/InsUserAccount.java
  16. 126 51
      src/main/java/com/ydtech/modules/largescreen/controller/DataController.java
  17. 1 0
      src/main/java/com/ydtech/modules/largescreen/model/CompanyData.java
  18. 48 0
      src/main/java/com/ydtech/modules/largescreen/model/ListData.java
  19. 9 0
      src/main/java/com/ydtech/modules/order/entity/api/dajia/response/ODR1011Response.java
  20. 15 2
      src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java
  21. 12 0
      src/main/java/com/ydtech/modules/protocol/constants/TaxSourceStatusConstants.java
  22. 84 0
      src/main/java/com/ydtech/modules/protocol/controller/TaxSourceController.java
  23. 1 0
      src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementMapper.java
  24. 15 0
      src/main/java/com/ydtech/modules/protocol/dao/TaxSourceExcludeMapper.java
  25. 21 0
      src/main/java/com/ydtech/modules/protocol/dao/TaxSourceMapper.java
  26. 6 0
      src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementDto.java
  27. 9 0
      src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementInsCompanyDto.java
  28. 26 0
      src/main/java/com/ydtech/modules/protocol/entity/dto/TaxSourceDto.java
  29. 21 0
      src/main/java/com/ydtech/modules/protocol/entity/dto/TaxSourceExcludeDto.java
  30. 3 0
      src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementPageVo.java
  31. 53 0
      src/main/java/com/ydtech/modules/protocol/entity/vo/TaxSourceVo.java
  32. 15 0
      src/main/java/com/ydtech/modules/protocol/service/ITaxSourceExcludeService.java
  33. 28 0
      src/main/java/com/ydtech/modules/protocol/service/ITaxSourceService.java
  34. 2 0
      src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java
  35. 25 0
      src/main/java/com/ydtech/modules/protocol/service/impl/TaxSourceExcludeServiceImpl.java
  36. 265 0
      src/main/java/com/ydtech/modules/protocol/service/impl/TaxSourceServiceImpl.java
  37. 20 0
      src/main/resources/mapper/modules/esm/EsmUserReferrerMapper.xml
  38. 1 0
      src/main/resources/mapper/modules/protocol/PtlAgreementMapper.xml
  39. 53 0
      src/main/resources/mapper/modules/protocol/TaxSourceMapper.xml

+ 39 - 0
docker/shell-pre.sh

@@ -0,0 +1,39 @@
+# 源jar路径
+# SOURCE_PATH=/usr/local/data/jenkins/workspace/insagent/target
+# Dockerfile路径
+DOCKER_FILE_PATH=/usr/local/java/insAgency
+# 容器id
+CID=$(''docker ps | grep "ins" | awk '{print $1}''')
+echo $CID
+# 运行docker容器
+function run(){
+  echo "开始构建镜像..."
+  cd $DOCKER_FILE_PATH
+  echo "当前路径如下"
+  pwd
+  # 构建前判断是否存在镜像,存在则删除
+  if [ -n "$CID" ]; then
+    echo "存在demo容器,CID=$CID,重启docker容器 ..."
+    # 停止容器运行
+    sudo docker stop $CID
+    # 删除容器
+    sudo docker rm $CID
+    # 删除镜像
+    sudo docker rmi insagent
+    echo "删除镜像和容器成功,下面开始构建新镜像"
+  else
+    echo "不存在people-healthy容器,下面直接开始构建镜像"
+  fi
+  # 构建镜像
+  docker build -t insagent .
+  echo "创建容器成功"
+  docker images
+  # 杀死特定端口进程
+  # mypid=$(netstat -apn|grep 9001|awk '{print $7}'|cut -d/ -f1);
+  # echo $mypid
+  # kill -9 $mypid
+  docker run -it --name ins -p 8081:8080 -p 9991:9999 --restart=always -v /usr/local/java/insAgency:/ins --mount type=bind,source=/nasData,destination=/nasData -v /usr/local/java/insAgency/logs:/ins/logs -d ins:latest
+}
+
+#入口
+run

+ 30 - 0
src/main/java/com/ydtech/constants/enums/dict/agreement/ValidStatus.java

@@ -0,0 +1,30 @@
+package com.ydtech.constants.enums.dict.agreement;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @version
+ * @description: 是否有效
+ * @author: wenks
+ * @date: 2024/1/17 17:40
+ **/
+@AllArgsConstructor
+@Getter
+public enum ValidStatus {
+
+
+    VS_1("1", "有效", 1, 0),
+    VS_2("0", "无效", 2, 0);
+
+    // 编号
+    private final String code;
+    // 说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+}

+ 2 - 1
src/main/java/com/ydtech/modules/admin/model/dto/SysUserDto.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.model.dto;
 
+import com.ydtech.core.page.PageRequest;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -12,7 +13,7 @@ import lombok.Data;
  */
 @Data
 @ApiModel
-public class SysUserDto {
+public class SysUserDto extends PageRequest {
 
 
     @ApiModelProperty("用户ID(工号)")

+ 3 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -587,6 +587,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (StringUtils.isNotEmpty(sysUser.getReferrerId())) {
             //推荐人
             esmUserReferrerService.addReferrer(sysUser.getReferrerId(), userId);
+        }else if("20".equals(sysUser.getRoleId()) || "21".equals(sysUser.getRoleId())){
+            //如果是 团队长或代码人 并且没有推荐人 则默认推荐人为自己
+            esmUserReferrerService.addReferrer(sysUser.getId(), userId);
         }
 
 //        EsmUserReferrer eur = new EsmUserReferrer();

+ 57 - 59
src/main/java/com/ydtech/modules/esm/controller/EsmUserController.java

@@ -4,7 +4,9 @@ package com.ydtech.modules.esm.controller;
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageRequest;
 import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUserRole;
@@ -64,74 +66,70 @@ public class EsmUserController extends BaseController {
         //添加团队长角色
         userRoleLqw.in(SysUserRole::getRoleId,20,21);
         userRoleLqw.eq(StringUtils.isNotEmpty(dto.getUserId()),SysUserRole::getUserId,dto.getUserId());
+
 //        List<SysUserRole> userRoleList = sysUserRoleService.list(userRoleLqw);
 
 //        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);
         //用户ID 代理人角色
-        List<String> longs = sysUserRoleService.listObjs(userRoleLqw, Object::toString);
-
-        if(CollUtil.isNotEmpty(longs)){
-            //获取团队长
-            LambdaQueryWrapper<SysUser> lqwUser = new LambdaQueryWrapper<>();
-            lqwUser.in(SysUser::getId,longs);
-            lqwUser.eq(SysUser::getStatus,1);
-            lqwUser.ne(SysUser::getId,"admin");
-            lqwUser.eq(StringUtils.isNotEmpty(dto.getName()),SysUser::getName,dto.getName());
-            lqwUser.eq(StringUtils.isNotEmpty(dto.getMobile()),SysUser::getMobile,dto.getMobile());
-            List<SysUser> userList= sysUserService.list(lqwUser);
-
-
-            userList.forEach(a ->{
-
-                TeamUserVO vo = new TeamUserVO();
-                List<SysUser> oneList = new ArrayList<>();
-                List<SysUser> oneTempList = new ArrayList<>();
-
-                List<SysUser> twoList = new ArrayList<>();
-                List<SysUser> twoTempList = new ArrayList<>();
-
-                List<SysUser> threeList = new ArrayList<>();
-                List<SysUser> threeTempList = new ArrayList<>();
-
-                //一级
-                esmUserReferrerService.buildLevelList(a,oneList,oneTempList);
-
-                oneList.forEach(b ->{
-                    //二级
-                    esmUserReferrerService.buildLevelList(b,twoList,twoTempList);
-                    twoList.forEach(c ->{
-                        //三级
-                        esmUserReferrerService.buildLevelList(c,threeList,threeTempList);
-                    });
-
-                });
-
-                vo.setLevel1num(oneList.size());
-                vo.setLevel2num(twoList.size());
-                vo.setLevel3num(threeList.size());
-
-                //临时人数
-                vo.setTempnum(oneTempList.size() + twoTempList.size() + threeTempList.size());
-                //我的团队数
-                vo.setTeamnum(vo.getTempnum() + oneList.size() + twoList.size() + threeList.size());
-                vo.setId(a.getId());
-                vo.setName(a.getName());
-                vo.setMobile(a.getMobile());
-//            vo.setSex(a.getSex());
+        //Page<SysUserRole> pageData = sysUserRoleService.page(page, userRoleLqw);
+        List<String> longs = new ArrayList<>();
+        pageData.getRecords().forEach(x ->{
+            longs.add(x.getId());
+        });
+        List<SysUser> userList = new ArrayList<>();
+        userList = pageData.getRecords();
+        userList.forEach(a ->{
+
+            TeamUserVO vo = new TeamUserVO();
+            List<SysUser> oneList = new ArrayList<>();
+            List<SysUser> oneTempList = new ArrayList<>();
+
+            List<SysUser> twoList = new ArrayList<>();
+            List<SysUser> twoTempList = new ArrayList<>();
 
-                SysDept sysDept = sysDeptService.getById(a.getDeptId());
-                if(null != sysDept){
-                    vo.setDeptId(sysDept.getId());
-                    vo.setDeptName(sysDept.getName());
-                }
-                teamList.add(vo);
+            List<SysUser> threeList = new ArrayList<>();
+            List<SysUser> threeTempList = new ArrayList<>();
 
+            //一级
+            esmUserReferrerService.buildLevelList(a,oneList,oneTempList);
+
+            oneList.forEach(b ->{
+                //二级
+                esmUserReferrerService.buildLevelList(b,twoList,twoTempList);
 
             });
-        }
 
-        return HttpResult.ok(teamList);
+            vo.setLevel1num(oneList.size());
+            vo.setLevel2num(twoList.size());
+
+            //临时人数
+            vo.setTempnum(oneTempList.size() + twoTempList.size() );
+            //我的团队数
+            vo.setTeamnum(vo.getTempnum() + oneList.size() + twoList.size());
+            vo.setId(a.getId());
+            vo.setName(a.getName());
+            vo.setMobile(a.getMobile());
+//            vo.setSex(a.getSex());
+
+            SysDept sysDept = sysDeptService.getById(a.getDeptId());
+            if(null != sysDept){
+                vo.setDeptId(sysDept.getId());
+                vo.setDeptName(sysDept.getName());
+            }
+            teamList.add(vo);
+
+
+        });
+        pageData.setRecords(userList);
+        Page<TeamUserVO> resultData = new Page<TeamUserVO>();
+        resultData.setCurrent(pageData.getCurrent());
+        resultData.setSize(pageData.getSize());
+        resultData.setTotal(pageData.getTotal());
+        resultData.setPages(pageData.getPages());
+        resultData.setRecords(teamList);
+        return HttpResult.ok(resultData);
 
 
 

+ 4 - 0
src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java

@@ -1,6 +1,8 @@
 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.vo.SysReferrerVo;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.model.vo.SysUserVO;
@@ -185,4 +187,6 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
             "</foreach > "
             , "</script>"})
     EsmTeamPolicyVO queryOrderCountHz(List<String> userList, String startDate, String endDate);
+
+    Page<SysUser> getUserPage(Page page);
 }

+ 3 - 0
src/main/java/com/ydtech/modules/esm/service/EsmUserReferrerService.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.esm.service;
 
 
+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;
@@ -50,6 +51,8 @@ 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);
 }
 
 

+ 8 - 1
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.esm.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+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.exception.SystemException;
@@ -49,6 +50,7 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
 
         LambdaQueryWrapper<EsmUserReferrer> lqw = new LambdaQueryWrapper<>();
         lqw.eq(EsmUserReferrer::getReferrerId, agent.getId());
+        lqw.ne(EsmUserReferrer::getId, agent.getId());
         List<EsmUserReferrer> listAll = esmUserReferrerService.list(lqw);
 
         List<SysUser> oneList = new ArrayList<>();
@@ -76,7 +78,7 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
     }
     @Override
     public void addReferrer(String referrerId, String nextPK) {
-        if(referrerId.equals(nextPK)) throw new SystemException("推荐人不能是自己");
+        //if(referrerId.equals(nextPK)) throw new SystemException("推荐人不能是自己");
         //推荐人信息
         EsmUserReferrer referrer = getById(referrerId);
         EsmUserReferrer eur = new EsmUserReferrer();
@@ -135,6 +137,11 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
         return list;
     }
 
+    @Override
+    public Page<SysUser> getUserPage(Page page) {
+        return baseMapper.getUserPage(page);
+    }
+
     @Override
     public HttpResult<PageVo<SysReferrerVo>> gainReferrerPage(PageDto<SysReferrerVo> pageDto) {
 

+ 4 - 4
src/main/java/com/ydtech/modules/fnc/dao/InsPlySettleMapper.java

@@ -26,11 +26,11 @@ public interface InsPlySettleMapper extends BaseMapper<InsPlySettle> {
     String getMaxBatch(InsPlySettle insPlySettle);
 
     @Select({"<script>"," " +
-            "select a.*,b.`name` dept_name ,c.`name` companyName,d.hxamount " +
+            "select a.*,b.`name` dept_name ,c.`name` companyName,d.hxamount ,d.commissionHxamount , d.otherHxamount " +
             "from ins_ply_settle a " +
             "left join sys_dept b on a.dept_id=b.id " +
             "left join esm_ins_company c on a.company_id=c.id " +
-            "left join (select t.settleno,SUM(amount) hxamount from ins_ply_settle_hx t group by t.settleno ) d on d.settleno=a.settleno " +
+            "left join v_settle_hx d on d.settleno=a.settleno " +
             "where 1=1 " +
             "<if test='startDate!=\"\" and endDate!=\"\" and startDate!=null and endDate!=null'>" +
             "and DATE_FORMAT(a.create_time, '%Y-%m-%d') " +
@@ -47,11 +47,11 @@ public interface InsPlySettleMapper extends BaseMapper<InsPlySettle> {
     List<InsPlySettle> selectByCondition(InsPlySettleVo insPlySettleVo);
 
     @Select({
-            "select a.*,b.`name` dept_name ,c.`name` companyName,d.hxamount " +
+            "select a.*,b.`name` dept_name ,c.`name` companyName,d.hxamount,d.commissionHxamount , d.otherHxamount  " +
             "from ins_ply_settle a " +
             "left join sys_dept b on a.dept_id=b.id " +
             "left join esm_ins_company c on a.company_id=c.id " +
-            "left join (select t.settleno,SUM(amount) hxamount from ins_ply_settle_hx t group by t.settleno ) d on d.settleno=a.settleno " +
+            "left join v_settle_hx d on d.settleno=a.settleno " +
             "where a.settleno =#{settleno}"
             }
     )

+ 7 - 1
src/main/java/com/ydtech/modules/fnc/entity/InsPlySettle.java

@@ -58,9 +58,15 @@ public class InsPlySettle implements Serializable {
     @TableField("all_fee_value")
     private BigDecimal allFeeValue;
 
-    @ApiModelProperty("核销金额")
+    @ApiModelProperty("总费用核销金额")
     @TableField(exist = false)
     private BigDecimal hxamount;
+    @ApiModelProperty("手续费核销金额")
+    @TableField(exist = false)
+    private BigDecimal commissionHxamount;
+    @ApiModelProperty("其他费核销金额")
+    @TableField(exist = false)
+    private BigDecimal otherHxamount;
 
     @ApiModelProperty("机构")
     @TableField("dept_id")

+ 19 - 2
src/main/java/com/ydtech/modules/fnc/service/impl/InsPlySettleServiceImpl.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.fnc.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -163,13 +164,29 @@ public class InsPlySettleServiceImpl extends ServiceImpl<InsPlySettleMapper, Ins
         //核销金额不能超总费用
         InsPlySettle insPlySettle=this.baseMapper.selectBySettleno(insPlySettleHx.getSettleno());
         insPlySettle.setHxamount(insPlySettle.getHxamount() ==null ? BigDecimal.ZERO:insPlySettle.getHxamount());
-        if(insPlySettle.getHxamount().add(insPlySettleHx.getAmount()).compareTo(insPlySettle.getAllFeeValue())>0){
-            return HttpResult.error("核销金额已超过总费用,请修改");
+        insPlySettle.setCommissionHxamount(insPlySettle.getCommissionHxamount() ==null ? BigDecimal.ZERO:insPlySettle.getCommissionHxamount());
+        insPlySettle.setOtherHxamount(insPlySettle.getOtherHxamount() ==null ? BigDecimal.ZERO:insPlySettle.getOtherHxamount());
+        if(insPlySettleHx.getFeeType().equals("S")
+                &&insPlySettle.getCommissionHxamount().add(insPlySettleHx.getAmount()).compareTo(insPlySettle.getCommissionFeevalue())>0){
+            return HttpResult.error("核销手续费金额已超过结算单手续费,请修改");
+        }
+        if(insPlySettleHx.getFeeType().equals("O")
+                &&insPlySettle.getOtherHxamount().add(insPlySettleHx.getAmount()).compareTo(insPlySettle.getOtherFeevalue())>0){
+            return HttpResult.error("核销其他费用金额已超过结算单其他费用,请修改");
         }
 
+        //1.插入核销记录表
         insPlySettleHx.setOperator(StpUtil.getLoginId().toString());
         insPlySettleHx.setCreateTime(LocalDateTime.now());
         insPlySettleHxMapper.insert(insPlySettleHx);
+        //2.修改核销状态 状态(0-未核销 1-部分核销 2-已核销)
+        InsPlySettle insPlySettle_status=new InsPlySettle();
+        if(insPlySettle.getHxamount().add(insPlySettleHx.getAmount()).compareTo(insPlySettle.getAllFeeValue())==0){
+            insPlySettle_status.setStatus("2");
+        }else{
+            insPlySettle_status.setStatus("1");
+        }
+        this.baseMapper.update(insPlySettle_status,new QueryWrapper<InsPlySettle>().eq("settleno",insPlySettleHx.getSettleno()));
         return HttpResult.ok("核销成功");
     }
     @Override

+ 145 - 105
src/main/java/com/ydtech/modules/ins/controller/InsPayApplyController.java

@@ -6,7 +6,9 @@ import com.ydtech.core.page.PageRequest;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.SysUserInfo;
 import com.ydtech.modules.admin.service.SysDeptService;
+import com.ydtech.modules.admin.service.SysUserInfoService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.vo.ExtensionVO;
@@ -48,6 +50,8 @@ public class InsPayApplyController extends BaseController {
     @Autowired
     SysUserService sysUserService;
     @Autowired
+    SysUserInfoService sysUserInfoService;
+    @Autowired
     SysDeptService sysDeptService;
     @Autowired
     InsCommissionService insCommissionService;
@@ -117,6 +121,39 @@ public class InsPayApplyController extends BaseController {
         return HttpResult.ok(pageResult);
     }
 
+    /**
+     * 人员账户分页查询
+     *
+     * @param pageRequest
+     * @return
+     */
+    @PostMapping(value = "/findPageAccount")
+    public HttpResult findPageAccount(@RequestBody PageRequest pageRequest) {
+
+        int pageNum = pageRequest.getPageNum();
+        int pageSize = pageRequest.getPageSize();
+
+
+        String userid = pageRequest.getColumnFilterValue(pageRequest, "userid"); // 出单员
+        String deptid = pageRequest.getColumnFilterValue(pageRequest, "deptid"); // 所属机构
+
+        StringBuffer whereStr = new StringBuffer(" where 1=1");
+        ArrayList array = new ArrayList();
+
+        if (!StringUtils.isEmpty(userid)) {
+            whereStr.append(" and userid=?");
+            array.add(userid);
+        }
+        if (!StringUtils.isEmpty(deptid)) {
+            whereStr.append(" and deptid like ?");
+            array.add(deptid + "%");
+        }
+
+        PageResult pageResult = insPayApplyService.selectAccountPaging(pageNum, pageSize, whereStr.toString(), array.toArray());
+
+        return HttpResult.ok(pageResult);
+    }
+
     /**
      * 查询提现详情
      *
@@ -270,7 +307,7 @@ public class InsPayApplyController extends BaseController {
 
         AccountVo account = new AccountVo();
         //账户总金额
-        double sumAmount = insCommissionService.sumAmount(" where t.refereescode=? and t.auditstatus=?", new Object[]{userid, "1"});
+        double sumAmount = insCommissionService.sumAmount(" where t.refereescode=?", new Object[]{userid});
         //已提现金额
         double totalAmount = insPayApplyService.sumAmount(" where t.userid=? and t.applytype=?", new Object[]{userid, "B"});
         //可提现余额
@@ -293,58 +330,60 @@ public class InsPayApplyController extends BaseController {
         return httpResult;
     }
 
-//    /**
-//     * 推广费提现申请
-//     *
-//     * @param userid
-//     * @param amount
-//     * @return
-//     */
-//    @PostMapping(value = "/extendApply")
-//    public HttpResult extendApply(@RequestParam String userid, @RequestParam double amount) {
-//        HttpResult httpResult = new HttpResult();
-//        //推广账户总金额
-//        double sumAmount = insCommissionService.sumAmount(" where t.refereescode=? and t.auditstatus=?", new Object[]{userid, "1"});
-//        //已提现金额
-//        double totalAmount = insPayApplyService.sumAmount(" where t.userid=? and t.applytype=?", new Object[]{userid, "B"});
-//        double accountBalance = sumAmount - totalAmount;
-//
-//        if (amount > accountBalance) {
-//            return HttpResult.error("可提现余额不足");
-//        }
-//        InsPayApply apply = new InsPayApply();
-//        String applyno = IdGenerate.nextId();
-//        SysUser user = sysUserService.getById(userid);
-//        if (user == null) {
-//            httpResult.setMsg("userId不存在");
-//            return httpResult;
-//        }
-//        apply.setApplyno(applyno);
-//        apply.setUserid(userid);
-//        apply.setUsername(user.getName());
-//        apply.setDeptid(user.getDeptId());
-//        SysDept dept = sysDeptService.getById(user.getDeptId());
-//        apply.setDeptname(dept == null ? "" : dept.getName());
-//        BigDecimal decimal = new BigDecimal(accountBalance);
-//        decimal = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
-//        apply.setAccountbalance(decimal.doubleValue());
-//        apply.setApplyamount(amount);
-//        decimal = new BigDecimal(accountBalance - amount);
-//        decimal = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
-//        apply.setBalance(decimal.doubleValue());
-//        apply.setDisrate("");
-//        EsmUserInternal userInternal = esmUserInternalService.getById(userid);
-//        apply.setBankname(userInternal.getBankname());
-//        apply.setAccountno(userInternal.getAccountno());
-//        apply.setApplystatus("0"); //0申请中 1支付中 2已支付
-//        apply.setApplytype("B");  //A跟单绩效  B推广佣金
-//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        apply.setCreatetime(sdf.format(new Date()));
-//
-//        insPayApplyService.insert(apply);
-//
-//        return HttpResult.ok("保存成功");
-//    }
+    /**
+     * 推广费提现申请
+     *
+     * @param userid
+     * @param amount
+     * @return
+     */
+    @PostMapping(value = "/extendApply")
+    public HttpResult extendApply(@RequestParam String userid, @RequestParam double amount) {
+        HttpResult httpResult = new HttpResult();
+        //推广账户总金额
+        double sumAmount = insCommissionService.sumAmount(" where t.refereescode=?", new Object[]{userid});
+        //已提现金额
+        double totalAmount = insPayApplyService.sumAmount(" where t.userid=? and t.applytype=?", new Object[]{userid, "B"});
+        double accountBalance = sumAmount - totalAmount;
+
+        if (amount > accountBalance) {
+            return HttpResult.error("可提现余额不足");
+        }
+        InsPayApply apply = new InsPayApply();
+        String applyno = IdGenerate.nextId();
+        SysUser user = sysUserService.getById(userid);
+        if (user == null) {
+            httpResult.setMsg("userId不存在");
+            return httpResult;
+        }
+        apply.setApplyno(applyno);
+        apply.setUserid(userid);
+        apply.setUsername(user.getName());
+        apply.setDeptid(user.getDeptId());
+        SysDept dept = sysDeptService.getById(user.getDeptId());
+        apply.setDeptname(dept == null ? "" : dept.getName());
+        BigDecimal decimal = new BigDecimal(accountBalance);
+        decimal = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
+        apply.setAccountbalance(decimal.doubleValue());
+        apply.setApplyamount(amount);
+        decimal = new BigDecimal(accountBalance - amount);
+        decimal = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
+        apply.setBalance(decimal.doubleValue());
+        apply.setDisrate("");
+
+        //查询详情信息
+        SysUserInfo userInfo = sysUserInfoService.getById(userid);
+        apply.setBankname(userInfo.getBankName());
+        apply.setAccountno(userInfo.getAccountno());
+        apply.setApplystatus("0"); //0申请中 1支付中 2已支付
+        apply.setApplytype("B");  //A跟单绩效  B推广佣金
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        apply.setCreatetime(sdf.format(new Date()));
+
+        insPayApplyService.insert(apply);
+
+        return HttpResult.ok("保存成功");
+    }
 
     /**
      * 提现账户
@@ -358,7 +397,7 @@ public class InsPayApplyController extends BaseController {
         AccountVo account = new AccountVo();
 
         //账户总金额
-        double sumAmount = insCompanyFeeService.sumAmount(" where t.userid=? and t.settlestatus=?", new Object[]{userid, "1"});
+        double sumAmount = insCompanyFeeService.sumAmount(" where t.userid=?", new Object[]{userid});
         //已提现金额
         double totalAmount = insPayApplyService.sumAmount(" where t.userid=? and t.applytype=?", new Object[]{userid, "A"});
         //可提现余额
@@ -378,57 +417,58 @@ public class InsPayApplyController extends BaseController {
         return httpResult;
     }
 
-//    /**
-//     * 提现申请
-//     *
-//     * @param userid
-//     * @param amount
-//     * @return
-//     */
-//    @PostMapping(value = "/applyPay")
-//    public HttpResult applyPay(@RequestParam String userid, @RequestParam double amount) {
-//        HttpResult httpResult = new HttpResult();
-//        //账户总金额
-//        double sumAmount = insCompanyFeeService.sumAmount(" where t.userid=? and t.settlestatus=?", new Object[]{userid, "1"});
-//        //已提现金额
-//        double applyAmount = insPayApplyService.sumAmount(" where t.userid=? and t.applytype=?", new Object[]{userid, "A"});
-//        double accountBalance = sumAmount - applyAmount;
-//        if (amount > accountBalance) {
-//            return HttpResult.error("可提现余额不足");
-//        }
-//        InsPayApply apply = new InsPayApply();
-//        String applyno = IdGenerate.nextId();
-//        SysUser user = sysUserService.getById(userid);
-//        if (user == null) {
-//            httpResult.setMsg("userId不存在");
-//            return httpResult;
-//        }
-//        apply.setApplyno(applyno);
-//        apply.setUserid(userid);
-//        apply.setUsername(user.getName());
-//        apply.setDeptid(user.getDeptId());
-//        SysDept dept = sysDeptService.getById(user.getDeptId());
-//        apply.setDeptname(dept == null ? "" : dept.getName());
-//        BigDecimal decimal = new BigDecimal(accountBalance);
-//        decimal = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
-//        apply.setAccountbalance(decimal.doubleValue());
-//        apply.setApplyamount(amount);
-//        decimal = new BigDecimal(accountBalance - amount);
-//        decimal = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
-//        apply.setBalance(decimal.doubleValue());
-//        apply.setDisrate("");
-//        EsmUserInternal userInternal = esmUserInternalService.getById(userid);
-//        apply.setBankname(userInternal.getBankname());
-//        apply.setAccountno(userInternal.getAccountno());
-//        apply.setApplystatus("0"); //0申请中 1支付中 2已支付
-//        apply.setApplytype("A");  //A跟单绩效  B推广佣金
-//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        apply.setCreatetime(sdf.format(new Date()));
-//
-//        insPayApplyService.insert(apply);
-//
-//        return HttpResult.ok("保存成功");
-//    }
+    /**
+     * 提现申请
+     *
+     * @param userid
+     * @param amount
+     * @return
+     */
+    @PostMapping(value = "/applyPay")
+    public HttpResult applyPay(@RequestParam String userid, @RequestParam double amount) {
+        HttpResult httpResult = new HttpResult();
+        //账户总金额
+        double sumAmount = insCompanyFeeService.sumAmount(" where t.userid=? ", new Object[]{userid});
+        //已提现金额
+        double applyAmount = insPayApplyService.sumAmount(" where t.userid=? and t.applytype=?", new Object[]{userid, "A"});
+        double accountBalance = sumAmount - applyAmount;
+        if (amount > accountBalance) {
+            return HttpResult.error("可提现余额不足");
+        }
+        InsPayApply apply = new InsPayApply();
+        String applyno = IdGenerate.nextId();
+        SysUser user = sysUserService.getById(userid);
+        if (user == null) {
+            httpResult.setMsg("userId不存在");
+            return httpResult;
+        }
+        apply.setApplyno(applyno);
+        apply.setUserid(userid);
+        apply.setUsername(user.getName());
+        apply.setDeptid(user.getDeptId());
+        SysDept dept = sysDeptService.getById(user.getDeptId());
+        apply.setDeptname(dept == null ? "" : dept.getName());
+        BigDecimal decimal = new BigDecimal(accountBalance);
+        decimal = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
+        apply.setAccountbalance(decimal.doubleValue());
+        apply.setApplyamount(amount);
+        decimal = new BigDecimal(accountBalance - amount);
+        decimal = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
+        apply.setBalance(decimal.doubleValue());
+        apply.setDisrate("");
+        //查询详情信息
+        SysUserInfo userInfo = sysUserInfoService.getById(userid);
+        apply.setBankname(userInfo.getBankName());
+        apply.setAccountno(userInfo.getAccountno());
+        apply.setApplystatus("0"); //0申请中 1支付中 2已支付
+        apply.setApplytype("A");  //A跟单绩效  B推广佣金
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        apply.setCreatetime(sdf.format(new Date()));
+
+        insPayApplyService.insert(apply);
+
+        return HttpResult.ok("保存成功");
+    }
 
     /**
      * 提现审核

+ 2 - 0
src/main/java/com/ydtech/modules/ins/dao/InsPayApplyDao.java

@@ -20,6 +20,8 @@ public interface InsPayApplyDao {
 
     public PageResult selectPaging(int pageNumber, int pageSize, String whereCase, Object[] paramValues);
 
+    public PageResult selectAccountPaging(int pageNumber, int pageSize, String whereCase, Object[] paramValues);
+
     public Integer insert(InsPayApply model);
 
     public Integer update(InsPayApply model);

+ 48 - 0
src/main/java/com/ydtech/modules/ins/dao/impl/InsPayApplyDaoImpl.java

@@ -4,6 +4,7 @@ import com.github.drinkjava2.jdialects.Dialect;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.ins.dao.InsPayApplyDao;
 import com.ydtech.modules.ins.model.InsPayApply;
+import com.ydtech.modules.ins.model.InsUserAccount;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowMapper;
@@ -58,6 +59,30 @@ public class InsPayApplyDaoImpl implements InsPayApplyDao {
         }
     }
 
+    public static class InsUserAccountRowMapper implements RowMapper {
+        public InsUserAccount mapRow(ResultSet resultSet, int rowNum) throws SQLException {
+            InsUserAccount model = new InsUserAccount();
+
+            model.setMobile(resultSet.getString("mobile"));
+            model.setUserid(resultSet.getString("userid"));
+            model.setUsername(resultSet.getString("username"));
+            model.setDeptid(resultSet.getString("deptid"));
+            model.setDeptname(resultSet.getString("deptname"));
+            model.setTotalfee(resultSet.getDouble("totalfee"));
+            model.setFxtotalfee(resultSet.getDouble("fxtotalfee"));
+            model.setApplyfee(resultSet.getDouble("applyfee"));
+            model.setPayamount(resultSet.getDouble("payamount"));
+            model.setApply(resultSet.getDouble("apply"));
+            model.setBalance(resultSet.getDouble("balance"));
+            model.setFxapplyfee(resultSet.getDouble("fxapplyfee"));
+            model.setFxpayamount(resultSet.getDouble("fxpayamount"));
+            model.setFxapply(resultSet.getDouble("fxapply"));
+            model.setFxbalance(resultSet.getDouble("fxbalance"));
+
+            return model;
+        }
+    }
+
     @Override
     public InsPayApply selectByPk(String orderno) {
         String sql = " select t.applyno,t.userid,t.username,t.deptid,t.deptname,t.accountbalance,t.applyamount,t.balance,t.disrate,t.bankname,t.accountno,t.createtime,t.paytime,t.auditid,t.auditname,t.applystatus,t.applytype from ins_pay_apply t  where applyno=? ";
@@ -124,6 +149,29 @@ public class InsPayApplyDaoImpl implements InsPayApplyDao {
         return pageResult;
     }
 
+    public PageResult selectAccountPaging(int pageNumber, int pageSize, String whereCase, Object[] paramValues) {
+
+        Dialect dialect = Dialect.guessDialect(dataSource);
+        String sql = dialect.pagin(pageNumber, pageSize, "select mobile,userid,username,deptid,deptname,totalfee,fxtotalfee,applyfee,payamount,apply,balance,fxapplyfee,fxpayamount,fxapply,fxbalance from v_user_account t  " + whereCase);
+
+        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+        List<InsUserAccount> recordList = jdbcTemplate.query(sql, paramValues, new InsUserAccountRowMapper());
+
+        int totalCount = countAccount(whereCase, paramValues);
+
+        PageResult pageResult = new PageResult(pageNumber, pageSize, totalCount, recordList);
+
+        return pageResult;
+    }
+
+    public Integer countAccount(String whereCase, Object[] paramValues) {
+        String sql = "select count(1) from v_user_account t " + whereCase;
+
+        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+
+        return jdbcTemplate.queryForObject(sql, paramValues, Integer.class);
+    }
+
 
     @Override
     public Integer insert(InsPayApply model) {

+ 140 - 0
src/main/java/com/ydtech/modules/ins/model/InsUserAccount.java

@@ -0,0 +1,140 @@
+package com.ydtech.modules.ins.model;
+
+public class InsUserAccount {
+
+    private String userid;
+    private String username;
+    private String mobile;
+    private String deptid;
+    private String deptname;
+    private double totalfee;
+    private double fxtotalfee;
+    private double applyfee;
+    private double payamount;
+    private double apply;
+    private double balance;
+    private double fxapplyfee;
+    private double fxpayamount;
+    private double fxapply;
+    private double fxbalance;
+
+    public String getUserid() {
+        return userid;
+    }
+
+    public void setUserid(String userid) {
+        this.userid = userid;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getDeptid() {
+        return deptid;
+    }
+
+    public void setDeptid(String deptid) {
+        this.deptid = deptid;
+    }
+
+    public String getDeptname() {
+        return deptname;
+    }
+
+    public void setDeptname(String deptname) {
+        this.deptname = deptname;
+    }
+
+    public double getTotalfee() {
+        return totalfee;
+    }
+
+    public void setTotalfee(double totalfee) {
+        this.totalfee = totalfee;
+    }
+
+    public double getFxtotalfee() {
+        return fxtotalfee;
+    }
+
+    public void setFxtotalfee(double fxtotalfee) {
+        this.fxtotalfee = fxtotalfee;
+    }
+
+    public double getApplyfee() {
+        return applyfee;
+    }
+
+    public void setApplyfee(double applyfee) {
+        this.applyfee = applyfee;
+    }
+
+    public double getPayamount() {
+        return payamount;
+    }
+
+    public void setPayamount(double payamount) {
+        this.payamount = payamount;
+    }
+
+    public double getApply() {
+        return apply;
+    }
+
+    public void setApply(double apply) {
+        this.apply = apply;
+    }
+
+    public double getBalance() {
+        return balance;
+    }
+
+    public void setBalance(double balance) {
+        this.balance = balance;
+    }
+
+    public double getFxapplyfee() {
+        return fxapplyfee;
+    }
+
+    public void setFxapplyfee(double fxapplyfee) {
+        this.fxapplyfee = fxapplyfee;
+    }
+
+    public double getFxpayamount() {
+        return fxpayamount;
+    }
+
+    public void setFxpayamount(double fxpayamount) {
+        this.fxpayamount = fxpayamount;
+    }
+
+    public double getFxapply() {
+        return fxapply;
+    }
+
+    public void setFxapply(double fxapply) {
+        this.fxapply = fxapply;
+    }
+
+    public double getFxbalance() {
+        return fxbalance;
+    }
+
+    public void setFxbalance(double fxbalance) {
+        this.fxbalance = fxbalance;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+}

+ 126 - 51
src/main/java/com/ydtech/modules/largescreen/controller/DataController.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.largescreen.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.beust.ah.A;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.largescreen.model.*;
 import com.ydtech.modules.largescreen.model.query.CompanyQuery;
@@ -16,7 +17,9 @@ import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 @Api(tags = "数据大屏")
 @RestController
@@ -29,17 +32,18 @@ public class DataController {
 
     /**
      * 保险公司成交数据
+     *
      * @param dataQuery
      * @return
      */
     @PostMapping("companySumDataChart")
-    public HttpResult companySumDataChart(@RequestBody(required=false) DataQuery dataQuery) {
+    public HttpResult companySumDataChart(@RequestBody(required = false) DataQuery dataQuery) {
         List<AgreementData> sumData = dataService.getCompanySumData(dataQuery);
         //转换格式
         int rows = 6;
         int columns = sumData.size();
         String[][] result = new String[rows][columns];
-        sumData.forEach(item->{
+        sumData.forEach(item -> {
             int i = sumData.indexOf(item);
             result[0][i] = item.getInsuranceCompany();
             result[1][i] = item.getJqPremium();
@@ -52,20 +56,11 @@ public class DataController {
     }
 
     @PostMapping("companySumData")
-    public HttpResult companySumData(@RequestBody(required=false) DataQuery dataQuery) {
+    public HttpResult companySumData(@RequestBody(required = false) DataQuery dataQuery) {
         List<AgreementData> sumData = dataService.getCompanySumData(dataQuery);
         String[][] result = new String[sumData.size()][7];
-//        int index = (int)Math.ceil(sumData.size()/6);
-//        int rows = 6;
-//        AgreementData[][] result = new AgreementData[index][rows];
-//        for(int i=0;i<index;i++){
-//
-//            int len = i==0 ? 6 : sumData.size() - ((i) * 6);
-//            for(int k=0;k<len;k++){
-//                result[i][k] = sumData.get(i*6+k);
-//            }
-//        }
-        sumData.forEach(item->{
+
+        sumData.forEach(item -> {
             int i = sumData.indexOf(item);
             result[i][0] = item.getInsuranceCompanyId();
             result[i][1] = item.getInsuranceCompany();
@@ -81,64 +76,67 @@ public class DataController {
 
     /**
      * 订单状态数据
+     *
      * @param dataQuery
      * @return
      */
     @PostMapping("orderStatusData")
-    public HttpResult orderStatusData(@RequestBody(required=false) DataQuery dataQuery) {
+    public HttpResult orderStatusData(@RequestBody(required = false) DataQuery dataQuery) {
         List<CompanyData> sumData = dataService.getCompanyOrderStatusData(dataQuery);
 
         //转换格式
         int rows = 6;
         int columns = sumData.size();
         String[][] result = new String[rows][columns];
-        sumData.forEach(item->{
+        sumData.forEach(item -> {
             int i = sumData.indexOf(item);
             result[0][i] = item.getCompanyName();
-            result[1][i] = checkOrderStatus(item.getOrderStatusData(),"0");
-            result[2][i] = checkOrderStatus(item.getOrderStatusData(),"1");
-            result[3][i] = checkOrderStatus(item.getOrderStatusData(),"2");
-            result[4][i] = checkOrderStatus(item.getOrderStatusData(),"3");
-            result[5][i] = checkOrderStatus(item.getOrderStatusData(),"4");
+            result[1][i] = checkOrderStatus(item.getOrderStatusData(), "0");
+            result[2][i] = checkOrderStatus(item.getOrderStatusData(), "1");
+            result[3][i] = checkOrderStatus(item.getOrderStatusData(), "2");
+            result[4][i] = checkOrderStatus(item.getOrderStatusData(), "3");
+            result[5][i] = checkOrderStatus(item.getOrderStatusData(), "4");
         });
         return HttpResult.ok(result);
     }
 
-    private String checkOrderStatus(List<OrderStatusData> orderStatusData,String status){
+    private String checkOrderStatus(List<OrderStatusData> orderStatusData, String status) {
         OrderStatusData orderStatusData1 = orderStatusData.stream()
                 .filter(item1 -> item1.getOrderStatusCode().equals(status))
                 .findFirst()
                 .orElse(null);
-        if(orderStatusData1 == null){
+        if (orderStatusData1 == null) {
             return "0";
-        }else{
+        } else {
             return String.valueOf(orderStatusData1.getSumOrderNum());
         }
     }
 
     /**
      * 获取山西地图数据
+     *
      * @param dataQuery
      * @return
      */
     @PostMapping("mapData")
-    public HttpResult mapData(@RequestBody(required=false) DataQuery dataQuery){
+    public HttpResult mapData(@RequestBody(required = false) DataQuery dataQuery) {
         List<MapData> mapData = dataService.getMapData(dataQuery);
         return HttpResult.ok(mapData);
     }
 
     /**
      * 获取一周内的数据
+     *
      * @return
      */
     @PostMapping("weekData")
-    public HttpResult weekData(){
+    public HttpResult weekData() {
         List<OrderStatusData> weekData = dataService.getWeekData();
         //转换格式
         int rows = 6;
         int columns = weekData.size();
         String[][] result = new String[rows][columns];
-        weekData.forEach(item->{
+        weekData.forEach(item -> {
             int i = weekData.indexOf(item);
             result[0][i] = item.getDate();
             result[1][i] = item.getJqPremium();
@@ -152,16 +150,17 @@ public class DataController {
 
     /**
      * 获取一月内的数据
+     *
      * @return
      */
     @PostMapping("monthData")
-    public HttpResult monthData(){
+    public HttpResult monthData() {
         List<OrderStatusData> monthData = dataService.getMonthData();
         //转换格式
         int rows = 6;
         int columns = monthData.size();
         String[][] result = new String[rows][columns];
-        monthData.forEach(item->{
+        monthData.forEach(item -> {
             int i = monthData.indexOf(item);
             result[0][i] = item.getDate();
             result[1][i] = item.getJqPremium();
@@ -174,13 +173,13 @@ public class DataController {
     }
 
     @PostMapping("yearData")
-    public HttpResult yearData(){
+    public HttpResult yearData() {
         List<OrderStatusData> yearData = dataService.getYearData();
         //转换格式
         int rows = 6;
         int columns = yearData.size();
         String[][] result = new String[rows][columns];
-        yearData.forEach(item->{
+        yearData.forEach(item -> {
             int i = yearData.indexOf(item);
             result[0][i] = item.getDate();
             result[1][i] = item.getJqPremium();
@@ -196,11 +195,10 @@ public class DataController {
      * 获取当天已承包数据
      */
     @PostMapping("todayData")
-    public HttpResult todayData(@RequestBody DataQuery dataQuery){
+    public HttpResult todayData(@RequestBody DataQuery dataQuery) {
         dataQuery.setOrderStatus("3");
         List<OrderStatusData> orderStatusData = dataService.getOrderStatusData(dataQuery);
-        if(orderStatusData.isEmpty())
-        {
+        if (orderStatusData.isEmpty()) {
             return HttpResult.error("当天无已承包数据");
         }
         ToDayData toDayData = JSON.parseObject(JSON.toJSONString(orderStatusData.get(0)), ToDayData.class);
@@ -211,27 +209,26 @@ public class DataController {
     }
 
 
-
-
     /**
      * 获取公司数据
+     *
      * @return
      */
     @PostMapping("companys")
-    public HttpResult companys(){
+    public HttpResult companys() {
         return HttpResult.ok(dataService.getCompanys());
     }
 
     @PostMapping("getCompanyDataById")
-    public HttpResult getCompanyDataById(@RequestBody CompanyQuery companyQuery){
+    public HttpResult getCompanyDataById(@RequestBody CompanyQuery companyQuery) {
         //查询单交
         companyQuery.setProductId("0330");
         CompanyInfoData djCompanyInfoData = new CompanyInfoData();
         List<CompanyInfoData> companySumData = dataService.getCompanyDataById(companyQuery);
-        companySumData.forEach(item->{
+        companySumData.forEach(item -> {
             item.setInsurance("单交");
             Double d = Double.parseDouble(item.getTaxSumPremium()) / Double.parseDouble(item.getJqSumPremium()) * 100;
-            item.setRatio(d.equals(Double.NaN) ? "0.00%" : String.format("%.2f%%",d));
+            item.setRatio(d.equals(Double.NaN) ? "0.00%" : String.format("%.2f%%", d));
 //            item.setRatio(String.format("%.2f%%",d));
             djCompanyInfoData.setJqSumPremium(
                     String.valueOf(Double.parseDouble(djCompanyInfoData.getJqSumPremium()) + Double.parseDouble(item.getJqSumPremium())));
@@ -249,18 +246,18 @@ public class DataController {
         //小计
         djCompanyInfoData.setInsurance("单交");
         djCompanyInfoData.setJqPremium("小计");
-        djCompanyInfoData.setTaxSumPremium(String.format("%.2f",Double.parseDouble(djCompanyInfoData.getTaxSumPremium())));
-        djCompanyInfoData.setJqSumPremium(String.format("%.2f",Double.parseDouble(djCompanyInfoData.getJqSumPremium())));
-        djCompanyInfoData.setSySumPremium(String.format("%.2f",Double.parseDouble(djCompanyInfoData.getSySumPremium())));
+        djCompanyInfoData.setTaxSumPremium(String.format("%.2f", Double.parseDouble(djCompanyInfoData.getTaxSumPremium())));
+        djCompanyInfoData.setJqSumPremium(String.format("%.2f", Double.parseDouble(djCompanyInfoData.getJqSumPremium())));
+        djCompanyInfoData.setSySumPremium(String.format("%.2f", Double.parseDouble(djCompanyInfoData.getSySumPremium())));
         companySumData.add(djCompanyInfoData);
         //查询交三
         CompanyInfoData jsCompanyInfoData = new CompanyInfoData();
         companyQuery.setProductId("0330034002");
         List<CompanyInfoData> companyDataById = dataService.getCompanyDataById(companyQuery);
-        companyDataById.forEach(item->{
+        companyDataById.forEach(item -> {
             item.setInsurance("交三");
             Double d = Double.parseDouble(item.getTaxSumPremium()) / Double.parseDouble(item.getJqSumPremium()) * 100;
-            item.setRatio(d.equals(Double.NaN) ? "0.00%" : String.format("%.2f%%",d));
+            item.setRatio(d.equals(Double.NaN) ? "0.00%" : String.format("%.2f%%", d));
             jsCompanyInfoData.setJqSumPremium(
                     String.valueOf(Double.parseDouble(jsCompanyInfoData.getJqSumPremium()) + Double.parseDouble(item.getJqSumPremium())));
             jsCompanyInfoData.setSySumPremium(
@@ -278,18 +275,21 @@ public class DataController {
         //小计
         jsCompanyInfoData.setInsurance("交三");
         jsCompanyInfoData.setJqPremium("小计");
-        jsCompanyInfoData.setTaxSumPremium(String.format("%.2f",Double.parseDouble(jsCompanyInfoData.getTaxSumPremium())));
-        jsCompanyInfoData.setJqSumPremium(String.format("%.2f",Double.parseDouble(jsCompanyInfoData.getJqSumPremium())));
-        jsCompanyInfoData.setSySumPremium(String.format("%.2f",Double.parseDouble(jsCompanyInfoData.getSySumPremium())));
+        jsCompanyInfoData.setTaxSumPremium(String.format("%.2f", Double.parseDouble(jsCompanyInfoData.getTaxSumPremium())));
+        jsCompanyInfoData.setJqSumPremium(String.format("%.2f", Double.parseDouble(jsCompanyInfoData.getJqSumPremium())));
+        jsCompanyInfoData.setSySumPremium(String.format("%.2f", Double.parseDouble(jsCompanyInfoData.getSySumPremium())));
         companySumData.add(jsCompanyInfoData);
 
         //合计
         CompanyInfoData sumCompanyInfoData = new CompanyInfoData();
         sumCompanyInfoData.setInsurance("合计");
         sumCompanyInfoData.setSumOrderNum(djCompanyInfoData.getSumOrderNum() + jsCompanyInfoData.getSumOrderNum());
-        sumCompanyInfoData.setTaxSumPremium(String.format("%.2f",Double.parseDouble(djCompanyInfoData.getTaxSumPremium()) + Double.parseDouble(jsCompanyInfoData.getTaxSumPremium())));
-        sumCompanyInfoData.setJqSumPremium(String.format("%.2f",Double.parseDouble(djCompanyInfoData.getJqSumPremium()) + Double.parseDouble(jsCompanyInfoData.getJqSumPremium())));
-        sumCompanyInfoData.setSySumPremium(String.format("%.2f",Double.parseDouble(djCompanyInfoData.getSySumPremium()) + Double.parseDouble(jsCompanyInfoData.getSySumPremium())));
+        sumCompanyInfoData.setTaxSumPremium(String.format("%.2f",
+                Double.parseDouble(djCompanyInfoData.getTaxSumPremium()) + Double.parseDouble(jsCompanyInfoData.getTaxSumPremium())));
+        sumCompanyInfoData.setJqSumPremium(String.format("%.2f",
+                Double.parseDouble(djCompanyInfoData.getJqSumPremium()) + Double.parseDouble(jsCompanyInfoData.getJqSumPremium())));
+        sumCompanyInfoData.setSySumPremium(String.format("%.2f",
+                Double.parseDouble(djCompanyInfoData.getSySumPremium()) + Double.parseDouble(jsCompanyInfoData.getSySumPremium())));
         sumCompanyInfoData.setRatio(
                 String.format("%.2f%%",
                         Double.parseDouble(sumCompanyInfoData.getTaxSumPremium()) / Double.parseDouble(sumCompanyInfoData.getJqSumPremium()) * 100)
@@ -298,4 +298,79 @@ public class DataController {
         return HttpResult.ok(companySumData);
     }
 
+
+    @PostMapping("listData")
+    public HttpResult listData(@RequestBody DataQuery dataQuery) {
+
+        if ((dataQuery.getStartDate() == null || "".equals(dataQuery.getStartDate())) && (dataQuery.getEndDate() == null || "".equals(dataQuery.getEndDate()))) {
+            // 获取当前日期
+            LocalDate currentDate = LocalDate.now();
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+            dataQuery.setStartDate(currentDate.format(formatter) + " 00:00:00");
+            dataQuery.setEndDate(currentDate.format(formatter) + " 23:59:59");
+        }
+
+        List<CompanyData> sumData = dataService.getCompanyOrderStatusData(dataQuery);
+        List<ListData> listDatas = new ArrayList<>();
+
+        sumData.forEach(item -> {
+            ListData listData = new ListData();
+            listData.setInsuranceCompany(item.getCompanyName());
+            listData.setInsuranceCompanyId(item.getCompanyId());
+            Optional<OrderStatusData> first =
+                    item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("3")).findFirst();
+            if (!first.isPresent()) {
+                listData.setJqPremium("0");
+                listData.setSyPremium("0");
+                listData.setTaxPremium("0");
+                listData.setSumPremium("0");
+            } else {
+                listData.setJqPremium(first.get().getJqPremium());
+                listData.setSyPremium(first.get().getSyPremium());
+                listData.setTaxPremium(first.get().getTaxPremium());
+                listData.setSumPremium(first.get().getSumPremium());
+            }
+
+            Optional<OrderStatusData> first1 =
+                    item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("0")).findFirst();
+            if (!first1.isPresent()) {
+                listData.setQuoting("0");
+            } else {
+                listData.setQuoting(first1.get().getSumOrderNum().toString());
+            }
+            Optional<OrderStatusData> first2 =
+                    item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("1")).findFirst();
+            if (!first2.isPresent()) {
+                listData.setUninsured("0");
+            } else {
+                listData.setUninsured(first2.get().getSumOrderNum().toString());
+            }
+            Optional<OrderStatusData> first3 =
+                    item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("2")).findFirst();
+            if (!first3.isPresent()) {
+                listData.setUnderwrited("0");
+            } else {
+                listData.setUnderwrited(first3.get().getSumOrderNum().toString());
+            }
+            Optional<OrderStatusData> first4 =
+                    item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("3")).findFirst();
+            if (!first4.isPresent()) {
+                listData.setInsured("0");
+            } else {
+                listData.setInsured(first4.get().getSumOrderNum().toString());
+            }
+            Optional<OrderStatusData> first5 =
+                    item.getOrderStatusData().stream().filter(x -> x.getOrderStatusCode().equals("4")).findFirst();
+            if (!first5.isPresent()) {
+                listData.setUnderwriteReturn("0");
+            } else {
+                listData.setUnderwriteReturn(first5.get().getSumOrderNum().toString());
+            }
+            listDatas.add(listData);
+        });
+
+        return HttpResult.ok(listDatas);
+    }
+
+
 }

+ 1 - 0
src/main/java/com/ydtech/modules/largescreen/model/CompanyData.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.largescreen.model;
 
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 48 - 0
src/main/java/com/ydtech/modules/largescreen/model/ListData.java

@@ -0,0 +1,48 @@
+package com.ydtech.modules.largescreen.model;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "大屏 综合数据")
+public class ListData implements Serializable {
+    private static final long serialVersionUID = 6098565535096545432L;
+
+    @ApiModelProperty(value = "保险公司id")
+    private String insuranceCompanyId;
+
+    @ApiModelProperty(value = "保险公司名称")
+    private String insuranceCompany;
+
+    @ApiModelProperty(value = "总保费")
+    private String sumPremium;
+
+    @ApiModelProperty(value = "交强总保费")
+    private String jqPremium;
+
+    @ApiModelProperty(value = "商业总保费")
+    private String syPremium;
+
+    @ApiModelProperty(value = "车船税总费用")
+    private String taxPremium;
+
+    @ApiModelProperty(value = "报价中")
+    private String quoting;
+
+    @ApiModelProperty(value = "待核保")
+    private String uninsured;
+
+    @ApiModelProperty(value = "已核保")
+    private String underwrited;
+
+    @ApiModelProperty(value = "已承保")
+    private String insured;
+
+    @ApiModelProperty(value = "核保退回")
+    private String underwriteReturn;
+
+}

+ 9 - 0
src/main/java/com/ydtech/modules/order/entity/api/dajia/response/ODR1011Response.java

@@ -29,6 +29,15 @@ public class ODR1011Response extends DaJiaBaseResponse {
 
         private static final long serialVersionUID = 2420666839215689701L;
 
+        @JsonProperty("status")
+        private String status;
+
+        @JsonProperty("message")
+        private String message;
+
+        @JsonProperty("result")
+        private String result;
+
         //二维码图片信息
         @JsonProperty("signInfoImage")
         private String signInfoImage;

+ 15 - 2
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -599,10 +599,23 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
                 }
                 //核保成功  获取支付二维码
                 //延迟3秒 等待生成
-                Thread.sleep(5000);
                 ODR1011Request odr1011Request = new ODR1011Request(insAreaCompany.getInsOrderNo(), daJiaConfigureParameters,
                         policyInfosDTOS);
-                ODR1011Response payNo = daJiaRequestApiComponents.getPayNo(odr1011Request);
+                ODR1011Response payNo = null;
+                boolean flag = true;
+                Integer frequencyControl = 0;
+                while(flag){
+                    payNo = daJiaRequestApiComponents.getPayNo(odr1011Request);
+                    if("0000".equals(payNo.getStatus())){
+                        flag = false;
+                    }
+                    frequencyControl += 1;
+                    if(frequencyControl > 20){
+                        throw new RuntimeException("获取支付二维码失败");
+                    }
+                    Thread.sleep(500);
+
+                }
                 if (payNo.getStatus().equals(Message.M0000.getCode())) {
                     //获取支付二维码成功  保存支付二维码
                     insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());

+ 12 - 0
src/main/java/com/ydtech/modules/protocol/constants/TaxSourceStatusConstants.java

@@ -0,0 +1,12 @@
+package com.ydtech.modules.protocol.constants;
+
+public class TaxSourceStatusConstants {
+
+    public static final String TAX_SOURCE_START = "1";
+    public static final String TAX_SOURCE_STOP = "0";
+
+    //排除部门
+    public static final String EXCLUDE_TYPE_DEPT = "1";
+    //排除车牌
+    public static final String EXCLUDE_TYPE_LICENSE = "2";
+}

+ 84 - 0
src/main/java/com/ydtech/modules/protocol/controller/TaxSourceController.java

@@ -0,0 +1,84 @@
+package com.ydtech.modules.protocol.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.protocol.entity.po.PtlNonCarInsuranceProduct;
+import com.ydtech.modules.protocol.entity.vo.TaxSourceVo;
+import com.ydtech.modules.protocol.service.PtlAreaLicenseService;
+import com.ydtech.modules.protocol.service.ITaxSourceService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.awt.print.Pageable;
+import java.util.List;
+
+@Api(tags = "税源管理")
+@RequestMapping("/tax/manager")
+@RestController
+public class TaxSourceController extends BaseController {
+    @Autowired
+    private PtlAreaLicenseService ptlAreaLicenseService;
+
+    @Autowired
+    private ITaxSourceService taxSourceService;
+
+
+    @GetMapping("/license")
+    @ApiOperation("车牌信息")
+    public HttpResult license() {
+        //只查山西的
+        return HttpResult.ok(ptlAreaLicenseService.getByParentNumber("14"));
+    }
+
+    @GetMapping("/insureCompany")
+    @ApiOperation("获取保险公司")
+    public HttpResult insureCompany(Integer pageNum,Integer pageSize) {
+        PageRequest pageRequest = new PageRequest();
+        pageRequest.setPageNum(pageNum);
+        pageRequest.setPageSize(pageSize);
+        Page page = PageRequest.buildPageRequest(pageRequest);
+        IPage<EsmInsCompany> insureCompany = taxSourceService.getInsureCompany(page);
+        PageResult pageResult = PageResult.buildPageResult(insureCompany);
+        return HttpResult.ok(pageResult);
+    }
+
+    @GetMapping("/agreement")
+    @ApiOperation("获取协议")
+    public HttpResult agreement(String companyId) {
+        String deptId = getDeptId();
+        String userId = getUserId();
+        return HttpResult.ok(taxSourceService.getAgreementByCompanyId(companyId,deptId,userId));
+    }
+
+    @GetMapping("/getTaxSource")
+    @ApiOperation("获取税源")
+    public HttpResult getTaxSource(String companyId){
+        TaxSourceVo taxSourceVos = taxSourceService.getTaxSource(companyId);
+        return HttpResult.ok(taxSourceVos);
+    }
+
+    @GetMapping("/getAllAgreement")
+    @ApiOperation("获取所有协议")
+    public HttpResult getAllAgreement(String license,String volume){
+        String deptId = getDeptId();
+        String userId = getUserId();
+        license = license.substring(0,2);
+        return HttpResult.ok(taxSourceService.getAgreementInsCompany(deptId,userId,license,volume));
+    }
+
+    @PostMapping("/saveTaxSource")
+    @ApiOperation("保存税源")
+    public HttpResult saveTaxSource(@RequestBody TaxSourceVo taxSourceVo) {
+        boolean result = taxSourceService.saveTaxSource(taxSourceVo);
+        return result? HttpResult.ok("保存税源成功"):HttpResult.error("保存税源失败");
+    }
+
+}

+ 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);
 
+
 }
 
 

+ 15 - 0
src/main/java/com/ydtech/modules/protocol/dao/TaxSourceExcludeMapper.java

@@ -0,0 +1,15 @@
+package com.ydtech.modules.protocol.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.protocol.entity.dto.TaxSourceDto;
+import com.ydtech.modules.protocol.entity.dto.TaxSourceExcludeDto;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface TaxSourceExcludeMapper extends BaseMapper<TaxSourceExcludeDto> {
+
+}

+ 21 - 0
src/main/java/com/ydtech/modules/protocol/dao/TaxSourceMapper.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.protocol.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.protocol.entity.dto.TaxSourceDto;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface TaxSourceMapper extends BaseMapper<TaxSourceDto> {
+
+    IPage<EsmInsCompany> getInsureCompany(Page page);
+
+    List<PtlAgreement> getAgreementByCompanyId(String companyId);
+
+}

+ 6 - 0
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementDto.java

@@ -28,4 +28,10 @@ public class PtlAgreementDto implements Serializable {
     @ApiModelProperty("承保描述")
     private String underwritingDescription;
 
+    @ApiModelProperty("是否是税源")
+    private String isTaxSource;
+
+    @ApiModelProperty("是否分配")
+    private String isAllocation;
+
 }

+ 9 - 0
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementInsCompanyDto.java

@@ -16,6 +16,15 @@ public class PtlAgreementInsCompanyDto extends EsmInsCompany implements Serializ
 
     private static final long serialVersionUID = -5790993730287966635L;
 
+    @ApiModelProperty("是否排除")
+    private String isExclude;
+
+    @ApiModelProperty("是否税源")
+    private String isTaxSource;
+
+    @ApiModelProperty("税源协议id")
+    private String TaxSourceAgreementId;
+
     @ApiModelProperty("协议信息")
     private List<PtlAgreementDto> agreement;
 

+ 26 - 0
src/main/java/com/ydtech/modules/protocol/entity/dto/TaxSourceDto.java

@@ -0,0 +1,26 @@
+package com.ydtech.modules.protocol.entity.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel("税源配置模版")
+@TableName("ptl_tax_source")
+public class TaxSourceDto {
+
+
+    private String id;
+
+    private String license;
+
+    private String agreementId;
+
+    private String insCompanyId;
+
+    private String insCompanyName;
+
+    private String isTaxSource;
+
+
+}

+ 21 - 0
src/main/java/com/ydtech/modules/protocol/entity/dto/TaxSourceExcludeDto.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.protocol.entity.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel("税源部门排除")
+@TableName("ptl_tax_source_exclude")
+public class TaxSourceExcludeDto {
+
+
+    private String id;
+
+    private String InsCompanyId;
+
+    private Integer type;
+
+    private String excludeInfo;
+
+}

+ 3 - 0
src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementPageVo.java

@@ -25,6 +25,9 @@ public class PtlAgreementPageVo extends BasePageVO {
     @ApiModelProperty("合作公司id")
     private String partnerCompaniesId;
 
+    @ApiModelProperty("是否有效")
+    private String validStatus;
+
     @ApiModelProperty("审核状态 0 申请审核 1 审核通过 2 审核不通过")
     private Integer auditStatus;
 

+ 53 - 0
src/main/java/com/ydtech/modules/protocol/entity/vo/TaxSourceVo.java

@@ -0,0 +1,53 @@
+package com.ydtech.modules.protocol.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TaxSourceVo {
+
+    /**
+     * 保险公司id
+     */
+    @TableField(value = "ins_company_id")
+    private String insCompanyId;
+    /**
+     * 保险公司名称
+     */
+    @TableField(value = "ins_company_name")
+    private String insCompanyName;
+    /**
+     * 税源配置信息
+     */
+    private List<AgreementTax> agreementTaxList;
+
+    /**
+     * 税源排除的部门
+     */
+    private String[] agreementTaxExcludeDeptList;
+
+    /**
+     * 税源排除的车牌号
+     */
+    private String[] agreementTaxExcludeLicenseList;
+
+    /**
+     * 税源配置信息
+     */
+    @Data
+    public static class AgreementTax{
+        private String agreementId;
+        private String isTaxSource;
+        /**
+         * 车牌号
+         */
+        private String license;
+    }
+
+    @Data
+    public static class AgreementTaxExclude{
+        private String excludeInfo;
+    }
+}

+ 15 - 0
src/main/java/com/ydtech/modules/protocol/service/ITaxSourceExcludeService.java

@@ -0,0 +1,15 @@
+package com.ydtech.modules.protocol.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.protocol.entity.dto.TaxSourceExcludeDto;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
+import com.ydtech.modules.protocol.entity.vo.TaxSourceVo;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface ITaxSourceExcludeService extends IService<TaxSourceExcludeDto> {
+
+}

+ 28 - 0
src/main/java/com/ydtech/modules/protocol/service/ITaxSourceService.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.protocol.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementDto;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
+import com.ydtech.modules.protocol.entity.dto.TaxSourceDto;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
+import com.ydtech.modules.protocol.entity.vo.TaxSourceVo;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface ITaxSourceService extends IService<TaxSourceDto> {
+
+    IPage<EsmInsCompany> getInsureCompany(Page page);
+
+    List<PtlAgreement> getAgreementByCompanyId(String companyId,String deptId,String userId);
+
+    boolean saveTaxSource(TaxSourceVo taxSourceVo);
+
+    TaxSourceVo getTaxSource(String companyId);
+    List<PtlAgreementInsCompanyDto> getAgreementInsCompany(String deptId, String userId,String license,String volume);
+}

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

@@ -133,6 +133,8 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
         List<String> lowerId = esmInsCompanyService.getByLowerId(ptlAgreementPageVo.getPartnerCompaniesId());
         // 审核状态
         wrapper.eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getAuditStatus()), PtlAgreement::getAuditStatus, ptlAgreementPageVo.getAuditStatus())
+                //是否有效
+                .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getValidStatus()), PtlAgreement::getValidStatus, ptlAgreementPageVo.getValidStatus())
                 // 供应商类型
                 .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getCompaniesType()), PtlAgreement::getCompaniesType, ptlAgreementPageVo.getCompaniesType())
                 // 合作公司

+ 25 - 0
src/main/java/com/ydtech/modules/protocol/service/impl/TaxSourceExcludeServiceImpl.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.protocol.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.protocol.dao.TaxSourceExcludeMapper;
+import com.ydtech.modules.protocol.dao.TaxSourceMapper;
+import com.ydtech.modules.protocol.entity.dto.TaxSourceDto;
+import com.ydtech.modules.protocol.entity.dto.TaxSourceExcludeDto;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
+import com.ydtech.modules.protocol.entity.vo.TaxSourceVo;
+import com.ydtech.modules.protocol.service.ITaxSourceExcludeService;
+import com.ydtech.modules.protocol.service.ITaxSourceService;
+import com.ydtech.modules.protocol.service.PtlAgreementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class TaxSourceExcludeServiceImpl extends ServiceImpl<TaxSourceExcludeMapper, TaxSourceExcludeDto> implements ITaxSourceExcludeService {
+
+}

+ 265 - 0
src/main/java/com/ydtech/modules/protocol/service/impl/TaxSourceServiceImpl.java

@@ -0,0 +1,265 @@
+package com.ydtech.modules.protocol.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementDto;
+import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
+import com.ydtech.modules.protocol.entity.dto.TaxSourceDto;
+import com.ydtech.modules.protocol.entity.dto.TaxSourceExcludeDto;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
+import com.ydtech.modules.protocol.entity.vo.TaxSourceVo;
+import com.ydtech.modules.protocol.service.ITaxSourceExcludeService;
+import com.ydtech.modules.protocol.service.ITaxSourceService;
+import com.ydtech.modules.protocol.service.PtlAgreementService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class TaxSourceServiceImpl extends ServiceImpl<TaxSourceMapper,TaxSourceDto> implements ITaxSourceService {
+
+    @Autowired
+    PtlAgreementService ptlAgreementService;
+
+    @Autowired
+    ITaxSourceExcludeService taxSourceExcludeService;
+
+    @Autowired
+    InsOrdersService insOrdersService;
+
+    @Autowired
+    SysUserRoleService sysUserRoleService;
+
+    @Autowired
+    EsmInsCompanyService esmInsCompanyService;
+
+
+    @Override
+    public IPage<EsmInsCompany> getInsureCompany(Page page) {
+        return baseMapper.getInsureCompany(page);
+    }
+
+    @Override
+    public List<PtlAgreement> getAgreementByCompanyId(String companyId,String deptId,String userId) {
+        List<PtlAgreementInsCompanyDto> agreementInsCompany = this.getAgreementInsCompany(deptId, userId);
+        List<String> agreementIds = new ArrayList<>();
+        for(PtlAgreementInsCompanyDto item : agreementInsCompany){
+            if(item.getId().equals(companyId)){
+                for(PtlAgreementDto agreementDto : item.getAgreement()){
+                    agreementIds.add(agreementDto.getId());
+                }
+            }
+        }
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.in("id",agreementIds);
+        List<PtlAgreement> list = ptlAgreementService.list(queryWrapper);
+        return list;
+    }
+
+    @Override
+    @Transactional
+    public boolean saveTaxSource(TaxSourceVo taxSourceVo) {
+        //删除排除的信息
+        taxSourceExcludeService.remove(new LambdaQueryWrapper<TaxSourceExcludeDto>().eq(TaxSourceExcludeDto::getInsCompanyId,taxSourceVo.getInsCompanyId()));
+        //删除税源配置信息
+        baseMapper.delete(new LambdaQueryWrapper<TaxSourceDto>().eq(TaxSourceDto::getInsCompanyId, taxSourceVo.getInsCompanyId()));
+        //组装税源数据
+        List<TaxSourceDto> dtos = new ArrayList<>();
+        List<TaxSourceExcludeDto> excludeDtos = new ArrayList<>();
+        taxSourceVo.getAgreementTaxList().forEach(agreementTax -> {
+            TaxSourceDto dto = new TaxSourceDto();
+            dto.setId(IdGenerate.nextId());
+            dto.setInsCompanyId(taxSourceVo.getInsCompanyId());
+            dto.setInsCompanyName(taxSourceVo.getInsCompanyName());
+            dto.setAgreementId(agreementTax.getAgreementId());
+            dto.setIsTaxSource(agreementTax.getIsTaxSource());
+            dto.setLicense(agreementTax.getLicense());
+            dtos.add(dto);
+        });
+        //组装排除的部门信息
+        for(String agreementTaxExclude : taxSourceVo.getAgreementTaxExcludeDeptList()){
+            TaxSourceExcludeDto dto = new TaxSourceExcludeDto();
+            dto.setId(IdGenerate.nextId());
+            dto.setType(Integer.parseInt(TaxSourceStatusConstants.EXCLUDE_TYPE_DEPT));
+            dto.setInsCompanyId(taxSourceVo.getInsCompanyId());
+            dto.setExcludeInfo(agreementTaxExclude);
+            excludeDtos.add(dto);
+        }
+//        taxSourceVo.getAgreementTaxExcludeDeptList().forEach(agreementTaxExclude -> {
+//            TaxSourceExcludeDto dto = new TaxSourceExcludeDto();
+//            dto.setId(IdGenerate.nextId());
+//            dto.setType(Integer.parseInt(TaxSourceStatusConstants.EXCLUDE_TYPE_DEPT));
+//            dto.setInsCompanyId(taxSourceVo.getInsCompanyId());
+//            dto.setExcludeInfo(agreementTaxExclude.getExcludeInfo());
+//            excludeDtos.add(dto);
+//        });
+        //组装排除的车牌号信息
+        for (String agreementTaxExclude : taxSourceVo.getAgreementTaxExcludeLicenseList()) {
+            TaxSourceExcludeDto dto = new TaxSourceExcludeDto();
+            dto.setId(IdGenerate.nextId());
+            dto.setType(Integer.parseInt(TaxSourceStatusConstants.EXCLUDE_TYPE_LICENSE));
+            dto.setInsCompanyId(taxSourceVo.getInsCompanyId());
+            dto.setExcludeInfo(agreementTaxExclude);
+            excludeDtos.add(dto);
+        }
+//        taxSourceVo.getAgreementTaxExcludeLicenseList().forEach(agreementTaxExclude -> {
+//            TaxSourceExcludeDto dto = new TaxSourceExcludeDto();
+//            dto.setId(IdGenerate.nextId());
+//            dto.setType(Integer.parseInt(TaxSourceStatusConstants.EXCLUDE_TYPE_LICENSE));
+//            dto.setInsCompanyId(taxSourceVo.getInsCompanyId());
+//            dto.setExcludeInfo(agreementTaxExclude.getExcludeInfo());
+//            excludeDtos.add(dto);
+//        });
+        this.saveBatch(dtos);
+        taxSourceExcludeService.saveBatch(excludeDtos);
+        return true;
+    }
+
+    @Override
+    public TaxSourceVo getTaxSource(String companyId) {
+        TaxSourceVo taxSourceVo = new TaxSourceVo();
+        //税源信息
+        List<TaxSourceDto> taxSourceDto = baseMapper.selectList(new LambdaQueryWrapper<TaxSourceDto>().eq(TaxSourceDto::getInsCompanyId, companyId));
+        //排除的部门信息
+        List<TaxSourceExcludeDto> taxSourceExcludeDepts = taxSourceExcludeService.list(new LambdaQueryWrapper<TaxSourceExcludeDto>()
+                .eq(TaxSourceExcludeDto::getInsCompanyId, companyId)
+                .eq(TaxSourceExcludeDto::getType, TaxSourceStatusConstants.EXCLUDE_TYPE_DEPT));
+        //排除的车牌号信息
+        List<TaxSourceExcludeDto> taxSourceExcludeLicense = taxSourceExcludeService.list(new LambdaQueryWrapper<TaxSourceExcludeDto>()
+                .eq(TaxSourceExcludeDto::getInsCompanyId, companyId)
+                .eq(TaxSourceExcludeDto::getType, TaxSourceStatusConstants.EXCLUDE_TYPE_LICENSE));
+
+        taxSourceVo.setInsCompanyId(companyId);
+
+        //税源信息转换
+        List<TaxSourceVo.AgreementTax> agreementTaxList = new ArrayList<>();
+        taxSourceDto.forEach(item -> {
+            TaxSourceVo.AgreementTax agreementTax = new TaxSourceVo.AgreementTax();
+            agreementTax.setAgreementId(item.getAgreementId());
+            agreementTax.setIsTaxSource(item.getIsTaxSource());
+            agreementTax.setLicense(item.getLicense());
+            agreementTaxList.add(agreementTax);
+        });
+        taxSourceVo.setAgreementTaxList(agreementTaxList);
+
+        //部门信息转换
+        List<String> agreementTaxExcludeDepts = new ArrayList<>();
+        taxSourceExcludeDepts.forEach(item -> {
+            agreementTaxExcludeDepts.add(item.getExcludeInfo());
+        });
+        taxSourceVo.setAgreementTaxExcludeDeptList(agreementTaxExcludeDepts.toArray(new String[agreementTaxExcludeDepts.size()]));
+
+        //车牌信息转换
+        List<String> agreementTaxExcludeLicense = new ArrayList<>();
+        taxSourceExcludeLicense.forEach(item -> {
+            agreementTaxExcludeLicense.add(item.getExcludeInfo());
+        });
+        taxSourceVo.setAgreementTaxExcludeLicenseList(agreementTaxExcludeLicense.toArray(new String[agreementTaxExcludeLicense.size()]));
+
+        return taxSourceVo;
+    }
+
+    public List<PtlAgreementInsCompanyDto> getAgreementInsCompany(String deptId, String userId) {
+        // 领导标志
+        SysUserRole userRole = sysUserRoleService.selectByUserId(userId);
+
+        if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString()) && !RoleConstants.R21.getCode().equals(userRole.getRoleId().toString())) { //团队长可查询下面所有人员订单
+            deptId = null;
+        }
+
+        List<PtlAgreementInsCompanyDto> agreementCompany = ptlAgreementService.getAgreementCompany(deptId);
+        return agreementCompany;
+    }
+
+    @Override
+    public List<PtlAgreementInsCompanyDto> getAgreementInsCompany(String deptId, String userId, String license,String volume) {
+        //查出所有协议
+        List<PtlAgreementInsCompanyDto> agreementInsCompany = this.getAgreementInsCompany(deptId, userId);
+        //排除的部门信息
+        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;
+    }
+
+
+}

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

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.esm.dao.EsmUserReferrerMapper">
+
+    <resultMap id="SysUserMap" type="com.ydtech.modules.admin.model.SysUser">
+    </resultMap>
+    <select id="getUserPage" resultMap="SysUserMap">
+        SELECT
+            su.*
+        FROM
+            esm_user_referrer eur
+        LEFT JOIN sys_user su ON su.id = eur.id
+        WHERE
+            su.id != 'admin'
+          AND su.STATUS = 1
+          AND referrer_id IS NOT NULL
+    </select>
+</mapper>

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

@@ -73,6 +73,7 @@
                  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 != ''">

+ 53 - 0
src/main/resources/mapper/modules/protocol/TaxSourceMapper.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.protocol.dao.TaxSourceMapper">
+
+    <resultMap id="CompanyResultMap" type="com.ydtech.modules.esm.model.EsmInsCompany">
+        <id property="id" column="id" jdbcType="VARCHAR"/>
+        <result property="code" column="code" jdbcType="VARCHAR"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
+        <result property="namesimple" column="namesimple" jdbcType="VARCHAR"/>
+        <result property="remark" column="remark" jdbcType="VARCHAR"/>
+        <result property="orderNum" column="order_num" jdbcType="INTEGER"/>
+        <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="lastUpdateBy" column="last_update_by" jdbcType="VARCHAR"/>
+        <result property="lastUpdateTime" column="last_update_time" jdbcType="TIMESTAMP"/>
+        <result property="cnName" column="cn_name" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="TINYINT"/>
+    </resultMap>
+
+    <resultMap id="AgreementResultMap" type="com.ydtech.modules.protocol.entity.po.PtlAgreement">
+        <id property="id" column="id" jdbcType="VARCHAR"/>
+        <result property="agreementName" column="agreement_name" jdbcType="VARCHAR"/>
+        <result property="insuranceCompanyId" column="agreement_name" jdbcType="VARCHAR"/>
+        <result property="insuranceCompany" column="insurance_company" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <select id="getInsureCompany" resultMap="CompanyResultMap">
+        SELECT
+            eic.*
+        FROM
+            esm_ins_company eic,
+            ptl_agreement pa
+        WHERE
+            eic.id = pa.insurance_company_id
+        GROUP BY
+            eic.id
+    </select>
+
+    <select id="getAgreementByCompanyId" resultMap="AgreementResultMap">
+        SELECT
+            *
+        FROM
+            ptl_agreement
+        WHERE
+            insurance_company_id = #{companyId}
+    </select>
+
+
+
+</mapper>