From c9b3df7acb4ed5fecb16b9ca3c90e0341fbfe7e3 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 03 三月 2025 01:20:45 +0800
Subject: [PATCH] Merge branch 'dev'
---
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 141 +++++++++++++++++++++++++++++++---------------
1 files changed, 94 insertions(+), 47 deletions(-)
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index f6cfa5b..1ad1628 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -23,6 +23,7 @@
import com.ycl.domain.vo.IndexCustomerTaskVO;
import com.ycl.domain.vo.ProjectProcessDetailVO;
import com.ycl.event.event.TaskLogEvent;
+import com.ycl.mapper.ProjectEngineeringMapper;
import com.ycl.mapper.ProjectInfoMapper;
import com.ycl.mapper.ProjectProcessMapper;
import com.ycl.service.*;
@@ -77,6 +78,7 @@
private final IdentityService identityService;
private final RepositoryService repositoryService;
private final ProjectInfoMapper projectInfoMapper;
+ private final ProjectEngineeringMapper projectEngineeringMapper;
private final HistoryService historyService;
private final ISysUserService sysUserService;
private final ISysRoleService sysRoleService;
@@ -121,6 +123,7 @@
// 鏌ヨ璇ラ」鐩槸鍚﹀凡缁忕粦瀹氳繃娴佺▼浜嗭紝妫�鏌ョ粦瀹氱殑娴佺▼鏄惁鍦ㄨ繍琛岋紝鍦ㄨ繍琛屽氨鍒犱簡
ProjectProcess pp = new LambdaQueryChainWrapper<>(baseMapper)
.eq(ProjectProcess::getProjectId, form.getProjectId())
+ .eq(ProjectProcess::getProjectType, form.getProjectType())
.one();
if (Objects.isNull(pp)) {
throw new RuntimeException("璇ラ」鐩湭缁戝畾娴佺▼");
@@ -140,23 +143,38 @@
}
}
}
- ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
- .select(ProjectInfo::getProjectOwnerUnit)
- .eq(ProjectInfo::getId, form.getProjectId())
- .one();
- if (Objects.isNull(project)) {
- throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
+ Long unitId = null;
+ if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
+ ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
+ .select(ProjectInfo::getProjectOwnerUnit)
+ .eq(ProjectInfo::getId, form.getProjectId())
+ .one();
+ if (Objects.isNull(project)) {
+ throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
+ }
+ unitId = project.getProjectOwnerUnit();
+ } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
+ ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
+ .select(ProjectEngineering::getDepartment)
+ .eq(ProjectEngineering::getId, form.getProjectId())
+ .one();
+ if (Objects.isNull(projectEngineering)) {
+ throw new RuntimeException("宸ョ▼涓嶅瓨鍦�");
+ }
+ unitId = projectEngineering.getUnit();
}
- SysDept dept = deptService.selectDeptById(project.getProjectOwnerUnit());
+
+ SysDept dept = deptService.selectDeptById(unitId);
if (Objects.isNull(dept)) {
- throw new RuntimeException("椤圭洰涓氫富鍗曚綅涓嶅瓨鍦�");
+ throw new RuntimeException("涓氫富鍗曚綅涓嶅瓨鍦�");
}
String processInsId = this.startPro(form.getProjectId(), form.getProcessDefId(), dept.getDeptId());
new LambdaUpdateChainWrapper<>(baseMapper)
.eq(ProjectProcess::getProjectId, form.getProjectId())
+ .eq(ProjectProcess::getProjectType, form.getProjectType())
.set(ProjectProcess::getProcessDefId, form.getProcessDefId())
.set(ProjectProcess::getProcessInsId, processInsId)
- .set(ProjectProcess::getDataLaunch, project.getProjectOwnerUnit())
+ .set(ProjectProcess::getDataLaunch, unitId)
.update();
return Result.ok("娴佺▼鍙樻洿鎴愬姛");
@@ -164,21 +182,38 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public Result startProcess(Long projectId, String processDefId) {
- ProjectInfo project = projectInfoMapper.selectById(projectId);
- if (Objects.isNull(project)) {
- throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
+ public Result startProcess(ProjectProcessForm form) {
+ Long unitId = null;
+ if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
+ ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
+ .select(ProjectInfo::getProjectOwnerUnit)
+ .eq(ProjectInfo::getId, form.getProjectId())
+ .one();
+ if (Objects.isNull(project)) {
+ throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
+ }
+ unitId = project.getProjectOwnerUnit();
+ } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
+ ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
+ .select(ProjectEngineering::getDepartment)
+ .eq(ProjectEngineering::getId, form.getProjectId())
+ .one();
+ if (Objects.isNull(projectEngineering)) {
+ throw new RuntimeException("宸ョ▼涓嶅瓨鍦�");
+ }
+ unitId = projectEngineering.getUnit();
}
- SysDept dept = deptService.selectDeptById(project.getProjectOwnerUnit());
+ SysDept dept = deptService.selectDeptById(unitId);
if (Objects.isNull(dept)) {
- throw new RuntimeException("椤圭洰涓氫富鍗曚綅涓嶅瓨鍦�");
+ throw new RuntimeException("涓氫富鍗曚綅涓嶅瓨鍦�");
}
- String processInsId = this.startPro(projectId, processDefId, dept.getDeptId());
+ String processInsId = this.startPro(form.getProjectId(), form.getProcessDefId(), dept.getDeptId());
ProjectProcess entity = new ProjectProcess();
- entity.setProjectId(projectId);
- entity.setProcessDefId(processDefId);
+ entity.setProjectId(form.getProjectId());
+ entity.setProcessDefId(form.getProcessDefId());
entity.setProcessInsId(processInsId);
- entity.setDataLaunch(project.getProjectOwnerUnit());
+ entity.setDataLaunch(unitId);
+ entity.setProjectType(form.getProjectType());
baseMapper.insert(entity);
return Result.ok("娴佺▼鍚姩鎴愬姛");
@@ -191,7 +226,7 @@
* @param processDefId
* @return
*/
- private String startPro(Long projectId, String processDefId, Long createBy) {
+ private String startPro(String projectId, String processDefId, Long createBy) {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefId)
@@ -213,39 +248,51 @@
/**
* 鑾峰彇娴佺▼璇︽儏
*
- * @param projectId
+ * @param form
* @return
*/
@Override
- public Result detail(Long projectId, String processDefId) {
- // 椤圭洰淇℃伅
- ProjectInfo projectInfo = new LambdaQueryChainWrapper<>(projectInfoMapper)
- .select(ProjectInfo::getId, ProjectInfo::getProjectName, ProjectInfo::getProjectCode)
- .eq(ProjectInfo::getId, projectId)
- .one();
+ public Result detail(ProjectProcessForm form) {
- if (Objects.isNull(projectInfo)) {
- return Result.error("璇ラ」鐩笉瀛樺湪");
+ String projectName = "";
+ String projectCode = "";
+ if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
+ ProjectInfo projectInfo = projectInfoMapper.selectById(form.getProjectId());
+ if (Objects.isNull(projectInfo)) {
+ throw new RuntimeException("椤圭洰涓嶅瓨鍦�");
+ }
+ projectName = projectInfo.getProjectName();
+ projectCode = projectInfo.getProjectCode();
+ } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
+ ProjectEngineering projectEngineering = projectEngineeringMapper.selectById(form.getProjectId());
+ if (Objects.isNull(projectEngineering)) {
+ throw new RuntimeException("宸ョ▼涓嶅瓨鍦�");
+ }
+ projectName = projectEngineering.getProjectName();
}
ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(baseMapper)
- .eq(ProjectProcess::getProjectId, projectId)
- .eq(ProjectProcess::getProcessDefId, processDefId)
+ .eq(ProjectProcess::getProjectId, form.getProjectId())
+ .eq(ProjectProcess::getProcessDefId, form.getProcessDefId())
+ .eq(ProjectProcess::getProjectType, form.getProjectType())
.one();
if (Objects.isNull(projectProcess)) {
- return Result.error("璇ラ」鐩湭璁剧疆娴佺▼");
+ return Result.error("鏈缃祦绋�");
}
ProjectProcessDetailVO detail = new ProjectProcessDetailVO();
- detail.setProjectId(projectId);
- detail.setProjectName(projectInfo.getProjectName());
- detail.setProjectCode(projectInfo.getProjectCode());
+ detail.setProjectType(form.getProjectType().getValue());
+ detail.setProjectId(form.getProjectId());
+
+
+ detail.setProjectName(projectName);
+ detail.setProjectCode(projectCode);
ProjectProcessDetailVO.TaskStatistics taskStatistics = new ProjectProcessDetailVO.TaskStatistics();
// 鐘舵�佺粺璁�
- taskStatistics.setTotalTaskNum(this.getTotalTaskNum(processDefId));
+ taskStatistics.setTotalTaskNum(this.getTotalTaskNum(form.getProcessDefId()));
taskStatistics.setTodoTaskNum(this.getTodoTaskNum(projectProcess.getProcessInsId()));
- taskStatistics.setRemainingTaskNum(this.getRemainingTaskNum(processDefId, projectProcess.getProcessInsId(), taskStatistics.getTotalTaskNum()));
+ taskStatistics.setRemainingTaskNum(this.getRemainingTaskNum(form.getProcessDefId(), projectProcess.getProcessInsId(), taskStatistics.getTotalTaskNum()));
taskStatistics.setTimelyFinishedTaskNum(this.getTimelyTaskNum(projectProcess.getProcessInsId()));
taskStatistics.setOvertimeTaskNum(this.getOvertimeTaskNum(projectProcess.getProcessInsId()));
taskStatistics.setWillOvertimeTaskNum(this.getWillOvertimeTaskNum(projectProcess.getProcessInsId()));
@@ -835,7 +882,7 @@
* @param pageNum
* @param result
*/
- public void getTodoTaskList(Long projectId, String processInsId, String taskName, int pageSize, int pageNum, Result result) {
+ public void getTodoTaskList(String projectId, String processInsId, String taskName, int pageSize, int pageNum, Result result) {
TaskQuery taskQuery = taskService.createTaskQuery()
.active()
.processInstanceId(processInsId)
@@ -872,7 +919,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getAllUserTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
+ private List<CustomerTaskVO> getAllUserTask(String projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
int startNum = pageSize * (pageNum - 1);
int endNum = startNum + pageSize;
List<UserTask> allUserTaskElement = this.getAllUserTaskElement(processDefinitionId);
@@ -1022,7 +1069,7 @@
* @param processDefId 娴佺▼瀹氫箟id
* @return
*/
- private List<CustomerTaskVO> getFinishedProcessTaskInfo(List<UserTask> userTasks, Long projectId, String processInsId, String processDefId) {
+ private List<CustomerTaskVO> getFinishedProcessTaskInfo(List<UserTask> userTasks, String projectId, String processInsId, String processDefId) {
HistoricProcessInstance hisProcess = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInsId).singleResult();
if (Objects.isNull(hisProcess)) {
return new ArrayList<>();
@@ -1088,7 +1135,7 @@
* @param taskVO 浠诲姟vo
* @param projectId 椤圭洰id
*/
- private void setRuntimeTaskInfo(Task task, CustomerTaskVO taskVO, Long projectId) {
+ private void setRuntimeTaskInfo(Task task, CustomerTaskVO taskVO, String projectId) {
// 褰撳墠娴佺▼淇℃伅
taskVO.setTaskId(task.getId());
taskVO.setCreateTime(task.getCreateTime());
@@ -1231,7 +1278,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getTimelyTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
+ private List<CustomerTaskVO> getTimelyTask(String projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
int startNum = pageSize * (pageNum - 1);
int endNum = startNum + pageSize;
@@ -1443,7 +1490,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getOvertimeTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
+ private List<CustomerTaskVO> getOvertimeTask(String projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
int startNum = pageSize * (pageNum - 1);
int endNum = startNum + pageSize;
@@ -1556,7 +1603,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getWillOvertimeTask(Long projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
+ private List<CustomerTaskVO> getWillOvertimeTask(String projectId, String processDefinitionId, String processInsId, String taskName, Integer pageNum, Integer pageSize, Result result) {
int startNum = pageSize * (pageNum - 1);
int endNum = startNum + pageSize;
@@ -1631,7 +1678,7 @@
* @param result
* @return
*/
- private List<CustomerTaskVO> getRemainingTask(Long projectId,
+ private List<CustomerTaskVO> getRemainingTask(String projectId,
String processDefinitionId,
String processInsId,
String taskName,
@@ -1759,7 +1806,7 @@
* @param setType 0 璁剧疆璐d换鍗曚綅 1 璁剧疆鍔炵悊鍗曚綅
* @param vo
*/
- private void varYzReview(CustomerTaskVO vo, Long projectId, String processInsId, HandlerTypeEnum type, Integer setType) {
+ private void varYzReview(CustomerTaskVO vo, String projectId, String processInsId, HandlerTypeEnum type, Integer setType) {
ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(projectProcessMapper)
.eq(ProjectProcess::getProjectId, projectId)
.eq(ProjectProcess::getProcessInsId, processInsId)
@@ -1829,7 +1876,7 @@
* @param projectId
* @param processInsId
*/
- private void setCandidateInfo(UserTask userTask, CustomerTaskVO vo, Long projectId, String processInsId) {
+ private void setCandidateInfo(UserTask userTask, CustomerTaskVO vo, String projectId, String processInsId) {
if (StringUtils.isNotBlank(userTask.getAssignee())) {
SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
if (Objects.nonNull(sysUser)) {
--
Gitblit v1.8.0