|
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<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();
|
}
|
|
/**
|
* 批量保存
|
* @param list
|
*/
|
void batchSaveData(List<ProgramOnMachine> 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<ProgramOnMachineVO> pageQuery(ProgramOnMachineRecordQueryVO queryVO) {
|
return baseMapper.pageQuery(Condition.getPage(queryVO),queryVO);//IPage<ProgramOnMachineExcel>,queryVO
|
}
|
}
|