yangys
2025-06-21 30cb19306570b0838bbc5ec7e01377f3d17b4281
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package org.springblade.mdm.flow.service;
 
import org.flowable.engine.IdentityService;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.runtime.ProcessInstance;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.mdm.flow.excution.AutoAssignUsersService;
import org.springblade.mdm.flow.vo.TaskAssignVO;
import org.springblade.mdm.program.entity.NcProgram;
import org.springblade.mdm.program.service.NcProgramService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * 固化流程服务
 */
@Service
public class CureFlowService {
 
    @Autowired
    private RuntimeService runtimeService;
    @Autowired
    private AutoAssignUsersService autoAssignUsersService;
    @Autowired
    private IdentityService identityService;
 
    @Autowired
    private NcProgramService ncProgramService;
    /**
     * 固化流程的key
     */
    private static final String PROCESS_KEY = "program-cure";
 
    public void start(long programId){
        Map<String, Object> vars = new HashMap<>();
        /*
        Map<String,Object> preAssignee = autoAssignUsersService.autoAssignUsers(startVO.getProducePlanId());
        Map<String, Object> vars = new HashMap<>(preAssignee);
 
        vars.put("machineCode",startVO.getMachineCode());
        vars.put("machineMode",startVO.getMachineMode());
 
        vars.put("processNo",startVO.getProcessNo());
        vars.put("processName",startVO.getProcessName());
        vars.put("processEdition",startVO.getProcessEdition());
 
        vars.put("craftEdition",startVO.getCraftEdition());
        vars.put("planStartTime",startVO.getPlanStartTime());
        vars.put("drawingNo",startVO.getDrawingNo());
        vars.put("drawingNoEdition",startVO.getDrawingNoEdition());
        vars.put("planLockDays",startVO.getPlanLockDays());
 
        //零组件代码
        String partNo = generatePartNo(startVO);
        vars.put("partNo",partNo);
 
        NcProgram curedNcProgram = ncProgramService.getCuredNcProgram(partNo,startVO.getMachineCode());
        vars.put("curedNcProgram",curedNcProgram);
 
        //设置是否有固化程序标记
        vars.put("hasCuredProgram",curedNcProgram != null ? "Y":"N");
        */
        String businessKey = "0";//业务表key
 
        identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//设置流程发起人
        ProcessInstance pinst = runtimeService.startProcessInstanceByKey(PROCESS_KEY,businessKey,vars);
 
        int a=1;
        //log.info()
    }
 
    /**
     * 生成零组件编号
     * 图号、图号版次、工序号、工序名称、工艺版次、工序版次 组合起来获得零组件号
     * @param startVO
     * @return
     */
    String generatePartNo(TaskAssignVO startVO){
        //TODO 这个格式未确定,需要确认
        return String.format("%s-%s-%s-%s-%s-%s",
            startVO.getDrawingNo(),
            startVO.getDrawingNoEdition(),
            startVO.getProcessNo(),
            startVO.getProcessName(),
            startVO.getCraftEdition(),
            startVO.getProcessEdition());
    }
}