Browse Source

资产配置

lmstack 3 years ago
parent
commit
0c20fad581

+ 15 - 0
pom.xml

@@ -28,6 +28,21 @@
     </properties>
 
     <dependencies>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.4.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+            <version>3.4.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
+            <version>2.3.31</version>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>

+ 2 - 0
src/main/java/cn/fastfun/Application.java

@@ -1,5 +1,6 @@
 package cn.fastfun;
 
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.web.servlet.ServletComponentScan;
@@ -12,6 +13,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 @EnableCaching
 @EnableAsync
 @EnableScheduling
+@MapperScan("cn.fastfun.service.mapper")
 public class Application {
 
   public static void main(String[] args) {

+ 159 - 0
src/main/java/cn/fastfun/CodeGenerator.java

@@ -0,0 +1,159 @@
+package com.qx.didi;
+
+import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.InjectionConfig;
+import com.baomidou.mybatisplus.generator.config.*;
+import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
+import com.baomidou.mybatisplus.generator.config.rules.IColumnType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Scanner;
+
+/**
+ * @author liuzezhong
+ * @title
+ * @date 2021/7/20
+ */
+public class CodeGenerator {
+
+    /**
+     * <p>
+     * 读取控制台内容
+     * </p>
+     */
+    public static String scanner(String tip) {
+        Scanner scanner = new Scanner(System.in);
+        StringBuilder help = new StringBuilder();
+        help.append("请输入" + tip + ":");
+        System.out.println(help.toString());
+        if (scanner.hasNext()) {
+            String ipt = scanner.next();
+            if (StringUtils.isNotBlank(ipt)) {
+                return ipt;
+            }
+        }
+        throw new MybatisPlusException("请输入正确的" + tip + "!");
+    }
+
+    public static void main(String[] args) {
+        // 代码生成器
+        AutoGenerator mpg = new AutoGenerator();
+
+        // 全局配置
+        GlobalConfig gc = new GlobalConfig();
+        String projectPath = System.getProperty("user.dir");
+        gc.setOutputDir(projectPath + "/pdms_oss/pdms-oss-api/src/main/java");
+        gc.setAuthor("jek");
+        gc.setOpen(false);
+        gc.setSwagger2(true); //实体属性 Swagger2 注解
+        mpg.setGlobalConfig(gc);
+
+        // 数据源配置
+        DataSourceConfig dsc = new DataSourceConfig();
+        dsc.setUrl("jdbc:mysql://47.111.243.220:9306/pdms_oss?useUnicode=true&useSSL=false&characterEncoding=utf8");
+        // dsc.setSchemaName("public");
+        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
+        dsc.setUsername("root");
+        dsc.setPassword("Qx123456");
+        //类型转换
+        dsc.setTypeConvert(new ITypeConvert() {
+            @Override
+            public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
+                String t = fieldType.toLowerCase();
+                if(t.contains("datetime")){
+                    return DbColumnType.DATE;
+                }
+                if (t.contains("tinyint")) {
+                    return DbColumnType.INTEGER;
+                }
+                //其它字段采用默认转换(非mysql数据库可以使用其它默认的数据库转换器)
+                return new MySqlTypeConvert().processTypeConvert(globalConfig,fieldType);
+            }
+        });
+        mpg.setDataSource(dsc);
+
+        // 包配置
+        PackageConfig pc = new PackageConfig();
+        pc.setModuleName(scanner("模块名"));
+        pc.setParent("cn.fastfun");
+        mpg.setPackageInfo(pc);
+
+        // 自定义配置
+        InjectionConfig cfg = new InjectionConfig() {
+            @Override
+            public void initMap() {
+                // to do nothing
+            }
+        };
+
+        // 如果模板引擎是 freemarker
+        String templatePath = "/templates/mapper.xml.ftl";
+        // 如果模板引擎是 velocity
+        // String templatePath = "/templates/mapper.xml.vm";
+
+        // 自定义输出配置
+        List<FileOutConfig> focList = new ArrayList<>();
+        // 自定义配置会被优先输出
+        focList.add(new FileOutConfig(templatePath) {
+            @Override
+            public String outputFile(TableInfo tableInfo) {
+                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
+                return projectPath + "/pdms_oss/pdms-oss-api/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+            }
+        });
+        /*
+        cfg.setFileCreate(new IFileCreate() {
+            @Override
+            public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
+                // 判断自定义文件夹是否需要创建
+                checkDir("调用默认方法创建的目录,自定义目录用");
+                if (fileType == FileType.MAPPER) {
+                    // 已经生成 mapper 文件判断存在,不想重新生成返回 false
+                    return !new File(filePath).exists();
+                }
+                // 允许生成模板文件
+                return true;
+            }
+        });
+        */
+        cfg.setFileOutConfigList(focList);
+        mpg.setCfg(cfg);
+
+        // 配置模板
+        TemplateConfig templateConfig = new TemplateConfig();
+
+        // 配置自定义输出模板
+        //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
+        // templateConfig.setEntity("templates/entity2.java");
+        // templateConfig.setService();
+        // templateConfig.setController();
+
+        templateConfig.setXml(null);
+        mpg.setTemplate(templateConfig);
+
+        // 策略配置
+        StrategyConfig strategy = new StrategyConfig();
+        strategy.setNaming(NamingStrategy.underline_to_camel);
+        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
+        //strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");
+        strategy.setEntityLombokModel(true);
+        strategy.setRestControllerStyle(true);
+        // 公共父类
+        //strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!");
+        // 写于父类中的公共字段
+        strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
+        strategy.setControllerMappingHyphenStyle(true);
+        strategy.setTablePrefix(pc.getModuleName() + "_");
+        mpg.setStrategy(strategy);
+        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
+        mpg.execute();
+    }
+}

+ 29 - 0
src/main/java/cn/fastfun/config/MybatisPlusConfig.java

@@ -0,0 +1,29 @@
+package cn.fastfun.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import com.alibaba.druid.support.http.StatViewServlet;
+import com.alibaba.druid.support.http.WebStatFilter;
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import javax.sql.DataSource;
+
+@Configuration
+@ConditionalOnClass(value = {PaginationInterceptor.class})
+public class MybatisPlusConfig {
+    @Bean
+    public PaginationInterceptor paginationInterceptor() {
+        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
+        return paginationInterceptor;
+    }
+}

+ 101 - 0
src/main/java/cn/fastfun/controller/api/ApiAssetConfigureController.java

@@ -0,0 +1,101 @@
+package cn.fastfun.controller.api;
+
+import cn.fastfun.controller.dto.asset.BaseInfoDTO;
+import cn.fastfun.controller.dto.asset.RentInfoDTO;
+import cn.fastfun.controller.dto.asset.RentInfoFigureDTO;
+import cn.fastfun.controller.param.*;
+import cn.fastfun.service.SysExcelFieldService;
+import cn.fastfun.service.SysService;
+import cn.fastfun.service.entity.AppAssetConf;
+import cn.fastfun.service.impl.AppAssetConfServiceImpl;
+import cn.fastfun.service.impl.AppAssetProfitServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.bridge.dto.*;
+import com.bridge.exception.ApiRuntimeException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+
+/**
+ * @author Bridge AutoGen
+ */
+@Slf4j
+@Api(tags = {"2.0 资产配置界面"})
+@RestController
+@RequestMapping("/api/v1/appassetconf")
+public class ApiAssetConfigureController {
+
+    @Autowired
+    AppAssetConfServiceImpl appAssetConfService;
+
+
+    @ApiOperation(value = "增加/修改")
+    @RequestMapping(value = "save", method = RequestMethod.POST)
+    public ApiDTO save(@RequestBody @ApiParam(name = "增加/修改", value = "传入json格式", required = true) AppAssetConf appAssetConf) throws Exception {
+
+        // 新增
+        if (appAssetConf.getId() == null){
+            Date date = new Date();
+            appAssetConf.setAddTime(date);
+            appAssetConf.setUpdateTime(date);
+            appAssetConfService.save(appAssetConf);
+            return ApiDTO.ok("新增成功");
+
+        }
+        else{
+            appAssetConf.setUpdateTime(new Date());
+            appAssetConfService.updateById(appAssetConf);
+            return ApiDTO.ok("修改成功");
+        }
+    }
+
+    @ApiOperation(value = "删除")
+    @RequestMapping(value = "delete", method = RequestMethod.POST)
+    public ApiDTO delete(@RequestBody @ApiParam(name = "增加/修改", value = "传入json格式", required = true) AppAssetConf appAssetConf) throws Exception {
+
+        // 删除
+        AppAssetConf assetConf = appAssetConfService.getById(appAssetConf.getId());
+        assetConf.setUpdateTime(new Date());
+        assetConf.setIsDelete(1);
+        appAssetConfService.updateById(assetConf);
+        return ApiDTO.ok("删除成功");
+    }
+
+    @ApiOperation(value = "列表查询")
+    @RequestMapping(value = "pageQuery", method = RequestMethod.POST)
+    public ApiDTO pageQuery(@RequestBody @ApiParam(name = "增加/修改", value = "传入json格式", required = true) AssetPageQueryParam appAssetConf) throws Exception {
+
+        // 列表查询
+        Page<AppAssetConf> page = new Page<>(appAssetConf.getIndex(), appAssetConf.getLength());
+        QueryWrapper<AppAssetConf> appAssetConfQueryWrapper = new QueryWrapper<>();
+        if (StringUtils.hasLength(appAssetConf.getSn())){
+            appAssetConfQueryWrapper.like("sn", appAssetConf.getSn());
+        }
+        if (appAssetConf.getTableOrder() !=null){
+            appAssetConfQueryWrapper.eq("table_order", appAssetConf.getTableOrder());
+        }
+        if (appAssetConf.getType() != null){
+            appAssetConfQueryWrapper.eq("type", appAssetConf.getType());
+        }
+        if (appAssetConf.getTimeStart() != null){
+            appAssetConfQueryWrapper.gt("time", appAssetConf.getTimeStart());
+        }
+        if (appAssetConf.getTimeEnd() != null){
+            appAssetConfQueryWrapper.lt("time", appAssetConf.getTimeEnd());
+        }
+        Page<AppAssetConf> page1 = appAssetConfService.page(page, appAssetConfQueryWrapper);
+
+        return ApiDTO.ok("查询成功", page1);
+
+    }
+}

+ 44 - 0
src/main/java/cn/fastfun/controller/param/AssetPageQueryParam.java

@@ -0,0 +1,44 @@
+package cn.fastfun.controller.param;
+
+import com.bridge.dto.QueryParam;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Setter
+@Getter
+public class AssetPageQueryParam {
+
+
+
+    @ApiModelProperty(value = "sn", name = "sn", required = true)
+    private String sn;
+
+    @ApiModelProperty(value = "起始时间", name = "timeStart", required = true)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date timeStart;
+
+    @ApiModelProperty(value = "结束时间", name = "timeEnd", required = true)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date timeEnd;
+
+    @ApiModelProperty(value = "table页编号(1:租赁信息", name = "table_order", required = true)
+    private Integer tableOrder;
+
+    @ApiModelProperty(value = "类型 需结合tableorder判断含义", name = "type", required = true)
+    private String type;
+
+    @ApiModelProperty(value = "分页index", name = "index", required = true)
+    private Integer index;
+
+    @ApiModelProperty(value = "分页length", name = "length", required = true)
+    private Integer length;
+
+}

+ 63 - 0
src/main/java/cn/fastfun/service/entity/AppAssetConf.java

@@ -0,0 +1,63 @@
+package cn.fastfun.service.entity;
+
+import java.beans.Transient;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author jek
+ * @since 2021-11-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="AppAssetConf对象", description="")
+public class AppAssetConf implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "设备编号")
+    private String sn;
+
+    @ApiModelProperty(value = "1:租赁信息	2:运维信息	3:赔偿信息	4:营销信息	5:运营信息	6:金融成本	7:处置信息	8:其他")
+    private Integer tableOrder;
+
+    private Integer type;
+
+    @ApiModelProperty(value = "费用")
+    private BigDecimal amount;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "平台服务费发生时间")
+    private Date time;
+
+    @ApiModelProperty(value = "赔偿总支出")
+    private Date addTime;
+
+    @ApiModelProperty(value = "运输总费用")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "逻辑删除 0 未删除, 1 已删除")
+    private Integer isDelete;
+
+
+
+}

+ 5 - 0
src/main/resources/mapper/AppAssetConfMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.fastfun.service.mapper.AppAssetConfMapper">
+
+</mapper>