Browse Source

按期响应

master
lichao 3 years ago
parent
commit
87acf017f1
  1. 32
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ReplyTotalLineResultDTO.java
  2. 32
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ResponseTotalLineResultDTO.java
  3. 30
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ResponseTotalPieResultDTO.java
  4. 27
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemScreenCountController.java
  5. 4
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java
  6. 4
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java
  7. 30
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  8. 54
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml

32
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ReplyTotalLineResultDTO.java

@ -0,0 +1,32 @@
package com.elink.esua.epdc.dto.item.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 大屏-回复趋势-返回值DTO
* @Author wgf
* @Date 2022-10-11
*/
@Data
public class ReplyTotalLineResultDTO implements Serializable {
private static final long serialVersionUID = -2494874960456321677L;
/**
* 横坐标
*/
private List<String> xValue;
/**
* 回复
*/
private List<String> hfArr;
/**
* 未回复
*/
private List<String> whfArr;
}

32
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ResponseTotalLineResultDTO.java

@ -0,0 +1,32 @@
package com.elink.esua.epdc.dto.item.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 大屏-响应趋势-返回值DTO
* @Author wgf
* @Date 2022-10-11
*/
@Data
public class ResponseTotalLineResultDTO implements Serializable {
private static final long serialVersionUID = -2494874960456321677L;
/**
* 横坐标
*/
private List<String> xValue;
/**
* 响应
*/
private List<String> xyArr;
/**
* 未响应
*/
private List<String> wxyArr;
}

30
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ResponseTotalPieResultDTO.java

@ -0,0 +1,30 @@
package com.elink.esua.epdc.dto.item.result;
import lombok.Data;
import java.io.Serializable;
/**
* 大屏-响应率-返回值DTO
* @Author wgf
* @Date 2022-10-10
*/
@Data
public class ResponseTotalPieResultDTO implements Serializable {
private static final long serialVersionUID = -2494874960456321677L;
/**
* 名称
*/
private String name;
/**
*
*/
private String value;
/**
* 占比
*/
private String proportion;
}

27
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemScreenCountController.java

@ -17,6 +17,7 @@
package com.elink.esua.epdc.modules.item.controller;
import com.baomidou.mybatisplus.extension.api.R;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
@ -143,6 +144,32 @@ public class ItemScreenCountController {
return new Result<ResolveTotalLineResultDTO>().ok(list);
}
/**
* @Description: 大屏-6小时维度响应率
* @param formDTO:
* @Return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.item.result.ResponseTotalPieResultDTO>>
* @Author: lichao
* @Date: 2023/7/14 15:36
*/
@GetMapping("responseSixHoursTotal")
public Result<List<ResponseTotalPieResultDTO>> responseSixHoursTotal(ScreenTotalFormDTO formDTO) {
List<ResponseTotalPieResultDTO> list = itemService.responseSixHoursTotal(formDTO);
return new Result<List<ResponseTotalPieResultDTO>>().ok(list);
}
/**
* @Description: 大屏-按时回复率
* @param formDTO:
* @Return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.item.result.ResponseTotalPieResultDTO>>
* @Author: lichao
* @Date: 2023/7/17 10:02
*/
@GetMapping("replyTotal")
public Result<List<ResponseTotalPieResultDTO>> replyTotal(ScreenTotalFormDTO formDTO) {
List<ResponseTotalPieResultDTO> list = itemService.replyTotal(formDTO);
return new Result<List<ResponseTotalPieResultDTO>>().ok(list);
}
}

4
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java

@ -550,4 +550,8 @@ public interface ItemDao extends BaseDao<ItemEntity> {
List<ItemStatisListPageResultDTO> getevaluationList(Map<String, Object> params);
List<ItemStatisListPageResultDTO> getsolutionList(Map<String, Object> params);
ResponseTotalPieResultDTO responseSixHoursTotal(ScreenTotalFormDTO formDTO);
ResponseTotalPieResultDTO replyTotal(ScreenTotalFormDTO formDTO);
}

4
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java

@ -804,4 +804,8 @@ public interface ItemService extends BaseService<ItemEntity> {
ResolveTotalLineResultDTO resolveTrend(ScreenTotalFormDTO formDTO);
AcceptPlantformProcessDTO evaluationIssue(EvaluationIssueformDTO formDto, TokenDto userDetail);
List<ResponseTotalPieResultDTO> responseSixHoursTotal(ScreenTotalFormDTO formDTO);
List<ResponseTotalPieResultDTO> replyTotal(ScreenTotalFormDTO formDTO);
}

30
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java

@ -5344,6 +5344,36 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
return acceptPlantformProcessDTO;
}
@Override
public List<ResponseTotalPieResultDTO> responseSixHoursTotal(ScreenTotalFormDTO formDTO) {
List<ResponseTotalPieResultDTO> list = new ArrayList<>();
ResponseTotalPieResultDTO dtoResonse = baseDao.responseSixHoursTotal(formDTO);
ResponseTotalPieResultDTO dtoResonseNo = new ResponseTotalPieResultDTO();
dtoResonseNo.setName("未按期响应率");
if (dtoResonse.getValue()!=null){
dtoResonse.setValue(String.valueOf((1-Double.valueOf(dtoResonse.getValue()))*100));
}
dtoResonse.setValue(String.valueOf(Double.valueOf(dtoResonse.getValue())*100));
list.add(dtoResonse);
list.add(dtoResonseNo);
return list;
}
@Override
public List<ResponseTotalPieResultDTO> replyTotal(ScreenTotalFormDTO formDTO) {
List<ResponseTotalPieResultDTO> list = new ArrayList<>();
ResponseTotalPieResultDTO dtoResonse = baseDao.replyTotal(formDTO);
ResponseTotalPieResultDTO dtoResonseNo = new ResponseTotalPieResultDTO();
dtoResonseNo.setName("未按时恢复率");
if (dtoResonse.getValue()!=null){
dtoResonse.setValue(String.valueOf((1-Double.valueOf(dtoResonse.getValue()))*100));
}
dtoResonse.setValue(String.valueOf(Double.valueOf(dtoResonse.getValue())*100));
list.add(dtoResonse);
list.add(dtoResonseNo);
return list;
}
/**
* 重新上报
*

54
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml

@ -3211,6 +3211,60 @@
ORDER BY count(item.ID) desc
</select>
<select id="responseSixHoursTotal"
resultType="com.elink.esua.epdc.dto.item.result.ResponseTotalPieResultDTO">
SELECT
'按期响应率' as name,
COUNT(
IF
(getworkminute(b.CREATED_TIME,a.CREATED_TIME) &lt;= 480 ,1, NULL ))/COUNT(1) as value
FROM
( SELECT l1.CREATED_TIME, l1.ITEM_ID FROM epdc_item_report_interface_log l1 WHERE l1.INTERFACE_NAME = '响应接收' ) a
LEFT JOIN ( SELECT l2.CREATED_TIME, l2.ITEM_ID FROM epdc_item_report_interface_log l2 WHERE l2.INTERFACE_NAME LIKE '诉求登记%' ) b ON a.ITEM_ID = b.ITEM_ID
LEFT JOIN epdc_item i ON i.ID = a.ITEM_ID
WHERE
b.CREATED_TIME IS NOT NULL
<if test="startTime != null and startTime != ''">
and i.CREATED_TIME &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and i.CREATED_TIME &lt;= #{endTime}
</if>
<if test="deptId != null and deptId != ''">
AND find_in_set(#{deptId},i.ALL_DEPT_IDS)
</if>
<if test="peopleFlag != null and peopleFlag != ''">
AND i.PEOPLE_FLAG = #{peopleFlag}
</if>
</select>
<select id="replyTotal" resultType="com.elink.esua.epdc.dto.item.result.ResponseTotalPieResultDTO">
SELECT
'按时回复率' as name,
COUNT(
IF
(getworkminute(b.CREATED_TIME,a.CREATED_TIME) &lt; 2100 ,1, NULL ))/COUNT(1) as value
FROM
( SELECT l1.CREATED_TIME, l1.ITEM_ID FROM epdc_item_report_interface_log l1 WHERE l1.INTERFACE_NAME = '诉求审核' ) a
LEFT JOIN ( SELECT l2.CREATED_TIME, l2.ITEM_ID FROM epdc_item_report_interface_log l2 WHERE l2.INTERFACE_NAME = '响应接收' ) b ON a.ITEM_ID = b.ITEM_ID
LEFT JOIN epdc_item i ON i.ID = a.ITEM_ID
WHERE
b.CREATED_TIME IS NOT NULL
<if test="startTime != null and startTime != ''">
and i.CREATED_TIME &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and i.CREATED_TIME &lt;= #{endTime}
</if>
<if test="deptId != null and deptId != ''">
AND find_in_set(#{deptId},i.ALL_DEPT_IDS)
</if>
<if test="peopleFlag != null and peopleFlag != ''">
AND i.PEOPLE_FLAG = #{peopleFlag}
</if>
</select>
<update id="updateBatchBySerialNum">

Loading…
Cancel
Save