From db9c8218576c7af0ed61b39f93f2e6a14bddeee9 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期三, 08 十一月 2023 15:07:14 +0800
Subject: [PATCH] Changes11

---
 mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/ParamServiceImpl.java |  166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 164 insertions(+), 2 deletions(-)

diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/ParamServiceImpl.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/ParamServiceImpl.java
index ccc7afb..738492e 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/ParamServiceImpl.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/ParamServiceImpl.java
@@ -19,9 +19,11 @@
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chinaztt.mes.basic.dto.ParamPlusDto;
 import com.chinaztt.mes.basic.entity.Param;
 import com.chinaztt.mes.basic.entity.ParamJoinTemplate;
 import com.chinaztt.mes.basic.excel.ParamData;
@@ -29,13 +31,22 @@
 import com.chinaztt.mes.basic.mapper.ParamMapper;
 import com.chinaztt.mes.basic.service.ParamService;
 import com.chinaztt.mes.basic.util.DictUtils;
+import com.chinaztt.mes.common.feign.DictApi;
+import com.chinaztt.mes.common.util.easyexcel.template.ParamTemplate;
 import com.chinaztt.ztt.admin.api.entity.SysDictItem;
 import com.chinaztt.ztt.common.core.util.R;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -50,13 +61,39 @@
 	private ParamJoinTemplateMapper paramJoinTemplateMapper;
 	private DictUtils dictUtils;
 
+	private DictApi dictApi;
+
 	@Override
-	public R<Boolean> fullSave(Param param) {
+	@Transactional(rollbackFor = Exception.class)
+	public R<Boolean> fullSave(ParamPlusDto param) {
 		int noCount = baseMapper.selectCount(Wrappers.<Param>lambdaQuery().eq(Param::getCode, param.getCode()));
 		if (noCount > 0) {
 			return R.failed("缂栧彿閲嶅");
 		}
-		baseMapper.insert(param);
+		List<SysDictItem> second_param = dictUtils.getDict("second_param");
+		List<SysDictItem> third_param = dictUtils.getDict("third_param");
+		Param father=new Param();
+		father.setCode(param.getCode());
+		father.setParameterItem(param.getParameterItem());
+		baseMapper.insert(father);
+		//浜岀骇鍙傛暟
+		param.getSecondId().forEach(s->{
+			Param second=new Param();
+			SysDictItem sysDictItem = second_param.stream().filter(p -> p.getId().equals(Integer.valueOf(String.valueOf(s)))).collect(Collectors.toList()).get(0);
+			second.setParameterItem(sysDictItem.getLabel());
+			second.setCode(""+s);
+			second.setParentId(father.getId());
+			baseMapper.insert(second);
+			//涓夌骇
+			param.getThirdId().forEach(t->{
+				Param third=new Param();
+				SysDictItem sysThirdDictItem = third_param.stream().filter(p -> p.getId().equals(Integer.valueOf(String.valueOf(t)))).collect(Collectors.toList()).get(0);
+				third.setParameterItem(sysThirdDictItem.getLabel());
+				third.setCode(""+t);
+				third.setParentId(second.getId());
+				baseMapper.insert(third);
+			});
+		});
 		return R.ok();
 	}
 
@@ -129,4 +166,129 @@
 		}
 	}
 
+	private String codeMake() {
+		// 鍥哄畾瀛楃涓�  GX + 骞存湀鏃� + 01
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+		String yrar = formatter.format(LocalDateTime.now());
+		String code = "GX" + yrar;
+		List<String> parameterItem = baseMapper.getNos(code);
+		if (CollectionUtil.isEmpty(parameterItem)) {
+			code = code + "01";
+		}
+		return code;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void importExcelPlus(List<ParamTemplate> paramTemplates) {
+		//浜岀骇鍙傛暟id 133
+		//涓夌骇鍙傛暟 134
+		List<SysDictItem> dictTwo = dictUtils.getDict("second_param");
+		List<SysDictItem> dictThree = dictUtils.getDict("third_param");
+		List<SysDictItem> type = dictUtils.getDict("technology_param");
+		List<Integer> count = new ArrayList<Integer>();
+		int num = 0;
+		for (int i = 0; i < paramTemplates.size(); i++) {
+			if (StringUtils.isNotEmpty(paramTemplates.get(i).getParamItem())) {
+				count.add(num);
+			}
+			num++;
+		}
+		count.add(paramTemplates.size());
+
+		System.out.println(count);
+		List<List<ParamTemplate>> list = new ArrayList<>();
+		paramTemplates.forEach(p -> {
+			Optional.ofNullable(p.getParamItemTwo()).ifPresent(t -> {
+				int size = dictTwo.stream().filter(d -> Objects.equals(p.getParamItemTwo(), d.getLabel())).collect(Collectors.toList()).size();
+				if (size < 1) {
+					throw new RuntimeException(("瀛楀吀涓棤姝や簩绾у弬鏁�,璇锋鏌ュ悗鍐嶆瀵煎叆锛屽弬鏁颁负锛�---------銆�" + p.getParamItemTwo()));
+				}
+			});
+			Optional.ofNullable(p.getParamItemThree()).ifPresent(t -> {
+				int size = dictThree.stream().filter(d -> Objects.equals(p.getParamItemThree(), d.getLabel())).collect(Collectors.toList()).size();
+				if (size < 1) {
+					throw new RuntimeException(("瀛楀吀涓棤姝や笁绾у弬鏁�,璇锋鏌ュ悗鍐嶆瀵煎叆锛屽弬鏁颁负锛�---------銆�" + p.getParamItemThree()));
+				}
+			});
+
+			Optional.ofNullable(p.getParamType()).ifPresent(t -> {
+				int size = type.stream().filter(d -> Objects.equals(p.getParamType(), d.getLabel())).collect(Collectors.toList()).size();
+				if (size < 1) {
+					throw new RuntimeException(("瀛楀吀涓棤姝ゅ弬鏁扮被鍨�,璇锋鏌ュ悗鍐嶆瀵煎叆锛岀被鍨嬩负锛�---------銆�" + p.getParamType()));
+				}
+			});
+		});
+
+		List<List<ParamTemplate>>listParamTemplates = new ArrayList<List<ParamTemplate>>();
+			for (int j = 0; j < count.size()-1; j++) {
+				List<ParamTemplate> paramTemplateLists = new ArrayList<>();
+				for (int i = count.get(j); i < count.get(j+1); i++) {
+					paramTemplateLists.add(paramTemplates.get(i));
+				}
+				listParamTemplates.add(paramTemplateLists);
+			}
+		List<List<Param>>paramList=new ArrayList<>();
+		AtomicInteger nums = new AtomicInteger();
+		List<Long>secondIds=new ArrayList();
+		for (int i = 0; i < listParamTemplates.size(); i++) {
+			List<ParamTemplate> l = listParamTemplates.get(i);
+			List<Param>paramList1=new ArrayList<>();
+			ParamTemplate paramTemplate = l.get(0);
+			Param paramFirst=new Param();
+			paramFirst.setCode("ZS-CS"+IdWorker.getIdStr());
+			//涓�绾у弬鏁�
+			String paramItem = paramTemplate.getParamItem();
+			paramFirst.setParameterItem(paramItem);
+			if(l.size()<=1){
+				Optional.ofNullable(paramTemplate.getParamType()).ifPresent(o->{
+					List<SysDictItem> collect = type.stream().filter(t -> Objects.equals(paramTemplate.getParamType(), t.getLabel())).collect(Collectors.toList());
+					paramFirst.setType(collect.get(0).getValue());
+				});
+				paramFirst.setParameterFormat(paramTemplate.getParamFormat());
+				paramFirst.setUnit(paramTemplate.getUnit());
+			}
+			paramFirst.setId(IdWorker.getId());
+			paramList1.add(paramFirst);
+			if(l.size()>1){
+				for (int k = 0; k < l.size(); k++) {
+					ParamTemplate c = l.get(k);
+					if(c.getParamItemTwo()!=null){
+						Param second=new Param();
+						second.setId(IdWorker.getId());
+						secondIds.add(second.getId());
+						second.setCode(dictTwo.stream().filter(d -> Objects.equals(c.getParamItemTwo(), d.getLabel())).collect(Collectors.toList()).get(0).getId()+"");
+						second.setParameterItem(c.getParamItemTwo());
+						if(c.getParamItemThree()==null){
+							second.setType(type.stream().filter(d -> Objects.equals(c.getParamType(), d.getLabel())).collect(Collectors.toList()).get(0).getValue());
+							second.setParameterFormat(c.getParamFormat());
+							second.setUnit(c.getUnit());
+						}
+						second.setParentId(paramList1.get(0).getId());
+						paramList1.add(second);
+					}
+					if (c.getParamItemThree()!=null){
+						Param third=new Param();
+						third.setId(IdWorker.getId());
+						long paramItemTwo = secondIds.get(secondIds.size()-1);
+						//System.out.println(nums.get()+"鎵�灞炰簩绾�======銆�"+secondIds.get(secondIds.size()-1));
+						third.setParentId(paramItemTwo);
+						third.setParameterItem(c.getParamItemThree());
+						third.setCode(dictThree.stream().filter(d -> Objects.equals(c.getParamItemThree(), d.getLabel())).collect(Collectors.toList()).get(0).getId()+"");
+						third.setType(type.stream().filter(d -> Objects.equals(c.getParamType(), d.getLabel())).collect(Collectors.toList()).get(0).getValue());
+						third.setParameterFormat(c.getParamFormat());
+						third.setUnit(c.getUnit());
+						paramList1.add(third);
+					}
+				}
+			}
+			paramList.add(paramList1);
+		}
+		paramList.forEach(p->{
+			p.forEach(cc->{
+				baseMapper.insert(cc);
+			});
+		});
+	}
+
 }

--
Gitblit v1.9.3