zoukankan      html  css  js  c++  java
  • 大数据加工平台数据清洗

    package snow.controller;

    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.datasource.DataSourceUtils;
    import org.springframework.web.bind.annotation.*;
    import org.springframework.web.multipart.MultipartFile;
    import snow.entity.DataSource;
    import snow.entity.Dictionary;
    import snow.service.DataSourceService;
    import snow.utils.ApiResponse;
    import snow.utils.CSV2Excel;
    import snow.utils.ExcelToSQLUtils;

    import javax.servlet.http.HttpServletRequest;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.text.SimpleDateFormat;
    import java.util.*;

    @RestController
    public class DataSourceController {
    @Autowired
    private DataSourceService dataSourceService;

    //创建表 Spring
    @PostMapping("/createtable/{nameIndex}/{unitIndex}/{meansIndex}")
    public Map<String, Object> createTable(MultipartFile file, @PathVariable("nameIndex") Integer nameIndex, @PathVariable("unitIndex") Integer unitIndex, @PathVariable("meansIndex") Integer meansIndex, HttpServletRequest req) {
    

    // String path = "/home/g2431/Documents/2018年软件基地年报.xlsx";
    // dataSourceService.createTable(path);
    String originName = file.getOriginalFilename();
    if (!(originName.endsWith(".xlsx") || originName.endsWith(".csv"))) {
    return ApiResponse.toJsonDefault(60204, "文件格式错误");
    }

        DataSource dataSource;
        try {
            dataSource = fileUpload(file, req);
        } catch (IOException e) {
            e.printStackTrace();
            return ApiResponse.toJsonDefault(60204, "上传失败");
        }
    
        if (originName.endsWith("xlsx") || originName.endsWith("csv")) {
            try {
                int table = dataSourceService.createTable(dataSource.getFilePath(), nameIndex, unitIndex, meansIndex, dataSource.getTableName());
                System.out.println("table: " + table + dataSource.getTableName());
                dataSourceService.addDataSource(dataSource);
                System.out.println("dataSource: " + dataSource);
            } catch (Exception e) {
                System.out.println(e.toString());
                return ApiResponse.toJsonDefault(60205, "上传失败");
            }
        }
    
    
        Map<String, Object> map = new HashMap();
        map.put("dataSource", dataSource);
        return ApiResponse.toJson(20000, map);
    }
    
    //从excel添加
    @PostMapping("/addfromexcel/{id}/{beginIndex}")
    public Map<String, Object> addFromExcel(MultipartFile file, @PathVariable("id") Integer id, @PathVariable("beginIndex") Integer beginIndex, HttpServletRequest req) {
        String originName = file.getOriginalFilename();
        if (!(originName.endsWith(".xlsx") || originName.endsWith(".csv"))) {
            return ApiResponse.toJsonDefault(60204, "文件格式错误");
        }
    
        DataSource dataSource;
        try {
            dataSource = fileUpload(file, req);
        } catch (IOException e) {
            e.printStackTrace();
            return ApiResponse.toJsonDefault(60204, "上传失败");
        }
    
        if (originName.endsWith("xlsx") || originName.endsWith("csv")) {
            try {
                DataSource dataSource1 = dataSourceService.getOneById(id);
                int table = dataSourceService.addOneByOne(dataSource.getFilePath(), dataSource1.getTableName(), beginIndex);
                System.out.println("table: " + table + dataSource1.getTableName());
                System.out.println("dataSource: " + dataSource1);
            } catch (Exception e) {
                System.out.println(e.toString());
                return ApiResponse.toJsonDefault(60205, "上传失败");
            }
        }
    
        Map<String, Object> map = new HashMap();
        map.put("dataSource", dataSource);
        return ApiResponse.toJson(20000, map);
    }
    
    //文件上传
    private DataSource fileUpload(MultipartFile file, HttpServletRequest req) throws IOException {
        DataSource dataSource = new DataSource();
    
        SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/");
        String format = sdf.format(new Date());
        String realPath = "/home/g2431/upload" + format;
        File folder = new File(realPath);
        if (!folder.exists()) {
            folder.mkdirs();
        }
    
        String originalFilename = file.getOriginalFilename();
    
        String uuid = UUID.randomUUID().toString();
    
        String newName = uuid + "." + originalFilename.substring(originalFilename.lastIndexOf('.') + 1);
    
        System.out.println(folder + newName);
        String excelPath = folder + "/" + newName;
        file.transferTo(new File(folder, newName));
    
        if (originalFilename.endsWith("csv"))
            excelPath = CSV2Excel.csvToXLSX(excelPath);
    
        String url = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/upload" + format + newName;
    
        dataSource.setFileUrl(url);
        dataSource.setFilePath(excelPath);
        dataSource.setShowName(originalFilename);
        dataSource.setTableName(uuid.replace("-", "").replaceAll("[0-9]", ""));
        dataSource.setType(originalFilename.substring(originalFilename.lastIndexOf('.') + 1).equals("xlsx") ? "excel" : "csv");
        System.out.println(dataSource);
    
        return dataSource;
    }
    
    //获取列表
    @RequestMapping("/list")
    @ResponseBody
    public Map<String, Object> list() {
        Map<String, Object> map = new HashMap<String, Object>();
        List<DataSource> list = dataSourceService.getAll(1, 20);
        map.put("list", list);
        return ApiResponse.toJson(20000, map);
    }
    
    //删除数据源
    @RequestMapping("/delete/{id}")
    @ResponseBody
    public Map<String, Object> delete(@PathVariable("id") Integer id) {
        int i = dataSourceService.deleteById(id);
        if (i > 0) {
            return ApiResponse.toJsonSuccess(20000, "删除成功");
        } else {
            return ApiResponse.toJsonDefault(62560, "删除失败");
        }
    }
    
    //修改
    @RequestMapping("/update")
    @ResponseBody
    public Map<String, Object> update(@RequestBody DataSource dataSource) {
        int i = dataSourceService.updateById(dataSource);
        if (i > 0) {
            return ApiResponse.toJsonSuccess(20000, "修改成功");
        } else {
            return ApiResponse.toJsonDefault(62560, "修改失败");
        }
    }
    
    //查询接口
    @RequestMapping("/query/{num}/{size}")
    @ResponseBody
    public Map<String, Object> query(@RequestBody DataSource dataSource, @PathVariable("num") Integer num, @PathVariable("size") Integer size) {
        Map<String, Object> map = new HashMap<String, Object>();
        List<DataSource> list = dataSourceService.query(dataSource, num, size);
        map.put("items", list);
        map.put("totals", list.size());
        return ApiResponse.toJson(20000, map);
    }
    
    //查找一个
    @RequestMapping("/getOneById/{id}")
    @ResponseBody
    public Map<String, Object> getOneById(@PathVariable("id") Integer id) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
    
        dataSource.getTableName();
    
        return ApiResponse.toJson(20000, map);
    }
    
    //获取字典
    @RequestMapping("/getDictionary/{id}")
    @ResponseBody
    public Map<String, Object> getDictionary(@PathVariable("id") Integer id) {
        Map<String, Object> map = new HashMap<String, Object>();
        List<Dictionary> list = dataSourceService.getDictionary(id);
        map.put("items", list);
        return ApiResponse.toJson(20000, map);
    }
    
    //添加一个
    @PostMapping("/addonedata/{id}")
    public Map<String, Object> addOneData(@PathVariable("id") Integer id, @RequestBody Map<String, Object> map) {
        Map<String, Object> responseMap = new HashMap<>();
    
        int i = dataSourceService.addOneData(map, id);
    
        responseMap.put("nums", i);
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
        return ApiResponse.toJson(20000, responseMap);
    }
    
    @PostMapping("/addonedatabydic/{id}")
    public Map<String, Object> addOneDataByDic(@PathVariable("id") Integer id, @RequestBody List<Dictionary> list) {
        Map<String, Object> responseMap = new HashMap<>();
        Map<String, Object> map = new LinkedHashMap<>();
    
        for (Dictionary dictionary : list) {
            map.put(dictionary.getField(), dictionary.getDefault());
        }
    
        System.out.println(map);
    
        int i = dataSourceService.addOneData(map, id);
    
        responseMap.put("nums", i);
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
        return ApiResponse.toJson(20000, responseMap);
    }
    
    @GetMapping("/getTableDetails/{id}/{num}/{size}")
    public Map<String, Object> list(@PathVariable("id") Integer id, @PathVariable("num") Integer num, @PathVariable("size") Integer size) {
        Map<String, Object> responseMap = new HashMap<>();
        List<HashMap<String, Object>> hashMaps = dataSourceService.queryTableDetails(id, num, size);
        responseMap.put("items", hashMaps);
        responseMap.put("total", dataSourceService.getTableTotal(id));
    
        return ApiResponse.toJson(20000, responseMap);
    }
    
    //获取文件路径
    @GetMapping("/getfileurl/{id}")
    public Map<String, Object> getFileUrl(@PathVariable("id") Integer id) {
        Map<String, Object> responseMap = new HashMap<>();
    
        String fileUrl = dataSourceService.getFileUrl(id);
        responseMap.put("fileurl", fileUrl);
    
        return ApiResponse.toJson(20000, responseMap);
    }
    
    //修改字典
    @RequestMapping("/updateDic/{id}/{field}/{type}/{comment}")
    @ResponseBody
    public Map<String, Object> updateDic(@PathVariable("id") Integer id, @PathVariable("field") String field, @PathVariable("type") String type, @PathVariable("comment") String comment) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
    
        String tablename = dataSource.getTableName();
    
        int result = dataSourceService.updateDic(tablename, field, type, comment);
        map.put("num", result);
    
        return ApiResponse.toJson(20000, map);
    }
    
    //修改字典
    @PostMapping(value = "/changeDic")
    @ResponseBody
    public Map<String, Object> changeDic(@RequestBody JSONObject dic) {
        Integer id = dic.getInteger("id");
        String oldfield = dic.getString("oldfield");
        String field = dic.getString("field");
        String oldtype = dic.getString("oldtype");
        String type = dic.getString("type");
        String comment = dic.getString("comment");
    
        System.out.println(id + "  " + oldfield);
    
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
        String tablename = dataSource.getTableName();
        int result = dataSourceService.changeDic(tablename, oldfield, field, oldtype, type, comment);
        map.put("num", result);
        return ApiResponse.toJson(20000, map);
    }
    
    //修改字典
    @RequestMapping("/addField/{id}/{field}/{type}/{comment}")
    @ResponseBody
    public Map<String, Object> addField(@PathVariable("id") Integer id, @PathVariable("field") String field, @PathVariable("type") String type, @PathVariable("comment") String comment) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
    
        String tablename = dataSource.getTableName();
    
        int result = dataSourceService.addField(tablename, field, type, comment);
        map.put("num", result);
    
        return ApiResponse.toJson(20000, map);
    }
    
    //修改字典
    @RequestMapping("/deleteField/{id}/{field}")
    @ResponseBody
    public Map<String, Object> deleteField(@PathVariable("id") Integer id, @PathVariable("field") String field) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
    
        String tablename = dataSource.getTableName();
    
        int result = dataSourceService.deleteField(tablename, field);
        map.put("num", result);
    
        return ApiResponse.toJson(20000, map);
    }
    
    //获取树json数据
    @RequestMapping("/tableTree")
    @ResponseBody
    public Map<String, Object> tableTree() {
        Map<String, Object> map = new HashMap<String, Object>();
    
        List<DataSource> list = dataSourceService.getAll(1, 200);
    
        List<Map<String, Object>> tableList = new ArrayList();
    
        for (int i = 0; i < list.size(); i++) {
            List<Dictionary> dicList = dataSourceService.getDictionary(list.get(i).getId());
            Map<String, Object> cmap = new HashMap<>();
            cmap.put("name", list.get(i).getTableName());
            cmap.put("label", list.get(i).getTableName());
    
            List<Map<String, Object>> childrenList = new ArrayList<>();
    
            for (Dictionary dic : dicList) {
                Map<String, Object> fieldMap = new HashMap<>();
                fieldMap.put("name", list.get(i).getTableName() + "." + dic.getField());
                fieldMap.put("label", dic.getComment());
                childrenList.add(fieldMap);
            }
    
            cmap.put("children", childrenList);
            tableList.add(cmap);
    
        }
    
        map.put("data", tableList);
        return ApiResponse.toJson(20000, map);
    }
    
    //空值检测
    @RequestMapping("/getNull/{id}/{field}")
    @ResponseBody
    public Map<String, Object> nullSearch(@PathVariable("id") Integer id, @PathVariable("field") String field) {
        Map<String, Object> responseMap = new HashMap<>();
    
        DataSource dataSource = dataSourceService.getOneById(id);
    
        String tablename = dataSource.getTableName();
    
        List<HashMap<String, Object>> hashMaps = dataSourceService.nullSearch(tablename, field);
        responseMap.put("items", hashMaps);
    
        return ApiResponse.toJson(20000, responseMap);
    }
    
    //空值补全
    @RequestMapping("/nullUpdate/{id}/{field}/{value}/{rowid}")
    @ResponseBody
    public Map<String, Object> nullUpdate(@PathVariable("id") Integer id, @PathVariable("field") String field, @PathVariable("value") String value, @PathVariable("rowid") String rowid) {
        Map<String, Object> responseMap = new HashMap<>();
    
        DataSource dataSource = dataSourceService.getOneById(id);
    
        String tablename = dataSource.getTableName();
    
        int result = dataSourceService.nullUpdate(tablename, field,value,rowid);
        responseMap.put("num", result);
    
        return ApiResponse.toJson(20000, responseMap);
    }
    
    //jsonUpdate
    @RequestMapping("/jsonUpdate/{id}/{field}")
    @ResponseBody
    public Map<String, Object> jsonUpdate(@PathVariable("id") Integer id, @PathVariable("field") String field) {
        Map<String, Object> responseMap = new HashMap<>();
    
        DataSource dataSource = dataSourceService.getOneById(id);
        String tablename = dataSource.getTableName();
    
        List<HashMap<String, Object>> list = dataSourceService.queryTableDetails(id,1,500000);
    
        Integer sum = 0;
        for (HashMap<String, Object> map : list) {
            Object object = map.get(field);
            String jsonStr = object.toString();
            String newStr = dataSourceService.jsonToStr(jsonStr);
            int result = dataSourceService.nullUpdate(tablename,field,newStr,map.get("id").toString());
            sum += result;
        }
    
    
        responseMap.put("num", sum);
    
        return ApiResponse.toJson(20000, responseMap);
    }
    
    //按条件删除
    @RequestMapping("/deleteByNum/{id}/{field}/{value}/{type}")
    @ResponseBody
    public Map<String, Object> deleteByNum(@PathVariable("id") Integer id,@PathVariable("field") String field,@PathVariable("value") String value,@PathVariable("type") String type) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
        String tablename = dataSource.getTableName();
    
        Integer result = dataSourceService.deleteByNum(tablename, field, value, type);
    
        map.put("num",result);
    
        return ApiResponse.toJson(20000, map);
    }
    
    
    //删除重复数据
    @RequestMapping("/deleteRepe/{id}")
    public Map<String, Object> deleteRepe(@PathVariable("id") Integer id) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
        String tablename = dataSource.getTableName();
    
        Integer result = dataSourceService.deleteRepe(tablename);
    
        map.put("num",result);
    
        return ApiResponse.toJson(20000, map);
    }
    

    }
    package snow.controller;

    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.datasource.DataSourceUtils;
    import org.springframework.web.bind.annotation.*;
    import org.springframework.web.multipart.MultipartFile;
    import snow.entity.DataSource;
    import snow.entity.Dictionary;
    import snow.service.DataSourceService;
    import snow.utils.ApiResponse;
    import snow.utils.CSV2Excel;
    import snow.utils.ExcelToSQLUtils;

    import javax.servlet.http.HttpServletRequest;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.text.SimpleDateFormat;
    import java.util.*;

    @RestController
    public class DataSourceController {
    @Autowired
    private DataSourceService dataSourceService;

    //创建表 Spring
    @PostMapping("/createtable/{nameIndex}/{unitIndex}/{meansIndex}")
    public Map<String, Object> createTable(MultipartFile file, @PathVariable("nameIndex") Integer nameIndex, @PathVariable("unitIndex") Integer unitIndex, @PathVariable("meansIndex") Integer meansIndex, HttpServletRequest req) {
    

    // String path = "/home/g2431/Documents/2018年软件基地年报.xlsx";
    // dataSourceService.createTable(path);
    String originName = file.getOriginalFilename();
    if (!(originName.endsWith(".xlsx") || originName.endsWith(".csv"))) {
    return ApiResponse.toJsonDefault(60204, "文件格式错误");
    }

        DataSource dataSource;
        try {
            dataSource = fileUpload(file, req);
        } catch (IOException e) {
            e.printStackTrace();
            return ApiResponse.toJsonDefault(60204, "上传失败");
        }
    
        if (originName.endsWith("xlsx") || originName.endsWith("csv")) {
            try {
                int table = dataSourceService.createTable(dataSource.getFilePath(), nameIndex, unitIndex, meansIndex, dataSource.getTableName());
                System.out.println("table: " + table + dataSource.getTableName());
                dataSourceService.addDataSource(dataSource);
                System.out.println("dataSource: " + dataSource);
            } catch (Exception e) {
                System.out.println(e.toString());
                return ApiResponse.toJsonDefault(60205, "上传失败");
            }
        }
    
    
        Map<String, Object> map = new HashMap();
        map.put("dataSource", dataSource);
        return ApiResponse.toJson(20000, map);
    }
    
    //从excel添加
    @PostMapping("/addfromexcel/{id}/{beginIndex}")
    public Map<String, Object> addFromExcel(MultipartFile file, @PathVariable("id") Integer id, @PathVariable("beginIndex") Integer beginIndex, HttpServletRequest req) {
        String originName = file.getOriginalFilename();
        if (!(originName.endsWith(".xlsx") || originName.endsWith(".csv"))) {
            return ApiResponse.toJsonDefault(60204, "文件格式错误");
        }
    
        DataSource dataSource;
        try {
            dataSource = fileUpload(file, req);
        } catch (IOException e) {
            e.printStackTrace();
            return ApiResponse.toJsonDefault(60204, "上传失败");
        }
    
        if (originName.endsWith("xlsx") || originName.endsWith("csv")) {
            try {
                DataSource dataSource1 = dataSourceService.getOneById(id);
                int table = dataSourceService.addOneByOne(dataSource.getFilePath(), dataSource1.getTableName(), beginIndex);
                System.out.println("table: " + table + dataSource1.getTableName());
                System.out.println("dataSource: " + dataSource1);
            } catch (Exception e) {
                System.out.println(e.toString());
                return ApiResponse.toJsonDefault(60205, "上传失败");
            }
        }
    
        Map<String, Object> map = new HashMap();
        map.put("dataSource", dataSource);
        return ApiResponse.toJson(20000, map);
    }
    
    //文件上传
    private DataSource fileUpload(MultipartFile file, HttpServletRequest req) throws IOException {
        DataSource dataSource = new DataSource();
    
        SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/");
        String format = sdf.format(new Date());
        String realPath = "/home/g2431/upload" + format;
        File folder = new File(realPath);
        if (!folder.exists()) {
            folder.mkdirs();
        }
    
        String originalFilename = file.getOriginalFilename();
    
        String uuid = UUID.randomUUID().toString();
    
        String newName = uuid + "." + originalFilename.substring(originalFilename.lastIndexOf('.') + 1);
    
        System.out.println(folder + newName);
        String excelPath = folder + "/" + newName;
        file.transferTo(new File(folder, newName));
    
        if (originalFilename.endsWith("csv"))
            excelPath = CSV2Excel.csvToXLSX(excelPath);
    
        String url = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/upload" + format + newName;
    
        dataSource.setFileUrl(url);
        dataSource.setFilePath(excelPath);
        dataSource.setShowName(originalFilename);
        dataSource.setTableName(uuid.replace("-", "").replaceAll("[0-9]", ""));
        dataSource.setType(originalFilename.substring(originalFilename.lastIndexOf('.') + 1).equals("xlsx") ? "excel" : "csv");
        System.out.println(dataSource);
    
        return dataSource;
    }
    
    //获取列表
    @RequestMapping("/list")
    @ResponseBody
    public Map<String, Object> list() {
        Map<String, Object> map = new HashMap<String, Object>();
        List<DataSource> list = dataSourceService.getAll(1, 20);
        map.put("list", list);
        return ApiResponse.toJson(20000, map);
    }
    
    //删除数据源
    @RequestMapping("/delete/{id}")
    @ResponseBody
    public Map<String, Object> delete(@PathVariable("id") Integer id) {
        int i = dataSourceService.deleteById(id);
        if (i > 0) {
            return ApiResponse.toJsonSuccess(20000, "删除成功");
        } else {
            return ApiResponse.toJsonDefault(62560, "删除失败");
        }
    }
    
    //修改
    @RequestMapping("/update")
    @ResponseBody
    public Map<String, Object> update(@RequestBody DataSource dataSource) {
        int i = dataSourceService.updateById(dataSource);
        if (i > 0) {
            return ApiResponse.toJsonSuccess(20000, "修改成功");
        } else {
            return ApiResponse.toJsonDefault(62560, "修改失败");
        }
    }
    
    //查询接口
    @RequestMapping("/query/{num}/{size}")
    @ResponseBody
    public Map<String, Object> query(@RequestBody DataSource dataSource, @PathVariable("num") Integer num, @PathVariable("size") Integer size) {
        Map<String, Object> map = new HashMap<String, Object>();
        List<DataSource> list = dataSourceService.query(dataSource, num, size);
        map.put("items", list);
        map.put("totals", list.size());
        return ApiResponse.toJson(20000, map);
    }
    
    //查找一个
    @RequestMapping("/getOneById/{id}")
    @ResponseBody
    public Map<String, Object> getOneById(@PathVariable("id") Integer id) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
    
        dataSource.getTableName();
    
        return ApiResponse.toJson(20000, map);
    }
    
    //获取字典
    @RequestMapping("/getDictionary/{id}")
    @ResponseBody
    public Map<String, Object> getDictionary(@PathVariable("id") Integer id) {
        Map<String, Object> map = new HashMap<String, Object>();
        List<Dictionary> list = dataSourceService.getDictionary(id);
        map.put("items", list);
        return ApiResponse.toJson(20000, map);
    }
    
    //添加一个
    @PostMapping("/addonedata/{id}")
    public Map<String, Object> addOneData(@PathVariable("id") Integer id, @RequestBody Map<String, Object> map) {
        Map<String, Object> responseMap = new HashMap<>();
    
        int i = dataSourceService.addOneData(map, id);
    
        responseMap.put("nums", i);
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
        return ApiResponse.toJson(20000, responseMap);
    }
    
    @PostMapping("/addonedatabydic/{id}")
    public Map<String, Object> addOneDataByDic(@PathVariable("id") Integer id, @RequestBody List<Dictionary> list) {
        Map<String, Object> responseMap = new HashMap<>();
        Map<String, Object> map = new LinkedHashMap<>();
    
        for (Dictionary dictionary : list) {
            map.put(dictionary.getField(), dictionary.getDefault());
        }
    
        System.out.println(map);
    
        int i = dataSourceService.addOneData(map, id);
    
        responseMap.put("nums", i);
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
        return ApiResponse.toJson(20000, responseMap);
    }
    
    @GetMapping("/getTableDetails/{id}/{num}/{size}")
    public Map<String, Object> list(@PathVariable("id") Integer id, @PathVariable("num") Integer num, @PathVariable("size") Integer size) {
        Map<String, Object> responseMap = new HashMap<>();
        List<HashMap<String, Object>> hashMaps = dataSourceService.queryTableDetails(id, num, size);
        responseMap.put("items", hashMaps);
        responseMap.put("total", dataSourceService.getTableTotal(id));
    
        return ApiResponse.toJson(20000, responseMap);
    }
    
    //获取文件路径
    @GetMapping("/getfileurl/{id}")
    public Map<String, Object> getFileUrl(@PathVariable("id") Integer id) {
        Map<String, Object> responseMap = new HashMap<>();
    
        String fileUrl = dataSourceService.getFileUrl(id);
        responseMap.put("fileurl", fileUrl);
    
        return ApiResponse.toJson(20000, responseMap);
    }
    
    //修改字典
    @RequestMapping("/updateDic/{id}/{field}/{type}/{comment}")
    @ResponseBody
    public Map<String, Object> updateDic(@PathVariable("id") Integer id, @PathVariable("field") String field, @PathVariable("type") String type, @PathVariable("comment") String comment) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
    
        String tablename = dataSource.getTableName();
    
        int result = dataSourceService.updateDic(tablename, field, type, comment);
        map.put("num", result);
    
        return ApiResponse.toJson(20000, map);
    }
    
    //修改字典
    @PostMapping(value = "/changeDic")
    @ResponseBody
    public Map<String, Object> changeDic(@RequestBody JSONObject dic) {
        Integer id = dic.getInteger("id");
        String oldfield = dic.getString("oldfield");
        String field = dic.getString("field");
        String oldtype = dic.getString("oldtype");
        String type = dic.getString("type");
        String comment = dic.getString("comment");
    
        System.out.println(id + "  " + oldfield);
    
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
        String tablename = dataSource.getTableName();
        int result = dataSourceService.changeDic(tablename, oldfield, field, oldtype, type, comment);
        map.put("num", result);
        return ApiResponse.toJson(20000, map);
    }
    
    //修改字典
    @RequestMapping("/addField/{id}/{field}/{type}/{comment}")
    @ResponseBody
    public Map<String, Object> addField(@PathVariable("id") Integer id, @PathVariable("field") String field, @PathVariable("type") String type, @PathVariable("comment") String comment) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
    
        String tablename = dataSource.getTableName();
    
        int result = dataSourceService.addField(tablename, field, type, comment);
        map.put("num", result);
    
        return ApiResponse.toJson(20000, map);
    }
    
    //修改字典
    @RequestMapping("/deleteField/{id}/{field}")
    @ResponseBody
    public Map<String, Object> deleteField(@PathVariable("id") Integer id, @PathVariable("field") String field) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
    
        String tablename = dataSource.getTableName();
    
        int result = dataSourceService.deleteField(tablename, field);
        map.put("num", result);
    
        return ApiResponse.toJson(20000, map);
    }
    
    //获取树json数据
    @RequestMapping("/tableTree")
    @ResponseBody
    public Map<String, Object> tableTree() {
        Map<String, Object> map = new HashMap<String, Object>();
    
        List<DataSource> list = dataSourceService.getAll(1, 200);
    
        List<Map<String, Object>> tableList = new ArrayList();
    
        for (int i = 0; i < list.size(); i++) {
            List<Dictionary> dicList = dataSourceService.getDictionary(list.get(i).getId());
            Map<String, Object> cmap = new HashMap<>();
            cmap.put("name", list.get(i).getTableName());
            cmap.put("label", list.get(i).getTableName());
    
            List<Map<String, Object>> childrenList = new ArrayList<>();
    
            for (Dictionary dic : dicList) {
                Map<String, Object> fieldMap = new HashMap<>();
                fieldMap.put("name", list.get(i).getTableName() + "." + dic.getField());
                fieldMap.put("label", dic.getComment());
                childrenList.add(fieldMap);
            }
    
            cmap.put("children", childrenList);
            tableList.add(cmap);
    
        }
    
        map.put("data", tableList);
        return ApiResponse.toJson(20000, map);
    }
    
    //空值检测
    @RequestMapping("/getNull/{id}/{field}")
    @ResponseBody
    public Map<String, Object> nullSearch(@PathVariable("id") Integer id, @PathVariable("field") String field) {
        Map<String, Object> responseMap = new HashMap<>();
    
        DataSource dataSource = dataSourceService.getOneById(id);
    
        String tablename = dataSource.getTableName();
    
        List<HashMap<String, Object>> hashMaps = dataSourceService.nullSearch(tablename, field);
        responseMap.put("items", hashMaps);
    
        return ApiResponse.toJson(20000, responseMap);
    }
    
    //空值补全
    @RequestMapping("/nullUpdate/{id}/{field}/{value}/{rowid}")
    @ResponseBody
    public Map<String, Object> nullUpdate(@PathVariable("id") Integer id, @PathVariable("field") String field, @PathVariable("value") String value, @PathVariable("rowid") String rowid) {
        Map<String, Object> responseMap = new HashMap<>();
    
        DataSource dataSource = dataSourceService.getOneById(id);
    
        String tablename = dataSource.getTableName();
    
        int result = dataSourceService.nullUpdate(tablename, field,value,rowid);
        responseMap.put("num", result);
    
        return ApiResponse.toJson(20000, responseMap);
    }
    
    //jsonUpdate
    @RequestMapping("/jsonUpdate/{id}/{field}")
    @ResponseBody
    public Map<String, Object> jsonUpdate(@PathVariable("id") Integer id, @PathVariable("field") String field) {
        Map<String, Object> responseMap = new HashMap<>();
    
        DataSource dataSource = dataSourceService.getOneById(id);
        String tablename = dataSource.getTableName();
    
        List<HashMap<String, Object>> list = dataSourceService.queryTableDetails(id,1,500000);
    
        Integer sum = 0;
        for (HashMap<String, Object> map : list) {
            Object object = map.get(field);
            String jsonStr = object.toString();
            String newStr = dataSourceService.jsonToStr(jsonStr);
            int result = dataSourceService.nullUpdate(tablename,field,newStr,map.get("id").toString());
            sum += result;
        }
    
    
        responseMap.put("num", sum);
    
        return ApiResponse.toJson(20000, responseMap);
    }
    
    //按条件删除
    @RequestMapping("/deleteByNum/{id}/{field}/{value}/{type}")
    @ResponseBody
    public Map<String, Object> deleteByNum(@PathVariable("id") Integer id,@PathVariable("field") String field,@PathVariable("value") String value,@PathVariable("type") String type) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
        String tablename = dataSource.getTableName();
    
        Integer result = dataSourceService.deleteByNum(tablename, field, value, type);
    
        map.put("num",result);
    
        return ApiResponse.toJson(20000, map);
    }
    
    
    //删除重复数据
    @RequestMapping("/deleteRepe/{id}")
    public Map<String, Object> deleteRepe(@PathVariable("id") Integer id) {
        Map<String, Object> map = new HashMap<String, Object>();
        DataSource dataSource = dataSourceService.getOneById(id);
        String tablename = dataSource.getTableName();
    
        Integer result = dataSourceService.deleteRepe(tablename);
    
        map.put("num",result);
    
        return ApiResponse.toJson(20000, map);
    }
    

    }

  • 相关阅读:
    day5 元组,字典,集合
    day4预习
    day4字符串、列表
    day3预习
    day3 数据类型
    day2 python 基础入门
    动态三角形(动态规划思想入门)
    百度之星资格赛
    Audiophobia(Floyd算法)
    Hat’s Words(字典树的运用)
  • 原文地址:https://www.cnblogs.com/gongyunlong-blogs/p/15700394.html
Copyright © 2011-2022 走看看