yangys
2025-07-08 ccb7770bd95e4730f128b975b36c045ec611672f
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProcessProgRefService.java
@@ -25,6 +25,7 @@
 */
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;
@@ -36,6 +37,8 @@
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;
@@ -68,7 +71,7 @@
@Service
@AllArgsConstructor
public class ProcessProgRefService extends BizServiceImpl<ProcessProgRefMapper, ProcessProgRef> {
   private final FlowCommonService flowCommonService;
   /**
    * 查询现有固化的程序,暂定条件:零组件号相同,且是同一机床组
    * @param processInstanceId 流程实例id
@@ -81,17 +84,38 @@
         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);
   }
   /**
    * 查询流程关联的程序
    * @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);
   }
}