Browse Source

疑难项目分析 接口开发

dev
zhangyongzhangyong 6 years ago
parent
commit
c14bb14223
  1. 60
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemAnalysisFormDTO.java
  2. 65
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemAnalysisResultDTO.java
  3. 40
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/AppItemAnalysisController.java
  4. 15
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemAnalysisDao.java
  5. 16
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemAnalysisService.java
  6. 11
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemAnalysisServiceImpl.java
  7. 85
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/item/ItemAnalysisDao.xml
  8. 18
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisItemController.java
  9. 14
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AnalysisItemFeignClient.java
  10. 9
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisItemFeignClientFallback.java
  11. 13
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisItemService.java
  12. 9
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisItemServiceImpl.java

60
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemAnalysisFormDTO.java

@ -0,0 +1,60 @@
package com.elink.esua.epdc.dto.item.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* @Description 疑难项目分析DTO
* @Author zy
* @Date 2020/2/11
*/
@Data
public class ItemAnalysisFormDTO implements Serializable {
private static final long serialVersionUID = 6144783947444092507L;
/**
* 页码
*/
@Min(value = 1, message = "页码必须大于0")
private Integer pageIndex;
/**
* 页容量默认5页
*/
@Min(value = 1, message = "每页条数必须大于0")
private Integer pageSize;
/**
* 第一页查询发起时的时间
*/
@NotBlank(message = "时间戳不能为空")
private String timestamp;
/**
* 分析类型1:耗时最长2:设计部门最多3:处理次数最多
*/
@NotNull(message = "分析类型不能为空")
private Integer analysisType;
/**
* 项目状态1:结案或关闭2:解决中
*/
@NotNull(message = "项目状态不能为空")
private Integer itemState;
/**
* 数据时间类型1:最近1个月2:最近3个月3:最近半年4:最近一年
*/
@NotNull(message = "数据时间类型不能为空")
private Integer someMonthsType;
/**
* 部门ID列表
*/
List<Long> deptIdList;
}

65
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemAnalysisResultDTO.java

@ -0,0 +1,65 @@
package com.elink.esua.epdc.dto.item.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description 疑难项目分析DTO
* @Author zy
* @Date 2020/2/11
*/
@Data
public class ItemAnalysisResultDTO implements Serializable {
/**
* 主键
*/
private String id;
/**
* 项目内容
*/
private String content;
/**
* 创建时间
*/
private String createdTime;
/**
* 图片
*/
private List<String> images;
/**
* 项目状态 0-处理中5-已关闭10-已结案
*/
private Integer itemState;
/**
* 分类名称
*/
private String categoryName;
/**
* 部门名称
*/
private String deptName;
/**
* 耗时小时
*/
private Integer spendTime;
/**
* 部门数量
*/
private Integer deptCount;
/**
* 处理次数
*/
private Integer handleCount;
}

40
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/controller/AppItemAnalysisController.java

@ -0,0 +1,40 @@
package com.elink.esua.epdc.modules.item.controller;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO;
import com.elink.esua.epdc.modules.item.service.ItemAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 手机端领导数据-项目
*
* @author zy
* @since 2020-2-11
*/
@RestController
@RequestMapping("appitem")
public class AppItemAnalysisController {
@Autowired
private ItemAnalysisService itemAnalysisService;
/**
* @Description: 疑难项目分析
* @Param: [formDto]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO>>
* @Author: zy
* @Date: 2020-02-11
*/
@GetMapping("getItemAnalysis")
public Result<List<ItemAnalysisResultDTO>> getItemAnalysis(@RequestBody ItemAnalysisFormDTO formDto) {
List<ItemAnalysisResultDTO> data = itemAnalysisService.getItemAnalysis(formDto);
return new Result<List<ItemAnalysisResultDTO>>().ok(data);
}
}

15
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemAnalysisDao.java

@ -18,11 +18,9 @@
package com.elink.esua.epdc.modules.item.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
import com.elink.esua.epdc.dto.item.result.DifficultItemResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemSurveyResultDTO;
import com.elink.esua.epdc.dto.item.result.UnsolvedItemResultDTO;
import com.elink.esua.epdc.dto.item.result.*;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -70,4 +68,13 @@ public interface ItemAnalysisDao extends BaseDao<ItemResultDTO> {
* @Date: 2020-02-11
*/
ItemSurveyResultDTO selectOneItemSurvey(ItemSurveyFormDTO formDTO);
/**
* @Description: 疑难项目分析
* @Param: [formDto]
* @return: java.util.List<com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO>
* @Author: zy
* @Date: 2020-02-11
*/
List<ItemAnalysisResultDTO> selectOneItemAnalysis(ItemAnalysisFormDTO formDto);
}

16
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemAnalysisService.java

@ -1,12 +1,11 @@
package com.elink.esua.epdc.modules.item.service;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
import com.elink.esua.epdc.dto.item.result.DifficultItemResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemSurveyResultDTO;
import com.elink.esua.epdc.dto.item.result.UnsolvedItemResultDTO;
import com.elink.esua.epdc.dto.item.result.*;
import java.util.List;
import java.util.Map;
/**
@ -52,4 +51,13 @@ public interface ItemAnalysisService {
* @Date: 2020-02-11
*/
ItemSurveyResultDTO getItemSurvey(ItemSurveyFormDTO formDTO);
/**
* @Description: 疑难项目分析
* @Param: [formDto]
* @return: java.util.List<com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO>
* @Author: zy
* @Date: 2020-02-11
*/
List<ItemAnalysisResultDTO> getItemAnalysis(ItemAnalysisFormDTO formDto);
}

11
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemAnalysisServiceImpl.java

@ -7,11 +7,9 @@ import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.datasources.DataSourceNames;
import com.elink.esua.epdc.datasources.annotation.DataSource;
import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
import com.elink.esua.epdc.dto.item.result.DifficultItemResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemSurveyResultDTO;
import com.elink.esua.epdc.dto.item.result.UnsolvedItemResultDTO;
import com.elink.esua.epdc.dto.item.result.*;
import com.elink.esua.epdc.modules.item.dao.ItemAnalysisDao;
import com.elink.esua.epdc.modules.item.service.ItemAnalysisService;
import org.slf4j.Logger;
@ -94,4 +92,9 @@ public class ItemAnalysisServiceImpl extends BaseServiceImpl<ItemAnalysisDao, It
public ItemSurveyResultDTO getItemSurvey(ItemSurveyFormDTO formDTO) {
return baseDao.selectOneItemSurvey(formDTO);
}
@Override
public List<ItemAnalysisResultDTO> getItemAnalysis(ItemAnalysisFormDTO formDto) {
return baseDao.selectOneItemAnalysis(formDto);
}
}

85
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/item/ItemAnalysisDao.xml

@ -242,4 +242,89 @@
</if>
) t2;
</select>
<!--疑难项目分析-->
<resultMap id="itemAnalysisListMap" type="com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO">
<result property="id" column="ID"/>
<result property="content" column="content"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="handleCount" column="handleCount"/>
<result property="deptCount" column="deptCount"/>
<result property="itemState" column="ITEM_STATE"/>
<result property="spendTime" column="spendTime"/>
<result property="deptName" column="deptName"/>
<result property="categoryName" column="categoryName"/>
<collection property="images" ofType="java.lang.String">
<result property="image" column="IMG_URL"/>
</collection>
</resultMap>
<select id="selectOneItemAnalysis" resultMap="itemAnalysisListMap">
SELECT
t.ID,
t.content,
t.CREATED_TIME,
t.handleCount,
t.deptCount,
t.ITEM_STATE,
t.spendTime,
t.deptName,
t.categoryName,
eimg.IMG_URL
FROM (
SELECT
ei.ID,
ei.EVENT_ID,
ei.ITEM_CONTENT AS content,
ei.CREATED_TIME,
( SELECT COUNT( eihp.ID ) FROM esua_epdc_events.epdc_item_handle_process eihp WHERE eihp.DEL_FLAG = '0' AND eihp.ITEM_ID = ei.ID ) AS handleCount,
( SELECT COUNT(eid.ID) FROM esua_epdc_events.epdc_item_dept eid WHERE eid.DEL_FLAG = '0' AND eid.ITEM_ID = ei.ID ) AS deptCount,
ei.ITEM_STATE,
( SELECT TIMESTAMPDIFF( HOUR, MIN(eihp.CREATED_TIME), MAX(eihp.CREATED_TIME) ) FROM esua_epdc_events.epdc_item_handle_process eihp WHERE eihp.DEL_FLAG = '0' AND eihp.ITEM_ID = ei.ID ) AS spendTime,
ei.ALL_DEPT_NAMES AS deptName,
ei.CATEGORY_FULL_NAME AS categoryName
FROM
esua_epdc_events.epdc_item ei
WHERE
ei.DEL_FLAG = '0'
AND ei.GRID_ID IN
<foreach collection="deptIdList" index="index" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
<if test="someMonthsType == 1">
<![CDATA[ AND DATE_SUB(CURDATE( ), INTERVAL 1 MONTH) <= ]]> ei.CREATED_TIME
</if>
<if test="someMonthsType == 2">
<![CDATA[ AND DATE_SUB(CURDATE( ), INTERVAL 3 MONTH) <= ]]> ei.CREATED_TIME
</if>
<if test="someMonthsType == 3">
<![CDATA[ AND DATE_SUB(CURDATE( ), INTERVAL 6 MONTH) <= ]]> ei.CREATED_TIME
</if>
<if test="someMonthsType == 4">
<![CDATA[ AND DATE_SUB(CURDATE( ), INTERVAL 1 YEAR) <= ]]> ei.CREATED_TIME
</if>
<if test="timestamp != null and timestamp != ''">
<![CDATA[ AND DATE_FORMAT(ei.CREATED_TIME,'%Y-%m-%d %H:%i:%s') <= ]]> #{timestamp}
</if>
<if test="itemState == 1">
AND ei.ITEM_STATE IN (5, 10)
</if>
<if test="itemState == 2">
AND ei.ITEM_STATE = 0
</if>
ORDER BY
<if test="analysisType == 1">
spendTime DESC,
</if>
<if test="analysisType == 2">
deptCount DESC,
</if>
<if test="analysisType == 3">
handleCount DESC,
</if>
CREATED_TIME DESC
LIMIT #{pageIndex}, #{pageSize}) t
LEFT JOIN esua_epdc_events.epdc_img eimg ON eimg.REFERENCE_ID = t.EVENT_ID
AND eimg.DEL_FLAG = '0';
</select>
</mapper>

18
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAnalysisItemController.java

@ -5,7 +5,9 @@ import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemSurveyResultDTO;
import com.elink.esua.epdc.service.AnalysisItemService;
import org.springframework.beans.factory.annotation.Autowired;
@ -56,4 +58,20 @@ public class ApiAnalysisItemController {
formDto.setGridIds(SecurityUser.getUser().getDeptIdList());
return analysisItemService.getItemSurvey(formDto);
}
/**
* @Description: 疑难项目分析
* @Param: [formDto]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO>>
* @Author: zy
* @Date: 2020-02-11
*/
@GetMapping("getItemAnalysis")
public Result<List<ItemAnalysisResultDTO>> getItemAnalysis(@RequestBody ItemAnalysisFormDTO formDto) {
//效验数据
ValidatorUtils.validateEntity(formDto);
formDto.setDeptIdList(SecurityUser.getUser().getDeptIdList());
Result<List<ItemAnalysisResultDTO>> list = analysisItemService.getItemAnalysis(formDto);
return list;
}
}

14
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AnalysisItemFeignClient.java

@ -3,13 +3,17 @@ package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.config.FeignRequestInterceptor;
import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemSurveyResultDTO;
import com.elink.esua.epdc.feign.fallback.AnalysisItemFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.List;
/**
* 评价模块调用-移动app端
* @Author LPF
@ -39,4 +43,14 @@ public interface AnalysisItemFeignClient {
@GetMapping(value = "analysis/item/getItemSurvey")
Result<ItemSurveyResultDTO> getItemSurvey(ItemSurveyFormDTO formDto);
/**
* @Description: 疑难项目分析
* @Param: [formDto]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO>>
* @Author: zy
* @Date: 2020-02-11
*/
@GetMapping(value = "analysis/appitem/getItemAnalysis")
Result<List<ItemAnalysisResultDTO>> getItemAnalysis(ItemAnalysisFormDTO formDto);
}

9
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisItemFeignClientFallback.java

@ -3,11 +3,15 @@ package com.elink.esua.epdc.feign.fallback;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemSurveyResultDTO;
import com.elink.esua.epdc.feign.AnalysisItemFeignClient;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Author LPF
* @Date 2019/11/18 16:39
@ -26,4 +30,9 @@ public class AnalysisItemFeignClientFallback implements AnalysisItemFeignClient
return ModuleUtils.feignConError(ServiceConstant.EPDC_ANALYSIS_SERVER, "getItemSurvey", formDto);
}
@Override
public Result<List<ItemAnalysisResultDTO>> getItemAnalysis(ItemAnalysisFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ANALYSIS_SERVER, "getItemAnalysis", formDto);
}
}

13
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AnalysisItemService.java

@ -1,9 +1,13 @@
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemSurveyResultDTO;
import java.util.List;
/**
* 项目模块-数据分析移动端
* @Author LPF
@ -28,4 +32,13 @@ public interface AnalysisItemService {
* @Date: 2020-02-11
*/
Result<ItemSurveyResultDTO> getItemSurvey(ItemSurveyFormDTO formDTO);
/**
* @Description: 疑难项目分析
* @Param: [formDto]
* @return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO>>
* @Author: zy
* @Date: 2020-02-11
*/
Result<List<ItemAnalysisResultDTO>> getItemAnalysis(ItemAnalysisFormDTO formDto);
}

9
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AnalysisItemServiceImpl.java

@ -2,13 +2,17 @@ package com.elink.esua.epdc.service.impl;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.item.form.ItemAnalysisFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemSurveyFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemAnalysisResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemSurveyResultDTO;
import com.elink.esua.epdc.feign.AnalysisItemFeignClient;
import com.elink.esua.epdc.service.AnalysisItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 项目模块-移动app端
* @Author LPF
@ -31,4 +35,9 @@ public class AnalysisItemServiceImpl implements AnalysisItemService {
public Result<ItemSurveyResultDTO> getItemSurvey(ItemSurveyFormDTO formDTO) {
return analysisItemFeignClient.getItemSurvey(formDTO);
}
@Override
public Result<List<ItemAnalysisResultDTO>> getItemAnalysis(ItemAnalysisFormDTO formDto) {
return analysisItemFeignClient.getItemAnalysis(formDto);
}
}

Loading…
Cancel
Save