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') &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>
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