From 286375a43369462cd75147271949cf819916912f Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期五, 12 一月 2024 16:39:17 +0800 Subject: [PATCH] 问题项修改 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PrecisionParametersTemplateController.java | 210 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 200 insertions(+), 10 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 1942634..4b00c90 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,19 +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.PrecisionParametersCategory; -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: 绮惧害鍙傛暟妯℃澘 @@ -49,8 +59,9 @@ @Autowired private IPrecisionParametersCategoryService precisionParametersCategoryService; - // @Autowired -// private IUnitService unitService; + @Autowired + private IEamEquipmentService equipmentService; + @Autowired private IPrecisionParametersService precisionParametersService; @@ -175,5 +186,184 @@ } return Result.OK("鍒犻櫎鎴愬姛!"); } + /** + * 娣诲姞 + * + * @param precisionParametersTemplate + * @return + */ + @ApiOperation(value = "绮惧害鍙傛暟妯℃澘-娣诲姞", notes = "绮惧害鍙傛暟妯℃澘-娣诲姞") + @PostMapping(value = "/addNew") + @Transactional(rollbackFor = { Exception.class }) + public Result<?> addNew(@RequestBody PrecisionParametersTemplate precisionParametersTemplate) { + precisionParametersTemplateService.save(precisionParametersTemplate); + String id= precisionParametersTemplate.getId(); + List<PrecisionParametersTemplateDetail> details = precisionParametersTemplate.getPrecisionParametersTemplateDetailList(); + for(PrecisionParametersTemplateDetail precisionParametersTemplateDetail:details){ + precisionParametersTemplateDetail.setId(""); + 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