# 服务监督模块,大屏展示-接口设计 > createTime 2024-11-21 ## 大屏尺寸 ![image-20241104094218224](img/image-20241104094218224.png) ## 效果图 ![微信图片_20241108231049](img/微信图片_20241108231049.png) ![微信图片_20241108231155](img/微信图片_20241108231155.png) ![微信图片_20241108231158](img/微信图片_20241108231158.png) ## 接口设计 ### 基础数据 #### (1)数据字典 (ok) - 接口地址:/system/dict/data/list?pageNum=&pageSize=&dictType= - 请求方式:GET - 请求参数: | 参数名 | 含义 | 类型 | 是否必填 | 备注 | | -------- | ---------- | ------ | -------- | ------- | | dictType | 字典类型 | 字符串 | 必填 | | | pageNum | 第几页 | int | | 默认1 | | pageSize | 一页记录数 | int | | 默认 ? | - 返回结果: | 中文名 | 字段名 | 类型 | 备注 | | ------------- | ------ | ------ | ------------------- | | 状态码 | code | int | 200:成功,其他:错误 | | 成功/错误消息 | msg | string | | | 总记录数 | total | int | | | 结果集 | rows | 数组 | | - rows 结果集 | 字段名 | 含义 | 类型 | 备注 | | --------- | ------ | ------ | ---- | | dictValue | 代码值 | 字符串 | | | dictLabel | 标题 | 字符串 | | | dictSort | 排序 | int | | #### (2)诉求来源列表(ok) - 接口地址:/supervision/appealSource/list?pageNum=1&pageSize=20&orderByColumn=createTime&isAsc=descending - 请求方式:GET - 请求参数: | 参数名 | 含义 | 类型 | 是否必填 | 备注 | | ------------- | ---------- | ------ | -------- | ------------------------- | | pageNum | 第几页 | int | 否 | | | pageSize | 一页几条 | int | 否 | | | orderByColumn | 排序字段名 | String | | | | isAsc | 是否升序 | String | | descending 降序,默认升序 | - 返回结果: | 中文名 | 字段名 | 类型 | 备注 | | ------------- | ------ | ------ | ------------------- | | 状态码 | code | int | 200:成功,其他:错误 | | 成功/错误消息 | msg | string | | | 总记录数 | total | int | | | 结果集 | rows | 数组 | | - rows 结果集 | 字段名 | 含义 | 类型 | 备注 | | ------------ | -------- | ------ | ---------------- | | id | id | Long | | | sourceName | 来源名称 | 字符串 | | | sourceRemark | 备注 | 字符串 | | | delFlag | 删除标记 | 字符串 | 0:没删,1:已删 | | createTime | 创建时间 | | | #### (3)诉求类型列表(ok) 调用数据字典接口,字典类型,传入: supervision_appeal_type ### 服务监督模块 #### (1)各诉求来源,某诉求类型一段时间内,诉求件数统计 (no) ------(段) ![image-20241121163908061](img/image-20241121163908061.png) 参数:诉求类型字典号,开始日期,结束日期 结果:来源id,来源名称,诉求件数(int),占比(字符串,比如 25%) > 注意点:所有来源的占比,加起来 = 100% #### (2)各诉求类型,一段时间内,诉求件数统计(no)--(厉) ![image-20241121163714250](img/image-20241121163714250.png) 参数:开始日期,结束日期 结果:诉求类型字典代码,诉求类型名称,诉求件数,占比(字符串,比如:12%) 注意:所有占比加起来必须=100% #### (3)诉求对象按年龄段,统计一段时间内,诉求件数和占比(yes)--(李) ![image-20241121163934191](img/image-20241121163934191.png) 参数:开始日期,结束日期 结果:年龄区间(比如 30以内,30-40,40-50,50-60,60-70,70以上),诉求件数,占比 占比总和必须=100% - 修改为根据性别统计 (男,女,未知) - 接口地址:/interface4ext/supervision/appealStatement/getAppealSex - 请求方式:POST - 请求参数: | 参数名 | 含义 | 类型 | 是否必填 | 备注 | | ------- | -------------------- | ------ | -------- | ---- | | staTime | 开始时间(2024-10-01) | String | 是 | | | endTime | 结束时间(2024-11-30) | String | 是 | | - 返回结果: | 中文名 | 字段名 | 类型 | 备注 | | ------------- | ------ | ------ | ------------------- | | 状态码 | code | int | 200:成功,其他:错误 | | 成功/错误消息 | msg | string | | | 结果集 | data | 对象 | | ``` { "msg": "操作成功", "code": 200, "data": { "totalNum": 11, "finishedNum": null, "pendingNum": null, "execNum": null, "satisfaction": null, "satisfactionNum": null, "finishOnTime": null, "finishOnTimeNum": null, "averageProcessingTimeConsult": null, "averageProcessingTimeNoConsult": null, "type": null, "mom": null, "manNum": 10, "manPercentage": "90.91%", "girlNum": 1, "girlPercentage": "9.09%", "unknownNum": 0, "unknownPercentage": "0.0%" } } package com.legend.supervision.domain; import lombok.Data; /** * @author ls * @date 2024-11-27 10:31 * 诉求总览 */ @Data public class AppealAll { //总件数 private Integer totalNum; //已办 private Integer finishedNum; //待办 private Integer pendingNum; //执行分配中 private Integer execNum; //满意度 private String satisfaction; //满意数量 private Integer satisfactionNum; //按时办结率 private String finishOnTime; //按时办结数量 private Integer finishOnTimeNum; //平均处理时长咨询 private Integer averageProcessingTimeConsult; //平均处理时长非咨询 private Integer averageProcessingTimeNoConsult; //类型 null,0-总览,1-当月 private Integer type; //本月环比 private String mom; //男数量 private Integer manNum; //男占比 private String manPercentage; //女数量 private Integer girlNum; //女占比 private String girlPercentage; //未知数量 private Integer unknownNum; //未知占比 private String unknownPercentage; } ``` #### (4)诉求总览(一段时间内)(yes)--(李) ![image-20241121164214862](img/image-20241121164214862.png) ![image-20241121164243366](img/image-20241121164243366.png) ![image-20241121165338982](img/image-20241121165338982.png) 请求参数:开始日期,结束日期 结果:总件数,已办件数,待处理件数,执行分配中件数, 本月环比(小数,精度3)考虑一下环比的计算公式,是否会出现正负,若有,正负,前端怎么表现? 满意度(0-1的小时,精度3,比如0.985 最后显示的是98.5%),按时办结率(小时,精度3), 咨询类-平均处理时长-值(小数,精度3),咨询类-平均处理时长-单位(1:小时,2:分钟,3:工作日) 非咨询类-平均处理时长-值(小数,精度3),非咨询类-平均处理时长-单位(1:小时,2:分钟,3:工作日) - 接口地址:/interface4ext/supervision/appealStatement/getAppealAllCount - 请求方式:POST - 请求参数: | 参数名 | 含义 | 类型 | 是否必填 | 备注 | | ------- | ----------------------------- | ------ | -------- | -------------------- | | type | 类型(null,0 = 全部, 1 = 上月) | int | 否 | type=0,null 时间必填 | | staTime | 开始时间 | String | 否 | | | endTime | 结束时间 | String | 否 | | - 返回结果: | 中文名 | 字段名 | 类型 | 备注 | | ------------- | ------ | ------ | ------------------- | | 状态码 | code | int | 200:成功,其他:错误 | | 成功/错误消息 | msg | string | | | 结果集 | data | 对象 | | ``` { "msg": "操作成功", "code": 200, "data": { "totalNum": 11, "finishedNum": 4, "pendingNum": 5, "execNum": 2, "satisfaction": "50.0%", "satisfactionNum": 2, "finishOnTime": "100.0%", "finishOnTimeNum": 4, "averageProcessingTimeConsult": 0, "averageProcessingTimeNoConsult": 8, "type": null, "mom": null, "manNum": null, "manPercentage": null, "girlNum": null, "girlPercentage": null, "unknownNum": null, "unknownPercentage": null } } package com.legend.supervision.domain; import lombok.Data; /** * @author ls * @date 2024-11-27 10:31 * 诉求总览 */ @Data public class AppealAll { //总件数 private Integer totalNum; //已办 private Integer finishedNum; //待办 private Integer pendingNum; //执行分配中 private Integer execNum; //满意度 private String satisfaction; //满意数量 private Integer satisfactionNum; //按时办结率 private String finishOnTime; //按时办结数量 private Integer finishOnTimeNum; //平均处理时长咨询 private Integer averageProcessingTimeConsult; //平均处理时长非咨询 private Integer averageProcessingTimeNoConsult; //类型 null,0-总览,1-当月 private Integer type; //本月环比 private String mom; //男数量 private Integer manNum; //男占比 private String manPercentage; //女数量 private Integer girlNum; //女占比 private String girlPercentage; //未知数量 private Integer unknownNum; //未知占比 private String unknownPercentage; } #### (5)诉求办理进展(ok)--(纪) ![image-20241121165411597](img/image-20241121165411597.png) 接口地址:/interface4ext/supervision/appealStatement/getAppealWorkorderStatus 请求方式:get请求 参数:params.startAppealTime 开始日期 格式 yyyy-MM-dd ​ params.endAppealTime 结束日期 格式 yyyy-MM-dd ```json { "params": { "startAppealTime": "2024-01-01", "endAppealTime": "2024-11-30" } } ``` 返回值 | emergentFlagDictName | 是否紧急-名称 | 字符串 | | | | -------------------- | --------------------- | ------ | ------------------------------------------------------------ | ---- | | emergentFlag | 是否紧急-数据字典code | 字符串 | | | | appealTypeDictName | 诉求类型-字典名称 | | | | | appealType | 诉求类型-字典code | | | | | workorderNo | 工单编号 | | | | | serviceObject | 诉求对象(谁投诉的) | | | | | callTel | 来电号码 | | | | | statusDictName | 工单状态 name | 字符串 | | | | status | 工单状态 code | 字符串 | 0:待交办,1:待(下级)接收,2:(下级)已退回,3:待子公司办结,4:待集团办结,5:已退回(给外面),6:已办结 | | | | | | | | ```bash { "total": 1, "rows": [ { "createTime": "2024-10-16 17:36:44", "updateTime": "2024-11-07 16:25:37", "id": 1487, "delFlag": "0", "workorderNo": "GD20241016-0002", "sourceId": 9, "sourceName": "宁易行APP", "serviceObject": "孙杰", "serviceObjectSex": 0, "letterFlag": 0, "callTel": "13225210913", "callTime": "2024-10-24 16:23:49", "linkTel1": null, "linkTel2": null, "cardType": null, "cardNo": null, "appealPurpose": "ces11", "appealAddress": null, "appealContent": "拒绝更改d6,方便那些所谓居民,他们不上班换乘怎么了,也就多十几分钟,但是对上班人不一样,要早起半小时,换乘说不定动不动迟到,希望领导大公无私,而不是所谓的卖那边楼", "appealEmotional": null, "appealType": "2", "appealTypeDictName": "表扬", "serviceType": "0", "incidentTime": null, "receiveTime": null, "emergentFlag": 0, "emergentFlagDictName": "不紧急", "classificType": null, "classificTypeSubdivision": "5", "completedDeadlineTime": null, "returnDeadlineTime": null, "assignedDeadlineTime": "2024-10-24 16:24:33", "returnVisitFlag": 0, "status": "1", "statusDictName": "待接收", "organizerUnit": "集团行政综合部", "organizerUnitId": 275, "reviewFlag": 0, "appealFlow": null, "attachmentIds": null, "assistingRelationId": null, "assistingUnit": null, "assistingUnitIds": null, "handleFlag": null, "dealId": null, "dealType": null, "dealTime": null, "dealDept": null, "assistingRelationStatus": null, "appealReturnVisit": null, "appealDeal": null } ], "code": 200, "msg": "查询成功" } ``` #### (6)各单位,某诉求类别,一段时间内,各诉求类别办理诉求件数(no)--(厉) ![image-20241121165537460](img/image-20241121165537460.png) 请求参数:开始日期,结束日期,诉求类别, 结果:部门id,部门名称,各个诉求类型分别数量 #### (7)各单位一段时间内,主办和协办诉求件数排名,根据总数排名(no)--(厉) ![image-20241121165813972](img/image-20241121165813972.png) 请求参数:开始日期,结束日期,诉求类型,诉求来源 结果:部门id,部门名称,主办件数,协办件数,总件数 #### (8)各责任单位一段时间内,涉及诉求件数排名(ok)--(纪) ![image-20241121165913634](img/image-20241121165913634.png) 接口地址:/interface4ext/supervision/appealStatement/getDutyDeptWorkorderRank 请求方式:GET 请求参数:startDate 开始日期 字符串 yyyy-MM-dd 默认7天前的日期 endDate 结束日期 字符串,yyyy-MM-dd 默认今天的日期 结果: dutyDeptId 责任单位部门id Long dutyDeptName 责任单位名称 字符串 workorderSize 涉及诉求工单数,int proportion 占比,(0-1 的小数)float 进度3 比如:http://localhost:8182/interface4ext/supervision/appealStatement/getDutyDeptWorkorderRank?startDate=&endDate= ```bash { "total": 1, "rows": [ { "startDate": null, "endDate": null, "dutyDeptId": 241, "dutyDeptName": "东山公交汽车八队", "workorderSize": 4, "proportion": 1.0 } ], "code": 200, "msg": "查询成功" } ``` #### (9)各责任线路,一段时间内,某诉求类型,涉及诉求件数排名(no)--(段) ![image-20241121170045090](img/image-20241121170045090.png) 请求参数:开始日期,结束日期,诉求类型,诉求来源 结果:名次,线路code,线路名称,诉求件数 根据名次倒序 ### 外勤检查模块 #### (1)检查任务总览(no)--(李) ![image-20241121170511141](img/image-20241121170511141.png) 请求参数:开始日期,结束日期 结果:任务总数,未发布任务数,有检查单的任务数, 没有检查单的任务数,已关闭任务数,进行中的(已发布,未关闭)任务数 #### (2)检查单总览(no)--(李) ![image-20241121170521068](img/image-20241121170521068.png) 请求参数:开始日期,结束日期 结果:检查单位总数,已结束的检查单总数,有不合格的检查单数,整改中的检查单数量,已整改的检查单数量,已结束的检查单数量 #### (3)各整改单位、一段时间内、主办和协办整改的数量排名(正序、倒序)(no)--(纪) ![image-20241121170730172](img/image-20241121170730172.png) 请求参数:开始日期,结束日期,是否倒序(1:倒序,2:升序) 结果: #### (4)被检查单位,一段时间内,检查任务和检查单数量汇总排名(no)--(纪) 设计图上:右侧,每日诉求汇总 (标题写错了) ![image-20241121170821784](img/image-20241121170821784.png) 请求参数:开始日期,结束日期,是否倒序(1:倒序,2:升序),排序字段标识(1:检查任务数量,2:检查单数量) 结果: #### (5)被检查单位,一段时间内,合格率排名(no)--(厉) ![image-20241121171016304](img/image-20241121171016304.png) 请求参数:开始日期,结束日期,是否倒序(1:倒序,2:升序) 结果: #### (6)各类型检查任务数量和占比(no)--(段) ![image-20241121171057240](img/image-20241121171057240.png) #### (7)外勤检查人员,一段时间内,在岗、不在岗数量统计(no)--(纪) ![image-20241121171115762](img/image-20241121171115762.png) 是否在岗,不好做,很难做,我们就不做了。 只统计每日,外勤检查人员总数,和有检查单的人数。 请求参数:开始日期,结束日期 结果:日期,外勤人员总数,检查人员(当天有检查单的)数量 结果集里面,日期不要求连续,就统计检查单表里面的创建日期。