| | |
| | | package org.springblade.mdm.flow.excution.dispatch; |
| | | |
| | | import com.alibaba.excel.util.StringUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.io.FilenameUtils; |
| | | import org.springblade.mdm.flow.constants.FlowContants; |
| | | import org.springblade.mdm.flow.entity.FlowProgramFile; |
| | | import org.springblade.mdm.flow.service.ApproveRecordService; |
| | | import org.springblade.mdm.flow.service.FlowProgramFileService; |
| | | import org.springblade.mdm.flow.service.FlowProgramProperties; |
| | | import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO; |
| | | import org.springblade.mdm.program.entity.NcNode; |
| | | import org.springblade.mdm.program.entity.NcProgramApproved; |
| | | import org.springblade.mdm.program.service.NcNodeAutoCreateService; |
| | | import org.springblade.mdm.program.service.NcNodeService; |
| | | import org.springblade.mdm.program.service.NcProgramApprovedService; |
| | | import org.springblade.mdm.utils.EntityUtil; |
| | | import org.springblade.mdm.utils.ProgramFileNameParser; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | */ |
| | | public void handleData(FlowProgramProperties props) { |
| | | // 执行业务逻辑 |
| | | String instId = props.getProcessInstanceId(); |
| | | NcNode packageNode; |
| | | if(FlowContants.Y.equals(props.getHasCuredProgram())){ |
| | | //有固化 |
| | | packageNode = ncNodeService.getById(props.getCuredNodeId()); |
| | | |
| | | if(FlowContants.N.equals(props.getCureProgramUseable())) { |
| | | //程序不可用 |
| | | //原来的固化节点锁定 |
| | | //程序不可用,原来的固化节点锁定 |
| | | packageNode.lock(); |
| | | ncNodeService.updateById(packageNode); |
| | | |
| | | Integer newVersion = packageNode.genNewVersionNumber(); |
| | | //TODO 版本号根据零组件号+工序号,工序版次,机床组 直接查询数量,+1获取 |
| | | packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props,newVersion); |
| | | }else{ |
| | | //可用,升版(修改其工序版本),原来的节点清除 |
| | | //可用,升版(修改其工序版次),原来的节点清除 |
| | | moveToNewProcessEdition(packageNode,props); |
| | | } |
| | | }else{ |
| | |
| | | } |
| | | |
| | | addApproveTable(packageNode,props); |
| | | //updateApproveRecordNodeId(instId, packageNode.getId()); |
| | | |
| | | log.info("普通流程已完成in DispatchFinishListener"); |
| | | } |
| | | |
| | |
| | | packageNode.setProcessEdition(tempProps.getProcessEdition()); |
| | | packageNode.setParentId(machineNode.getParentId()); |
| | | packageNode.setParentIds(machineNode.getParentIds()); |
| | | packageNode.setName(tempProps.getDrawingNo()+"-"+tempProps.getProcessNo()+"-"+tempProps.getProcessEdition()); |
| | | this.ncNodeService.updateById(packageNode); |
| | | |
| | | //移动程序节点 |
| | | List<NcNode> programNodes = ncNodeService.getProgramFilesByPackageId(packageNode.getId()); |
| | | for(NcNode programNode : programNodes){ |
| | | |
| | | programNode.setName(buildNewFilename(programNode.getName(),tempProps.getProcessEdition()));//名称修改,工序版次部分 |
| | | programNode.setParentIds(packageNode.getParentIds()+","+packageNode.getId()); |
| | | programNode.setProcessEdition(tempProps.getProcessEdition());//修改工序版次 |
| | | programNode.setVersionNumber(packageNode.getVersionNumber()); |
| | | } |
| | | ncNodeService.updateBatchById(programNodes); |
| | | |
| | | |
| | | } |
| | | |
| | | String buildNewFilename(String filename,String newProcessEdition){ |
| | | ProgramNameVO pnameVO = ProgramFileNameParser.parseProgramName(filename); |
| | | String ext = FilenameUtils.getExtension(filename); |
| | | String name= pnameVO.getDrawingNo()+"-"+pnameVO.getProcessNo()+"-"+newProcessEdition+"-"+pnameVO.getSegmentCount()+"-"+pnameVO.getSegmentNo(); |
| | | if(StringUtils.isNotBlank(ext)){ |
| | | name += "."+ext; |
| | | } |
| | | return name; |
| | | } |
| | | |
| | | /** |
| | | * 保存审批完成的记录 |
| | |
| | | approved.setProgramName(packageNode.getName()); |
| | | approved.setNcNodeId(packageNode.getId());//程序包节点id |
| | | approved.setTitle(props.getTitle()); |
| | | approved.setProgrammerId(props.getProgrammerId()); |
| | | approved.setProgrammerId(props.getActProgrammerId()); |
| | | approved.setProcessInstanceId(props.getProcessInstanceId()); |
| | | approvedService.save(approved); |
| | | |