From 7a268ed852ca462347cca383a6d0306ff54e1363 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 04 十一月 2024 15:05:21 +0800
Subject: [PATCH] 添加模版
---
cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java | 481 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 470 insertions(+), 11 deletions(-)
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
index 6e1b9ee..744c936 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
@@ -1,21 +1,37 @@
package com.yuanchu.mom.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.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
+import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.PageTestObjectDto;
-import com.yuanchu.mom.pojo.Product;
-import com.yuanchu.mom.pojo.StructureItemParameter;
-import com.yuanchu.mom.pojo.StructureTestObject;
-import com.yuanchu.mom.service.CapacityScopeService;
-import com.yuanchu.mom.service.ProductService;
+import com.yuanchu.mom.excel.StructureTestObjectData;
+import com.yuanchu.mom.excel.StructureTestObjectListener;
+import com.yuanchu.mom.exception.ErrorException;
+import com.yuanchu.mom.pojo.*;
+import com.yuanchu.mom.service.*;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
+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 java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
/**
* 妫�楠岄」鐩弬鏁�(StructureItemParameter)琛ㄦ帶鍒跺眰
@@ -33,6 +49,11 @@
private ProductService productService;
+ private StructureItemParameterService structureItemParameterService;
+
+ private StandardTemplateService standardTemplateService;
+
+ @ValueClassify("鑳藉姏鑼冨洿")
@ApiOperation(value = "鑾峰彇椤圭洰妫�楠屽弬鏁板垪琛�")
@PostMapping("/selectItemParameterList")
public Result selectItemParameterList(@RequestBody Map<String, Object> data) throws Exception {
@@ -41,24 +62,28 @@
return Result.success(capacityScopeService.selectItemParameterList(page, itemParameter));
}
+ @ValueClassify("鑳藉姏鑼冨洿")
@ApiOperation(value = "娣诲姞椤圭洰妫�楠屽弬鏁�")
@PostMapping("/addItemParameter")
public Result addItemParameter(@RequestBody StructureItemParameter itemParameter) {
return Result.success(capacityScopeService.addItemParameter(itemParameter));
}
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
@ApiOperation(value = "鍒犻櫎椤圭洰妫�楠屽弬鏁�")
@PostMapping("/delItemParameter")
public Result<?> delItemParameter(Integer id) {
return Result.success(capacityScopeService.delItemParameter(id));
}
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
@ApiOperation(value = "淇敼椤圭洰妫�楠屽弬鏁�")
@PostMapping("/upItemParameter")
public Result<?> upItemParameter(@RequestBody StructureItemParameter itemParameter) {
return Result.success(capacityScopeService.upItemParameter(itemParameter));
}
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
@ApiOperation(value = "鑾峰彇妫�楠屽璞�")
@PostMapping("/selectTestObjectList")
public Result selectTestObjectList(@RequestBody Map<String, Object> data) throws Exception {
@@ -67,37 +92,42 @@
return Result.success(capacityScopeService.selectTestObjectList(page, pageTestObjectDto));
}
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
@ApiOperation(value = "娣诲姞妫�楠屽璞�")
@PostMapping("/addTestObject")
public Result addTestObject(@RequestBody StructureTestObject testObject) {
return Result.success(capacityScopeService.addTestObject(testObject));
}
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
@ApiOperation(value = "鍒犻櫎妫�楠屽璞�")
@PostMapping("/delTestObject")
public Result<?> delTestObject(Integer id) {
return Result.success(capacityScopeService.delTestObject(id));
}
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
@ApiOperation(value = "淇敼妫�楠屽璞�")
@PostMapping("/upTestObject")
public Result upTestObject(@RequestBody StructureTestObject testObject) {
return Result.success(capacityScopeService.upTestObject(testObject));
}
+ @ValueAuth
@ApiOperation(value = "鑾峰彇妫�楠屽璞℃灇涓�")
@GetMapping("/selectTestObjectByName")
- @ValueAuth
public Result selectTestObjectByName() {
return Result.success(capacityScopeService.selectTestObjectByName());
}
+ @ValueAuth
@ApiOperation(value = "璁惧閲岄潰閫夋嫨妫�楠岄」鐩�(鏍戝舰缁撴瀯)")
@PostMapping("/getInsProduction")
- public Result getInsProduction(){
+ public Result getInsProduction() {
return Result.success(capacityScopeService.getInsProduction());
}
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
@ApiOperation(value = "缁存姢妫�楠屽璞$殑浜у搧")
@PostMapping("/selectProductListByObjectId")
public Result selectProductListByObjectId(@RequestBody Map<String, Object> data) throws Exception {
@@ -106,23 +136,23 @@
return Result.success(productService.selectProductListByObjectId(page, product));
}
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
@ApiOperation(value = "娣诲姞浜у搧")
@PostMapping("/addProduct")
- @ValueAuth
public Result addProduct(@RequestBody Product product) {
return Result.success(productService.addProduct(product));
}
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
@ApiOperation(value = "淇敼浜у搧")
@PostMapping("/upProduct")
- @ValueAuth
public Result upProduct(@RequestBody Product product) {
return Result.success(productService.upProduct(product));
}
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
@ApiOperation(value = "鍒犻櫎浜у搧")
@PostMapping("/delProduct")
- @ValueAuth
public Result delProduct(Integer id) {
return Result.success(productService.delProduct(id));
}
@@ -134,5 +164,434 @@
return Result.success(capacityScopeService.getItemTree());
}
-}
+ @Autowired
+ private EnumService enumService;
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
+ @ApiOperation(value = "瀵煎叆妫�楠岄」鐩�")
+ @PostMapping("/importData")
+ @Transactional
+ 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)) {
+ Enums enums = enumService.getOne(Wrappers.lambdaQuery(Enums.class)
+ .eq(Enums::getCategory, "妫�楠屽�肩被鍨�")
+ .eq(Enums::getLabel, validateValueType));
+ str.setInspectionValueType(enums.getValue());
+ }
+ 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();
+ }
+
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
+ @ApiOperation(value = "瑁呭瀵煎叆妫�楠岄」鐩�")
+ @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());
+ 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)) {
+ Enums enums = enumService.getOne(Wrappers.lambdaQuery(Enums.class)
+ .eq(Enums::getCategory, "妫�楠屽�肩被鍨�")
+ .eq(Enums::getLabel, validateValueType));
+ str.setInspectionValueType(enums.getValue());
+ }
+ 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();
+ }
+
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
+ @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