|
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<ProgramOnMachineMapper, ProgramOnMachine> {
|
|
@Transactional(rollbackFor = Exception.class)
|
public int importData(MultipartFile file) {
|
List<ProgramOnMachineExcel> excelList = ExcelUtil.read(file, ProgramOnMachineExcel.class);
|
|
List<ProgramOnMachine> list = excelList.stream().map(excel -> {
|
ProgramOnMachine progMachine = new ProgramOnMachine();
|
BeanUtil.copyProperties(excel, progMachine);
|
return progMachine;
|
}).toList();
|
|
batchSaveData(list);
|
|
return list.size();
|
}
|
|
void batchSaveData(List<ProgramOnMachine> list) {
|
for (ProgramOnMachine progOnMachine : list) {
|
if(!existsByProcessInstanceId(progOnMachine.getProcessInstanceId())){
|
save(progOnMachine);
|
}
|
}
|
}
|
|
boolean existsByProcessInstanceId(String processInstanceId){
|
return this.lambdaQuery().eq(ProgramOnMachine::getProcessInstanceId,processInstanceId).count() > 0;
|
}
|
}
|