package com.aps.core.service.impl; import java.math.BigDecimal; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; import java.util.List; 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.ApsGasPipelinePrediction; import com.aps.core.domain.ApsMaterialProductGroupManagement; import com.aps.core.mapper.ApsMaterialProductGroupManagementMapper; import com.aps.core.service.IApsMaterialProductGroupManagementService; 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.web.multipart.MultipartFile; /** * 物料产品组数据管理Service业务层处理 * * @author ruoyi * @date 2025-05-19 */ @Service public class ApsMaterialProductGroupManagementServiceImpl implements IApsMaterialProductGroupManagementService { @Autowired private ApsMaterialProductGroupManagementMapper apsMaterialProductGroupManagementMapper; /** * 查询物料产品组数据管理 * * @param id 物料产品组数据管理主键 * @return 物料产品组数据管理 */ @Override public ApsMaterialProductGroupManagement selectApsMaterialProductGroupManagementById(Long id) { return apsMaterialProductGroupManagementMapper.selectApsMaterialProductGroupManagementById(id); } /** * 查询物料产品组数据管理列表 * * @param apsMaterialProductGroupManagement 物料产品组数据管理 * @return 物料产品组数据管理 */ @Override public List selectApsMaterialProductGroupManagementList(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) { return apsMaterialProductGroupManagementMapper.selectApsMaterialProductGroupManagementList(apsMaterialProductGroupManagement); } /** * 新增物料产品组数据管理 * * @param apsMaterialProductGroupManagement 物料产品组数据管理 * @return 结果 */ @Override public int insertApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) { apsMaterialProductGroupManagement.setCreateTime(DateUtils.getNowDate()); return apsMaterialProductGroupManagementMapper.insertApsMaterialProductGroupManagement(apsMaterialProductGroupManagement); } /** * 修改物料产品组数据管理 * * @param apsMaterialProductGroupManagement 物料产品组数据管理 * @return 结果 */ @Override public int updateApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) { apsMaterialProductGroupManagement.setUpdateTime(DateUtils.getNowDate()); return apsMaterialProductGroupManagementMapper.updateApsMaterialProductGroupManagement(apsMaterialProductGroupManagement); } /** * 批量删除物料产品组数据管理 * * @param ids 需要删除的物料产品组数据管理主键 * @return 结果 */ @Override public int deleteApsMaterialProductGroupManagementByIds(Long[] ids) { return apsMaterialProductGroupManagementMapper.deleteApsMaterialProductGroupManagementByIds(ids); } /** * 删除物料产品组数据管理信息 * * @param id 物料产品组数据管理主键 * @return 结果 */ @Override public int deleteApsMaterialProductGroupManagementById(Long id) { return apsMaterialProductGroupManagementMapper.deleteApsMaterialProductGroupManagementById(id); } @SneakyThrows @Override public int batchInsertApsMaterialProductGroupManagement(MultipartFile file) { Workbook workbook = WorkbookFactory.create(file.getInputStream()); Sheet sheet = workbook.getSheetAt(0); int rows = sheet.getLastRowNum(); if (rows > 0) { List list = new ArrayList<>(); /*数据列从1开始*/ for (int i = 1; i <= rows; i++) { Row row = sheet.getRow(i); if (row.getCell(0) == null) { continue; } String materialCode = row.getCell(0).getStringCellValue(); if (StringUtils.isEmpty(materialCode)){ continue; } String materialType = row.getCell(1).getStringCellValue(); String domain = row.getCell(2).getStringCellValue(); String isMain = row.getCell(3).getStringCellValue(); String factory = row.getCell(4).getStringCellValue(); if (StringUtils.isNotBlank(materialType) && StringUtils.isNotBlank(domain) && StringUtils.isNotBlank(isMain) && StringUtils.isNotBlank(factory)) { ApsMaterialProductGroupManagement item = new ApsMaterialProductGroupManagement(); item.setId(IdUtil.getSnowflakeNextId()); item.setFactory(factory); item.setDomain(domain); item.setMaterialType(materialType); item.setMaterialCode(materialCode); item.setIsMain(isMain); item.setCreateBy(SecurityUtils.getUsername()); item.setCreateTime(DateUtils.getNowDate()); list.add(item); } } if (!list.isEmpty()) { apsMaterialProductGroupManagementMapper.insert(list); } return list.size(); } return 0; } }