From 92bd9ed78ad1da026b81fcd8e88445b6834bba76 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期二, 01 四月 2025 17:12:11 +0800
Subject: [PATCH] art: 设备管理-保养标准-点检导入功能

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java                               |   12 ++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java                       |   26 +++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java                                     |   14 --
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java                               |    7 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java                             |    6 +
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java                                     |   21 ++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java                       |  157 ++++++++++++++++++++++++++++++
 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/FileUtil.java                                                      |   41 ++++++++
 9 files changed, 265 insertions(+), 21 deletions(-)

diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/FileUtil.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/FileUtil.java
index 92334c4..10a2842 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/FileUtil.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/FileUtil.java
@@ -1,5 +1,7 @@
 package org.jeecg.common.util;
 
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.FileUploadResult;
 import org.jeecg.common.exception.ExceptionCast;
 import org.springframework.beans.factory.annotation.Value;
@@ -9,10 +11,13 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.net.URLEncoder;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+@Slf4j
 @Component
 public class FileUtil {
 
@@ -60,6 +65,42 @@
 		return dto;
 	}
 
+	public static FileUploadResult uploadFile(byte[] fileData, String fileName) {
+		String suffix = getFileSuffix(fileName);
+		Date currentDate = DateUtils.getDate();
+		String monthStr = DateUtils.date2Str(currentDate, DateUtils.monthFormat.get());
+		// 鐩稿璺緞
+		String relativePath = "/" + monthStr + "/" + DateUtils.getDayStr(currentDate) + "/";
+		// 缁濆璺緞
+		String absolutePath = fileUploadFolder + "/" + monthStr + "/" + DateUtils.getDayStr(currentDate) + "/";
+		String fileNameNonSuffix = getFilenameNonSuffix(fileName);
+		if (StringUtils.isBlank(fileNameNonSuffix)) {
+			return null;
+		}
+		// 鑾峰彇鏂囦欢鍔犲瘑鍚嶇О 1 淇濊瘉鏂囦欢鍞竴 涓嶅瓨鍦ㄨ鐩栭棶棰� 2 鐩綍涓嬩繚瀛樻枃浠跺姞瀵嗗悕绉� 鍘婚櫎鏂囦欢鍏抽敭淇℃伅
+		String encodeFileName = SHA256Util.getSHA256Str(fileNameNonSuffix + System.currentTimeMillis()) + "." + suffix;
+		Long fileSize = (long) fileData.length;
+        try {
+			File targetFile = new File(absolutePath, encodeFileName);
+			if(!targetFile.getParentFile().exists()) {
+				//鍒涘缓鐩綍
+				targetFile.getParentFile().mkdirs();
+			}
+            Files.write(Paths.get(absolutePath + encodeFileName), fileData);
+			FileUploadResult dto = new FileUploadResult();
+			dto.setFileName(fileNameNonSuffix);
+			dto.setFileEncodeName(encodeFileName);
+			dto.setFilePath(relativePath + encodeFileName);
+			dto.setFileSize(fileSize);
+			dto.setFileSuffix(suffix);
+			return dto;
+        } catch (IOException e) {
+			log.error("鏂囦欢鍐欏叆澶辫触: {}", e.getMessage(), e);
+            return null;
+        }
+
+	}
+
 	/**
 	 * @param filePath 璺緞
 	 * @param fileName 鏂囦欢鍚�
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
index c1f658f..d5e31af 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
@@ -45,4 +45,11 @@
      * @return
      */
     List<EquipmentSearchResult> asyncLoadEquipment(String keyword, Integer pageSize, String id);
+
+    /**
+     * 鏌ヨ璁惧淇℃伅
+     * @param equipmentCode
+     * @return
+     */
+    EamEquipment selectByEquipmentCode(String equipmentCode);
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
index f77e769..f4fcd30 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -194,6 +194,7 @@
             queryWrapper.like("equipment_code", keyword);
             queryWrapper.or().like("equipment_name", keyword);
         }
+        queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
         IPage<EamEquipment> pageResult = eamEquipmentMapper.queryPageList(page, queryWrapper);
         if (pageResult != null && CollectionUtil.isNotEmpty(pageResult.getRecords())) {
             List<EquipmentSearchResult> resultList = new ArrayList<>();
@@ -205,6 +206,31 @@
         return Collections.emptyList();
     }
 
+    @Override
+    public EamEquipment selectByEquipmentCode(String equipmentCode) {
+        if (StringUtils.isBlank(equipmentCode)) {
+            return null;
+        }
+        QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>();
+        //鐢ㄦ埛鏁版嵁鏉冮檺
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (sysUser == null) {
+            return null;
+        }
+        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
+            //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
+            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
+            queryWrapper.in("equipment_code", equipArr);
+        } else {
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶�
+            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=org_id", sysUser.getId());
+        }
+        queryWrapper.eq("equipment_code", equipmentCode);
+        queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
+
+        return eamEquipmentMapper.selectOne(queryWrapper);
+    }
+
     /**
      * 鑾峰彇鎵�鏈夌殑浜х嚎id锛堝寘鍚墍鏈変笂绾э級
      */
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
index 8f3ffef..d153584 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
@@ -7,22 +7,45 @@
 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.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
+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.dto.MaintenanceStandardImport;
+import org.jeecg.modules.eam.entity.EamEquipment;
 import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
+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.IEamMaintenanceStandardService;
 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;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Arrays;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 淇濆吇鏍囧噯
@@ -39,6 +62,8 @@
     private IEamMaintenanceStandardService eamMaintenanceStandardService;
     @Autowired
     private ISysBusinessCodeRuleService businessCodeRuleService;
+    @Autowired
+    private IEamEquipmentService eamEquipmentService;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -168,9 +193,133 @@
      * @param response
      * @return
      */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, EamMaintenanceStandard.class);
+    @RequestMapping(value = "/inspectionImportExcel", method = RequestMethod.POST)
+    public Result<?> inspectionImportExcel(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 {
+                //璇诲彇璁惧缂栧彿锛屽浘鐗囩瓑
+                readExcel(file, standardRequest);
+                EamEquipment equipment = eamEquipmentService.selectByEquipmentCode(standardRequest.getEquipmentCode());
+                if(equipment == null) {
+                    log.error("璁惧涓嶅瓨鍦細{}", standardRequest.getEquipmentCode());
+                    continue;
+                }
+                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);
+                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
+     */
+    private void readExcel(MultipartFile file, EamMaintenanceStandardRequest request) {
+        Workbook book = null;
+        boolean isXSSFWorkbook = false;
+        try {
+            book = WorkbookFactory.create(file.getInputStream());
+            if (book instanceof XSSFWorkbook) {
+                isXSSFWorkbook = true;
+            }
+
+            Sheet sheet = book.getSheetAt(0);
+            //绗竴琛岃鍙�
+            Row row = sheet.getRow(0);
+            //璁惧缂栫爜
+            Cell equipmentCode = row.getCell(15);
+            if(CellType.NUMERIC.equals(equipmentCode.getCellType())) {
+                request.setEquipmentCode(String.valueOf((int) equipmentCode.getNumericCellValue()));
+            }else if(CellType.STRING.equals(equipmentCode.getCellType())) {
+                request.setEquipmentCode(equipmentCode.getStringCellValue());
+            }
+            if (StringUtils.isBlank(request.getEquipmentCode())) {
+                throw new JeecgBootException("Excel銆� " + file.getOriginalFilename() + "銆戞病鏈夎鍙栧埌璁惧缂栧彿锛屽鍏ュけ璐ワ紒");
+            }
+            //鍒濆鏃ユ湡
+            Cell initialDate = row.getCell(11);
+            if (DateUtil.isCellDateFormatted(initialDate)) {
+                request.setInitialDate(initialDate.getDateCellValue());
+            } else {
+                request.setInitialDate(new Date());
+            }
+            //璁惧鍚嶇О
+            Cell equipmentName = row.getCell(13);
+            request.setEquipmentName(equipmentName.getStringCellValue());
+
+            //绗簩琛岃鍙�
+            row = sheet.getRow(1);
+            //淇濆吇鍛ㄦ湡
+            Cell period = row.getCell(11);
+            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);
+        }
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java
new file mode 100644
index 0000000..048c2b9
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/dto/MaintenanceStandardImport.java
@@ -0,0 +1,21 @@
+package org.jeecg.modules.eam.dto;
+
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+
+@Data
+public class MaintenanceStandardImport implements Serializable {
+
+    @Excel(name = "鍥惧彿", width = 15)
+    private Integer itemCode;
+    @Excel(name = "鐐规椤圭洰", width = 15)
+    private String itemName;
+    @Excel(name = "鐐规閮ㄤ綅", width = 15)
+    private String itemPart;
+    @Excel(name = "鐐规鍐呭", width = 15)
+    private String itemContent;
+    @Excel(name = "鐐规瑕佹眰", width = 15)
+    private String itemDemand;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
index 61ba6ad..111fc78 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
@@ -10,7 +10,6 @@
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.jeecg.common.aspect.annotation.Dict;
-import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
@@ -33,66 +32,53 @@
     @ApiModelProperty(value = "涓婚敭")
 	private String id;
 	/**鍒涘缓浜�*/
-	@Excel(name = "鍒涘缓浜�", width = 15)
     @ApiModelProperty(value = "鍒涘缓浜�")
 	private String createBy;
 	/**鍒涘缓鏃堕棿*/
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
 	private Date createTime;
 	/**鏇存柊浜�*/
-	@Excel(name = "鏇存柊浜�", width = 15)
     @ApiModelProperty(value = "鏇存柊浜�")
 	private String updateBy;
 	/**鏇存柊鏃堕棿*/
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
 	private Date updateTime;
 	/**鍒犻櫎鏍囪*/
-	@Excel(name = "鍒犻櫎鏍囪", width = 15)
     @ApiModelProperty(value = "鍒犻櫎鏍囪")
 	private Integer delFlag;
 	/**鏍囧噯缂栫爜*/
-	@Excel(name = "鏍囧噯缂栫爜", width = 15)
     @ApiModelProperty(value = "鏍囧噯缂栫爜")
 	private String standardCode;
 	/**鏍囧噯鍚嶇О*/
-	@Excel(name = "鏍囧噯鍚嶇О", width = 15)
     @ApiModelProperty(value = "鏍囧噯鍚嶇О")
 	private String standardName;
 	/**淇濆吇鍛ㄦ湡;鍗曚綅:澶�*/
-	@Excel(name = "淇濆吇鍛ㄦ湡;鍗曚綅:澶�", width = 15)
     @ApiModelProperty(value = "淇濆吇鍛ㄦ湡;鍗曚綅:澶�")
 	private Integer maintenancePeriod;
 	/**鍒濆鏃ユ湡 浠庡摢涓�澶╁紑濮嬭绠椾笅娆′繚鍏绘棩鏈�*/
-	@Excel(name = "鍒濆鏃ユ湡", width = 15, format = "yyyy-MM-dd")
 	@ApiModelProperty(value = "鍒濆鏃ユ湡")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
 	private Date initialDate;
 	/**淇濆吇鍒嗙被*/
-	@Excel(name = "淇濆吇鍒嗙被", width = 15, dicCode = "maintenance_category")
     @ApiModelProperty(value = "淇濆吇鍒嗙被")
 	@Dict(dicCode = "maintenance_category")
 	private String maintenanceCategory;
 	/**璁惧缂栧彿*/
-	@Excel(name = "璁惧缂栧彿", width = 15, dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code")
     @ApiModelProperty(value = "璁惧缂栧彿")
 	@Dict(dicCode = "eam_equipment, equipment_code, id")
 	private String equipmentId;
 	/**鏍囧噯鐘舵��*/
-	@Excel(name = "鏍囧噯鐘舵��", width = 15, dicCode = "maintenance_standard_status")
     @ApiModelProperty(value = "鏍囧噯鐘舵��")
 	@Dict(dicCode = "maintenance_standard_status")
 	private String standardStatus;
 	/**鏍囧噯鐗堟湰*/
-	@Excel(name = "鏍囧噯鐗堟湰", width = 15)
     @ApiModelProperty(value = "鏍囧噯鐗堟湰")
 	private Integer standardVersion;
 	/**鏂囦欢缂栧彿*/
-	@Excel(name = "鏂囦欢缂栧彿", width = 15)
 	@ApiModelProperty(value = "鏂囦欢缂栧彿")
 	private String fileCode;
 	/**鍙傝�冩枃浠�*/
-	@Excel(name = "鍙傝�冩枃浠�", width = 15)
 	@ApiModelProperty(value = "鍙傝�冩枃浠�")
 	private String referenceFile;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java
index 019c1b6..2df9837 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java
@@ -8,6 +8,7 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.modules.eam.dto.MaintenanceStandardImport;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -48,7 +49,7 @@
 	private String standardId;
 	/**淇濆吇椤瑰簭鍙�*/
 	@ApiModelProperty(value = "淇濆吇椤瑰簭鍙�")
-	private String itemCode;
+	private Integer itemCode;
 	/**淇濆吇椤�*/
     @ApiModelProperty(value = "淇濆吇椤�")
 	private String itemName;
@@ -58,4 +59,13 @@
 	/**淇濆吇瑕佹眰*/
     @ApiModelProperty(value = "淇濆吇瑕佹眰")
 	private String itemDemand;
+
+
+	public EamMaintenanceStandardDetail(){}
+
+	public EamMaintenanceStandardDetail(MaintenanceStandardImport dto) {
+		this.itemCode = dto.getItemCode();
+		this.itemName = dto.getItemName() + " " + dto.getItemPart() + " " + dto.getItemContent();
+		this.itemDemand = dto.getItemDemand();
+	}
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java
index 213267c..d12e2ff 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java
@@ -65,6 +65,10 @@
     @ApiModelProperty(value = "鍒犻櫎 淇濆吇椤规槑缁�")
     private List<EamMaintenanceStandardDetail> removeDetailList;
 
-
+    /**
+     * Excel瀵煎叆鏃朵娇鐢�
+     */
+    private String equipmentName;
+    private String equipmentCode;
 
 }
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java
index ea9e380..dc885c0 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java
@@ -38,7 +38,7 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public String generateBusinessCodeSeq(String businessCode) {
+    public synchronized String generateBusinessCodeSeq(String businessCode) {
         //鏌ヨ鐢熸垚瑙勫垯
         LambdaQueryWrapper<SysBusinessCodeRule> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(SysBusinessCodeRule::getBusinessCode, businessCode);

--
Gitblit v1.9.3