diff --git a/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java b/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java index 734d8932..f1f20500 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java +++ b/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java @@ -509,4 +509,7 @@ public interface workFlowFeignClient { @RequestMapping(value = "/bat-wkflow/datas/bus-process-new/fushen",method = RequestMethod.GET) String fushen(); + + @RequestMapping(value = "/bat-wkflow/datas/policySolicitOpinion/queryPolicitOpinionEOList",method = RequestMethod.GET) + ResponseMessage> queryPolicitOpinionEOList(@RequestParam Map params); } diff --git a/adc-da-activiti/src/main/java/com/adc/da/FeignClientImpl/workFlowFeignClientImpl.java b/adc-da-activiti/src/main/java/com/adc/da/FeignClientImpl/workFlowFeignClientImpl.java index 6f12193a..7bd54f5a 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/FeignClientImpl/workFlowFeignClientImpl.java +++ b/adc-da-activiti/src/main/java/com/adc/da/FeignClientImpl/workFlowFeignClientImpl.java @@ -479,4 +479,8 @@ public class workFlowFeignClientImpl { public String fushen() { return workFlowFeignClient.fushen(); } + + public ResponseMessage> queryPolicitOpinionEOList(@RequestParam Map params) { + return this.workFlowFeignClient.queryPolicitOpinionEOList(params); + } } diff --git a/adc-da-activiti/src/main/java/com/adc/da/common/BusProcessName.java b/adc-da-activiti/src/main/java/com/adc/da/common/BusProcessName.java index 7e4df154..a2d79ee7 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/common/BusProcessName.java +++ b/adc-da-activiti/src/main/java/com/adc/da/common/BusProcessName.java @@ -58,4 +58,6 @@ public class BusProcessName implements Serializable { private String taskBackAssignee; private boolean showreceive; + + private String taskDefinitionKey; } diff --git a/adc-da-activiti/src/main/java/com/adc/da/common/PolicySolicitOpinionEO.java b/adc-da-activiti/src/main/java/com/adc/da/common/PolicySolicitOpinionEO.java new file mode 100644 index 00000000..e094c62d --- /dev/null +++ b/adc-da-activiti/src/main/java/com/adc/da/common/PolicySolicitOpinionEO.java @@ -0,0 +1,108 @@ +package com.adc.da.common; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.adc.da.att.entity.AttFileEO; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; +import java.util.List; + +/** + * @Description: 政策征求意见列表 + * @author: wangzhijiang + * @date: 2023-10-18 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="PolicySolicitOpinion对象", description="") +public class PolicySolicitOpinionEO { + private static final long serialVersionUID=1L; + + @TableId(value = "ID", type = IdType.UUID) + private String id; + + @TableField("PRC_ID") + private String prcId; + + @TableField("SAR_LAWS_INFO_ID") + private String sarLawsInfoId; + + // 章节编号 + @Excel(name = "章节编号", orderNum = "1") + @TableField("CHAPTER_NUMBER") + private String chapterNumber; + + // 章节条目 + @Excel(name = "章节条目", orderNum = "2") + @TableField("CHAPTER_ENTRIES") + private String chapterEntries; + + // 修改前 + @Excel(name = "修改前", orderNum = "3") + @TableField("MODIFY_BEFORE") + private String modifyBefore; + + // 修改后 + @Excel(name = "修改后", orderNum = "4") + @TableField("MODIFY_AFTER") + private String modifyAfter; + + // 修改理由 + @Excel(name = "修改理由", orderNum = "5") + @TableField("MODIFY_REASON") + private String modifyReason; + + // 原因 + @Excel(name = "原因", orderNum = "6") + @TableField("CAUSE") + private String cause; + + // 附件id + @TableField("ANNEX_FILE_ID") + private String annexFileId; + @Excel(name = "附件", orderNum = "7") + private String annexFileName; + private List annexFileList; + + // 处理意见 + @Excel(name = "处理意见", orderNum = "10") + @TableField("HANDLING_OPINIONS") + private String handlingOpinions; + + // 处理原因 + @Excel(name = "处理原因", orderNum = "11") + @TableField("HANDLING_CAUSE") + private String handlingCause; + + // 提出人/创建人/责任人 + @TableField("CREATE_USER_ID") + private String createUserId; + + // 提出人/创建人/责任人 + @Excel(name = "提出人", orderNum = "9") + private String createUserName; + // 提出部门/创建人所在部门 + @Excel(name = "提出部门", orderNum = "8") + private String createUserDeptName; + + // 创建时间 + @TableField("CREATE_TIME") + private Date createTime; + + // 更新人 + @TableField("MODIFY_USER_ID") + private String modifyUserId; + + // 更新时间 + @TableField("MODIFY_TIME") + private Date modifyTime; + +} diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java index e98b0c20..60a1ac1a 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java @@ -41,6 +41,7 @@ import com.adc.da.sys.common.EmailUtils; import com.adc.da.sys.dao.DicTypeEODao; import com.adc.da.sys.entity.DicTypeEO; import com.adc.da.sys.entity.UserEO; +import com.adc.da.sys.page.UserEOPage; import com.adc.da.sys.service.IUserEOService; import com.adc.da.util.LoginUserUtil; import com.adc.da.workFlow.entity.*; @@ -49,6 +50,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; import org.apache.poi.ss.usermodel.Workbook; @@ -1523,4 +1525,90 @@ public class WorkFlowController extends BaseController { public void conversionOnlineFilePDF(){ // return workFlowFeignClient.conversionOnlineFilePDF(); } + + @ApiOperation(value = "查询政策征求意见列表") + @GetMapping("/queryPolicitOpinionEOList") + public ResponseMessage> queryPolicitOpinionEOList(@RequestParam Map params) { + String currentUserId = LoginUserUtil.getUserId(); + params.put("currentUserId", currentUserId); + ResponseMessage> responseMessage = this.workFlowFeignClient.queryPolicitOpinionEOList(params); + List datas = responseMessage.getData(); + this.disposeData(datas); + return responseMessage; + } + + public void disposeData(List datas) { + if (CollectionUtils.isNotEmpty(datas)) { + List userIdList = datas.stream().map(PolicySolicitOpinionEO::getCreateUserId).distinct().collect(Collectors.toList()); + UserEOPage page = new UserEOPage(); + page.setUsidList(userIdList); + List userEOS = this.userEOService.queryUserEoList(page); + + String annexFileIds = Arrays.asList( + datas.stream().map(PolicySolicitOpinionEO::getAnnexFileId).collect(Collectors.joining(",")).split(",") + ).stream().distinct().collect(Collectors.joining(",")); + List fileInfoList = this.attFileEOService.getMultiFileInfos(annexFileIds); + + for (PolicySolicitOpinionEO data : datas) { + List userEOList = userEOS.stream().filter(user -> { + return StringUtils.equals(data.getCreateUserId(), user.getUsid()); + }).distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(userEOList)) { + data.setCreateUserName(userEOList.get(0).getUname()); + data.setCreateUserDeptName(userEOList.get(0).getInstitutionName()); + } + if (StringUtils.isNotEmpty(data.getAnnexFileId())) { + List annexFileIdList = Arrays.asList(data.getAnnexFileId().split(",")); + if (CollectionUtils.isNotEmpty(fileInfoList) && CollectionUtils.isNotEmpty(annexFileIdList)) { + List annexFileList = fileInfoList.stream().filter(fileInfo -> { + boolean flag = false; + for (String annexFileId : annexFileIdList) { + if (StringUtils.equals(fileInfo.getId(), annexFileId)) { + flag = true; + break; + } + } + return flag; + }).distinct().collect(Collectors.toList()); + data.setAnnexFileList(annexFileList); + + String annexFileNames = annexFileList.stream().map(AttFileEO::getOldFileName).distinct().collect(Collectors.joining(",")); + data.setAnnexFileName(annexFileNames); + } + } + } + } + } + + @ApiOperation(value = "导出政策征求意见列表") + @GetMapping("/exportPolicitOpinionEOListExcel") + public void exportExcel(HttpServletRequest request, HttpServletResponse response, String exportName, @RequestParam Map params) throws Exception { + OutputStream os = null; + Workbook workbook = null; + + ResponseMessage> responseMessage = this.workFlowFeignClient.queryPolicitOpinionEOList(params); + List exportDataList = responseMessage.getData(); + this.disposeData(exportDataList); + + try { + if (StringUtils.isEmpty(exportName)) { + exportName = "征求意见列表"; + } + response.setHeader("Content-Disposition", + "attachment; filename=" + ReadExcel.encodeFileName(exportName+".xlsx",request)); + response.setContentType("application/force-download"); + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + workbook = ExcelExportUtil.exportExcel(exportParams, PolicySolicitOpinionEO.class, exportDataList); + workbook.setSheetName(0,"Sheet1"); + os = response.getOutputStream(); + workbook.write(os); + os.flush(); + } catch (Exception e) { + e.printStackTrace(); + throw new AdcDaBaseException("导出" + exportName + "列表数据失败,请重试"); + } finally { + IOUtils.closeQuietly(os); + } + } } diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java index 5617a2d5..c88e820c 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java @@ -107,6 +107,8 @@ public class WebMvcConfig implements WebMvcConfigurer { addInterceptor.excludePathPatterns("/api/lawss/activiti/processModelHisOneCount"); + addInterceptor.excludePathPatterns("/api/lawss/activiti/exportPolicitOpinionEOListExcel"); + addInterceptor.excludePathPatterns("/api/att/attFile/getSyncPdfFileInfo"); //附件下载 addInterceptor.excludePathPatterns("/api/att/attFile/downloadFileForSar"); diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/page/UserEOPage.java b/adc-da-sys/src/main/java/com/adc/da/sys/page/UserEOPage.java index 0915cc94..7d1afb05 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sys/page/UserEOPage.java +++ b/adc-da-sys/src/main/java/com/adc/da/sys/page/UserEOPage.java @@ -2,6 +2,8 @@ package com.adc.da.sys.page; import com.adc.da.base.page.BasePage; +import java.util.List; + /** * 功能:TS_USER UserEOPage
@@ -11,6 +13,7 @@ import com.adc.da.base.page.BasePage; */ public class UserEOPage extends BasePage { + private List usidList; private String usid; private String usidOperator = "="; private String account; @@ -40,6 +43,13 @@ public class UserEOPage extends BasePage { private boolean disAdmin=true; + public List getUsidList() { + return usidList; + } + + public void setUsidList(List usidList) { + this.usidList = usidList; + } public String getUsid() { return this.usid; diff --git a/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml b/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml index 3f33ce52..256369c5 100644 --- a/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml +++ b/adc-da-sys/src/main/resources/mybatis/mapper/sys/UserEOMapper.xml @@ -141,6 +141,12 @@ and user_type ${userTypeOperator} #{userType} + + and usid in + + #{item} + + diff --git a/doc/sql/20231017_政策相关开发sql.sql b/doc/sql/20231017_政策相关开发sql.sql index 24f30bc1..0e671c37 100644 --- a/doc/sql/20231017_政策相关开发sql.sql +++ b/doc/sql/20231017_政策相关开发sql.sql @@ -1,2 +1,38 @@ -- 流程数据库,增加字段。 -ALTER TABLE `bus_process_name` ADD COLUMN `RESPONSIBLE_UNIT_DEADLINE_DATE` datetime NULL COMMENT '责任单位截止日期' AFTER `END_TIME`; \ No newline at end of file +ALTER TABLE `bus_process_name` ADD COLUMN `RESPONSIBLE_UNIT_DEADLINE_DATE` datetime NULL COMMENT '责任单位截止日期' AFTER `END_TIME`; + +-- 流程数据库,增加 政策征求意见列表 表。 +CREATE TABLE `POLICY_SOLICIT_OPINION` ( + `ID` varchar(64) NOT NULL COMMENT '主键id', + `PRC_ID` varchar(64) NOT NULL COMMENT '流程实例id', + `SAR_LAWS_INFO_ID` varchar(64) NOT NULL COMMENT '政策信息数据id', + `CHAPTER_NUMBER` varchar(400) NULL COMMENT '章节编号', + `CHAPTER_ENTRIES` varchar(400) NULL COMMENT '章节条目', + `MODIFY_BEFORE` varchar(400) NULL COMMENT '修改前', + `MODIFY_AFTER` varchar(400) NULL COMMENT '修改后', + `MODIFY_REASON` varchar(400) NULL COMMENT '修改理由', + `CAUSE` varchar(400) NULL COMMENT '原因', + `ANNEX_FILE_ID` varchar(4000) NULL COMMENT '附件id', + `HANDLING_OPINIONS` varchar(400) NULL COMMENT '处理意见', + `HANDLING_CAUSE` varchar(400) NULL COMMENT '处理原因', + `CREATE_USER_ID` varchar(64) NULL COMMENT '创建人id', + `CREATE_TIME` datetime NULL COMMENT '创建时间', + `MODIFY_USER_ID` varchar(64) NULL COMMENT '更新人id', + `MODIFY_TIME` datetime NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) COMMENT = '政策征求意见列表'; + +-- 流程数据库,增加 流程用户关系表 +CREATE TABLE `t_flow_user_rel_info` ( + `id` varchar(64) NOT NULL COMMENT '主键id', + `flow_type` varchar(10) NULL COMMENT '流程类型,对应系统中FlowTypeEnum中value', + `data_type` varchar(50) NULL COMMENT '数据类型,对应系统中DataTypeEnum中value', + `user_id` varchar(64) NULL COMMENT '用户id', + `parent_user_id` varchar(64) NULL COMMENT '上级用户id', + `stand_id` varchar(64) NULL COMMENT '标准id', + `task_id` varchar(64) NULL COMMENT '待办id', + `acti_proc_inst_id` varchar(64) NULL COMMENT '流程实例id', + `create_time` datetime NULL COMMENT '创建时间', + `create_by` varchar(64) NULL COMMENT '创建人id', + PRIMARY KEY (`id`) USING BTREE +) COMMENT = '流程用户关系表'; \ No newline at end of file