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