yangys
2025-09-13 e853c35455332a4652ec604c650ca82c411c864d
流程常量位置重构
已添加4个文件
已修改18个文件
730 ■■■■■ 文件已修改
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowVariableContants.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/LockFlowService.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/CureFlowCompleteService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/ReplaceFlowCompleteService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TempFlowCompleteService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNode.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNodeHis.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeHisMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeHisMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeHisService.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ConfirmTablePrintService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/CuredProgramStatService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/NewProgrammingStatService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java
@@ -28,126 +28,32 @@
     */
    public static final String UNLOCK_PROCESS_KEY = "program-unlock";
    public static final String TEAM_LEADER = "teamLeader";
    public static final String PROGRAMMER = "programmer";
    public static final String CHECKER = "checker";
    public static final String SENIOR = "senior";
    public static final String ASSIGNEE = "assignee";
    /**
     * æµç¨‹æ ‡é¢˜
     */
    public static final String TITLE = "title";
    /**
     * å›¾å·
     */
    public static final String DRAWING_NO = "drawingNo";
    /**
     * å·¥åºå·
     */
    public static final String PROCESS_NO = "processNo";
    /**
     * å›¾å·ç‰ˆæ¬¡
     */
    public static final String DRAWING_NO_EDITION = "drawingNoEdition";
    /**
     * å·¥åºç‰ˆæ¬¡
     */
    public static final String PROCESS_EDITION = "processEdition";
    /*
    æœºåºŠç¼–码
     */
    public static final String MACHINE_CODE = "machineCode";
    /**
     * æœºåºŠåž‹å·
     */
    public static final String MACHINE_MODE = "machineMode";
    /**
     * å·¥è‰ºç‰ˆæ¬¡
     */
    public static final String CRAFT_EDITION = "craftEdition";
    /**
     * äº§å“åž‹å·
     */
    public static final String PRODUCT_MODEL = "productModel";
    /**
     * æ˜¯å¦æœ‰å›ºåŒ–程序
     */
    public static final String HAS_CURED_PROGRAM = "hasCuredProgram";
    /**
     * å›ºåŒ–程序包名的id
     */
    public static final String CURED_NODE_ID = "curedNodeId";
    /**
     * å·¥åºåç§°
     */
    public static final String PROCESS_NAME = "processName";
    /**
     * ä¸Šä¸€æ­¥å®¡æ‰¹ç”¨æˆ·å§“名
     */
    public static final String LAST_STEP_USER_NICKNAME = "approveUserNickName";
    /**
     * å·¥åºç‰ˆæ¬¡æ˜¯å¦ä¸€è‡´çš„key
     */
    public static final String IS_PROCESS_EDITION_SAME = "isProcessEditionSame";
    /**
     * æ˜¯å¦åœ¨æœ‰æ•ˆæœŸå†…çš„key
     */
    public static final String VALIDITY_PERIOD = "validityPeriod";
    /**
     * ç¨‹åºåŒ…名
     */
    public static final String PROGRAM_PACKAGE_NAME = "programPackageName";
    /**
     * ä»»åŠ¡è½¦é—´
     */
    public static final String WORKSHOP = "workshop";
    /**
     * åç¦»å•号
     */
    public static final String DEVIATION = "deviation";
    /**
     * å›ºåŒ–程序,审批具体是否可用
     */
    public static final String CURE_PROGRAM_USEABLE = "cureProgramUseable";
    /**
     * è‡ªå·±å®šä¸€çš„æµç¨‹åç§°
     */
    public static final String MY_PROCESS_NAME = "myProcessName";
    /**
     * æµç¨‹ä¸­å¦‚果针对哪个节点发起流程,使用这个关键字在流程变量中存放nodeId
     */
    public static final String NODE_ID = "nodeId";
    /**
     * æµç¨‹å˜é‡ä¸­çš„异常标志,="1"为异常流程
     */
    public static final String EXCEPTION = "exception";
    /**
     * ç¼–程员姓名
     */
    public static final String PROGRAMMER_NAME = "programmerName";
    /**
     * æ˜¯å¦ä¸´æ—¶æµç¨‹ï¼Œä¸´æ—¶æµç¨‹ä¸æ£€æŸ¥ç¨‹åºæ–‡ä»¶ååˆæ³•性,不生成产品结构树
     */
    public static final String IS_TEMP_FLOW = "isTempFlow";
    /*
    å·²å›ºåŒ–但以已所帝国标志 Y/N
     */
    public static final String CURED_LOCKED = "curedLocked";
    /**
     * ç¨‹åºç¼–号
     */
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowVariableContants.java
@@ -4,13 +4,32 @@
    public static final String PROGRAMMER = "programmer";
    public static final String COMMENT = "comment";
    public static final String TEAM_LEADER = "teamLeader";
    public static final String CHECKER = "checker";
    public static final String SENIOR = "senior";
    public static final String ASSIGNEE = "assignee";
    /**
     * æ˜¯å¦åœ¨æœ‰æ•ˆæœŸå†…çš„key
     */
    public static final String VALIDITY_PERIOD = "validityPeriod";
    /**
     * æµç¨‹æ ‡é¢˜
     */
    public static final String TITLE = "title";
    /**
     * å›¾å·
     */
    public static final String DRAWING_NO = "drawingNo";
    /**
     * è¯„论
     */
    public static final String APPROVE = "approve";
    public static final String ASSIGNEE = "assignee";
    /**
     * å®žé™…的编程人员(上传文件的人),不是主管工艺
     */
@@ -27,4 +46,95 @@
     * è¿‡ç¨‹å¡å·å˜é‡å
     */
    public static final String PROCESS_CARD = "processCard";
    /*
    æœºåºŠç¼–码
     */
    public static final String MACHINE_CODE = "machineCode";
    /**
     * ä»»åŠ¡è½¦é—´
     */
    public static final String WORKSHOP = "workshop";
    /**
     * æœºåºŠåž‹å·
     */
    public static final String MACHINE_MODE = "machineMode";
    /**
     * æœºåºŠç»„代码
     */
    public static final String MACHINE_GROUP_CODE = "machineGroupCode";
    /**
     * å·¥åºå·
     */
    public static final String PROCESS_NO = "processNo";
    /**
     * å›¾å·ç‰ˆæ¬¡
     */
    public static final String DRAWING_NO_EDITION = "drawingNoEdition";
    /**
     * å·¥åºç‰ˆæ¬¡
     */
    public static final String PROCESS_EDITION = "processEdition";
    /**
     * å·¥è‰ºç‰ˆæ¬¡
     */
    public static final String CRAFT_EDITION = "craftEdition";
    /**
     * äº§å“åž‹å·
     */
    public static final String PRODUCT_MODEL = "productModel";
    /**
     * æ˜¯å¦æœ‰å›ºåŒ–程序
     */
    public static final String HAS_CURED_PROGRAM = "hasCuredProgram";
    /**
     * å›ºåŒ–程序包名的id
     */
    public static final String CURED_NODE_ID = "curedNodeId";
    /**
     * å·¥åºåç§°
     */
    public static final String PROCESS_NAME = "processName";
    /*
        å·²å›ºåŒ–但以已所帝国标志 Y/N
         */
    public static final String CURED_LOCKED = "curedLocked";
    /**
     * ä¸Šä¸€æ­¥å®¡æ‰¹ç”¨æˆ·å§“名
     */
    public static final String LAST_STEP_USER_NICKNAME = "approveUserNickName";
    /**
     * å·¥åºç‰ˆæ¬¡æ˜¯å¦ä¸€è‡´çš„key
     */
    public static final String IS_PROCESS_EDITION_SAME = "isProcessEditionSame";
    /**
     * ç¨‹åºåŒ…名
     */
    public static final String PROGRAM_PACKAGE_NAME = "programPackageName";
    /**
     * è‡ªå·±å®šä¸€çš„æµç¨‹åç§°
     */
    public static final String MY_PROCESS_NAME = "myProcessName";
    /**
     * åç¦»å•号
     */
    public static final String DEVIATION = "deviation";
    /**
     * æ˜¯å¦ä¸´æ—¶æµç¨‹ï¼Œä¸´æ—¶æµç¨‹ä¸æ£€æŸ¥ç¨‹åºæ–‡ä»¶ååˆæ³•性,不生成产品结构树
     */
    public static final String IS_TEMP_FLOW = "isTempFlow";
    /**
     * æµç¨‹å˜é‡ä¸­çš„异常标志,="1"为异常流程
     */
    public static final String EXCEPTION = "exception";
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
@@ -13,6 +13,7 @@
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.constants.FlowVariableContants;
import org.springblade.mdm.flow.entity.TaskDispatch;
import org.springblade.mdm.flow.excution.StartDispatcher;
import org.springblade.mdm.flow.service.FlowProgramFileService;
@@ -108,7 +109,7 @@
        ProcessInstance inst = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).includeProcessVariables().singleResult();
        if(inst.getProcessDefinitionKey().equals(FlowContants.TRY_PROCESS_KEY)
            || inst.getProcessDefinitionKey().equals(FlowContants.UNLOCK_PROCESS_KEY)){
            String isTempFlow = Func.toStr(inst.getProcessVariables().get(FlowContants.IS_TEMP_FLOW));
            String isTempFlow = Func.toStr(inst.getProcessVariables().get(FlowVariableContants.IS_TEMP_FLOW));
            if(FlowContants.N.equals(isTempFlow)){
                return tryFlowCompleteService;
            }else{
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -6,10 +6,13 @@
import org.flowable.engine.runtime.ProcessInstance;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision;
import org.springblade.mdm.basesetting.producedivision.service.ProduceDivisionService;
import org.springblade.mdm.commons.service.UserCommonService;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.constants.FlowVariableContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.service.FlowCommonService;
import org.springblade.mdm.flow.service.FlowProgramFileService;
@@ -35,7 +38,7 @@
    private final ProgramSeqService programSeqService;
    private final IdentityService identityService;
    private final NcNodeService ncNodeService;
    private final MachineService machineService;
    private final FlowProgramFileService flowProgramFileService;
    private final NodeDeptQueryService nodeDeptQueryService;
    private final FlowCommonService flowCommonService;
@@ -57,85 +60,89 @@
        if(startVO.getProducePlanId() != null && startVO.getProducePlanId()!=0){
            //界面上选择了分工表的情况,直接根据id获取
            div = produceDivisionService.getById(startVO.getProducePlanId());
            vars.put(FlowContants.TEAM_LEADER,div.getTeamLeaderId());
            vars.put(FlowContants.PROGRAMMER,div.getProgrammerId());
            vars.put(FlowContants.CHECKER,div.getCheckerId());
            vars.put(FlowContants.SENIOR,div.getSeniorId());
            vars.put(FlowVariableContants.TEAM_LEADER,div.getTeamLeaderId());
            vars.put(FlowVariableContants.PROGRAMMER,div.getProgrammerId());
            vars.put(FlowVariableContants.CHECKER,div.getCheckerId());
            vars.put(FlowVariableContants.SENIOR,div.getSeniorId());
            vars.put(FlowContants.PROGRAMMER_NAME, userCommonService.getUserNameById(div.getProgrammerId()));
        }else {
            div = flowCommonService.putDefaultAssignees(vars, startVO.getDrawingNo(), null);
        }
        vars.put(FlowContants.TITLE,startVO.getTitle());
        vars.put(FlowVariableContants.TITLE,startVO.getTitle());
        //机床编号
        vars.put(FlowContants.MACHINE_CODE,startVO.getMachineCode());
        vars.put(FlowVariableContants.MACHINE_CODE,startVO.getMachineCode());
        String workshop = nodeDeptQueryService.getWorkshopNameByMachineCode(startVO.getMachineCode());
        vars.put(FlowContants.WORKSHOP,workshop);
        vars.put(FlowVariableContants.WORKSHOP,workshop);
        //机床型号
        vars.put(FlowContants.MACHINE_MODE,startVO.getMachineMode());
        vars.put(FlowContants.PROCESS_NO,startVO.getProcessNo());
        vars.put(FlowContants.PROCESS_NAME,startVO.getProcessName());
        vars.put(FlowContants.PROCESS_EDITION,startVO.getProcessEdition());
        vars.put(FlowContants.CRAFT_EDITION,startVO.getCraftEdition());
        Machine machine = machineService.getByCode(startVO.getMachineCode());
        vars.put(FlowVariableContants.MACHINE_MODE,machine.getName());
        vars.put(FlowVariableContants.MACHINE_GROUP_CODE,machine.getMachineGroupCode());
        vars.put(FlowVariableContants.PROCESS_NO,startVO.getProcessNo());
        vars.put(FlowVariableContants.PROCESS_NAME,startVO.getProcessName());
        vars.put(FlowVariableContants.PROCESS_EDITION,startVO.getProcessEdition());
        vars.put(FlowVariableContants.CRAFT_EDITION,startVO.getCraftEdition());
        vars.put("planStartTime",startVO.getPlanStartTime());
        vars.put(FlowContants.DRAWING_NO,startVO.getDrawingNo());
        vars.put(FlowContants.DRAWING_NO_EDITION,startVO.getDrawingNoEdition());
        vars.put(FlowVariableContants.DRAWING_NO,startVO.getDrawingNo());
        vars.put(FlowVariableContants.DRAWING_NO_EDITION,startVO.getDrawingNoEdition());
        vars.put("planLockDays",startVO.getPlanLockDays());
        vars.put(FlowContants.PRODUCT_MODEL,startVO.getProductModel());
        vars.put(FlowVariableContants.PRODUCT_MODEL,startVO.getProductModel());
        if(StringUtils.isNotBlank(startVO.getDeviation())) {
            vars.put(FlowContants.DEVIATION, startVO.getDeviation());//偏离单
            vars.put(FlowVariableContants.DEVIATION, startVO.getDeviation());//偏离单
        }
        String programPkgName = NcNodeService.genProgramName(startVO.getDrawingNo(),startVO.getProcessNo(),startVO.getProcessEdition());
        vars.put(FlowContants.PROGRAM_PACKAGE_NAME,programPkgName);
        vars.put(FlowVariableContants.PROGRAM_PACKAGE_NAME,programPkgName);
        vars.put(FlowContants.IS_TEMP_FLOW,FlowContants.Y.equals(startVO.getIsTempFlow())?FlowContants.Y:FlowContants.N);
        vars.put(FlowVariableContants.IS_TEMP_FLOW,FlowContants.Y.equals(startVO.getIsTempFlow())?FlowContants.Y:FlowContants.N);
        NcNode curedProgramPackage = null;
        if(!startVO.isTemporaryFlow() && !startVO.isDeviationFlow()) {
            //正常流程(非临时流程) ä¸”不是 åç¦»å•,才匹配固化程序
            curedProgramPackage = ncNodeService.getLastCuredProgramWithoutProcessEdition(startVO.getDrawingNo(),startVO.getProcessNo(),startVO.getMachineCode());
            //设置是否有固化程序标记
            vars.put(FlowContants.HAS_CURED_PROGRAM, curedProgramPackage != null ? FlowContants.Y : FlowContants.N);
            vars.put(FlowVariableContants.HAS_CURED_PROGRAM, curedProgramPackage != null ? FlowContants.Y : FlowContants.N);
            //工序版次是否一致,是否在有效期内
            if (curedProgramPackage != null) {
                vars.put(FlowContants.CURED_NODE_ID, curedProgramPackage.getId());
                vars.put(FlowContants.CURED_LOCKED, curedProgramPackage.hasLocked()?FlowContants.Y:FlowContants.N);
                vars.put(FlowContants.IS_PROCESS_EDITION_SAME, StringUtils.equals(curedProgramPackage.getProcessEdition(), startVO.getProcessEdition()) ? FlowContants.Y : FlowContants.N);
                vars.put(FlowVariableContants.CURED_NODE_ID, curedProgramPackage.getId());
                vars.put(FlowVariableContants.CURED_LOCKED, curedProgramPackage.hasLocked()?FlowContants.Y:FlowContants.N);
                vars.put(FlowVariableContants.IS_PROCESS_EDITION_SAME, StringUtils.equals(curedProgramPackage.getProcessEdition(), startVO.getProcessEdition()) ? FlowContants.Y : FlowContants.N);
                vars.put("curedProcessEdition", curedProgramPackage.getProcessEdition());
                vars.put(FlowContants.VALIDITY_PERIOD, curedProgramPackage.withinValidityPeriod() ? FlowContants.Y : FlowContants.N);
                vars.put(FlowVariableContants.VALIDITY_PERIOD, curedProgramPackage.withinValidityPeriod() ? FlowContants.Y : FlowContants.N);
            } else {
                vars.put(FlowContants.IS_PROCESS_EDITION_SAME, FlowContants.Y);
                vars.put(FlowContants.VALIDITY_PERIOD, FlowContants.Y);
                vars.put(FlowVariableContants.IS_PROCESS_EDITION_SAME, FlowContants.Y);
                vars.put(FlowVariableContants.VALIDITY_PERIOD, FlowContants.Y);
            }
        }else{
            //临时流程/偏离单,不匹配固化程序
            vars.put(FlowContants.HAS_CURED_PROGRAM,FlowContants.N);
            vars.put(FlowVariableContants.HAS_CURED_PROGRAM,FlowContants.N);
        }
        String myProcessName = "试切下发流程";
        if(vars.getOrDefault(FlowContants.IS_TEMP_FLOW,FlowContants.N).equals(FlowContants.Y)){
        if(vars.getOrDefault(FlowVariableContants.IS_TEMP_FLOW,FlowContants.N).equals(FlowContants.Y)){
            myProcessName = "试切补充流程";
        }else if(StringUtils.isNotBlank(startVO.getDeviation()) ){
            myProcessName = "偏离单";
        }else if(vars.getOrDefault(FlowContants.HAS_CURED_PROGRAM,FlowContants.N).equals(FlowContants.Y)){
        }else if(vars.getOrDefault(FlowVariableContants.HAS_CURED_PROGRAM,FlowContants.N).equals(FlowContants.Y)){
            myProcessName = "固化下发流程";
        }
        vars.put(FlowContants.MY_PROCESS_NAME, myProcessName);
        vars.put(FlowVariableContants.MY_PROCESS_NAME, myProcessName);
        String businessKey = Func.toStr(startVO.getTaskDispatchId());//业务表key
        identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//设置流程发起人
        ProcessInstance inst;
        if(startVO.isTemporaryFlow()){
            vars.put(FlowContants.ASSIGNEE,div.getProgrammerId());//第一个用户编制上传文件
            vars.put(FlowVariableContants.ASSIGNEE,div.getProgrammerId());//第一个用户编制上传文件
            vars.put(FlowContants.PROGRAMMER_NAME,userCommonService.getUserNameById(div.getProgrammerId()));//编程员姓名
            inst = runtimeService.startProcessInstanceByKey(FlowContants.APPEND_PROCESS_KEY,businessKey,vars);
        }else{
            vars.put(FlowContants.ASSIGNEE,div.getTeamLeaderId());//第一个用户组长
            vars.put(FlowVariableContants.ASSIGNEE,div.getTeamLeaderId());//第一个用户组长
            inst = runtimeService.startProcessInstanceByKey(FlowContants.TRY_PROCESS_KEY,businessKey,vars);
        }
        FlowStartResult result = new FlowStartResult();
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
@@ -11,6 +11,7 @@
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.basesetting.producedivision.service.ProduceDivisionService;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.constants.FlowVariableContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.service.NcNodeService;
@@ -58,45 +59,45 @@
        Map<String, Object> vars = new HashMap<>();
        NcNode programPackage = this.ncNodeService.getById(nodeId);
        vars.put(FlowContants.NODE_ID,programPackage.getId());
        vars.put(FlowContants.MACHINE_CODE,programPackage.getMachineCode());
        vars.put(FlowVariableContants.MACHINE_CODE,programPackage.getMachineCode());
        //机床型号
        Machine machine = machineService.getByCode(programPackage.getMachineCode());
        if(machine != null) {
            vars.put(FlowContants.MACHINE_MODE,machine.getName());
            vars.put(FlowVariableContants.MACHINE_MODE,machine.getName());
        }
        String workshop = nodeDeptQueryService.getWorkshopNameByMachineCode(programPackage.getMachineCode());
        vars.put(FlowContants.WORKSHOP,workshop);
        vars.put(FlowVariableContants.WORKSHOP,workshop);
        vars.put(FlowContants.NODE_ID, Func.toStr(nodeId));
        vars.put(FlowContants.PROCESS_NO,programPackage.getProcessNo());
        vars.put(FlowContants.PROCESS_NAME,programPackage.getProcessName());
        vars.put(FlowContants.PROCESS_EDITION,programPackage.getProcessEdition());
        vars.put(FlowContants.CRAFT_EDITION, programPackage.getCraftEdition());
        vars.put(FlowContants.DRAWING_NO,programPackage.getDrawingNo());
        vars.put(FlowContants.DRAWING_NO_EDITION,programPackage.getDrawingNoEdition());
        vars.put(FlowVariableContants.PROCESS_NO,programPackage.getProcessNo());
        vars.put(FlowVariableContants.PROCESS_NAME,programPackage.getProcessName());
        vars.put(FlowVariableContants.PROCESS_EDITION,programPackage.getProcessEdition());
        vars.put(FlowVariableContants.CRAFT_EDITION, programPackage.getCraftEdition());
        vars.put(FlowVariableContants.DRAWING_NO,programPackage.getDrawingNo());
        vars.put(FlowVariableContants.DRAWING_NO_EDITION,programPackage.getDrawingNoEdition());
        vars.put(FlowContants.PRODUCT_MODEL,programPackage.getProductModel());
        vars.put(FlowVariableContants.PRODUCT_MODEL,programPackage.getProductModel());
        vars.put(FlowContants.PROGRAM_PACKAGE_NAME,programPackage.getName());
        vars.put(FlowVariableContants.PROGRAM_PACKAGE_NAME,programPackage.getName());
        flowCommonService.putDefaultAssignees(vars,programPackage.getDrawingNo(),null);
        //ProduceDivision div = produceDivisionService.getByDrawingNoWithQinzhe(programPackage.getDrawingNo());
        vars.put(FlowContants.ASSIGNEE,vars.get(FlowContants.PROGRAMMER));
        vars.put(FlowVariableContants.ASSIGNEE,vars.get(FlowVariableContants.PROGRAMMER));
        identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//设置流程发起人
        vars.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
        vars.put(FlowVariableContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
        if(programPackage.getDeviation() != null) {
            vars.put(FlowContants.MY_PROCESS_NAME, "偏离回传");
            vars.put(FlowContants.TITLE,programPackage.getName()+"-偏离回传");//自动增加标题
            vars.put(FlowVariableContants.MY_PROCESS_NAME, "偏离回传");
            vars.put(FlowVariableContants.TITLE,programPackage.getName()+"-偏离回传");//自动增加标题
        }else {
            vars.put(FlowContants.MY_PROCESS_NAME, "固化流程");
            vars.put(FlowContants.TITLE,programPackage.getName()+"-"+programPackage.getProcessEdition()+"-固化");//自动增加标题
            vars.put(FlowVariableContants.MY_PROCESS_NAME, "固化流程");
            vars.put(FlowVariableContants.TITLE,programPackage.getName()+"-"+programPackage.getProcessEdition()+"-固化");//自动增加标题
        }
        ProcessInstance inst = runtimeService.startProcessInstanceByKey(FlowContants.CURE_PROCESS_KEY,"0",vars);
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
@@ -19,6 +19,7 @@
import org.springblade.core.tool.utils.*;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.constants.FlowVariableContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.entity.MdmFlowProcess;
import org.springblade.mdm.flow.util.MdmFlowCache;
@@ -90,13 +91,13 @@
        if(Func.isNotEmpty(keyword)) {
            String likeVal = "%" + keyword + "%";
            todoQuery.or();
            todoQuery.processVariableValueLike(FlowContants.TITLE,likeVal);
            todoQuery.processVariableValueLike(FlowContants.PROCESS_NO, likeVal);
            todoQuery.processVariableValueLike(FlowContants.MACHINE_CODE, likeVal);
            todoQuery.processVariableValueLike(FlowContants.MACHINE_MODE, likeVal);
            todoQuery.processVariableValueLike(FlowContants.PROCESS_NAME, likeVal);
            todoQuery.processVariableValueLike(FlowContants.PROCESS_EDITION, likeVal);
            todoQuery.processVariableValueLike(FlowContants.CRAFT_EDITION, likeVal);
            todoQuery.processVariableValueLike(FlowVariableContants.TITLE,likeVal);
            todoQuery.processVariableValueLike(FlowVariableContants.PROCESS_NO, likeVal);
            todoQuery.processVariableValueLike(FlowVariableContants.MACHINE_CODE, likeVal);
            todoQuery.processVariableValueLike(FlowVariableContants.MACHINE_MODE, likeVal);
            todoQuery.processVariableValueLike(FlowVariableContants.PROCESS_NAME, likeVal);
            todoQuery.processVariableValueLike(FlowVariableContants.PROCESS_EDITION, likeVal);
            todoQuery.processVariableValueLike(FlowVariableContants.CRAFT_EDITION, likeVal);
            todoQuery.processDefinitionNameLike(likeVal);
            todoQuery.endOr();
@@ -287,7 +288,7 @@
            taskQuery.taskCreatedBefore(DateUtil.toDate(createTimeEnd.plusDays(1)));
        }
        if(Func.isNotEmpty(myProcessName)) {
            taskQuery.processVariableValueEquals(FlowContants.MY_PROCESS_NAME, myProcessName);
            taskQuery.processVariableValueEquals(FlowVariableContants.MY_PROCESS_NAME, myProcessName);
        }
        addKeywordCondition(taskQuery, keyword);
@@ -324,7 +325,7 @@
        HistoricProcessInstanceQuery query = this.historyService.createHistoricProcessInstanceQuery().finished().includeProcessVariables();
            //.finished() // åªæŸ¥è¯¢å·²å®Œæˆçš„æµç¨‹.unfinished() // æŸ¥è¯¢æœªå®Œæˆçš„æµç¨‹
        if(Func.isNotEmpty(myProcessName)) {
            query.variableValueEquals(FlowContants.MY_PROCESS_NAME, myProcessName);
            query.variableValueEquals(FlowVariableContants.MY_PROCESS_NAME, myProcessName);
        }
        if(createTimeBegin!=null) {
            query.startedAfter(DateUtil.toDate(createTimeBegin));
@@ -335,13 +336,13 @@
        if(Func.isNotEmpty(keyword)) {
            String likeVal = "%" + keyword + "%";
            query.or();
            query.variableValueLike(FlowContants.TITLE,likeVal);
            query.variableValueLike(FlowContants.PROCESS_NO, likeVal);
            query.variableValueLike(FlowContants.MACHINE_CODE, likeVal);
            query.variableValueLike(FlowContants.MACHINE_MODE, likeVal);
            query.variableValueLike(FlowContants.PROCESS_NAME, likeVal);
            query.variableValueLike(FlowContants.PROCESS_EDITION, likeVal);
            query.variableValueLike(FlowContants.CRAFT_EDITION, likeVal);
            query.variableValueLike(FlowVariableContants.TITLE,likeVal);
            query.variableValueLike(FlowVariableContants.PROCESS_NO, likeVal);
            query.variableValueLike(FlowVariableContants.MACHINE_CODE, likeVal);
            query.variableValueLike(FlowVariableContants.MACHINE_MODE, likeVal);
            query.variableValueLike(FlowVariableContants.PROCESS_NAME, likeVal);
            query.variableValueLike(FlowVariableContants.PROCESS_EDITION, likeVal);
            query.variableValueLike(FlowVariableContants.CRAFT_EDITION, likeVal);
            query.endOr();
        }
@@ -393,9 +394,9 @@
        HistoricProcessInstanceQuery query = this.historyService.createHistoricProcessInstanceQuery().finished().includeProcessVariables();
        //.finished() // åªæŸ¥è¯¢å·²å®Œæˆçš„æµç¨‹.unfinished() // æŸ¥è¯¢æœªå®Œæˆçš„æµç¨‹
        query.variableValueEquals(FlowContants.EXCEPTION, "1");
        query.variableValueEquals(FlowVariableContants.EXCEPTION, "1");
        if(Func.isNotEmpty(myProcessName)) {
            query.variableValueEquals(FlowContants.MY_PROCESS_NAME, myProcessName);
            query.variableValueEquals(FlowVariableContants.MY_PROCESS_NAME, myProcessName);
        }
        if(createTimeBegin!=null) {
            query.startedAfter(DateUtil.toDate(createTimeBegin));
@@ -406,13 +407,13 @@
        if(Func.isNotEmpty(keyword)) {
            String likeVal = "%" + keyword + "%";
            query.or();
            query.variableValueLike(FlowContants.TITLE,likeVal);
            query.variableValueLike(FlowContants.PROCESS_NO, likeVal);
            query.variableValueLike(FlowContants.MACHINE_CODE, likeVal);
            query.variableValueLike(FlowContants.MACHINE_MODE, likeVal);
            query.variableValueLike(FlowContants.PROCESS_NAME, likeVal);
            query.variableValueLike(FlowContants.PROCESS_EDITION, likeVal);
            query.variableValueLike(FlowContants.CRAFT_EDITION, likeVal);
            query.variableValueLike(FlowVariableContants.TITLE,likeVal);
            query.variableValueLike(FlowVariableContants.PROCESS_NO, likeVal);
            query.variableValueLike(FlowVariableContants.MACHINE_CODE, likeVal);
            query.variableValueLike(FlowVariableContants.MACHINE_MODE, likeVal);
            query.variableValueLike(FlowVariableContants.PROCESS_NAME, likeVal);
            query.variableValueLike(FlowVariableContants.PROCESS_EDITION, likeVal);
            query.variableValueLike(FlowVariableContants.CRAFT_EDITION, likeVal);
            query.endOr();
        }
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
@@ -88,38 +88,38 @@
     */
    void copyFlowPropertiesFromMap(FlowProgramProperties programProperties,Map<String, Object> vars){
        programProperties.setTitle(String.valueOf(vars.get(FlowContants.TITLE)));
        programProperties.setIsTempFlow(Func.toStr(vars.get(FlowContants.IS_TEMP_FLOW)));
        programProperties.setDrawingNo(String.valueOf(vars.get(FlowContants.DRAWING_NO)));
        programProperties.setDrawingNoEdition(String.valueOf(vars.get(FlowContants.DRAWING_NO_EDITION)));
        programProperties.setProductModel(String.valueOf(vars.get(FlowContants.PRODUCT_MODEL)));
        programProperties.setTitle(String.valueOf(vars.get(FlowVariableContants.TITLE)));
        programProperties.setIsTempFlow(Func.toStr(vars.get(FlowVariableContants.IS_TEMP_FLOW)));
        programProperties.setDrawingNo(String.valueOf(vars.get(FlowVariableContants.DRAWING_NO)));
        programProperties.setDrawingNoEdition(String.valueOf(vars.get(FlowVariableContants.DRAWING_NO_EDITION)));
        programProperties.setProductModel(String.valueOf(vars.get(FlowVariableContants.PRODUCT_MODEL)));
        programProperties.setProcessNo(String.valueOf(vars.get(FlowContants.PROCESS_NO)));
        programProperties.setProcessEdition(String.valueOf(vars.get(FlowContants.PROCESS_EDITION)));//工序版次
        programProperties.setProcessName(String.valueOf(vars.get(FlowContants.PROCESS_NAME)));
        programProperties.setMachineCode(String.valueOf(vars.get(FlowContants.MACHINE_CODE)));
        programProperties.setProcessNo(String.valueOf(vars.get(FlowVariableContants.PROCESS_NO)));
        programProperties.setProcessEdition(String.valueOf(vars.get(FlowVariableContants.PROCESS_EDITION)));//工序版次
        programProperties.setProcessName(String.valueOf(vars.get(FlowVariableContants.PROCESS_NAME)));
        programProperties.setMachineCode(String.valueOf(vars.get(FlowVariableContants.MACHINE_CODE)));
        programProperties.setMachineMode(String.valueOf(vars.get(FlowContants.MACHINE_MODE)));
        programProperties.setMachineMode(String.valueOf(vars.get(FlowVariableContants.MACHINE_MODE)));
        //数据处理名称为版次以前,零件号加工序号:YZL4-1100-01-50 é›¶ç»„件号:YZL4-1100-01 å·¥åºå· 50
        programProperties.setCraftEdition(String.valueOf(vars.get(FlowContants.CRAFT_EDITION)));
        programProperties.setHasCuredProgram(String.valueOf(vars.get(FlowContants.HAS_CURED_PROGRAM)));
        programProperties.setIsProcessEditionSame(String.valueOf(vars.get(FlowContants.IS_PROCESS_EDITION_SAME)));
        if(vars.containsKey(FlowContants.DEVIATION)) {
            programProperties.setDeviation(String.valueOf(vars.get(FlowContants.DEVIATION)));
        programProperties.setCraftEdition(String.valueOf(vars.get(FlowVariableContants.CRAFT_EDITION)));
        programProperties.setHasCuredProgram(String.valueOf(vars.get(FlowVariableContants.HAS_CURED_PROGRAM)));
        programProperties.setIsProcessEditionSame(String.valueOf(vars.get(FlowVariableContants.IS_PROCESS_EDITION_SAME)));
        if(vars.containsKey(FlowVariableContants.DEVIATION)) {
            programProperties.setDeviation(String.valueOf(vars.get(FlowVariableContants.DEVIATION)));
        }
        if(vars.containsKey(FlowContants.CURED_NODE_ID)){
            programProperties.setCuredNodeId(Func.toLong(vars.get(FlowContants.CURED_NODE_ID)));
        if(vars.containsKey(FlowVariableContants.CURED_NODE_ID)){
            programProperties.setCuredNodeId(Func.toLong(vars.get(FlowVariableContants.CURED_NODE_ID)));
        }
        if(vars.containsKey(FlowContants.NODE_ID)){
            programProperties.setNodeId(Func.toLong(vars.get(FlowContants.NODE_ID)));
        }
        programProperties.setCureProgramUseable(String.valueOf(vars.get(FlowContants.CURE_PROGRAM_USEABLE)));
        programProperties.setTeamLeaderId(Func.toLong(vars.get(FlowContants.TEAM_LEADER)));
        programProperties.setProgrammerId(Func.toLong(vars.get(FlowContants.PROGRAMMER)));
        programProperties.setCheckerId(Func.toLong(vars.get(FlowContants.CHECKER)));
        programProperties.setSeniorId(Func.toLong(vars.get(FlowContants.SENIOR)));
        programProperties.setTeamLeaderId(Func.toLong(vars.get(FlowVariableContants.TEAM_LEADER)));
        programProperties.setProgrammerId(Func.toLong(vars.get(FlowVariableContants.PROGRAMMER)));
        programProperties.setCheckerId(Func.toLong(vars.get(FlowVariableContants.CHECKER)));
        programProperties.setSeniorId(Func.toLong(vars.get(FlowVariableContants.SENIOR)));
        programProperties.setProgramNo(programProperties.getDrawingNo()+"-"+programProperties.getProcessNo()+"-"+programProperties.getProcessEdition());
@@ -181,12 +181,12 @@
     */
    public ProduceDivision putDefaultAssignees(Map<String, Object> vars,String drawingNo,String defaultAssignee){
        ProduceDivision div = produceDivisionService.getByDrawingNoWithQinzhe(drawingNo);
        vars.put(FlowContants.TEAM_LEADER,div.getTeamLeaderId());
        vars.put(FlowContants.PROGRAMMER,div.getProgrammerId());
        vars.put(FlowContants.CHECKER,div.getCheckerId());
        vars.put(FlowContants.SENIOR,div.getSeniorId());
        vars.put(FlowVariableContants.TEAM_LEADER,div.getTeamLeaderId());
        vars.put(FlowVariableContants.PROGRAMMER,div.getProgrammerId());
        vars.put(FlowVariableContants.CHECKER,div.getCheckerId());
        vars.put(FlowVariableContants.SENIOR,div.getSeniorId());
        if(StringUtils.isNotBlank(defaultAssignee)) {
            vars.put(FlowContants.ASSIGNEE, defaultAssignee);//第一个审批用户:组长
            vars.put(FlowVariableContants.ASSIGNEE, defaultAssignee);//第一个审批用户:组长
        }
        vars.put(FlowContants.PROGRAMMER_NAME, userCommonService.getUserNameById(div.getProgrammerId()));
@@ -200,25 +200,25 @@
     */
    public void putFlowVariablesByNode(Map<String, Object> vars, NcNode programPackageNode){
        //机床编号
        vars.put(FlowContants.MACHINE_CODE,programPackageNode.getMachineCode());
        vars.put(FlowVariableContants.MACHINE_CODE,programPackageNode.getMachineCode());
        Machine machine = machineService.getByCode(programPackageNode.getMachineCode());
        //机床型号
        if(machine != null) {
            vars.put(FlowContants.MACHINE_MODE, machine.getName());
            vars.put(FlowVariableContants.MACHINE_MODE, machine.getName());
        }
        vars.put(FlowContants.PROCESS_NO,programPackageNode.getProcessNo());
        vars.put(FlowContants.PROCESS_NAME,programPackageNode.getProcessName());
        vars.put(FlowContants.PROCESS_EDITION,programPackageNode.getProcessEdition());
        vars.put(FlowContants.CRAFT_EDITION,programPackageNode.getCraftEdition());
        vars.put(FlowVariableContants.PROCESS_NO,programPackageNode.getProcessNo());
        vars.put(FlowVariableContants.PROCESS_NAME,programPackageNode.getProcessName());
        vars.put(FlowVariableContants.PROCESS_EDITION,programPackageNode.getProcessEdition());
        vars.put(FlowVariableContants.CRAFT_EDITION,programPackageNode.getCraftEdition());
        vars.put(FlowContants.DRAWING_NO,programPackageNode.getDrawingNo());
        vars.put(FlowContants.DRAWING_NO_EDITION,programPackageNode.getDrawingNoEdition());
        vars.put(FlowVariableContants.DRAWING_NO,programPackageNode.getDrawingNo());
        vars.put(FlowVariableContants.DRAWING_NO_EDITION,programPackageNode.getDrawingNoEdition());
        vars.put(FlowContants.PROGRAM_PACKAGE_NAME,programPackageNode.getName());
        vars.put(FlowVariableContants.PROGRAM_PACKAGE_NAME,programPackageNode.getName());
        vars.put(FlowContants.PRODUCT_MODEL,programPackageNode.getProductModel());
        vars.put(FlowVariableContants.PRODUCT_MODEL,programPackageNode.getProductModel());
        vars.put(FlowContants.NODE_ID, programPackageNode.getId());
        vars.put(FlowContants.WORKSHOP,nodeDeptQueryService.getWorkshopNameByMachineCode(programPackageNode.getMachineCode()));
        vars.put(FlowVariableContants.WORKSHOP,nodeDeptQueryService.getWorkshopNameByMachineCode(programPackageNode.getMachineCode()));
    }
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/LockFlowService.java
@@ -9,6 +9,7 @@
import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision;
import org.springblade.mdm.basesetting.producedivision.service.ProduceDivisionService;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.constants.FlowVariableContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.service.NcNodeService;
@@ -41,13 +42,13 @@
        flowCommonService.putFlowVariablesByNode(vars,programPackage);
        ProduceDivision div = produceDivisionService.getByDrawingNoWithQinzhe(programPackage.getDrawingNo());
        vars.put(FlowContants.PROGRAMMER,div.getProgrammerId());
        vars.put(FlowContants.SENIOR,div.getSeniorId());
        vars.put(FlowContants.ASSIGNEE,div.getSeniorId());//审批用户:高师
        vars.put(FlowVariableContants.PROGRAMMER,div.getProgrammerId());
        vars.put(FlowVariableContants.SENIOR,div.getSeniorId());
        vars.put(FlowVariableContants.ASSIGNEE,div.getSeniorId());//审批用户:高师
        vars.put(FlowContants.TITLE,programPackage.getName()+"程序解锁");
        vars.put(FlowVariableContants.TITLE,programPackage.getName()+"程序解锁");
        vars.put(FlowContants.MY_PROCESS_NAME,"解锁流程");
        vars.put(FlowVariableContants.MY_PROCESS_NAME,"解锁流程");
        vars.put("comment", "解锁程序"+programPackage.getName());
        vars.put("unlockReason", unlockReason);
        identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//设置流程发起人
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java
@@ -107,10 +107,10 @@
        flowCommonService.putFlowVariablesByNode(vars,programPackage);
        flowCommonService.putDefaultAssignees(vars,programPackage.getDrawingNo(),startVO.getAssignee()+"");
        vars.put(FlowContants.TITLE,startVO.getTitle());
        vars.put(FlowVariableContants.TITLE,startVO.getTitle());
        vars.put("comment", startVO.getComment());
        vars.put(FlowContants.MY_PROCESS_NAME,"替换流程");
        vars.put(FlowVariableContants.MY_PROCESS_NAME,"替换流程");
        String userId = String.valueOf(AuthUtil.getUserId());
        identityService.setAuthenticatedUserId(userId);//设置流程发起人
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java
@@ -124,9 +124,9 @@
        ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().includeProcessVariables()
            .processInstanceId(processInstanceId)
            .singleResult();
        Object programmer = processInstance.getProcessVariables().get(FlowContants.PROGRAMMER);
        Object programmer = processInstance.getProcessVariables().get(FlowVariableContants.PROGRAMMER);
        if(programmer == null){
            throw new ServiceException(processInstance.getProcessVariables().get(FlowContants.TITLE)+":未找到编程人员");
            throw new ServiceException(processInstance.getProcessVariables().get(FlowVariableContants.TITLE)+":未找到编程人员");
        }
        return programmer;
    }
@@ -177,7 +177,7 @@
            .singleResult();
        Object actProgrammer = processInstance.getProcessVariables().get(FlowVariableContants.ACT_PROGRAMMER);
        if(actProgrammer == null){
            throw new ServiceException(processInstance.getProcessVariables().get(FlowContants.TITLE)+":未找到编程人员");
            throw new ServiceException(processInstance.getProcessVariables().get(FlowVariableContants.TITLE)+":未找到编程人员");
        }
        return actProgrammer;
    }
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/CureFlowCompleteService.java
@@ -58,9 +58,9 @@
        if (Func.isEmpty(variables)) {
            variables = Kv.create();
        }
        variables.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
        variables.put(FlowVariableContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
        variables.remove(FlowContants.PROCESS_EDITION);//不要升版了
        variables.remove(FlowVariableContants.PROCESS_EDITION);//不要升版了
        taskService.complete(taskId, variables);
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/ReplaceFlowCompleteService.java
@@ -54,13 +54,13 @@
            taskService.addComment(taskId, processInstanceId, comment);
        }
        variables.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
        variables.put(FlowVariableContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
        if(!variables.containsKey("assignee")) {
            throw new ServiceException("请指定流程下一步处理人");
        }
        variables.remove(FlowContants.PROCESS_EDITION);//不要升版了
        variables.remove(FlowVariableContants.PROCESS_EDITION);//不要升版了
        taskService.complete(taskId, variables);
    }
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TempFlowCompleteService.java
@@ -37,7 +37,7 @@
            throw new ServiceException("请指定流程下一步处理人");
        }
        String operateResult = this.getApproveResult(variables);
        variables.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
        variables.put(FlowVariableContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
        if(task.getTaskDefinitionKey().equals("appendProgrammingTask") ) {//编制节点
            //记录实际编程员
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
@@ -77,9 +77,9 @@
            taskService.addComment(taskId, processInstanceId, comment);
        }
        variables.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
        variables.put(FlowVariableContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
        variables.remove(FlowContants.PROCESS_EDITION);//不要升版了
        variables.remove(FlowVariableContants.PROCESS_EDITION);//不要升版了
        if("confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
            variables.put(FlowContants.CURE_PROGRAM_USEABLE,operateResult);
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNode.java
@@ -89,9 +89,9 @@
    private String machineCode;
    /**
     * æ–‡ä»¶ç±»åž‹ï¼Œåªæœ‰
     * æœºåºŠç»„字典吗
     */
    //private String fileCategory;
    private String machineGroupCode;
    /**
     * å·¥åºï¼Œå¦‚“精铣”
     */
@@ -154,6 +154,11 @@
    private String programNo;
    /**
     * åŽ†å²åºåˆ—å·
     */
    private Long hisSerial;
    /**
     * æµç¨‹ç¨‹åºæ–‡ä»¶id,只有程序文件(70)类型的节点有此值
     */
    private Long flowProgramFileId;
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNodeHis.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,149 @@
package org.springblade.mdm.program.entity;
import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import org.springblade.core.mp.base.BizEntity;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import java.util.Date;
@Setter
@Getter
@TableName("mdm_nc_node_his")
public class NcNodeHis extends BizEntity {
    private String name;
    private Long parentId;
    /**
     * ä¸Šçº§çˆ¶id集合
     */
    private String parentIds;
    /**
     * è®¾å¤‡ç¼–号
     */
    private String machineCode;
    /**
     * æœºåºŠç»„字典吗
     */
    private String machineGroupCode;
    /**
     * å·¥åºï¼Œå¦‚“精铣”
     */
    private String processName;
    /**
     * å·¥åºç‰ˆæ¬¡
     */
    private String processEdition;
    /**
     * å·¥è‰ºç‰ˆæ¬¡
     */
    private String craftEdition;
    /**
     * æ˜¯å¦æœ€æ–°ç‰ˆæ¬¡ï¼Œ1:最新版次;0:历史版次
     */
    private Integer isLastEdition = 1;
    /**
     * é›¶ç»„件号/图号
     */
    private String drawingNo;
    /**
     * å›¾å·ç‰ˆæ¬¡
     */
    private String drawingNoEdition;
    /**
     * æ˜¯å¦å›ºåŒ–
     */
    private Integer isCured = 0;
    /**
     * è¿‡æœŸæ—¥æœŸ
     */
    private Date expireDate;
    /**
     * æ˜¯å¦é”å®š
     */
    private Integer isLocked = 0;
    /**
     * èŠ‚ç‚¹ç±»åž‹ï¼šå­—å…¸
      */
    private String nodeType;
    /**
     * ç¨‹åºæ–‡ä»¶èŠ‚ç‚¹çš„æ•°æ®
     */
    private String processNo;
    /**
     * äº§å“åž‹å·
     */
    private String productModel;
    /**
     * ç¨‹åºç¼–号(程序包名节点需要)
     */
    private String programNo;
    /**
     * åŽ†å²åºåˆ—å·
     */
    private Long hisSerial;
    /**
     * æµç¨‹ç¨‹åºæ–‡ä»¶id,只有程序文件(70)类型的节点有此值
     */
    private Long flowProgramFileId;
    /**
     * å®¡æ‰¹æ—¶çš„æµç¨‹å®žä¾‹id,只有程序包节点有这个字段值
     */
    private String processInstanceId;
    /**
     * åç¦»å•号
     */
    private String deviation;
    /**
     * ç‰ˆæœ¬å·ï¼Œæ›´æ–°ä¸€æ¬¡ï¼ˆå…¥å‡ç‰ˆï¼Œdnc导入),就会+1
     */
    private Integer versionNumber = 1;
    transient FlowProgramFile flowProgramFile;
    /**
     * æ˜¯å¦æ˜¯åç¦»ç¨‹åº
     * @return æ˜¯å¦åç¦»
     */
    public boolean isDeviationProgram(){
        return StringUtils.isNotBlank(this.deviation);
    }
    /**
     * æ˜¯å¦åœ¨æœ‰æ•ˆæœŸå†…
     * @return æ˜¯å¦
     */
    public boolean withinValidityPeriod() {
        if(expireDate == null){
            return true;
        }
        return expireDate.getTime() > System.currentTimeMillis();
    }
    /**
     * æ˜¯å¦å·²ç»å›ºåŒ–
     * @return æ˜¯å¦
     */
    public boolean hasCured() {
        return this.isCured != null && this.isCured == 1;
    }
    /**
     * æ˜¯å¦å·²é”å®š
     * @return æ˜¯å¦
     */
    public boolean hasLocked() {
        return this.isLocked != null && this.isLocked == NcNode.LOCKED;
    }
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeHisMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package org.springblade.mdm.program.mapper;
import org.apache.ibatis.annotations.Param;
import org.springblade.core.mp.mapper.BladeMapper;
import org.springblade.mdm.program.entity.NcNodeHis;
import java.util.List;
public interface NcNodeHisMapper extends BladeMapper<NcNodeHis> {
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeHisMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
<?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.NcNodeHisMapper">
    <resultMap id="BaseResultMap" type="org.springblade.mdm.program.entity.NcNodeHis">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="parent_id" property="parentId"/>
        <result column="node_type" property="nodeType"/>
        <result column="status" property="status"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="is_deleted" property="isDeleted"/>
    </resultMap>
    <sql id="all_columns">id,tenant_id,name,parent_id,parent_ids,node_type,status,create_dept,is_deleted,create_time,create_user,update_time,update_user</sql>
    <sql id="all_columns_n">n.id,n.tenant_id,n.name,n.parent_id,n.parent_ids,n.node_type,n.version_number,n.description,n.remark,n.drawing_no,n.drawing_no_edition,n.craft_edition,n.is_last_edition,n.is_locked,n.process_edition,n.process_no,n.product_model,n.is_cured,n.process_instance_id,n.status,n.create_dept,n.is_deleted,n.create_time,n.create_user,n.update_time,n.update_user</sql>
</mapper>
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeHisService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package org.springblade.mdm.program.service;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.program.entity.NcNodeHis;
import org.springblade.mdm.program.mapper.NcNodeHisMapper;
import org.springblade.mdm.program.vo.NcNodeQueryVO;
import org.springblade.mdm.program.vo.NcNodeVO;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
/**
 * ç¨‹åºèŠ‚ç‚¹
 *
 * @author yangys
 */
@Slf4j
@Service
@AllArgsConstructor
public class NcNodeHisService extends BizServiceImpl<NcNodeHisMapper, NcNodeHis> {
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ConfirmTablePrintService.java
@@ -19,6 +19,7 @@
import org.springblade.mdm.commons.contants.DictBizConstants;
import org.springblade.mdm.commons.service.ParamService;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.constants.FlowVariableContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.entity.TaskDispatch;
import org.springblade.mdm.flow.service.ApproveInfoQueryService;
@@ -167,7 +168,7 @@
        //固化里路村官
        HistoricProcessInstanceQuery query = this.historyService.createHistoricProcessInstanceQuery().finished().processDefinitionKey(FlowContants.CURE_PROCESS_KEY).includeProcessVariables();
            //.finished() // åªæŸ¥è¯¢å·²å®Œæˆçš„æµç¨‹.unfinished() // æŸ¥è¯¢æœªå®Œæˆçš„æµç¨‹
        query.variableNotExists(FlowContants.EXCEPTION);//非异常流程
        query.variableNotExists(FlowVariableContants.EXCEPTION);//非异常流程
        if(createTimeBegin!=null) {
            query.startedAfter(DateUtil.toDate(createTimeBegin));
        }
@@ -176,7 +177,7 @@
        }
        if(Func.isNotEmpty(drawingNo)) {
            String likeVal = "%" + drawingNo + "%";
            query.variableValueLike(FlowContants.DRAWING_NO,likeVal);
            query.variableValueLike(FlowVariableContants.DRAWING_NO,likeVal);
        }
blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/CuredProgramStatService.java
@@ -14,6 +14,7 @@
import org.springblade.mdm.basesetting.producedivision.service.MdmDeptService;
import org.springblade.mdm.commons.service.UserCommonService;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.constants.FlowVariableContants;
import org.springblade.mdm.flow.service.FlowCommonService;
import org.springblade.mdm.flow.service.FlowProgramProperties;
import org.springblade.mdm.statreport.vo.CuredProgramQueryVO;
@@ -46,7 +47,7 @@
        //固化里路村官
        HistoricProcessInstanceQuery query = this.historyService.createHistoricProcessInstanceQuery().finished().processDefinitionKey(FlowContants.CURE_PROCESS_KEY).includeProcessVariables();
            //.finished() // åªæŸ¥è¯¢å·²å®Œæˆçš„æµç¨‹.unfinished() // æŸ¥è¯¢æœªå®Œæˆçš„æµç¨‹
        query.variableNotExists(FlowContants.EXCEPTION);//非异常流程
        query.variableNotExists(FlowVariableContants.EXCEPTION);//非异常流程
        if(queryVO.getEndMonth()!=null){
            queryVO.setEndTimeBegin(queryVO.getEndMonth().withDayOfMonth(1));
            queryVO.setEndTimeEnd(queryVO.getEndMonth().with(TemporalAdjusters.lastDayOfMonth()));
@@ -81,13 +82,13 @@
            if(!machines.isEmpty()) {
                query.or();
                for(Machine machine : machines){
                    query.variableValueEquals(FlowContants.MACHINE_CODE, machine.getCode());
                    query.variableValueEquals(FlowVariableContants.MACHINE_CODE, machine.getCode());
                }
                query.endOr();
            }else{
                //没找到机床,就应该查不到数据
                query.variableNotExists(FlowContants.MACHINE_CODE);
                query.variableNotExists(FlowVariableContants.MACHINE_CODE);
            }
        }
        query.orderByProcessInstanceEndTime().desc(); // æŒ‰ç»“束时间降序排列
blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/NewProgrammingStatService.java
@@ -20,6 +20,7 @@
import org.springblade.mdm.commons.service.ParamService;
import org.springblade.mdm.commons.service.UserCommonService;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.constants.FlowVariableContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.entity.TaskDispatch;
import org.springblade.mdm.flow.service.FlowCommonService;
@@ -61,8 +62,8 @@
        //固化里路村官
        HistoricProcessInstanceQuery query = this.historyService.createHistoricProcessInstanceQuery().finished().processDefinitionKey(FlowContants.TRY_PROCESS_KEY).includeProcessVariables();
            //.finished() // åªæŸ¥è¯¢å·²å®Œæˆçš„æµç¨‹.unfinished() // æŸ¥è¯¢æœªå®Œæˆçš„æµç¨‹
        query.variableNotExists(FlowContants.EXCEPTION);//非异常流程
        query.variableValueEquals(FlowContants.HAS_CURED_PROGRAM,FlowContants.N);//无固化程序
        query.variableNotExists(FlowVariableContants.EXCEPTION);//非异常流程
        query.variableValueEquals(FlowVariableContants.HAS_CURED_PROGRAM,FlowContants.N);//无固化程序
        if(queryVO.getEndMonth()!=null){
            queryVO.setEndTimeBegin(queryVO.getEndMonth().withDayOfMonth(1));
            queryVO.setEndTimeEnd(queryVO.getEndMonth().with(TemporalAdjusters.lastDayOfMonth()));
@@ -97,13 +98,13 @@
            if(!machines.isEmpty()) {
                query.or();
                for(Machine machine : machines){
                    query.variableValueEquals(FlowContants.MACHINE_CODE, machine.getCode());
                    query.variableValueEquals(FlowVariableContants.MACHINE_CODE, machine.getCode());
                }
                query.endOr();
            }else{
                //没找到机床,就应该查不到数据
                query.variableNotExists(FlowContants.MACHINE_CODE);
                query.variableNotExists(FlowVariableContants.MACHINE_CODE);
            }
        }
        query.orderByProcessInstanceEndTime().desc(); // æŒ‰ç»“束时间降序排列