From f745556104a77d62e4e05cc95231d637290faf0a Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期三, 26 三月 2025 14:56:59 +0800 Subject: [PATCH] art: 设备台账-导入功能 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java | 100 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 96 insertions(+), 4 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java index 43f40b6..a451225 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java @@ -1,10 +1,12 @@ package org.jeecg.modules.eam.controller; +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.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.base.controller.JeecgController; @@ -14,14 +16,20 @@ import org.jeecg.modules.eam.vo.EamEquipmentTree; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.service.IMdcEquipmentService; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.entity.ImportParams; 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.io.IOException; import java.util.Arrays; import java.util.List; +import java.util.Map; /** * @Description: 璁惧鍙拌处 @@ -75,7 +83,7 @@ return Result.OK("娣诲姞澶辫触锛�"); } //璋冪敤mdcEquipment鎻掑叆MDC璁惧 - if(CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { + if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { //鎻掑叆MDC璁惧 MdcEquipment mdcEquipment = new MdcEquipment(); mdcEquipment.setEquipmentId(entity.getEquipmentCode()); @@ -109,7 +117,7 @@ @DeleteMapping(value = "/delete") public Result<?> delete(@RequestParam(name = "id", required = true) String id) { EamEquipment entity = eamEquipmentService.getById(id); - if(entity != null) { + if (entity != null) { entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamEquipmentService.updateById(entity); } @@ -128,7 +136,7 @@ List<String> list = Arrays.asList(ids.split(",")); list.forEach(id -> { EamEquipment entity = eamEquipmentService.getById(id); - if(entity != null) { + if (entity != null) { entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamEquipmentService.updateById(entity); } @@ -169,7 +177,91 @@ */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, EamEquipment.class); + 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(0); + params.setHeadRows(1); + params.setNeedSave(true); + try { + List<EamEquipment> list = ExcelImportUtil.importExcel(file.getInputStream(), EamEquipment.class, params); + //update-begin-author:taoyan date:20190528 for:鎵归噺鎻掑叆鏁版嵁 + long start = System.currentTimeMillis(); +// service.saveBatch(list); + StringBuilder sb = new StringBuilder(); + for (EamEquipment eamEquipment : list) { + //蹇呭~瀛楁鏍¢獙 + if (StringUtils.isBlank(eamEquipment.getEquipmentCode()) || StringUtils.isBlank(eamEquipment.getEquipmentName())) { + sb.append(String.format("璁惧缂栫爜[%s]鎴栬澶囧悕绉癧%s]涓虹┖锛屾棤娉曞鍏n\n", eamEquipment.getEquipmentCode(), eamEquipment.getEquipmentName())); + continue; + } + if (StringUtils.isBlank(eamEquipment.getEquipmentCategory())) { + sb.append(String.format("璁惧缂栫爜[%s]璁惧鍒嗙被涓虹┖锛屾棤娉曞鍏n\n", eamEquipment.getEquipmentCode())); + continue; + } + if (StringUtils.isBlank(eamEquipment.getOrgId()) || StringUtils.isBlank(eamEquipment.getEquipmentManager())) { + sb.append(String.format("璁惧缂栫爜[%s]浣跨敤杞﹂棿鎴栬澶囩鐞嗗憳涓虹┖锛屾棤娉曞鍏n\n", eamEquipment.getEquipmentCode())); + continue; + } + if (eamEquipment.getAcceptanceCheckDate() == null) { + sb.append(String.format("璁惧缂栫爜[%s]楠屾敹涓虹┖锛屾棤娉曞鍏n\r", eamEquipment.getEquipmentCode())); + continue; + } + if (StringUtils.isBlank(eamEquipment.getTechnologyStatus())) { + sb.append(String.format("璁惧缂栫爜[%s]鎶�鏈姸鎬佷负绌猴紝鏃犳硶瀵煎叆\n\r", eamEquipment.getEquipmentCode())); + continue; + } + EamEquipment one = eamEquipmentService.getOne(new LambdaQueryWrapper<EamEquipment>().eq(EamEquipment::getEquipmentCode, eamEquipment.getEquipmentCode()).eq(EamEquipment::getDelFlag, CommonConstant.DEL_FLAG_0)); + if (one != null) { + sb.append(String.format("璁惧缂栫爜[%s]宸插瓨鍦紝鏃犳硶閲嶅瀵煎叆\n\r", eamEquipment.getEquipmentCode())); + continue; + } + EamEquipment equipment = eamEquipmentService.saveEquipment(eamEquipment); + if (equipment == null) { + //淇濆瓨澶辫触锛岃烦杩囨湰娆″惊鐜� + sb.append(String.format("璁惧缂栫爜[%s]淇濆瓨澶辫触锛屾棤娉曞鍏n\r", eamEquipment.getEquipmentCode())); + continue; + } + //璋冪敤mdcEquipment鎻掑叆MDC璁惧 + if (CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) { + //鎻掑叆MDC璁惧 + MdcEquipment mdcEquipment = new MdcEquipment(); + mdcEquipment.setEquipmentId(eamEquipment.getEquipmentCode()); + mdcEquipment.setEquipmentType(eamEquipment.getDeviceType()); + mdcEquipment.setEquipmentName(eamEquipment.getEquipmentName()); + mdcEquipmentService.addNewEquipmentFromEam(mdcEquipment, eamEquipment.getOrgId()); + } + } + //400鏉� saveBatch娑堣�楁椂闂�1592姣 寰幆鎻掑叆娑堣�楁椂闂�1947姣 + //1200鏉� saveBatch娑堣�楁椂闂�3687姣 寰幆鎻掑叆娑堣�楁椂闂�5212姣 + log.info("娑堣�楁椂闂�" + (System.currentTimeMillis() - start) + "姣"); + //update-end-author:taoyan date:20190528 for:鎵归噺鎻掑叆鏁版嵁 + if (sb.length() > 0) { + return Result.ok(sb.toString()); + } + return Result.ok("鏂囦欢瀵煎叆鎴愬姛锛佹暟鎹鏁帮細" + list.size()); + } catch (Exception e) { + //update-begin-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず + String msg = e.getMessage(); + log.error(msg, e); + if (msg != null && msg.indexOf("Duplicate entry") >= 0) { + return Result.error("鏂囦欢瀵煎叆澶辫触:鏈夐噸澶嶆暟鎹紒"); + } else { + return Result.error("鏂囦欢瀵煎叆澶辫触:" + e.getMessage()); + } + //update-end-author:taoyan date:20211124 for: 瀵煎叆鏁版嵁閲嶅澧炲姞鎻愮ず + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return Result.error("鏂囦欢瀵煎叆澶辫触锛�"); } @ApiOperation(value = "璁惧琛�-閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�", notes = "璁惧琛�-閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�") -- Gitblit v1.9.3