Explorar o código

团队业绩统计新增接口

qinfenglong %!s(int64=2) %!d(string=hai) anos
pai
achega
e90ddeaab0

+ 47 - 0
src/main/java/com/ydtech/modules/esm/controller/EsmUserController.java

@@ -14,6 +14,8 @@ import com.ydtech.modules.admin.service.SysUserRoleService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.model.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.service.EsmUserReferrerService;
@@ -143,4 +145,49 @@ public class EsmUserController extends BaseController {
     }
 
 
+    /**
+     * 团队业绩统计
+     *
+     * @param record
+     * @return
+     */
+    @PostMapping("/queryTeamPolicy")
+    public HttpResult queryTeamPolicy(@RequestBody TeamUserQryVO record){
+        StringBuffer whereStr = new StringBuffer();
+        ArrayList<String> params = new ArrayList<String>();
+        if (StringUtils.isNullOrEmpty(record.getStartdate()) || StringUtils.isNullOrEmpty(record.getEnddate())) {
+            return HttpResult.error("起止时间不能为空!");
+        }
+
+        params.add(record.getId());
+        params.add(record.getId());
+        params.add(record.getStartdate());
+        params.add(record.getEnddate());
+
+        List<EsmTeamPolicyVO> list = esmUserReferrerService.countTeamPolicy(whereStr.toString(), params.toArray());
+
+        return HttpResult.ok(list);
+    }
+
+    /**
+     * 人员业绩统计
+     *
+     * @param record
+     * @return
+     */
+    @PostMapping("/queryUserPolicy")
+    public HttpResult countUserPolicy(@RequestBody TeamUserQryVO record){
+        StringBuffer whereStr = new StringBuffer();
+        ArrayList<String> params = new ArrayList<String>();
+        whereStr.append(" where a.affiliation=? ");
+        params.add(record.getId());
+        if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
+            whereStr.append("and a.createtime between ? and ?");
+            params.add(record.getStartdate());
+            params.add(record.getEnddate());
+        }
+        List<EsmUserPolicyVO> list = esmUserReferrerService.countUserPolicy(whereStr.toString(), params.toArray());
+
+        return HttpResult.ok(list);
+    }
 }

+ 46 - 0
src/main/java/com/ydtech/modules/esm/model/vo/EsmTeamPolicyVO.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.esm.model.vo;
+
+import java.io.Serializable;
+
+
+public class EsmTeamPolicyVO implements Serializable {
+
+    private static final long serialVersionUID = 5053893395186078389L;
+
+    private String teamlevel;//团队级别
+    private int teamnum;//团队人数
+    private double sumpremium;//签单保费
+    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;
+    }
+}

+ 56 - 0
src/main/java/com/ydtech/modules/esm/model/vo/EsmUserPolicyVO.java

@@ -0,0 +1,56 @@
+package com.ydtech.modules.esm.model.vo;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+public class EsmUserPolicyVO implements Serializable {
+
+    private static final long serialVersionUID = 5053893395186078389L;
+
+    private String teamlevel;//团队等级
+    private String username;//人员名称
+    private int ordernum;//核保笔数
+    private int policynum;//出单笔数
+    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;
+    }
+}

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

@@ -7,6 +7,8 @@ import com.ydtech.modules.admin.model.vo.SysReferrerVo;
 import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.base.model.vo.PageVo;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO;
+import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
 
 import java.util.List;
 import java.util.Map;
@@ -39,6 +41,10 @@ public interface EsmUserReferrerService extends IService<EsmUserReferrer> {
      */
     public PageVo<SysReferrerVo> gainReferrerPage(PageDto pageDto);
 
+    public List<EsmUserPolicyVO> countUserPolicy(String wCase, Object[] paramValues);
+
+    public List<EsmTeamPolicyVO> countTeamPolicy(String whereCase, Object[] paramValues);
+
 }
 
 

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

@@ -12,11 +12,18 @@ import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.base.model.vo.PageVo;
 import com.ydtech.modules.esm.dao.EsmUserReferrerMapper;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO;
+import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.RowCallbackHandler;
 import org.springframework.stereotype.Service;
 
+import javax.sql.DataSource;
+import java.sql.ResultSet;
+import java.sql.SQLException;
 import java.util.*;
 
 
@@ -24,7 +31,8 @@ import java.util.*;
 public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMapper, EsmUserReferrer>
         implements EsmUserReferrerService {
 
-
+    @Autowired
+    public DataSource dataSource;
     @Autowired
     private SysUserService sysUserService;
     @Autowired
@@ -140,6 +148,85 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
 
         return pageVo;
     }
+
+
+    /**
+     * 人员业绩统计
+     * @param whereCase
+     * @param paramValues
+     * @return
+     */
+    public List<EsmUserPolicyVO> countUserPolicy(String whereCase, Object[] paramValues){
+        List<EsmUserPolicyVO> recordList = new ArrayList<EsmUserPolicyVO>();
+
+        String sql = "select a.`level` teamlevel,b.name username,\n" +
+                "sum(case when orderstatus in (1,2,3,4) then 1  else 0 end) ordernum,\n" +
+                "sum(case when orderstatus=3 then 1 else 0 end) policynum,\n" +
+                "sum(case when orderstatus=3 then sumpremium else 0 end) sumpremium\n" +
+                "from v_user_order a left join sys_user b on a.id=b.id " + whereCase;
+        sql += " group by a.`level`,b.name order by a.`level`";
+
+        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+
+        jdbcTemplate.query(sql, paramValues,
+                new RowCallbackHandler() {
+                    @Override
+                    public void processRow(ResultSet resultSet) throws SQLException {
+                        EsmUserPolicyVO model = new EsmUserPolicyVO();
+
+                        model.setTeamlevel(resultSet.getString("teamlevel"));
+                        model.setUsername(resultSet.getString("username"));
+                        model.setOrdernum(resultSet.getInt("ordernum"));
+                        model.setPolicynum(resultSet.getInt("policynum"));
+                        model.setSumpremium(resultSet.getDouble("sumpremium"));
+
+                        recordList.add(model);
+                    }
+                });
+
+        return recordList;
+    }
+
+    /**
+     * 团队业绩统计
+     * @param whereCase
+     * @param paramValues
+     * @return
+     */
+    public List<EsmTeamPolicyVO> countTeamPolicy(String whereCase, Object[] paramValues){
+        List<EsmTeamPolicyVO> recordList = new ArrayList<EsmTeamPolicyVO>();
+
+        String sql = "select teamlevel,sum(teamnum) teamnum, sum(sumpremium) sumpremium,sum(usernum) usernum from \n" +
+                "(select a.`level` teamlevel,count(distinct id) teamnum, 0 sumpremium,0 usernum\n" +
+                "from v_user_order a\n" +
+                "where a.affiliation=?\n" +
+                "group by a.`level`\n" +
+                "union all \n" +
+                "select a.`level` teamlevel,0 teamnum, sum(sumpremium) sumpremium,count(distinct id) usernum\n" +
+                "from v_user_order a\n" +
+                "where a.affiliation=? and a.orderstatus=3\n" +
+                "and a.createtime between ? and ? \n" +
+                "group by a.`level`) t group by teamlevel";
+
+        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+
+        jdbcTemplate.query(sql, paramValues,
+                new RowCallbackHandler() {
+                    @Override
+                    public void processRow(ResultSet resultSet) throws SQLException {
+                        EsmTeamPolicyVO model = new EsmTeamPolicyVO();
+
+                        model.setTeamlevel(resultSet.getString("teamlevel"));
+                        model.setTeamnum(resultSet.getInt("teamnum"));
+                        model.setUsernum(resultSet.getInt("usernum"));
+                        model.setSumpremium(resultSet.getDouble("sumpremium"));
+
+                        recordList.add(model);
+                    }
+                });
+
+        return recordList;
+    }
 }