Ver código fonte

统计详情

caiyaru 2 anos atrás
pai
commit
f695e9ce28

+ 4 - 2
src/main/java/com/ydtech/modules/admin/service/impl/AppCustomerManagementImpl.java

@@ -76,8 +76,10 @@ public class AppCustomerManagementImpl implements AppCustomerManagementService {
         SysUserInfo sysUserInfo = sysUserInfoService.getById(userId);
         SysUserTeamInfoDto sysUserTeamInfoDto = new SysUserTeamInfoDto(sysUser, dept, organization, sysUserInfo);
         SysUserTrack sysUserTrack = sysUserTrackService.getLastTime(userId);
-        sysUserTeamInfoDto.setApproveTime(sysUserTrack.getApproveTime());
-        sysUserTeamInfoDto.setApproveBy(sysUserTrack.getApproveBy());
+        if (sysUserTrack != null) {
+            sysUserTeamInfoDto.setApproveTime(sysUserTrack.getApproveTime());
+            sysUserTeamInfoDto.setApproveBy(sysUserTrack.getApproveBy());
+        }
         return HttpResult.ok(sysUserTeamInfoDto);
     }
 }

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

@@ -223,4 +223,19 @@ public class EsmUserController extends BaseController {
         return HttpResult.ok(list);
     }
 
+
+    /**
+     * 团队业绩统计-指定用户查询
+     *
+     * @param record
+     * @return
+     */
+    @PostMapping("/queryUserCountForUser")
+    public HttpResult<List<EsmUserPolicyForUserVO>> queryUserCountForUser(@RequestBody TeamUserQryVO record){
+        if (StringUtils.isNullOrEmpty(record.getId()) || StringUtils.isNullOrEmpty(record.getStartdate()) ||
+                StringUtils.isNullOrEmpty(record.getEnddate())) {
+            return HttpResult.error("起止时间/用户id不能为空!");
+        }
+        return HttpResult.ok(esmUserReferrerService.queryUserCountForUser(record));
+    }
 }

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

@@ -12,6 +12,7 @@ import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
 import com.ydtech.modules.esm.model.QueryChannel;
 import com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO;
+import com.ydtech.modules.esm.model.vo.EsmUserPolicyForUserVO;
 import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -221,4 +222,7 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
      *  @Description: 查询天数数据
      */
     List<EmployeeIncreaseReportDto> employeeIncreaseReportDay(HashMap<String,Object> map);
+
+
+    List<EsmUserPolicyForUserVO> queryOrderCountForUser(String userId,String startDate, String endDate);
 }

+ 30 - 0
src/main/java/com/ydtech/modules/esm/model/vo/EsmUserPolicyForUserVO.java

@@ -0,0 +1,30 @@
+package com.ydtech.modules.esm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("团队管理展示-明细-人员明细")
+public class EsmUserPolicyForUserVO implements Serializable {
+
+    private static final long serialVersionUID = 5053893395186078389L;
+
+    private String companyId;//保险公司id
+    @ApiModelProperty(value = "保险公司名称")
+    private String companyName;//保险公司名称
+    @ApiModelProperty(value = "出单笔数")
+    private int ordernum;//出单笔数
+    @ApiModelProperty(value = "核保笔数")
+    private int policynum;//核保笔数
+    @ApiModelProperty(value = "签单保费")
+    private double sumpremium;//签单保费
+    @ApiModelProperty(value = "报价次数")
+    private int bjpolicynum;//报价次数
+    @ApiModelProperty(value = "报价金额")
+    private double bjsumpremium;//报价金额
+
+
+}

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

@@ -13,10 +13,7 @@ import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.base.model.vo.PageVo;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
 import com.ydtech.modules.esm.model.QueryChannel;
-import com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO;
-import com.ydtech.modules.esm.model.vo.EsmUserCountVO;
-import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
-import com.ydtech.modules.esm.model.vo.TeamUserQryVO;
+import com.ydtech.modules.esm.model.vo.*;
 import com.ydtech.modules.order.entity.BasePageResult;
 
 import java.util.List;
@@ -77,7 +74,7 @@ public interface EsmUserReferrerService extends IService<EsmUserReferrer> {
      **/
     BasePageResult<SysUserTeamDto> getTeamUser(AppCustomerManagementQueryVo managementQueryVo, String userId);
 
-
+    public List<EsmUserPolicyForUserVO> queryUserCountForUser(TeamUserQryVO record);
 }
 
 

+ 12 - 4
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java

@@ -18,10 +18,7 @@ import com.ydtech.modules.base.model.vo.PageVo;
 import com.ydtech.modules.esm.dao.EsmUserReferrerMapper;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
 import com.ydtech.modules.esm.model.QueryChannel;
-import com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO;
-import com.ydtech.modules.esm.model.vo.EsmUserCountVO;
-import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
-import com.ydtech.modules.esm.model.vo.TeamUserQryVO;
+import com.ydtech.modules.esm.model.vo.*;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.utils.StringUtils;
@@ -468,6 +465,17 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
     }
 
 
+
+    /**
+     * 人员团队业绩统计--指定业务员查询
+     *
+     * @return
+     */
+    @Override
+    public List<EsmUserPolicyForUserVO> queryUserCountForUser(TeamUserQryVO record) {
+        return this.baseMapper.queryOrderCountForUser(record.getId(), record.getStartdate(), record.getEnddate());
+    }
+
 }
 
 

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

@@ -224,4 +224,70 @@
             </if>
         GROUP BY  CONCAT(YEAR ( us.create_time ),'-',LPAD( MONTH ( us.create_time ), 2, '0' ),'-',LPAD( DAY ( us.create_time ), 2, '0' ),' ',LPAD( HOUR ( us.create_time ), 2, '0' ))
     </select>
+
+
+    <select id="queryOrderCountForUser" resultType="com.ydtech.modules.esm.model.vo.EsmUserPolicyForUserVO">
+        select a.companyId as companyId,
+               a.companyName as companyName,
+               a.policynum as bjpolicynum,
+               a.sumpremium as bjsumpremium,
+               b.policynum as ordernum,
+               b.sumpremium as sumpremium,
+               c.policynum as policynum
+        from (
+                 SELECT
+                     iac.company_id AS companyId,
+                     iac.inscompany AS companyName,
+                     COALESCE ( count( iac.company_id ), 0 ) AS policynum,
+                     COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
+                 FROM
+                     sys_user su
+                         LEFT JOIN ins_orders io ON io.userid = su.id
+                         AND io.createtime BETWEEN #{startDate} AND #{endDate}
+                         LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
+                 WHERE
+                     su.id = #{userId}
+                 GROUP BY
+                     iac.company_id,
+                     iac.inscompany
+             ) a left join
+             (
+                 SELECT
+                     iac.company_id AS companyId,
+                     iac.inscompany AS companyName,
+                     COALESCE ( count( iac.company_id ), 0 ) AS policynum,
+                     COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
+                 FROM
+                     sys_user su
+                         LEFT JOIN ins_orders io ON io.userid = su.id
+                         AND io.createtime BETWEEN #{startDate} AND #{endDate}
+                         LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
+                         AND iac.orderstatus = 3
+                 WHERE
+                     su.id = #{userId}
+                 GROUP BY
+                     iac.company_id,
+                     iac.inscompany
+             )b on a.companyId = b.companyId
+             left join
+             (
+                 SELECT
+                     iac.company_id AS companyId,
+                     iac.inscompany AS companyName,
+                     COALESCE ( count( iac.company_id ), 0 ) AS policynum,
+                     COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
+                 FROM
+                     sys_user su
+                         LEFT JOIN ins_orders io ON io.userid = su.id
+                         AND io.createtime BETWEEN #{startDate} AND #{endDate}
+                         LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
+                         AND iac.orderstatus = 2
+                 WHERE
+                     su.id = #{userId}
+                 GROUP BY
+                     iac.company_id,
+                     iac.inscompany
+             )c on a.companyId = c.companyId
+        where a.companyId is not null
+    </select>
 </mapper>