| src/main/java/org/springblade/modules/userstatistics/controller/UserStatisticsController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.xml | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/userstatistics/service/IUserStatisticsService.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/userstatistics/service/impl/UserStatisticsImpl.java | ●●●●● 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') >= #{startTime} AND DATE_FORMAT(re.create_time,'%Y-%m-%d') <= #{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') >= #{startTime} AND DATE_FORMAT(re.create_time,'%Y-%m-%d') <= #{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') >= #{startTime} AND DATE_FORMAT(sk.create_time,'%Y-%m-%d') <= #{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') >= #{startTime} AND DATE_FORMAT(sk.create_time,'%Y-%m-%d') <= #{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)); } }