blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.TaskService; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; @@ -12,6 +13,7 @@ import org.springblade.core.tool.utils.StringUtil; import org.springblade.mdm.flow.excution.StartDispatcher; import org.springblade.mdm.flow.vo.TaskAssignVO; import org.springblade.mdm.program.service.ProcessProgRefService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -30,7 +32,8 @@ private StartDispatcher dispatcher; @Autowired private TaskService taskService; @Autowired private ProcessProgRefService processProgRefService; /** * æ°å¢ */ @@ -43,7 +46,7 @@ @Operation(summary = "宿任å¡", description = "æµåä¸ä¸ä¸ªèç¹") @PostMapping("completeTask") public R<Void> completeTask(String taskId, String processInstanceId, String comment, @Parameter(name = "variables", description = "ä»»å¡åé") @RequestBody Map<String, Object> variables) { public R<Void> completeTask(String taskId, String processInstanceId, String comment,@Parameter(description = "对åºçç¨åºid,éå·åé") String programIds, @Parameter(name = "variables", description = "ä»»å¡åé") @RequestBody Map<String, Object> variables) { // å¢å è¯è®º if (StringUtil.isNoneBlank(processInstanceId, comment)) { taskService.addComment(taskId, processInstanceId, comment); @@ -52,6 +55,10 @@ if (Func.isEmpty(variables)) { variables = Kv.create(); } if(StringUtils.isNotEmpty(programIds)) { processProgRefService.addRelations(processInstanceId,Func.toLongList(programIds)); } //å å ¥å®¡æ¹ç¨æ· variables.put("approveUserNickName",AuthUtil.getNickName()); if(variables.containsKey("assignee")){ blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
@@ -69,13 +69,13 @@ return R.data(list); } /* @Operation(summary = "ç¨åºå页æ¥è¯¢", description = "ç¨äºå¨ç¼å¶èç¹éæ©æµç¨å¯¹åºçç¨åº") @GetMapping("/programpickpage") public R<IPage<NcNodeProgramVO>> page(NcNodeProgramQueryVO query) { IPage<NcNodeProgramVO> pages = ncNodeService.programPageQuery(query); return R.data(pages); } */ } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java
@@ -1,6 +1,7 @@ package org.springblade.mdm.program.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -10,6 +11,7 @@ import org.springblade.core.tool.api.R; import org.springblade.mdm.program.entity.NcProgram; import org.springblade.mdm.program.service.NcProgramService; import org.springblade.mdm.program.vo.NcNodeProgramQueryVO; import org.springblade.mdm.program.vo.NcProgramUploadVO; import org.springblade.mdm.program.vo.NcProgramVO; import org.springframework.web.bind.annotation.*; @@ -76,4 +78,11 @@ ncProgramService.upgradeProcessEdition(id,newProcessEdition); return R.<Boolean>status(true); } @Operation(summary = "ç¨åºå页æ¥è¯¢", description = "ç¨äºå¨ç¼å¶èç¹éæ©æµç¨å¯¹åºçç¨åº") @GetMapping("/programpickpage") public R<IPage<NcProgramVO>> page(NcNodeProgramQueryVO query) { IPage<NcProgramVO> pages = ncProgramService.pageQuery(query); return R.data(pages); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/ProcessProgRef.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package org.springblade.mdm.program.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Getter; import lombok.Setter; import org.springblade.core.mp.base.BizEntity; import java.time.LocalDateTime; @Setter @Getter @TableName("mdm_process_prog_ref") public class ProcessProgRef extends BizEntity { /** * æä»¶å */ private String processInstanceId; /** * 对象åå¨ä¸çåç§° */ private Long programId; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.java
@@ -14,7 +14,7 @@ public interface NcNodeMapper extends BladeMapper<NcNode> { List<NcNodeVO> lazyList(Long parentId); IPage<NcNodeProgramVO> programPageQuery(@Param("page")IPage<NcNodeProgramVO> page, @Param("query") NcNodeProgramQueryVO query); /** * æ ¹æ®åç§°è·åææ°çç¨åºå èç¹ blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml
@@ -45,14 +45,7 @@ parent_id = n.id and is_deleted = 0 ) AS "has_children" from mdm_nc_node n where is_deleted=0 and parent_id=#{parentId} </select> <select id="programPageQuery" resultType="org.springblade.mdm.program.vo.NcNodeProgramVO"> select id,parent_id,machine_code,drawing_no,drawing_no_edition,part_no,process_name,craft_edition from mdm_nc_node n <where> <if test="query.name!=null and query.name!=''"> and n.name like CONCAT('%', #{query.name,jdbcType=VARCHAR},'%') </if> </where> </select> <!--è·å ææ°çæ¬çç¨åºï¼å³ç¨åºå å èç¹ node_type=60ï¼--> <select id="getLastProgramNode" resultType="org.springblade.mdm.program.entity.NcNode"> blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramMapper.java
@@ -8,6 +8,9 @@ import org.springblade.mdm.basesetting.machine.entity.Machine; import org.springblade.mdm.basesetting.machine.vo.MachineVO; import org.springblade.mdm.program.entity.NcProgram; import org.springblade.mdm.program.vo.NcNodeProgramQueryVO; import org.springblade.mdm.program.vo.NcNodeProgramVO; import org.springblade.mdm.program.vo.NcProgramVO; import java.util.List; @@ -21,10 +24,5 @@ */ List<NcProgram> getCuredNcProgram( @Param("partNo")String partNo,@Param("machineGroupCode")String machineGroupCode); /** * æ ¹æ®ç¨åºåç§°ï¼è·åææ°çç¨åºå®ä½ * @param name ç¨åºåç§° * @return ncç¨åº */ //NcProgram getLastNcProgram(String name); IPage<NcProgramVO> pageQuery(@Param("page")IPage<NcNodeProgramVO> page, @Param("query") NcNodeProgramQueryVO query); } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramMapper.xml
@@ -42,6 +42,17 @@ and machine_code in (select code from mdm_machine where machine_group_code=#{machineGroupCode}) order by create_time desc </select> <select id="pageQuery" resultType="org.springblade.mdm.program.vo.NcProgramVO"> select id,nc_node_id,machine_code,part_no,part_no_edition,process_name,craft_edition from mdm_nc_program p where is_deleted=0 and is_last_edition=1 and (category='program' or category='subprogram') <where> <if test="query.name!=null and query.name!=''"> and p.name like CONCAT('%', #{query.name,jdbcType=VARCHAR},'%') </if> </where> </select> <!-- <select id="getLastNcProgram" resultType="org.springblade.mdm.program.entity.NcProgram"> select <include refid="all_columns"/> from mdm_nc_program blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/ProcessProgRefMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package org.springblade.mdm.program.mapper; import org.springblade.core.mp.mapper.BladeMapper; import org.springblade.mdm.program.entity.NcNode; import org.springblade.mdm.program.entity.ProcessProgRef; import org.springblade.mdm.program.vo.NcNodeVO; import java.util.List; public interface ProcessProgRefMapper extends BladeMapper<ProcessProgRef> { } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/ProcessProgRefMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.springblade.mdm.program.mapper.ProcessProgRefMapper"> </mapper> blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
@@ -82,14 +82,6 @@ return baseMapper.lazyList(parentId); } /** * ç¨åºèç¹ * @param query * @return */ public IPage<NcNodeProgramVO> programPageQuery(NcNodeProgramQueryVO query) { return this.getBaseMapper().programPageQuery(Condition.getPage(query),query); } /** * æ¥è¯¢ç°æåºåçç¨åºï¼æå®æ¡ä»¶ï¼é¶ç»ä»¶å·ç¸åï¼ä¸æ¯å䏿ºåºç» blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java
@@ -25,6 +25,7 @@ */ package org.springblade.mdm.program.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.AllArgsConstructor; @@ -32,6 +33,7 @@ import org.apache.commons.io.IOUtils; import org.flowable.engine.*; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.mp.support.Condition; import org.springblade.core.oss.OssTemplate; import org.springblade.core.oss.model.BladeFile; import org.springblade.mdm.basesetting.machine.MachineService; @@ -42,6 +44,7 @@ import org.springblade.mdm.program.entity.NcProgram; import org.springblade.mdm.program.mapper.ProgramSeqMapper; import org.springblade.mdm.program.vo.DncSendBackData; import org.springblade.mdm.program.vo.NcNodeProgramQueryVO; import org.springblade.mdm.program.vo.NcProgramUploadVO; import org.springblade.mdm.program.vo.NcProgramVO; import org.springblade.mdm.utils.FileContentUtil; @@ -183,4 +186,13 @@ this.save(newVerProg); } /** * å页æ¥è¯¢ï¼ç¨äºå®¡æ¹æ¶éæ©ç¨åº * @param query * @return */ public IPage<NcProgramVO> pageQuery(NcNodeProgramQueryVO query) { return this.getBaseMapper().pageQuery(Condition.getPage(query),query); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProcessProgRefService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,97 @@ /** * 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.program.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.mp.support.Condition; import org.springblade.core.oss.OssTemplate; import org.springblade.core.oss.model.BladeFile; import org.springblade.mdm.basesetting.machine.MachineService; import org.springblade.mdm.basesetting.machine.entity.Machine; import org.springblade.mdm.program.entity.NcNode; import org.springblade.mdm.program.entity.NcProgram; import org.springblade.mdm.program.entity.ProcessProgRef; import org.springblade.mdm.program.entity.ProgramSeq; import org.springblade.mdm.program.mapper.NcProgramMapper; import org.springblade.mdm.program.mapper.ProcessProgRefMapper; import org.springblade.mdm.program.mapper.ProgramSeqMapper; import org.springblade.mdm.program.vo.NcNodeProgramQueryVO; import org.springblade.mdm.program.vo.NcProgramUploadVO; import org.springblade.mdm.program.vo.NcProgramVO; import org.springblade.mdm.utils.FileContentUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; /** * 工使µæå¡å®ç°ç±» * * @author Chill */ @Slf4j @Service @AllArgsConstructor public class ProcessProgRefService extends BizServiceImpl<ProcessProgRefMapper, ProcessProgRef> { /** * æ¥è¯¢ç°æåºåçç¨åºï¼æå®æ¡ä»¶ï¼é¶ç»ä»¶å·ç¸åï¼ä¸æ¯å䏿ºåºç» * @param processInstanceId æµç¨å®ä¾id * @param programIds ç¨åºid * @return */ @Transactional public void addRelations(String processInstanceId, List<Long> programIds) { if(programIds == null || programIds.isEmpty()) { return; } this.lambdaUpdate().eq(ProcessProgRef::getProcessInstanceId, processInstanceId).remove(); List<ProcessProgRef> entities = new ArrayList<>(); for (Long programId : programIds) { ProcessProgRef entity = new ProcessProgRef(); entity.setProcessInstanceId(processInstanceId); entity.setProgramId(programId); entities.add(entity); } this.saveBatch(entities); } } doc/sql/mdm/mdm.mysql.all.create.sql
@@ -87,12 +87,12 @@ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='ç¨åºèç¹ç®å½'; /**æµç¨å®ä¾ä¸èç¹å ³è表ï¼è®°å½åå»ºæ¶æºï¼ç¨æ·å¨ç¨åºç¼å¶èç¹æå¨å ³è*/ DROP TABLE IF EXISTS `mdm_process_node_ref`; CREATE TABLE `mdm_process_node_ref` ( DROP TABLE IF EXISTS `mdm_process_prog_ref`; CREATE TABLE `mdm_process_prog_ref` ( `id` bigint NOT NULL, `tenant_id` varchar(6) DEFAULT NULL COMMENT 'æå±ç§æ·', `nc_node_id` bigint DEFAULT NULL COMMENT 'èç¹idï¼å¯¹åº ç¨åºå å èç¹id', `process_instance_id` varchar(100) NOT NULL COMMENT 'æµç¨å®ä¾id', `process_instance_id` varchar(64) NOT NULL COMMENT 'æµç¨å®ä¾id', `nc_program_id` bigint DEFAULT NULL COMMENT 'æ°æ§ç¨åºid', `status` int DEFAULT NULL COMMENT 'ä¸å¡ç¶æ', `create_dept` bigint DEFAULT NULL COMMENT 'å建åä½', `is_deleted` int DEFAULT NULL, @@ -101,14 +101,14 @@ `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='æµç¨å®ä¾ä¸èç¹å ³è表'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='æµç¨å®ä¾ä¸ç¨åºå ³è表'; DROP TABLE IF EXISTS `mdm_nc_program`; CREATE TABLE `mdm_nc_program` ( `id` bigint NOT NULL, `tenant_id` varchar(6) DEFAULT NULL COMMENT 'æå±ç§æ·', `nc_node_id` bigint DEFAULT NULL COMMENT 'æå±èç¹idï¼åºè¯¥å±äºæä¸ªæ°æ§ç¨åºèç¹', `code` varchar(100) NOT NULL COMMENT 'ç¨åºç¼å·', `code` varchar(100) NULL COMMENT 'ç¨åºç¼å·', `name` varchar(100) NOT NULL COMMENT 'ç¨åºåç§°', `oss_name` varchar(100) NULL COMMENT 'ossä¸çæä»¶å', `category` varchar(2) NULL COMMENT 'æä»¶åç±»',