From e0f827f71f5bb9d1ed9f6414221e90eeb34632a7 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期四, 04 九月 2025 11:07:01 +0800
Subject: [PATCH] 排产工单模块设备点检涉及接口

---
 src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java |  118 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 77 insertions(+), 41 deletions(-)

diff --git a/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java b/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
index 2fe4564..5f8d97e 100644
--- a/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
+++ b/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
@@ -1,24 +1,20 @@
 package org.jeecg.modules.eam.controller;
 
 import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.hssf.usermodel.HSSFSheet;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.xssf.usermodel.XSSFSheet;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.jeecg.common.api.vo.FileUploadResult;
+import org.apache.poi.xssf.usermodel.*;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.common.util.FileUtil;
 import org.jeecg.modules.eam.constant.BusinessCodeConst;
 import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
 import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
@@ -29,11 +25,15 @@
 import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
 import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
 import org.jeecg.modules.eam.service.IEamEquipmentService;
+import org.jeecg.modules.eam.service.IEamMaintenanceOrderDetailService;
+import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
 import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
+import org.jeecg.modules.eam.vo.MaintenanceStandardDetailVo;
+import org.jeecg.modules.eam.vo.MaintenanceStandardVo;
 import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.util.PoiPublicUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -42,7 +42,10 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -63,6 +66,8 @@
     private ISysBusinessCodeRuleService businessCodeRuleService;
     @Autowired
     private IEamEquipmentService eamEquipmentService;
+    @Autowired
+    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -245,6 +250,33 @@
         return Result.OK(eamMaintenanceStandard);
     }
 
+    @AutoLog(value = "淇濆吇鏍囧噯-閫氳繃璁惧id鏌ヨ淇濆吇鏍囧噯鍙婃槑缁嗛」")
+    @ApiOperation(value = "淇濆吇鏍囧噯-閫氳繃璁惧id鏌ヨ淇濆吇鏍囧噯鍙婃槑缁嗛」", notes = "淇濆吇鏍囧噯-閫氳繃璁惧id鏌ヨ淇濆吇鏍囧噯鍙婃槑缁嗛」")
+    @GetMapping(value = "/queryByEquipmentId")
+    public Result<MaintenanceStandardVo> queryByEquipmentId(@RequestParam("equipmentId") String equipmentId) {
+        EamMaintenanceStandard maintenanceStandard = eamMaintenanceStandardService.list(new LambdaQueryWrapper<EamMaintenanceStandard>()
+                        .eq(EamMaintenanceStandard::getEquipmentId, equipmentId)
+                        .eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0)
+                        .eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name())
+                        .eq(EamMaintenanceStandard::getMaintenanceCategory, MaintenanceCategoryEnum.POINT_INSPECTION.name()))
+                .stream().findFirst().orElse(null);
+        if (maintenanceStandard == null) {
+            return Result.error("鏈壘鍒拌璁惧涓嬬殑淇濆吇鏍囧噯锛�");
+        }
+        MaintenanceStandardVo maintenanceStandardVo = new MaintenanceStandardVo();
+        BeanUtils.copyProperties(maintenanceStandard, maintenanceStandardVo);
+        List<EamMaintenanceStandardDetail> maintenanceStandardDetails = eamMaintenanceStandardDetailService
+                .selectByStandardId(maintenanceStandard.getId());
+        List<MaintenanceStandardDetailVo> maintenanceStandardDetailVos = CollectionUtil.newArrayList();
+        maintenanceStandardDetails.forEach(item -> {
+            MaintenanceStandardDetailVo maintenanceStandardDetailVo = new MaintenanceStandardDetailVo();
+            BeanUtils.copyProperties(item, maintenanceStandardDetailVo);
+            maintenanceStandardDetailVos.add(maintenanceStandardDetailVo);
+        });
+        maintenanceStandardVo.setMaintenanceStandardDetailList(maintenanceStandardDetailVos);
+        return Result.OK(maintenanceStandardVo);
+    }
+
     /**
      * 瀵煎嚭excel
      *
@@ -274,6 +306,7 @@
             params.setTitleRows(2);
             params.setHeadRows(1);
             params.setSheetNum(1);
+            params.setLastOfInvalidRow(23);
             params.setNeedSave(true);
             EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest();
             try {
@@ -287,8 +320,10 @@
                 standardRequest.setStandardName(standardRequest.getEquipmentName() + "鐐规鏍囧噯");
                 standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.POINT_INSPECTION.name());
                 standardRequest.setEquipmentId(equipment.getId());
+
                 //璇诲彇淇濆吇鏄庣粏鍐呭
                 List<MaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), MaintenanceStandardImport.class, params);
+
                 //鏄庣粏椤�
                 List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList());
                 standardRequest.setTableDetailList(tableList);
@@ -313,6 +348,7 @@
         }
         return Result.ok("鏂囦欢瀵煎叆瀹屾垚锛�");
     }
+
 
     /**
      * 閫氳繃excel瀵煎叆鏁版嵁
@@ -343,7 +379,7 @@
                     continue;
                 }
                 standardRequest.setStandardName(standardRequest.getEquipmentName() + "淇濆吇鏍囧噯");
-                standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.WEEK_MAINTENANCE.name());
+                standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.QUARTERLY_MAINTENANCE.name());
                 standardRequest.setEquipmentId(equipment.getId());
                 //璇诲彇淇濆吇鏄庣粏鍐呭
                 List<WeekMaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), WeekMaintenanceStandardImport.class, params);
@@ -387,10 +423,17 @@
             }
 
             Sheet sheet = book.getSheetAt(0);
-            //绗竴琛岃鍙�
-            Row row = sheet.getRow(0);
+            //绗簩琛岃鍙�
+            Row row = sheet.getRow(1);
             //璁惧缂栫爜
-            Cell equipmentCode = row.getCell(15);
+            Cell equipmentCode = row.getCell(5);
+            Cell targetCell = row.getCell(0);
+            //鏂囦欢缂栫爜
+            String fileCodeValue = getCellValue(targetCell);
+            if (fileCodeValue == null || fileCodeValue.trim().isEmpty()) {
+                throw new JeecgBootException("Excel銆�" + file.getOriginalFilename() + "銆戠浜岃绗竴鍒楄幏鍙栧埌鐨勮澶囩紪鍙蜂负绌猴紒");
+            }
+            request.setFileCode(fileCodeValue.trim());
             if(CellType.NUMERIC.equals(equipmentCode.getCellType())) {
                 request.setEquipmentCode(String.valueOf((int) equipmentCode.getNumericCellValue()));
             }else if(CellType.STRING.equals(equipmentCode.getCellType())) {
@@ -407,50 +450,43 @@
                 request.setInitialDate(new Date());
             }
             //璁惧鍚嶇О
-            Cell equipmentName = row.getCell(13);
-            request.setEquipmentName(equipmentName.getStringCellValue());
+//            Cell equipmentName = row.getCell(13);
+//            request.setEquipmentName(equipmentName.getStringCellValue());
 
-            //绗簩琛岃鍙�
-            row = sheet.getRow(1);
+
+            row = sheet.getRow(4);
             //淇濆吇鍛ㄦ湡
-            Cell period = row.getCell(11);
+            Cell period = row.getCell(7);
             if (CellType.NUMERIC.equals(period.getCellType())) {
                 request.setMaintenancePeriod((int) period.getNumericCellValue());
             } else {
                 //榛樿鐐规鍛ㄦ湡 1
                 request.setMaintenancePeriod(1);
             }
-            //鏂囦欢缂栫爜
-            Cell fileCode = row.getCell(13);
-            request.setFileCode(fileCode.getStringCellValue());
 
-            Map<String, PictureData> pictures;
-            if (isXSSFWorkbook) {
-                pictures = PoiPublicUtil.getSheetPictrues07((XSSFSheet) book.getSheetAt(0), (XSSFWorkbook) book);
-            } else {
-                pictures = PoiPublicUtil.getSheetPictrues03((HSSFSheet) book.getSheetAt(0), (HSSFWorkbook) book);
-            }
-
-            if (CollectionUtil.isNotEmpty(pictures)) {
-                //鍙細瀛樺湪涓�寮犲浘鐗�
-                PictureData pictureData = pictures.get(pictures.keySet().iterator().next());
-                byte[] data = pictureData.getData();
-                String fileName = request.getEquipmentCode() + "[" + request.getFileCode() + "]" + "." + pictureData.suggestFileExtension();
-                FileUploadResult fileUploadResult = FileUtil.uploadFile(data, fileName);
-                if(fileUploadResult != null) {
-                    List<FileUploadResult> fileList = request.getFileList();
-                    if(fileList == null) {
-                        fileList = new ArrayList<FileUploadResult>();
-                    }
-                    fileList.add(fileUploadResult);
-                    request.setFileList(fileList);
-                }
-            }
         } catch (Exception e) {
             log.error("璇诲彇Excel淇℃伅澶辫触锛歿}", e.getMessage(), e);
         }
     }
 
+
+    /**
+     * 缁熶竴澶勭悊鍗曞厓鏍煎�硷紝鏀寔鏁板瓧鍜屽瓧绗︿覆绫诲瀷
+     * @param cell 鍗曞厓鏍煎璞�
+     * @return 鍗曞厓鏍肩殑鍊硷紝涓� null 琛ㄧず鍗曞厓鏍兼棤鏈夋晥鍐呭
+     */
+    private String getCellValue(Cell cell) {
+        if (cell == null) {
+            return null;
+        }
+        CellType cellType = cell.getCellType();
+        if (cellType == CellType.NUMERIC) {
+            return String.valueOf((int) cell.getNumericCellValue());
+        } else if (cellType == CellType.STRING) {
+            return cell.getStringCellValue();
+        }
+        return null;
+    }
     /**
      * 璇诲彇Excel 绗竴琛岋紝 绗簩琛岀殑淇℃伅
      * @param file

--
Gitblit v1.9.3