From ac7ac9f33247e2d413259aa436e06922eeb87511 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 23 Sep 2022 09:40:35 +0800
Subject: [PATCH] 数据统计人员统计
---
src/main/java/org/springblade/modules/userstatistics/controller/UserStatisticsController.java | 36 ++++++++++++
src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.java | 15 +++++
src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.xml | 41 +++++++++++++
src/main/java/org/springblade/modules/userstatistics/service/IUserStatisticsService.java | 12 ++++
src/main/java/org/springblade/modules/userstatistics/service/impl/UserStatisticsImpl.java | 22 +++++++
5 files changed, 126 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/modules/userstatistics/controller/UserStatisticsController.java b/src/main/java/org/springblade/modules/userstatistics/controller/UserStatisticsController.java
new file mode 100644
index 0000000..c280f04
--- /dev/null
+++ b/src/main/java/org/springblade/modules/userstatistics/controller/UserStatisticsController.java
@@ -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);
+ }
+}
diff --git a/src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.java b/src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.java
new file mode 100644
index 0000000..bf173bf
--- /dev/null
+++ b/src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.java
@@ -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);
+}
diff --git a/src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.xml b/src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.xml
new file mode 100644
index 0000000..05a7a04
--- /dev/null
+++ b/src/main/java/org/springblade/modules/userstatistics/mapper/UserStatisticsMapper.xml
@@ -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>
diff --git a/src/main/java/org/springblade/modules/userstatistics/service/IUserStatisticsService.java b/src/main/java/org/springblade/modules/userstatistics/service/IUserStatisticsService.java
new file mode 100644
index 0000000..d476b54
--- /dev/null
+++ b/src/main/java/org/springblade/modules/userstatistics/service/IUserStatisticsService.java
@@ -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);
+}
diff --git a/src/main/java/org/springblade/modules/userstatistics/service/impl/UserStatisticsImpl.java b/src/main/java/org/springblade/modules/userstatistics/service/impl/UserStatisticsImpl.java
new file mode 100644
index 0000000..27bd53e
--- /dev/null
+++ b/src/main/java/org/springblade/modules/userstatistics/service/impl/UserStatisticsImpl.java
@@ -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));
+ }
+}
--
Gitblit v1.9.3