yangys
2025-09-25 31ecdb8c700529a59dd762f0c47f0ed9c66d5092
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramOnMachineService.java
@@ -10,10 +10,13 @@
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.mdm.flow.vo.ProgramOnMachineExcel;
import org.springblade.mdm.gkw.task.entity.MachineBackTask;
import org.springblade.mdm.gkw.task.service.MachineBackTaskService;
import org.springblade.mdm.program.entity.ProgramOnMachine;
import org.springblade.mdm.program.mapper.ProgramOnMachineMapper;
import org.springblade.mdm.program.vo.ProgramOnMachineRecordQueryVO;
import org.springblade.mdm.program.vo.ProgramOnMachineVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -21,14 +24,15 @@
import java.util.*;
/**
 * 现场编程记录处理忘
 * 现场编程记录处理服务
 *
 * @author yangys
 */
@Slf4j
@Service
@AllArgsConstructor
public class ProgramOnMachineService extends BizServiceImpl<ProgramOnMachineMapper, ProgramOnMachine> {
   @Autowired
   private MachineBackTaskService machineBackTaskService;
   @Transactional(rollbackFor = Exception.class)
   public int importData(MultipartFile file) {
@@ -40,21 +44,44 @@
         return progMachine;
      }).toList();
      batchSaveData(list);
      List<ProgramOnMachine> savedList = batchSaveData(list);
      machineBackTaskService.saveBatch(parseMachineBackTask(savedList));
      return list.size();
   }
   /**
    * 将数据转换为机床回传任务
    * @param list 现场编制任务
    * @return 回传任务列表
    */
   List<MachineBackTask> parseMachineBackTask(List<ProgramOnMachine> list){
      List<MachineBackTask> tasks = new ArrayList<>();
      for(ProgramOnMachine m : list) {
         MachineBackTask task = new MachineBackTask();
         task.setProgramName(m.getDrawingNo()+"-"+m.getProcessNo()+"-"+m.getProcessEdition());
         task.setMachineCode(m.getMachineCode());
         task.setDeviation(m.getDeviation());
         task.setTaskType(MachineBackTask.TASK_TYPE_ON_MACHINE);
         task.setSegCount(0);//现场编制为0
         tasks.add(task);
      }
      return tasks;
   }
   /**
    * 批量保存
    * @param list
    */
   void batchSaveData(List<ProgramOnMachine> list) {
   List<ProgramOnMachine> batchSaveData(List<ProgramOnMachine> list) {
      List<ProgramOnMachine> savedList = new ArrayList<>();
      for (ProgramOnMachine progOnMachine : list) {
         if(!existsByProcessInstanceId(progOnMachine.getProcessInstanceId())){
            save(progOnMachine);
            savedList.add(progOnMachine);
         }
      }
      return savedList;
   }
   /**