From b0449f9ed437831018030d57b98a55e1dd43a6ef Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 17 六月 2025 15:39:47 +0800
Subject: [PATCH] 修改计划表表名
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java | 12 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java | 195 +++++++++++++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java | 38 ++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/OvertimeTaskExcelVO.java | 31 +++
doc/sql/mdm/mdm.mysql.all.create.sql | 1
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java | 12
blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml | 22 +-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml | 3
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java | 5
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java | 41 +++-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/dispatch/CureProgramCheckTask.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java | 178 +++++--------------
12 files changed, 374 insertions(+), 166 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml
index c3ef778..6bc337c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/mapper/ProduceDivisionMapper.xml
@@ -15,10 +15,11 @@
</resultMap>-->
<select id="pageQuery" resultType="org.springblade.mdm.basesetting.producedivision.vo.ProduceDivisionViewVO">
select p.id,p.team_leader_id,p.programmer_id,p.checker_id,p.senior_id,l.name team_leader_name,pro.name programmer_name,c.name checker_name,s.name seniorName
- from mdm_produce_plan p join blade_user l on p.team_leader_id=l.id and l.is_deleted=0
+ from mdm_produce_division p join blade_user l on p.team_leader_id=l.id and l.is_deleted=0
join blade_user pro on p.programmer_id=pro.id and pro.is_deleted=0
join blade_user c on p.checker_id=c.id and c.is_deleted=0
join blade_user s on p.senior_id=s.id and c.is_deleted=0
+ where p.is_deleted=0
<if test="name != null and name != ''">
AND (l.account like concat('%',#{name,jdbcType=VARCHAR},'%') or l.name like
concat('%',#{name,jdbcType=VARCHAR},'%')
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 a389a2b..bf87426 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
@@ -51,8 +51,14 @@
if (Func.isEmpty(variables)) {
variables = Kv.create();
}
- // 瀹屾垚浠诲姟
- taskService.complete(taskId, variables);
- return R.success("娴佺▼鎻愪氦鎴愬姛");
+ if(variables.containsKey("assignee")){
+ //鎸囧畾浜嗕笅涓�姝ユ墽琛屼汉
+ taskService.complete(taskId, variables);
+ return R.success("娴佺▼鎻愪氦鎴愬姛");
+ }else {
+ // 瀹屾垚浠诲姟,缁欓粯璁ょ敤鎴�
+ return R.fail("璇锋寚瀹氭祦绋嬩笅涓�姝ュ鐞嗕汉");
+ }
+
}
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
index 1375348..f742e48 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
@@ -5,24 +5,27 @@
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.TaskService;
+import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.support.Kv;
-import org.springblade.core.tool.utils.Func;
-import org.springblade.core.tool.utils.StringUtil;
-import org.springblade.flow.core.pojo.entity.BladeFlow;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.mdm.basesetting.machine.vo.MachineExcelVO;
import org.springblade.mdm.flow.service.FlowBusinessService;
+import org.springblade.mdm.flow.vo.FlowVO;
+import org.springblade.mdm.flow.vo.OvertimeTaskExcelVO;
import org.springblade.mdm.flow.vo.TaskTraceVO;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.Map;
@Slf4j
@RestController
@@ -34,16 +37,34 @@
@Autowired
private FlowBusinessService businessService;
- /**
- * 寰呭姙浠诲姟鍒楄〃椤�
- */
@GetMapping("overtime-list")
@ApiOperationSupport(order = 3)
@Operation(summary = "瓒呮椂鏌ヨ", description = "鏌ヨ鎵�鏈夎秴鏃朵换鍔�")
- public R<IPage<BladeFlow>> overtimeList(@Parameter(description = "浠诲姟鍒拌揪鏃堕棿寮�濮�") LocalDate createTimeBegin, @Parameter(description = "浠诲姟鍒拌揪鏃堕棿鎴")LocalDate createTimeEnd, @Parameter(description = "鎵ц浜哄憳") String assigneeName, @Parameter(description = "鍏抽敭瀛�") String keyword, Query query) {
- IPage<BladeFlow> pages = businessService.selectOvertimePage(Condition.getPage(query), createTimeBegin,createTimeEnd,assigneeName,keyword);
+ public R<IPage<FlowVO>> overtimeList(@Parameter(description = "浠诲姟鍒拌揪鏃堕棿寮�濮�") LocalDate createTimeBegin, @Parameter(description = "浠诲姟鍒拌揪鏃堕棿鎴")LocalDate createTimeEnd, @Parameter(description = "鎵ц浜哄憳") String assigneeName, @Parameter(description = "鍏抽敭瀛�") String keyword, Query query) {
+ IPage<FlowVO> pages = businessService.selectOvertimePage(Condition.getPage(query), createTimeBegin,createTimeEnd,assigneeName,keyword);
return R.data(pages);
}
+ @GetMapping("overtime-export")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "瓒呮椂瀵煎嚭", description = "瓒呮椂浠诲姟瀵煎嚭")
+ public void overtimeExport(@Parameter(description = "浠诲姟鍒拌揪鏃堕棿寮�濮�") LocalDate createTimeBegin, @Parameter(description = "浠诲姟鍒拌揪鏃堕棿鎴")LocalDate createTimeEnd, @Parameter(description = "鎵ц浜哄憳") String assigneeName, @Parameter(description = "鍏抽敭瀛�") String keyword, Query query, HttpServletResponse response) {
+ query.setCurrent(1);
+ query.setSize(Integer.MAX_VALUE);
+ IPage<FlowVO> pages = businessService.selectOvertimePage(Condition.getPage(query), createTimeBegin,createTimeEnd,assigneeName,keyword);
+
+ List<OvertimeTaskExcelVO> list = new ArrayList<>();
+ pages.getRecords().forEach(data ->{
+ //data.get
+ OvertimeTaskExcelVO excelVO = new OvertimeTaskExcelVO();
+ BeanUtils.copyProperties(data, excelVO);
+
+ list.add(excelVO);
+ });
+
+ ExcelUtil.export(response, "瓒呮椂浠诲姟" + DateUtil.time(), "瓒呮椂浠诲姟琛�", list, OvertimeTaskExcelVO.class);
+ }
+
+
@GetMapping("process-trace")
public R<List<TaskTraceVO>> processTrace(long processInstanceId){
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 38da7f5..e57a190 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
@@ -13,10 +13,8 @@
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
-import org.springblade.flow.core.pojo.entity.BladeFlow;
-import org.springblade.mdm.flow.excution.StartDispatcher;
import org.springblade.mdm.flow.service.FlowBusinessService;
-import org.springblade.mdm.flow.vo.TaskAssignVO;
+import org.springblade.mdm.flow.vo.FlowVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -39,8 +37,8 @@
@GetMapping("todo-list")
@ApiOperationSupport(order = 3)
@Operation(summary = "寰呭姙浠诲姟", description = "浼犲叆娴佺▼淇℃伅")
- public R<IPage<BladeFlow>> todoList(@Parameter(description = "鍏抽敭瀛�") String keyword, @Parameter(description = "鍒涘缓鏃堕棿寮�濮�") LocalDate createTimeBegin, @Parameter(description = "鍒涘缓鏃堕棿鎴") LocalDate createTimeEnd, Query query) {
- IPage<BladeFlow> pages = businessService.selectTodoPage(Condition.getPage(query), createTimeBegin,createTimeEnd,keyword);
+ public R<IPage<FlowVO>> todoList(@Parameter(description = "鍏抽敭瀛�") String keyword, @Parameter(description = "鍒涘缓鏃堕棿寮�濮�") LocalDate createTimeBegin, @Parameter(description = "鍒涘缓鏃堕棿鎴") LocalDate createTimeEnd, Query query) {
+ IPage<FlowVO> pages = businessService.selectTodoPage(Condition.getPage(query), createTimeBegin,createTimeEnd,keyword);
return R.data(pages);
}
@@ -50,8 +48,8 @@
@GetMapping("alltask-list")
@ApiOperationSupport(order = 3)
@Operation(summary = "鎵�鏈変换鍔★紙fortest锛�", description = "浼犲叆娴佺▼淇℃伅")
- public R<IPage<BladeFlow>> alltaskList(@Parameter(description = "鍏抽敭瀛�") String keyword,LocalDate createTimeBegin,LocalDate createTimeEnd, Query query) {
- IPage<BladeFlow> pages = businessService.selectAllTaskPage(Condition.getPage(query), keyword);
+ public R<IPage<FlowVO>> alltaskList(@Parameter(description = "鍏抽敭瀛�") String keyword, LocalDate createTimeBegin, LocalDate createTimeEnd, Query query) {
+ IPage<FlowVO> pages = businessService.selectAllTaskPage(Condition.getPage(query), keyword);
return R.data(pages);
}
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 b629ef5..a6189cb 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
@@ -1,28 +1,4 @@
-/**
- * BladeX Commercial License Agreement
- * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
- * <p>
- * Use of this software is governed by the Commercial License Agreement
- * obtained after purchasing a license from BladeX.
- * <p>
- * 1. This software is for development use only under a valid license
- * from BladeX.
- * <p>
- * 2. Redistribution of this software's source code to any third party
- * without a commercial license is strictly prohibited.
- * <p>
- * 3. Licensees may copyright their own code but cannot use segments
- * from this software for such purposes. Copyright of this software
- * remains with BladeX.
- * <p>
- * Using this software signifies agreement to this License, and the software
- * must not be used for illegal purposes.
- * <p>
- * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
- * not liable for any claims arising from secondary or illegal development.
- * <p>
- * Author: Chill Zhuang (bladejava@qq.com)
- */
+
package org.springblade.mdm.flow.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -30,27 +6,20 @@
import org.flowable.engine.HistoryService;
import org.flowable.engine.TaskService;
import org.flowable.engine.history.HistoricProcessInstance;
-import org.flowable.engine.history.HistoricProcessInstanceQuery;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
-import org.flowable.task.api.history.HistoricTaskInstance;
-import org.flowable.task.api.history.HistoricTaskInstanceQuery;
import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.*;
-import org.springblade.flow.core.constant.ProcessConstant;
-import org.springblade.flow.core.pojo.entity.BladeFlow;
-import org.springblade.flow.core.utils.TaskUtil;
import org.springblade.mdm.flow.entity.MdmFlowProcess;
import org.springblade.mdm.flow.util.MdmFlowCache;
+import org.springblade.mdm.flow.vo.FlowVO;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
-import java.util.Map;
/**
* 娴佺▼涓氬姟瀹炵幇绫�
@@ -65,49 +34,29 @@
private final HistoryService historyService;
- public IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page, LocalDate createTimeBegin,LocalDate createTimeEnd, String keyword) {
+ public IPage<FlowVO> selectTodoPage(IPage<FlowVO> page, LocalDate createTimeBegin, LocalDate createTimeEnd, String keyword) {
//String taskUser = TaskUtil.getTaskUser();
- String userId = ""+AuthUtil.getUserId();
- List<BladeFlow> flowList = new LinkedList<>();
+ String userId = "" + AuthUtil.getUserId();
+ List<FlowVO> flowList = new LinkedList<>();
TaskQuery todoQuery = taskService.createTaskQuery().taskAssignee(userId).active().includeProcessVariables();
- if(Func.isNotEmpty(createTimeBegin)){
+ if (Func.isNotEmpty(createTimeBegin)) {
todoQuery.taskCreatedAfter(DateUtil.toDate(createTimeBegin));
//濡傛灉鏌ヨ瀹炰緥鐨勫紑濮嬫椂闂达細todoQuery.taskInProgressStartDueAfter()
}
- if(Func.isNotEmpty(createTimeEnd)){
+ if (Func.isNotEmpty(createTimeEnd)) {
todoQuery.taskCreatedBefore(DateUtil.toDate(createTimeEnd));
}
- 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();
+ if (Func.isNotEmpty(keyword)) {
+ addKeywordCondition(todoQuery, keyword);
}
todoQuery.orderByTaskCreateTime().desc();
- //List<Task> listt = todoQuery.list();
-
- // 宸茬鏀剁殑浠诲姟.caseVariableValueLike("processNo",keyword)
- /*
- TaskQuery todoQuery = taskService.createTaskQuery().taskAssignee(userId).active()
- .includeProcessVariables().orderByTaskCreateTime().desc();
-
- */
// 鏋勫缓鍒楄〃鏁版嵁
- BladeFlow bladeFlow = new BladeFlow();
- buildFlowTaskList(bladeFlow, flowList, todoQuery, "todo");//FlowEngineConstant.STATUS_TODO
+ FlowVO bladeFlow = new FlowVO();
+ buildFlowTaskList(bladeFlow, flowList, todoQuery);//FlowEngineConstant.STATUS_TODO , "todo"
// 璁$畻鎬绘暟
long count = todoQuery.count();
@@ -118,6 +67,21 @@
// 璁剧疆鏁版嵁
page.setRecords(flowList);
return page;
+ }
+
+ void addKeywordCondition(TaskQuery todoQuery,String keyword) {
+ 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 + "%");
+
+ todoQuery.endOr();
+ }
}
/*
@Override
@@ -258,25 +222,6 @@
return page;
}
- @Override
- public boolean completeTask(BladeFlow flow) {
- String taskId = flow.getTaskId();
- String processInstanceId = flow.getProcessInstanceId();
- String comment = Func.toStr(flow.getComment(), ProcessConstant.PASS_COMMENT);
- // 澧炲姞璇勮
- if (StringUtil.isNoneBlank(processInstanceId, comment)) {
- taskService.addComment(taskId, processInstanceId, comment);
- }
- // 鍒涘缓鍙橀噺
- Map<String, Object> variables = flow.getVariables();
- if (variables == null) {
- variables = Kv.create();
- }
- variables.put(ProcessConstant.PASS_KEY, flow.isPass());
- // 瀹屾垚浠诲姟
- taskService.complete(taskId, variables);
- return true;
- }
*/
/**
* 鏋勫缓娴佺▼
@@ -284,9 +229,8 @@
* @param bladeFlow 娴佺▼閫氱敤绫�
* @param flowList 娴佺▼鍒楄〃
* @param taskQuery 浠诲姟鏌ヨ绫�
- * @param status 鐘舵��
*/
- private void buildFlowTaskList(BladeFlow bladeFlow, List<BladeFlow> flowList, TaskQuery taskQuery, String status) {
+ private void buildFlowTaskList(FlowVO bladeFlow, List<FlowVO> flowList, TaskQuery taskQuery) {
if (bladeFlow.getCategory() != null) {
taskQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory()));
}
@@ -301,7 +245,7 @@
}
List<Task> tasks = taskQuery.list();
tasks.forEach(task -> {
- BladeFlow flow = new BladeFlow();
+ FlowVO flow = new FlowVO();
flow.setTaskId(task.getId());
flow.setTaskDefinitionKey(task.getTaskDefinitionKey());
flow.setTaskName(task.getName());
@@ -310,20 +254,15 @@
flow.setClaimTime(task.getClaimTime());
flow.setExecutionId(task.getExecutionId());
flow.setVariables(task.getProcessVariables());
+ flow.setDueDate(task.getDueDate());
flow.setProcessDefinitionId(task.getProcessDefinitionId());
- //flow.setProcessDefinitionName(task.getprocessd);
+
//flow.setProcessDefinitionKey(processDefinition.getKey());
//flow.setProcessDefinitionVersion(processDefinition.getVersion());
flow.setProcessInstanceId(task.getProcessInstanceId());
- /*
- HistoricProcessInstance historicProcessInstance = getHistoricProcessInstance(task.getProcessInstanceId());
- if (Func.isNotEmpty(historicProcessInstance)) {
- String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey());
- flow.setBusinessTable(businessKey[0]);
- flow.setBusinessId(businessKey[1]);
- }*/
+
MdmFlowProcess processDefinition = MdmFlowCache.getProcessDefinition(task.getProcessDefinitionId());
@@ -335,8 +274,7 @@
flow.setProcessDefinitionVersion(processDefinition.getVersion());
flow.setProcessInstanceId(task.getProcessInstanceId());
//flow.setStatus(status);
- /*
- */
+
flowList.add(flow);
});
}
@@ -351,33 +289,20 @@
return historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
}
- public IPage<BladeFlow> selectAllTaskPage(IPage<BladeFlow> page, String keyword) {
+ public IPage<FlowVO> selectAllTaskPage(IPage<FlowVO> page, String keyword) {
- List<BladeFlow> flowList = new LinkedList<>();
+ List<FlowVO> 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();
- }
+ addKeywordCondition(todoQuery, keyword);
todoQuery.orderByTaskCreateTime().desc();
// 鏋勫缓鍒楄〃鏁版嵁
- BladeFlow bladeFlow = new BladeFlow();
- buildFlowTaskList(bladeFlow, flowList, todoQuery, "todo");//FlowEngineConstant.STATUS_TODO
+ FlowVO bladeFlow = new FlowVO();
+ buildFlowTaskList(bladeFlow, flowList, todoQuery);//FlowEngineConstant.STATUS_TODO
// 璁$畻鎬绘暟
long count = todoQuery.count();
@@ -392,13 +317,13 @@
/**
* 瓒呮椂浠诲姟鏌ヨ
- * @param page
- * @param keyword
- * @return
+ * @param page 鍒嗛〉淇℃伅
+ * @param keyword 鍏抽敭瀛�
+ * @return 鍒嗛〉鏁版嵁
*/
- public IPage<BladeFlow> selectOvertimePage(IPage<BladeFlow> page,LocalDate createTimeBegin,LocalDate createTimeEnd, String assigneeName,String keyword) {
+ public IPage<FlowVO> selectOvertimePage(IPage<FlowVO> page, LocalDate createTimeBegin, LocalDate createTimeEnd, String assigneeName, String keyword) {
- List<BladeFlow> flowList = new LinkedList<>();
+ List<FlowVO> flowList = new LinkedList<>();
Date now = new Date();
TaskQuery todoQuery = taskService.createTaskQuery().taskDueBefore(now).active().includeProcessVariables();
if(Func.isNotEmpty(createTimeBegin)) {
@@ -411,27 +336,14 @@
if(Func.isNotEmpty(keyword)) {
todoQuery.taskVariableValueLike("assigneeName", "%"+assigneeName+"%");
}
- if(Func.isNotEmpty(keyword)){
- todoQuery.or();
- keyword = "%"+keyword+"%";
- 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();
- }
+ addKeywordCondition(todoQuery, keyword);
todoQuery.orderByTaskCreateTime().desc();
// 鏋勫缓鍒楄〃鏁版嵁
- BladeFlow bladeFlow = new BladeFlow();
- buildFlowTaskList(bladeFlow, flowList, todoQuery, "todo");//FlowEngineConstant.STATUS_TODO
+ FlowVO bladeFlow = new FlowVO();
+ buildFlowTaskList(bladeFlow, flowList, todoQuery);//FlowEngineConstant.STATUS_TODO
// 璁$畻鎬绘暟
long count = todoQuery.count();
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/dispatch/CureProgramCheckTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/dispatch/CureProgramCheckTask.java
index 0e1b8a6..8b013e1 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/dispatch/CureProgramCheckTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/dispatch/CureProgramCheckTask.java
@@ -14,6 +14,6 @@
String hasCuredProgram = (String)execution.getVariable("hasCuredProgram");
NcProgram ncProgram = (NcProgram)execution.getVariable("curedNcProgram");
- System.out.println("鎵ц鏈嶅姟浠诲姟");
+ System.out.println("鎵ц鍥哄寲绋嬪簭浠诲姟鏈嶅姟");
}
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java
new file mode 100644
index 0000000..96e2887
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java
@@ -0,0 +1,195 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.mdm.flow.vo;
+
+import lombok.Data;
+import org.springblade.flow.core.constant.ProcessConstant;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * mdm宸ヤ綔娴侀�氱敤瀹炰綋绫�
+ *
+ * @author yangys
+ */
+@Data
+public class FlowVO implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 浠诲姟缂栧彿
+ */
+ private String taskId;
+ /**
+ * 浠诲姟鍚嶇О
+ */
+ private String taskName;
+ /**
+ * 浠诲姟瀹氫箟Key
+ */
+ private String taskDefinitionKey;
+ /**
+ * 浠诲姟鎵ц浜虹紪鍙�
+ */
+ private String assignee;
+ /**
+ * 浠诲姟鎵ц浜哄悕绉�
+ */
+ private String assigneeName;
+ /**
+ * 娴佺▼鍒嗙被
+ */
+ private String category;
+ /**
+ * 娴佺▼鍒嗙被鍚�
+ */
+ private String categoryName;
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private Date createTime;
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ private Date endTime;
+ /**
+ * 绛炬敹鏃堕棿
+ */
+ private Date claimTime;
+ /**
+ * 鍘嗗彶浠诲姟缁撴潫鏃堕棿
+ */
+ private Date historyTaskEndTime;
+ /**
+ * 鎵цID
+ */
+ private String executionId;
+ /**
+ * 娴佺▼瀹炰緥ID
+ */
+ private String processInstanceId;
+ /**
+ * 娴佺▼ID
+ */
+ private String processDefinitionId;
+ /**
+ * 娴佺▼鏍囪瘑
+ */
+ private String processDefinitionKey;
+ /**
+ * 娴佺▼鍚�
+ */
+ private String processDefinitionName;
+ /**
+ * 娴佺▼鐗堟湰
+ */
+ private int processDefinitionVersion;
+ /**
+ * 娴佺▼璇存槑
+ */
+ private String processDefinitionDesc;
+ /**
+ * 娴佺▼绠�鍥惧悕
+ */
+ private String processDefinitionDiagramResName;
+ /**
+ * 娴佺▼閲嶅懡鍚�
+ */
+ private String processDefinitionResName;
+ /**
+ * 鍘嗗彶浠诲姟娴佺▼瀹炰緥ID 鏌ョ湅娴佺▼鍥句細鐢ㄥ埌
+ */
+ private String historyProcessInstanceId;
+ /**
+ * 娴佺▼瀹炰緥鏄惁缁撴潫
+ */
+ private String processIsFinished;
+ /**
+ * 鍘嗗彶娲诲姩ID
+ */
+ private String historyActivityId;
+ /**
+ * 鍘嗗彶娲诲姩娴佺▼
+ */
+ private String historyActivityName;
+ /**
+ * 鍘嗗彶娲诲姩鑰楁椂
+ */
+ private String historyActivityDurationTime;
+ /**
+ * 涓氬姟缁戝畾Table
+ */
+ private String businessTable;
+ /**
+ * 涓氬姟缁戝畾ID
+ */
+ private String businessId;
+ /**
+ * 浠诲姟鐘舵��
+ */
+ private String status;
+ /**
+ * 浠诲姟鎰忚
+ */
+ private String comment;
+ /**
+ * 鏄惁閫氳繃
+ */
+ private boolean isPass;
+ /**
+ * 鏄惁閫氳繃浠e彿
+ */
+ private String flag;
+ /**
+ * 寮�濮嬫煡璇㈡棩鏈�
+ */
+ private Date beginDate;
+ /**
+ * 缁撴潫鏌ヨ鏃ユ湡
+ */
+ private Date endDate;
+ /**
+ * 娴佺▼鍙傛暟
+ */
+ private Map<String, Object> variables;
+
+ /**
+ * 瑕佹眰瀹屾垚鐨勬椂闂达紙瓒呮椂鏃堕棿锛�
+ */
+ private Date dueDate;
+
+ /**
+ * 鑾峰彇鏄惁閫氳繃
+ */
+ public boolean isPass() {
+ return ProcessConstant.PASS_ALIAS.equals(flag) || ProcessConstant.PASS_COMMENT.equals(comment);
+ }
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/OvertimeTaskExcelVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/OvertimeTaskExcelVO.java
new file mode 100644
index 0000000..1815614
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/OvertimeTaskExcelVO.java
@@ -0,0 +1,31 @@
+package org.springblade.mdm.flow.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class OvertimeTaskExcelVO {
+
+ @ExcelProperty("鎵ц浜哄憳")
+ private String assigneeName;
+
+ @ExcelProperty("浠诲姟鍚嶇О")
+ private String processDefinitionName;
+ @ExcelProperty("浠诲姟鑺傜偣")
+ private String taskName;
+
+ @ExcelProperty("浠诲姟鍒拌揪鏃堕棿")
+ private LocalDateTime time;
+
+ @ExcelProperty("瑕佹眰瀹屾垚鏃堕棿")
+ private Date dueDate;
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java
new file mode 100644
index 0000000..a155b7e
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java
@@ -0,0 +1,38 @@
+
+package org.springblade.mdm.program.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.mdm.program.service.NcProgramService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 绋嬪簭鑺傜偣
+ *
+ * @author yangys
+ */
+@NonDS
+@RestController
+@RequestMapping("/program/ncfile")
+@AllArgsConstructor
+@Tag(name = "鏁版帶绋嬪簭", description = "鏁版帶绋嬪簭")
+@Slf4j
+public class NcProgramController {
+
+ private final NcProgramService ncProgramService;
+
+ @PostMapping("/upload")
+ @Operation(summary = "涓婁紶", description = "涓婁紶绋嬪簭/闄勪欢鏂囦欢")
+ public R<Boolean> upload(@RequestParam MultipartFile file,Long nodeId,
+ @RequestParam String category) {
+ ncProgramService.uploadNcFile(file,nodeId,category);
+ return R.<Boolean>status(true);
+ }
+
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java
index b0bffe1..4486e71 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java
@@ -36,6 +36,8 @@
import org.springblade.mdm.program.entity.NcProgram;
import org.springblade.mdm.program.vo.DncSendBackData;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
@@ -69,4 +71,7 @@
return this.getBaseMapper().getCuredNcProgram(partNo,machine.getMachineGroupCode());
}
+ public void uploadNcFile(MultipartFile file,Long nodeId, String category) {
+
+ }
}
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 69752fa..ac40b66 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
@@ -4,9 +4,9 @@
<startEvent id="start" name="寮�濮�"/>
<sequenceFlow id="sid-c1619263-d1ff-4106-9315-f9ab9a3bee71" sourceRef="start" targetRef="teamLeaderTask"/>
<userTask id="teamLeaderTask" name="涓撲笟缁勯暱" flowable:assignee="${teamLeader}"/>
- <userTask id="programmingTask" name="缂栧埗" flowable:assignee="${programmer}"/>
- <userTask id="check" name="鏍″" flowable:assignee="${checker}"/>
- <userTask id="approveTask" name="楂樺笀瀹℃壒" flowable:assignee="${senior}"/>
+ <userTask id="programmingTask" name="缂栧埗" flowable:assignee="${assignee}"/>
+ <userTask id="check" name="鏍″" flowable:assignee="${assignee}"/>
+ <userTask id="approveTask" name="楂樺笀瀹℃壒" flowable:assignee="${assignee}"/>
<endEvent id="approveEnd" name="瀹℃壒瀹屾垚"/>
<sequenceFlow id="programingToCheck" sourceRef="programmingTask" targetRef="check" name="缂栧埗瀹屾垚缁欐牎瀵�">
<conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
@@ -24,30 +24,30 @@
<conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
</sequenceFlow>
<serviceTask id="cureCheckServiceTask" flowable:exclusive="true" name="鍥哄寲绋嬪簭妫�鏌ユ湇鍔′换鍔�" flowable:expression="cureProgramCheckTask.execute(execution)"/>
- <userTask id="sid-015ac835-1083-489a-9496-97dbb9432d09" name="妫�鏌ョ▼搴忔槸鍚﹀彲鐢�"/>
+ <userTask id="sid-015ac835-1083-489a-9496-97dbb9432d09" name="妫�鏌ョ▼搴忔槸鍚﹀彲鐢�" flowable:assignee="${assignee}"/>
<sequenceFlow id="sid-46ccac64-2d48-4933-88a6-f2941ae131dd" sourceRef="teamLeaderTask" targetRef="programmingTask">
- <conditionExpression xsi:type="tFormalExpression">hasCuredProgram==鈥楴'</conditionExpression>
+ <conditionExpression xsi:type="tFormalExpression">${approve=='Y' && hasCuredProgram=='N'}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-af92e6ab-bc80-43ed-8b09-1d3ec54cc9e7" sourceRef="teamLeaderTask" targetRef="cureCheckServiceTask">
- <conditionExpression xsi:type="tFormalExpression">hasCuredProgram==鈥榊'</conditionExpression>
+ <conditionExpression xsi:type="tFormalExpression">${approve=='Y' && hasCuredProgram=='Y'}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-353381d5-35c7-47b0-bf5b-2bafe865ab5e" sourceRef="cureCheckServiceTask" targetRef="sid-015ac835-1083-489a-9496-97dbb9432d09"/>
<sequenceFlow id="sid-d144dad0-dc94-4a2b-96d6-9d8451b05ec1" sourceRef="sid-015ac835-1083-489a-9496-97dbb9432d09" targetRef="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" name="鍥哄寲绋嬪簭鍙敤">
- <conditionExpression>approve=='Y'</conditionExpression>
+ <conditionExpression>${approve=='Y'}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-d4133565-1a45-4bb6-b603-9b9e4db1cdbb" sourceRef="approveTask" targetRef="check">
- <conditionExpression>{approve=='N'}</conditionExpression>
+ <conditionExpression>${approve=='N'}</conditionExpression>
</sequenceFlow>
<exclusiveGateway id="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" name="鍙敤绋嬪簭娴佽浆缃戝叧"/>
<sequenceFlow id="sid-b15dcf6a-a48c-4e01-b6bc-5c2a74ca817e" sourceRef="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" targetRef="check" name="宸ュ簭鐗堟涓�鑷村苟涓斿彲鐢�">
- <conditionExpression xsi:type="tFormalExpression">processEditionEqual=='Y'</conditionExpression>
+ <conditionExpression xsi:type="tFormalExpression">${processEditionEqual=='Y'}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-6249886b-7c4a-4904-9b0b-cf743932be9f" sourceRef="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" targetRef="emptyUpgradeProcessEdtionServiceTask">
- <conditionExpression xsi:type="tFormalExpression">processEditionEqual=='N'</conditionExpression>
+ <conditionExpression xsi:type="tFormalExpression">${processEditionEqual=='N'}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-598e1dbe-85b3-40d0-89c8-bd2580ecbfc5" sourceRef="emptyUpgradeProcessEdtionServiceTask" targetRef="check"/>
<sequenceFlow id="sid-80b50f96-7601-4ba2-8c32-968923170d25" sourceRef="sid-015ac835-1083-489a-9496-97dbb9432d09" targetRef="programmingTask">
- <conditionExpression>approve=='N'</conditionExpression>
+ <conditionExpression>${approve=='N'}</conditionExpression>
</sequenceFlow>
<serviceTask id="emptyUpgradeProcessEdtionServiceTask" flowable:exclusive="true" name="绌哄崌鐗�" flowable:expression="programEmptyUpgradeProcessEdtionTask.execute(execution)"/>
</process>
diff --git a/doc/sql/mdm/mdm.all.create.sql b/doc/sql/mdm/mdm.mysql.all.create.sql
similarity index 99%
rename from doc/sql/mdm/mdm.all.create.sql
rename to doc/sql/mdm/mdm.mysql.all.create.sql
index ecc0c28..41f0ffb 100644
--- a/doc/sql/mdm/mdm.all.create.sql
+++ b/doc/sql/mdm/mdm.mysql.all.create.sql
@@ -86,6 +86,7 @@
`code` varchar(100) NOT NULL COMMENT '绋嬪簭缂栧彿',
`name` varchar(100) NOT NULL COMMENT '绋嬪簭鍚嶇О',
`package_name` varchar(100) NOT NULL COMMENT '绋嬪簭鍖呭悕',
+ `url` varchar(400) NOT NULL COMMENT '鏂囦欢鍦板潃',
`machine_code` bigint DEFAULT NULL COMMENT '璁惧缂栧彿/鏈哄簥缂栧彿',
`part_no` varchar(100) NOT NULL COMMENT '闆剁粍浠剁紪鍙�',
`is_cured` int DEFAULT NULL COMMENT '鏄惁鍥哄寲,1鏄�;0鍚�',
--
Gitblit v1.9.3