From 51054f0da5dd4718212064510fff045815388b90 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 20 八月 2025 16:31:03 +0800
Subject: [PATCH] 增加临时流程处理
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java | 11 +++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TempFlowCompleteService.java | 58 +++++++++++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/EmailService.java | 44 --------------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java | 40 ++++++++-----
blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/ProgramFileNameCheckUtil.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java | 3
7 files changed, 95 insertions(+), 65 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/EmailService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/EmailService.java
index 174afa2..cd781f3 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/EmailService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/EmailService.java
@@ -15,49 +15,5 @@
@Service
@Slf4j
public class EmailService {
- @Autowired
- private JavaMailSender mailSender;
- public void sendSimpleEmail(String to, String subject, String text) {
- SimpleMailMessage message = new SimpleMailMessage();
- message.setTo(to);
- message.setSubject(subject);
- message.setText(text);
- message.setFrom("zhangxiaoxu@qianwen.ltd");
-
- mailSender.send(message);
- log.info("Simple email sent to: {}", to);
- }
-
- public void sendHtmlEmail(String to, String subject, String htmlContent)
- throws MessagingException {
- MimeMessage message = mailSender.createMimeMessage();
- MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
-
- helper.setTo(to);
- helper.setSubject(subject);
- helper.setText(htmlContent, true); // true 琛ㄧず HTML 鍐呭
- helper.setFrom("zhangxiaoxu@qianwen.ltd");
-
- mailSender.send(message);
- log.info("HTML email sent to: {}", to);
- }
-
- public void sendEmailWithAttachment(String to, String subject, String text,
- File attachment) throws MessagingException {
- MimeMessage message = mailSender.createMimeMessage();
- MimeMessageHelper helper = new MimeMessageHelper(message, true);
-
- helper.setTo(to);
- helper.setSubject(subject);
- helper.setText(text);
- helper.setFrom("noreply@example.com");
-
- // 娣诲姞闄勪欢
- FileSystemResource file = new FileSystemResource(attachment);
- helper.addAttachment(attachment.getName(), file);
-
- mailSender.send(message);
- log.info("Email with attachment sent to: {}", to);
- }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
index fd1b8aa..5382be2 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
@@ -39,6 +39,7 @@
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -61,6 +62,7 @@
private final TaskDispatchService taskDispatchService;
private final BatchDispatchService dispatchService;
private final ReplaceFlowCompleteService replaceFlowCompleteService;
+ private final TempFlowCompleteService tempFlowCompleteService;
/**
* 鍙戣捣娲惧伐娴佺▼
*/
@@ -79,10 +81,15 @@
}
AbstractFlowCompleteService getActualService(String processInstanceId){
- ProcessInstance inst = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
+ ProcessInstance inst = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).includeProcessVariables().singleResult();
if(inst.getProcessDefinitionKey().equals(FlowContants.TRY_PROCESS_KEY) || inst.getProcessDefinitionKey().equals(FlowContants.CURE_PROCESS_KEY)
|| inst.getProcessDefinitionKey().equals(FlowContants.UNLOCK_PROCESS_KEY)){
- return tryFlowCompleteService;
+ String isTempFlow = Func.toStr(inst.getProcessVariables().get(FlowContants.IS_TEMP_FLOW));
+ if(FlowContants.N.equals(isTempFlow)){
+ return tryFlowCompleteService;
+ }else{
+ return tempFlowCompleteService;
+ }
}else if(inst.getProcessDefinitionKey().equals(FlowContants.REPLACE_PROCESS_KEY)){
return replaceFlowCompleteService;
}else{
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
index 4aa863c..b183be4 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -57,7 +57,7 @@
vars.put(FlowContants.TITLE,startVO.getTitle());
//涓存椂娴佺▼鏍囧織锛屾槑纭寚瀹歒锛屽睘浜庝复鏃舵祦绋�
- vars.put(FlowContants.IS_TEMP_FLOW,FlowContants.Y.equals(startVO.getIsTempFlow())?FlowContants.Y:FlowContants.N);
+
//鏈哄簥缂栧彿
vars.put(FlowContants.MACHINE_CODE,startVO.getMachineCode());
String workshop = nodeDeptQueryService.getWorkshopNameByMachineCode(startVO.getMachineCode());
@@ -81,25 +81,35 @@
String programPkgName = NcNodeService.genProgramName(startVO.getDrawingNo(),startVO.getProcessNo());
vars.put(FlowContants.PROGRAM_PACKAGE_NAME,programPkgName);
- NcNode curedProgramPackage = ncNodeService.getCuredProgramPackage(programPkgName,startVO.getMachineCode());
- //璁剧疆鏄惁鏈夊浐鍖栫▼搴忔爣璁�
- vars.put(FlowContants.HAS_CURED_PROGRAM,curedProgramPackage != null ? FlowContants.Y:FlowContants.N);
- //宸ュ簭鐗堟鏄惁涓�鑷达紝鏄惁鍦ㄦ湁鏁堟湡鍐�
- if(curedProgramPackage != null && Func.isBlank(startVO.getDeviation())){//鍋忕鍗曚紭鍏堬紝濡傛灉鏈夊亸绂诲崟锛岄偅涔堟壘鍒板浐鍖栫▼搴忕殑涔熶笉绠楀浐鍖栦簡
- vars.put(FlowContants.CURED_NODE_ID,curedProgramPackage.getId());
- vars.put(FlowContants.IS_PROCESS_EDITION_SAME, StringUtils.equals(curedProgramPackage.getProcessEdition(),startVO.getProcessEdition()) ? "Y":"N");
- vars.put(FlowContants.VALIDITY_PERIOD, curedProgramPackage.withinValidityPeriod() ? FlowContants.Y:FlowContants.N);
+ vars.put(FlowContants.IS_TEMP_FLOW,FlowContants.Y.equals(startVO.getIsTempFlow())?FlowContants.Y:FlowContants.N);
+ NcNode curedProgramPackage = null;
+ if(FlowContants.N.equals(startVO.getIsTempFlow())) {
+ curedProgramPackage = ncNodeService.getCuredProgramPackage(programPkgName, startVO.getMachineCode());
+ //璁剧疆鏄惁鏈夊浐鍖栫▼搴忔爣璁�
+ vars.put(FlowContants.HAS_CURED_PROGRAM, curedProgramPackage != null ? FlowContants.Y : FlowContants.N);
+ //宸ュ簭鐗堟鏄惁涓�鑷达紝鏄惁鍦ㄦ湁鏁堟湡鍐�
+ if (curedProgramPackage != null && Func.isBlank(startVO.getDeviation())) {//鍋忕鍗曚紭鍏堬紝濡傛灉鏈夊亸绂诲崟锛岄偅涔堟壘鍒板浐鍖栫▼搴忕殑涔熶笉绠楀浐鍖栦簡
+ vars.put(FlowContants.CURED_NODE_ID, curedProgramPackage.getId());
+ vars.put(FlowContants.IS_PROCESS_EDITION_SAME, StringUtils.equals(curedProgramPackage.getProcessEdition(), startVO.getProcessEdition()) ? "Y" : "N");
+ vars.put(FlowContants.VALIDITY_PERIOD, curedProgramPackage.withinValidityPeriod() ? FlowContants.Y : FlowContants.N);
+ } else {
+ vars.put(FlowContants.IS_PROCESS_EDITION_SAME, FlowContants.Y);
+ vars.put(FlowContants.VALIDITY_PERIOD, FlowContants.Y);
+ }
+
}else{
- vars.put(FlowContants.IS_PROCESS_EDITION_SAME, FlowContants.Y);
- vars.put(FlowContants.VALIDITY_PERIOD, FlowContants.Y);
+ //涓存椂娴佺▼锛屼笉绠″浐鍖�
+ vars.put(FlowContants.HAS_CURED_PROGRAM,FlowContants.N);
}
String myProcessName = "璇曞垏涓嬪彂娴佺▼";
- if(vars.getOrDefault(FlowContants.HAS_CURED_PROGRAM,FlowContants.N).equals(FlowContants.Y)){
+ if(vars.getOrDefault(FlowContants.IS_TEMP_FLOW,FlowContants.N).equals(FlowContants.Y)){
+ myProcessName = "璇曞垏琛ュ厖娴佺▼";
+ }else if(StringUtils.isNotBlank(startVO.getDeviation()) ){
+ myProcessName = "鍋忕鍗�";
+ }else if(vars.getOrDefault(FlowContants.HAS_CURED_PROGRAM,FlowContants.N).equals(FlowContants.Y)){
myProcessName = "鍥哄寲涓嬪彂娴佺▼";
}
- if(StringUtils.isNotBlank(startVO.getDeviation()) ){
- myProcessName = "鍋忕鍗�";
- }
+
vars.put(FlowContants.MY_PROCESS_NAME, myProcessName);
String businessKey = "0";//涓氬姟琛╧ey
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TempFlowCompleteService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TempFlowCompleteService.java
new file mode 100644
index 0000000..025b960
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TempFlowCompleteService.java
@@ -0,0 +1,58 @@
+package org.springblade.mdm.flow.service.execute;
+
+import org.flowable.task.api.Task;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.mdm.flow.constants.FlowContants;
+import org.springblade.mdm.flow.service.FlowCommonService;
+import org.springblade.mdm.flow.service.FlowProgramFileService;
+import org.springblade.mdm.flow.service.FlowProgramProperties;
+import org.springblade.mdm.program.service.NcNodeAutoCreateService;
+import org.springblade.mdm.program.service.NcNodeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Map;
+
+/**
+ * 璇曞垏娴佺▼瀹屾垚浠诲姟鐨勫疄鐜�
+ */
+@Service("tempFlowCompleteService")
+public class TempFlowCompleteService extends AbstractFlowCompleteService {
+ @Autowired
+ private FlowProgramFileService flowProgramFileService;
+ @Autowired
+ private NcNodeService ncNodeService;
+ @Autowired
+ private FlowCommonService flowCommonService;
+
+ @Transactional
+ @Override
+ public void completeTask(String taskId, String processInstanceId, String comment, Map<String, Object> variables) {
+ Task task = currentTask(taskId);
+ String operateResult = this.getApproveResult(variables);
+
+
+ if (StringUtil.isNoneBlank(processInstanceId, comment)) {
+ taskService.addComment(taskId, processInstanceId, comment);
+ }
+ // 闈炵┖鍒ゆ柇
+ if (Func.isEmpty(variables)) {
+ variables = Kv.create();
+ }
+ variables.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
+
+ if(!variables.containsKey("assignee")) {
+ throw new ServiceException("璇锋寚瀹氭祦绋嬩笅涓�姝ュ鐞嗕汉");
+ }
+ addApproveRecord(taskId,comment,variables);
+
+ taskService.complete(taskId, variables);
+ }
+
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
index 1819d08..da3e7e0 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
@@ -42,7 +42,7 @@
String operateResult = this.getApproveResult(variables);
if(task.getTaskDefinitionKey().equals("programmingTask")) {//缂栧埗鑺傜偣
- flowProgramFileService.checkProgramFiles(processInstanceId,"Y".equals(operateResult));
+ flowProgramFileService.checkProgramFiles(processInstanceId,FlowContants.Y.equals(operateResult));
}
if (StringUtil.isNoneBlank(processInstanceId, comment)) {
taskService.addComment(taskId, processInstanceId, comment);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
index 6c9f0d1..353a355 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
@@ -109,8 +109,7 @@
@GetMapping("/sendmail")
@Operation(summary = "sendmail", description = "sendmail")
public R<Void> sendmail(String code) throws IOException, MessagingException {
- mailService.sendHtmlEmail("zhangxiaoxu@qianwen.ltd","testtitle"+code,"abc鐑︾儲鐑�");
- mailService.sendHtmlEmail("y_ys79@sina.com","testtitle"+code,"abc鐑︾儲鐑�");
+
return R.success();
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/ProgramFileNameCheckUtil.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/ProgramFileNameCheckUtil.java
index ccd0cff..b563da7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/ProgramFileNameCheckUtil.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/ProgramFileNameCheckUtil.java
@@ -15,7 +15,7 @@
* @param programProperties 绋嬪簭灞炴�э紝鍙戣捣鏃跺~鍐欑殑
*/
public static void checkFilename(String filename, FlowProgramProperties programProperties){
- if(FlowContants.IS_TEMP_FLOW.equals(programProperties.getIsTempFlow())){
+ if(FlowContants.Y.equals(programProperties.getIsTempFlow())){
//涓存椂绋嬪簭涓嬪彂娴佺▼锛屼笉妫�鏌ユ枃浠跺悕鍚堟硶鎬�
return;
}
--
Gitblit v1.9.3