Browse Source

议题处理,增加吹哨并转项目

feature/syp_points
zhangyongzhangyong 5 years ago
parent
commit
c79a702fdd
  1. 7
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/pom.xml
  2. 5
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/constant/EventIssueItemState.java
  3. 6
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleDetailDTO.java
  4. 7
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/form/IssueWaitHandleSubmitFormDTO.java
  5. 109
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java

7
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/pom.xml

@ -147,6 +147,13 @@
<nacos.register-enabled>false</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.register.ip></nacos.register.ip>
<nacos.ip>47.104.224.45</nacos.ip>
<nacos.namespace>fa5bf520-09c1-410c-a876-28e98c0534d3</nacos.namespace>
<!--RocketMQ-->
<rocketmq.name.server>47.104.85.99:9876;114.215.125.123:9876</rocketmq.name.server>
<rocketmq.producer.group>jinshui-pointsGroup</rocketmq.producer.group>
<rocketmq.consumer.points.group>jinshui-pointsGroup</rocketmq.consumer.points.group>
</properties>
</profile>

5
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/constant/EventIssueItemState.java

@ -69,4 +69,9 @@ public interface EventIssueItemState {
* 项目状态字段
*/
String ITEM_STATE = "ITEM_STATE";
/**
* 议题-转为项目并吹哨
*/
int ISSUE_CHANGE_TO_ITEM_AND_CIRCULATION_ASSISTANCE = 6;
}

6
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleDetailDTO.java

@ -1,6 +1,7 @@
package com.elink.esua.epdc.dto.issue;
import com.elink.esua.epdc.dto.issue.result.IssueProgressResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemCirculationDeptResultDTO;
import lombok.Data;
import java.io.Serializable;
@ -74,4 +75,9 @@ public class IssueWaitHandleDetailDTO implements Serializable {
* 友邻社群
*/
private String groupName;
/**
* 可流转部门
*/
private List<ItemCirculationDeptResultDTO> deptResultDTOLIST;
}

7
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/form/IssueWaitHandleSubmitFormDTO.java

@ -1,5 +1,6 @@
package com.elink.esua.epdc.dto.issue.form;
import com.elink.esua.epdc.dto.item.result.ItemCirculationDeptResultDTO;
import lombok.Data;
import javax.validation.constraints.NotNull;
@ -26,7 +27,7 @@ public class IssueWaitHandleSubmitFormDTO implements Serializable {
@Size(min = 1, max = 500, message = "处理意见在500字以内")
private String advice;
/**
* 状态 1 添加处理意见2 关闭4 转项目
* 状态 1 添加处理意见2 关闭4 转项目6 转项目并吹哨
*/
@NotNull(message = "处理操作不能为空")
private Integer state;
@ -41,4 +42,8 @@ public class IssueWaitHandleSubmitFormDTO implements Serializable {
*/
private String userId;
/**
* 流转协助部门
*/
private List<ItemCirculationDeptResultDTO> deptResultDTOS;
}

109
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java

@ -22,6 +22,7 @@ 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.NumConstant;
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;
@ -34,6 +35,7 @@ import com.elink.esua.epdc.constant.EventsNoticeConstant;
import com.elink.esua.epdc.constant.ImageConstant;
import com.elink.esua.epdc.constant.SysSmsTemplateConstant;
import com.elink.esua.epdc.constants.MenuCodeConstant;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.MenuNoticeDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
@ -43,12 +45,17 @@ import com.elink.esua.epdc.dto.form.SmsNoticeFormDTO;
import com.elink.esua.epdc.dto.issue.*;
import com.elink.esua.epdc.dto.issue.form.*;
import com.elink.esua.epdc.dto.issue.result.*;
import com.elink.esua.epdc.dto.item.ItemDeptDTO;
import com.elink.esua.epdc.dto.item.form.ItemHandleSubmitFormDTO;
import com.elink.esua.epdc.dto.item.result.ItemCirculationDeptResultDTO;
import com.elink.esua.epdc.dto.item.result.ItemHandleProgressResultDTO;
import com.elink.esua.epdc.enums.ItemHandleCategoryEnum;
import com.elink.esua.epdc.modules.async.IssueOverseeResultsTask;
import com.elink.esua.epdc.modules.async.NewsTask;
import com.elink.esua.epdc.modules.comment.service.EventCommentService;
import com.elink.esua.epdc.modules.events.service.EpdcEventsService;
import com.elink.esua.epdc.modules.events.service.ImgService;
import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import com.elink.esua.epdc.modules.feign.GroupFeignClient;
import com.elink.esua.epdc.modules.issue.dao.IssueDao;
import com.elink.esua.epdc.modules.issue.entity.IssueEntity;
@ -109,6 +116,9 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
@Autowired
private IssueOverseeResultsTask issueOverseeResultsTask;
@Autowired
private AdminFeignClient adminFeignClient;
@Override
public PageData<IssueWaitHandleOrClosedDTO> listOfIssues(Map<String, Object> params) {
IPage<IssueWaitHandleOrClosedDTO> page = getPage(params);
@ -170,6 +180,9 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
List<IssueProgressResultDTO> issueProgressResultDTOS = this.listIssueProgress(id);
detailDto.setIssueProgressResultDTOS(issueProgressResultDTOS);
// 获取可流转部门
List<ItemCirculationDeptResultDTO> deptList = itemService.listWhistlingDept();
detailDto.setDeptResultDTOLIST(deptList);
return detailDto;
}
@ -187,6 +200,15 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
IssueEntity issueEntity = new IssueEntity();
issueEntity.setId(dto.getId());
issueEntity.setIssueState(dto.getState());
//锦水前端传的 转项目并吹哨状态=6,数据库实际存储为 转项目=4
if(EventIssueItemState.ISSUE_CHANGE_TO_ITEM_AND_CIRCULATION_ASSISTANCE == dto.getState()){
// 项目流转校验
Result checkResult = this.checkItemCirculation(dto);
if (!checkResult.success()) {
return checkResult;
}
issueEntity.setIssueState(EventIssueItemState.ISSUE_CHANGE_TO_ITEM);
}
IssueEntity entity = this.selectById(dto.getId());
// 组装发送消息内容
@ -210,10 +232,14 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
}
}
// 关闭、转项目
if (EventIssueItemState.ISSUE_CLOSED == dto.getState() || EventIssueItemState.ISSUE_CHANGE_TO_ITEM == dto.getState()) {
// 锦水 + 转项目并吹哨
String itemId = "";
if (EventIssueItemState.ISSUE_CLOSED == dto.getState() || EventIssueItemState.ISSUE_CHANGE_TO_ITEM == dto.getState()
|| EventIssueItemState.ISSUE_CHANGE_TO_ITEM_AND_CIRCULATION_ASSISTANCE == dto.getState()) {
updateById(issueEntity);
// 转项目
if (EventIssueItemState.ISSUE_CHANGE_TO_ITEM == dto.getState()) {
if (EventIssueItemState.ISSUE_CHANGE_TO_ITEM == dto.getState()
|| EventIssueItemState.ISSUE_CHANGE_TO_ITEM_AND_CIRCULATION_ASSISTANCE == dto.getState()) {
informationFormDTO.setTitle(EventsNoticeConstant.NOTICE_ISSUE_CHANGE_TO_ITEM);
informationFormDTO.setBusinessType(EventsNoticeConstant.NOTICE_BUSINESS_TYPE_ITEM);
// 插入项目表
@ -221,7 +247,8 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
itemService.insert(itemEntity);
// 插入项目处理流程表
ItemHandleProcessEntity itemHandleProcessEntity = new ItemHandleProcessEntity();
itemHandleProcessEntity.setItemId(itemEntity.getId());
itemId = itemEntity.getId();
itemHandleProcessEntity.setItemId(itemId);
itemHandleProcessEntity.setState(EventIssueItemState.ITEM_HANDLING);
itemHandleProcessEntity.setHandleAdvice(dto.getAdvice());
itemHandleProcessEntity.setOutHandleAdvice(dto.getAdvice());
@ -267,6 +294,15 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
// 发送菜单消息-议题待处理
this.sendIssueHandleMenuNotice(entity.getGridId(), null);
// 孔村+ 转为项目并吹哨
if (EventIssueItemState.ISSUE_CHANGE_TO_ITEM_AND_CIRCULATION_ASSISTANCE == dto.getState()) {
// 组装数据
if (itemId != ""){
this.issueChangeToItemAndCirculationAssistance(itemId,dto.getAdvice(),dto.getDeptResultDTOS());
}else {
return new Result().error("转项目并吹哨失败,项目id不能为空");
}
}
return new Result();
}
@ -482,13 +518,13 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
return baseDao.selectListIssueProgress(issueId);
}
/**
/**
* @Description: 议题待处理事件 议题转项目结果短信通知 议题发起人
* @Param: [userId]
* @return: void
* @Author: zy
* @Date: 2020-01-08
*/
* @return: void
* @Author: zy
* @Date: 2020-01-08
*/
private void issueSmsNotification(String userMobiles){
List<String> list = new ArrayList<>();
list.add(userMobiles);
@ -603,4 +639,61 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
// 更新议题表党员群名称
baseDao.updateBatchPartyGroupName(groups);
}
/**
* @Description: 孔村 转项目并吹哨数据统计调用原项目吹哨方法
* @Param: [itemId, advice,List<ItemCirculationDeptResultDTO]
* @return: void
* @Author: zy
* @Date: 2020/06/01
*/
private void issueChangeToItemAndCirculationAssistance(String itemId, String advice,List<ItemCirculationDeptResultDTO> deptResultDTOS){
ItemHandleSubmitFormDTO dto = new ItemHandleSubmitFormDTO();
dto.setId(itemId);
dto.setHandleCategory(ItemHandleCategoryEnum.HANDLE_CIRCULATION_ASSISTANCE.getValue());
dto.setHandleAdvice(advice);
dto.setOutHandleAdvice(advice);
dto.setDeptResultDTOS(deptResultDTOS); //流转协助部门
itemService.modifyHandleResult(dto);
}
/**
* 项目流转校验
*
* @Params: [dto]
* @Return: com.elink.esua.epdc.commons.tools.utils.Result
* @Author: zy
* @Date: 2020/06/01 19:42
*/
private Result checkItemCirculation(IssueWaitHandleSubmitFormDTO dto) {
// 判断流转部门不能为空
if (null == dto.getDeptResultDTOS() || dto.getDeptResultDTOS().size() <= 0) {
return new Result().error("请选择流转协助部门");
}
// 校验是否跨级流转
String typeKey = "";
for (ItemCirculationDeptResultDTO circulationDeptResultDTO :
dto.getDeptResultDTOS()) {
if (!"".equals(typeKey) && !typeKey.equals(circulationDeptResultDTO.getTypeKey())) {
return new Result().error("不可跨级流转协助,请重新选择流转协助部门");
}
typeKey = circulationDeptResultDTO.getTypeKey();
}
// 如果当前流转协助是网格发起,判断其街道党工委是否已将该项目流转协助
UserDetail user = SecurityUser.getUser();
if (OrganizationTypeConstant.ORG_TYPE_GRID_PARTY.equals(user.getTypeKey())) {
Result<CompleteDeptDTO> completeDept = adminFeignClient.getCompleteDept(SecurityUser.getDeptId());
if (!completeDept.success()) {
return new Result().error("获取机构信息失败,请稍后重试");
}
// 获取街道党工委已流转协助部门
List<ItemDeptDTO> itemDeptDTOS = itemDeptService.listOfItemDept(dto.getId(), completeDept.getData().getStreetId());
if (null != itemDeptDTOS && itemDeptDTOS.size() > 0) {
return new Result().error(completeDept.getData().getStreet() + "已将该项目流转协助到其他部门,不能重新流转协助");
}
}
return new Result();
}
}

Loading…
Cancel
Save