| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | listParamTemplates.forEach(l-> { |
| | | System.out.println("========================================="); |
| | | l.forEach(System.out::println); |
| | | }); |
| | | 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<>(); |
| | | System.out.println("========================================="); |
| | | l.forEach(System.out::println); |
| | | ParamTemplate paramTemplate = l.get(0); |
| | | System.out.println("数组数据=======》"+paramTemplate); |
| | | 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()); |
| | | System.out.println("一级--------》"+paramFirst); |
| | | 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); |
| | | } |
| | | System.out.println("=================="); |
| | | paramList.forEach(p->{ |
| | | p.forEach(cc->{ |
| | | System.out.println(cc); |
| | | baseMapper.insert(cc); |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | } |