From a8ddac646d5129e9818ea82f404d0c0a8d2bc239 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 09 十一月 2023 10:39:25 +0800
Subject: [PATCH] 设备参数阈值管理接口
---
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PrecisionParametersTemplateController.java | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 221 insertions(+), 15 deletions(-)
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PrecisionParametersTemplateController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PrecisionParametersTemplateController.java
index 2ab70b8..bab6efc 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PrecisionParametersTemplateController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PrecisionParametersTemplateController.java
@@ -4,10 +4,16 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
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.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
@@ -15,18 +21,23 @@
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
//import org.jeecg.modules.base.service.IUnitService;
-import org.jeecg.modules.eam.entity.PrecisionParameters;
-import org.jeecg.modules.eam.entity.PrecisionParametersTemplate;
-import org.jeecg.modules.eam.entity.PrecisionParametersTemplateDetail;
-import org.jeecg.modules.eam.service.IPrecisionParametersCategoryService;
-import org.jeecg.modules.eam.service.IPrecisionParametersService;
-import org.jeecg.modules.eam.service.IPrecisionParametersTemplateDetailService;
-import org.jeecg.modules.eam.service.IPrecisionParametersTemplateService;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.eam.entity.*;
+import org.jeecg.modules.eam.service.*;
+import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* @Description: 绮惧害鍙傛暟妯℃澘
@@ -48,8 +59,9 @@
@Autowired
private IPrecisionParametersCategoryService precisionParametersCategoryService;
- // @Autowired
-// private IUnitService unitService;
+ @Autowired
+ private IEamEquipmentService equipmentService;
+
@Autowired
private IPrecisionParametersService precisionParametersService;
@@ -77,12 +89,29 @@
List<PrecisionParametersTemplateDetail> precisionParametersTemplateDetailList = precisionParametersTemplateDetailService.lambdaQuery().eq(PrecisionParametersTemplateDetail::getPrecisionParametersTemplateId, record.getId()).eq(PrecisionParametersTemplateDetail::getDelFlag, CommonConstant.DEL_FLAG_0).list();
for (PrecisionParametersTemplateDetail precisionParametersTemplateDetail : precisionParametersTemplateDetailList) {
PrecisionParameters precisionParameters = precisionParametersService.getById(precisionParametersTemplateDetail.getPrecisionParametersId());
- precisionParametersTemplateDetail.setPrecisionParametersNum(precisionParameters.getNum());
- precisionParametersTemplateDetail.setPrecisionParametersName(precisionParameters.getName());
- precisionParametersTemplateDetail.setPrecisionParametersCategory(precisionParametersCategoryService.getById(precisionParameters.getPrecisionParametersCategoryId()).getName());
-// precisionParametersTemplateDetail.setUnit(unitService.getById(precisionParameters.getUnitId()).getName());
- String unitName = sysBaseApi.getUnitNameById(precisionParameters.getUnitId());
- precisionParametersTemplateDetail.setUnit(unitName);
+
+ if(precisionParameters != null){
+ String num = precisionParameters.getNum();
+ String name =precisionParameters.getName();
+ if (num!=null){
+ precisionParametersTemplateDetail.setPrecisionParametersNum(num);
+ }
+ if (name!=null){
+ precisionParametersTemplateDetail.setPrecisionParametersName(name);
+ }
+ String id = precisionParameters.getPrecisionParametersCategoryId();
+ if (id!=null){
+ PrecisionParametersCategory precisionParametersCategory = precisionParametersCategoryService.getById(id);
+ precisionParametersTemplateDetail.setPrecisionParametersCategory(precisionParametersCategory.getName());
+ }
+ }else{
+ precisionParametersTemplateDetail.setPrecisionParametersCategory("/");
+ }
+ if (precisionParameters!=null){
+ String unitName = sysBaseApi.getUnitNameById(precisionParameters.getUnitId());
+ precisionParametersTemplateDetail.setUnit(unitName);
+ }
+
}
record.setPrecisionParametersTemplateDetailList(precisionParametersTemplateDetailList);
@@ -157,5 +186,182 @@
}
return Result.OK("鍒犻櫎鎴愬姛!");
}
+ /**
+ * 娣诲姞
+ *
+ * @param precisionParametersTemplate
+ * @return
+ */
+ @ApiOperation(value = "绮惧害鍙傛暟妯℃澘-娣诲姞", notes = "绮惧害鍙傛暟妯℃澘-娣诲姞")
+ @PostMapping(value = "/addNew")
+ public Result<?> addNew(@RequestBody PrecisionParametersTemplate precisionParametersTemplate) {
+ precisionParametersTemplateService.save(precisionParametersTemplate);
+ String id= precisionParametersTemplate.getId();
+ List<PrecisionParametersTemplateDetail> details = precisionParametersTemplate.getPrecisionParametersTemplateDetailList();
+ for(PrecisionParametersTemplateDetail precisionParametersTemplateDetail:details){
+ precisionParametersTemplateDetail.setPrecisionParametersTemplateId(id);
+ }
+ precisionParametersTemplateDetailService.saveBatch(details);
+ return Result.OK("娣诲姞鎴愬姛");
+ }
+ /**
+ * 娣诲姞
+ *
+ * @param precisionParametersTemplate
+ * @return
+ */
+ @ApiOperation(value = "绮惧害鍙傛暟妯℃澘-娣诲姞", notes = "绮惧害鍙傛暟妯℃澘-娣诲姞")
+ @PutMapping(value = "/editNew")
+ public Result<?> editNew(@RequestBody PrecisionParametersTemplate precisionParametersTemplate) {
+ precisionParametersTemplateService.saveOrUpdate(precisionParametersTemplate);
+ String id= precisionParametersTemplate.getId();
+ precisionParametersTemplateDetailService.remove(new QueryWrapper<PrecisionParametersTemplateDetail>().eq("precision_parameters_template_id",id));
+ List<PrecisionParametersTemplateDetail> details = precisionParametersTemplate.getPrecisionParametersTemplateDetailList();
+ precisionParametersTemplateDetailService.saveBatch(details);
+ return Result.OK("鎿嶄綔 鎴愬姛");
+ }
+ @GetMapping("/getNums")
+ public Result<?> getNums(@RequestParam(name = "searchText", defaultValue = "") String searchText){
+ List<String> nums = equipmentService
+ .list(new QueryWrapper<Equipment>()
+ .like("num",searchText)
+ )
+ .stream()
+ .map(Equipment::getNum)
+ .collect(Collectors.toList());
+ return Result.OK(nums);
+ }
+ /**
+ * 瀵煎叆
+ * @return
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ @Transactional(rollbackFor = Exception.class)
+ public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+ LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+ String exceptionInfo = "";
+ int exceptionNum = 0;
+ for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+ MultipartFile file = entity.getValue();
+ ImportParams params = new ImportParams();
+ params.setNeedSave(true);
+ try {
+ InputStream fis = file.getInputStream();
+ Workbook workbook = new XSSFWorkbook(fis);
+ Sheet sheet = workbook.getSheetAt(0);
+ Row row1 = sheet.getRow(1);
+ Cell cell15 = row1.getCell(5);
+ if(ObjectUtils.isNotNull(cell15)&&cell15.getCellType()==CellType.NUMERIC){
+ String num = (int)cell15.getNumericCellValue()+"";
+ PrecisionParametersTemplate precisionParametersTemplate = precisionParametersTemplateService.getOne(new QueryWrapper<PrecisionParametersTemplate>().eq("num",num).eq("del_flag",0),false);
+ if(ObjectUtils.isNull(precisionParametersTemplate)){
+ precisionParametersTemplate = new PrecisionParametersTemplate();
+ precisionParametersTemplate.setNum(num);
+ precisionParametersTemplate.setName(num+"绮惧害妫�楠屽崟");
+ precisionParametersTemplate.setDelFlag(0);
+ precisionParametersTemplateService.save(precisionParametersTemplate);
+ }
+ precisionParametersTemplateDetailService.remove(new QueryWrapper<PrecisionParametersTemplateDetail>().eq("precision_parameters_template_id",precisionParametersTemplate.getId()));
+ for (Row row : sheet) {
+ if(row.getRowNum()>3&&row.getRowNum()<sheet.getLastRowNum()){
+ PrecisionParametersTemplateDetail precisionParametersTemplateDetail = new PrecisionParametersTemplateDetail();
+ Cell cell1 = row.getCell(1);
+ String cellValue1 = "";
+ if(isMergedCell(sheet,cell1)){
+ cellValue1 = getMergedCellValue(sheet,cell1);
+ }
+ else if (cell1.getCellType() == CellType.STRING) {
+ cellValue1 = cell1.getStringCellValue();
+ }
+ Cell cell3 = row.getCell(3);
+ String cellValue3 = "";
+ if (cell3.getCellType() == CellType.STRING) {
+ cellValue3 = cell3.getStringCellValue();
+ }
+ Cell cell4 = row.getCell(4);
+ String cellValue4 = "";
+ if(isMergedCell(sheet,cell4)){
+ cellValue4 = getMergedCellValue(sheet,cell4);
+ }
+ else if (cell4.getCellType() == CellType.STRING) {
+ cellValue4 = cell4.getStringCellValue();
+ }else if(cell4.getCellType() == CellType.NUMERIC){
+ cellValue4 = String.valueOf(cell4.getNumericCellValue());
+ }
+ PrecisionParameters precisionParameters = precisionParametersService.getOne(new QueryWrapper<PrecisionParameters>().eq("name",cellValue1).eq("precision_parameters_uda1",cellValue3).eq("del_flag",0));
+ if(ObjectUtils.isNull(precisionParameters)){
+ precisionParameters = new PrecisionParameters();
+ precisionParameters.setName(cellValue1);
+ precisionParameters.setPrecisionParametersUda1(cellValue3);
+ precisionParameters.setDelFlag(0);
+ precisionParametersService.save(precisionParameters);
+ }
+ precisionParametersTemplateDetail.setPrecisionParametersTemplateId(precisionParametersTemplate.getId());
+ precisionParametersTemplateDetail.setPrecisionParametersId(precisionParameters.getId());
+ precisionParametersTemplateDetail.setPrecisionParametersUda1(cellValue3);
+ precisionParametersTemplateDetail.setTolerance(cellValue4);
+ String[] needs = cellValue4.split("/");
+ if(needs.length==2){
+ precisionParametersTemplateDetail.setDistance(Double.valueOf(needs[1]));
+ }
+ if(StringUtils.isNotBlank(needs[0])){
+ precisionParametersTemplateDetail.setBase(Double.valueOf(needs[0]));
+ }
+ precisionParametersTemplateDetail.setSort(row.getRowNum()-4);
+ precisionParametersTemplateDetailService.save(precisionParametersTemplateDetail);
+ }
+ }
+ Equipment equipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",num).eq("del_flag",0),false);
+ if(ObjectUtils.isNotNull(equipment)&&StringUtils.isBlank(equipment.getPrecisionParametersTemplateId())){
+ equipment.setPrecisionParametersTemplateId(precisionParametersTemplate.getId());
+ equipmentService.updateById(equipment);
+ }
+ return Result.OK("瀵煎叆鎴愬姛");
+ }
+ else {
+ return Result.OK("瀵煎叆澶辫触,缁熶竴缂栫爜鏍煎紡閿欒锛岃姝g‘濉啓琛ㄥご");
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return Result.error("鏂囦欢瀵煎叆澶辫触锛�");
+ }
+ /**
+ *
+ * 妫�鏌ュ崟鍏冩牸鏄惁鍦ㄥ悎骞跺崟鍏冩牸鑼冨洿鍐�.
+ *
+ */
+ private boolean isMergedCell(Sheet sheet, Cell cell) {
+ for (CellRangeAddress mergedRegion : sheet.getMergedRegions()) {
+ if (mergedRegion.isInRange(cell.getRowIndex(), cell.getColumnIndex())) {
+ return true;
+ }
+ }
+ return false;
+ }
+ /**
+ *
+ * 鑾峰彇鍚堝苟鍗曞厓鏍肩殑鍊�.
+ *
+ */
+ private String getMergedCellValue(Sheet sheet, Cell cell) {
+ for (CellRangeAddress mergedRegion : sheet.getMergedRegions()) {
+ if (mergedRegion.isInRange(cell.getRowIndex(), cell.getColumnIndex())) {
+ Row firstRow = sheet.getRow(mergedRegion.getFirstRow());
+ Cell firstCell = firstRow.getCell(mergedRegion.getFirstColumn());
+ if (firstCell != null) {
+ if (firstCell.getCellType() == CellType.STRING) {
+ return firstCell.getStringCellValue();
+ } else if (firstCell.getCellType() == CellType.NUMERIC) {
+ return String.valueOf(firstCell.getNumericCellValue());
+ }
+ }
+ }
+ }
+ return null;
+ }
}
--
Gitblit v1.9.3