From 94e3a209bb9a31c4ddbd31494bb1628f6fe2e96e Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期三, 12 十月 2022 17:54:49 +0800
Subject: [PATCH] 新增首页工单 办事指南排行榜接口   导办人员排行榜接口  组织排行榜接口  新增办事指南统计接口   导办人员统计接口  组织胖行榜统计接口

---
 flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java  |    1 
 flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml               |    2 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java  |   71 +++++++
 flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java     |   67 +++++++
 flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml                 |  105 +++++++++++
 flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java              |   19 ++
 flower_city/src/main/resources/mapper/SysUserMapper.xml                        |    3 
 flower_city/src/main/java/com/dg/core/controller/UserController.java           |    4 
 flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java            |   24 ++
 flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java |  134 +++++++++++++-
 flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java       |   69 +++++++
 flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java    |   27 +++
 12 files changed, 508 insertions(+), 18 deletions(-)

diff --git a/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java b/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
index b696e0d..03a9ca0 100644
--- a/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
+++ b/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
@@ -2,10 +2,8 @@
 
 import com.dg.core.ResultData;
 import com.dg.core.db.gen.entity.*;
-import com.dg.core.service.IClassifyAdministrationService;
-import com.dg.core.service.IGuideEvolveService;
-import com.dg.core.service.IGuideRepairOrderService;
-import com.dg.core.service.ITransactionEventService;
+import com.dg.core.service.*;
+import com.dg.core.util.TableDataInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -15,14 +13,12 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
+import java.util.*;
 
 @Api(tags = {"首页统计接口"})
 @RestController
 @RequestMapping("/Home")
-public class HomeStatisticsController
+public class HomeStatisticsController extends BaseController
 {
     //导办工单接口
     @Autowired
@@ -38,6 +34,18 @@
 
     @Autowired
     ITransactionEventService iTransactionEventService;
+
+    @Autowired
+    HomeStatisticsService homeStatisticsService;
+
+
+    @Autowired
+    com.dg.core.service.ISysUserService IUserService;
+
+
+    @Autowired
+    IOrganizationChartService iOrganizationChartService;
+
 
     @ApiOperation("首页统计不同状态工单数")
     @GetMapping("/getWorkOrder")
@@ -203,15 +211,119 @@
     }
 
 
-    @ApiOperation("组织排行榜")
+
+
+
+    @ApiOperation("组织排行榜  type 1 安评价   2 按办结量")
     @GetMapping("/getOrganization")
-    public ResultData getOrganization()
+    public TableDataInfo getOrganization(@RequestParam("type") String type)
     {
+        List<OrganizationEntity> guidePlates=homeStatisticsService.getDepartment();
 
+        if(StringUtils.equals("1",type))
+        {
+            for (OrganizationEntity bean:guidePlates)
+            {
+                bean.setNum(0+"");
+                List<String> ids=iOrganizationChartService.getIds(bean.getId()+"");
 
-        return ResultData.success();
+                //总评分
+                String scoreNum=homeStatisticsService.organizationScore(ids)+"";
+                int score=0;
+                if(!StringUtils.isEmpty(scoreNum) &&  !StringUtils.equals("null",scoreNum))
+                {
+                    score=Integer.valueOf(scoreNum);
+                }
+
+                //总数量
+                int allNum=homeStatisticsService.organizationNum(ids);
+
+                if(allNum>0 && score>0)
+                {
+                    java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.##");//传入格式模板
+                    String workEfficiency=weekDf.format((float)(score/allNum));
+                    bean.setNum(workEfficiency);
+                }
+            }
+        }
+        else
+        {
+            for (OrganizationEntity bean:guidePlates)
+            {
+                bean.setNum(0+"");
+                List<String> ids=iOrganizationChartService.getIds(bean.getId()+"");
+                //总数量
+                int allNum=homeStatisticsService.organizationNum(ids);
+                if(allNum>0)
+                {
+                    bean.setNum(allNum+"");
+                }
+            }
+        }
+
+        OrganizationEntity entity=null;
+        for(int i = 0 ;i< guidePlates.size() -1; i++) {
+            for (int j = 0; j < guidePlates.size() - 1 - i; j++) {
+
+                if(Float.valueOf(guidePlates.get(j).getNum())>Float.valueOf(guidePlates.get(j+1).getNum()))
+                {
+                    entity=guidePlates.get(j);
+                    guidePlates.set(j,guidePlates.get(j+1));
+                    guidePlates.set(j+1,entity);
+                }
+            }
+        }
+
+        Collections.reverse(guidePlates);
+
+        return getDataTable(guidePlates,guidePlates.size());
     }
 
 
 
+    @ApiOperation("导办人员排行榜 type 1 安评价   2 按办结量 3 按超时")
+    @GetMapping("/getGuidePlate")
+    public TableDataInfo getGuidePlate(@RequestParam("type") String type)
+    {
+        int allNum=homeStatisticsService.staffNum();
+
+        if(StringUtils.equals("1",type))
+        {
+            //安评价
+            return getDataTable(homeStatisticsService.score(),allNum);
+        }
+        else if(StringUtils.equals("2",type))
+        {
+            //2 按办结量
+            return getDataTable(homeStatisticsService.guidePlatePeople(),allNum);
+        }
+        else
+        {
+            //3 按超时
+            return getDataTable(homeStatisticsService.timeout(),allNum);
+        }
+    }
+
+
+
+    @ApiOperation("办事指南排行榜 type 1 按浏览量   2 按办结量")
+    @GetMapping("/getGuidance")
+    public TableDataInfo getGuidance(@RequestParam("type") String type)
+    {
+        int allNum=homeStatisticsService.countWork();
+        if(StringUtils.equals("1",type))
+        {
+            return getDataTable(homeStatisticsService.guidanceBrowse(),allNum);
+        }
+        else
+        {
+            return getDataTable(homeStatisticsService.guidanceTransaction(),allNum);
+        }
+
+    }
+
+
+
+
+
 }
diff --git a/flower_city/src/main/java/com/dg/core/controller/UserController.java b/flower_city/src/main/java/com/dg/core/controller/UserController.java
index fa3d6ca..46bae82 100644
--- a/flower_city/src/main/java/com/dg/core/controller/UserController.java
+++ b/flower_city/src/main/java/com/dg/core/controller/UserController.java
@@ -212,7 +212,7 @@
             return error("该账户已存在!");
         }
 
-        config.setUserType("1");
+        config.setUserType("3");
 
         config.setCreateTime(LocalDateTime.now());
         config.setUpdateTime(LocalDateTime.now());
@@ -241,7 +241,7 @@
             return error("账户不能为空");
         }
 
-        config.setUserType("1");
+        config.setUserType("3");
 
         return toAjax(IUserService.updateConfig(config));
     }
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java
new file mode 100644
index 0000000..82defe2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java
@@ -0,0 +1,19 @@
+package com.dg.core.db.gen.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel("办事指南表")
+@Data
+public class Guidance implements Serializable
+{
+
+    @ApiModelProperty(name = "name", value = "名称")
+    private String name;
+
+    @ApiModelProperty(name = "num", value = "内容")
+    private String num;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java
new file mode 100644
index 0000000..2207971
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java
@@ -0,0 +1,24 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel("导办工单进展记录表")
+@Data
+public class GuidePlate implements Serializable
+{
+
+    @ApiModelProperty(name = "userName", value = "用户名")
+    private String userName;
+
+    @ApiModelProperty(name = "departmentNmae", value = "部门")
+    private String departmentNmae;
+
+    @ApiModelProperty(name = "num", value = "内容")
+    private String num;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java
new file mode 100644
index 0000000..9b211ca
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java
@@ -0,0 +1,27 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel("组织排行榜")
+@Data
+public class OrganizationEntity implements Serializable {
+    @ApiModelProperty("id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+
+    @ApiModelProperty(name = "departmentNmae", value = "部门")
+    private String departmentNmae;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "num", value = "内容")
+    private String num="0";
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java
new file mode 100644
index 0000000..fbaac79
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java
@@ -0,0 +1,71 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dg.core.db.gen.entity.Guidance;
+import com.dg.core.db.gen.entity.GuidePlate;
+import com.dg.core.db.gen.entity.OrganizationEntity;
+
+import java.util.List;
+
+public interface HomeStatisticsMapper  extends BaseMapper<GuidePlate>
+{
+    /**
+     * 按办结量排序
+     * @return
+     */
+    List<GuidePlate> guidePlatePeople();
+
+    /**
+     *按评分排序
+     * @return
+     */
+    List<GuidePlate> score();
+
+    /**
+     * 按超时
+     * @return
+     */
+    List<GuidePlate> timeout();
+
+    /**
+     * 导办人员统计数
+     * @return
+     */
+    Integer staffNum();
+
+    /**
+     * 办事指南数量统计
+     * @return
+     */
+    Integer countWork();
+
+    /**
+     * 获取一级部门
+     * @return
+     */
+    List<OrganizationEntity> getDepartment();
+
+    /**
+     * 评分
+     * @return
+     */
+    Integer organizationScore(List<String> ids);
+
+    /**
+     * 办结量
+     * @return
+     */
+    Integer organizationNum(List<String> ids);
+
+    /**
+     * 办事指南根据导办数量排序
+     * @return
+     */
+    List<Guidance> guidanceTransaction();
+
+    /**
+     * 办事指南根据浏览数量排序
+     * @return
+     */
+    List<Guidance> guidanceBrowse();
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java b/flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java
new file mode 100644
index 0000000..05ba5ab
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java
@@ -0,0 +1,69 @@
+package com.dg.core.service;
+
+import com.dg.core.db.gen.entity.Guidance;
+import com.dg.core.db.gen.entity.GuidePlate;
+import com.dg.core.db.gen.entity.OrganizationEntity;
+
+import java.util.List;
+
+public interface HomeStatisticsService
+{
+    /**
+     * 按办结量排序
+     * @return
+     */
+    List<GuidePlate> guidePlatePeople();
+
+    /**
+     *按评分排序
+     * @return
+     */
+    List<GuidePlate> score();
+
+    /**
+     * 按超时
+     * @return
+     */
+    List<GuidePlate> timeout();
+
+    /**
+     * 评分
+     * @return
+     */
+    Integer organizationScore(List<String> ids);
+
+    /**
+     * 办结量
+     * @return
+     */
+    Integer organizationNum(List<String> ids);
+    /**
+     * 获取一级部门
+     * @return
+     */
+    List<OrganizationEntity> getDepartment();
+
+    /**
+     * 办事指南根据导办数量排序
+     * @return
+     */
+    List<Guidance> guidanceTransaction();
+
+    /**
+     * 办事指南根据浏览数量排序
+     * @return
+     */
+    List<Guidance> guidanceBrowse();
+
+    /**
+     * 导办人员统计数
+     * @return
+     */
+    Integer staffNum();
+
+    /**
+     * 办事指南数量统计
+     * @return
+     */
+    Integer countWork();
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java
new file mode 100644
index 0000000..8980cbb
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java
@@ -0,0 +1,67 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.Guidance;
+import com.dg.core.db.gen.entity.GuidePlate;
+import com.dg.core.db.gen.entity.OrganizationEntity;
+import com.dg.core.db.gen.mapper.HomeStatisticsMapper;
+import com.dg.core.service.HomeStatisticsService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+@Service
+public class HomeStatisticsImpl extends ServiceImpl<HomeStatisticsMapper, GuidePlate>
+        implements HomeStatisticsService
+{
+
+    @Override
+    public List<GuidePlate> guidePlatePeople() {
+        return baseMapper.guidePlatePeople();
+    }
+
+    @Override
+    public List<GuidePlate> score() {
+        return baseMapper.score();
+    }
+
+    @Override
+    public List<GuidePlate> timeout() {
+        return baseMapper.timeout();
+    }
+
+    @Override
+    public Integer organizationScore(List<String> ids) {
+        return baseMapper.organizationScore(ids);
+    }
+
+    @Override
+    public Integer organizationNum(List<String> ids) {
+        return baseMapper.organizationNum(ids);
+    }
+
+    @Override
+    public List<OrganizationEntity> getDepartment() {
+        return baseMapper.getDepartment();
+    }
+
+    @Override
+    public List<Guidance> guidanceTransaction() {
+        return baseMapper.guidanceTransaction();
+    }
+
+    @Override
+    public List<Guidance> guidanceBrowse() {
+        return baseMapper.guidanceBrowse();
+    }
+
+    @Override
+    public Integer staffNum() {
+        return baseMapper.staffNum();
+    }
+
+    @Override
+    public Integer countWork() {
+        return baseMapper.countWork();
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java
index 377770b..0751fdc 100644
--- a/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java
+++ b/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java
@@ -134,7 +134,6 @@
         {
             if(sysStreet!=null&&sysStreet.getId()!=null)
             {
-                ids.add(sysStreet.getId()+"");
                 if(sysStreet.getChild()!=null && sysStreet.getChild().size()>0)
                 {
                     ids.addAll(disposestreetId(sysStreet.getChild()));
diff --git a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
index 83f1432..e08b71e 100644
--- a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
+++ b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
@@ -187,7 +187,7 @@
             </if>
         </where>
     </select>
-
+    <!--  首页统计  勿动  -->
     <select id="countListNum"  resultType="com.dg.core.db.gen.entity.CountListNum">
         select create_time,count(id) as num from automessage_guide_repair_order
         <where>
diff --git a/flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml b/flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml
new file mode 100644
index 0000000..ffacd09
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml
@@ -0,0 +1,105 @@
+<?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="com.dg.core.db.gen.mapper.HomeStatisticsMapper">
+
+    <!-- 按办结量排序 -->
+    <select id="guidePlatePeople" resultType="com.dg.core.db.gen.entity.GuidePlate">
+        SELECT
+            user_name as userName,
+            (SELECT organization_name FROM automessage_organization_chart WHERE  automessage_organization_chart.id=department_id) as departmentNmae,
+            (select count(id) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id) as num
+        FROM automessage_sys_user WHERE user_type=2 ORDER BY
+            num DESC
+        LIMIT 10
+    </select>
+
+    <!--  按评分排序  -->
+    <select id="score" resultType="com.dg.core.db.gen.entity.GuidePlate">
+        SELECT
+            user_name,
+            (SELECT organization_name FROM automessage_organization_chart WHERE  automessage_organization_chart.id=department_id) as departmentNmae,
+            ((select sum(IF(evaluate_state='1',10,IF(evaluate_state='2',5,0))) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id)/(select count(id) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id)) as num
+        FROM automessage_sys_user WHERE user_type=2 ORDER BY
+            num DESC
+        LIMIT 10
+    </select>
+
+    <!--  按超时  -->
+    <select id="timeout" resultType="com.dg.core.db.gen.entity.GuidePlate">
+        SELECT
+            user_name as userName,
+            (SELECT organization_name FROM automessage_organization_chart WHERE  automessage_organization_chart.id=department_id) as departmentNmae,
+            (select count(id) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id and automessage_guide_repair_order.is_timeout=2
+            ) as num
+        FROM automessage_sys_user WHERE user_type=2 ORDER BY
+            num DESC
+        LIMIT 10
+    </select>
+
+
+    <!--  导办人员统计数  -->
+    <select id="staffNum" resultType="integer">
+        SELECT count(id)
+        FROM automessage_sys_user WHERE user_type=2
+    </select>
+
+<!--  获取一级组织  -->
+    <select id="getDepartment" resultType="com.dg.core.db.gen.entity.OrganizationEntity">
+        SELECT
+            organization_name as departmentNmae,
+            id
+        FROM automessage_organization_chart
+        WHERE grade=1
+    </select>
+
+
+    <!--  组织排行榜 按评价  -->
+    <select id="organizationScore" resultType="integer">
+        SELECT  sum(IF(evaluate_state='1',10,IF(evaluate_state='2',5,0)))
+        FROM automessage_guide_repair_order
+        WHERE department_id in
+        <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+            #{param}
+        </foreach>
+    </select>
+
+
+
+    <!--  组织排行榜 按办结量  -->
+    <select id="organizationNum" resultType="integer">
+        SELECT  count(id) FROM automessage_guide_repair_order WHERE department_id in
+        <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+            #{param}
+        </foreach>
+    </select>
+
+    <!--  办事指南 根据导办数量排序 -->
+    <select id="guidanceTransaction" resultType="com.dg.core.db.gen.entity.Guidance">
+        SELECT matter_name as name ,transaction_num as num from
+        automessage_transaction_event ORDER BY
+            num DESC
+        LIMIT 10
+    </select>
+
+    <!-- 办事指南 根据导办数量排序 -->
+    <select id="guidanceBrowse"  resultType="com.dg.core.db.gen.entity.Guidance">
+        SELECT matter_name as name ,browse_num as num from
+            automessage_transaction_event ORDER BY
+            num DESC
+            LIMIT 10
+    </select>
+
+
+    <!-- 办事指南 统计数量 -->
+    <select id="countWork"  resultType="integer">
+        SELECT count(id) from automessage_transaction_event
+    </select>
+
+
+
+
+
+
+
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/SysUserMapper.xml b/flower_city/src/main/resources/mapper/SysUserMapper.xml
index ae29bfb..0e7f67c 100644
--- a/flower_city/src/main/resources/mapper/SysUserMapper.xml
+++ b/flower_city/src/main/resources/mapper/SysUserMapper.xml
@@ -252,7 +252,4 @@
         delete from automessage_sys_user where user_id= #{id}
     </delete>
 
-
-
-
 </mapper>

--
Gitblit v1.7.1