新火炬后端单体项目初始化代码
Houjie
2 天以前 4f4db2d34a1aaf1af4acb310774f51ffdef30d6a
保养标准:点检标准导入
已修改5个文件
113 ■■■■ 文件已修改
src/main/java/org/jeecg/modules/eam/constant/MaintenanceCategoryEnum.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/dto/WeekMaintenanceStandardImport.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/constant/MaintenanceCategoryEnum.java
@@ -5,6 +5,6 @@
 */
public enum MaintenanceCategoryEnum {
    POINT_INSPECTION, //点检
    WEEK_MAINTENANCE, //保养
    ;
    QUARTERLY_MAINTENANCE, //季报
    ANNUAL_MAINTENANCE, //年报
}
src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
@@ -7,18 +7,13 @@
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;
@@ -33,7 +28,6 @@
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.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -42,7 +36,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;
@@ -274,6 +271,7 @@
            params.setTitleRows(2);
            params.setHeadRows(1);
            params.setSheetNum(1);
            params.setLastOfInvalidRow(23);
            params.setNeedSave(true);
            EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest();
            try {
@@ -287,8 +285,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 +313,7 @@
        }
        return Result.ok("文件导入完成!");
    }
    /**
     * 通过excel导入数据
@@ -343,7 +344,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 +388,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 +415,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
src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java
@@ -8,12 +8,18 @@
@Data
public class MaintenanceStandardImport implements Serializable {
    @Excel(name = "图号", width = 15)
    private Integer itemCode;
    @Excel(name = "点检项目", width = 15)
    @Excel(name = "NO", width = 15)
    private String itemCode;
    @Excel(name = "部位名称", width = 15)
    private String itemName;
    @Excel(name = "点检部位", width = 15)
    @Excel(name = "点检内容", width = 15)
    private String subItemName;
    @Excel(name = "点检方法", width = 15)
    private String itemPart;
    @Excel(name = "点检要求", width = 15)
    @Excel(name = "基准", width = 15)
    private String itemDemand;
}
src/main/java/org/jeecg/modules/eam/dto/WeekMaintenanceStandardImport.java
@@ -8,14 +8,14 @@
@Data
public class WeekMaintenanceStandardImport implements Serializable {
    @Excel(name = "序号", width = 15)
    @Excel(name = "NO", width = 15)
    private Integer itemCode;
    @Excel(name = "保养大项目", width = 15)
    @Excel(name = "部位名称", width = 15)
    private String itemName;
    @Excel(name = "子项目", width = 15)
    private String subItemName;
    @Excel(name = "部位/类型", width = 15)
    @Excel(name = "点检内容", width = 15)
    private String itemPart;
    @Excel(name = "保养要求", width = 15)
    @Excel(name = "基    准", width = 15)
    private String itemDemand;
}
src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java
@@ -73,7 +73,7 @@
    public EamMaintenanceStandardDetail(){}
    public EamMaintenanceStandardDetail(MaintenanceStandardImport dto) {
        this.itemCode = dto.getItemCode();
            this.itemCode = Integer.valueOf(dto.getItemCode());
        this.itemPart = dto.getItemPart();
        this.itemName = dto.getItemName();
        this.itemDemand = dto.getItemDemand();