From e2c5017787d7fc5eea2afb8bc84bca0db054ad8c Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期三, 09 四月 2025 17:46:36 +0800 Subject: [PATCH] Merge branch 'radio_frequency' of http://114.132.189.42:9002/r/lims-ruoyi-after into radio_frequency --- basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java | 306 ++++++++++----------------------------------------- 1 files changed, 60 insertions(+), 246 deletions(-) diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java index 3e84287..9a4221a 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java +++ b/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java @@ -1,20 +1,15 @@ package com.ruoyi.basic.controller; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.poi.excel.ExcelUtil; + import com.alibaba.excel.EasyExcel; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.basic.dto.*; +import com.ruoyi.basic.excel.ExcelMultiSheetImporter; import com.ruoyi.common.core.domain.Result; -import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.system.service.ISysDictTypeService; -import com.ruoyi.basic.dto.PageTestObjectDto; -import com.ruoyi.basic.dto.ProductDTO1; import com.ruoyi.basic.excel.StructureTestObjectData; import com.ruoyi.basic.excel.StructureTestObjectListener; import com.ruoyi.basic.pojo.Product; -import com.ruoyi.basic.pojo.StandardTemplate; import com.ruoyi.basic.pojo.StructureItemParameter; import com.ruoyi.basic.pojo.StructureTestObject; import com.ruoyi.basic.service.CapacityScopeService; @@ -24,18 +19,14 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; -import org.apache.commons.lang3.ObjectUtils; -import org.springframework.transaction.annotation.Transactional; +import org.apache.commons.codec.digest.DigestUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import java.util.concurrent.atomic.AtomicReference; -import java.util.stream.Collectors; /** * 妫�楠岄」鐩弬鏁�(StructureItemParameter)琛ㄦ帶鍒跺眰 @@ -61,7 +52,7 @@ @ApiOperation(value = "鑾峰彇椤圭洰妫�楠屽弬鏁板垪琛�") @GetMapping("/selectItemParameterList") - public Result selectItemParameterList(Page page,StructureItemParameter itemParameter) { + public Result selectItemParameterList(Page page, StructureItemParameter itemParameter) { return Result.success(capacityScopeService.selectItemParameterList(page, itemParameter)); } @@ -85,7 +76,7 @@ @ApiOperation(value = "鑾峰彇妫�楠屽璞�") @GetMapping("/selectTestObjectList") - public Result selectTestObjectList(Page page,PageTestObjectDto pageTestObjectDto) { + public Result selectTestObjectList(Page page, PageTestObjectDto pageTestObjectDto) { return Result.success(capacityScopeService.selectTestObjectList(page, pageTestObjectDto)); } @@ -121,7 +112,7 @@ @ApiOperation(value = "缁存姢妫�楠屽璞$殑浜у搧") @GetMapping("/selectProductListByObjectId") - public Result selectProductListByObjectId(Page page,ProductDTO1 productDTO) { + public Result selectProductListByObjectId(Page page, ProductDTO1 productDTO) { return Result.success(productService.selectProductListByObjectId(page, productDTO)); } @@ -149,245 +140,68 @@ return Result.success(capacityScopeService.getItemTree()); } + /** + * 鎴愬搧/鍘熻緟鏉� + */ + @ApiOperation(value = "鑾峰彇妫�楠屽璞℃爲") + @GetMapping("/getItemTreeProduct") + public Result getItemTreeProduct(StructureTestObjectDto structureTestObjectDto) { + return Result.success(capacityScopeService.getItemTreeProduct(structureTestObjectDto)); + } - @ApiOperation(value = "瑁呭瀵煎叆妫�楠岄」鐩�") + /** + * 鏍规嵁浜у搧鑾峰彇鍨嬪彿 + */ + @ApiOperation(value = "鑾峰彇妫�楠屽璞℃爲") + @GetMapping("/getProductTypes") + public Result getProductTypes(ModelDto modelDto) { + return Result.success(capacityScopeService.getProductTypes(modelDto)); + } + + /** + * 鏍规嵁浜у搧鑾峰彇闆朵欢鍙� + */ + @ApiOperation(value = "鑾峰彇妫�楠屽璞℃爲") + @GetMapping("/getPartNoList") + public Result getPartNoList(ProductPartDto productPartDto) { + return Result.success(capacityScopeService.getPartNoList(productPartDto)); + } + @PostMapping("/importEquipData") - @Transactional - public Result importEquipData(@RequestParam("file") MultipartFile file) throws Exception { - InputStream inputStream = file.getInputStream(); - List<StructureItemParameter> lists = new ArrayList<>(); - AtomicReference<String> sample = new AtomicReference<>(); - ExcelUtil.readBySax(inputStream, -1, (i, l, list1) -> { - if (l == 1) { - sample.set(list1.get(1) + ""); - } - if (l >= 1) { - StructureItemParameter str = new StructureItemParameter(); - // 娴嬭瘯瀵硅薄 - if (list1.get(1) == null) { - str.setSample(null); - } else { - String brand = (String) list1.get(1); - StringBuilder builder = new StringBuilder(); - builder.append("["); - // 浜у搧 - if (ObjectUtil.isNotEmpty(list1.get(2))) { - String production = (String) list1.get(2); - if (!production.contains("锛�")) { - builder.append(String.format("[\"%s\",\"%s\"]", brand, production)); - } else { - Arrays.stream(production.split("锛�")).forEach(item -> { - builder.append(String.format("[\"%s\",\"%s\"],", brand, item)); - }); - builder.deleteCharAt(builder.length() - 1); - } - } else { - builder.append("["); - builder.append(String.format("\"%s\"", brand)); - builder.append("]"); - } - builder.append("]"); - str.setSample(builder.toString()); - } - // 妫�楠岄」 - str.setInspectionItem(list1.get(4).toString().trim()); - // 妫�楠岄」鑻辨枃 - if (list1.get(5) != null) { - str.setInspectionItemEn(list1.get(5).toString()); - } - // 妫�楠屽瓙椤� - if (list1.get(6) == null) { - str.setInspectionItemSubclass(null); - } else { - str.setInspectionItemSubclass(list1.get(6).toString().trim()); - } - // 妫�楠屽瓙椤硅嫳鏂� - if (list1.get(7) == null) { - str.setInspectionItemSubclassEn(null); - } else { - str.setInspectionItemSubclassEn(String.valueOf(list1.get(7).toString())); - } - // 妫�楠岄」鍒嗙被 - if (list1.get(22) != null && list1.get(22) != "") { - str.setInspectionItemClass(list1.get(22).toString().trim()); - } else { - str.setInspectionItemClass(null); - } - // 妫�楠岄」鍒嗙被鑻辨枃 - if (list1.get(23) != null && list1.get(23) != "") { - str.setInspectionItemClassEn(list1.get(23) + ""); - } else { - str.setInspectionItemClassEn(null); - } - - LambdaQueryWrapper<StructureItemParameter> wrapper = Wrappers.lambdaQuery(StructureItemParameter.class) - .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem()) - .eq(StructureItemParameter::getSample, str.getSample()) - - .last("limit 1"); - // 鍒ゆ柇鏄惁鏈夋楠岄」绫诲瀷 - if (ObjectUtils.isNotEmpty(str.getInspectionItemClass())) { - wrapper.eq(StructureItemParameter::getInspectionItemClass, str.getInspectionItemClass()); - } - - // 鍒ゆ柇鏄惁鏈夋楠屽瓙椤� - if (ObjectUtils.isNotEmpty(str.getInspectionItemSubclass())) { - wrapper.eq(StructureItemParameter::getInspectionItemSubclass, str.getInspectionItemSubclass()); - } - StructureItemParameter db_str = structureItemParameterService.getOne(wrapper); - if (ObjectUtils.isNotEmpty(db_str)) { - str.setId(db_str.getId()); - } - // 鏂规硶鍚嶇О - if (list1.get(8) == null) { - str.setMethod(null); - } else { - StringBuffer buffer = new StringBuffer(); - String input = list1.get(8).toString(); - buffer.append("["); - String[] values = input.split("锛�"); - for (String value : values) { - buffer.append("\"").append(value.trim()).append("\","); - } - buffer.deleteCharAt(buffer.length() - 1); - buffer.append("]"); - str.setMethod(buffer.toString()); - } - // 璇曢獙瀹� - if (list1.get(9) == null) { - str.setSonLaboratory(null); - } else { - str.setSonLaboratory(list1.get(9).toString()); - } - // 璁¢噺鍗曚綅 - if (list1.get(10) == null) { - str.setUnit(null); - } else { - str.setUnit(list1.get(10).toString()); - } - // 瑕佹眰鍊� - if (list1.get(11) == null) { - str.setAskTell(null); - } else { - str.setAskTell(list1.get(11).toString()); - } - // 瑕佹眰鎻忚堪 - if (list1.get(12) == null) { - str.setAsk(null); - } else { - str.setAsk(list1.get(12).toString()); - } - // 鍗曚环 - if (list1.get(13) == null) { - str.setPrice(null); - } else { - str.setPrice(list1.get(13) + ""); - } - // 宸ユ椂绯绘暟 - if (list1.get(14) == null) { - str.setManHour(null); - } else { - str.setManHour(Double.valueOf(list1.get(14).toString())); - } - // 宸ユ椂鍒嗙粍 - if (list1.get(15) == null) { - str.setManHourGroup(null); - } else { - str.setManHourGroup(list1.get(15).toString()); - } - // 棰勮瀹屾垚鏃堕棿 - if (list1.get(16) == null) { - str.setManDay(null); - } else { - str.setManDay(Integer.valueOf(list1.get(16).toString())); - } - // 鏁版嵁绫诲瀷 - String jy; - if (list1.get(17).toString().equals("闈為噰闆嗙被鍨�")) { - jy = "0"; - } else { - jy = "1"; - } - str.setInspectionItemType(jy); - // 妫�楠岄」绫诲瀷 - String validateValueType = list1.get(18).toString(); - if (ObjectUtils.isNotEmpty(validateValueType)) { - List<SysDictData> enums = dictTypeService.selectDictDataByName("妫�楠屽�肩被鍨�") - .stream().filter(sysDictData -> sysDictData.getDictLabel().equals(validateValueType)).collect(Collectors.toList()); - str.setInspectionValueType(enums.get(0).getDictValue()); - } - int bsm; - //鐗规畩鏍囪瘑 - if (list1.get(19).toString().equals("鍚�")) { - bsm = 0; - } else { - bsm = 1; - } - str.setBsm(bsm + ""); - // 鏁板瓧瀛楀吀 - if (list1.get(20) != null) { - str.setDic(list1.get(20) + ""); - } else { - str.setDic(null); - } - // 鍘熷璁板綍妯℃澘 - StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list1.get(21))); - if (standTempIdByName != null) { - str.setTemplateId(standTempIdByName.getId()); - } else { - str.setTemplateId(null); - } - try { - if (list1.get(24) != null) { - str.setLaboratory(list1.get(24) + ""); - } - } catch (Exception e) { - } - - // 鏉′欢 - if (list1.get(25) == null) { - str.setRadiusList(null); - } else { - StringBuffer buffer = new StringBuffer(); - String input = list1.get(25).toString(); - buffer.append("["); - String[] values = input.split("锛�"); - for (String value : values) { - buffer.append("\"").append(value.trim()).append("\","); - } - buffer.deleteCharAt(buffer.length() - 1); - buffer.append("]"); - str.setRadiusList(buffer.toString()); - } - // 鏀惰垂鏍囧噯 - if (list1.get(26) == null) { - str.setRates(null); - } else { - str.setRates(list1.get(26) + ""); - } - - lists.add(str); - } - }); -// structureItemParameterService.removeNoSample(sample.get()); - // 濡傛灉鏁版嵁搴撻噷闈㈢殑鏁版嵁瀛樺湪閭d箞灏辨墽琛屾洿鏂版嫹璐濇搷浣� - try { - structureItemParameterService.saveOrUpdateBatch(lists); - } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException("鏈嶅姟绔姤閿�"); - } - return Result.success(); + public Result importData(@RequestParam("file") MultipartFile file) { + // 璋冪敤瀵煎叆宸ュ叿 + String result = ExcelMultiSheetImporter.importExcel(file, structureItemParameterService, standardTemplateService, dictTypeService); + return Result.success(result); } @ApiOperation(value = "瀵煎叆妫�楠屽璞�") @PostMapping("/importExcel") public Result importExcel(@RequestParam("file") MultipartFile file) { - try { - EasyExcel.read(file.getInputStream(), StructureTestObjectData.class, new StructureTestObjectListener(productService)).sheet().doRead(); + List<String> processedFiles = new ArrayList<>(); + try (InputStream inputStream = file.getInputStream()) { + String fileHash = DigestUtils.md5Hex(inputStream); + if (processedFiles.contains(fileHash)) { + return Result.success(); // 宸插鐞嗚繃鐨勬枃浠剁洿鎺ヨ烦杩� + } + processedFiles.add(fileHash); + + EasyExcel.read(file.getInputStream(), StructureTestObjectData.class, new StructureTestObjectListener(capacityScopeService)).sheet().doRead(); } catch (IOException e) { - e.printStackTrace(); + // 杩欓噷鍙互鏍规嵁瀹為檯鎯呭喌杩涜鏇村畬鍠勭殑閿欒澶勭悊锛屾瘮濡傝褰曟棩蹇楃瓑 + System.err.println("璇诲彇鏂囦欢鏃跺彂鐢熼敊璇�: " + e.getMessage()); } return Result.success(); } + + @ApiOperation(value = "鏇存柊浜у搧杞﹂棿") + @PostMapping("/updateWorkShop") + public Result updateWorkShop(@RequestBody ProductDto productDto) { + return Result.success(productService.updateWorkShop(productDto.getId(), productDto.getWorkShopId(), productDto.getWorkShopName())); + } + + @ApiOperation(value = "鏇存柊妫�娴嬪璞¤溅闂�") + @PostMapping("/updateObjectWorkShop") + public Result updateObjectWorkShop(@RequestBody StructureTestObjectDto structureTestObjectDto) { + return Result.success(productService.updateObjectWorkShop(structureTestObjectDto)); + } } -- Gitblit v1.9.3