Fixiaobai
2023-11-16 d8d129a2e41f7099968cb4f4dc1b028ab985135f
mes-basic/src/main/java/com/chinaztt/mes/basic/controller/ParamController.java
@@ -17,17 +17,17 @@
package com.chinaztt.mes.basic.controller;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaztt.mes.basic.dto.ParamDTO;
import com.chinaztt.mes.basic.dto.ParamPlusDto;
import com.chinaztt.mes.basic.entity.Param;
import com.chinaztt.mes.basic.excel.ParamData;
import com.chinaztt.mes.basic.excel.ParamUploadListener;
import com.chinaztt.mes.basic.service.ParamService;
import com.chinaztt.mes.basic.util.DictUtils;
import com.chinaztt.mes.common.util.JsonUtil;
import com.chinaztt.mes.common.util.StringUtils;
import com.chinaztt.mes.common.util.easyexcel.EasyExcelUtils;
import com.chinaztt.mes.common.util.easyexcel.template.ParamTemplate;
import com.chinaztt.mes.common.wrapper.QueryWrapperUtil;
import com.chinaztt.ztt.admin.api.entity.SysDictItem;
import com.chinaztt.ztt.common.core.util.R;
@@ -59,6 +59,34 @@
   private final ParamService paramService;
   private DictUtils dictUtils;
   @ApiOperation(value = "分页模板查询", notes = "分页查询")
   @GetMapping("/pageInModel")
   @PreAuthorize("@pms.hasPermission('technology_param_view','product_workbench')")
   public R getParamPageInModel(Page page, ParamDTO param) {
      QueryWrapper<Param> gen = QueryWrapperUtil.gen(param);
      gen.lambda().eq(Param::getParentId,0L);
      return R.ok(paramService.page(page, gen));
   }
   @ApiOperation(value = "工艺绑定查询", notes = "查询")
   @PostMapping("/pageInId")
   @PreAuthorize("@pms.hasPermission('technology_param_view','product_workbench')")
   public R getParamPageInId(Page page, @RequestParam("idList") List<Long>idList) {
      System.out.println(idList);
      QueryWrapper<Param> gen = new QueryWrapper<>();
      gen.lambda().in(Param::getId,idList);
      List<SysDictItem> dict = dictUtils.getDict("technology_param");
      Page page1 = paramService.page(page, gen);
      List records = page1.getRecords();
      List<Map<String, Object>> tree = getTree(records, dict);
      page1.setRecords(tree);
      return R.ok(page1);
   }
   /**
    * 分页查询
    *
@@ -71,11 +99,19 @@
   @PreAuthorize("@pms.hasPermission('technology_param_view','product_workbench')")
   public R getParamPage(Page page, ParamDTO param) {
      List<SysDictItem> dict = dictUtils.getDict("technology_param");
      System.out.println(dict);
      Page page1 = paramService.page(page, QueryWrapperUtil.gen(param));
      QueryWrapper<Param> gen = QueryWrapperUtil.gen(param);
      gen.lambda().eq(Param::getParentId,0L);
      Page page1 = paramService.page(page, gen);
      List records = page1.getRecords();
      List<Map>all = new ArrayList<Map>();
      List<Map<String, Object>> tree = getTree(records, dict);
      page1.setRecords(tree);
      return R.ok(page1);
   }
   public List<Map<String,Object>> getTree(List records,List<SysDictItem> dict){
      List<Map<String,Object>> all = new ArrayList<>();
      records.forEach(l->{
         System.out.println("一级数据--"+l);
         Map pojo = JsonUtil.jsonToPojo(JsonUtil.jsonToString(l), Map.class);
         Optional.ofNullable(pojo.get("type")).ifPresent(o->{
            pojo.put("type",dict.stream().filter(d-> Objects.equals(String.valueOf(d.getValue()),pojo.get("type"))).collect(Collectors.toList()).get(0).getLabel());
@@ -83,30 +119,59 @@
         QueryWrapper<Param>queryWrapper=new QueryWrapper<>();
         queryWrapper.lambda().eq(Param::getParentId,pojo.get("id"));
         List<Param> secondList = paramService.list(queryWrapper);
         List<Map>secondMapList = new ArrayList<>();
         //没有children直接添加
         if(secondList.isEmpty()){
            Map<String,Object> oneMap = new HashMap<>();
            oneMap.put("code",pojo.get("code"));
            oneMap.put("paramItem",pojo.get("parameterItem"));
            oneMap.put("paramItemTwo","");
            oneMap.put("paramItemThree","");
            oneMap.put("oneId",StringUtils.defaultString( String.valueOf(pojo.get("id")),""));
            oneMap.put("paramType",StringUtils.defaultString((String) pojo.get("type"),""));
            oneMap.put("paramFormat",StringUtils.defaultString((String) pojo.get("parameterFormat"),""));
            oneMap.put("unit",StringUtils.defaultString((String) pojo.get("unit"),""));
            oneMap.put("parentId",pojo.get("parentId"));
            all.add(oneMap);
         }
         secondList.forEach(s->{
            System.out.println("二级数据--"+s);
            Map second = JsonUtil.jsonToPojo(JsonUtil.jsonToString(s), Map.class);
            Optional.ofNullable(second.get("type")).ifPresent(o->{
               second.put("type",dict.stream().filter(d-> Objects.equals(String.valueOf(d.getValue()),second.get("type"))).collect(Collectors.toList()).get(0).getLabel());
            });
            System.out.println(second);
            QueryWrapper<Param>queryWrapperSecond=new QueryWrapper<>();
            queryWrapperSecond.lambda().eq(Param::getParentId,second.get("id"));
            List<Param> third = paramService.getBaseMapper().selectList(queryWrapperSecond);
            if(third.isEmpty()){
               Param p = new Param();
               p.setType(s.getType());
               p.setParameterFormat(s.getParameterFormat());
               p.setUnit(s.getUnit());
               p.setParentId(s.getParentId());
               third.add(p);
            }
            third.forEach(t->{
               System.out.println("三级数据--"+t);
               Optional.ofNullable(t.getType()).ifPresent(o->{
                  t.setType(dict.stream().filter(d-> Objects.equals(String.valueOf(d.getValue()),t.getType())).collect(Collectors.toList()).get(0).getLabel());
               });
               Map<String,Object> allMap = new HashMap<>();
               allMap.put("code",pojo.get("code"));
               allMap.put("paramItem",StringUtils.defaultString((String) pojo.get("parameterItem"),""));
               allMap.put("oneId",StringUtils.defaultString( String.valueOf(pojo.get("id")),""));
               allMap.put("twoId",StringUtils.defaultString( String.valueOf(second.get("id")) ,""));
               allMap.put("threeId",StringUtils.defaultString(String.valueOf(t.getId()),""));
               allMap.put("paramItemTwo",StringUtils.defaultString((String) second.get("parameterItem"),""));
               allMap.put("paramItemThree",StringUtils.defaultString(t.getParameterItem(),""));
               allMap.put("paramType",StringUtils.defaultString(t.getType(),""));
               allMap.put("paramFormat",StringUtils.defaultString(t.getParameterFormat(),""));
               allMap.put("unit", StringUtils.defaultString(t.getUnit(),""));
               allMap.put("parentId",t.getParentId());
               all.add(allMap);
            });
            System.out.println(third);
            second.put("children",third);
            secondMapList.add(second);
         });
         pojo.put("children",secondMapList);
         all.add(pojo);
      });
      page1.setRecords(all);
      return R.ok(page1);
      return all;
   }
   /**
@@ -186,9 +251,12 @@
    * @return
    */
   @PostMapping("/upload")
   @ApiOperation(value = "导入", notes = "导入")
   public R upload(@RequestParam("file") MultipartFile file) {
      try {
         EasyExcel.read(file.getInputStream(), ParamData.class, new ParamUploadListener(paramService)).sheet().doRead();
//         EasyExcel.read(file.getInputStream(), ParamTemplate.class, new ExcelListener<ParamTemplate>()).sheet().doRead();
         List<ParamTemplate> paramTemplates = EasyExcelUtils.readModelExcel(ParamTemplate.class, file);
         paramService.importExcelPlus(paramTemplates);
      } catch (IOException e) {
         e.printStackTrace();
      }