package cn.com.goldenwater.dcproj.controller.mend.bpm; import cn.com.goldenwater.core.web.BaseController; import cn.com.goldenwater.core.web.BaseResponse; import cn.com.goldenwater.dcproj.dto.BisInspTaskDthDayDto; import cn.com.goldenwater.dcproj.dto.ResGetTaskPendDto; import cn.com.goldenwater.dcproj.model.BisInspAllRlationPers; import cn.com.goldenwater.dcproj.model.BisInspPblm; import cn.com.goldenwater.dcproj.model.BisInspPblmClassify; import cn.com.goldenwater.dcproj.model.BisInspPblmPlist; import cn.com.goldenwater.dcproj.model.News; import cn.com.goldenwater.dcproj.model.TacSlbLawIndex; import cn.com.goldenwater.dcproj.param.NewsParam; import cn.com.goldenwater.dcproj.service.AttAdBaseService; import cn.com.goldenwater.dcproj.service.BisInspAllRlationPersService; import cn.com.goldenwater.dcproj.service.BisInspPblmPlistFormService; import cn.com.goldenwater.dcproj.service.BisInspPblmPlistService; import cn.com.goldenwater.dcproj.service.IndexTopService; import cn.com.goldenwater.dcproj.service.NewsService; import cn.com.goldenwater.dcproj.service.OlBisInspOrgService; import cn.com.goldenwater.dcproj.utils.DateUtils; import cn.com.goldenwater.dcproj.vo.ObjInspPblmsVo; import com.github.pagehelper.PageInfo; import com.workflow.bpm.api.bpmservices.BpmTaskService; import com.workflow.bpm.api.bpmservices.co.taskinst.QueryTaskInstCO; import com.workflow.bpm.api.bpmservices.dto.ResGetTaskPendDTO; import com.workflow.common.struct.head.Page; import com.workflow.common.struct.req.impl.APIRequestPage; import com.workflow.common.struct.res.ResultPage; import com.workflow.common.util.convert.ConvertBeanUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; /** * @author lxf * @date 2023-04-08 * 督查首页top数据 */ @Api(value = "督查首页筛选数据", tags = "最新5条") @RestController @RequestMapping("/index/top") public class DcIndexTopBpmController extends BaseController { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired private BpmTaskService bpmTaskService; @Autowired private OlBisInspOrgService olBisInspOrgService; @Autowired private AttAdBaseService attAdBaseService; @Autowired private BisInspPblmPlistService bisInspPblmPlistService; @Autowired private BisInspAllRlationPersService bisInspAllRlationPersService; @Autowired private BisInspPblmPlistFormService formService; @Autowired private IndexTopService indexTopService; @Autowired private NewsService newsService; @ApiOperation(value = "待办事项") @GetMapping(value = "/list/workflow/task") public BaseResponse> queryTopWorkflowTaskList(BisInspTaskDthDayDto bisInspTaskDthDayDto) { bisInspTaskDthDayDto.setOrgId(getCurrentOrgId()); ReqGetTaskPend2DTO reqGetTaskPend2DTO = new ReqGetTaskPend2DTO(); reqGetTaskPend2DTO.setPageNum(1); reqGetTaskPend2DTO.setPageNo(1); reqGetTaskPend2DTO.setPageSize(1000); int todoNum = 0; if (null != bisInspTaskDthDayDto.getTopNum()) { reqGetTaskPend2DTO.setPageSize(bisInspTaskDthDayDto.getTopNum()); } //获取当前人员的所属行政区 String province = olBisInspOrgService.getRlProvince(getCurrentOrgId()); //获取行政区代码对应的行政区名称 String adName = attAdBaseService.getByAdcode(province).getAdFullName(); QueryTaskInstCO queryTaskInstCO = new QueryTaskInstCO(); queryTaskInstCO.setProcInstName("督查整改-" + adName); Page page = new Page(); ConvertBeanUtils.copyPropertiesBySource(reqGetTaskPend2DTO, queryTaskInstCO); ConvertBeanUtils.copyPropertiesBySource(reqGetTaskPend2DTO, page); APIRequestPage requestPage = new APIRequestPage<>(); requestPage.setContent(queryTaskInstCO); page.setPageNo(1); page.setPageSize(9999); requestPage.setPage(page); logger.info(" ----------get bpm data satart ----------"); logger.info(requestPage.toString()); try { logger.info("bpm req:"+requestPage.toString()+":"+requestPage.getContent().toString()); ResultPage> listResultPage = bpmTaskService.queryPendingTask(requestPage, getCurrentPersId(), getCurrentOrgId()); logger.info(" ----------get bpm data size ----------" + listResultPage.getContent().size()); todoNum = null == listResultPage.getContent() ? 0 : listResultPage.getContent().size(); } catch (Exception e) { e.printStackTrace(); } // 通知公告数量 NewsParam newsParam = new NewsParam(); newsParam.setOrgId(getCurrentOrgId()); newsParam.setApp("1"); int countNum = newsService.selectCount(newsParam); // 把 待办事项数和通知公告数 设为返回值 Map resultMap = new HashMap<>(); resultMap.put("newsCount", countNum); resultMap.put("todoCount", todoNum); return buildSuccessResponse(resultMap); } private void convertDto(ResGetTaskPendDTO dto, String classify, List list) { if (dto == null) { return; } ResGetTaskPendDto newDto = new ResGetTaskPendDto(); BeanUtils.copyProperties(dto, newDto); newDto.setPblmClassify(classify); list.add(newDto); } @ApiOperation(value = "法律法规") @GetMapping(value = "/list/law") public BaseResponse> queryTopLawList(BisInspTaskDthDayDto bisInspTaskDthDayDto) { bisInspTaskDthDayDto.setOrgId(getCurrentOrgId()); return buildSuccessResponse(indexTopService.slbLawTopList(bisInspTaskDthDayDto)); } @ApiOperation(value = "最新问题") @GetMapping(value = "/list/pblm") public BaseResponse> queryTopPbmList(BisInspTaskDthDayDto bisInspTaskDthDayDto) { bisInspTaskDthDayDto.setOrgId(getCurrentOrgId()); return buildSuccessResponse(indexTopService.pblmTopList(bisInspTaskDthDayDto)); } @ApiOperation(value = "督查类型问题清单") @GetMapping(value = "/list/pblmbz") public BaseResponse> queryTopObjTypePbmBzList(BisInspTaskDthDayDto bisInspTaskDthDayDto) { bisInspTaskDthDayDto.setOrgId(getCurrentOrgId()); return buildSuccessResponse(indexTopService.pblmBzTopList(bisInspTaskDthDayDto)); } @ApiOperation(value = "获取公告消息提醒(单表)") @GetMapping(value = "/list/news") public BaseResponse> queryTopNewsList(BisInspTaskDthDayDto bisInspTaskDthDayDto) { NewsParam newsParam = new NewsParam(); newsParam.setOrgId(getCurrentOrgId()); newsParam.setApp("1"); newsParam.setPageNum(1); newsParam.setPageSize(bisInspTaskDthDayDto.getTopNum()); PageInfo news = newsService.findPageInfo(newsParam); return buildSuccessResponse(news.getList()); } @ApiOperation(value = "督查首页办公动态") @GetMapping(value = "/list") public BaseResponse queryTopPbmBzList(BisInspTaskDthDayDto bisInspTaskDthDayDto) { Integer topType = bisInspTaskDthDayDto.getTopType(); if (null == topType) { return queryTopLawList(bisInspTaskDthDayDto); } if (2 == topType) { // 督查类型问题清单 return queryTopObjTypePbmBzList(bisInspTaskDthDayDto); } else if (3 == topType) { // 待办任务 return queryTopWorkflowTaskList(bisInspTaskDthDayDto); } else if (4 == topType) { // 通知公告 return queryTopNewsList(bisInspTaskDthDayDto); } else { // 法律法规 return queryTopLawList(bisInspTaskDthDayDto); } } }