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