Fixiaobai
2023-11-09 01d08428dd6cd9dc518a9a2ecbcb1f0e82788068
mes-basic/src/main/java/com/chinaztt/mes/basic/controller/ParamController.java
@@ -17,14 +17,19 @@
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;
import com.chinaztt.ztt.common.log.annotation.SysLog;
import io.swagger.annotations.Api;
@@ -35,6 +40,8 @@
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -51,6 +58,35 @@
   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);
   }
   /**
    * 分页查询
    *
@@ -62,7 +98,80 @@
   @GetMapping("/page")
   @PreAuthorize("@pms.hasPermission('technology_param_view','product_workbench')")
   public R getParamPage(Page page, ParamDTO param) {
      return R.ok(paramService.page(page, QueryWrapperUtil.gen(param)));
      List<SysDictItem> dict = dictUtils.getDict("technology_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<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());
         });
         QueryWrapper<Param>queryWrapper=new QueryWrapper<>();
         queryWrapper.lambda().eq(Param::getParentId,pojo.get("id"));
         List<Param> secondList = paramService.list(queryWrapper);
         //没有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());
            });
            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);
            });
         });
      });
      return all;
   }
   /**
@@ -104,7 +213,7 @@
   @SysLog("新增工序参数表")
   @PostMapping
   @PreAuthorize("@pms.hasPermission('technology_param_add')")
   public R save(@RequestBody Param param) {
   public R save(@RequestBody ParamPlusDto param) {
      return R.ok(paramService.fullSave(param));
   }
@@ -142,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();
      }