自定義代碼生成器



public class GenerationVlEntity {

    //老值
    private String originalValue;
    //新值
    private String newValue;


    public String getNewValue() {
        return newValue;
    }

    public void setNewValue(String newValue) {
        this.newValue = newValue;
    }

    public String getOriginalValue() {
        return originalValue;
    }

    public void setOriginalValue(String originalValue) {
        this.originalValue = originalValue;
    }
}


import java.util.List;

public class GenerationEntity {

    //老路径
    private String originalPath;
    //新路径
    private String newPath;
    //要修改的值集合
    private List<GenerationVlEntity> geList;
    //标识 1.report的Controller,2,CloudService,3,请求入参Dto,4返回结果Dto,5,service的Controller,6.Service,7,ServiceImpl,8,Dao,9,Mapper
    private int mark;

    public int getMark() {
        return mark;
    }

    public void setMark(int mark) {
        this.mark = mark;
    }

    public String getOriginalPath() {
        return originalPath;
    }

    public void setOriginalPath(String originalPath) {
        this.originalPath = originalPath;
    }

    public String getNewPath() {
        return newPath;
    }

    public void setNewPath(String newPath) {
        this.newPath = newPath;
    }

    public List<GenerationVlEntity> getGeList() {
        return geList;
    }

    public void setGeList(List<GenerationVlEntity> geList) {
        this.geList = geList;
    }
}
package com.hikvision.mes.report.util;



import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class GenerationCodeUtil {


    public static  List<GenerationVlEntity> geList = new ArrayList<>();

    public static void main(String[] args) throws IOException{
        //原型对象
        String prototype ="EquipUtilizationRate";
        //目标对象
        String target ="AasdsSmtProducy";
        String basePath = "E:/sit/HikvisionMes/modules/hikvision.mes.report/src/main/java/com/hikvision/mes/report/controller/";
        //添加改动点
        replaceFunction(prototype,target);
        replaceFunction("设备稼动率,产量","Smt生产日报实时");
        replaceFunction("2020/11/05 15:24","2020/11/14 15:24");
        replaceFunction("X-RAY点料机稼动率","Smt生产日报实时");
        replaceFunction("XrayCropRate","SmtProductionDaily");
        //是否需要自动生成Dto true是false否
        boolean flag = false;
        //请求入参DTO
        String param = "EquipmentManageDto";
        //结果集Dto
        String result = "EquipmentStandingBookDto.BaseInfo";
        //添加文档集合
        List <GenerationEntity> entityList = getGenerationEntityLIstanbul(basePath,prototype,target,flag,param,result);
        //自动生成,新增文件
        addFile(entityList);
        //新增的接口名
        String name = "selectshsh";
        //在原有类中接口的方法,一条龙服务
        insertIntface(entityList,name);

    }

    private static void insertIntface(List<GenerationEntity> entityList,String name)throws IOException {
        try {
            for(GenerationEntity en:entityList){
                File file = new File(en.getOriginalPath());
                List<String> list1 = new ArrayList<String>();
                FileInputStream stream = new FileInputStream(file);
                InputStreamReader streamReader = new InputStreamReader(stream, "UTF-8");
                BufferedReader reader = new BufferedReader(streamReader);
                String line = "";
                while ((line = reader.readLine()) != null){
                    //替换一下字符
                    for (GenerationVlEntity ge:geList){
                        line = line.replace(ge.getOriginalValue(),ge.getNewValue());
                    }
                    list1.add(line);
                }
                insert(list1,en.getNewPath(),en.getMark(),name);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }


    private static void addFile(List<GenerationEntity> entityList) throws IOException {
        try {
            for(GenerationEntity en:entityList){
                File file = new File(en.getOriginalPath());
                saveFile(file,en.getNewPath());
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

        private static void saveFile(File file,String filePath) throws IOException {
        try {
            List<String> list1 = new ArrayList<String>();
            FileInputStream stream = new FileInputStream(file);
            InputStreamReader streamReader = new InputStreamReader(stream, "UTF-8");
            BufferedReader reader = new BufferedReader(streamReader);
            String line = "";
            while ((line = reader.readLine()) != null){
                //替换一下字符
                for (GenerationVlEntity ge:geList){
                    line = line.replace(ge.getOriginalValue(),ge.getNewValue());
                }
                list1.add(line);
            }
            save(list1,filePath);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

    private static List<GenerationEntity> getGenerationEntityLIstanbul(String basePath, String prototype, String target, boolean flag, String param, String result) {
        List <GenerationEntity> entityList = new ArrayList<>();
        GenerationEntity ge1 = new GenerationEntity();
        String c1 = prototype+"Controller.java";
        String t1 = target+"Controller.java";
        String pr1 = basePath+c1;
        String ta1 = basePath+t1;
        ge1.setMark(1);
        ge1.setOriginalPath(pr1);
        ge1.setNewPath(ta1);
        entityList.add(ge1);

        String p1 = "E:/sit/mes-service-report/modules/sdk/src/main/java/com/hikvision/mes/report/sdk/api/";
        GenerationEntity ge2 = new GenerationEntity();
        String c2 = prototype+"CloudService.java";
        String t2 = target+"CloudService.java";
        String pr2 = p1+c2;
        String ta2 = p1+t2;
        ge2.setMark(2);
        ge2.setOriginalPath(pr2);
        ge2.setNewPath(ta2);
        entityList.add(ge2);

        String c3 = prototype+"Dto.java";
        String c4 = prototype+"ResultDto.java";
        if(flag){
            String p2 = "E:/sit/mes-service-report/modules/sdk/src/main/java/com/hikvision/mes/report/sdk/dto/";
            GenerationEntity ge3 = new GenerationEntity();
            String t3 = target+"Dto.java";
            String pr3 = p2+c3;
            String ta3 = p2+t3;
            ge3.setOriginalPath(pr3);
            ge3.setNewPath(ta3);
            ge3.setMark(3);
            entityList.add(ge3);
            GenerationEntity ge4 = new GenerationEntity();
            String t4 = target+"ResultDto.java";
            String pr4 = p2+c4;
            String ta4 = p2+t4;
            ge4.setOriginalPath(pr4);
            ge4.setNewPath(ta4);
            ge4.setMark(4);
            entityList.add(ge4);
        }else {
            GenerationVlEntity ge10 = new GenerationVlEntity();
            ge10.setOriginalValue(c3);
            ge10.setNewValue(param);
            geList.add(0,ge10);
            GenerationVlEntity ge11 = new GenerationVlEntity();
            ge11.setOriginalValue(c4);
            ge11.setNewValue(result);
            geList.add(1,ge10);
        }
        String p3 = "E:/sit/mes-service-report/modules/service/src/main/java/com/hikvision/mes/report/service/controller/";
        GenerationEntity ge5 = new GenerationEntity();
        String c5 = prototype+"Controller.java";
        String t5 = target+"Controller.java";
        String pr5 = p3+c5;
        String ta5 = p3+t5;
        ge5.setOriginalPath(pr5);
        ge5.setNewPath(ta5);
        ge5.setMark(5);
        entityList.add(ge5);
        String p4 = "E:/sit/mes-service-report/modules/service/src/main/java/com/hikvision/mes/report/service/service/";
        GenerationEntity ge6 = new GenerationEntity();
        String c6 = prototype+"Service.java";
        String t6 = target+"Service.java";
        String pr6 = p4+c6;
        String ta6 = p4+t6;
        ge6.setOriginalPath(pr6);
        ge6.setNewPath(ta6);
        ge6.setMark(6);
        entityList.add(ge6);
        String p5 = "E:/sit/mes-service-report/modules/service/src/main/java/com/hikvision/mes/report/service/service/impl/";
        GenerationEntity ge7 = new GenerationEntity();
        String c7 = prototype+"ServiceImpl.java";
        String t7 = target+"ServiceImpl.java";
        String pr7 = p5+c7;
        String ta7 = p5+t7;
        ge7.setOriginalPath(pr7);
        ge7.setNewPath(ta7);
        ge7.setMark(7);
        entityList.add(ge7);
        String p6 = "E:/sit/mes-service-report/modules/service/src/main/java/com/hikvision/mes/report/service/dao/";
        GenerationEntity ge8 = new GenerationEntity();
        String c8 = prototype+"Dao.java";
        String t8 = target+"Dao.java";
        String pr8 = p6+c8;
        String ta8 = p6+t8;
        ge8.setOriginalPath(pr8);
        ge8.setNewPath(ta8);
        ge8.setMark(8);
        entityList.add(ge8);
        String p7 = "E:/sit/mes-service-report/modules/service/src/main/resources/sql-mappers/";
        GenerationEntity ge9 = new GenerationEntity();
        String c9 = prototype+"Mapper.xml";
        String t9 = target+"Mapper.xml";
        String pr9 = p7+c9;
        String ta9 = p7+t9;
        ge9.setOriginalPath(pr9);
        ge9.setNewPath(ta9);
        ge9.setMark(9);
        entityList.add(ge9);

        return entityList;
    }

    private static void replaceFunction(String originalValue, String newValue) {
        GenerationVlEntity generationEntity = new GenerationVlEntity();
        generationEntity.setOriginalValue(originalValue);
        generationEntity.setNewValue(newValue);
        geList.add(generationEntity);
    }

    private static void insert(List<String> list1, String filePath,int mark,String name) throws FileNotFoundException {
        if(mark == 1){
            list1.add(" /**\n" +
                    "     * 查询点料机,分板机,镭雕机,烧录机报表效率二级下钻指标\n" +
                    "     */\n" +
                    "    @ResponseBody\n" +
                    "    @RequestMapping(value=\""+name+"\", method = RequestMethod.POST)\n" +
                    "    public APIResponse<List<EquipUtilizatioSecondResultDto>> "+name+"(@RequestBody() EquipUtilizationRateDto req) {\n" +
                    "        return equipUtilizationRateCloudService.selectXrayCropRateSecondChart(req);\n" +
                    "    }");
        }
        FileOutputStream outputStream = new FileOutputStream(filePath);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
        BufferedWriter writer = new BufferedWriter(outputStreamWriter);
        for (String line : list1){
            try {
                writer.write(line+System.lineSeparator());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    private static void save(List<String> list1, String filePath) throws FileNotFoundException {
        FileOutputStream outputStream = new FileOutputStream(filePath);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
        BufferedWriter writer = new BufferedWriter(outputStreamWriter);
        for (String line : list1){
            try {
                writer.write(line+System.lineSeparator());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
package com.hikvision.mes.report.util;

import com.hikvision.mes.report.model.GenerationEntity;
import com.hikvision.mes.report.model.GenerationVlEntity;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class GenerationCodeUtil {


    public static  List<GenerationVlEntity> geList = new ArrayList<>();

    public static void main(String[] args) throws IOException{
         //report服务代码自动生成
//        automaticGenerationA();
        //reportWrite服务代码自动生成
        automaticGenerationB();


    }

    private static void automaticGenerationA() throws IOException {
        //原型对象
        String prototype ="EquipUtilizationRate";
        //目标对象
        String target ="EquipUtilizationRate";
//        String target ="EquipUtilizationRate";
        String basePath = "E:/sit/HikvisionMes/modules/hikvision.mes.report/src/main/java/com/hikvision/mes/report/controller/";
        //添加改动点
        replaceFunction(prototype,target);
        replaceFunction("equipUtilizationRate","aasdsSmtProducy");
        replaceFunction("设备稼动率,产量","Smt生产日报实时");
        replaceFunction("2020/11/05 15:24","2020/11/14 15:24");
        replaceFunction("X-RAY点料机稼动率","Smt生产日报实时");
        replaceFunction("XrayCropRate","SmtProductionDaily");
//        是否需要自动生成Dto true是false否
        boolean flag = false;
        //请求入参DTO
        String param = "EquipmentManageDto";
        //结果集Dto
        String result = "EquipmentStandingBookDto.BaseInfo";
        //添加文档集合
        List <GenerationEntity> entityList = getGenerationEntityLIstanbul(basePath,prototype,target,flag,param,result);
        // 是否需要全量复制 true是false否
        boolean isAll = false;
        //自动生成,新增文件
//        addFile(entityList,isAll);
        //新增的接口名                  //服务名
        String name = "selectsdfeWEEWsdas",serverName ="aasdsSmtProducy",annotation="查询生成直通车变换频率接口";
//        //在原有类中接口的方法,一条龙服务
        insertIntface(entityList,name,serverName,param,result,annotation);
    }

    private static void automaticGenerationB() throws IOException {
        //原型对象
        String prototype ="ProductSubtype";
        //目标对象
        String target ="ProductType";
//        String target ="EquipUtilizationRate";
        String basePath = "E:/sit/HikvisionMes/modules/hikvision.mes.report/src/main/java/com/hikvision/mes/report/controller/";
        //添加改动点
        replaceFunction(prototype,target);
        replaceFunction("productSubtype","productType");
        replaceFunction("产品子类","产品类型");
        replaceFunction("2020-12-02 20:50","2020-12-03 11:23");
        replaceFunction("产品类型大类","产品类型子类");
//        replaceFunction("XrayCropRate","SmtProductionDaily");
//        是否需要自动生成Dto true是false否
        boolean flag = false;
        //请求入参DTO
        String param = "ProductMastDto";
        //结果集Dto
        String result = "ProductMastDto";
        //添加文档集合
        List <GenerationEntity> entityList = getGenerationEntityListForB(basePath,prototype,target,flag,param,result);
        // 是否需要全量复制 true是false否
        boolean isAll = true;
        addFile(entityList,isAll);
//        //新增的接口名                  //服务名
//        String name = "selectsdfeWEEWsdas",serverName ="aasdsSmtProducy",annotation="查询生成直通车变换频率接口";
        //在原有类中接口的方法,一条龙服务
//        insertIntface(entityList,name,serverName,param,result,annotation);
    }

    private static List<GenerationEntity> getGenerationEntityListForB(String basePath, String prototype, String target, boolean flag, String param, String result) {
        List <GenerationEntity> entityList = new ArrayList<>();
        GenerationEntity ge1 = new GenerationEntity();
        String c1 = prototype+"Controller.java";
        String t1 = target+"Controller.java";
        String pr1 = basePath+c1;
        String ta1 = basePath+t1;
        ge1.setMark(1);
        ge1.setLineNum(71);
        ge1.setOriginalPath(pr1);
        ge1.setNewPath(ta1);
        entityList.add(ge1);

        String p1 = "E:\\sit\\mes-service-reportwrite\\modules\\sdk\\src\\main\\java\\com\\hikvision\\mes\\reportwrite\\sdk\\api\\";
        GenerationEntity ge2 = new GenerationEntity();
        String c2 = prototype+"CloudService.java";
        String t2 = target+"CloudService.java";
        String pr2 = p1+c2;
        String ta2 = p1+t2;
        ge2.setMark(2);
        ge2.setLineNum(34);
        ge2.setOriginalPath(pr2);
        ge2.setNewPath(ta2);
        entityList.add(ge2);

        if(flag){
            String c3 = prototype+"Dto.java";
            String c4 = prototype+"ResultDto.java";
            String p2 = "E:/sit/mes-service-report/modules/sdk/src/main/java/com/hikvision/mes/report/sdk/dto/";
            GenerationEntity ge3 = new GenerationEntity();
            String t3 = target+"Dto.java";
            String pr3 = p2+c3;
            String ta3 = p2+t3;
            ge3.setOriginalPath(pr3);
            ge3.setNewPath(ta3);
            ge3.setMark(3);
            ge3.setLineNum(139);
            entityList.add(ge3);
            GenerationEntity ge4 = new GenerationEntity();
            String t4 = target+"ResultDto.java";
            String pr4 = p2+c4;
            String ta4 = p2+t4;
            ge4.setOriginalPath(pr4);
            ge4.setNewPath(ta4);
            ge4.setMark(4);
            ge4.setLineNum(48);
            entityList.add(ge4);
        }else {
            String c3 = prototype+"Dto";
            String c4 = prototype+"ResultDto";
            GenerationVlEntity ge10 = new GenerationVlEntity();
            ge10.setOriginalValue(c3);
            ge10.setNewValue(param);
            geList.add(0,ge10);
            GenerationVlEntity ge11 = new GenerationVlEntity();
            ge11.setOriginalValue(c4);
            ge11.setNewValue(result);
            geList.add(1,ge11);
        }
        String p3 = "E:\\sit\\mes-service-reportwrite\\modules\\service\\src\\main\\java\\com\\hikvision\\mes\\reportwrite\\service\\controller\\";
        GenerationEntity ge5 = new GenerationEntity();
        String c5 = prototype+"ConfigController.java";
        String t5 = target+"ConfigController.java";
        String pr5 = p3+c5;
        String ta5 = p3+t5;
        ge5.setOriginalPath(pr5);
        ge5.setNewPath(ta5);
        ge5.setMark(5);
        ge5.setLineNum(47);
        entityList.add(ge5);
        String p4 = "E:\\sit\\mes-service-reportwrite\\modules\\service\\src\\main\\java\\com\\hikvision\\mes\\reportwrite\\service\\service\\";
        GenerationEntity ge6 = new GenerationEntity();
        String c6 = prototype+"Service.java";
        String t6 = target+"Service.java";
        String pr6 = p4+c6;
        String ta6 = p4+t6;
        ge6.setOriginalPath(pr6);
        ge6.setNewPath(ta6);
        ge6.setMark(6);
        ge6.setLineNum(26);
        entityList.add(ge6);
        String p5 = "E:\\sit\\mes-service-reportwrite\\modules\\service\\src\\main\\java\\com\\hikvision\\mes\\reportwrite\\service\\service\\";
        GenerationEntity ge7 = new GenerationEntity();
        String c7 = prototype+"ServiceImpl.java";
        String t7 = target+"ServiceImpl.java";
        String pr7 = p5+c7;
        String ta7 = p5+t7;
        ge7.setOriginalPath(pr7);
        ge7.setNewPath(ta7);
        ge7.setMark(7);
        ge7.setLineNum(36);
        entityList.add(ge7);
        String p6 = "E:\\sit\\mes-service-reportwrite\\modules\\service\\src\\main\\java\\com\\hikvision\\mes\\reportwrite\\service\\dao\\";
        GenerationEntity ge8 = new GenerationEntity();
        String c8 = prototype+"Dao.java";
        String t8 = target+"Dao.java";
        String pr8 = p6+c8;
        String ta8 = p6+t8;
        ge8.setOriginalPath(pr8);
        ge8.setNewPath(ta8);
        ge8.setMark(8);
        ge8.setLineNum(27);
        entityList.add(ge8);
        String p7 = "E:\\sit\\mes-service-reportwrite\\modules\\service\\src\\main\\resources\\sql-mappers\\";
        GenerationEntity ge9 = new GenerationEntity();
        String c9 = prototype+"Mapper.xml";
        String t9 = target+"Mapper.xml";
        String pr9 = p7+c9;
        String ta9 = p7+t9;
        ge9.setOriginalPath(pr9);
        ge9.setNewPath(ta9);
        ge9.setMark(9);
        ge9.setLineNum(6);
        entityList.add(ge9);

        return entityList;
    }


    private static void insertIntface(List<GenerationEntity> entityList,String name,String serverName,String param,String result,String annotation)throws IOException {
        try {
            for(GenerationEntity en:entityList){
                File file = new File(en.getOriginalPath());
                List<String> list1 = new ArrayList<String>();
                FileInputStream stream = new FileInputStream(file);
                InputStreamReader streamReader = new InputStreamReader(stream, "UTF-8");
                BufferedReader reader = new BufferedReader(streamReader);
                String line = "";
                while ((line = reader.readLine()) != null){
                    //替换一下字符
//                    for (GenerationVlEntity ge:geList){
//                        line = line.replace(ge.getOriginalValue(),ge.getNewValue());
//                    }
                    list1.add(line);
                }
                insert(list1,en.getNewPath(),en.getMark(),name,serverName,param,result,annotation);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }


    private static void addFile(List<GenerationEntity> entityList,boolean isAll) throws IOException {
        try {
            for(GenerationEntity en:entityList){
                File file = new File(en.getOriginalPath());
                saveFile(file,en.getNewPath(),en.getLineNum(),en.getMark(),isAll);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

        private static void saveFile(File file,String filePath,int lineNum,int mark,boolean isAll) throws IOException {
        try {
            List<String> list1 = new ArrayList<String>();
            FileInputStream stream = new FileInputStream(file);
            InputStreamReader streamReader = new InputStreamReader(stream, "UTF-8");
            BufferedReader reader = new BufferedReader(streamReader);
            String line = "";
            int count = 0;
            while ((line = reader.readLine()) != null){
                //替换一下字符
                for (GenerationVlEntity ge:geList){
                    line = line.replace(ge.getOriginalValue(),ge.getNewValue());
                }

                if(isAll){
                    list1.add(line);
                }else {
                    if (count<lineNum){
                        list1.add(line);
                    }
                }
                count++;
            }
            save(list1,filePath,mark,isAll);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

    private static List<GenerationEntity> getGenerationEntityLIstanbul(String basePath, String prototype, String target, boolean flag, String param, String result) {
        List <GenerationEntity> entityList = new ArrayList<>();
        GenerationEntity ge1 = new GenerationEntity();
        String c1 = prototype+"Controller.java";
        String t1 = target+"Controller.java";
        String pr1 = basePath+c1;
        String ta1 = basePath+t1;
        ge1.setMark(1);
        ge1.setLineNum(71);
        ge1.setOriginalPath(pr1);
        ge1.setNewPath(ta1);
        entityList.add(ge1);

        String p1 = "E:/sit/mes-service-report/modules/sdk/src/main/java/com/hikvision/mes/report/sdk/api/";
        GenerationEntity ge2 = new GenerationEntity();
        String c2 = prototype+"CloudService.java";
        String t2 = target+"CloudService.java";
        String pr2 = p1+c2;
        String ta2 = p1+t2;
        ge2.setMark(2);
        ge2.setLineNum(34);
        ge2.setOriginalPath(pr2);
        ge2.setNewPath(ta2);
        entityList.add(ge2);

        if(flag){
            String c3 = prototype+"Dto.java";
            String c4 = prototype+"ResultDto.java";
            String p2 = "E:/sit/mes-service-report/modules/sdk/src/main/java/com/hikvision/mes/report/sdk/dto/";
            GenerationEntity ge3 = new GenerationEntity();
            String t3 = target+"Dto.java";
            String pr3 = p2+c3;
            String ta3 = p2+t3;
            ge3.setOriginalPath(pr3);
            ge3.setNewPath(ta3);
            ge3.setMark(3);
            ge3.setLineNum(139);
            entityList.add(ge3);
            GenerationEntity ge4 = new GenerationEntity();
            String t4 = target+"ResultDto.java";
            String pr4 = p2+c4;
            String ta4 = p2+t4;
            ge4.setOriginalPath(pr4);
            ge4.setNewPath(ta4);
            ge4.setMark(4);
            ge4.setLineNum(48);
            entityList.add(ge4);
        }else {
            String c3 = prototype+"Dto";
            String c4 = prototype+"ResultDto";
            GenerationVlEntity ge10 = new GenerationVlEntity();
            ge10.setOriginalValue(c3);
            ge10.setNewValue(param);
            geList.add(0,ge10);
            GenerationVlEntity ge11 = new GenerationVlEntity();
            ge11.setOriginalValue(c4);
            ge11.setNewValue(result);
            geList.add(1,ge11);
        }
        String p3 = "E:/sit/mes-service-report/modules/service/src/main/java/com/hikvision/mes/report/service/controller/";
        GenerationEntity ge5 = new GenerationEntity();
        String c5 = prototype+"Controller.java";
        String t5 = target+"Controller.java";
        String pr5 = p3+c5;
        String ta5 = p3+t5;
        ge5.setOriginalPath(pr5);
        ge5.setNewPath(ta5);
        ge5.setMark(5);
        ge5.setLineNum(47);
        entityList.add(ge5);
        String p4 = "E:/sit/mes-service-report/modules/service/src/main/java/com/hikvision/mes/report/service/service/";
        GenerationEntity ge6 = new GenerationEntity();
        String c6 = prototype+"Service.java";
        String t6 = target+"Service.java";
        String pr6 = p4+c6;
        String ta6 = p4+t6;
        ge6.setOriginalPath(pr6);
        ge6.setNewPath(ta6);
        ge6.setMark(6);
        ge6.setLineNum(26);
        entityList.add(ge6);
        String p5 = "E:/sit/mes-service-report/modules/service/src/main/java/com/hikvision/mes/report/service/service/impl/";
        GenerationEntity ge7 = new GenerationEntity();
        String c7 = prototype+"ServiceImpl.java";
        String t7 = target+"ServiceImpl.java";
        String pr7 = p5+c7;
        String ta7 = p5+t7;
        ge7.setOriginalPath(pr7);
        ge7.setNewPath(ta7);
        ge7.setMark(7);
        ge7.setLineNum(36);
        entityList.add(ge7);
        String p6 = "E:/sit/mes-service-report/modules/service/src/main/java/com/hikvision/mes/report/service/dao/";
        GenerationEntity ge8 = new GenerationEntity();
        String c8 = prototype+"Dao.java";
        String t8 = target+"Dao.java";
        String pr8 = p6+c8;
        String ta8 = p6+t8;
        ge8.setOriginalPath(pr8);
        ge8.setNewPath(ta8);
        ge8.setMark(8);
        ge8.setLineNum(27);
        entityList.add(ge8);
        String p7 = "E:/sit/mes-service-report/modules/service/src/main/resources/sql-mappers/";
        GenerationEntity ge9 = new GenerationEntity();
        String c9 = prototype+"Mapper.xml";
        String t9 = target+"Mapper.xml";
        String pr9 = p7+c9;
        String ta9 = p7+t9;
        ge9.setOriginalPath(pr9);
        ge9.setNewPath(ta9);
        ge9.setMark(9);
        ge9.setLineNum(6);
        entityList.add(ge9);

        return entityList;
    }

    private static void replaceFunction(String originalValue, String newValue) {
        GenerationVlEntity generationEntity = new GenerationVlEntity();
        generationEntity.setOriginalValue(originalValue);
        generationEntity.setNewValue(newValue);
        geList.add(generationEntity);
    }

    private static void insert(List<String> list1, String filePath,int mark,String name,String serverName,String param,String result,String annotation) throws FileNotFoundException {
        if(mark == 1){
            String s1 = "   /**\n" +
                    "     * "+annotation+"\n" +
                    "     */\n" +
                    "    @ResponseBody\n" +
                    "    @RequestMapping(value=\""+name+"\", method = RequestMethod.POST)\n" +
                    "    public APIResponse<"+param+"> "+name+"(@RequestBody() "+result+" req) {\n" +
                    "        return "+serverName+"CloudService."+name+"(req);\n" +
                    "    }";
            list1.add(list1.size()-2,s1);
        }
        if(mark == 2){
            String s1 = "     /**\n" +
                    "     * "+annotation+"\n" +
                    "     * @param req\n" +
                    "     * @return\n" +
                    "     */\n" +
                    "    @RequestMapping(value = \""+name+"\", method = RequestMethod.POST)\n" +
                    "    APIResponse<"+param+"> "+name+"(@RequestBody "+result+" req);";
            list1.add(list1.size()-2,s1);
        }
        if(mark == 5){
            String s1 = "     @ApiOperation(\""+annotation+"\")\n" +
                    "    @RequestMapping(value = \""+name+"\", method = RequestMethod.POST)\n" +
                    "    public APIResponse<"+param+"> "+name+"(@RequestBody "+result+" req) {\n" +
                    "        "+param+" typeList = "+serverName+"Service."+name+"(req);\n" +
                    "        return APIResponse.success(typeList);\n" +
                    "    }";
            list1.add(list1.size()-2,s1);
        }
        if(mark == 6){
            String s1 = "      /**\n" +
                    "     * "+annotation+"\n" +
                    "     * @param req\n" +
                    "     * @return\n" +
                    "     */\n" +
                    "    "+param+" "+name+"("+result+" req);";
            list1.add(list1.size()-2,s1);
        }
        if(mark == 7){
            String s1 = "         /**\n" +
                    "     * "+annotation+"\"\n" +
                    "     * @param req\n" +
                    "     * @return\n" +
                    "     */\n" +
                    "    @Override\n" +
                    "    public "+param+" "+name+"("+result+" req) {\n" +
                    "        "+param+" resultList = "+serverName+"Dao."+name+"(req);\n" +
                    "        return resultList;\n" +
                    "    }";
            list1.add(list1.size()-1,s1);
        }
        if(mark == 8){
            String s1 = "         /**\n" +
                    "     * "+annotation+"\n" +
                    "     * @param req\n" +
                    "     * @return\n" +
                    "     */\n" +
                    "    "+param+"  "+name+"(@Param(\"req\") "+result+" req);";
            list1.add(list1.size()-1,s1);
        }
        if(mark == 9){
            String s1 = "    <select id=\""+name+"\"\n" +
                    "            resultType=\"com.hikvision.mes.report.sdk.dto."+param+"\">\n" +
                    "\n" +
                    "    </select>";
            list1.add(list1.size()-2,s1);
        }
        FileOutputStream outputStream = new FileOutputStream(filePath);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
        BufferedWriter writer = new BufferedWriter(outputStreamWriter);
        for (String line : list1){
            try {
                writer.write(line+System.lineSeparator());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    private static void save(List<String> list1, String filePath,int mark,boolean isAll) throws FileNotFoundException {
        FileOutputStream outputStream = new FileOutputStream(filePath);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
        BufferedWriter writer = new BufferedWriter(outputStreamWriter);
        if(!isAll){
            if(mark == 9){
                String s1 = "\n" +
                        "    </select>\n" +
                        "\n" +
                        "</mapper>";
                list1.add(s1);
            }else {
                String s1 = "     }";
                list1.add(s1);
            }
        }
        for (String line : list1){
            try {
                writer.write(line+System.lineSeparator());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

 

 

 

 

 

系统地讲解了如何构建一个日常生产环境实用的基于Spring Boot并且集成springmvc + shiro + mybatis-plus + beetl的后台管理系统,可管理代码生成模版,管理连接生成代码的数据库. Guns框架自带的功能:1.用户管理 2.角色管理 3.部门管理 4.菜单管理 5.字典管理 6.业务日志 7.登录日志 8.监控管理 9.通知管理 10.代码生成 Guns特点: 1. 基于SpringBoot,简化了大量项目配置和maven依赖,让您更专注于业务开发,独特的分包方式,代码多而不乱。 2. 完善的日志记录体系,可记录登录日志,业务操作日志(可记录操作前和操作后的数据),异常日志到数据库,通过@BussinessLog注解和LogObjectHolder.me().set()方法,业务操作日志可具体记录哪个用户,执行了哪些业务,修改了哪些数据,并且日志记录为异步执行,详情请见@BussinessLog注解和LogObjectHolder,LogManager,LogAop类。 3. 利用beetl模板引擎对前台页面进行封装和拆分,使臃肿的html代码变得简洁,更加易维护。 4. 对常用js插件进行二次封装,使js代码变得简洁,更加易维护,具体请见webapp/static/js/common文件夹内js代码。 5. 利用ehcache框架对经常调用的查询进行缓存,提升运行速度,具体请见ConstantFactory类中@Cacheable标记的方法。 6. controller层采用map + warpper方式的返回结果,返回给前端更为灵活的数据,具体参见com.stylefeng.guns.modular.system.warpper包中具体类。 7. 防止XSS攻击,通过XssFilter类对所有的输入的非法字符串进行过滤以及替换。 8. 简单可用的代码生成体系,通过SimpleTemplateEngine可生成带有主页跳转和增删改查的通用控制器、html页面以及相关的js,还可以生成Service和Dao,并且这些生成项都为可选的,通过ContextConfig下的一些列xxxSwitch开关,可灵活控制生成模板代码,让您把时间放在真正的业务上。 9. 控制器层统一的异常拦截机制,利用@ControllerAdvice统一对异常拦截,具体见com.stylefeng.guns.core.aop.GlobalExceptionHandler类。 10. 页面统一的js key-value单例模式写法,每个页面生成一个唯一的全局变量,提高js的利用效率,并且有效防止多个人员开发引起的函数名/类名冲突,并且可以更好地去维护代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值