| | |
| | | package org.dromara.eims.service.impl; |
| | | |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import org.dromara.common.core.exception.ServiceException; |
| | | import org.dromara.common.core.utils.DateUtils; |
| | | import org.dromara.common.core.utils.MapstructUtils; |
| | | import org.dromara.common.core.utils.StringUtils; |
| | | import org.dromara.common.mybatis.core.page.TableDataInfo; |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.dromara.eims.domain.EimsEqu; |
| | | import org.dromara.eims.domain.vo.EimsEquVo; |
| | | import org.dromara.eims.domain.vo.EimsMaintPlanVo; |
| | | import org.dromara.eims.domain.vo.InspectCheckItemVo; |
| | | import org.dromara.eims.listener.EasyExcelCellListener; |
| | | import org.dromara.eims.listener.InspectCheckItemImportListener; |
| | | import org.dromara.eims.mapper.EimsEquMapper; |
| | | import org.dromara.system.domain.SysDept; |
| | | import org.dromara.system.domain.vo.SysDeptVo; |
| | | import org.dromara.system.mapper.SysDeptMapper; |
| | |
| | | import org.dromara.eims.domain.EimsInspectPlan; |
| | | import org.dromara.eims.mapper.EimsInspectPlanMapper; |
| | | import org.dromara.eims.service.IEimsInspectPlanService; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Collection; |
| | | import java.io.IOException; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 点检计划Service业务层处理 |
| | |
| | | |
| | | private final EimsInspectPlanMapper baseMapper; |
| | | private final SysDeptMapper sysDeptMapper; |
| | | private final EimsEquMapper equMapper; |
| | | |
| | | |
| | | /** |
| | |
| | | return baseMapper.deleteByIds(ids) > 0; |
| | | } |
| | | |
| | | @Override |
| | | public String importData(MultipartFile file, boolean updateSupport) throws IOException, IOException { |
| | | int successNum = 0; |
| | | int failureNum = 0; |
| | | StringBuilder successMsg = new StringBuilder(); |
| | | StringBuilder failureMsg = new StringBuilder(); |
| | | |
| | | // 点检项目列表(假设存在对应的点检项VO) |
| | | InspectCheckItemImportListener checkItemImportListener = new InspectCheckItemImportListener(updateSupport); |
| | | EasyExcel.read(file.getInputStream(), InspectCheckItemVo.class, checkItemImportListener).headRowNumber(3).sheet().doRead(); |
| | | List<InspectCheckItemVo> successList = checkItemImportListener.getSuccessList(); |
| | | |
| | | // 读取固定资产编号(假设位置不同) |
| | | EasyExcelCellListener assetNoListener = new EasyExcelCellListener(2, 23); |
| | | EasyExcel.read(file.getInputStream(), assetNoListener).headRowNumber(0).sheet().doReadSync(); |
| | | String assetNo = Optional.ofNullable(assetNoListener.getCellValue()) |
| | | .map(value -> { |
| | | int colonIndex = Math.max(value.indexOf(":"), value.indexOf(":")); // 合并冒号处理 |
| | | return colonIndex != -1 ? value.substring(colonIndex + 1) : value; |
| | | }) |
| | | .map(String::trim) |
| | | .orElseThrow(() -> new ServiceException("导入失败,无法读取固定资产编号")); |
| | | |
| | | |
| | | |
| | | // 查询设备信息 |
| | | QueryWrapper<EimsEqu> query = new QueryWrapper<>(); |
| | | query.eq("asset_no", assetNo); |
| | | EimsEquVo equVo = equMapper.selectVoOne(query); |
| | | if (equVo == null) throw new ServiceException("设备未找到,请先在设备台帐中添加"); |
| | | |
| | | |
| | | for (InspectCheckItemVo itemVo : successList) { |
| | | if ("设备状态卡状态".equals(itemVo.getItemName())) break; |
| | | EimsInspectPlanBo bo = new EimsInspectPlanBo(); |
| | | bo.setEquId(equVo.getEquId()); |
| | | bo.setInspName(itemVo.getItemName()); |
| | | bo.setStatus("0"); |
| | | bo.setInspType("1"); |
| | | bo.setInspRule("0"); |
| | | |
| | | if (!insertByBo(bo)) { |
| | | failureNum++; |
| | | failureMsg.append(failureNum).append("、导入失败<br>"); |
| | | } else { |
| | | successNum++; |
| | | successMsg.append(successNum).append("、导入成功<br>"); |
| | | } |
| | | } |
| | | |
| | | return failureNum > 0 ? failureMsg.toString() : successMsg.toString(); |
| | | } |
| | | |
| | | |
| | | } |