From 0975559314f1d4ee44a03e87c2b369f1d3e0ff8b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 11 九月 2025 11:01:16 +0800
Subject: [PATCH] 修复替换流程bug
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/ReplaceFlowCompleteService.java | 14 +++++--
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java | 25 +++---------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/controller/MesController.java | 29 ++++++++++++--
blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/vo/MesTaskVO.java | 2 +
blade-service/blade-mdm/src/main/resources/processesbpmn/program-replace.bpmn20.xml | 4 +-
5 files changed, 45 insertions(+), 29 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java
index 313466b..687a529 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java
@@ -11,6 +11,7 @@
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.flow.constants.FlowContants;
+import org.springblade.mdm.flow.constants.FlowVariableContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.vo.ReplaceFlowStartVO;
import org.springblade.mdm.flow.vo.ReplaceUploadVO;
@@ -110,7 +111,11 @@
vars.put("comment", startVO.getComment());
vars.put(FlowContants.MY_PROCESS_NAME,"鏇挎崲娴佺▼");
- identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//璁剧疆娴佺▼鍙戣捣浜�
+
+ String userId = String.valueOf(AuthUtil.getUserId());
+ identityService.setAuthenticatedUserId(userId);//璁剧疆娴佺▼鍙戣捣浜�
+ vars.put(FlowVariableContants.ACT_PROGRAMMER,userId);//鍙戣捣浜烘寜鐓у疄闄呯紪绋嬩汉鍛樼畻
+
ProcessInstance inst = runtimeService.startProcessInstanceByKey(FlowContants.REPLACE_PROCESS_KEY,startVO.getNodeId()+"",vars);
//鏇存柊鑺傜偣鐨勬祦绋媔d锛岄伩鍏嶉噸澶嶅彂璧锋祦绋�
programPackage.setProcessInstanceId(inst.getId());
@@ -121,25 +126,7 @@
.set(FlowProgramFile::getProcessInstanceId,inst.getProcessInstanceId()).update();
}
- /*
- public void checkProgramFiles(String processInstanceId,boolean isPass) {
- List<FlowProgramFile> flowPrograms = this.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId, processInstanceId).orderByAsc(FlowProgramFile::getCreateTime).list();
- List<FlowProgramFile> purePrograms = flowPrograms.stream().filter(FlowProgramFile::isProgram).toList();
- if(isPass && purePrograms.isEmpty()){
- throw new ServiceException("璇蜂笂浼犵▼搴忔枃浠�");
- }
- int totalSeg = 0;
- if(!purePrograms.isEmpty()){
- FlowProgramFile progFile = purePrograms.get(0);
- totalSeg = ProgramFileNameCheckUtil.getProgramSegCount(progFile.getName());
- }
-
- if(totalSeg != purePrograms.size()){
- throw new ServiceException("搴斾笂浼�"+totalSeg+"娈电▼搴忥紝瀹為檯涓婁紶"+flowPrograms.size()+"娈�");
- }
-
- }*/
/**
* 涓婁紶绋嬪簭寰愭枃浠讹紙缂栧埗鑺傜偣璋冪敤锛�
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/ReplaceFlowCompleteService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/ReplaceFlowCompleteService.java
index 8bdf942..7747b83 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/ReplaceFlowCompleteService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/ReplaceFlowCompleteService.java
@@ -7,6 +7,7 @@
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.constants.FlowVariableContants;
import org.springblade.mdm.flow.service.FlowCommonService;
import org.springblade.mdm.flow.service.FlowProgramFileService;
import org.springblade.mdm.flow.service.FlowProgramProperties;
@@ -36,18 +37,23 @@
@Override
public void completeTask(String taskId, String processInstanceId, String comment, Map<String, Object> variables) {
Task task = currentTask(taskId);
+
+ // 闈炵┖鍒ゆ柇
+ if (Func.isEmpty(variables)) {
+ variables = Kv.create();
+ }
+
String operateResult = this.getApproveResult(variables);
if(task.getTaskDefinitionKey().equals("replaceProgrammingTask")) {//缂栧埗鑺傜偣
+ variables.put(FlowVariableContants.ACT_PROGRAMMER,Func.toStr(AuthUtil.getUserId()));
+
flowProgramFileService.checkProgramFiles(processInstanceId,"Y".equals(operateResult));
}
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")) {
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/controller/MesController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/controller/MesController.java
index 4bde6e8..af1cce3 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/controller/MesController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/controller/MesController.java
@@ -6,6 +6,8 @@
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.mdm.basesetting.producedivision.entity.QinzheFgb;
+import org.springblade.mdm.basesetting.producedivision.service.QinzheFgbService;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.entity.TaskDispatch;
import org.springblade.mdm.flow.excution.StartDispatcher;
@@ -15,7 +17,6 @@
import org.springblade.mdm.thirdpart.service.MesTaskService;
import org.springblade.mdm.thirdpart.vo.MesTaskFinishVO;
import org.springblade.mdm.thirdpart.vo.MesTaskVO;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -34,6 +35,8 @@
private StartDispatcher dispatcher;
@Autowired
private TaskDispatchService taskDispatchService;
+ @Autowired
+ private QinzheFgbService qinzheFgbService;
/**
* 鏂板
*/
@@ -71,7 +74,7 @@
}
return R.success();
}catch (Exception e) {
- log.error("鎺ユ敹mes浠诲姟澶辫触", e);;
+ log.error("鎺ユ敹mes浠诲姟澶辫触", e);
return R.fail(e.getMessage());
}
@@ -129,7 +132,11 @@
taskAssignVO.setMachineCode(mesTaskVO.getEquipmentCode());
taskAssignVO.setMachineMode(mesTaskVO.getEquipmentModel());
taskAssignVO.setDispatchBy(mesTaskVO.getDspatchBy());
-
+ if (mesTaskVO.getProductModel() != null) {
+ taskAssignVO.setProductModel(mesTaskVO.getProductModel());
+ }else{
+ taskAssignVO.setProductModel(this.queryProductModel(mesTaskVO.getDrawingCode()));
+ }
try {
taskAssignVO.setPlanStartTime(DateUtil.fromDate(DateUtil.parse(mesTaskVO.getPlanStartTime(),"yyyy-MM-dd HH:mm:ss")).toLocalDate());
}catch(Exception e){
@@ -139,6 +146,20 @@
taskAssignVO.setTitle(taskAssignVO.getDrawingNo()+"-"+taskAssignVO.getProcessNo()+"-"+taskAssignVO.getProcessEdition()+"璁″垝浠诲姟");
taskAssignVO.setIsTempFlow(FlowContants.N);
return taskAssignVO;
+ }
+
+ /**
+ * 鏌ヨ浜у搧鍨嬪彿
+ * @param drawingNo 鍥惧彿
+ * @return 浜у搧鍨嬪彿
+ */
+ String queryProductModel(String drawingNo){
+ QinzheFgb fgb = qinzheFgbService.getByLjh(drawingNo);
+ if(fgb!= null){
+ return fgb.getCph();
+ }else{
+ return null;
+ }
}
@PostMapping("/mes-finish-task")
@@ -155,7 +176,7 @@
mesTaskService.finishTask(finishTaskVO);
return R.success();
}catch(Exception e){
- log.error("鎺ユ敹MES宸ュ簭瀹屾垚淇℃伅澶辫触", e);;
+ log.error("鎺ユ敹MES宸ュ簭瀹屾垚淇℃伅澶辫触", e);
return R.fail("鍐呴儴閿欒");
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/vo/MesTaskVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/vo/MesTaskVO.java
index 68e49de..3bba3a1 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/vo/MesTaskVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/vo/MesTaskVO.java
@@ -12,6 +12,8 @@
private String drawingCode;
@Schema(description = "鍥剧焊鐗堟")
private String drawingVersion;
+ @Schema(description = "浜у搧鍨嬪彿")
+ private String productModel;
@Schema(description = "宸ュ簭鍙�")
private String operationCode;
@Schema(description = "宸ュ簭鍚嶇О")
diff --git a/blade-service/blade-mdm/src/main/resources/processesbpmn/program-replace.bpmn20.xml b/blade-service/blade-mdm/src/main/resources/processesbpmn/program-replace.bpmn20.xml
index 86b3f78..f64297f 100644
--- a/blade-service/blade-mdm/src/main/resources/processesbpmn/program-replace.bpmn20.xml
+++ b/blade-service/blade-mdm/src/main/resources/processesbpmn/program-replace.bpmn20.xml
@@ -19,7 +19,7 @@
<sequenceFlow id="sid-ffcf7c0a-7775-45fc-8e0a-368d70522633" sourceRef="repalceCheckTask" targetRef="replaceApprove">
<conditionExpression>${approve=='Y'}</conditionExpression>
</sequenceFlow>
- <sequenceFlow id="sid-c4180f0a-6120-4504-96e3-28ddd7975c15" sourceRef="replaceApprove" targetRef="repalceCheckTask">
+ <sequenceFlow id="sid-c4180f0a-6120-4504-96e3-28ddd7975c15" sourceRef="replaceApprove" targetRef="replaceProgrammingTask">
<conditionExpression>${approve=='N'}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-b78c5f58-0487-4cda-8ed8-0ea581b9e934" sourceRef="repalceCheckTask" targetRef="replaceProgrammingTask">
@@ -68,7 +68,7 @@
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-701c4cc7-5412-4218-9697-cd6f20f6d281" bpmnElement="sid-c4180f0a-6120-4504-96e3-28ddd7975c15">
<omgdi:waypoint x="60.0" y="-63.75"/>
- <omgdi:waypoint x="-100.0" y="-70.0"/>
+ <omgdi:waypoint x="-100.0" y="20.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-7aa67fcc-b2d7-4419-83e5-9f19eb19dfa5" bpmnElement="sid-b78c5f58-0487-4cda-8ed8-0ea581b9e934">
<omgdi:waypoint x="-125.0" y="-70.0"/>
--
Gitblit v1.9.3