| | |
| | | |
| | | /** |
| | | * 启动派工流程 |
| | | * @param startVO |
| | | * @param startVO 表单数据 |
| | | * @return 流程实例id |
| | | */ |
| | | @Transactional |
| | | public void start(TaskAssignVO startVO){ |
| | | public String start(TaskAssignVO startVO){ |
| | | |
| | | Map<String,Object> preAssignee = autoAssignUsersService.autoAssignUsers(startVO); |
| | | Map<String, Object> vars = new HashMap<>(preAssignee); |
| | |
| | | vars.put("planLockDays",startVO.getPlanLockDays()); |
| | | vars.put(FlowContants.PRODUCT_MODEL,startVO.getProductModel()); |
| | | |
| | | if(StringUtils.isNotBlank(startVO.getDeviation())) { |
| | | vars.put(FlowContants.DEVIATION, startVO.getDeviation());//偏离单 |
| | | } |
| | | String programPkgName = NcNodeService.genProgramName(startVO.getDrawingNo(),startVO.getProcessNo()); |
| | | |
| | | NcNode programPkg = ncNodeService.getLastEditionCuredProgramPackage(programPkgName); |
| | | vars.put(FlowContants.PROGRAM_PACKAGE_NAME,programPkgName); |
| | | NcNode curedProgramPackage = ncNodeService.getLastEditionCuredProgramPackage(programPkgName); |
| | | //设置是否有固化程序标记 |
| | | vars.put(FlowContants.HAS_CURED_PROGRAM,programPkg != null ? FlowContants.Y:FlowContants.N); |
| | | vars.put(FlowContants.HAS_CURED_PROGRAM,curedProgramPackage != null ? FlowContants.Y:FlowContants.N); |
| | | //工序版次是否一致,是否在有效期内 |
| | | if(programPkg != null){ |
| | | vars.put(FlowContants.IS_PROCESS_EDITION_SAME, StringUtils.equals(programPkg.getProcessEdition(),startVO.getProcessEdition()) ? "Y":"N"); |
| | | vars.put(FlowContants.VALIDITY_PERIOD, programPkg.withinValidityPeriod() ? FlowContants.Y:FlowContants.N); |
| | | if(curedProgramPackage != null){ |
| | | vars.put(FlowContants.CURED_NODE_ID,curedProgramPackage.getId()); |
| | | vars.put(FlowContants.IS_PROCESS_EDITION_SAME, StringUtils.equals(curedProgramPackage.getProcessEdition(),startVO.getProcessEdition()) ? "Y":"N"); |
| | | vars.put(FlowContants.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); |
| | |
| | | identityService.setAuthenticatedUserId(String.valueOf(AuthUtil.getUserId()));//设置流程发起人 |
| | | ProcessInstance inst = runtimeService.startProcessInstanceByKey(FlowContants.TRY_PROCESS_KEY,businessKey,vars); |
| | | |
| | | if(programPkg != null) {//存在已固化程序,复制原来的程序文件。创建节点仍然在编程人员提交以后 |
| | | //programPkg.setIsLastEdition(0); |
| | | //this.ncNodeService.updateById(programPkg); |
| | | |
| | | //cloneNodes(programPkg,inst.getProcessInstanceId()); |
| | | copyFlowProgramFiles(programPkg.getProcessInstanceId(),inst.getProcessInstanceId()); |
| | | if(curedProgramPackage != null) {//存在已固化程序,复制原来的程序文件。创建节点仍然在编程人员提交以后 |
| | | copyFlowProgramFiles(curedProgramPackage.getProcessInstanceId(),inst.getProcessInstanceId()); |
| | | } |
| | | |
| | | return inst.getProcessInstanceId(); |
| | | } |
| | | |
| | | /** |