update 发送消息
This commit is contained in:
+2
@@ -15,4 +15,6 @@ public class ProcessDefinitionKey {
|
||||
|
||||
public static final String FB_STANDARD_PURCHASE = "fb-standard-purchase"; // 法规采购流程
|
||||
|
||||
public static final String FB_STANDARD_COMPLIANCE_ASSESSMENT = "fb-standard-compliance-assessment"; // 法规合规评估流程
|
||||
|
||||
}
|
||||
|
||||
+72
-11
@@ -13,12 +13,19 @@ import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import com.spire.ms.System.Collections.ArrayList;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.HistoryService;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.history.HistoricProcessInstance;
|
||||
import org.activiti.engine.runtime.Execution;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -28,8 +35,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
@@ -48,6 +54,12 @@ public class ProcessFbInfoController {
|
||||
private IProcessHandleService processHandleService;
|
||||
@Resource
|
||||
private ProcessDraftService processDraftService;
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private HistoryService historyService;
|
||||
|
||||
@DictPoint
|
||||
@GetMapping("/getNodeList")
|
||||
@@ -79,16 +91,65 @@ public class ProcessFbInfoController {
|
||||
@ApiOperation(value = "测试")
|
||||
@GetMapping("/test")
|
||||
public Result<T> test() {
|
||||
List<ProcessInstance> subProcessInstanceList = processHandleService
|
||||
.subProcessList("20231114120041259", "Activity_0mj9ddw");
|
||||
System.out.println("================================测试开始=================================");
|
||||
subProcessInstanceList.forEach(subProcessInstance -> {
|
||||
System.out.println("Sub Process Instance ID: " + subProcessInstance.getId());
|
||||
System.out.println("Sub Process Definition Key: " + subProcessInstance.getProcessDefinitionKey());
|
||||
// 其他子流程实例信息
|
||||
System.out.println(subProcessInstance.toString());
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("creator", "tom");
|
||||
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("test_countersign", variables);
|
||||
String processInstanceId = processInstance.getId();
|
||||
System.out.println("流程实例Id: " + processInstanceId);
|
||||
|
||||
List<Task> taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
|
||||
System.out.println("============== 提出申请 ============");
|
||||
taskList.forEach(task -> {
|
||||
System.out.println("任务Id: " + task.getId());
|
||||
System.out.println("任务名称: " + task.getName());
|
||||
System.out.println("执行实例Id: " + task.getExecutionId());
|
||||
System.out.println("任务处理人: " + task.getAssignee());
|
||||
});
|
||||
System.out.println("=======================================================================");
|
||||
System.out.println("==========================");
|
||||
|
||||
List<String> leaderList = Arrays.asList(new String[] {"aaa", "bbb", "ccc"});
|
||||
variables.put("leaderList", leaderList);
|
||||
runtimeService.setVariables(processInstanceId, variables);
|
||||
|
||||
Task tomTask = taskList.get(0);
|
||||
taskService.complete(tomTask.getId());
|
||||
System.out.println("完成任务: " + tomTask.getId());
|
||||
System.out.println("任务名称: " + tomTask.getName());
|
||||
System.out.println("完成人: " + tomTask.getAssignee());
|
||||
|
||||
taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
|
||||
System.out.println("============== 多人会签 ============");
|
||||
taskList.forEach(task -> {
|
||||
System.out.println("任务Id: " + task.getId());
|
||||
System.out.println("任务名称: " + task.getName());
|
||||
System.out.println("执行实例Id: " + task.getExecutionId());
|
||||
System.out.println("任务处理人: " + task.getAssignee());
|
||||
});
|
||||
System.out.println("==========================");
|
||||
|
||||
System.out.println("============= 多人会签 =============");
|
||||
taskList.forEach(task -> {
|
||||
taskService.claim(task.getId(), task.getAssignee());
|
||||
taskService.complete(task.getId());
|
||||
System.out.println("完成任务: " + task.getId());
|
||||
});
|
||||
System.out.println("==========================");
|
||||
|
||||
taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
|
||||
System.out.println("============== 汇总 ============");
|
||||
taskList.forEach(task -> {
|
||||
System.out.println("任务Id: " + task.getId());
|
||||
System.out.println("任务名称: " + task.getName());
|
||||
System.out.println("执行实例Id: " + task.getExecutionId());
|
||||
System.out.println("任务处理人: " + task.getAssignee());
|
||||
});
|
||||
System.out.println("==========================");
|
||||
tomTask = taskList.get(0);
|
||||
taskService.complete(tomTask.getId());
|
||||
System.out.println("完成任务: " + tomTask.getId());
|
||||
System.out.println("任务名称: " + tomTask.getName());
|
||||
System.out.println("完成人: " + tomTask.getAssignee());
|
||||
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ import java.util.List;
|
||||
*/
|
||||
@Api(tags="法规采购流程表")
|
||||
@RestController
|
||||
@RequestMapping("/activiti.process.fb/processFbStandardPurchase")
|
||||
@RequestMapping("/process/fb/processFbStandardPurchase")
|
||||
@Slf4j
|
||||
public class ProcessFbStandardPurchaseController extends JeroController<ProcessFbStandardPurchase, IProcessFbStandardPurchaseService> {
|
||||
@Autowired
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ public interface IProcessHandleService {
|
||||
* @Date: 2023/11/10 9:44
|
||||
* @Description: 设置流程变量
|
||||
**/
|
||||
void setProcessVariables(String processInstanceId, Map<String, Object> userInfoMap);
|
||||
Map<String, Object> setProcessVariables(Map<String, Object> userInfoMap);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
|
||||
+32
-6
@@ -28,10 +28,7 @@ import com.jero.common.exception.JeroBootException;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
/**
|
||||
@@ -135,17 +132,22 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
ProcessFbStandardConsultationVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); // 全部业务信息
|
||||
ProcessFbConsultationUserLink userLink = businessInfoDTO.getProcessFbConsultationUserLink(); // 业务分派信息
|
||||
|
||||
String taskId = processInfoVO.getBasicTaskInfoDTO().getTaskId();
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
String taskProcessInstanceId = task.getProcessInstanceId();
|
||||
|
||||
LambdaQueryWrapper<ProcessFbConsultationUserLink> removeWrapper = new LambdaQueryWrapper<>();
|
||||
removeWrapper.eq(ProcessFbConsultationUserLink::getBusinessId, processInfoVO.getBusinessId());
|
||||
removeWrapper.eq(ProcessFbConsultationUserLink::getDepartLeaderId, CurrentUserUtil.getId());
|
||||
processFbConsultationUserLinkService.remove(removeWrapper); // 删除原先存储的关联
|
||||
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
List<ProcessFbConsultationUserLink> linkList = new ArrayList<>();
|
||||
if ("1".equals(userLink.getUserType())) { // 模块负责人
|
||||
if (StringUtils.isBlank(userLink.getModuleOwnerId())) {
|
||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "moduleOwnerId");
|
||||
}
|
||||
List<String> moduleOwnerIds = Arrays.asList(userLink.getModuleOwnerId().split(","));
|
||||
List<ProcessFbConsultationUserLink> linkList = new ArrayList<>();
|
||||
moduleOwnerIds.forEach(moduleOwnerId -> {
|
||||
ProcessFbConsultationUserLink link = new ProcessFbConsultationUserLink();
|
||||
link.setBusinessId(processInfoVO.getBusinessId());
|
||||
@@ -154,8 +156,32 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
linkList.add(link);
|
||||
});
|
||||
processFbConsultationUserLinkService.saveBatch(linkList, linkList.size());
|
||||
variables.put("passFirst", true);
|
||||
variables.put("moduleOwnerList", moduleOwnerIds);
|
||||
} else { // 设计工程师
|
||||
|
||||
if (StringUtils.isBlank(userLink.getDesignEngineerId())) {
|
||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "designEngineerId");
|
||||
}
|
||||
List<String> designEngineerIds = Arrays.asList(userLink.getDesignEngineerId().split(","));
|
||||
designEngineerIds.forEach(designEngineerId -> {
|
||||
ProcessFbConsultationUserLink link = new ProcessFbConsultationUserLink();
|
||||
link.setBusinessId(processInfoVO.getBusinessId());
|
||||
link.setDepartLeaderId(CurrentUserUtil.getId());
|
||||
link.setDesignEngineerId(designEngineerId);
|
||||
linkList.add(link);
|
||||
});
|
||||
processFbConsultationUserLinkService.saveBatch(linkList, linkList.size());
|
||||
variables.put("passFirst", false);
|
||||
variables.put("designEngineerList", designEngineerIds);
|
||||
}
|
||||
|
||||
// 完成任务
|
||||
taskService.complete(taskId, variables);
|
||||
|
||||
System.out.println("================================启动流程=================================");
|
||||
System.out.println("processInstanceId: " + processInfoVO.getBasicProcessInfoDTO().getProcessInstanceId());
|
||||
System.out.println("taskProcessInstanceId: " + taskProcessInstanceId);
|
||||
System.out.println("taskId: " + taskId);
|
||||
System.out.println("=======================================================================");
|
||||
}
|
||||
}
|
||||
|
||||
+20
-12
@@ -80,7 +80,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
||||
updateProcessAll(processInfoVO);
|
||||
|
||||
// 保存选人信息
|
||||
setProcessVariables(processInstanceId, userInfoMap);
|
||||
Map<String, Object> variables = setProcessVariables(userInfoMap);
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap);
|
||||
|
||||
// 根据流程实例id和任务处理人查询任务
|
||||
@@ -95,11 +95,11 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
||||
updateApprovalRecord(processInfoVO);
|
||||
|
||||
// 完成任务
|
||||
taskService.complete(taskId);
|
||||
taskService.complete(taskId, variables);
|
||||
|
||||
System.out.println("================================流程信息=================================");
|
||||
System.out.println("================================启动流程=================================");
|
||||
System.out.println("流程定义id: " + processDefinitionId);
|
||||
System.out.println("流程实例id: " + processInstanceId);
|
||||
System.out.println("流程实例name: " + processInstance.getName());
|
||||
System.out.println("=======================================================================");
|
||||
}
|
||||
|
||||
@@ -122,22 +122,28 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
||||
String processInstanceId = processDTO.getProcessInstanceId();
|
||||
String processDefinitionId = processDTO.getProcessDefinitionId();
|
||||
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
|
||||
Map<String, Object> variables = setProcessVariables(userInfoMap);
|
||||
if (!Objects.isNull(userInfoMap) && !userInfoMap.isEmpty()) {
|
||||
// 保存选人信息
|
||||
setProcessVariables(processInstanceId, userInfoMap);
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap);
|
||||
}
|
||||
if (pass) { // 通过
|
||||
runtimeService.setVariableLocal(processInstanceId, "pass", true);
|
||||
variables.put("pass", true);
|
||||
basicTaskInfoDTO.setCommitFlag(CommitFlagEnum.PASS.getValue());
|
||||
} else { // 驳回
|
||||
runtimeService.setVariableLocal(processInstanceId, "pass", false);
|
||||
variables.put("pass", false);
|
||||
basicTaskInfoDTO.setCommitFlag(CommitFlagEnum.REJECT.getValue());
|
||||
}
|
||||
// 更新审批记录表
|
||||
updateApprovalRecord(processInfoVO);
|
||||
// 完成任务
|
||||
taskService.complete(taskId);
|
||||
taskService.complete(taskId, variables);
|
||||
|
||||
System.out.println("================================启动流程=================================");
|
||||
System.out.println("流程定义id: " + processDefinitionId);
|
||||
System.out.println("流程实例id: " + processInstanceId);
|
||||
System.out.println("任务id: " + taskId);
|
||||
System.out.println("=======================================================================");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -146,16 +152,18 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
||||
* @Description: 设置流程变量
|
||||
**/
|
||||
@Override
|
||||
public void setProcessVariables(String processInstanceId, Map<String, Object> userInfoMap) {
|
||||
public Map<String, Object> setProcessVariables(Map<String, Object> userInfoMap) {
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
userInfoMap.forEach((k, v) -> {
|
||||
String value = (String) v;
|
||||
if (k.contains("List") && StringUtils.isNotBlank(value)) { // 会签节点
|
||||
List<String> userList = Arrays.asList(value.split(","));
|
||||
runtimeService.setVariable(processInstanceId, k, userList);
|
||||
} else { // 普通节点
|
||||
runtimeService.setVariable(processInstanceId, k, v);
|
||||
variables.put(k, userList);
|
||||
} else if (StringUtils.isNotBlank(value)) { // 普通节点
|
||||
variables.put(k, v);
|
||||
}
|
||||
});
|
||||
return variables;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+8
@@ -9,6 +9,7 @@ import com.jero.common.util.MessageUtils;
|
||||
import com.jero.common.util.MinioUtil;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.modules.laws.common.service.ILawsCommonService;
|
||||
import com.jero.modules.laws.common.vo.LawsDictModel;
|
||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
|
||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
|
||||
import com.jero.modules.laws.enterprise.util.WaterMarkUtil;
|
||||
@@ -26,6 +27,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
@@ -69,6 +71,12 @@ public class LawsCommonController {
|
||||
return Result.OK(lawsCommonService.getManyStandardSelectionBox(selectionBoxVO, pageNo, pageSize));
|
||||
}
|
||||
|
||||
@ApiOperation(value="分标委下拉列表", notes="分标委下拉列表")
|
||||
@GetMapping(value = "/getBiddingCommittee")
|
||||
public Result<List<LawsDictModel>> getBiddingCommittee() {
|
||||
return Result.OK(lawsCommonService.getBiddingCommittee());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 下载带水印的PDF文件
|
||||
|
||||
+8
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.laws.common.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jero.modules.laws.common.vo.LawsDictModel;
|
||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
|
||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
|
||||
import com.jero.modules.oss.entity.OSSFile;
|
||||
@@ -183,4 +184,11 @@ public interface ILawsCommonService {
|
||||
* @Description: 将标准编号集合中的标准改成废止状态
|
||||
**/
|
||||
void updateToAbolish(List<String> standardNumbers);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/16 9:50
|
||||
* @Description: 分标委下拉列表
|
||||
**/
|
||||
List<LawsDictModel> getBiddingCommittee();
|
||||
}
|
||||
|
||||
+26
@@ -18,6 +18,7 @@ import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
||||
import com.jero.modules.laws.common.service.ILawsCommonService;
|
||||
import com.jero.modules.laws.common.util.ImportUtil;
|
||||
import com.jero.modules.laws.common.vo.LawsDictModel;
|
||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
|
||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
|
||||
@@ -29,6 +30,8 @@ import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
||||
import com.jero.modules.laws.enterprise.util.WaterMarkUtil;
|
||||
import com.jero.modules.laws.standard.entity.*;
|
||||
import com.jero.modules.laws.standard.service.*;
|
||||
import com.jero.modules.laws.standardization.entity.LawsStandardization;
|
||||
import com.jero.modules.laws.standardization.service.ILawsStandardizationService;
|
||||
import com.jero.modules.oss.entity.OSSFile;
|
||||
import com.jero.modules.oss.service.IOSSFileService;
|
||||
import com.jero.modules.personal.entity.LawsBrowsingHistory;
|
||||
@@ -117,6 +120,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
private ILawsTreeNodeService lawsTreeNodeService;
|
||||
@Autowired
|
||||
private ILawsBrowsingHistoryService lawsBrowsingHistoryService;
|
||||
@Resource
|
||||
private ILawsStandardizationService lawsStandardizationService;
|
||||
|
||||
@Resource
|
||||
private EnterpriseStandardInspectContentService esInspectContentService;
|
||||
@@ -2099,6 +2104,27 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
lawsEnterpriseStandardService.update(qbUpdateWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/16 9:51
|
||||
* @Description: 分标委下拉列表
|
||||
**/
|
||||
@Override
|
||||
public List<LawsDictModel> getBiddingCommittee() {
|
||||
LawsStandardization parent = lawsStandardizationService.getById("0");
|
||||
LambdaQueryWrapper<LawsStandardization> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(LawsStandardization::getPid, parent.getId());
|
||||
List<LawsStandardization> standardizationList = lawsStandardizationService.list(queryWrapper);
|
||||
List<LawsDictModel> lawsDictModelList = new ArrayList<>();
|
||||
standardizationList.forEach(standardization -> {
|
||||
LawsDictModel lawsDictModel = new LawsDictModel();
|
||||
lawsDictModel.setValue(standardization.getId());
|
||||
lawsDictModel.setText(standardization.getName());
|
||||
lawsDictModelList.add(lawsDictModel);
|
||||
});
|
||||
return lawsDictModelList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建企标导入模板的Workbook
|
||||
*
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.jero.modules.laws.common.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/16 9:46
|
||||
* @Description: 字典模型
|
||||
*/
|
||||
@Data
|
||||
public class LawsDictModel {
|
||||
|
||||
/**
|
||||
* 字典value
|
||||
*/
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* 字典文本
|
||||
*/
|
||||
private String text;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user