Browse Source

Merge branch 'feature/event'

feature/dangjian
lichao 2 years ago
parent
commit
0b7fd23b80
  1. 35
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ResolveTotalLineDetailResultDTO.java
  2. 36
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ResolveTotalLineResultDTO.java
  3. 30
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ResolveTotalPieResultDTO.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. 23
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java
  6. 18
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java
  7. 69
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  8. 120
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml

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

@ -0,0 +1,35 @@
package com.elink.esua.epdc.dto.item.result;
import lombok.Data;
import java.io.Serializable;
/**
* 大屏-解决趋势-SQL返回值DTO
* @Author wgf
* @Date 2022-10-11
*/
@Data
public class ResolveTotalLineDetailResultDTO implements Serializable {
private static final long serialVersionUID = -2494874960456321677L;
/**
* 时间
*/
private String time;
/**
* 解决
*/
private String jj;
/**
* 基本解决
*/
private String jbjj;
/**
* 未解决
*/
private String wjj;
}

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

@ -0,0 +1,36 @@
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 ResolveTotalLineResultDTO implements Serializable {
private static final long serialVersionUID = -2494874960456321677L;
/**
* 横坐标
*/
private List<String> xValue;
/**
* 解决
*/
private List<String> jjArr;
/**
* 基本解决
*/
private List<String> jbjjArr;
/**
* 未解决
*/
private List<String> wjjArr;
}

30
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ResolveTotalPieResultDTO.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 ResolveTotalPieResultDTO 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

@ -117,5 +117,32 @@ public class ItemScreenCountController {
}
/**
* @Description: 大屏-解决统计
* @param formDTO:
* @Return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.item.result.ResolveTotalPieResultDTO>>
* @Author: lichao
* @Date: 2023/5/31 13:54
*/
@GetMapping("resolveTotal")
public Result<List<ResolveTotalPieResultDTO>> resolveTotal(ScreenTotalFormDTO formDTO) {
List<ResolveTotalPieResultDTO> list = itemService.resolveTotal(formDTO);
return new Result<List<ResolveTotalPieResultDTO>>().ok(list);
}
/**
* @Description: 大屏-解决趋势
* @param formDTO:
* @Return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.item.result.ResolveTotalLineResultDTO>
* @Author: lichao
* @Date: 2023/5/31 13:54
*/
@GetMapping("resolveTrend")
public Result<ResolveTotalLineResultDTO> resolveTrend(ScreenTotalFormDTO formDTO) {
ResolveTotalLineResultDTO list = itemService.resolveTrend(formDTO);
return new Result<ResolveTotalLineResultDTO>().ok(list);
}
}

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

@ -502,6 +502,14 @@ public interface ItemDao extends BaseDao<ItemEntity> {
*/
List<EvaluationTotalPieResultDTO> evaluationTotal(ScreenTotalFormDTO formDTO);
/**
* 解决统计
*
* @param formDTO
* @return
*/
List<ResolveTotalPieResultDTO>resolveTotal(ScreenTotalFormDTO formDTO);
/**
* 满意度趋势-日数据
*
@ -510,6 +518,14 @@ public interface ItemDao extends BaseDao<ItemEntity> {
*/
List<EvaluationTotalLineDetailResultDTO> getEvaluationDataListByDays(ScreenTotalFormDTO formDTO);
/**
* 解决趋势-日数据
*
* @param formDTO
* @return
*/
List<ResolveTotalLineDetailResultDTO> getResolveDataListByDays(ScreenTotalFormDTO formDTO);
/**
* 满意度趋势-月数据
*
@ -517,6 +533,13 @@ public interface ItemDao extends BaseDao<ItemEntity> {
* @return
*/
List<EvaluationTotalLineDetailResultDTO> getEvaluationDataListByMonths(ScreenTotalFormDTO formDTO);
/**
* 解决趋势-月数据
*
* @param formDTO
* @return
*/
List<ResolveTotalLineDetailResultDTO> getResolveDataListByMonths(ScreenTotalFormDTO formDTO);
List<ItemStatisListPageResultDTO> getItemStatisListPage(Map<String, Object> params);

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

@ -783,4 +783,22 @@ public interface ItemService extends BaseService<ItemEntity> {
Result changeRepeat(ItemChangeRepeatDTO dto);
Result changeCategory(ItemChangeCategoryDTO dto);
/**
* @Description: 解决统计
* @param formDTO:
* @Return java.util.List<com.elink.esua.epdc.dto.item.result.ResolveTotalPieResultDTO>
* @Author: lichao
* @Date: 2023/5/31 16:06
*/
List<ResolveTotalPieResultDTO> resolveTotal(ScreenTotalFormDTO formDTO);
/**
* @Description: 解决趋势
* @param formDTO:
* @Return com.elink.esua.epdc.dto.item.result.ResolveTotalLineResultDTO
* @Author: lichao
* @Date: 2023/5/31 16:06
*/
ResolveTotalLineResultDTO resolveTrend(ScreenTotalFormDTO formDTO);
}

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

@ -2240,6 +2240,11 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
*/
private SendEventResultDto reportCaseNew(ItemHandleSubmitFormDTO dto) throws Exception {
ItemEntity entity = baseDao.selectById(dto.getId());
// 删除& 符号
if (StringUtils.isNotBlank(entity.getIssueAddress()) && entity.getIssueAddress().contains("&")){
String address = entity.getIssueAddress().replace("&", "-");
entity.setIssueAddress(address);
}
// 组装上报信息
SendEventFormDto sendEventFormDto = packageSendEventEntity(entity, dto);
// 接口请求返回实体,getCode 1失败 0成功(非空)
@ -5185,6 +5190,70 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
return new Result();
}
@Override
public List<ResolveTotalPieResultDTO> resolveTotal(ScreenTotalFormDTO formDTO) {
List<ResolveTotalPieResultDTO> list = baseDao.resolveTotal(formDTO);
return list;
}
@Override
public ResolveTotalLineResultDTO resolveTrend(ScreenTotalFormDTO formDTO) {
ResolveTotalLineResultDTO resultDTO = new ResolveTotalLineResultDTO();
// 时间数组
List<String> timeArr = new ArrayList<>();
// 解决数组
List<String> jjArr = new ArrayList<>();
// 未解决数组
List<String> wjjArr = new ArrayList<>();
// 基本解决数组
List<String> jbjjArr = new ArrayList<>();
List<ResolveTotalLineDetailResultDTO> dataList = new ArrayList<>();
if (formDTO.getYearMonth().length() > 4) {
String[] arr = formDTO.getYearMonth().split("-");
// 按日统计
timeArr = YearMonthUtils.getMonthFullDay(Integer.parseInt(arr[0]), Integer.parseInt(arr[1]));
formDTO.setTimeArr(timeArr);
dataList = baseDao.getResolveDataListByDays(formDTO);
} else {
// 按月统计
timeArr = YearMonthUtils.getMonthBetween(formDTO.getYearMonth() + "-01", formDTO.getYearMonth() + "-12");
formDTO.setTimeArr(timeArr);
dataList = baseDao.getResolveDataListByMonths(formDTO);
}
for (int i = 0; i < timeArr.size(); i++) {
Boolean flag = false; // 是否完成该时间赋值
for (ResolveTotalLineDetailResultDTO dto : dataList) {
if (timeArr.get(i).equals(dto.getTime())) {
jjArr.add(dto.getJj());
jbjjArr.add(dto.getJbjj());
wjjArr.add(dto.getWjj());
flag = true;
break;
}
}
// 判断该时间是否赋值
if (!flag) {
jjArr.add("0");
jbjjArr.add("0");
wjjArr.add("0");
}
}
// 组装数据
resultDTO.setXValue(timeArr);
resultDTO.setWjjArr(wjjArr);
resultDTO.setJjArr(jbjjArr);
resultDTO.setJjArr(jjArr);
return resultDTO;
}
/**
* 重新上报
*

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

@ -2890,10 +2890,10 @@
<select id="getEvaluationDataListByDays" resultType="com.elink.esua.epdc.dto.item.result.EvaluationTotalLineDetailResultDTO"
parameterType="com.elink.esua.epdc.dto.item.form.ScreenTotalFormDTO">
select
DATE_FORMAT(item.CREATED_TIME,'%Y-%m-%d') as time,
ROUND(count(item.EVALUATION_SCORE = 0 or null) / count(item.ID) * 100,1) as bmy,
ROUND(count(item.EVALUATION_SCORE = 1 or null) / count(item.ID) * 100,1) as jbmy,
ROUND(count(item.EVALUATION_SCORE = 2 or null) / count(item.ID) * 100,1) as fcmy
DATE_FORMAT(item.CREATED_TIME,'%Y-%m-%d') as time,
ROUND(count(item.EVALUATION_SCORE = 0 or null) / count(item.ID) * 100,1) as bmy,
ROUND(count(item.EVALUATION_SCORE = 1 or null) / count(item.ID) * 100,1) as jbmy,
ROUND(count(item.EVALUATION_SCORE = 2 or null) / count(item.ID) * 100,1) as fcmy
from epdc_item item
where item.DEL_FLAG = '0'
and item.IS_PEOPLE = '1'
@ -2924,6 +2924,44 @@
ORDER BY DATE_FORMAT(item.CREATED_TIME,'%Y-%m-%d') asc
</select>
<select id="getResolveDataListByDays" resultType="com.elink.esua.epdc.dto.item.result.ResolveTotalLineDetailResultDTO"
parameterType="com.elink.esua.epdc.dto.item.form.ScreenTotalFormDTO">
select
DATE_FORMAT(item.CREATED_TIME,'%Y-%m-%d') as time,
ROUND(count(item.SOLUTION_INFO = '01' or null) / count(item.ID) * 100,1) as jj,
ROUND(count(item.SOLUTION_INFO = '02' or null) / count(item.ID) * 100,1) as jbjj,
ROUND(count(item.SOLUTION_INFO = '03' or null) / count(item.ID) * 100,1) as wjj
from epdc_item item
where item.DEL_FLAG = '0'
and item.IS_PEOPLE = '1'
and item.ITEM_STATE = '10'
and item.EVENT_ID is null
and item.ISSUE_ID is null
and ((SUBSTRING_INDEX(item.CATEGORY_FULL_NAME,'-',1) != '其他' and item.PEOPLE_FLAG = '0') or (item.PEOPLE_FLAG in ('1','2')))
<choose>
<when test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( item.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</when>
<otherwise>
AND DATE_FORMAT( item.CREATED_TIME, '%Y-%m-%d' ) <![CDATA[ <= ]]> DATE_FORMAT(date_sub(now(),interval 1 day),'%Y-%m-%d')
</otherwise>
</choose>
<if test="deptId != null and deptId != ''">
AND find_in_set(#{deptId},item.ALL_DEPT_IDS)
</if>
<if test="peopleFlag != null and peopleFlag != ''">
AND item.PEOPLE_FLAG = #{peopleFlag}
</if>
AND DATE_FORMAT(item.CREATED_TIME,'%Y-%m-%d') IN
<foreach collection="timeArr" index="index" item="time" open="(" separator="," close=")">
#{time}
</foreach>
and item.SOLUTION_INFO is not null
and item.SOLUTION_INFO !=''
group by DATE_FORMAT(item.CREATED_TIME,'%Y-%m-%d')
ORDER BY DATE_FORMAT(item.CREATED_TIME,'%Y-%m-%d') asc
</select>
<select id="getEvaluationDataListByMonths" resultType="com.elink.esua.epdc.dto.item.result.EvaluationTotalLineDetailResultDTO"
parameterType="com.elink.esua.epdc.dto.item.form.ScreenTotalFormDTO">
select
@ -2960,6 +2998,43 @@
ORDER BY DATE_FORMAT(item.CREATED_TIME,'%Y-%m') asc
</select>
<select id="getResolveDataListByMonths" resultType="com.elink.esua.epdc.dto.item.result.ResolveTotalLineDetailResultDTO"
parameterType="com.elink.esua.epdc.dto.item.form.ScreenTotalFormDTO">
select
DATE_FORMAT(item.CREATED_TIME,'%Y-%m') as time,
ROUND(count(item.SOLUTION_INFO = '01' or null) / count(item.ID) * 100,1) as jj,
ROUND(count(item.SOLUTION_INFO = '02' or null) / count(item.ID) * 100,1) as jbjj,
ROUND(count(item.SOLUTION_INFO = '03' or null) / count(item.ID) * 100,1) as wjj
from epdc_item item
where item.DEL_FLAG = '0'
and item.IS_PEOPLE = '1'
and item.EVENT_ID is null
and item.ISSUE_ID is null
and ((SUBSTRING_INDEX(item.CATEGORY_FULL_NAME,'-',1) != '其他' and item.PEOPLE_FLAG = '0') or (item.PEOPLE_FLAG in ('1','2')))
<choose>
<when test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( item.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</when>
<otherwise>
AND DATE_FORMAT( item.CREATED_TIME, '%Y-%m-%d' ) <![CDATA[ <= ]]> DATE_FORMAT(date_sub(now(),interval 1 day),'%Y-%m-%d')
</otherwise>
</choose>
<if test="deptId != null and deptId != ''">
AND find_in_set(#{deptId},item.ALL_DEPT_IDS)
</if>
<if test="peopleFlag != null and peopleFlag != ''">
AND item.PEOPLE_FLAG = #{peopleFlag}
</if>
AND DATE_FORMAT(item.CREATED_TIME,'%Y-%m') IN
<foreach collection="timeArr" index="index" item="time" open="(" separator="," close=")">
#{time}
</foreach>
and item.SOLUTION_INFO is not null
and item.SOLUTION_INFO !=''
group by DATE_FORMAT(item.CREATED_TIME,'%Y-%m')
ORDER BY DATE_FORMAT(item.CREATED_TIME,'%Y-%m') asc
</select>
<select id="getItemListByAddress" resultType="com.elink.esua.epdc.dto.item.result.ItemListByAddressResultDTO">
SELECT
a.id id,
@ -3044,6 +3119,43 @@
and item.EVALUATION_SCORE is not null
order by item.created_time DESC
</select>
<select id="resolveTotal" resultType="com.elink.esua.epdc.dto.item.result.ResolveTotalPieResultDTO">
select
case item.SOLUTION_INFO
when '01' then '解决'
when '02' then '基本解决'
when '03' then '未解决'
else ''
end as name,
count(item.ID) as value
from epdc_item item
where item.DEL_FLAG = '0'
and item.IS_PEOPLE = '1'
and item.EVENT_ID is null
and item.ISSUE_ID is null
and ((SUBSTRING_INDEX(item.CATEGORY_FULL_NAME,'-',1) != '其他' and item.PEOPLE_FLAG = '0') or (item.PEOPLE_FLAG in ('1','2')))
<choose>
<when test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( item.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</when>
<otherwise>
AND DATE_FORMAT( item.CREATED_TIME, '%Y-%m-%d' ) <![CDATA[ <= ]]> DATE_FORMAT(date_sub(now(),interval 1 day),'%Y-%m-%d')
</otherwise>
</choose>
<if test="deptId != null and deptId != ''">
AND find_in_set(#{deptId},item.ALL_DEPT_IDS)
</if>
<if test="peopleFlag != null and peopleFlag != ''">
AND item.PEOPLE_FLAG = #{peopleFlag}
</if>
and item.SOLUTION_INFO is not null
and item.SOLUTION_INFO !=''
group by item.SOLUTION_INFO
ORDER BY count(item.ID) desc
</select>
<update id="updateBatchBySerialNum">
UPDATE

Loading…
Cancel
Save