Browse Source

【问题采集-项目列表】-王公峰-2021-07-05

feature/dangjian
wanggongfeng 4 years ago
parent
commit
b966747278
  1. 76
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemByQuestionFormDTO.java
  2. 13
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/EpdcAppItemController.java
  3. 27
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java
  4. 10
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java
  5. 12
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  6. 91
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml

76
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemByQuestionFormDTO.java

@ -0,0 +1,76 @@
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.Date;
import java.util.List;
/**
* @Author wanggongfeng
* @Date 2021/7/5 16:39
*/
@Data
public class ItemByQuestionFormDTO implements Serializable {
private static final long serialVersionUID = -3034807666143092535L;
/**
* 用户所属网格ID
*/
@NotNull(message = "用户网格ID不能为空")
private Long deptId;
/**
* 搜索内容
*/
private String searchContent;
/**
* 页码从1开始
*/
@Min(value = 1, message = "页码必须大于0")
private int pageIndex;
/**
* 页容量默认20页
*/
@Min(value = 1, message = "每页条数必须大于必须大于0")
private int pageSize = 20;
/**
* 第一页查询发起时的时间
*/
@NotBlank(message = "时间戳不能为空")
private String timestamp;
/**
* 只查询半年内的数据
*/
private Date someMonthsAgo;
/**
* 议题一级分类ID
*/
private String firstCategoryCode;
/**
* 用户ID
*/
private String userId;
/**
* 排序方式 0-创建时间倒叙1-最后一次处理时间倒叙
*/
private String orderType;
/**
* 项目状态 0-待处理5-已关闭10-已结案
*/
@NotNull(message = "项目状态不能为空")
private Integer itemState;
/**
* 项目ID
*/
private String itemId;
/**
* 项目IDList(能关联到问题录入的项目)
*/
private List<String> itemIdList;
}

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

@ -39,6 +39,19 @@ public class EpdcAppItemController {
return this.itemService.listItems(formDto);
}
/**
* 项目列表(问题采集使用)
* @Params: [formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.item.result.ItemResultDTO>>
* @Author: wanggongfeng
* @Date: 2021/7/5 16:39
*/
@GetMapping("listByQuestion")
public Result<List<ItemResultDTO>> listByQuestion(@RequestBody ItemByQuestionFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return this.itemService.listByQuestion(formDto);
}
/**
* 项目详情
* @Params: [formDto]

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

@ -18,15 +18,12 @@
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.*;
import com.elink.esua.epdc.dto.result.KpiItemTimeLimitByDeptResultDTO;
import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO;
import com.elink.esua.epdc.dto.events.form.GroupFormDTO;
import com.elink.esua.epdc.dto.item.ItemDTO;
import com.elink.esua.epdc.dto.item.ItemPendingHandleDTO;
import com.elink.esua.epdc.dto.item.form.ItemCategoryStatisticsFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemDetailFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemFormDTO;
import com.elink.esua.epdc.dto.item.form.ItemStatisticsFormDTO;
import com.elink.esua.epdc.dto.item.result.*;
import com.elink.esua.epdc.dto.result.KpiEvaluationAmountResultDTO;
import com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO;
@ -66,6 +63,16 @@ public interface ItemDao extends BaseDao<ItemEntity> {
*/
List<ItemResultDTO> selectListOfItems(ItemFormDTO formDto, int[] states);
/**
* 移动端-项目列表(问题采集使用)
*
* @Params: [formDto]
* @Return: java.util.List<com.elink.esua.epdc.dto.item.result.ItemResultDTO>
* @Author: wanggongfeng
* @Date: 2021/7/5 16:39
*/
List<ItemResultDTO> selectListOfItemsByQuestion(ItemByQuestionFormDTO formDto, int[] states);
/**
* 移动端-我的项目列表
*
@ -282,14 +289,14 @@ public interface ItemDao extends BaseDao<ItemEntity> {
*/
void deleteBatchItemHandleIds(@Param("ids") List<String> ids);
/**
* @Description: 根据项目id查询当前登录人所在部门以外的该项目关联的所有部门id
/**
* @Description: 根据项目id查询当前登录人所在部门以外的该项目关联的所有部门id
* @Param: [itemId] 项目id
* @Param: [deptId] 部门id
* @return: java.util.List<java.lang.Long>
* @Author: zy
* @Date: 2020-01-09
*/
* @return: java.util.List<java.lang.Long>
* @Author: zy
* @Date: 2020-01-09
*/
List<Long> queryDeptIdList(String itemId, Long deptId);
/**

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

@ -156,6 +156,16 @@ public interface ItemService extends BaseService<ItemEntity> {
*/
Result<List<ItemResultDTO>> listItems(ItemFormDTO formDto);
/**
* 移动端-项目列表(问题采集使用)
*
* @Params: [formDto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.item.result.ItemResultDTO>>
* @Author: wanggongfeng
* @Date: 2021/7/5 16:39
*/
Result<List<ItemResultDTO>> listByQuestion(ItemByQuestionFormDTO formDto);
/**
* 项目列表-移动app端用
*

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

@ -278,6 +278,18 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
return new Result<List<ItemResultDTO>>().ok(data);
}
@Override
public Result<List<ItemResultDTO>> listByQuestion(ItemByQuestionFormDTO formDto) {
int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
formDto.setPageIndex(pageIndex);
// 查询半年内的数据
formDto.setSomeMonthsAgo(DateUtils.addDateMonths(new Date(), -6));
// 查询数据状态
int[] states = {EventIssueItemState.ITEM_HANDLING, EventIssueItemState.ITEM_CLOSEING_CASE};
List<ItemResultDTO> data = baseDao.selectListOfItemsByQuestion(formDto, states);
return new Result<List<ItemResultDTO>>().ok(data);
}
/**
* 项目列表-移动app端用
*

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

@ -116,6 +116,97 @@
item.CREATED_TIME DESC,
img.IMG_URL
</select>
<select id="selectListOfItemsByQuestion" resultMap="itemsMap">
SELECT
item.ID,
item.EVENT_ID,
item.ITEM_CONTENT,
item.NICK_NAME,
item.USER_FACE,
item.IS_PARTY_MEMBER,
item.CREATED_TIME,
eve.APPROVE_NUM,
eve.OPPOSE_NUM,
eve.COMMENT_NUM,
( eve.APPROVE_NUM + eve.OPPOSE_NUM + eve.COMMENT_NUM + eve.BROWSE_NUM ) AS statementNum,
cate.CATEGORY_NAME,
img.IMG_URL,
hp.CREATED_TIME AS handleTime,
hp.OUT_HANDLE_ADVICE,
CASE
item.ITEM_STATE
WHEN 0 THEN
'处理中'
WHEN 5 THEN
'已关闭'
WHEN 10 THEN
'已结案' ELSE ''
END AS stateName
FROM
epdc_item item
LEFT JOIN epdc_events eve ON item.EVENT_ID = eve.ID
AND eve.DEL_FLAG = '0'
LEFT JOIN epdc_category cate ON item.FIRST_CATEGORY_CODE = cate.category_code
AND cate.DEL_FLAG = '0'
LEFT JOIN epdc_img img ON item.EVENT_ID = img.REFERENCE_ID
AND img.DEL_FLAG = '0'
AND img.IMG_TYPE = 'events'
LEFT JOIN epdc_item_handle_process hp ON item.ID = hp.ITEM_ID
AND hp.DEL_FLAG = '0'
AND hp.CREATED_TIME = ( SELECT MAX( a.CREATED_TIME ) FROM epdc_item_handle_process a WHERE a.DEL_FLAG = '0' AND a.ITEM_ID = hp.ITEM_ID )
WHERE
item.ID IN (
SELECT
temp.ID
FROM (
SELECT
t1.id
FROM epdc_item t1
LEFT JOIN epdc_events t2 ON t1.EVENT_ID = t2.ID AND t2.DEL_FLAG = '0'
WHERE t1.DEL_FLAG = '0'
AND t1.GRID_ID = #{formDto.deptId}
AND t1.ITEM_STATE IN
<foreach collection="states" item="state" index="no" open="("
separator="," close=")">
#{state}
</foreach>
AND t1.id IN
<foreach collection="formDto.itemIdList" index="index" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
<if test="formDto.someMonthsAgo != null">
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') >= ]]> #{formDto.someMonthsAgo}
</if>
<if test="formDto.timestamp != null">
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') <= ]]> #{formDto.timestamp}
</if>
<if test='formDto.searchContent != null and formDto.searchContent != ""'>
AND t1.ITEM_CONTENT LIKE CONCAT('%',#{formDto.searchContent},'%')
</if>
<if test='formDto.firstCategoryCode != null and formDto.firstCategoryCode != ""'>
AND t1.FIRST_CATEGORY_CODE = #{formDto.firstCategoryCode}
</if>
<if test='formDto.userId != null and formDto.userId != ""'>
AND t1.USER_ID = #{formDto.userId}
</if>
<if test='formDto.itemId != null and formDto.itemId != ""'>
AND t1.ID = #{formDto.itemId}
</if>
ORDER BY
<if test='formDto.orderType != null and formDto.orderType != "" and formDto.orderType == "1"'>
t1.LAST_HANDLE_TIME DESC
</if>
t1.CREATED_TIME DESC
LIMIT #{formDto.pageIndex},#{formDto.pageSize}
) temp
)
ORDER BY
<if test='formDto.orderType != null and formDto.orderType != "" and formDto.orderType == "1"'>
item.LAST_HANDLE_TIME DESC
</if>
item.CREATED_TIME DESC,
img.IMG_URL
</select>
<select id="selectListOfItemsByWork" resultMap="itemsMap">
SELECT
item.ID,

Loading…
Cancel
Save