From 21cbdad6f59a045910b22bb3bf771e47d56c096f Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期五, 13 六月 2025 11:36:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 157 insertions(+), 5 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..f0615fc 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,27 +1,43 @@
package org.jeecg.modules.eam.controller;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
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;
+import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.modules.eam.entity.EamEquipment;
+import org.jeecg.modules.eam.entity.EamEquipmentExtend;
import org.jeecg.modules.eam.request.EamEquipmentQuery;
+import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.vo.EamEquipmentTree;
+import org.jeecg.modules.eam.vo.EquipmentSearchResult;
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: 璁惧鍙拌处
@@ -38,7 +54,15 @@
private IEamEquipmentService eamEquipmentService;
@Autowired
+ private IEamEquipmentExtendService eamEquipmentExtendService;
+
+ @Autowired
private IMdcEquipmentService mdcEquipmentService;
+
+ @Autowired
+ private ObjectMapper objectMapper;
+ @Autowired
+ private TranslateDictTextUtils translateDictTextUtils;
/**
* 鍒嗛〉鍒楄〃鏌ヨ
@@ -75,7 +99,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 +133,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 +152,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);
}
@@ -146,7 +170,30 @@
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
EamEquipment eamEquipment = eamEquipmentService.getById(id);
- return Result.OK(eamEquipment);
+ if (eamEquipment == null) {
+ return Result.error("鏈壘鍒板搴旀暟鎹�");
+ }
+ EamEquipmentExtend extend = eamEquipmentExtendService.getById(id);
+ if(extend != null){
+ eamEquipment.setRepairStatus(extend.getRepairStatus());
+ eamEquipment.setMaintenanceStatus(extend.getMaintenanceStatus());
+ }
+ try {
+ String json = objectMapper.writeValueAsString(eamEquipment);
+ JSONObject item = JSONObject.parseObject(json, Feature.OrderedField);
+ translateDictTextUtils.translateField("createBy", eamEquipment.getCreateBy(), item, "sys_user,realname,username");
+ translateDictTextUtils.translateField("updateBy", eamEquipment.getUpdateBy(), item, "sys_user,realname,username");
+ translateDictTextUtils.translateField("technologyStatus", eamEquipment.getTechnologyStatus(), item, "technology_status");
+ translateDictTextUtils.translateField("orgId", eamEquipment.getOrgId(), item, "mdc_production,production_name,id");
+ translateDictTextUtils.translateField("equipmentManager", eamEquipment.getEquipmentManager(), item, "sys_user,realname,username");
+ translateDictTextUtils.translateField("equipmentCategory", eamEquipment.getEquipmentCategory(), item, "equipment_category");
+ translateDictTextUtils.translateField("assetStatus", eamEquipment.getAssetStatus(), item, "asset_status");
+ translateDictTextUtils.translateField("repairStatus", eamEquipment.getRepairStatus(), item, "equipment_repair_status");
+ translateDictTextUtils.translateField("maintenanceStatus", eamEquipment.getMaintenanceStatus(), item, "equipment_maintenance_status");
+ return Result.OK(item);
+ } catch (JsonProcessingException e) {
+ return Result.error("鏁版嵁杞瘧澶辫触锛�");
+ }
}
/**
@@ -169,7 +216,96 @@
*/
@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);
+ params.setStartSheetIndex(0);
+ params.setSheetNum(1);
+ 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;
+ }
+ if (!CommonConstant.DEFAULT_1.equals(eamEquipment.getMdcFlag())) {
+ eamEquipment.setMdcFlag(CommonConstant.DEFAULT_0);
+ }
+ 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鑾峰彇璁惧鏍�")
@@ -186,4 +322,20 @@
return result;
}
+ /**
+ * 妫�绱㈣澶�
+ * @param keyword 鏌ヨ鍏抽敭璇� 璁惧缂栧彿锛岃澶囧悕绉版ā绯婂尮閰�
+ * @param pageSize 涓�娆¤繑鍥炲灏戣褰�
+ * @param id 璁惧涓婚敭
+ * @return
+ */
+ @ApiOperation(value = "璁惧琛�-寮傛鍔犺浇璁惧鍒楄〃", notes = "璁惧琛�-寮傛鍔犺浇璁惧鍒楄〃")
+ @GetMapping(value = "/asyncLoadEquipment")
+ public Result<?> asyncLoadEquipment(@RequestParam(name="keyword",required = false) String keyword,
+ @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize,
+ @RequestParam(name="id",required = false) String id) {
+ List<EquipmentSearchResult> resultList = eamEquipmentService.asyncLoadEquipment(keyword, pageSize, id);
+ return Result.ok(resultList);
+ }
+
}
--
Gitblit v1.9.3