|
@@ -1,13 +1,32 @@
|
|
|
package com.jeeplus.test.cw.projectReport.controller;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.TypeReference;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.google.common.collect.Maps;
|
|
|
import com.google.gson.Gson;
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
+import com.jeeplus.common.redis.RedisUtils;
|
|
|
+import com.jeeplus.flowable.model.Flow;
|
|
|
+import com.jeeplus.flowable.service.FlowTaskService;
|
|
|
import com.jeeplus.sys.utils.Global;
|
|
|
import com.jeeplus.sys.utils.SpringContextHolder;
|
|
|
+import com.jeeplus.test.cw.common.flowable.dto.CommitParamDTO;
|
|
|
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectRecords;
|
|
|
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
|
|
|
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReport;
|
|
|
import com.jeeplus.test.cw.projectReport.domain.CwProjectReportData;
|
|
|
+import com.jeeplus.test.cw.projectReport.domain.CwProjectReportSignature;
|
|
|
+import com.jeeplus.test.cw.projectReport.mapper.CwProjectReportSignatureMapper;
|
|
|
import com.jeeplus.test.cw.projectReport.service.CwProjectReportService;
|
|
|
import com.jeeplus.test.signature.domain.PresignCallBack;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.flowable.engine.TaskService;
|
|
|
+import org.flowable.task.api.Task;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.redis.connection.jedis.JedisUtils;
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.security.core.userdetails.User;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
@@ -26,7 +45,7 @@ public class CwProjectReportSignatureCallBackController {
|
|
|
|
|
|
|
|
|
private CwProjectReportService cwProjectReportService = SpringContextHolder.getBean(CwProjectReportService.class);
|
|
|
-
|
|
|
+ private CwProjectReportSignatureMapper cwProjectReportSignatureMapper = SpringContextHolder.getBean(CwProjectReportSignatureMapper.class);
|
|
|
|
|
|
private static final String HTTPTOP = Global.getConfig("signature_http_top");
|
|
|
|
|
@@ -34,6 +53,13 @@ public class CwProjectReportSignatureCallBackController {
|
|
|
private final static String appsecret = Global.getConfig("appsecret");
|
|
|
private final static String signature = Global.getConfig("signature");
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RedisUtils redisUtils;
|
|
|
+ @Autowired
|
|
|
+ private FlowTaskService flowTaskService;
|
|
|
+ @Autowired
|
|
|
+ private TaskService taskService;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 审定单签章回调操作(个人职业章盖章)
|
|
@@ -42,30 +68,85 @@ public class CwProjectReportSignatureCallBackController {
|
|
|
*/
|
|
|
@RequestMapping(value = "/getApprovalCallBackCoordinates", method= RequestMethod.POST)
|
|
|
public String getApprovalCallBackCoordinates(PresignCallBack presignCallBack) throws Exception {
|
|
|
+ // 在redis中取回流程审核所需的参数
|
|
|
+ CommitParamDTO<CwProjectReportData> commitParamDTO = (CommitParamDTO<CwProjectReportData>)redisUtils.get("cw_report_signature_" + presignCallBack.getContractId());
|
|
|
+ // 将取回的数据转换为审核通过所需要的参数
|
|
|
+ Map<String, Object> vars = Maps.newHashMap();
|
|
|
+ Flow flow = new Flow();
|
|
|
+ flow.setTaskId(commitParamDTO.getTaskId());
|
|
|
+ flow.setTaskDefKey(commitParamDTO.getTaskDefKey());
|
|
|
+ flow.setProcInsId(commitParamDTO.getProcInsId());
|
|
|
+ flow.setProcDefId(commitParamDTO.getProcDefId());
|
|
|
+ flow.setAssignee(commitParamDTO.getAssignee());
|
|
|
+ flow.setComment(commitParamDTO.getComment());
|
|
|
+ Map<String, String> stringObjectMap = JSON.parseObject(JSON.toJSONString(commitParamDTO.getVars()), new TypeReference<Map<String, String>>() {});
|
|
|
+ for (Map.Entry<String, String> entry : stringObjectMap.entrySet()) {
|
|
|
+ String value = entry.getValue();
|
|
|
+ if("true".equals(value) || "false".equals(value)){
|
|
|
+ vars.put(entry.getKey(), Boolean.valueOf(value).booleanValue());
|
|
|
+ }else{
|
|
|
+ vars.put(entry.getKey(), value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 流程节点审核通过
|
|
|
+ flowTaskService.auditSave(flow, vars);
|
|
|
+ // 指定下一步处理人
|
|
|
+ Task task = taskService.createTaskQuery().processInstanceId(flow.getProcInsId()).active().singleResult();
|
|
|
+ // task为null时,则当前节点为最后一个审核节点
|
|
|
+ if(task != null){
|
|
|
+ if(StringUtils.isNotBlank(flow.getAssignee ())){
|
|
|
+ taskService.setAssignee(task.getId(), flow.getAssignee ());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 修改数据流程状态为->审核通过
|
|
|
+ List<CwProjectReport> list = cwProjectReportService.list(new QueryWrapper<CwProjectReport>().lambda().eq(CwProjectReport::getSignatureContractId, presignCallBack.getContractId()));
|
|
|
+ if (CollectionUtil.isNotEmpty(list)){
|
|
|
+ CwProjectReport cwProjectReport = list.get(0);
|
|
|
+ CwProjectReportSignature cwProjectReportSignature = cwProjectReportSignatureMapper.selectOne(new QueryWrapper<CwProjectReportSignature>().lambda()
|
|
|
+ .eq(CwProjectReportSignature::getReportId, cwProjectReport.getId())
|
|
|
+ .eq(CwProjectReportSignature::getType, cwProjectReport.getSignatureType())
|
|
|
+ );
|
|
|
+ cwProjectReportSignature.setStatus("5");
|
|
|
+ cwProjectReportSignatureMapper.updateById(cwProjectReportSignature);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 删除redis中的数据
|
|
|
+ redisUtils.delete("cw_report_signature_" + presignCallBack.getContractId());
|
|
|
+
|
|
|
|
|
|
- /*Jedis jedis = JedisUtils.getResource();
|
|
|
- String contractIdRedis = jedis.get("qiyuesuo" + presignCallBack.getContractId());
|
|
|
- String auditUsersStr = jedis.get("qiyuesuoAuditUserList" + presignCallBack.getContractId());
|
|
|
- Gson gson = new Gson();
|
|
|
- ProjectApprovalSignature projectApprovalSignature1 = gson.fromJson(contractIdRedis, ProjectApprovalSignature.class);
|
|
|
|
|
|
- Type listType = new TypeToken<ArrayList<User>>(){}.getType();
|
|
|
- List<User> auditUserList = new Gson().fromJson(auditUsersStr, listType);
|
|
|
|
|
|
- //根据contractId查询对应的报告信息
|
|
|
- CwProjectReportData projectReportData = cwProjectReportService.queryById(projectApprovalSignature1.getId());
|
|
|
|
|
|
- if(null == projectReportData){
|
|
|
- return null;
|
|
|
- }
|
|
|
- //根据项目id查询对应的审定单数据状态是否是已经被送审
|
|
|
- ProjectApprovalSignature projectApprovalSignature = cwProjectReportService.getProjectApprovalSignature(projectReportData.getId());*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// Jedis jedis = JedisUtils.getResource();
|
|
|
+// String contractIdRedis = jedis.get("qiyuesuo" + presignCallBack.getContractId());
|
|
|
+// String auditUsersStr = jedis.get("qiyuesuoAuditUserList" + presignCallBack.getContractId());
|
|
|
+// Gson gson = new Gson();
|
|
|
+// ProjectApprovalSignature projectApprovalSignature1 = gson.fromJson(contractIdRedis, ProjectApprovalSignature.class);
|
|
|
+//
|
|
|
+// Type listType = new TypeToken<ArrayList<User>>(){}.getType();
|
|
|
+// List<User> auditUserList = new Gson().fromJson(auditUsersStr, listType);
|
|
|
+//
|
|
|
+// //根据contractId查询对应的报告信息
|
|
|
+// CwProjectReportData projectReportData = cwProjectReportService.queryById(projectApprovalSignature1.getId());
|
|
|
+//
|
|
|
+// if(null == projectReportData){
|
|
|
+// return null;
|
|
|
+// }
|
|
|
+// //根据项目id查询对应的审定单数据状态是否是已经被送审
|
|
|
+// ProjectApprovalSignature projectApprovalSignature = cwProjectReportService.getProjectApprovalSignature(projectReportData.getId());
|
|
|
|
|
|
//对数据进以及流程行处理
|
|
|
//approvalSaveAudit(projectApprovalSignature1,auditUserList);
|
|
|
|
|
|
return null;
|
|
|
}
|
|
|
-
|
|
|
+ @PostMapping(value = "/aaa")
|
|
|
+ public ResponseEntity<String> updateSignatureStatusById() {
|
|
|
+ String s = "projectReportService.updateSignatureStatusById(data);";
|
|
|
+ return ResponseEntity.ok(s);
|
|
|
+ }
|
|
|
|
|
|
}
|