From 379222715511cc4d6efd4abbbb3463f5485f590d Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期二, 11 三月 2025 10:27:30 +0800 Subject: [PATCH] Merge branch 'dev_cr' into dev --- basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java | 382 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 382 insertions(+), 0 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 new file mode 100644 index 0000000..a567c11 --- /dev/null +++ b/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java @@ -0,0 +1,382 @@ +package com.ruoyi.basic.controller; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.poi.excel.ExcelUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.util.StringUtils; +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.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; +import com.ruoyi.basic.service.ProductService; +import com.ruoyi.basic.service.StandardTemplateService; +import com.ruoyi.basic.service.StructureItemParameterService; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.core.domain.entity.SysDictData; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.system.service.ISysDictTypeService; +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.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)琛ㄦ帶鍒跺眰 + * + * @author makejava + * @since 2024-02-26 16:21:17 + */ +@Api(tags = "鑳藉姏鑼冨洿") +@AllArgsConstructor +@RestController +@RequestMapping("/capacityScope") +public class CapacityScopeController { + + private CapacityScopeService capacityScopeService; + + private ProductService productService; + + private StructureItemParameterService structureItemParameterService; + + private ISysDictTypeService dictTypeService; + + private StandardTemplateService standardTemplateService; + + @ApiOperation(value = "鑾峰彇椤圭洰妫�楠屽弬鏁板垪琛�") + @GetMapping("/selectItemParameterList") + public Result selectItemParameterList(Page page, StructureItemParameter itemParameter) throws Exception { + return Result.success(capacityScopeService.selectItemParameterList(page, itemParameter)); + } + + @ApiOperation(value = "娣诲姞椤圭洰妫�楠屽弬鏁�") + @PostMapping("/addItemParameter") + public Result addItemParameter(@RequestBody StructureItemParameter itemParameter) { + return Result.success(capacityScopeService.addItemParameter(itemParameter)); + } + + @ApiOperation(value = "鍒犻櫎椤圭洰妫�楠屽弬鏁�") + @DeleteMapping("/delItemParameter") + public Result<?> delItemParameter(Integer id) { + return Result.success(capacityScopeService.delItemParameter(id)); + } + + @ApiOperation(value = "淇敼椤圭洰妫�楠屽弬鏁�") + @PostMapping("/upItemParameter") + public Result<?> upItemParameter(@RequestBody StructureItemParameter itemParameter) { + return Result.success(capacityScopeService.upItemParameter(itemParameter)); + } + + @ApiOperation(value = "鑾峰彇妫�楠屽璞�") + @GetMapping("/selectTestObjectList") + public Result selectTestObjectList(Page page, PageTestObjectDto pageTestObjectDto) throws Exception { + return Result.success(capacityScopeService.selectTestObjectList(page, pageTestObjectDto)); + } + + @ApiOperation(value = "娣诲姞妫�楠屽璞�") + @PostMapping("/addTestObject") + public Result addTestObject(@RequestBody StructureTestObject testObject) { + return Result.success(capacityScopeService.addTestObject(testObject)); + } + + @ApiOperation(value = "鍒犻櫎妫�楠屽璞�") + @DeleteMapping("/delTestObject") + public Result<?> delTestObject(Integer id) { + return Result.success(capacityScopeService.delTestObject(id)); + } + + @ApiOperation(value = "淇敼妫�楠屽璞�") + @PostMapping("/upTestObject") + public Result upTestObject(@RequestBody StructureTestObject testObject) { + return Result.success(capacityScopeService.upTestObject(testObject)); + } + + @ApiOperation(value = "鑾峰彇妫�楠屽璞℃灇涓�") + @GetMapping("/selectTestObjectByName") + public Result selectTestObjectByName() { + return Result.success(capacityScopeService.selectTestObjectByName()); + } + + @ApiOperation(value = "鑾峰彇妫�楠岄」鍜屽瓙椤�") + @GetMapping("/selectTestInspectionItem") + public Result selectTestObjectInspectionItem(String specimenName) { + return Result.success(structureItemParameterService.selectTestObjectInspectionItem(specimenName)); + } + + @ApiOperation(value = "鑾峰彇妫�楠岄」鍜屽瓙椤�") + @GetMapping("/selectTestInspectionItemSub") + public Result selectTestInspectionItemSub(String inspectionItemSubclass) { + return Result.success(structureItemParameterService.selectTestInspectionItemSub(inspectionItemSubclass)); + } + + @ApiOperation(value = "璁惧閲岄潰閫夋嫨妫�楠岄」鐩�(鏍戝舰缁撴瀯)") + @GetMapping("/getInsProduction") + public Result getInsProduction() { + return Result.success(capacityScopeService.getInsProduction()); + } + + @ApiOperation(value = "缁存姢妫�楠屽璞$殑浜у搧") + @GetMapping("/selectProductListByObjectId") + public Result selectProductListByObjectId(Page page, ProductDTO1 productDTO) throws Exception { + return Result.success(productService.selectProductListByObjectId(page, productDTO)); + } + + @ApiOperation(value = "娣诲姞浜у搧") + @PostMapping("/addProduct") + public Result addProduct(@RequestBody Product product) { + return Result.success(productService.addProduct(product)); + } + + @ApiOperation(value = "淇敼浜у搧") + @PostMapping("/upProduct") + public Result upProduct(@RequestBody Product product) { + return Result.success(productService.upProduct(product)); + } + + @ApiOperation(value = "鍒犻櫎浜у搧") + @DeleteMapping("/delProduct") + public Result delProduct(Integer id) { + return Result.success(productService.delProduct(id)); + } + + @ApiOperation(value = "鑾峰彇妫�楠屽璞℃爲") + @GetMapping("/getItemTree") + public Result getItemTree() { + return Result.success(capacityScopeService.getItemTree()); + } + + @ApiOperation(value = "瀵煎叆妫�楠岄」鐩�") + @PostMapping("/importData") + public Result importData(@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()); + 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()); + } + if (list1.get(7) == null) { + str.setInspectionItemSubclassEn(null); + } else { + str.setInspectionItemSubclassEn(String.valueOf(list1.get(7).toString())); + } + StructureItemParameter db_str; + if (StringUtils.isEmpty(str.getInspectionItemSubclass())) { + // 姣旇緝涓や釜鏉′欢 + try { + db_str = structureItemParameterService.getOne(Wrappers.lambdaQuery(StructureItemParameter.class) + .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem()) + .eq(StructureItemParameter::getSample, str.getSample()) + .last("limit 1") + ); + } catch (Exception e) { + throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem()); + } + } else { + try { + db_str = structureItemParameterService.getOne(Wrappers.lambdaQuery(StructureItemParameter.class) + .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem()) + .eq(StructureItemParameter::getSample, str.getSample()) + .eq(StructureItemParameter::getInspectionItemSubclass, str.getInspectionItemSubclass()) + .last("limit 1") + ); + } catch (Exception e) { + throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass()); + } + } + 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 (StringUtils.isNotBlank(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(22) != null && list1.get(22) != "") { + str.setInspectionItemClass(list1.get(22) + ""); + } else { + str.setInspectionItemClass(null); + } + } catch (Exception e) { + } + try { + if (list1.get(23) != null && list1.get(23) != "") { + str.setInspectionItemClassEn(list1.get(23) + ""); + } else { + str.setInspectionItemClassEn(null); + } + } catch (Exception e) { + } + try { + if (list1.get(24) != null) { + str.setLaboratory(list1.get(24) + ""); + } + } catch (Exception e) { + } + lists.add(str); + } + }); + structureItemParameterService.removeNoSample(sample.get()); + // 濡傛灉鏁版嵁搴撻噷闈㈢殑鏁版嵁瀛樺湪閭d箞灏辨墽琛屾洿鏂版嫹璐濇搷浣� + try { + structureItemParameterService.saveOrUpdateBatch(lists); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("鏈嶅姟绔姤閿欏暒!!!"); + } + return Result.success(); + } + + + @ApiOperation(value = "瀵煎叆妫�楠屽璞�") + @PostMapping("/importExcel") + public Result importExcel(@RequestParam("file") MultipartFile file) { + try { + EasyExcel.read(file.getInputStream(), StructureTestObjectData.class, new StructureTestObjectListener(productService)).sheet().doRead(); + } catch (IOException e) { + e.printStackTrace(); + } + return Result.success(); + } +} -- Gitblit v1.9.3