package com.aps.core.service.impl;
|
|
import cn.hutool.core.util.IdUtil;
|
import com.aps.common.core.utils.DateUtils;
|
import com.aps.common.security.utils.SecurityUtils;
|
import com.aps.core.domain.ApsGasPipelineMo;
|
import com.aps.core.mapper.ApsGasPipelineMoMapper;
|
import com.aps.core.service.IApsGasPipelineMoService;
|
import io.micrometer.common.util.StringUtils;
|
import lombok.SneakyThrows;
|
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.WorkbookFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.math.BigDecimal;
|
import java.sql.Timestamp;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 管路手工气体工单数据Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2025-05-19
|
*/
|
@Service
|
public class ApsGasPipelineMoServiceImpl implements IApsGasPipelineMoService {
|
@Autowired
|
private ApsGasPipelineMoMapper apsGasPipelineMoMapper;
|
|
/**
|
* 查询管路手工气体工单数据
|
*
|
* @param id 管路手工气体工单数据主键
|
* @return 管路手工气体工单数据
|
*/
|
@Override
|
public ApsGasPipelineMo selectApsGasPipelineMoById(Long id) {
|
return apsGasPipelineMoMapper.selectApsGasPipelineMoById(id);
|
}
|
|
/**
|
* 查询管路手工气体工单数据列表
|
*
|
* @param apsGasPipelineMo 管路手工气体工单数据
|
* @return 管路手工气体工单数据
|
*/
|
@Override
|
public List<ApsGasPipelineMo> selectApsGasPipelineMoList(ApsGasPipelineMo apsGasPipelineMo) {
|
return apsGasPipelineMoMapper.selectApsGasPipelineMoList(apsGasPipelineMo);
|
}
|
|
/**
|
* 新增管路手工气体工单数据
|
*
|
* @param apsGasPipelineMo 管路手工气体工单数据
|
* @return 结果
|
*/
|
@Override
|
public int insertApsGasPipelineMo(ApsGasPipelineMo apsGasPipelineMo) {
|
apsGasPipelineMo.setCreateTime(DateUtils.getNowDate());
|
apsGasPipelineMo.setId(IdUtil.getSnowflakeNextId());
|
apsGasPipelineMo.setCreateBy(SecurityUtils.getUsername());
|
return apsGasPipelineMoMapper.insertApsGasPipelineMo(apsGasPipelineMo);
|
}
|
|
/**
|
* 修改管路手工气体工单数据
|
*
|
* @param apsGasPipelineMo 管路手工气体工单数据
|
* @return 结果
|
*/
|
@Override
|
public int updateApsGasPipelineMo(ApsGasPipelineMo apsGasPipelineMo) {
|
apsGasPipelineMo.setUpdateTime(DateUtils.getNowDate());
|
return apsGasPipelineMoMapper.updateApsGasPipelineMo(apsGasPipelineMo);
|
}
|
|
/**
|
* 批量删除管路手工气体工单数据
|
*
|
* @param ids 需要删除的管路手工气体工单数据主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteApsGasPipelineMoByIds(Long[] ids) {
|
return apsGasPipelineMoMapper.deleteApsGasPipelineMoByIds(ids);
|
}
|
|
/**
|
* 删除管路手工气体工单数据信息
|
*
|
* @param id 管路手工气体工单数据主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteApsGasPipelineMoById(Long id) {
|
return apsGasPipelineMoMapper.deleteApsGasPipelineMoById(id);
|
}
|
|
@SneakyThrows
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public int batchInsertGasPipelineMo(MultipartFile file) {
|
Workbook workbook = WorkbookFactory.create(file.getInputStream());
|
|
Sheet sheet = workbook.getSheetAt(0);
|
int rows = sheet.getLastRowNum();
|
if (rows > 0) {
|
List<ApsGasPipelineMo> list = new ArrayList<>();
|
|
/*数据列从1开始*/
|
for (int i = 1; i <= rows; i++) {
|
Row row = sheet.getRow(i);
|
if (row.getCell(0) == null){
|
continue;
|
}
|
String mo = row.getCell(0).getStringCellValue();
|
if (StringUtils.isEmpty(mo)){
|
continue;
|
}
|
String factory = row.getCell(1).getStringCellValue();
|
String materialNum = row.getCell(2).getStringCellValue();
|
double quantity = row.getCell(3).getNumericCellValue();
|
Date planEnd = row.getCell(4).getDateCellValue();
|
if (StringUtils.isNotBlank(factory) &&
|
StringUtils.isNotBlank(materialNum) &&
|
planEnd != null) {
|
ApsGasPipelineMo apsGasPipelineMo = new ApsGasPipelineMo();
|
apsGasPipelineMo.setMo(mo);
|
apsGasPipelineMo.setId(IdUtil.getSnowflakeNextId());
|
apsGasPipelineMo.setFactory(factory);
|
apsGasPipelineMo.setCreateBy(SecurityUtils.getUsername());
|
apsGasPipelineMo.setCreateTime(DateUtils.getNowDate());
|
apsGasPipelineMo.setQuantity(new BigDecimal(quantity));
|
apsGasPipelineMo.setPlanEnd(new Timestamp(planEnd.getTime()));
|
list.add(apsGasPipelineMo);
|
}
|
}
|
if (!list.isEmpty()) {
|
apsGasPipelineMoMapper.deleteAll();
|
apsGasPipelineMoMapper.insert(list);
|
}
|
return list.size();
|
}
|
return 0;
|
|
}
|
}
|