Browse Source

党群议事菜单消息数据统计 init

dev
liuchuang 6 years ago
parent
commit
7527e64c39
  1. 15
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
  2. 11
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java
  3. 11
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java
  4. 5
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java
  5. 11
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml
  6. 4
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/ServiceConstant.java
  7. 5
      esua-epdc/epdc-module/epdc-events/epdc-events-client/pom.xml
  8. 32
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/MenuNoticeDTO.java
  9. 39
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/async/NewsTask.java
  10. 15
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/EpdcEventsController.java
  11. 11
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/dao/EpdcEventsDao.java
  12. 11
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/EpdcEventsService.java
  13. 67
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java
  14. 24
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/AdminFeignClient.java
  15. 30
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/WebsocketFeignClient.java
  16. 11
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/AdminFeignClientFallback.java
  17. 20
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/WebsocketFeignClientFallback.java
  18. 11
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java
  19. 11
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java
  20. 19
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/impl/IssueServiceImpl.java
  21. 22
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java
  22. 11
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDeptDao.java
  23. 11
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemDeptService.java
  24. 22
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java
  25. 5
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemDeptServiceImpl.java
  26. 52
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java
  27. 4
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/EpdcEventsDao.xml
  28. 12
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml
  29. 58
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml
  30. 4
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDeptDao.xml
  31. 26
      esua-epdc/epdc-module/epdc-websocket/epdc-websocket-server/src/main/java/com/elink/esua/epdc/constants/MenuCodeConstant.java

15
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java

@ -224,4 +224,19 @@ public class SysUserController {
return sysUserService.listGridWhileLeaderRegister(mobile);
}
/**
*
* 获取部门下的所有用户ID
*
* @params [deptId]
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<java.lang.Long>>
* @author liuchuang
* @since 2019/10/29 17:31
*/
@GetMapping("ids/{deptId}")
public Result<List<Long>> getUserIdsByDeptIds(@PathVariable("deptId") Long deptId) {
List<Long> data = sysUserService.listOfUserIdsByDeptId(deptId);
return new Result<List<Long>>().ok(data);
}
}

11
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysUserDao.java

@ -48,4 +48,15 @@ public interface SysUserDao extends BaseDao<SysUserEntity> {
* @date 2019/10/22 16:27
*/
List<String> selectListLeaderGridId(@Param("mobile") String mobile);
/**
*
* 获取部门下的所有用户ID
*
* @params [deptId]
* @return java.util.List<java.lang.Long>
* @author liuchuang
* @since 2019/10/29 16:18
*/
List<Long> selectListOfUserIdsByDeptId(@Param("deptId") Long deptId);
}

11
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysUserService.java

@ -62,4 +62,15 @@ public interface SysUserService extends BaseService<SysUserEntity> {
* @date 2019/10/22 16:19
*/
Result<GridLeaderRegisterDTO> listGridWhileLeaderRegister(String mobile);
/**
*
* 获取部门下的所有用户ID
*
* @params [deptId]
* @return java.util.List<java.lang.Long>
* @author liuchuang
* @since 2019/10/29 16:14
*/
List<Long> listOfUserIdsByDeptId(Long deptId);
}

5
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysUserServiceImpl.java

@ -195,4 +195,9 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserDao, SysUserEntit
result.setLeaderGridList(gridForLeaderList);
return new Result<GridLeaderRegisterDTO>().ok(result);
}
@Override
public List<Long> listOfUserIdsByDeptId(Long deptId) {
return baseDao.selectListOfUserIdsByDeptId(deptId);
}
}

11
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysUserDao.xml

@ -77,4 +77,15 @@
d.create_date DESC
</select>
<select id="selectListOfUserIdsByDeptId" resultType="long">
SELECT
ID
FROM
sys_user
WHERE
del_flag = '0'
AND `status` = 1
AND dept_id = #{deptId}
</select>
</mapper>

4
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/ServiceConstant.java

@ -71,4 +71,8 @@ public interface ServiceConstant {
* DEMO服务
*/
String EPDC_DEMO_SERVER = "epdc-demo-server";
/**
* websocket服务
*/
String EPDC_WEBSOCKET_SERVER = "epdc-websocket-server";
}

5
esua-epdc/epdc-module/epdc-events/epdc-events-client/pom.xml

@ -28,6 +28,11 @@
<artifactId>epdc-news-client</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-websocket-server</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>

32
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/MenuNoticeDTO.java

@ -0,0 +1,32 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import java.io.Serializable;
/**
*
* 菜单通知DTO
*
* @Authorliuchuang
* @Date2019/10/29 17:03
*/
@Data
public class MenuNoticeDTO implements Serializable {
private static final long serialVersionUID = -9183650682608160248L;
/**
* 菜单编码
*/
private String menuCode;
/**
* 通知部门
*/
private Long deptId;
/**
* 消息数量
*/
private Integer num;
}

39
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/async/NewsTask.java

@ -1,11 +1,18 @@
package com.elink.esua.epdc.modules.async;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.EventMenuNoticeDto;
import com.elink.esua.epdc.dto.MenuNoticeDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import com.elink.esua.epdc.modules.feign.NewsFeignClient;
import com.elink.esua.epdc.modules.feign.WebsocketFeignClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 新闻通知消息模块 线程任务
*
@ -18,6 +25,12 @@ public class NewsTask {
@Autowired
private NewsFeignClient newsFeignClient;
@Autowired
private WebsocketFeignClient websocketFeignClient;
@Autowired
private AdminFeignClient adminFeignClient;
/**
* 给用户发送消息
*
@ -30,4 +43,30 @@ public class NewsTask {
public void insertUserInformation(EpdcInformationFormDTO informationDto) {
newsFeignClient.saveInformation(informationDto);
}
/**
*
* 党群议事-菜单消息
*
* @params [dto]
* @return void
* @author liuchuang
* @since 2019/10/29 15:26
*/
@Async
public void eventMenuNotice(MenuNoticeDTO menuNoticeDTO) {
// 获取部门下所有用户ID
Result<List<Long>> listResult = adminFeignClient.getUserIdsByDeptIds(menuNoticeDTO.getDeptId());
EventMenuNoticeDto eventMenuNoticeDto = new EventMenuNoticeDto();
eventMenuNoticeDto.setMenuCode(menuNoticeDTO.getMenuCode());
eventMenuNoticeDto.setNum(menuNoticeDTO.getNum());
if (listResult.success()) {
for (Long userId:
listResult.getData()) {
eventMenuNoticeDto.setUserId(userId.toString());
// 给用户发送菜单消息
websocketFeignClient.eventMenuNotice(eventMenuNoticeDto);
}
}
}
}

15
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/controller/EpdcEventsController.java

@ -145,4 +145,19 @@ public class EpdcEventsController {
return new Result<EpdcRejectEventDetailDTO>().ok(data);
}
/**
*
* 初始化党群议事菜单消息
*
* @params []
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/30 13:43
*/
@GetMapping("initMenuNotice")
public Result initMenuNotice() {
epdcEventsService.initMenuNotice();
return new Result();
}
}

11
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/dao/EpdcEventsDao.java

@ -113,4 +113,15 @@ public interface EpdcEventsDao extends BaseDao<EpdcEventsEntity> {
* @Date: 2019/9/17 17:44
*/
EventAppDetailResultDTO selectOneOfEventDetail(String eventId);
/**
*
* 根据网格ID 状态获取事件数量
*
* @params [deptId, state]
* @return int
* @author liuchuang
* @since 2019/10/30 12:36
*/
int selectCountOfDeptNotice(Long deptId, int state);
}

11
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/EpdcEventsService.java

@ -156,4 +156,15 @@ public interface EpdcEventsService extends BaseService<EpdcEventsEntity> {
* @Date: 2019/9/17 17:36
*/
Result<EventAppDetailResultDTO> getEventDetail(String eventId);
/**
*
* 初始化党群议事菜单消息
*
* @params []
* @return void
* @author liuchuang
* @since 2019/10/30 13:43
*/
void initMenuNotice();
}

67
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/events/service/impl/EpdcEventsServiceImpl.java

@ -20,8 +20,8 @@ package com.elink.esua.epdc.modules.events.service.impl;
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.Constant;
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.page.PageData;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
@ -30,6 +30,9 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.EventIssueItemState;
import com.elink.esua.epdc.constant.EventsNoticeConstant;
import com.elink.esua.epdc.constant.ImageConstant;
import com.elink.esua.epdc.constants.MenuCodeConstant;
import com.elink.esua.epdc.dto.MenuNoticeDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.events.*;
import com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO;
@ -40,18 +43,18 @@ import com.elink.esua.epdc.modules.events.dao.EpdcEventsDao;
import com.elink.esua.epdc.modules.events.entity.EpdcEventsEntity;
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.issue.entity.IssueEntity;
import com.elink.esua.epdc.modules.issue.entity.IssueHandleEntity;
import com.elink.esua.epdc.modules.issue.service.IssueHandleService;
import com.elink.esua.epdc.modules.issue.service.IssueService;
import com.elink.esua.epdc.modules.item.service.ItemService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 事件表 事件表
@ -74,6 +77,12 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
@Autowired
private NewsTask newsTask;
@Autowired
private AdminFeignClient adminFeignClient;
@Autowired
private ItemService itemService;
@Override
public PageData<EpdcEventsDTO> listOfPendingReviewEvents(Map<String, Object> params) {
IPage<EpdcEventsDTO> page = getPage(params);
@ -119,6 +128,9 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
// 保存图片
imgService.saveImages(dto.getImages(), entity.getId(), ImageConstant.TYPE_IMAGE_BIZ_EVENTS);
// 发送菜单消息-议题待回应
this.sendMenuNoticeOfEventRespond(entity.getGridId());
}
@Override
@ -179,10 +191,16 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
informationFormDTO.setBusinessId(issueEntity.getId());
informationFormDTO.setTitle(EventsNoticeConstant.NOTICE_EVENT_PASSED);
informationFormDTO.setBusinessType(EventsNoticeConstant.NOTICE_BUSINESS_TYPE_ISSUE);
// 发送菜单消息-议题待处理
issueService.sendIssueHandleMenuNotice(issueEntity.getGridId());
}
// 发送消息
newsTask.insertUserInformation(informationFormDTO);
// 发送菜单消息-议题待回应
this.sendMenuNoticeOfEventRespond(eventsEntity.getGridId());
return new Result();
}
@ -223,6 +241,27 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
return new Result<EventAppDetailResultDTO>().ok(data);
}
@Override
public void initMenuNotice() {
Long deptId = SecurityUser.getDeptId();
// 获取部门信息
Result<SysDeptDTO> dtoResult = adminFeignClient.getSysDeptInfo(deptId);
if (dtoResult.success()) {
// 网格用户
if (OrganizationTypeConstant.ORG_TYPE_GRID_PARTY.equals(dtoResult.getData().getTypeKey())) {
// 议题-待回应
this.sendMenuNoticeOfEventRespond(deptId);
// 议题-待处理
issueService.sendIssueHandleMenuNotice(deptId);
// 项目-待处理项目-网格用户
itemService.sendItemHandleMenuNotice(deptId);
} else {
// 项目-待处理项目-吹哨部门用户
itemService.sendWhistlingDeptItemHandleMenuNotice(Collections.singletonList(deptId));
}
}
}
/**
* 初始化议题
* @Params: [entity]
@ -283,4 +322,24 @@ public class EpdcEventsServiceImpl extends BaseServiceImpl<EpdcEventsDao, EpdcEv
public void updateOpposeNumSubtract(String eventId) {
baseDao.updateOpposeNumSubtract(eventId);
}
/**
*
* 菜单消息-议题待回应
*
* @params [deptId]
* @return void
* @author liuchuang
* @since 2019/10/29 18:05
*/
private void sendMenuNoticeOfEventRespond(Long deptId) {
// 获取部门待审核事件数量
int num = baseDao.selectCountOfDeptNotice(deptId, EventIssueItemState.EVENT_PENDING_REVIEW);
MenuNoticeDTO menuNoticeDTO = new MenuNoticeDTO();
menuNoticeDTO.setDeptId(deptId);
menuNoticeDTO.setNum(num);
menuNoticeDTO.setMenuCode(MenuCodeConstant.PARTY_GROUP_DISCUSSION_EVENT_RESPOND);
// 发送菜单消息通知
newsTask.eventMenuNotice(menuNoticeDTO);
}
}

24
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/AdminFeignClient.java

@ -41,4 +41,28 @@ public interface AdminFeignClient {
*/
@GetMapping("sys/dept/getCirculationDept/{deptId}")
Result<List<SysDeptDTO>> listOfItemCirculationDept(@PathVariable("deptId") Long deptId);
/**
*
* 获取部门下的所有用户ID
*
* @params [deptIds]
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<java.lang.Long>>
* @author liuchuang
* @since 2019/10/29 16:22
*/
@GetMapping("sys/user/ids/{deptId}")
Result<List<Long>> getUserIdsByDeptIds(@PathVariable("deptId") Long deptId);
/**
*
* 获取部门信息
*
* @params [id]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.SysDeptDTO>
* @author liuchuang
* @since 2019/10/30 14:11
*/
@GetMapping("sys/dept/{id}")
Result<SysDeptDTO> getSysDeptInfo(@PathVariable("id") Long id);
}

30
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/WebsocketFeignClient.java

@ -0,0 +1,30 @@
package com.elink.esua.epdc.modules.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.dto.EventMenuNoticeDto;
import com.elink.esua.epdc.modules.feign.fallback.WebsocketFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
/**
*
* websocket模块调用
*
* @Authorliuchuang
* @Date2019/10/29 15:02
*/
@FeignClient(name = ServiceConstant.EPDC_WEBSOCKET_SERVER, fallback = WebsocketFeignClientFallback.class, url = "http://127.0.0.1:9988")
public interface WebsocketFeignClient {
/**
*
* 党群议事模块-消息通知
*
* @params [message]
* @return java.lang.String
* @author liuchuang
* @since 2019/10/29 15:17
*/
@GetMapping("ws/eventMenu/notice")
String eventMenuNotice(EventMenuNoticeDto dto);
}

11
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/AdminFeignClientFallback.java

@ -7,6 +7,7 @@ import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysDeptDTO;
import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
@ -27,4 +28,14 @@ public class AdminFeignClientFallback implements AdminFeignClient {
public Result<List<SysDeptDTO>> listOfItemCirculationDept(Long deptId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "listOfItemCirculationDept", deptId);
}
@Override
public Result<List<Long>> getUserIdsByDeptIds(Long deptId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getUserIdsByDeptIds", deptId);
}
@Override
public Result<SysDeptDTO> getSysDeptInfo(@PathVariable("id") Long id) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getSysDeptInfo", id);
}
}

20
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/feign/fallback/WebsocketFeignClientFallback.java

@ -0,0 +1,20 @@
package com.elink.esua.epdc.modules.feign.fallback;
import com.alibaba.fastjson.JSON;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.dto.EventMenuNoticeDto;
import com.elink.esua.epdc.modules.feign.WebsocketFeignClient;
import org.springframework.stereotype.Component;
/**
* @Authorliuchuang
* @Date2019/10/29 15:02
*/
@Component
public class WebsocketFeignClientFallback implements WebsocketFeignClient {
@Override
public String eventMenuNotice(EventMenuNoticeDto dto) {
return "系统内部异常:{name="+ServiceConstant.EPDC_WEBSOCKET_SERVER+",method=eventMenuNotice,formDto="+ JSON.toJSONString(dto)+"}";
}
}

11
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/dao/IssueDao.java

@ -130,4 +130,15 @@ public interface IssueDao extends BaseDao<IssueEntity> {
*/
List<IssuesAndEventsOfMineResultDTO> selectListOfIssuesAndEventsOfMine(IssuesAndEventsOfMineFormDTO formDTO);
/**
*
* 根据网格ID 状态获取议题
*
* @params [deptId, state]
* @return int
* @author liuchuang
* @since 2019/10/30 12:42
*/
int selectCountOfDeptNotice(Long deptId, int state);
}

11
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/issue/service/IssueService.java

@ -201,4 +201,15 @@ public interface IssueService extends BaseService<IssueEntity> {
* @Date: 2019/9/17 17:36
*/
Result<EventAppDetailResultDTO> getEventDetail(String eventId);
/**
*
* 发送菜单消息-议题待处理
*
* @params [deptId]
* @return void
* @author liuchuang
* @since 2019/10/29 18:13
*/
void sendIssueHandleMenuNotice(Long deptId);
}

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

@ -31,6 +31,8 @@ import com.elink.esua.epdc.commons.tools.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.EventIssueItemState;
import com.elink.esua.epdc.constant.EventsNoticeConstant;
import com.elink.esua.epdc.constants.MenuCodeConstant;
import com.elink.esua.epdc.dto.MenuNoticeDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
import com.elink.esua.epdc.dto.events.result.EventAppDetailResultDTO;
@ -205,11 +207,16 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
itemDeptService.insert(itemDeptEntity);
informationFormDTO.setBusinessId(itemEntity.getId());
// 发送菜单消息-待处理项目
itemService.sendItemHandleMenuNotice(itemEntity.getGridId());
}
}
// 发送消息
newsTask.insertUserInformation(informationFormDTO);
// 发送菜单消息-议题待处理
this.sendIssueHandleMenuNotice(entity.getGridId());
return new Result();
}
@ -304,6 +311,18 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
return epdcEventsService.getEventDetail(eventId);
}
@Override
public void sendIssueHandleMenuNotice(Long deptId) {
// 获取部门待处理事件数量
int num = baseDao.selectCountOfDeptNotice(deptId, EventIssueItemState.ISSUE_REVIEW_PASS);
MenuNoticeDTO menuNoticeDTO = new MenuNoticeDTO();
menuNoticeDTO.setDeptId(deptId);
menuNoticeDTO.setNum(num);
menuNoticeDTO.setMenuCode(MenuCodeConstant.PARTY_GROUP_DISCUSSION_ISSUE_HANDLE);
// 发送菜单消息通知
newsTask.eventMenuNotice(menuNoticeDTO);
}
/**
* 初始化项目
* @Params: [issueEntity]

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

@ -112,4 +112,26 @@ public interface ItemDao extends BaseDao<ItemEntity> {
*/
ItemContentForPCEndResultDTO selectItemContentForPCEnd(String itemId);
/**
*
* 项目处理发送菜单消息
*
* @params [deptId, state]
* @return int
* @author liuchuang
* @since 2019/10/30 13:28
*/
int selectCountOfItemDeptNotice(Long deptId, int state);
/**
*
* 根据吹哨部门ID统计吹哨部门待处理项目数量
*
* @params [deptId]
* @return int
* @author liuchuang
* @since 2019/10/30 13:33
*/
int selectCountOfItemWhistlingDeptNotice(Long deptId);
}

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

@ -42,6 +42,17 @@ public interface ItemDeptDao extends BaseDao<ItemDeptEntity> {
*/
List<ItemDeptDTO> getItemDept(String itemId, Long createdDeptId);
/**
*
* 获取已流转部门ID
*
* @params [itemId, createdDeptId]
* @return java.util.List<java.lang.Long>
* @author liuchuang
* @since 2019/10/30 11:17
*/
List<Long> selectListWhistlingDeptIds(String itemId, Long createdDeptId);
/**
* 删除已流转协助部门
* @Params: [createdDeptId]

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

@ -52,6 +52,17 @@ public interface ItemDeptService extends BaseService<ItemDeptEntity> {
*/
List<ItemDeptDTO> listOfItemDept(String itemId, Long createdDeptId);
/**
*
* 获取已流转部门ID
*
* @params [itemId, createdDeptId]
* @return java.util.List<java.lang.Long>
* @author liuchuang
* @since 2019/10/30 11:16
*/
List<Long> listOfWhistlingDeptIds(String itemId, Long createdDeptId);
/**
* 删除已流转协助部门
* @Params: [createdDeptId]

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

@ -208,4 +208,26 @@ public interface ItemService extends BaseService<ItemEntity> {
* @Date: 2019/9/17 13:37
*/
Result<List<ItemResultDTO>> listItemsOfMine(ItemOfMineFormDTO formDTO);
/**
*
* 项目处理发送菜单消息
*
* @params [deptId]
* @return void
* @author liuchuang
* @since 2019/10/30 9:12
*/
void sendItemHandleMenuNotice(Long deptId);
/**
*
* 项目处理发送菜单消息-吹哨部门
*
* @params [deptIds]
* @return void
* @author liuchuang
* @since 2019/10/30 12:26
*/
void sendWhistlingDeptItemHandleMenuNotice(List<Long> deptIds);
}

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

@ -53,6 +53,11 @@ public class ItemDeptServiceImpl extends BaseServiceImpl<ItemDeptDao, ItemDeptEn
return baseDao.getItemDept(itemId, createdDeptId);
}
@Override
public List<Long> listOfWhistlingDeptIds(String itemId, Long createdDeptId) {
return baseDao.selectListWhistlingDeptIds(itemId, createdDeptId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void modifyItemDepts(Long createdDeptId, String itemId) {

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

@ -32,7 +32,9 @@ import com.elink.esua.epdc.commons.tools.utils.DateUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.constant.EventIssueItemState;
import com.elink.esua.epdc.constant.EventsNoticeConstant;
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.SysDeptDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO;
@ -419,6 +421,8 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
}
handleProcessEntity.setState(EventIssueItemState.ITEM_HANDLING);
// 获取已流转部门信息
List<Long> oldDeptIds = itemDeptService.listOfWhistlingDeptIds(dto.getId(), SecurityUser.getDeptId());
// 删除已流转协助部门
itemDeptService.modifyItemDepts(SecurityUser.getDeptId(), dto.getId());
// 记录处理记录
@ -429,6 +433,18 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
itemHandleProcessService.insert(handleProcessEntity);
// 新增流转协助部门
itemDeptService.saveItemDepts(SecurityUser.getDeptId(), dto, handleProcessEntity.getId());
List<ItemCirculationDeptResultDTO> circulationDeptResultDTOS = dto.getDeptResultDTOS();
List<Long> newDeptIds = new ArrayList<>();
for (ItemCirculationDeptResultDTO circulationDto:
circulationDeptResultDTOS) {
newDeptIds.add(circulationDto.getDeptId());
}
TreeSet<Long> longTreeSet = new TreeSet<>();
longTreeSet.addAll(oldDeptIds);
longTreeSet.addAll(newDeptIds);
List<Long> deptIds = new ArrayList<>(longTreeSet);
// 发送菜单消息-待处理项目-吹哨部门
this.sendWhistlingDeptItemHandleMenuNotice(deptIds);
} else {
handleProcessEntity.setState(dto.getHandleCategory());
// 更新项目状态
@ -462,6 +478,15 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
// 发送消息
newsTask.insertUserInformation(informationFormDTO);
// 发送菜单消息-待处理项目
if (entity.getGridId().equals(user.getDeptId())) {
// 网格长操作-发送菜单消息
this.sendItemHandleMenuNotice(entity.getGridId());
} else {
// 吹哨部门操作-发送菜单消息
this.sendWhistlingDeptItemHandleMenuNotice(Collections.singletonList(user.getDeptId()));
}
} catch (Exception e) {
e.printStackTrace();
}
@ -550,4 +575,31 @@ public class ItemServiceImpl extends BaseServiceImpl<ItemDao, ItemEntity> implem
List<ItemResultDTO> data = baseDao.selectListOfItems(formDto, states);
return new Result<List<ItemResultDTO>>().ok(data);
}
@Override
public void sendItemHandleMenuNotice(Long deptId) {
// 获取部门待处理项目数量
int num = baseDao.selectCountOfItemDeptNotice(deptId, EventIssueItemState.ITEM_HANDLING);
MenuNoticeDTO menuNoticeDTO = new MenuNoticeDTO();
menuNoticeDTO.setDeptId(deptId);
menuNoticeDTO.setNum(num);
menuNoticeDTO.setMenuCode(MenuCodeConstant.PARTY_GROUP_DISCUSSION_ITEM_HANDLE);
// 发送菜单消息通知
newsTask.eventMenuNotice(menuNoticeDTO);
}
@Override
public void sendWhistlingDeptItemHandleMenuNotice(List<Long> deptIds) {
MenuNoticeDTO menuNoticeDTO = new MenuNoticeDTO();
menuNoticeDTO.setMenuCode(MenuCodeConstant.PARTY_GROUP_DISCUSSION_ITEM_HANDLE);
for (Long deptId:
deptIds) {
// 获取吹哨部门待处理项目数量
int num = baseDao.selectCountOfItemWhistlingDeptNotice(deptId);
menuNoticeDTO.setDeptId(deptId);
menuNoticeDTO.setNum(num);
// 发送菜单消息通知
newsTask.eventMenuNotice(menuNoticeDTO);
}
}
}

4
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/events/EpdcEventsDao.xml

@ -245,4 +245,8 @@
AND eve.ID = #{eventId}
</select>
<select id="selectCountOfDeptNotice" resultType="int">
SELECT COUNT(ID) AS num FROM epdc_events WHERE DEL_FLAG = '0' AND grid_id = #{deptId} AND EVENT_STATE = #{state}
</select>
</mapper>

12
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml

@ -438,4 +438,16 @@
distributeTime DESC
</select>
<select id="selectCountOfDeptNotice" resultType="int">
SELECT
COUNT( ID ) AS num
FROM
epdc_issue
WHERE
DEL_FLAG = '0'
AND GRID_ID = #{deptId}
AND ISSUE_STATE = #{state}
AND ID NOT IN ( SELECT ISSUE_ID FROM epdc_issue_handle WHERE DEL_FLAG = '0' AND HANDLER_DEPT_ID = #{deptId} AND STATE <![CDATA[ <> ]]> 0 )
</select>
</mapper>

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

@ -431,4 +431,62 @@
AND item.ID = #{itemId}
ORDER BY img.CREATED_TIME
</select>
<select id="selectCountOfItemDeptNotice" resultType="int">
SELECT
COUNT( ID ) AS num
FROM
epdc_item
WHERE
DEL_FLAG = '0'
AND GRID_ID = #{deptId}
AND ITEM_STATE = #{state}
AND ID NOT IN (
SELECT
ITEM_ID
FROM
epdc_item_handle_process
WHERE
DEL_FLAG = '0'
AND HANDLER_DEPT_ID = #{deptId}
AND STATE = 0
GROUP BY
ITEM_ID
HAVING
COUNT( ID ) > 1
)
</select>
<select id="selectCountOfItemWhistlingDeptNotice" resultType="int">
SELECT
COUNT( ID ) AS num
FROM
epdc_item
WHERE
DEL_FLAG = '0'
AND ITEM_STATE = 0
AND ID IN (
SELECT
ITEM_ID
FROM
epdc_item_dept
WHERE
DEL_FLAG = '0'
AND DEPT_ID = #{deptId}
AND ITEM_ID NOT IN (
SELECT
ITEM_ID
FROM
epdc_item_handle_process
WHERE
DEL_FLAG = '0'
AND HANDLER_DEPT_ID = #{deptId}
AND STATE = 0
GROUP BY
ITEM_ID
HAVING
COUNT( ID ) > 0
)
)
</select>
</mapper>

4
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDeptDao.xml

@ -7,6 +7,10 @@
SELECT * FROM epdc_item_dept WHERE DEL_FLAG = '0' AND ITEM_ID = #{itemId} AND CREATED_DEPT_ID = #{createdDeptId} AND DEPT_ID != #{createdDeptId}
</select>
<select id="selectListWhistlingDeptIds" resultType="long">
SELECT DEPT_ID FROM epdc_item_dept WHERE DEL_FLAG = '0' AND ITEM_ID = #{itemId} AND CREATED_DEPT_ID = #{createdDeptId} AND DEPT_ID != #{createdDeptId}
</select>
<update id="updateItemDepts">
UPDATE epdc_item_dept SET DEL_FLAG = '1' WHERE CREATED_DEPT_ID = #{createdDeptId} AND ITEM_ID = #{itemId} AND DEPT_ID != #{createdDeptId}
</update>

26
esua-epdc/epdc-module/epdc-websocket/epdc-websocket-server/src/main/java/com/elink/esua/epdc/constants/MenuCodeConstant.java

@ -0,0 +1,26 @@
package com.elink.esua.epdc.constants;
/**
*
* 菜单编码
*
* @Authorliuchuang
* @Date2019/10/29 17:16
*/
public interface MenuCodeConstant {
/**
* 党群议事-议题管理-待回应
*/
String PARTY_GROUP_DISCUSSION_EVENT_RESPOND = "event-respond";
/**
* 党群议事-议题管理-待处理
*/
String PARTY_GROUP_DISCUSSION_ISSUE_HANDLE = "issue-handle";
/**
* 党群议事-项目管理-待处理项目
*/
String PARTY_GROUP_DISCUSSION_ITEM_HANDLE = "item-handle";
}
Loading…
Cancel
Save