From 80a641659a361c9f55c57936daca0a1790f777d5 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 12 六月 2025 22:55:06 +0800
Subject: [PATCH] 机床组改为字典
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineQueryVO.java | 4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java | 5
blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml | 45 +++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machinegroup/controller/MachineGroupController.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/entity/Machine.java | 4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java | 4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java | 35 ++++++
blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml | 92 ++++++++++++++---
doc/sql/mdm/mdm.all.create.sql | 50 ++++++++-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java | 40 +++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml | 4
11 files changed, 246 insertions(+), 39 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/entity/Machine.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/entity/Machine.java
index c768300..1a9f05f 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/entity/Machine.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/entity/Machine.java
@@ -13,9 +13,9 @@
private String name;
private String code;
/**
- * 鎵�灞炴満搴婄粍ID
+ * 鎵�灞炴満搴婄粍code锛屽瓧鍏竚achine_group
*/
- private Long machineGroupId;
+ private String machineGroupCode;
/**
* 鏈哄櫒瑙勬牸:01杞﹀簥/02閾e簥,鍦ㄤ笟鍔″瓧鍏搁厤缃紙key=machine_spec锛�
*/
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml
index c3836a5..5a5c097 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml
@@ -14,8 +14,8 @@
<result column="is_deleted" property="isDeleted"/>
</resultMap>
<select id="pageQuery" resultType="org.springblade.mdm.basesetting.machine.vo.MachineVO">
- select m.id,m.name,m.code,g.name group_name,m.machine_spec,m.manufacturer,m.operator
- from mdm_machine m join mdm_machine_group g on m.machine_group_id=g.id
+ select m.id,m.name,m.code,g.dict_value group_name,m.machine_spec,m.manufacturer,m.operator
+ from mdm_machine m join blade_dict_biz g on m.machine_group_code=g.dict_key and g.code='machine_group' and g.is_deleted=0
${ew.customSqlSegment}
</select>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineQueryVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineQueryVO.java
index 654c29f..08979db 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineQueryVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineQueryVO.java
@@ -15,7 +15,7 @@
public class MachineQueryVO extends Query {
@Schema(description = "鍚嶇О鎴栫紪鐮�")
private String keyword;
- @Schema(description = "鏈哄簥缁刬d")
- private Long machineGroupId;
+ @Schema(description = "鏈哄簥缁刢ode")
+ private Long machineGroupCode;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java
index 647cf0d..0a776e0 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java
@@ -12,9 +12,9 @@
private String code;
private String name;
/**
- * 鎵�灞炴満搴婄粍ID
+ * 鎵�灞炴満搴婄粍code,瀛楀吀machine_group
*/
- private Long machineGroupId;
+ private String machineGroupCode;
/**
* 鏈哄櫒瑙勬牸:01杞﹀簥/02閾e簥,鍦ㄤ笟鍔″瓧鍏搁厤缃紙key=machine_spec锛�
*/
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machinegroup/controller/MachineGroupController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machinegroup/controller/MachineGroupController.java
index fb3b7ba..272cbbd 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machinegroup/controller/MachineGroupController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machinegroup/controller/MachineGroupController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
@@ -20,6 +21,7 @@
@RestController
@RequestMapping("/machinegroup")
@Tag(name = "鏈哄簥缁�", description = "鏈哄簥缁�")
+@Hidden
public class MachineGroupController {
@Autowired
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 80e0881..b141fa6 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
@@ -1,6 +1,7 @@
package org.springblade.mdm.flow.controller;
import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.TaskService;
@@ -38,9 +39,9 @@
dispatcher.start(startVO);
return R.<Boolean>status(true);
}
-
+ @Operation(summary = "瀹屾垚浠诲姟", description = "娴佸悜涓嬩竴涓妭鐐�")
@PostMapping("completeTask")
- public R<Void> completeTask(String taskId, String processInstanceId, String comment, @RequestBody Map<String, Object> variables) {
+ public R<Void> completeTask(String taskId, String processInstanceId, String comment,@Parameter(name="variables",description = "浠诲姟鍙橀噺")@RequestBody Map<String, Object> variables) {
// 澧炲姞璇勮
if (StringUtil.isNoneBlank(processInstanceId, comment)) {
taskService.addComment(taskId, processInstanceId, comment);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
index ea3ebd6..2166277 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
@@ -27,18 +27,47 @@
@RequestMapping("/flow/")
@Tag(name = "娲惧伐娴佺▼", description = "娲惧伐娴佺▼")
public class MyFlowController {
-
+ @Autowired
+ private TaskService taskService;
@Autowired
private FlowBusinessService businessService;
/**
- * 寰呭姙浜嬪姟鍒楄〃椤�
+ * 寰呭姙浠诲姟鍒楄〃椤�
*/
@GetMapping("todo-list")
@ApiOperationSupport(order = 3)
- @Operation(summary = "鎴戠殑娴佺▼", description = "浼犲叆娴佺▼淇℃伅")
+ @Operation(summary = "寰呭姙浠诲姟", description = "浼犲叆娴佺▼淇℃伅")
public R<IPage<BladeFlow>> todoList(@Parameter(description = "鍏抽敭瀛�") String keyword, Query query) {
IPage<BladeFlow> pages = businessService.selectTodoPage(Condition.getPage(query), keyword);
return R.data(pages);
}
+
+ /**
+ * 寰呭姙浠诲姟鍒楄〃椤�
+ */
+ @GetMapping("alltask-list")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "鎵�鏈変换鍔★紙fortest锛�", description = "浼犲叆娴佺▼淇℃伅")
+ public R<IPage<BladeFlow>> alltaskList(@Parameter(description = "鍏抽敭瀛�") String keyword, Query query) {
+ IPage<BladeFlow> pages = businessService.selectAllTaskPage(Condition.getPage(query), keyword);
+ return R.data(pages);
+ }
+
+ @Operation(summary = "杞淳浠诲姟", description = "")
+ @PostMapping("transferTask")
+ public R<Void> transferTask(String taskId,String newAssigneeId, String processInstanceId, String comment, @RequestBody Map<String, Object> variables) {
+ // 澧炲姞璇勮
+ if (StringUtil.isNoneBlank(processInstanceId, comment)) {
+ taskService.addComment(taskId, processInstanceId, comment);
+ }
+ // 闈炵┖鍒ゆ柇
+ if (Func.isEmpty(variables)) {
+ variables = Kv.create();
+ }
+ // 瀹屾垚浠诲姟
+ taskService.setAssignee(taskId, newAssigneeId);
+ return R.success("娴佺▼杞淳鎴愬姛");
+ }
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
index 529e9e8..0ab7275 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
@@ -70,7 +70,7 @@
String userId = ""+AuthUtil.getUserId();
List<BladeFlow> flowList = new LinkedList<>();
- TaskQuery todoQuery = taskService.createTaskQuery().taskAssignee("1930600500876619777").active().includeProcessVariables();
+ TaskQuery todoQuery = taskService.createTaskQuery().taskAssignee(userId).active().includeProcessVariables();
if(Func.isNotEmpty(keyword)){
todoQuery.or();
@@ -344,4 +344,42 @@
return historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
}
+ public IPage<BladeFlow> selectAllTaskPage(IPage<BladeFlow> page, String keyword) {
+
+ List<BladeFlow> flowList = new LinkedList<>();
+
+ TaskQuery todoQuery = taskService.createTaskQuery().active().includeProcessVariables();
+
+ if(Func.isNotEmpty(keyword)){
+ todoQuery.or();
+
+ todoQuery.processVariableValueLike("processNo",keyword);
+ todoQuery.processVariableValueLike("machineCode",keyword);
+ todoQuery.processVariableValueLike("machineMode",keyword);
+
+ todoQuery.processVariableValueLike("processName",keyword);
+ todoQuery.processVariableValueLike("processEdition",keyword);
+
+ todoQuery.processVariableValueLike("craftEdition",keyword);
+ //TODO 澶氫釜瀛楁閮借鍖归厤
+
+ todoQuery.endOr();
+ }
+
+ todoQuery.orderByTaskCreateTime().desc();
+
+ // 鏋勫缓鍒楄〃鏁版嵁
+ BladeFlow bladeFlow = new BladeFlow();
+ buildFlowTaskList(bladeFlow, flowList, todoQuery, "todo");//FlowEngineConstant.STATUS_TODO
+
+ // 璁$畻鎬绘暟
+ long count = todoQuery.count();
+ // 璁剧疆椤垫暟
+ page.setSize(count);
+ // 璁剧疆鎬绘暟
+ page.setTotal(count);
+ // 璁剧疆鏁版嵁
+ page.setRecords(flowList);
+ return page;
+ }
}
diff --git a/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml b/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
index 109f35d..549a53d 100644
--- a/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
+++ b/blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
@@ -7,11 +7,32 @@
<userTask id="programmingTask" name="缂栧埗" flowable:assignee="${programmer}"/>
<sequenceFlow id="sid-ac678e85-9f7b-4e8d-903f-2591ea7721ab" sourceRef="teamLeaderTask" targetRef="programmingTask"/>
<userTask id="check" name="鏍″" flowable:assignee="${checker}"/>
- <sequenceFlow id="sid-6c33a84d-d03e-47f6-87c1-8e676b25e572" sourceRef="programmingTask" targetRef="check"/>
- <userTask id="approveTask" name="楂樺笀瀹℃壒"/>
- <sequenceFlow id="sid-2e73fc3f-6802-4a94-984c-e1b9a50f8489" sourceRef="check" targetRef="approveTask"/>
+ <sequenceFlow id="sid-6c33a84d-d03e-47f6-87c1-8e676b25e572" sourceRef="programmingTask" targetRef="programGateway"/>
+ <userTask id="approveTask" name="楂樺笀瀹℃壒" flowable:assignee="${senior}"/>
+ <sequenceFlow id="toCheckApproveGateway" sourceRef="check" targetRef="checkApproveGateway" name="鏍″瀹℃壒鍒ゆ柇缃戝叧"/>
<endEvent id="approveEnd" name="瀹℃壒瀹屾垚"/>
- <sequenceFlow id="sid-1a414739-a80f-4436-8d7a-e7b65fae8233" sourceRef="approveTask" targetRef="approveEnd"/>
+ <sequenceFlow id="sid-1a414739-a80f-4436-8d7a-e7b65fae8233" sourceRef="approveTask" targetRef="seriorApproveGateway"/>
+ <exclusiveGateway id="programGateway" name="缂栧埗瀹屾垚鍒ゆ柇缃戝叧"/>
+ <sequenceFlow id="programingToCheck" sourceRef="programGateway" targetRef="check" name="缂栧埗瀹屾垚缁欐牎瀵�">
+ <conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="programingBackToLeader" sourceRef="programGateway" targetRef="teamLeaderTask" name="缂栧埗椹冲洖">
+ <conditionExpression xsi:type="tFormalExpression">${approve=='N'}</conditionExpression>
+ </sequenceFlow>
+ <exclusiveGateway id="checkApproveGateway" name="鏍″瀹℃壒鍒ゆ柇缃戝叧"/>
+ <sequenceFlow id="flowCheckToPrograming" sourceRef="checkApproveGateway" targetRef="programmingTask" name="flow鏍″椹冲洖鍒扮紪鍒�">
+ <conditionExpression xsi:type="tFormalExpression">${approve=='N'}</conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="flowToSeriorTask" sourceRef="checkApproveGateway" targetRef="approveTask" name="鍒伴珮甯堝鎵�">
+ <conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
+ </sequenceFlow>
+ <exclusiveGateway id="seriorApproveGateway" name="楂樺笀鍒ゆ柇缃戝叧"/>
+ <sequenceFlow id="sid-c0b195e7-17e5-44bf-8115-8b7126cb3ab3" sourceRef="seriorApproveGateway" targetRef="approveEnd">
+ <conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
+ </sequenceFlow>
+ <sequenceFlow id="sid-03430665-d042-46b3-ab65-5ecde104ce8e" sourceRef="seriorApproveGateway" targetRef="check">
+ <conditionExpression xsi:type="tFormalExpression"/>
+ </sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_dispatch">
<bpmndi:BPMNPlane bpmnElement="dispatch" id="BPMNPlane_dispatch">
@@ -20,38 +41,71 @@
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-5783eb04-78a8-4bde-b8bb-c12d28f07609" bpmnElement="sid-c1619263-d1ff-4106-9315-f9ab9a3bee71">
<omgdi:waypoint x="-290.0" y="-92.5"/>
- <omgdi:waypoint x="-185.0" y="-75.0"/>
+ <omgdi:waypoint x="-240.0" y="-92.5"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-720b1ec1-043e-4a8a-bc4d-c50cf01678d7" bpmnElement="teamLeaderTask">
- <omgdc:Bounds x="-185.0" y="-115.0" width="100.0" height="80.0"/>
+ <omgdc:Bounds x="-240.0" y="-125.0" width="70.0" height="65.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="shape-b1baea86-1882-4c5c-886f-44e3d9be3746" bpmnElement="programmingTask">
- <omgdc:Bounds x="-20.0" y="-115.0" width="100.0" height="80.0"/>
+ <omgdc:Bounds x="-115.0" y="-122.5" width="85.0" height="60.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-0079d499-1c0d-4745-9886-40df39794833" bpmnElement="sid-ac678e85-9f7b-4e8d-903f-2591ea7721ab">
- <omgdi:waypoint x="-85.0" y="-75.0"/>
- <omgdi:waypoint x="-20.0" y="-75.0"/>
+ <omgdi:waypoint x="-170.0" y="-92.5"/>
+ <omgdi:waypoint x="-115.0" y="-92.5"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-9237838e-5de2-4db7-8d46-3f4a69de7e6e" bpmnElement="check">
- <omgdc:Bounds x="105.0" y="-115.0" width="100.0" height="80.0"/>
+ <omgdc:Bounds x="85.0" y="-120.0" width="60.0" height="55.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-72007fd8-6ed8-402f-8bbc-81bd6c856fa7" bpmnElement="sid-6c33a84d-d03e-47f6-87c1-8e676b25e572">
- <omgdi:waypoint x="80.0" y="-55.0"/>
- <omgdi:waypoint x="105.0" y="-95.0"/>
+ <omgdi:waypoint x="-30.0" y="-77.5"/>
+ <omgdi:waypoint x="-30.0" y="-15.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-a42e90ff-9c82-4d5b-8f5b-0804754e89a6" bpmnElement="approveTask">
- <omgdc:Bounds x="15.0" y="16.0" width="100.0" height="80.0"/>
+ <omgdc:Bounds x="130.0" y="1.0" width="50.0" height="45.0"/>
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="edge-7fe1281a-3bbf-4308-90a5-cbf70aa019dd" bpmnElement="sid-2e73fc3f-6802-4a94-984c-e1b9a50f8489">
- <omgdi:waypoint x="130.0" y="-35.0"/>
- <omgdi:waypoint x="90.0" y="16.0"/>
+ <bpmndi:BPMNEdge id="edge-7fe1281a-3bbf-4308-90a5-cbf70aa019dd" bpmnElement="toCheckApproveGateway">
+ <omgdi:waypoint x="145.0" y="-92.5"/>
+ <omgdi:waypoint x="240.0" y="-30.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-f14acaf6-9747-4d52-87a1-d4c5b8f3d166" bpmnElement="approveEnd">
- <omgdc:Bounds x="205.0" y="41.0" width="30.0" height="30.0"/>
+ <omgdc:Bounds x="245.0" y="51.0" width="30.0" height="30.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-9cb8c108-2b94-4e39-b7ed-93ff0d86fe73" bpmnElement="sid-1a414739-a80f-4436-8d7a-e7b65fae8233">
- <omgdi:waypoint x="115.0" y="56.0"/>
- <omgdi:waypoint x="205.0" y="56.0"/>
+ <omgdi:waypoint x="130.0" y="34.75"/>
+ <omgdi:waypoint x="55.0" y="70.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="shape-b505d942-4475-416a-aec6-c02164e6ee05" bpmnElement="programGateway">
+ <omgdc:Bounds x="-50.0" y="-15.0" width="40.0" height="40.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="edge-6f05f47f-7804-4dd0-b6d2-e435b9efaa3c" bpmnElement="programingToCheck">
+ <omgdi:waypoint x="-10.0" y="5.0"/>
+ <omgdi:waypoint x="85.0" y="-78.75"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="edge-b38a8021-a54d-4671-aaf2-408bdbbbd374" bpmnElement="programingBackToLeader">
+ <omgdi:waypoint x="-50.0" y="5.0"/>
+ <omgdi:waypoint x="-170.0" y="-76.25"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="shape-b113f604-a178-455b-9518-9f4953322948" bpmnElement="checkApproveGateway">
+ <omgdc:Bounds x="220.0" y="-30.0" width="40.0" height="40.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="edge-c2232174-4a73-4c39-ac85-fc3854f0f18c" bpmnElement="flowCheckToPrograming">
+ <omgdi:waypoint x="220.0" y="-10.0"/>
+ <omgdi:waypoint x="-30.0" y="-92.5"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="edge-d05b5f9f-9108-4a41-9e48-4db1e1b1e325" bpmnElement="flowToSeriorTask">
+ <omgdi:waypoint x="240.0" y="10.0"/>
+ <omgdi:waypoint x="180.0" y="12.25"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="shape-6be62567-0538-4a4f-b3ce-e819d7182666" bpmnElement="seriorApproveGateway">
+ <omgdc:Bounds x="35.0" y="70.0" width="40.0" height="40.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="edge-715efa53-6c03-407b-87ec-640f99c481a0" bpmnElement="sid-c0b195e7-17e5-44bf-8115-8b7126cb3ab3">
+ <omgdi:waypoint x="75.0" y="90.0"/>
+ <omgdi:waypoint x="245.0" y="73.5"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="edge-782277fd-866f-44d5-9046-af7c34c4b85c" bpmnElement="sid-03430665-d042-46b3-ab65-5ecde104ce8e">
+ <omgdi:waypoint x="35.0" y="90.0"/>
+ <omgdi:waypoint x="100.0" y="-65.0"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
diff --git a/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml b/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml
new file mode 100644
index 0000000..2e88c8f
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef">
+ <process id="program-cure" name="鍥哄寲娴佺▼" isExecutable="true">
+ <startEvent id="sid-abe970b9-1bee-49a1-91b4-1184c47c10b7"/>
+ <userTask id="sid-e9be5408-2827-4ee7-bee5-fda38a8f23e6"/>
+ <sequenceFlow id="sid-910649a5-8dac-48a2-b42d-9f1132d61b26" sourceRef="sid-e9be5408-2827-4ee7-bee5-fda38a8f23e6" targetRef="sid-e9be5408-2827-4ee7-bee5-fda38a8f23e6"/>
+ <sequenceFlow id="sid-09c7cf44-bb1a-40f4-b231-919afae5c02f" sourceRef="sid-abe970b9-1bee-49a1-91b4-1184c47c10b7" targetRef="sid-e9be5408-2827-4ee7-bee5-fda38a8f23e6"/>
+ <endEvent id="end" name="鍥哄寲缁撴潫"/>
+ <userTask id="seniorApproveTask" name="楂樺笀瀹℃牳"/>
+ <sequenceFlow id="sid-8dd21f02-ac10-4318-b897-19b4cdc558c7" sourceRef="sid-e9be5408-2827-4ee7-bee5-fda38a8f23e6" targetRef="seniorApproveTask"/>
+ <sequenceFlow id="sid-504610fe-2b87-4df4-8f42-f10c8bf3ce01" sourceRef="seniorApproveTask" targetRef="end"/>
+ </process>
+ <bpmndi:BPMNDiagram id="BPMNDiagram_program-cure">
+ <bpmndi:BPMNPlane bpmnElement="program-cure" id="BPMNPlane_program-cure">
+ <bpmndi:BPMNShape id="shape-7fe43876-cd89-402e-aada-b7fe7d89e64a" bpmnElement="sid-abe970b9-1bee-49a1-91b4-1184c47c10b7">
+ <omgdc:Bounds x="-215.0" y="-85.0" width="30.0" height="30.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape-702fceb1-2073-4a25-a94d-86c2392dfc6f" bpmnElement="sid-e9be5408-2827-4ee7-bee5-fda38a8f23e6">
+ <omgdc:Bounds x="-110.0" y="-95.0" width="75.0" height="55.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="edge-fbb946ca-a477-4237-b78f-72cf4e0b8479" bpmnElement="sid-910649a5-8dac-48a2-b42d-9f1132d61b26">
+ <omgdi:waypoint x="-110.0" y="-67.5"/>
+ <omgdi:waypoint x="-110.0" y="-67.5"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="edge-53030742-9070-4825-949f-edc502019050" bpmnElement="sid-09c7cf44-bb1a-40f4-b231-919afae5c02f">
+ <omgdi:waypoint x="-185.0" y="-77.5"/>
+ <omgdi:waypoint x="-110.0" y="-81.25"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="shape-99ebb425-cb2f-45f3-93e2-4ca390bc8099" bpmnElement="end">
+ <omgdc:Bounds x="190.0" y="-82.5" width="30.0" height="30.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape-b464ad8c-9ec6-4e35-bfa5-c062c91b646a" bpmnElement="seniorApproveTask">
+ <omgdc:Bounds x="25.0" y="-95.0" width="65.0" height="35.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="edge-94601323-c6bd-48f8-94fd-f61c6b550126" bpmnElement="sid-8dd21f02-ac10-4318-b897-19b4cdc558c7">
+ <omgdi:waypoint x="-35.0" y="-67.5"/>
+ <omgdi:waypoint x="25.0" y="-68.75"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="edge-b93559c6-90f6-46e1-a6e6-4b0a2a5bc33b" bpmnElement="sid-504610fe-2b87-4df4-8f42-f10c8bf3ce01">
+ <omgdi:waypoint x="90.0" y="-68.75"/>
+ <omgdi:waypoint x="190.0" y="-67.5"/>
+ </bpmndi:BPMNEdge>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+</definitions>
diff --git a/doc/sql/mdm/mdm.all.create.sql b/doc/sql/mdm/mdm.all.create.sql
index 27fbbd2..d4e995c 100644
--- a/doc/sql/mdm/mdm.all.create.sql
+++ b/doc/sql/mdm/mdm.all.create.sql
@@ -20,7 +20,7 @@
`code` varchar(100) NOT NULL COMMENT '鏈哄簥缂栧彿',
`name` varchar(100) NOT NULL COMMENT '鏈哄簥鎻忚堪/鍨嬪彿',
`avatar` varchar(400) DEFAULT NULL COMMENT '鍥剧墖鍦板潃',
- `machine_group_id` bigint NOT NULL COMMENT '鎵�灞炴満搴婄粍ID',
+ `machine_group_code` varchar(255) NOT NULL COMMENT '鎵�灞炴満搴婄粍浠g爜锛�,鍦ㄤ笟鍔″瓧鍏搁厤缃紙key=machine_group锛�',
`machine_spec` varchar(20) DEFAULT NULL COMMENT '鏈哄櫒瑙勬牸:01杞﹀簥/02閾e簥,鍦ㄤ笟鍔″瓧鍏搁厤缃紙key=machine_spec锛�',
`operator` varchar(100) COMMENT '鎿嶄綔鍛橈紝鏂囨湰褰曞叆',
`owner_dept` bigint DEFAULT NULL COMMENT '鎵�灞炲崟浣�/缁勭粐',
@@ -60,25 +60,63 @@
UNIQUE KEY `uniqueCheckIndex` (`team_leader_id`,`programmer_id`,`checker_id`,`senior_id`,`is_deleted`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='涓诲埗璁″垝琛�';
+
+CREATE TABLE `mdm_nc_node` (
+ `id` bigint NOT NULL,
+ `tenant_id` varchar(6) DEFAULT NULL COMMENT '鎵�灞炵鎴�',
+ `name` varchar(100) NOT NULL COMMENT '鑺傜偣鍚嶇О',
+ `parent_id` bigint DEFAULT NULL COMMENT '鎵�灞炴満搴婄粍ID',
+ `node_type` varchar(20) DEFAULT NULL COMMENT '鑺傜偣绫诲瀷锛歅RODUCT_MODEL(浜у搧鍨嬪彿)/PARTS_NO(闆剁粍浠跺彿)/CRAFT_EDITION(宸ヨ壓鐗堟)/PROCESS_NO(宸ュ簭鍙�)/MACHINE(鏈哄簥)/PACKAGE(绋嬪簭鍖呭悕)/PROGRAME(绋嬪簭鏂囦欢)',
+ `status` int DEFAULT NULL COMMENT '涓氬姟鐘舵��',
+ `create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
+ `is_deleted` int DEFAULT NULL,
+ `create_time` datetime DEFAULT NULL COMMENT '鍒涘缓鏃堕棿',
+ `create_user` bigint DEFAULT NULL COMMENT '鍒涘缓浜�',
+ `update_time` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
+ `update_user` bigint DEFAULT NULL COMMENT '鏇存柊浜�'
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `uniqueCodeIndex` (`code`,`is_deleted`) USING BTREE,
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='绋嬪簭鑺傜偣鐩綍';
+
CREATE TABLE `mdm_nc_program` (
`id` bigint NOT NULL,
`tenant_id` varchar(6) DEFAULT NULL COMMENT '鎵�灞炵鎴�',
+ `nc_node_id` bigint DEFAULT NULL COMMENT '鎵�灞炶妭鐐筰d',
`code` varchar(100) NOT NULL COMMENT '绋嬪簭缂栧彿',
`name` varchar(100) NOT NULL COMMENT '绋嬪簭鍚嶇О',
- `machine_group_id` bigint DEFAULT NULL COMMENT '鎵�灞炴満搴婄粍ID',
- `flow_task_id` bigint DEFAULT NULL COMMENT '浠诲姟ID锛屾帴鏀朵笅鍙戜换鍔℃椂纭畾鐨勪换鍔d锛岄潪娴佺▼绀轰緥id',
+ `package_name` varchar(100) NOT NULL COMMENT '绋嬪簭鍖呭悕',
+ `machine_code` bigint DEFAULT NULL COMMENT '璁惧缂栧彿/鏈哄簥缂栧彿',
`is_cured` int DEFAULT NULL COMMENT '鏄惁鍥哄寲,1鏄�;0鍚�',
+ `expire_date` date DEFAULT NULL COMMENT '鍒版湡鏃堕棿,鏍规嵁鏈夋晥鏈熸椂闀胯绠楄�屾潵',
+ `process_edition` varchar(40) DEFAULT NULL COMMENT '宸ュ簭鐗堟锛屽崌鐗堝氨鏄彉鏇存敼璇ュ瓧娈碉紝闇�瑕佷繚鐣欏巻鍙茶褰�',
+ `is_last_edition` int NOT NULL COMMENT '鏄惁鏈�鏂扮増娆★紝1锛氭渶鏂扮増娆★紱0:鍘嗗彶鐗堟锛屼富瑕佸彇璇ュ瓧娈�=1鐨勬暟鎹紝0鏄巻鍙茬増娆�',
+ `is_locked` int DEFAULT NULL COMMENT '閿佸畾鐘舵�侊紝1锛氶攣瀹氾紱0:姝e父',
`status` int DEFAULT NULL COMMENT '涓氬姟鐘舵��',
`create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
`is_deleted` int DEFAULT NULL,
`create_time` datetime DEFAULT NULL COMMENT '鍒涘缓鏃堕棿',
`create_user` bigint DEFAULT NULL COMMENT '鍒涘缓浜�',
`update_time` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
- `update_user` bigint DEFAULT NULL COMMENT '鏇存柊浜�'
- PRIMARY KEY (`id`) USING BTREE,
- UNIQUE KEY `uniqueCodeIndex` (`code`,`is_deleted`) USING BTREE,
+ `update_user` bigint DEFAULT NULL COMMENT '鏇存柊浜�',
+ PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='鏁版帶绋嬪簭';
+CREATE TABLE `mdm_nc_program_file` (
+ `id` bigint NOT NULL,
+ `tenant_id` varchar(6) DEFAULT NULL COMMENT '鎵�灞炵鎴�',
+ `program_id` varchar(100) NOT NULL COMMENT '鎵�灞炵▼搴廼d',
+ `name` varchar(100) NOT NULL COMMENT '鏂囦欢鍚嶇О',
+ `url` varchar(100) NOT NULL COMMENT '鏂囦欢鍦板潃',
+ `status` int DEFAULT NULL COMMENT '涓氬姟鐘舵��',
+ `create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
+ `is_deleted` int DEFAULT NULL,
+ `create_time` datetime DEFAULT NULL COMMENT '鍒涘缓鏃堕棿',
+ `create_user` bigint DEFAULT NULL COMMENT '鍒涘缓浜�',
+ `update_time` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
+ `update_user` bigint DEFAULT NULL COMMENT '鏇存柊浜�',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='鏁版帶绋嬪簭鏂囦欢';
+
CREATE TABLE `mdm_task_receive` (
`id` bigint NOT NULL,
--
Gitblit v1.9.3