guoshilong
2022-09-23 ac7ac9f33247e2d413259aa436e06922eeb87511
数据统计人员统计
5 files added
126 ■■■■■ changed files
src/main/java/org/springblade/modules/userstatistics/controller/UserStatisticsController.java 36 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.xml 41 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/userstatistics/service/IUserStatisticsService.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/userstatistics/service/impl/UserStatisticsImpl.java 22 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/userstatistics/controller/UserStatisticsController.java
New file
@@ -0,0 +1,36 @@
package org.springblade.modules.userstatistics.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.modules.userstatistics.service.IUserStatisticsService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springblade.core.tool.api.R;
import java.util.List;
import java.util.Map;
/**
 * 数据统计 控制器
 *
 * @author GuoShiLong
 * @since 2022-09-22
 */
@RestController
@AllArgsConstructor
@RequestMapping("userstatistics/userstatistics")
@Api(value = "数据统计", tags = "数据统计接口")
public class UserStatisticsController{
    private final IUserStatisticsService userStatisticsService;
    @PostMapping("/getRepairTask")
    public R getRepairTask(Query query, String startTime, String endTime){
        IPage<List<Map<String,String>>> page = userStatisticsService.getRepairTask(Condition.getPage(query),startTime,endTime);
        return R.data(page);
    }
}
src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.java
New file
@@ -0,0 +1,15 @@
package org.springblade.modules.userstatistics.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public interface UserStatisticsMapper extends BaseMapper {
    List<Map<String,String>> getRepairTask(IPage page,@Param("startTime") String startTime, @Param("endTime") String endTime);
}
src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.xml
New file
@@ -0,0 +1,41 @@
<?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="org.springblade.modules.userstatistics.mapper.UserStatisticsMapper">
    <select id="getRepairTask" resultType="java.util.Map">
        SELECT DISTINCT
        user.id,name,
        IFNULL(a.num, 0) as wxDaiNum,
        IFNULL(b.num, 0) as wxOkNum,
        IFNULL(c.num, 0) as skDaiNum,
        IFNULL(d.num, 0) as skOkNum
        FROM blade_user user
        LEFT JOIN blade_role role ON user.role_id = role.id
        LEFT JOIN (
        SELECT DISTINCT re.to_user_id,count(*) as num FROM ins_repairsorder re WHERE re.is_deleted = 0 AND re.state = 1 -- 状态state = 1 派单的数据
        AND DATE_FORMAT(re.create_time,'%Y-%m-%d') &gt;= #{startTime}
        AND DATE_FORMAT(re.create_time,'%Y-%m-%d') &lt;= #{endTime}
        GROUP BY re.to_user_id
        ) a ON user.id = a.to_user_id
        LEFT JOIN (
        SELECT DISTINCT re.to_user_id,count(*) as num FROM ins_repairsorder re WHERE re.is_deleted = 0 AND re.state = 2 -- 状态state = 2 完成派单
        AND DATE_FORMAT(re.create_time,'%Y-%m-%d') &gt;= #{startTime}
        AND DATE_FORMAT(re.create_time,'%Y-%m-%d') &lt;= #{endTime}
        GROUP BY re.to_user_id
        ) b ON user.id = b.to_user_id
        LEFT JOIN (
        SELECT DISTINCT sk.to_user_id,count(*) as num FROM ins_taskinfo sk WHERE sk.is_deleted = 0 AND sk.state = 0
        AND DATE_FORMAT(sk.create_time,'%Y-%m-%d') &gt;= #{startTime}
        AND DATE_FORMAT(sk.create_time,'%Y-%m-%d') &lt;= #{endTime}
        GROUP BY sk.to_user_id
        ) c ON user.id = c.to_user_id
        LEFT JOIN (
        SELECT DISTINCT sk.to_user_id,count(*) as num FROM ins_taskinfo sk WHERE sk.is_deleted = 0 AND sk.state = 2
        AND DATE_FORMAT(sk.create_time,'%Y-%m-%d') &gt;= #{startTime}
        AND DATE_FORMAT(sk.create_time,'%Y-%m-%d') &lt;= #{endTime}
        GROUP BY sk.to_user_id
        ) d ON user.id = d.to_user_id
        WHERE (role.role_alias = 'wx' or  role.role_alias = 'xj') and user.is_deleted = 0
    </select>
</mapper>
src/main/java/org/springblade/modules/userstatistics/service/IUserStatisticsService.java
New file
@@ -0,0 +1,12 @@
package org.springblade.modules.userstatistics.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.taskinfo.vo.TaskInfoVO;
import java.util.List;
import java.util.Map;
public interface IUserStatisticsService {
    IPage<List<Map<String,String>>> getRepairTask(IPage page,String startTime, String endTime);
}
src/main/java/org/springblade/modules/userstatistics/service/impl/UserStatisticsImpl.java
New file
@@ -0,0 +1,22 @@
package org.springblade.modules.userstatistics.service.impl;
import org.springblade.modules.userstatistics.mapper.UserStatisticsMapper;
import org.springblade.modules.userstatistics.service.IUserStatisticsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import java.util.Map;
@Service
public class UserStatisticsImpl  implements IUserStatisticsService {
    @Autowired
    UserStatisticsMapper userStatisticsMapper;
    @Override
    public IPage<List<Map<String,String>>> getRepairTask(IPage page,String startTime, String endTime) {
        return page.setRecords(userStatisticsMapper.getRepairTask(page,startTime,endTime));
    }
}