| | |
| | | } |
| | | |
| | | @Override |
| | | public String importData(MultipartFile file, boolean updateSupport) throws IOException, IOException { |
| | | // 点检项目列表(假设存在对应的点检项VO) |
| | | InspectCheckItemImportListener checkItemImportListener = new InspectCheckItemImportListener(updateSupport); |
| | | EasyExcel.read(file.getInputStream(), InspectCheckItemVo.class, checkItemImportListener).headRowNumber(3).sheet().doRead(); |
| | | List<InspectCheckItemVo> successList = checkItemImportListener.getSuccessList(); |
| | | public String importData(MultipartFile file, boolean updateSupport) { |
| | | try { |
| | | // 点检项目列表(假设存在对应的点检项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("导入失败,无法读取固定资产编号")); |
| | | // 读取固定资产编号(假设位置不同) |
| | | 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) |
| | | .orElse(""); |
| | | |
| | | // 查询设备信息 |
| | | QueryWrapper<EimsEqu> query = new QueryWrapper<>(); |
| | | query.eq("asset_no", assetNo); |
| | | EimsEquVo equVo = equMapper.selectVoOne(query); |
| | | if (equVo == null) throw new ServiceException("设备未找到,请先在设备台帐中添加"); |
| | | |
| | | int successNum = 0; |
| | | int failureNum = 0; |
| | | StringBuilder successMsg = new StringBuilder(); |
| | | StringBuilder failureMsg = new StringBuilder(); |
| | | |
| | | for (InspectCheckItemVo itemVo : successList) { |
| | | if ("设备状态卡状态".equals(itemVo.getItemName())) break; |
| | | |
| | | // 如果允许覆盖,则删除已存在的记录 |
| | | if (updateSupport) { |
| | | LambdaQueryWrapper<EimsInspectPlan> deleteWrapper = Wrappers.lambdaQuery(); |
| | | deleteWrapper.eq(EimsInspectPlan::getEquId, equVo.getEquId()) |
| | | .eq(EimsInspectPlan::getInspName, itemVo.getItemName()) |
| | | .eq(EimsInspectPlan::getStatus, "0"); |
| | | baseMapper.delete(deleteWrapper); |
| | | if (assetNo.isEmpty()) { |
| | | return file.getOriginalFilename() + " 导入失败,无法读取固定资产编号"; |
| | | } |
| | | |
| | | // 新增点检计划 |
| | | 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>"); |
| | | // 查询设备信息 |
| | | QueryWrapper<EimsEqu> query = new QueryWrapper<>(); |
| | | query.eq("asset_no", assetNo); |
| | | EimsEquVo equVo = equMapper.selectVoOne(query); |
| | | if (equVo == null) { |
| | | return file.getOriginalFilename() + " 设备未找到,请先在设备台帐中添加"; |
| | | } |
| | | |
| | | int successNum = 0; |
| | | int failureNum = 0; |
| | | |
| | | for (InspectCheckItemVo itemVo : successList) { |
| | | if ("设备状态卡状态".equals(itemVo.getItemName()) || itemVo.getItemName().contains("运行时间")) { |
| | | break; |
| | | } |
| | | |
| | | // 如果允许覆盖,则删除已存在的记录 |
| | | if (updateSupport) { |
| | | LambdaQueryWrapper<EimsInspectPlan> deleteWrapper = Wrappers.lambdaQuery(); |
| | | deleteWrapper.eq(EimsInspectPlan::getEquId, equVo.getEquId()) |
| | | .eq(EimsInspectPlan::getInspName, itemVo.getItemName()) |
| | | .eq(EimsInspectPlan::getStatus, "0"); |
| | | baseMapper.delete(deleteWrapper); |
| | | } |
| | | |
| | | // 新增点检计划 |
| | | 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++; |
| | | } else { |
| | | successNum++; |
| | | } |
| | | } |
| | | |
| | | return file.getOriginalFilename() + " 导入成功:" + successNum + "条,导入失败:" + failureNum + "条"; |
| | | } catch (Exception e) { |
| | | return file.getOriginalFilename() + " 导入异常:" + e.getMessage(); |
| | | } |
| | | |
| | | return failureNum > 0 ? failureMsg.toString() : successMsg.toString(); |
| | | } |
| | | |
| | | |