package org.springblade.mdm.program.service; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.mdm.basesetting.machine.service.MachineService; import org.springblade.mdm.commons.service.ParamService; import org.springblade.mdm.flow.vo.ProgramOnMachineExcel; import org.springblade.mdm.program.entity.ProgramOnMachine; import org.springblade.mdm.program.mapper.ProgramOnMachineMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.*; /** * DNC回传文件处理服务 * * @author yangys */ @Slf4j @Service @AllArgsConstructor public class ProgramOnMachineService extends BizServiceImpl { @Transactional(rollbackFor = Exception.class) public int importData(MultipartFile file) { List excelList = ExcelUtil.read(file, ProgramOnMachineExcel.class); List list = excelList.stream().map(excel -> { ProgramOnMachine progMachine = new ProgramOnMachine(); BeanUtil.copyProperties(excel, progMachine); return progMachine; }).toList(); batchSaveData(list); return list.size(); } void batchSaveData(List list) { for (ProgramOnMachine progOnMachine : list) { if(!existsByProcessInstanceId(progOnMachine.getProcessInstanceId())){ save(progOnMachine); } } } boolean existsByProcessInstanceId(String processInstanceId){ return this.lambdaQuery().eq(ProgramOnMachine::getProcessInstanceId,processInstanceId).count() > 0; } }