package com.landtool.lanbase.modules.spcData.controller; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; import com.google.gson.Gson; import com.landtool.lanbase.common.utils.Result; import com.landtool.lanbase.modules.spcData.entity.SpcDataMenu; import com.landtool.lanbase.modules.spcData.entity.SpcMetadata; import com.landtool.lanbase.modules.spcData.service.SpcDataService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("/spcData") public class SpcDataController { @Autowired private SpcDataService spcDataService; @RequestMapping("/queryMenu") // @RequiresPermissions(value="role:ztsj:list") public Result queryMenu() { List spcDataMenuList = spcDataService.queryMenu(); return Result.ok().put("Menu", spcDataMenuList); } @RequestMapping("/addMenu") // @RequiresPermissions(value="role:ztsj:edit") public Result addSpcDataMenu(@RequestBody SpcDataMenu spcDataMenu) { spcDataService.addSpcDataMenu(spcDataMenu); return Result.ok(); } @RequestMapping("/delMenu") // @RequiresPermissions(value="role:ztsj:edit") public Result delSpcDataMenu(@RequestBody List idLists) { if (CollectionUtil.isNotEmpty(idLists)) { // 删除专题数据菜单 spcDataService.delSpcDataMenu(idLists); // 删除菜单对应的元数据 spcDataService.delMetaDataByMenuS(idLists); } ; return Result.ok(); } @RequestMapping("/modifySpcDataMenu") // @RequiresPermissions(value="role:ztsj:edit") public Result modifySpcDataMenu(@RequestBody SpcDataMenu spcDataMenu) { spcDataService.modifySpcDataMenu(spcDataMenu); return Result.ok(); } @RequestMapping("/addMetaData") // @RequiresPermissions(value="role:ztsj:edit") public Result addMetaData(@RequestBody SpcMetadata spcMetadata) { if(null==spcMetadata.getId()){ spcDataService.addMetaData(spcMetadata); // 更新对应spc_data_menu:metadataId SpcDataMenu spcDataMenu = new SpcDataMenu(); spcDataMenu.setMetadataId(spcMetadata.getId()); spcDataMenu.setId(spcMetadata.getMenuId()); spcDataService.modifySpcDataMenu(spcDataMenu); return Result.ok(); } spcDataService.modifyMetaData(spcMetadata); return Result.ok(); } @RequestMapping("/delMetaData") // @RequiresPermissions(value="role:ztsj:edit") public Result delMetaData(@RequestBody SpcMetadata spcMetadata) { spcDataService.delMetaData(spcMetadata); return Result.ok(); } @RequestMapping("/modifyMetaData") // @RequiresPermissions(value="role:ztsj:edit") public Result modifyMetaData(@RequestBody SpcMetadata spcMetadata) { spcDataService.modifyMetaData(spcMetadata); return Result.ok(); } @RequestMapping("/queryMetaData") // @RequiresPermissions(value="role:ztsj:list") public Result queryMetaData(@RequestBody SpcMetadata spcMetadata) { SpcMetadata spcData = spcDataService.queryMetaData(spcMetadata); spcData.setMenuId(spcMetadata.getMenuId()); return Result.ok().put("data", spcData); } @RequestMapping("/statistics") // @RequiresPermissions(value="role:ztsj:list") public Result getStatistics( String strName,Integer type) { Map maps = spcDataService.getStatistics(strName,type); return Result.ok().put("data", maps); } @RequestMapping("/getTbNums") // @RequiresPermissions(value="role:ztsj:list") public Result getTbNums(String strType,String strCount) { List spcMetadatas= spcDataService.queryMetaDatas(); Map maps = new HashMap<>(); spcMetadatas.stream().forEach( spcMetadata -> { Map sourceMap = (Map) JSONUtils.parse(spcMetadata.getMetadata()); String type = sourceMap.get(strType); String num = sourceMap.get(strCount); Integer numCount=0; if(!StringUtils.isEmpty(num)){ numCount=Integer.valueOf(num); } if(maps.containsKey(type)){ //已经存在累加 maps.put(type,maps.get(type)+numCount); }else { //第一次新增 maps.put(type,numCount); } } ); return Result.ok().put("data", maps); } @RequestMapping("/test/addJson") // @RequiresPermissions(value="role:ztsj:list") public Result test() throws Exception { SpcDataMenu spcDataMenu = new SpcDataMenu(); SpcMetadata spcMetadata = new SpcMetadata(); ArrayList> arrayList = new ArrayList<>(); List> list = new Gson().fromJson(new FileReader(new File("C:\\Users\\Lenovo\\Desktop\\menudata.json")), List.class); for (Map map : list) { HashMap param = new HashMap<>(); param.put("pId", (String) map.get("pId")); param.put("oldId", map.get("id")); spcDataMenu.setpId(0); spcDataMenu.setName((String) map.get("name")); spcDataMenu.setType(0); spcDataMenu.setTableName((String) map.get("tableName")); spcDataService.addSpcDataMenu(spcDataMenu); param.put("id", spcDataMenu.getId()); spcMetadata.setMetadata(JSON.toJSONString(map.get("value"))); spcMetadata.setMenuId(spcDataMenu.getId()); spcDataService.addMetaData(spcMetadata); spcDataMenu.setMetadataId(spcMetadata.getId()); spcDataMenu.setId(spcMetadata.getMenuId()); spcDataService.modifySpcDataMenu(spcDataMenu); arrayList.add(param); } for (Map map : arrayList) { Integer id = (Integer) map.get("id"); String oldId = (String) map.get("oldId"); String pId = (String) map.get("pId"); for (Map map2 : arrayList) { String pId2 = (String) map2.get("pId"); if(StringUtils.equals(pId2,oldId)){ SpcDataMenu menu = new SpcDataMenu(); menu.setId((Integer) map2.get("id")); menu.setpId(id); spcDataService.modifySpcDataMenu(menu); } } } return null; } public static void main(String[] args) { } }