package org.springblade.mdm.program.service; import com.baomidou.mybatisplus.core.metadata.IPage; 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.mp.support.Condition; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.mdm.flow.vo.ProgramOnMachineExcel; 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.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.*; /** * 现场编程记录处理忘 * * @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(); } /** * 批量保存 * @param list */ void batchSaveData(List list) { for (ProgramOnMachine progOnMachine : list) { if(!existsByProcessInstanceId(progOnMachine.getProcessInstanceId())){ save(progOnMachine); } } } /** * 根据流程实例id判定是否存在 * @param processInstanceId 流程实例id * @return 是否存在 */ boolean existsByProcessInstanceId(String processInstanceId){ return this.lambdaQuery().eq(ProgramOnMachine::getProcessInstanceId,processInstanceId).count() > 0; } /** * 现场编程导入记录查询 * @param queryVO 查询树据 * @return 分页树据 */ public IPage pageQuery(ProgramOnMachineRecordQueryVO queryVO) { return baseMapper.pageQuery(Condition.getPage(queryVO),queryVO);//IPage,queryVO } }