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