| | |
| | | */ |
| | | package org.springblade.mdm.program.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import lombok.AllArgsConstructor; |
| | |
| | | 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.flow.excution.StartDispatcher; |
| | | import org.springblade.mdm.flow.service.FlowCommonService; |
| | | import org.springblade.mdm.program.entity.NcNode; |
| | | import org.springblade.mdm.program.entity.NcProgram; |
| | | import org.springblade.mdm.program.entity.ProcessProgRef; |
| | |
| | | @Service |
| | | @AllArgsConstructor |
| | | public class ProcessProgRefService extends BizServiceImpl<ProcessProgRefMapper, ProcessProgRef> { |
| | | |
| | | private final FlowCommonService flowCommonService; |
| | | /** |
| | | * 查询现有固化的程序,暂定条件:零组件号相同,且是同一机床组 |
| | | * @param processInstanceId 流程实例id |
| | |
| | | return; |
| | | } |
| | | |
| | | String processDefinationKey = flowCommonService.getDefinitionKey(processInstanceId); |
| | | this.lambdaUpdate().eq(ProcessProgRef::getProcessInstanceId, processInstanceId).remove(); |
| | | List<ProcessProgRef> entities = new ArrayList<>(); |
| | | for (Long programId : programIds) { |
| | | ProcessProgRef entity = new ProcessProgRef(); |
| | | entity.setProcessInstanceId(processInstanceId); |
| | | entity.setNcProgramId(programId); |
| | | |
| | | entity.setProcessDefinitionKey(processDefinationKey); |
| | | entities.add(entity); |
| | | } |
| | | this.saveBatch(entities); |
| | | } |
| | | |
| | | /** |
| | | * 查询流程关联的程序i二标 |
| | | * 查询流程关联的程序 |
| | | * @param processInstanceId |
| | | * @return |
| | | */ |
| | | public List<NcProgramVO> listByProcess(String processInstanceId) { |
| | | return this.getBaseMapper().listByProcess(processInstanceId); |
| | | } |
| | | |
| | | /** |
| | | *获取最后一调任务分派的数据,根据程序id |
| | | * @param ncProgramId 数控程序id |
| | | */ |
| | | public ProcessProgRef lastDispatchDataByNcProgramId(Long ncProgramId) { |
| | | LambdaQueryWrapper<ProcessProgRef> query = Wrappers.lambdaQuery(); |
| | | |
| | | query.eq(ProcessProgRef::getNcProgramId, ncProgramId).eq(ProcessProgRef::getProcessDefinitionKey, StartDispatcher.PROCESS_KEY).orderByDesc(ProcessProgRef::getCreateTime).last("LIMIT 1");; |
| | | |
| | | List<ProcessProgRef> list = this.list(query); |
| | | return list.isEmpty() ? null : list.get(0); |
| | | } |
| | | } |