|
|
|
@ -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(); |
|
|
|
} |
|
|
|
} |
|
|
|
|