Răsfoiți Sursa

Merge branch 'team_yeji' into test

guoweisong 2 ani în urmă
părinte
comite
8f2b7fd6bd

+ 23 - 4
src/main/java/com/ydtech/modules/esm/controller/EsmUserController.java

@@ -14,10 +14,7 @@ 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.vo.EsmTeamPolicyVO;
-import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
-import com.ydtech.modules.esm.model.vo.TeamUserQryVO;
-import com.ydtech.modules.esm.model.vo.TeamUserVO;
+import com.ydtech.modules.esm.model.vo.*;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
@@ -139,6 +136,28 @@ public class EsmUserController extends BaseController {
 
     }
 
+    /**
+     * 团队业绩统计
+     *
+     * @param record
+     * @return
+     */
+    @PostMapping("/queryUserCount")
+    public HttpResult<EsmUserCountVO> queryUserCount(@RequestBody TeamUserQryVO record){
+        if (StringUtils.isNullOrEmpty(record.getStartdate()) || StringUtils.isNullOrEmpty(record.getEnddate())) {
+            return HttpResult.error("起止时间不能为空!");
+        }
+        String userid =getUserId();//获取登录用户
+        record.setId(userid);
+        SysUserRole sysUser=sysUserRoleService.query().eq("user_id",userid).list().get(0);
+
+        if(!"20".equals(String.valueOf(sysUser.getRoleId()))&&!"21".equals(String.valueOf(sysUser.getRoleId()))){
+            return HttpResult.error("只有团队长和代理角色可以查询");
+        }
+        EsmUserCountVO esmUserCountVO = esmUserReferrerService.queryUserCount(record);
+
+        return HttpResult.ok(esmUserCountVO);
+    }
 
     /**
      * 团队业绩统计

+ 84 - 7
src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java

@@ -6,10 +6,13 @@ 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.vo.EsmTeamPolicyVO;
+import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
 
+import java.util.Date;
 import java.util.List;
 
 
@@ -85,21 +88,75 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
             "</script>"})
     List<SysReferrerVo> selectReferrerByAffiliation(@Param("page") PageDto pageDto);
 
+    /**
+     * 向下三级
+     * @param userId
+     * @return
+     */
     @Select("select a.id " +
             "from esm_user_referrer a left join sys_user b on a.id=b.id " +
-            "where a.referrer_id=#{userId} and b.status=1 " +
+            "where a.referrer_id=#{userId}  and a.id!= #{userId} and b.status=1 " +
             "union  " +
             "select a.id " +
             "from esm_user_referrer a left join sys_user b on a.id=b.id " +
-            "where a.referrer_id in (select id from esm_user_referrer t where t.referrer_id=#{userId}) " +
-            "and b.status=1  " +
-            "union  " +
+            "where a.referrer_id in (select id from esm_user_referrer t where t.referrer_id=#{userId}  and t.id!= #{userId}) " +
+            "and b.status=1  "
+           /* +"union  " +
             "select a.id  " +
             "from esm_user_referrer a left join sys_user b on a.id=b.id " +
             "where a.referrer_id in (select id from esm_user_referrer t where t.referrer_id in ( " +
-            "select id from esm_user_referrer t2 where t2.referrer_id=#{userId})) " +
-            "and b.status=1 ")
+            "select id from esm_user_referrer t2 where t2.referrer_id=#{userId}  and t2.id!= #{userId})) " +
+            "and b.status=1 "*/
+    )
     List<String> getIdDown3(@Param("userId") String userId);
+    /**
+     * 向下三级--新注册人员(审批中)
+     * @param userId
+     * @return
+     */
+    @Select("select a.id " +
+            "from esm_user_referrer a left join sys_user b on a.id=b.id " +
+            "where a.referrer_id=#{userId}  and a.id!= #{userId} and b.status=2 " +
+            "union  " +
+            "select a.id " +
+            "from esm_user_referrer a left join sys_user b on a.id=b.id " +
+            "where a.referrer_id in (select id from esm_user_referrer t where t.referrer_id=#{userId}  and t.id!= #{userId}) " +
+            "and b.status=2  " )
+    List<String> getIdDown3_regist(@Param("userId") String userId);
+    /**
+     * 向下第1级
+     * @param userId
+     * @return
+     */
+    @Select("select a.id " +
+            "from esm_user_referrer a left join sys_user b on a.id=b.id " +
+            "where a.referrer_id=#{userId} and a.id!= #{userId} "+
+            "and b.status in ('0','1') "
+           )
+    List<String> getIdDown_1(@Param("userId") String userId);
+    /**
+     * 向下第2级
+     * @param userId
+     * @return
+     */
+    @Select( "select a.id " +
+            "from esm_user_referrer a left join sys_user b on a.id=b.id " +
+            "where a.referrer_id in (select id from esm_user_referrer t where t.referrer_id=#{userId} and t.id!= #{userId} ) "+
+            "and b.status in ('0','1')  "
+    )
+    List<String> getIdDown_2(@Param("userId") String userId);
+    /**
+     * 向下第3级
+     * @param userId
+     * @return
+     */
+    @Select( "select a.id  " +
+            "from esm_user_referrer a  left join sys_user b on a.id=b.id " +
+            "where a.referrer_id in (select id from esm_user_referrer t where t.referrer_id in ( " +
+            "select id from esm_user_referrer t2 where t2.referrer_id=#{userId} and t2.id!= #{userId} )) "+
+            "and b.status in ('0','1') "
+    )
+    List<String> getIdDown_3(@Param("userId") String userId);
 
     @Select({"<script>", "select count(1) ", referrerFromSql,referrerWhereSql, "</script>"})
     int countReferrerByAffiliation(@Param("page") PageDto pageDto);
@@ -107,5 +164,25 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
     @Select("select id,referrer_id,referrer_name,`level`,affiliation from esm_user_referrer t where t.affiliation=#{affiliation}")
     List<EsmUserReferrer> queryList(@Param("affiliation") String affiliation);
 
-
+    @Select({"<script>","select a.userid,a.username,sum(a.ordernum) ordernum,sum(a.policynum) policynum,sum(a.sumpremium) sumpremium from  v_user_order2 a " +
+            "where DATE_FORMAT(orderdate, '%Y-%m-%d') " +
+            "between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')" +
+            "and userid in " +
+            "<foreach item='item' index='index' collection='userList'  open='(' separator=',' close=')'> " +
+            " #{item}" +
+            "</foreach > " +
+            "group by a.userid,a.username"
+            , "</script>"})
+    List<EsmUserPolicyVO> queryOrderCount(List<String> userList, String startDate, String endDate);
+
+    @Select({"<script>","select sum(sumpremium) sumpremium " +
+            "from  v_user_order2 a " +
+            "where DATE_FORMAT(orderdate, '%Y-%m-%d') " +
+            "between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')" +
+            "and userid in " +
+            "<foreach item='item' index='index' collection='userList'  open='(' separator=',' close=')'> " +
+            " #{item}" +
+            "</foreach > "
+            , "</script>"})
+    EsmTeamPolicyVO queryOrderCountHz(List<String> userList, String startDate, String endDate);
 }

+ 10 - 32
src/main/java/com/ydtech/modules/esm/model/vo/EsmTeamPolicyVO.java

@@ -1,46 +1,24 @@
 package com.ydtech.modules.esm.model.vo;
 
-import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
+import java.io.Serializable;
 
+@Data
+@ApiModel("团队管理展示-汇总")
 public class EsmTeamPolicyVO implements Serializable {
 
     private static final long serialVersionUID = 5053893395186078389L;
-
+    @ApiModelProperty(value = "团队级别")
     private String teamlevel;//团队级别
+    @ApiModelProperty(value = "团队人数")
     private int teamnum;//团队人数
+    @ApiModelProperty(value = "签单保费")
     private double sumpremium;//签单保费
+    @ApiModelProperty(value = "出单人力")
     private int usernum;//出单人力
 
-    public String getTeamlevel() {
-        return teamlevel;
-    }
-
-    public void setTeamlevel(String teamlevel) {
-        this.teamlevel = teamlevel;
-    }
-
-    public int getTeamnum() {
-        return teamnum;
-    }
-
-    public void setTeamnum(int teamnum) {
-        this.teamnum = teamnum;
-    }
-
-    public double getSumpremium() {
-        return sumpremium;
-    }
-
-    public void setSumpremium(double sumpremium) {
-        this.sumpremium = sumpremium;
-    }
-
-    public int getUsernum() {
-        return usernum;
-    }
 
-    public void setUsernum(int usernum) {
-        this.usernum = usernum;
-    }
 }

+ 33 - 0
src/main/java/com/ydtech/modules/esm/model/vo/EsmUserCountVO.java

@@ -0,0 +1,33 @@
+package com.ydtech.modules.esm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel("团队管理展示")
+public class EsmUserCountVO implements Serializable {
+
+    private static final long serialVersionUID = 5053893395186078389L;
+    @ApiModelProperty(value = "汇总信息")
+    private List<EsmTeamPolicyVO> hzList;//汇总信息
+    //明细数据
+    @ApiModelProperty(value = "明细数据--汇总")
+    private List<EsmUserPolicyVO> userPolicyList ;//汇总详细
+    @ApiModelProperty(value = "明细数据--本级")
+    private List<EsmUserPolicyVO> userPolicyList0 ;//本级详细
+    @ApiModelProperty(value = "明细数据--一级")
+    private List<EsmUserPolicyVO> userPolicyList1 ;//一级详细
+    @ApiModelProperty(value = "明细数据--二级")
+    private List<EsmUserPolicyVO> userPolicyList2 ;//二级详细
+    /*@ApiModelProperty(value = "明细数据--三级")
+    private List<EsmUserPolicyVO> userPolicyList3 ;//三级详细*/
+    @ApiModelProperty(value = "明细数据--临时团队")
+    private List<EsmUserPolicyVO> userPolicyList9 ;//临时团队
+
+
+
+}

+ 11 - 39
src/main/java/com/ydtech/modules/esm/model/vo/EsmUserPolicyVO.java

@@ -1,56 +1,28 @@
 package com.ydtech.modules.esm.model.vo;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
 import java.io.Serializable;
 import java.util.Date;
 
-
+@Data
+@ApiModel("团队管理展示-明细")
 public class EsmUserPolicyVO implements Serializable {
 
     private static final long serialVersionUID = 5053893395186078389L;
 
     private String teamlevel;//团队等级
+    private String id;//人员id
+    @ApiModelProperty(value = "人员名称")
     private String username;//人员名称
+    @ApiModelProperty(value = "核保笔数")
     private int ordernum;//核保笔数
+    @ApiModelProperty(value = "出单笔数")
     private int policynum;//出单笔数
+    @ApiModelProperty(value = "签单保费")
     private double sumpremium;//签单保费
 
-    public String getTeamlevel() {
-        return teamlevel;
-    }
-
-    public void setTeamlevel(String teamlevel) {
-        this.teamlevel = teamlevel;
-    }
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    public int getOrdernum() {
-        return ordernum;
-    }
-
-    public void setOrdernum(int ordernum) {
-        this.ordernum = ordernum;
-    }
-
-    public int getPolicynum() {
-        return policynum;
-    }
-
-    public void setPolicynum(int policynum) {
-        this.policynum = policynum;
-    }
-
-    public double getSumpremium() {
-        return sumpremium;
-    }
 
-    public void setSumpremium(double sumpremium) {
-        this.sumpremium = sumpremium;
-    }
 }

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

@@ -9,7 +9,9 @@ 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.vo.EsmTeamPolicyVO;
+import com.ydtech.modules.esm.model.vo.EsmUserCountVO;
 import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
+import com.ydtech.modules.esm.model.vo.TeamUserQryVO;
 
 import java.util.List;
 import java.util.Map;
@@ -43,8 +45,8 @@ public interface EsmUserReferrerService extends IService<EsmUserReferrer> {
     public HttpResult<PageVo<SysReferrerVo>> gainReferrerPage(PageDto<SysReferrerVo> pageDto);
 
     public List<EsmUserPolicyVO> countUserPolicy(String wCase, Object[] paramValues);
-
     public List<EsmTeamPolicyVO> countTeamPolicy(String whereCase, Object[] paramValues);
+    public EsmUserCountVO queryUserCount(TeamUserQryVO record);
 
     public List<EsmUserReferrer> queryList(String affiliation);
 }

+ 111 - 0
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java

@@ -14,7 +14,9 @@ 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.vo.EsmTeamPolicyVO;
+import com.ydtech.modules.esm.model.vo.EsmUserCountVO;
 import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
+import com.ydtech.modules.esm.model.vo.TeamUserQryVO;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -261,6 +263,115 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
 
         return recordList;
     }
+    /**
+     * 人员团队业绩统计--所有业务员都可查询
+     * @return
+     */
+    @Override
+    public EsmUserCountVO queryUserCount(TeamUserQryVO record) {
+        EsmUserCountVO esmUserCountVO=new EsmUserCountVO();
+        List<EsmTeamPolicyVO> hzList =new ArrayList<>();
+        List<EsmUserPolicyVO> userPolicyList=new ArrayList<>();
+        List<EsmUserPolicyVO> userPolicyList0=new ArrayList<>();
+        List<EsmUserPolicyVO> userPolicyList1=new ArrayList<>();
+        List<EsmUserPolicyVO> userPolicyList2=new ArrayList<>();
+        List<EsmUserPolicyVO> userPolicyList3=new ArrayList<>();
+        EsmUserReferrer esmUserReferrer=getById(record.getId());
+        if(esmUserReferrer!=null){
+            List<String> userList1 =new ArrayList<>();
+            List<String> userList2 =new ArrayList<>();
+            List<String> userList3 =new ArrayList<>();
+            //本级信息
+            //明细数据加工
+            List<String> userList0 = new ArrayList<>();
+            userList0.add(esmUserReferrer.getId());
+            userPolicyList0= this.baseMapper.queryOrderCount(userList0,record.getStartdate(),record.getEnddate());
+            //汇总数据加工
+            EsmTeamPolicyVO esmTeamPolicyVO0=this.baseMapper.queryOrderCountHz(userList0,record.getStartdate(),record.getEnddate());
+            if(esmTeamPolicyVO0==null){
+                esmTeamPolicyVO0=new EsmTeamPolicyVO();
+                esmTeamPolicyVO0.setSumpremium(0);
+                esmTeamPolicyVO0.setUsernum(0);
+            }else{
+                esmTeamPolicyVO0.setUsernum(1);
+            }
+            esmTeamPolicyVO0.setTeamlevel("本人");
+            esmTeamPolicyVO0.setTeamnum(1);
+            hzList.add(esmTeamPolicyVO0);
+
+            // 一级团队信息
+            userList1 = this.baseMapper.getIdDown_1(esmUserReferrer.getId());
+            EsmTeamPolicyVO esmTeamPolicyVO1=new EsmTeamPolicyVO();
+            esmTeamPolicyVO1.setTeamlevel("一级团队");
+            if(userList1!=null && userList1.size()>0){
+                userPolicyList1=this.baseMapper.queryOrderCount(userList1,record.getStartdate(),record.getEnddate());
+                EsmTeamPolicyVO esmTeamPolicyVO1_t=this.baseMapper.queryOrderCountHz(userList1,record.getStartdate(),record.getEnddate());
+                if(esmTeamPolicyVO1_t!=null){
+                    esmTeamPolicyVO1.setSumpremium(esmTeamPolicyVO1_t.getSumpremium());
+                    esmTeamPolicyVO1.setUsernum(userPolicyList1.size());//出单人力
+                }
+                esmTeamPolicyVO1.setTeamnum(userList1.size());//团队人数
+                // 二级团队信息
+                userList2 = this.baseMapper.getIdDown_2(esmUserReferrer.getId());
+                EsmTeamPolicyVO esmTeamPolicyVO2=new EsmTeamPolicyVO();
+                esmTeamPolicyVO2.setTeamlevel("二级团队");
+                if(userList2!=null && userList2.size()>0){
+                    userPolicyList2=this.baseMapper.queryOrderCount(userList2,record.getStartdate(),record.getEnddate());
+                    EsmTeamPolicyVO esmTeamPolicyVO2_t=this.baseMapper.queryOrderCountHz(userList2,record.getStartdate(),record.getEnddate());
+                    if(esmTeamPolicyVO2_t!=null){
+                        esmTeamPolicyVO2.setSumpremium(esmTeamPolicyVO2_t.getSumpremium());
+                        esmTeamPolicyVO2.setUsernum(userPolicyList2.size());
+                    }
+                    esmTeamPolicyVO2.setTeamnum(userList2.size());
+                    // 三级团队信息
+                    /*userList3 = this.baseMapper.getIdDown_3(esmUserReferrer.getId());
+                    if(userList3!=null && userList3.size()>0){
+                        userPolicyList3=this.baseMapper.queryOrderCount(userList3);
+                        EsmTeamPolicyVO esmTeamPolicyVO3=this.baseMapper.queryOrderCountHz(userList3);
+                        esmTeamPolicyVO3.setTeamlevel("三级团队");
+                        esmTeamPolicyVO3.setTeamnum(userList3.size());
+                        hzList.add(esmTeamPolicyVO3);
+                    }*/
+                }
+                hzList.add(esmTeamPolicyVO2);
+            }
+            hzList.add(esmTeamPolicyVO1);
+
+            //临时团队
+            List<String> registList= this.baseMapper.getIdDown3_regist(record.getId());
+            EsmTeamPolicyVO esmTeamPolicyVO9=new EsmTeamPolicyVO();
+            esmTeamPolicyVO9.setTeamlevel("临时团队");
+            esmTeamPolicyVO9.setTeamnum(registList==null?0:registList.size());
+            hzList.add(esmTeamPolicyVO9);
+            //汇总
+            List<String> userList=new ArrayList<>();
+            userList.addAll(userList0);
+            userList.addAll(userList1);
+            userList.addAll(userList2);
+            userList.addAll(registList);
+            userPolicyList=this.baseMapper.queryOrderCount(userList,record.getStartdate(),record.getEnddate());
+            EsmTeamPolicyVO esmTeamPolicyVO=new EsmTeamPolicyVO();
+            EsmTeamPolicyVO esmTeamPolicyVO_t=this.baseMapper.queryOrderCountHz(userList,record.getStartdate(),record.getEnddate());
+            if(esmTeamPolicyVO_t!=null){
+                esmTeamPolicyVO.setSumpremium(esmTeamPolicyVO_t.getSumpremium());
+                esmTeamPolicyVO.setUsernum(userPolicyList.size());
+            }
+            esmTeamPolicyVO.setTeamlevel("汇总");
+            esmTeamPolicyVO.setTeamnum(userList.size());
+            hzList.add(esmTeamPolicyVO);
+
+            esmUserCountVO.setHzList(hzList);
+            esmUserCountVO.setUserPolicyList(userPolicyList);
+            esmUserCountVO.setUserPolicyList0(userPolicyList0);
+            esmUserCountVO.setUserPolicyList1(userPolicyList1);
+            esmUserCountVO.setUserPolicyList2(userPolicyList2);
+        }else{
+            throw new SystemException("内部错误");
+        }
+
+        return esmUserCountVO;
+    }
+
 
     public List<EsmUserReferrer> queryList(String affiliation){
         return super.baseMapper.queryList(affiliation);