政策征求意见流程开发、对接。

This commit is contained in:
wangzhijiang
2023-10-23 14:27:06 +08:00
parent 6fa188cf35
commit c5ef2042b0
9 changed files with 260 additions and 1 deletions
@@ -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<List<PolicySolicitOpinionEO>> queryPolicitOpinionEOList(@RequestParam Map<String, Object> params);
}
@@ -479,4 +479,8 @@ public class workFlowFeignClientImpl {
public String fushen() {
return workFlowFeignClient.fushen();
}
public ResponseMessage<List<PolicySolicitOpinionEO>> queryPolicitOpinionEOList(@RequestParam Map<String, Object> params) {
return this.workFlowFeignClient.queryPolicitOpinionEOList(params);
}
}
@@ -58,4 +58,6 @@ public class BusProcessName implements Serializable {
private String taskBackAssignee;
private boolean showreceive;
private String taskDefinitionKey;
}
@@ -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<AttFileEO> 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;
}
@@ -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<List<PolicySolicitOpinionEO>> queryPolicitOpinionEOList(@RequestParam Map<String,Object> params) {
String currentUserId = LoginUserUtil.getUserId();
params.put("currentUserId", currentUserId);
ResponseMessage<List<PolicySolicitOpinionEO>> responseMessage = this.workFlowFeignClient.queryPolicitOpinionEOList(params);
List<PolicySolicitOpinionEO> datas = responseMessage.getData();
this.disposeData(datas);
return responseMessage;
}
public void disposeData(List<PolicySolicitOpinionEO> datas) {
if (CollectionUtils.isNotEmpty(datas)) {
List<String> userIdList = datas.stream().map(PolicySolicitOpinionEO::getCreateUserId).distinct().collect(Collectors.toList());
UserEOPage page = new UserEOPage();
page.setUsidList(userIdList);
List<UserEO> userEOS = this.userEOService.queryUserEoList(page);
String annexFileIds = Arrays.asList(
datas.stream().map(PolicySolicitOpinionEO::getAnnexFileId).collect(Collectors.joining(",")).split(",")
).stream().distinct().collect(Collectors.joining(","));
List<AttFileEO> fileInfoList = this.attFileEOService.getMultiFileInfos(annexFileIds);
for (PolicySolicitOpinionEO data : datas) {
List<UserEO> 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<String> annexFileIdList = Arrays.asList(data.getAnnexFileId().split(","));
if (CollectionUtils.isNotEmpty(fileInfoList) && CollectionUtils.isNotEmpty(annexFileIdList)) {
List<AttFileEO> 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<String,Object> params) throws Exception {
OutputStream os = null;
Workbook workbook = null;
ResponseMessage<List<PolicySolicitOpinionEO>> responseMessage = this.workFlowFeignClient.queryPolicitOpinionEOList(params);
List<PolicySolicitOpinionEO> 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);
}
}
}