Browse Source

【项目延期-熔断】-【列表记录显示】-(王童)-2021/2/1

feature/dangjian
Jackwang 5 years ago
parent
commit
2f4c7188da
  1. 100
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemHandleListDTO.java
  2. 7
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemFusingDelayController.java
  3. 14
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemFusingDelayDao.java
  4. 3
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemFusingDelayService.java
  5. 55
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemFusingDelayServiceImpl.java
  6. 97
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemFusingDelayDao.xml

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

@ -0,0 +1,100 @@
package com.elink.esua.epdc.dto.item.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 项目熔断-延期记录
* @Author wangtong
* @Date 2021/2/1 17:42
*/
@Data
public class ItemHandleListDTO implements Serializable {
private static final long serialVersionUID = -5197394552788076724L;
/**
* 项目ID
*/
private String id;
/**
* 项目内容
*/
private String itemContent;
/**
* 转项目时间
*/
private Date createdTime;
/**
* 提交人
*/
private String nickName;
/**
* 手机号
*/
private String mobile;
/**
* 项目满意度
*/
private String evaluationScore;
/**
* 支持数
*/
private Integer approveNum;
/**
* 反对数
*/
private Integer opposeNum;
/**
* 评论数
*/
private Integer commentNum;
/**
* 浏览数
*/
private Integer browseNum;
/**
* 参与数
*/
private Integer participantsNum;
/**
* 项目编号
*/
private String itemCode;
//-------------------------------------------------
/**
* 申请状态
*/
private String state;
/**
* 申请状态名称
*/
private String stateName;
/**
* 处理状态
*/
private String handleState;
/**
* 处理状态名称
*/
private String handleStateName;
/**
* 延期开始时间
*/
private String delayStartTime;
/**
* 延期结束时间
*/
private String delayEndTime;
}

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

@ -27,6 +27,7 @@ import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.item.ItemFusingDelayDTO;
import com.elink.esua.epdc.dto.item.form.ItemFusingDelayInsertDTO;
import com.elink.esua.epdc.dto.item.result.ItemHandleListDTO;
import com.elink.esua.epdc.modules.item.excel.ItemFusingDelayExcel;
import com.elink.esua.epdc.modules.item.service.ItemFusingDelayService;
import org.springframework.beans.factory.annotation.Autowired;
@ -51,9 +52,9 @@ public class ItemFusingDelayController {
private ItemFusingDelayService itemFusingDelayService;
@GetMapping("page")
public Result<PageData<ItemFusingDelayDTO>> page(@RequestParam Map<String, Object> params){
PageData<ItemFusingDelayDTO> page = itemFusingDelayService.page(params);
return new Result<PageData<ItemFusingDelayDTO>>().ok(page);
public Result<PageData<ItemHandleListDTO>> page(@RequestParam Map<String, Object> params){
PageData<ItemHandleListDTO> page = itemFusingDelayService.page(params);
return new Result<PageData<ItemHandleListDTO>>().ok(page);
}
@GetMapping("{id}")

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

@ -18,9 +18,13 @@
package com.elink.esua.epdc.modules.item.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.item.result.ItemHandleListDTO;
import com.elink.esua.epdc.modules.item.entity.ItemFusingDelayEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 项目熔断/延期记录表
*
@ -29,5 +33,13 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ItemFusingDelayDao extends BaseDao<ItemFusingDelayEntity> {
/**
* @describe: 项目 熔断-延期记录列表
* @author wangtong
* @date 2021/2/1 17:51
* @params [params]
* @return java.util.List<com.elink.esua.epdc.dto.item.result.ItemHandleListDTO>
*/
List<ItemHandleListDTO> selectHandleItemsList(Map<String, Object> params);
}

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

@ -21,6 +21,7 @@ import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.dto.item.ItemFusingDelayDTO;
import com.elink.esua.epdc.dto.item.form.ItemFusingDelayInsertDTO;
import com.elink.esua.epdc.dto.item.result.ItemHandleListDTO;
import com.elink.esua.epdc.modules.item.entity.ItemFusingDelayEntity;
import java.util.List;
@ -42,7 +43,7 @@ public interface ItemFusingDelayService extends BaseService<ItemFusingDelayEntit
* @author generator
* @date 2021-02-01
*/
PageData<ItemFusingDelayDTO> page(Map<String, Object> params);
PageData<ItemHandleListDTO> page(Map<String, Object> params);
/**
* 默认查询

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

@ -21,11 +21,18 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData;
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.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.item.ItemFusingDelayDTO;
import com.elink.esua.epdc.dto.item.form.ItemFusingDelayInsertDTO;
import com.elink.esua.epdc.dto.item.result.ItemHandleListDTO;
import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import com.elink.esua.epdc.modules.item.dao.ItemFusingDelayDao;
import com.elink.esua.epdc.modules.item.entity.ItemFusingDelayEntity;
import com.elink.esua.epdc.modules.item.redis.ItemFusingDelayRedis;
@ -35,6 +42,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -51,13 +59,44 @@ public class ItemFusingDelayServiceImpl extends BaseServiceImpl<ItemFusingDelayD
@Autowired
private ItemFusingDelayRedis itemFusingDelayRedis;
@Autowired
private AdminFeignClient adminFeignClient;
@Override
public PageData<ItemFusingDelayDTO> page(Map<String, Object> params) {
IPage<ItemFusingDelayEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, ItemFusingDelayDTO.class);
public PageData<ItemHandleListDTO> page(Map<String, Object> params) {
UserDetail user = SecurityUser.getUser();
if (null == user) {
throw new RuntimeException("获取用户信息失败");
}
if (OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT.equals(user.getTypeKey())) {
if (params.get("streetId") != null && !"".equals(params.get("streetId"))) {
Result<SysDeptDTO> resultdept = adminFeignClient.getSysDeptInfo(Long.parseLong(params.get("streetId").toString()));
SysDeptDTO dept = resultdept.getData();
Object deptId = params.get("streetId");
if (OrganizationTypeConstant.ORG_TYPE_DISTRICT_DEPT.equals(dept.getTypeKey())) {
params.put("districtDeptId", deptId);
params.remove("streetId");
}
}
}
//部门ID列表
List<Long> deptIdList = new ArrayList<>();
// 判断是否为网格,不为网格只能查看本部门下的项目数据
if (OrganizationTypeConstant.ORG_TYPE_GRID_PARTY.equals(user.getTypeKey())) {
deptIdList = user.getDeptIdList();
} else {
deptIdList.add(user.getDeptId());
}
params.put("deptIdList", null);
if (null != deptIdList && deptIdList.size() > 0) {
params.put("deptIdList", deptIdList);
}
if (null != params.get("itemCode")) {
params.put("itemCode", params.get("itemCode").toString().trim());
}
IPage<ItemHandleListDTO> page = getPage(params);
List<ItemHandleListDTO> list = baseDao.selectHandleItemsList(params);
return new PageData<>(list, page.getTotal());
}
@Override
@ -90,8 +129,8 @@ public class ItemFusingDelayServiceImpl extends BaseServiceImpl<ItemFusingDelayD
queryData.setItemId(dto.getItemId());
QueryWrapper<ItemFusingDelayEntity> wrapper = new QueryWrapper<>(queryData);
ItemFusingDelayEntity handleInfo = baseDao.selectOne(wrapper);
if(handleInfo != null){
throw new RenException("此项目已存在申请记录。");
if(handleInfo != null && handleInfo.getState().equals(dto.getState())){
throw new RenException("此项目已存在该项的申请记录。");
}
ItemFusingDelayEntity entity = ConvertUtils.sourceToTarget(dto, ItemFusingDelayEntity.class);
insert(entity);

97
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemFusingDelayDao.xml

@ -19,6 +19,103 @@
<result property="updatedTime" column="UPDATED_TIME"/>
<result property="delFlag" column="DEL_FLAG"/>
</resultMap>
<select id="selectHandleItemsList" resultType="com.elink.esua.epdc.dto.item.result.ItemHandleListDTO">
SELECT
item.ID,
item.ITEM_CONTENT,
item.ITEM_CODE,
item.CREATED_TIME,
item.NICK_NAME,
item.MOBILE,
CASE item.EVALUATION_SCORE
WHEN 0 THEN '不满意'
WHEN 1 THEN '基本满意'
WHEN 2 THEN '非常满意'
ELSE ''
END AS evaluationScore,
eve.APPROVE_NUM,
eve.OPPOSE_NUM,
eve.COMMENT_NUM,
eve.BROWSE_NUM,
( eve.APPROVE_NUM + eve.OPPOSE_NUM + eve.COMMENT_NUM + eve.BROWSE_NUM ) AS participantsNum,
ifd.state,
CASE ifd.state
WHEN 0 THEN '延期'
WHEN 5 THEN '熔断'
ELSE ''
END as stateName,
ifd.HANDLE_STATE,
CASE ifd.HANDLE_STATE
WHEN 10 THEN '通过'
WHEN 15 THEN '驳回'
ELSE ''
END as handleStateName,
ifd.DELAY_START_TIME,
ifd.DELAY_END_TIME
FROM
epdc_item item
LEFT JOIN epdc_events eve ON item.EVENT_ID = eve.ID
left join epdc_item_fusing_delay ifd on item.id=ifd.ITEM_ID
AND eve.DEL_FLAG = '0'
WHERE
item.DEL_FLAG = '0'
<if test="itemState != null and itemState != ''">
AND item.ITEM_STATE = #{itemState}
</if>
<if test="associatedType != null and associatedType != ''">
AND item.ITEM_STATE in (0,10)
</if>
<if test="keyword != null and keyword != ''">
AND item.ITEM_CONTENT like concat('%', trim(#{keyword}), '%')
</if>
AND item.ID IN (
SELECT
temp.ITEM_ID
FROM
( SELECT dept.ITEM_ID FROM epdc_item_dept dept WHERE dept.DEL_FLAG = '0'
<if test="deptIdList != null">
AND dept.DEPT_ID IN
<foreach item="deptId" collection="deptIdList" open="(" separator="," close=")">
#{deptId}
</foreach>
</if>
<if test="districtDeptId != null and districtDeptId != ''">
AND dept.DEPT_ID = #{districtDeptId}
</if>
) temp
)
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( item.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
<if test="gridId != null and gridId != ''">
AND (item.GRID_ID = #{gridId}
OR find_in_set(#{gridId},item.ALL_DEPT_IDS))
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},item.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},item.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},item.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},item.ALL_DEPT_IDS))
</if>
<if test="itemCode != null and itemCode != ''">
AND item.ITEM_CODE like concat('%', #{itemCode}, '%')
</if>
<if test="itemContent != null and itemContent != ''">
AND item.ITEM_CONTENT like concat('%', #{itemContent}, '%')
</if>
<if test="nickName != null and nickName != ''">
AND item.NICK_NAME like concat('%', #{nickName}, '%')
</if>
<if test="mobile != null and mobile != ''">
AND item.MOBILE like concat('%', #{mobile}, '%')
</if>
ORDER BY
ifd.CREATED_TIME DESC
</select>
</mapper>
Loading…
Cancel
Save