zhangherong
2025-05-14 fe40840225ba68e956fd8f2500823fcee348f421
art: 设备管理-保养标准-导入功能
已添加2个文件
已修改4个文件
185 ■■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceCategoryEnum.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/dto/SecondMaintenanceStandardImport.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/dto/ThirdMaintenanceStandardImport.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceCategoryEnum.java
@@ -6,5 +6,7 @@
public enum MaintenanceCategoryEnum {
    POINT_INSPECTION, //点检
    WEEK_MAINTENANCE, //周保
    SECOND_MAINTENANCE, //二保
    THIRD_MAINTENANCE, //三保
    ;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
@@ -23,6 +23,8 @@
import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
import org.jeecg.modules.eam.dto.MaintenanceStandardImport;
import org.jeecg.modules.eam.dto.SecondMaintenanceStandardImport;
import org.jeecg.modules.eam.dto.ThirdMaintenanceStandardImport;
import org.jeecg.modules.eam.dto.WeekMaintenanceStandardImport;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
@@ -373,6 +375,122 @@
    }
    /**
     * é€šè¿‡excel导入数据
     *
     * @param request
     * @param response
     * @return
     */
    @RequestMapping(value = "/secondMaintenanceImportExcel", method = RequestMethod.POST)
    public Result<?> secondMaintenanceImportExcel(HttpServletRequest request, HttpServletResponse response) {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
            // èŽ·å–ä¸Šä¼ æ–‡ä»¶å¯¹è±¡
            MultipartFile file = entity.getValue();
            ImportParams params = new ImportParams();
            params.setTitleRows(2);
            params.setHeadRows(1);
            params.setSheetNum(1);
            params.setNeedSave(true);
            EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest();
            try {
                //读取设备编号,图片等
                readWeekExcel(file, standardRequest);
                EamEquipment equipment = eamEquipmentService.selectByEquipmentCode(standardRequest.getEquipmentCode());
                if(equipment == null) {
                    log.error("设备不存在:{}", standardRequest.getEquipmentCode());
                    continue;
                }
                standardRequest.setStandardName(standardRequest.getEquipmentName() + "二保标准");
                standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.SECOND_MAINTENANCE.name());
                standardRequest.setEquipmentId(equipment.getId());
                //读取保养明细内容
                List<SecondMaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), SecondMaintenanceStandardImport.class, params);
                //明细项
                List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList());
                standardRequest.setTableDetailList(tableList);
                String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE);
                standardRequest.setStandardCode(codeSeq);
                boolean b = eamMaintenanceStandardService.addMaintenanceStandard(standardRequest);
                if (!b) {
                    log.error("保存失败! {}", standardRequest.getEquipmentCode());
                }
            } catch (Exception e) {
                //update-begin-author:taoyan date:20211124 for: å¯¼å…¥æ•°æ®é‡å¤å¢žåŠ æç¤º
                String msg = e.getMessage();
                log.error("文件 {} å¤„理异常: {}", file.getOriginalFilename(), msg, e);
                //update-end-author:taoyan date:20211124 for: å¯¼å…¥æ•°æ®é‡å¤å¢žåŠ æç¤º
            } finally {
                try {
                    file.getInputStream().close();
                } catch (IOException e) {
                    log.error(e.getMessage(), e);
                }
            }
        }
        return Result.ok("文件导入完成!");
    }
    /**
     * é€šè¿‡excel导入数据
     *
     * @param request
     * @param response
     * @return
     */
    @RequestMapping(value = "/thirdMaintenanceImportExcel", method = RequestMethod.POST)
    public Result<?> thirdMaintenanceImportExcel(HttpServletRequest request, HttpServletResponse response) {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
            // èŽ·å–ä¸Šä¼ æ–‡ä»¶å¯¹è±¡
            MultipartFile file = entity.getValue();
            ImportParams params = new ImportParams();
            params.setTitleRows(2);
            params.setHeadRows(1);
            params.setSheetNum(1);
            params.setNeedSave(true);
            EamMaintenanceStandardRequest standardRequest = new EamMaintenanceStandardRequest();
            try {
                //读取设备编号,图片等
                readWeekExcel(file, standardRequest);
                EamEquipment equipment = eamEquipmentService.selectByEquipmentCode(standardRequest.getEquipmentCode());
                if(equipment == null) {
                    log.error("设备不存在:{}", standardRequest.getEquipmentCode());
                    continue;
                }
                standardRequest.setStandardName(standardRequest.getEquipmentName() + "三保标准");
                standardRequest.setMaintenanceCategory(MaintenanceCategoryEnum.THIRD_MAINTENANCE.name());
                standardRequest.setEquipmentId(equipment.getId());
                //读取保养明细内容
                List<ThirdMaintenanceStandardImport> list = ExcelImportUtil.importExcel(file.getInputStream(), ThirdMaintenanceStandardImport.class, params);
                //明细项
                List<EamMaintenanceStandardDetail> tableList = list.stream().map(EamMaintenanceStandardDetail::new).collect(Collectors.toList());
                standardRequest.setTableDetailList(tableList);
                String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MAINTENANCE_STANDARD_CODE_RULE);
                standardRequest.setStandardCode(codeSeq);
                boolean b = eamMaintenanceStandardService.addMaintenanceStandard(standardRequest);
                if (!b) {
                    log.error("保存失败! {}", standardRequest.getEquipmentCode());
                }
            } catch (Exception e) {
                //update-begin-author:taoyan date:20211124 for: å¯¼å…¥æ•°æ®é‡å¤å¢žåŠ æç¤º
                String msg = e.getMessage();
                log.error("文件 {} å¤„理异常: {}", file.getOriginalFilename(), msg, e);
                //update-end-author:taoyan date:20211124 for: å¯¼å…¥æ•°æ®é‡å¤å¢žåŠ æç¤º
            } finally {
                try {
                    file.getInputStream().close();
                } catch (IOException e) {
                    log.error(e.getMessage(), e);
                }
            }
        }
        return Result.ok("文件导入完成!");
    }
    /**
     * è¯»å–Excel ç¬¬ä¸€è¡Œï¼Œ ç¬¬äºŒè¡Œçš„信息,包括图片信息
     * @param file
     * @param request
@@ -496,8 +614,7 @@
            if (CellType.NUMERIC.equals(period.getCellType())) {
                request.setMaintenancePeriod((int) period.getNumericCellValue());
            } else {
                //默认点检周期 1
                request.setMaintenancePeriod(1);
                request.setMaintenancePeriod(null);
            }
            //文件编码
            Cell fileCode = row.getCell(8);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java
@@ -14,8 +14,6 @@
    private String itemName;
    @Excel(name = "点检部位", width = 15)
    private String itemPart;
    @Excel(name = "点检内容", width = 15)
    private String itemContent;
    @Excel(name = "点检要求", width = 15)
    private String itemDemand;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/dto/SecondMaintenanceStandardImport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package org.jeecg.modules.eam.dto;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
@Data
public class SecondMaintenanceStandardImport implements Serializable {
    @Excel(name = "序号", width = 15)
    private Integer itemCode;
    @Excel(name = "部位", width = 15)
    private String itemPart;
    @Excel(name = "保养内容", width = 15)
    private String itemName;
    @Excel(name = "保养要求", width = 15)
    private String itemDemand;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/dto/ThirdMaintenanceStandardImport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package org.jeecg.modules.eam.dto;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
@Data
public class ThirdMaintenanceStandardImport implements Serializable {
    @Excel(name = "序号", width = 15)
    private Integer itemCode;
    @Excel(name = "部位", width = 15)
    private String itemPart;
    @Excel(name = "保养内容", width = 15)
    private String itemName;
    @Excel(name = "保养要求", width = 15)
    private String itemDemand;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java
@@ -9,6 +9,8 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.eam.dto.MaintenanceStandardImport;
import org.jeecg.modules.eam.dto.SecondMaintenanceStandardImport;
import org.jeecg.modules.eam.dto.ThirdMaintenanceStandardImport;
import org.jeecg.modules.eam.dto.WeekMaintenanceStandardImport;
import java.io.Serializable;
@@ -48,6 +50,9 @@
    /**保养项序号*/
    @ApiModelProperty(value = "保养项序号")
    private Integer itemCode;
    /**部位*/
    @ApiModelProperty(value = "部位")
    private String itemPart;
    /**保养项*/
    @ApiModelProperty(value = "保养项")
    private String itemName;
@@ -63,7 +68,8 @@
    public EamMaintenanceStandardDetail(MaintenanceStandardImport dto) {
        this.itemCode = dto.getItemCode();
        this.itemName = dto.getItemName() + " " + dto.getItemPart() + " " + dto.getItemContent();
        this.itemPart = dto.getItemPart();
        this.itemName = dto.getItemName();
        this.itemDemand = dto.getItemDemand();
    }
@@ -73,4 +79,18 @@
        this.subItemName = dto.getSubItemName() + " " + (dto.getItemPart() == null ? "" : dto.getItemPart());
        this.itemDemand = dto.getItemDemand();
    }
    public EamMaintenanceStandardDetail(SecondMaintenanceStandardImport dto) {
        this.itemCode = dto.getItemCode();
        this.itemName = dto.getItemName();
        this.itemPart = dto.getItemPart();
        this.itemDemand = dto.getItemDemand();
    }
    public EamMaintenanceStandardDetail(ThirdMaintenanceStandardImport dto) {
        this.itemCode = dto.getItemCode();
        this.itemName = dto.getItemName();
        this.itemPart = dto.getItemPart();
        this.itemDemand = dto.getItemDemand();
    }
}