diff --git a/ningda-generator/pom.xml b/ningda-generator/pom.xml
new file mode 100644
index 0000000..07a6592
--- /dev/null
+++ b/ningda-generator/pom.xml
@@ -0,0 +1,34 @@
+
+
+
+ com.ningdatech
+ ningda-yw-road
+ 1.0.0
+
+ 4.0.0
+
+ ningda-generator
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+
+
+ com.baomidou
+ mybatis-plus-generator
+ ${mybatis.plus.version}
+
+
+ org.freemarker
+ freemarker
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
diff --git a/ningda-generator/src/main/java/com/ningdatech/generator/config/GeneratorCodeConfig.java b/ningda-generator/src/main/java/com/ningdatech/generator/config/GeneratorCodeConfig.java
new file mode 100644
index 0000000..258b697
--- /dev/null
+++ b/ningda-generator/src/main/java/com/ningdatech/generator/config/GeneratorCodeConfig.java
@@ -0,0 +1,65 @@
+package com.ningdatech.generator.config;
+
+import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.OutputFile;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+
+import java.util.Collections;
+
+/**
+ * @description: 自动生成code代码
+ * @author: liushuai
+ * @date: 2022/3/25 14:20
+ */
+public class GeneratorCodeConfig {
+
+ private static final String PATH_LXX = "/Users/LiuXinXin/IdeaProjects/car-manage/ningda-car-api/src/main/java";
+ private static final String PATH_YYD = "/Users/wendy/coding/java/car-manage/ningda-car-api/src/main/java";
+ private static final String PATH_LS = "/Users/qinxianyun/Documents/qin/ningdatech/secret-file-manage/ningda-api/src/main/java";
+ private static final String PATH_ZPF = "D:\\ningda\\car-manage\\ningda-car-api\\src\\main\\java";
+ //private static final String PATH_CMM = "D:\\work\\shuiniche\\car-manage\\ningda-car-api\\src\\main\\java";
+ private static final String PATH_CMM = "D:\\work\\yw-road\\nd-yw-road\\ningda-yw-api\\src\\main\\java";
+
+ private static final String URL = "jdbc:mysql://47.98.125.47:3306/nd-yw-road?serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false";
+ private static final String USER_NAME = "root";
+ private static final String PASSWORD = "Ndkj@1104";
+
+ private static void generate(String author, String packageName, String path, String... tableNames) {
+ FastAutoGenerator.create(URL, USER_NAME, PASSWORD)
+ .globalConfig(builder -> {
+ // 设置作者
+ builder.author(author)
+ // 开启 swagger 模式
+ .enableSwagger()
+ // 覆盖已生成文件
+ .fileOverride()
+ // 指定输出目录
+ .outputDir(path);
+ })
+ .packageConfig(builder -> {
+ // 设置父包名
+ builder.parent("com.ningdatech")
+ // 设置父包模块名
+ .moduleName("carapi." + packageName)
+ // 设置mapperXml生成路径
+ .pathInfo(Collections.singletonMap(OutputFile.xml,
+ //设置自己的生成路径
+ path + "/com/ningdatech/carapi/" + packageName + "/mapper"));
+ })
+ .strategyConfig(builder -> {
+ builder.addTablePrefix("nd");
+ // 设置需要生成的表名
+ builder.addInclude(tableNames);
+ })
+ // 使用Freemarker引擎模板,默认的是Velocity引擎模板
+ .templateEngine(new FreemarkerTemplateEngine())
+ .execute();
+ }
+
+ public static void main(String[] args) {
+ //generate("PoffyZhang", "car.monitor",PATH_ZPF, "nd_vehicle_security_monitor");
+ //generate("WendyYang", "irs",PATH_YYD, "nd_drivers_license");
+ generate("CMM", "test",PATH_CMM, "nd_radar_original_data");
+ }
+
+}
diff --git a/ningda-yw-api/pom.xml b/ningda-yw-api/pom.xml
new file mode 100644
index 0000000..a51600a
--- /dev/null
+++ b/ningda-yw-api/pom.xml
@@ -0,0 +1,325 @@
+
+
+ 4.0.0
+
+ com.ningdatech
+ ningda-yw-road
+ 1.0.0
+
+ ningda-yw-api
+ 1.0.0
+
+
+
+ com.alibaba
+ easyexcel
+
+
+ org.apache.poi
+ poi
+
+
+ org.apache.poi
+ poi-ooxml
+
+
+ org.apache.poi
+ poi-ooxml-schemas
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.jxls
+ jxls-jexcel
+ 1.0.6
+
+
+ com.ningdatech
+ nd-openapi-signature-starter
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+ true
+
+
+ com.ningdatech
+ nd-basic
+ 1.0.0
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+
+
+
+ com.ningdatech
+ nd-swagger2-starter
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+
+
+
+ mysql
+ mysql-connector-java
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ io.krakens
+ java-grok
+ 0.1.9
+
+
+ org.apache.httpcomponents
+ httpclient
+
+
+
+ org.springframework.session
+ spring-session-data-redis
+
+
+ com.ningdatech
+ nd-cache-starter
+ 1.0.0
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+
+
+ org.apache.poi
+ poi
+ 4.1.2
+
+
+ org.apache.poi
+ poi-ooxml
+ 4.1.2
+
+
+ org.apache.tomcat.embed
+ tomcat-embed-core
+
+
+ com.ningdatech
+ nd-log-starter
+ 1.0.0
+
+
+ com.ningdatech
+ nd-file-starter
+ 1.0.0
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-integration
+
+
+ org.springframework.integration
+ spring-integration-stream
+
+
+ org.springframework.integration
+ spring-integration-mqtt
+
+
+ junit
+ junit
+ test
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ com.aliyun
+ aliyun-java-sdk-dysmsapi
+ 1.1.0
+
+
+ nd-sms-send-starter
+ com.ningdatech
+ 1.0.0
+
+
+ javax.persistence
+ javax.persistence-api
+ 2.2
+
+
+
+
+ fr.opensagres.xdocreport
+ fr.opensagres.xdocreport.core
+ 2.0.2
+
+
+ fr.opensagres.xdocreport
+ fr.opensagres.xdocreport.document
+ 2.0.2
+
+
+ fr.opensagres.xdocreport
+ fr.opensagres.xdocreport.template
+ 2.0.2
+
+
+ fr.opensagres.xdocreport
+ fr.opensagres.xdocreport.document.docx
+ 2.0.2
+
+
+ fr.opensagres.xdocreport
+ fr.opensagres.xdocreport.template.freemarker
+ 2.0.2
+
+
+ org.springframework
+ spring-test
+
+
+
+ cn.afterturn
+ easypoi-base
+
+
+
+
+
+ redis.clients
+ jedis
+ 3.7.0
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.12.3
+
+
+
+
+
+
+
+
+
+ dev
+
+
+ dev
+
+
+
+ test
+
+ test
+
+
+
+ pre
+
+ pre
+
+
+
+ prod
+
+ prod
+
+
+
+
+
+
+
+ src/main/resources
+
+ **/*
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ src/main/lib
+ BOOT-INF/lib/
+
+ **/*.jar
+
+
+
+
+ src/main/resources
+ BOOT-INF/classes/
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.1.12.RELEASE
+
+ true
+
+
+
+
+ repackage
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ true
+
+
+
+
+
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/App.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/App.java
new file mode 100644
index 0000000..69dba50
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/App.java
@@ -0,0 +1,32 @@
+package com.ningdatech.carapi;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.context.annotation.Import;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import com.ningdatech.basic.config.DefaultAsyncTaskConfig;
+
+/**
+ * @author liuxinxin
+ */
+@EnableAsync
+@SpringBootApplication
+@MapperScan(App.MAPPER_PACKAGES)
+@EnableScheduling
+@Import(DefaultAsyncTaskConfig.class)
+@EnableTransactionManagement
+@EnableAspectJAutoProxy(exposeProxy = true)
+public class App {
+
+ protected static final String MAPPER_PACKAGES = "com.ningdatech.carapi.**.mapper";
+
+ public static void main(String[] args) {
+ System.setProperty("druid.mysql.usePingMethod", "false");
+ SpringApplication.run(App.class, args);
+ }
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/common/DangerLevelEnum.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/common/DangerLevelEnum.java
new file mode 100644
index 0000000..536af96
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/common/DangerLevelEnum.java
@@ -0,0 +1,72 @@
+package com.ningdatech.carapi.analysis.common;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Objects;
+
+/**
+ * @return
+ * @author CMM
+ * @since 2022/12/20 14:10
+ */
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value = "VehicleDangerLevelEnum", description = "车辆风险等级-枚举")
+public enum DangerLevelEnum {
+ /**
+ * 风险等级
+ */
+ LOW_RISK(1, "红色预警"),
+
+ INTERMEDIATE_RISK(2, "橙色预警"),
+
+ SECONDARY_RISK(3,"黄色预警"),
+
+ SENIOR_RISK(4,"蓝色预警");
+
+
+
+ private Integer code;
+ private String desc;
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+
+ public static String getDescByCode(Integer code) {
+ if(Objects.isNull(code)){
+ return StringUtils.EMPTY;
+ }
+ for (DangerLevelEnum t : DangerLevelEnum.values()) {
+ if (code.equals(t.getCode())) {
+ return t.desc;
+ }
+ }
+ return StringUtils.EMPTY;
+ }
+
+ public static Integer getCodeByDesc(String desc) {
+ if(StringUtils.isBlank(desc)){
+ return null;
+ }
+ for (DangerLevelEnum t : DangerLevelEnum.values()) {
+ if (desc.equals(t.getDesc())) {
+ return t.code;
+ }
+ }
+ return null;
+ }
+
+ public boolean eq(String val) {
+ return this.name().equals(val);
+ }
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/AnalysisEvalDataViewController.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/AnalysisEvalDataViewController.java
new file mode 100644
index 0000000..4c9c3ee
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/AnalysisEvalDataViewController.java
@@ -0,0 +1,77 @@
+package com.ningdatech.carapi.analysis.controller;
+
+import com.ningdatech.carapi.analysis.entity.enumeration.DangerLevel;
+import com.ningdatech.carapi.analysis.entity.vo.CompanyWarnStatisticsVo;
+import com.ningdatech.carapi.analysis.manage.AnalysisEvalDataViewManage;
+import com.ningdatech.carapi.common.model.DataChartVo;
+import com.ningdatech.carapi.common.model.MapDataVO;
+import com.ningdatech.carapi.common.util.CodeUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *
+ * AnalysisEvalDataViewController
+ *
+ *
+ * @author WendyYang
+ * @since 15:24 2022/10/25
+ */
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "分析评估-数据大屏")
+@RequestMapping("/api/v1/analysis-eval/data-view")
+public class AnalysisEvalDataViewController {
+
+ private final AnalysisEvalDataViewManage analysisEvalDataViewManage;
+
+ @GetMapping("/insuranceOrgStatistics/{regionId}")
+ @ApiOperation("保险机构车辆占比")
+ public List insuranceOrgStatistics(@PathVariable Long regionId) {
+ regionId = CodeUtil.convertRegionCodeToId(regionId);
+ return analysisEvalDataViewManage.insuranceOrgStatistics(regionId);
+ }
+
+ @GetMapping("/companyWarnStatistics/{regionId}")
+ @ApiOperation("企业综合预警分析")
+ public List companyWarnStatistics(@PathVariable Long regionId) {
+ regionId = CodeUtil.convertRegionCodeToId(regionId);
+ return analysisEvalDataViewManage.companyWarnStatistics(regionId);
+ }
+
+ @GetMapping("/companyWarnStatisticsByLevel")
+ @ApiOperation("企业红色预警")
+ public List companyWarnStatisticsByLevel(@RequestParam("regionId") Long regionId,
+ @RequestParam(value = "dangerLevel", required = false) Integer dangerLevel) {
+ regionId = CodeUtil.convertRegionCodeToId(regionId);
+ // 默认查询最低等级预警即蓝色预警
+ //if (dangerLevel == null) {
+ // dangerLevel = DangerLevel.BLUE.getCode();
+ //}
+ return analysisEvalDataViewManage.companyWarnStatisticsByLevel(regionId, dangerLevel);
+ }
+
+ @GetMapping("/carWarnStatistics/{regionId}")
+ @ApiOperation("车辆综合预警分析")
+ public List carWarnStatistics(@PathVariable Long regionId) {
+ regionId = CodeUtil.convertRegionCodeToId(regionId);
+ return analysisEvalDataViewManage.carWarnStatistics(regionId);
+ }
+
+ @GetMapping("/carWarnStatisticsByLevel")
+ @ApiOperation("车辆红色预警")
+ public List carWarnStatisticsByLevel(@RequestParam("regionId") Long regionId,
+ @RequestParam(value = "dangerLevel", required = false) Integer dangerLevel) {
+ regionId = CodeUtil.convertRegionCodeToId(regionId);
+ // 默认查询红色预警
+ //if (dangerLevel == null) {
+ // dangerLevel = DangerLevel.RED.getCode();
+ //}
+ return analysisEvalDataViewManage.carWarnStatisticsByLevel(regionId, dangerLevel);
+ }
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/IndustryStandardsController.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/IndustryStandardsController.java
new file mode 100644
index 0000000..f0bf5fd
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/IndustryStandardsController.java
@@ -0,0 +1,61 @@
+package com.ningdatech.carapi.analysis.controller;
+
+
+import com.ningdatech.basic.model.PageVo;
+import com.ningdatech.carapi.analysis.entity.req.IndustryStandardsListReq;
+import com.ningdatech.carapi.analysis.entity.req.IndustryStandardsSaveReq;
+import com.ningdatech.carapi.analysis.entity.vo.IndustryStandardsListVo;
+import com.ningdatech.carapi.analysis.manage.IndustryStandardsManage;
+import com.ningdatech.carapi.user.security.auth.model.UserInfoDetails;
+import com.ningdatech.carapi.user.util.LoginUserUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 前端控制器
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Api(tags = "分析评估-行业规范")
+@Validated
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/api/v1/analysis-eval/industry-standards")
+public class IndustryStandardsController {
+
+ private final IndustryStandardsManage industryStandardsManage;
+
+ @GetMapping("/list")
+ @ApiOperation("行业规范列表")
+ public PageVo industryStandardsList(@Valid IndustryStandardsListReq req) {
+ return industryStandardsManage.list(req);
+ }
+
+ @PostMapping("/save")
+ @ApiOperation("新增行业规范")
+ public void save(@Valid @RequestBody IndustryStandardsSaveReq req) {
+ industryStandardsManage.save(req);
+ }
+
+ @ApiOperation("增加下载次数")
+ @GetMapping("/incrementDownCount/{id}")
+ public void incrementDownCount(@PathVariable Long id) {
+ industryStandardsManage.incrementDownCount(id);
+ }
+
+ @ApiOperation("删除行业标准文件")
+ @DeleteMapping("/delete-standards")
+ public void deleteStandardFile(@RequestParam Long id) {
+ UserInfoDetails userInfoDetails = LoginUserUtil.loginUserDetail();
+ Long roleId = userInfoDetails.getRoleId();
+ industryStandardsManage.deleteStandardFile(id,roleId);
+ }
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/InsuranceRiskEvalController.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/InsuranceRiskEvalController.java
new file mode 100644
index 0000000..6ec224c
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/InsuranceRiskEvalController.java
@@ -0,0 +1,114 @@
+package com.ningdatech.carapi.analysis.controller;
+
+
+import com.ningdatech.basic.model.PageVo;
+import com.ningdatech.carapi.analysis.entity.req.VehicleAccidentEvalModReq;
+import com.ningdatech.carapi.analysis.entity.req.VehicleOverSpeedEvalModReq;
+import com.ningdatech.carapi.analysis.entity.req.VehicleServiceLifeListReq;
+import com.ningdatech.carapi.analysis.entity.req.VehicleViolationEvalModReq;
+import com.ningdatech.carapi.analysis.entity.vo.VehicleAccidentEvalListVo;
+import com.ningdatech.carapi.analysis.entity.vo.VehicleOverSpeedEvalListVo;
+import com.ningdatech.carapi.analysis.entity.vo.VehicleServiceLifeListVo;
+import com.ningdatech.carapi.analysis.entity.vo.VehicleViolationEvalListVo;
+import com.ningdatech.carapi.analysis.manage.InsuranceRiskEvalManage;
+import com.ningdatech.carapi.sys.entity.enumeration.ImportTemplateEnum;
+import com.ningdatech.log.annotation.WebLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 分析评估-保险风险评估 前端控制器
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Validated
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "分析评估-保险风险评估")
+@RequestMapping("/api/v1/insurance-risk-eval")
+public class InsuranceRiskEvalController {
+
+ private final InsuranceRiskEvalManage insuranceRiskEvalManage;
+
+ @ApiOperation("车辆使用年限列表")
+ @GetMapping("/vehicleServiceLifeList")
+ public PageVo vehicleServiceLifeList(@Valid VehicleServiceLifeListReq req) {
+ return insuranceRiskEvalManage.vehicleServiceLifeList(req);
+ }
+
+ @ApiOperation("车辆违章情况列表")
+ @GetMapping("/vehicleViolationList")
+ public PageVo vehicleViolationList(@Valid VehicleServiceLifeListReq req) {
+ return insuranceRiskEvalManage.vehicleViolationEvalList(req);
+ }
+
+ @ApiOperation("车辆出险情况列表")
+ @GetMapping("/vehicleAccidentList")
+ public PageVo vehicleAccidentList(@Valid VehicleServiceLifeListReq req) {
+ return insuranceRiskEvalManage.vehicleAccidentList(req);
+ }
+
+ @ApiOperation("车辆超速情况列表")
+ @GetMapping("/vehicleOverSPeedList")
+ public PageVo vehicleOverSpeedList(@Valid VehicleServiceLifeListReq req) {
+ return insuranceRiskEvalManage.vehicleOverSpeedList(req);
+ }
+
+ @ApiOperation("车辆违章情况修改")
+ @PutMapping("/modVehicleViolation")
+ @WebLog(value = "车辆违章情况修改", modular = "分析评估-保险风险评估")
+ public void modVehicleViolation(@Valid @RequestBody VehicleViolationEvalModReq req) {
+ insuranceRiskEvalManage.vehicleViolationEvalMod(req);
+ }
+
+ @ApiOperation("车辆出险情况修改")
+ @PutMapping("/modVehicleAccident")
+ @WebLog(value = "车辆出险情况修改", modular = "分析评估-保险风险评估")
+ public void modVehicleAccident(@Valid @RequestBody VehicleAccidentEvalModReq req) {
+ insuranceRiskEvalManage.vehicleAccidentEvalMod(req);
+ }
+
+ @ApiOperation("车辆超速情况修改")
+ @PutMapping("/modVehicleOverSpeed")
+ @WebLog(value = "车辆超速情况修改", modular = "分析评估-保险风险评估")
+ public void modVehicleOverSpeed(@Valid @RequestBody VehicleOverSpeedEvalModReq req) {
+ insuranceRiskEvalManage.vehicleOverSpeedEvalMod(req);
+ }
+
+ @ApiOperation("车辆违章情况删除")
+ @DeleteMapping("/delVehicleViolation/{id}")
+ @WebLog(value = "车辆违章情况删除", modular = "分析评估-保险风险评估")
+ public void delVehicleViolation(@PathVariable Integer id) {
+ insuranceRiskEvalManage.vehicleViolationEvalDel(id);
+ }
+
+ @ApiOperation("车辆超速情况删除")
+ @DeleteMapping("/delVehicleOverSpeed/{id}")
+ @WebLog(value = "车辆超速情况删除", modular = "分析评估-保险风险评估")
+ public void delVehicleOverSpeed(@PathVariable Integer id) {
+ insuranceRiskEvalManage.vehicleOverSpeedEvalDel(id);
+ }
+
+ @ApiOperation("车辆出险情况删除")
+ @DeleteMapping("/delVehicleAccident/{id}")
+ @WebLog(value = "车辆出险情况删除", modular = "分析评估-保险风险评估")
+ public void delVehicleAccident(@PathVariable Integer id) {
+ insuranceRiskEvalManage.vehicleAccidentEvalDel(id);
+ }
+
+ @ApiOperation("模版数据导入")
+ @PostMapping("/importTemplateData")
+ @WebLog(value = "模版数据导入", modular = "分析评估-保险风险评估")
+ public void importTemplateData(@RequestParam("template") ImportTemplateEnum template, MultipartFile file) {
+ insuranceRiskEvalManage.importTemplateData(template, file);
+ }
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/SecurityAnalysisEvalController.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/SecurityAnalysisEvalController.java
new file mode 100644
index 0000000..5c78771
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/SecurityAnalysisEvalController.java
@@ -0,0 +1,73 @@
+package com.ningdatech.carapi.analysis.controller;
+
+
+import com.ningdatech.basic.model.IdVo;
+import com.ningdatech.basic.model.PageVo;
+import com.ningdatech.carapi.analysis.entity.req.SecurityManageGradeListReq;
+import com.ningdatech.carapi.analysis.entity.req.SecurityRiskEvalListReq;
+import com.ningdatech.carapi.analysis.entity.req.SecurityRiskEvalSaveReq;
+import com.ningdatech.carapi.analysis.entity.req.SecuritySystemBuildingEvalSaveReq;
+import com.ningdatech.carapi.analysis.entity.vo.SecurityManageGradeVo;
+import com.ningdatech.carapi.analysis.entity.vo.SecurityManageResultEvalListVo;
+import com.ningdatech.carapi.analysis.entity.vo.SecurityRiskEvalListVo;
+import com.ningdatech.carapi.analysis.entity.vo.SecuritySystemBuildingEvalListVo;
+import com.ningdatech.carapi.analysis.manage.SecurityAnalysisEvalManage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 安全管理综合评级 前端控制器
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-13
+ */
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "分析评估-安全分析评估")
+@RequestMapping("/api/v1/security/analysis-eval")
+public class SecurityAnalysisEvalController {
+
+ private final SecurityAnalysisEvalManage securityAnalysisEvalManage;
+
+ @GetMapping("/smg/list")
+ @ApiOperation("安全管理综合评级列表")
+ public PageVo listSecurityManageGrade(SecurityManageGradeListReq req) {
+ return securityAnalysisEvalManage.list(req);
+ }
+
+ @GetMapping("/sre/list")
+ @ApiOperation("安全责任体系分析评估列表")
+ public PageVo listSecurityRiskEval(SecurityRiskEvalListReq req) {
+ return securityAnalysisEvalManage.list(req);
+ }
+
+ @PostMapping("/sre/save")
+ @ApiOperation("新增安全责任体系分析评估")
+ public IdVo save(@Valid @RequestBody SecurityRiskEvalSaveReq req) {
+ return securityAnalysisEvalManage.save(req);
+ }
+
+ @GetMapping("/ibe/list")
+ @ApiOperation("安全制度建设分析评估列表")
+ public PageVo listInstitutionBuildingEval(SecurityRiskEvalListReq req) {
+ return securityAnalysisEvalManage.listSystemBuildingEval(req);
+ }
+
+ @PostMapping("/ibe/save")
+ @ApiOperation("保存安全制度建设分析评估")
+ public IdVo save(@Valid @RequestBody SecuritySystemBuildingEvalSaveReq req) {
+ return securityAnalysisEvalManage.save(req);
+ }
+
+ @GetMapping("/smre/list")
+ @ApiOperation("安全管理结果分析评估列表")
+ public PageVo listSecurityManageResultEval(SecurityRiskEvalListReq req) {
+ return securityAnalysisEvalManage.listSecurityManageResultEval(req);
+ }
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/WarnAnalysisController.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/WarnAnalysisController.java
new file mode 100644
index 0000000..1f52704
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/controller/WarnAnalysisController.java
@@ -0,0 +1,50 @@
+package com.ningdatech.carapi.analysis.controller;
+
+
+import com.ningdatech.basic.model.PageVo;
+import com.ningdatech.carapi.analysis.entity.req.WarnAnalysisListReq;
+import com.ningdatech.carapi.analysis.entity.vo.WarnAnalysisByCarVo;
+import com.ningdatech.carapi.analysis.entity.vo.WarnAnalysisByCompanyVo;
+import com.ningdatech.carapi.analysis.entity.vo.WarnAnalysisByDriverVo;
+import com.ningdatech.carapi.analysis.manage.WarnAnalysisManage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 综合预警分析 前端控制器
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-14
+ */
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "分析评估-预警分析")
+@RequestMapping("/api/v1/warn-analysis")
+public class WarnAnalysisController {
+
+ private final WarnAnalysisManage warnAnalysisManage;
+
+ @ApiOperation("车辆综合预警分析列表")
+ @GetMapping("/listCarWarnAnalysis")
+ public PageVo listWarnAnalysisCar(WarnAnalysisListReq req) {
+ return warnAnalysisManage.listCarWarnAnalysis(req);
+ }
+
+ @ApiOperation("企业综合预警分析列表")
+ @GetMapping("/listCompanyWarnAnalysis")
+ public PageVo listWarnAnalysisCompany(WarnAnalysisListReq req) {
+ return warnAnalysisManage.listCompanyWarnAnalysis(req);
+ }
+
+ @ApiOperation("驾驶员综合预警分析列表")
+ @GetMapping("/listDriverWarnAnalysis")
+ public PageVo listDriverWarnAnalysis(WarnAnalysisListReq req) {
+ return warnAnalysisManage.listDriverWarnAnalysis(req);
+ }
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/IndustryStandards.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/IndustryStandards.java
new file mode 100644
index 0000000..9c05069
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/IndustryStandards.java
@@ -0,0 +1,54 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 行业标准
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@TableName("nd_industry_standards")
+@ApiModel(value = "IndustryStandards对象", description = "")
+public class IndustryStandards implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("创建人")
+ private Long createBy;
+
+ private String name;
+
+ @ApiModelProperty("标准类型")
+ private Integer type;
+
+ @ApiModelProperty("文件ID")
+ private Long fileId;
+
+ @ApiModelProperty("下载次数")
+ private Integer downCount;
+
+ @ApiModelProperty("区域ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业ID")
+ private Long companyId;
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecurityManageGrade.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecurityManageGrade.java
new file mode 100644
index 0000000..48f9eb1
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecurityManageGrade.java
@@ -0,0 +1,62 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 安全管理综合评级
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-13
+ */
+@Data
+@TableName("nd_security_manage_grade")
+@ApiModel(value = "SecurityManageGrade对象", description = "安全管理综合评级")
+public class SecurityManageGrade implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("年度")
+ private Integer year;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("安全评级")
+ private String securityLevel;
+
+ @ApiModelProperty("综合得分")
+ private Integer score;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecurityManageResultEval.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecurityManageResultEval.java
new file mode 100644
index 0000000..79e745c
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecurityManageResultEval.java
@@ -0,0 +1,77 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 安全制度建设分析评估
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-14
+ */
+@Data
+@TableName("nd_security_manage_result_eval")
+@ApiModel(value = "SecurityManageResultEval对象", description = "安全制度建设分析评估")
+public class SecurityManageResultEval implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("年度")
+ private Integer year;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("综合得分")
+ private Integer totalScore;
+
+ @ApiModelProperty("出现次数")
+ private Integer dangerCount;
+
+ @ApiModelProperty("出险扣分")
+ private Integer dangerScore;
+
+ @ApiModelProperty("死亡人数")
+ private Integer deadCount;
+
+ @ApiModelProperty("死亡人数扣分")
+ private Integer deadScore;
+
+ @ApiModelProperty("受伤人数")
+ private Integer injuredCount;
+
+ @ApiModelProperty("受伤人数扣分")
+ private Integer injuredScore;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecurityRiskEval.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecurityRiskEval.java
new file mode 100644
index 0000000..167f8db
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecurityRiskEval.java
@@ -0,0 +1,80 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 安全责任体系分析评估
+ *
+ *
+ * @author LiuXinXin
+ * @since 2022-10-14
+ */
+@Data
+@TableName("nd_security_risk_eval")
+@ApiModel(value = "SecurityRiskEval对象", description = "安全责任体系分析评估")
+public class SecurityRiskEval implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("年度")
+ private Integer year;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("综合得分")
+ private Integer totalScore;
+
+ @ApiModelProperty("安全承诺得分")
+ private Integer promiseScore;
+
+ @ApiModelProperty("安全责任得分")
+ private Integer riskScore;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+ @ApiModelProperty("检查地址")
+ private String checkAddress;
+
+ @ApiModelProperty("检查人")
+ private String checkUser;
+
+ @ApiModelProperty("检查部门")
+ private String checkDept;
+
+ @ApiModelProperty("检查内容")
+ private String checkContent;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecuritySystemBuildingEval.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecuritySystemBuildingEval.java
new file mode 100644
index 0000000..1fd79dd
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/SecuritySystemBuildingEval.java
@@ -0,0 +1,74 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 安全制度建设分析评估
+ *
+ *
+ * @author LiuXinXin
+ * @since 2022-10-14
+ */
+@Data
+@TableName("nd_security_system_building_eval")
+@ApiModel(value = "SecuritySystemBuildingEval对象", description = "安全制度建设分析评估")
+public class SecuritySystemBuildingEval implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("年度")
+ private Integer year;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("综合得分")
+ private Integer totalScore;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+ @ApiModelProperty("检查地址")
+ private String checkAddress;
+
+ @ApiModelProperty("检查人")
+ private String checkUser;
+
+ @ApiModelProperty("检查部门")
+ private String checkDept;
+
+ @ApiModelProperty("检查内容")
+ private String checkContent;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleAccidentEval.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleAccidentEval.java
new file mode 100644
index 0000000..841eae9
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleAccidentEval.java
@@ -0,0 +1,77 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 车辆事故情况评估
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-17
+ */
+@Data
+@TableName("nd_vehicle_accident_eval")
+@ApiModel(value = "VehicleAccidentEval对象", description = "车辆事故情况评估")
+public class VehicleAccidentEval implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+ @ApiModelProperty("车辆ID")
+ private Long carId;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("车辆风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车架号")
+ private String carFrameNo;
+
+ @ApiModelProperty("行驶里程")
+ private Integer mileage;
+
+ @ApiModelProperty("累计事故次数")
+ private Integer accidentCount;
+
+ @ApiModelProperty("万公里事故次数")
+ private Integer avgAccidentCount;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleOverSpeedEval.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleOverSpeedEval.java
new file mode 100644
index 0000000..e52dfd6
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleOverSpeedEval.java
@@ -0,0 +1,77 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 车辆超速情况评估
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-17
+ */
+@Data
+@TableName("nd_vehicle_over_speed_eval")
+@ApiModel(value = "VehicleOverSpeedEval对象", description = "车辆超速情况评估")
+public class VehicleOverSpeedEval implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+ @ApiModelProperty("车辆ID")
+ private Long carId;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("车辆风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车架号")
+ private String carFrameNo;
+
+ @ApiModelProperty("行驶里程")
+ private Integer mileage;
+
+ @ApiModelProperty("累计超速次数")
+ private Integer overSpeedCount;
+
+ @ApiModelProperty("万公里超速次数")
+ private Integer avgOverSpeedCount;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleServiceLife.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleServiceLife.java
new file mode 100644
index 0000000..d8954c2
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleServiceLife.java
@@ -0,0 +1,69 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 车辆使用年限
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@TableName("nd_vehicle_service_life")
+@ApiModel(value = "VehicleServiceLife对象", description = "车辆使用年限")
+public class VehicleServiceLife implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+ @ApiModelProperty("车辆风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车辆ID")
+ private Long carId;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("车架号")
+ private String carFrameNo;
+
+ @ApiModelProperty("购置时间")
+ private LocalDate buyTime;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleViolationEval.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleViolationEval.java
new file mode 100644
index 0000000..e993b1d
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/VehicleViolationEval.java
@@ -0,0 +1,77 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 车辆违章情况评估
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@TableName("nd_vehicle_violation_eval")
+@ApiModel(value = "VehicleViolationEval对象", description = "车辆违章情况评估")
+public class VehicleViolationEval implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+ @ApiModelProperty("车辆ID")
+ private Long carId;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("车辆风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车架号")
+ private String carFrameNo;
+
+ @ApiModelProperty("行驶里程")
+ private Integer mileage;
+
+ @ApiModelProperty("累计违章次数")
+ private Integer violationCount;
+
+ @ApiModelProperty("万公里违章次数")
+ private Integer avgViolationCount;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/WarnAnalysisCar.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/WarnAnalysisCar.java
new file mode 100644
index 0000000..27e5013
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/WarnAnalysisCar.java
@@ -0,0 +1,80 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 车辆综合预警分析
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-14
+ */
+@Data
+@TableName("nd_warn_analysis_car")
+@ApiModel(value = "WarnAnalysisCar对象", description = "车辆综合预警分析")
+public class WarnAnalysisCar implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+ @ApiModelProperty("受伤人数")
+ private Integer injuredCount;
+
+ @ApiModelProperty("死亡人数")
+ private Integer deadCount;
+
+ @ApiModelProperty("出现次数")
+ private Integer dangerCount;
+
+ @ApiModelProperty("车辆风险分值")
+ private Integer dangerScore;
+
+ @ApiModelProperty("车辆ID")
+ private Long carId;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("超速次数")
+ private Integer overSpeedCount;
+
+ @ApiModelProperty("违章次数")
+ private Integer violationCount;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/WarnAnalysisCompany.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/WarnAnalysisCompany.java
new file mode 100644
index 0000000..8a2de0f
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/WarnAnalysisCompany.java
@@ -0,0 +1,71 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 企业综合预警分析
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-14
+ */
+@Data
+@TableName("nd_warn_analysis_company")
+@ApiModel(value = "WarnAnalysisCompany对象", description = "企业综合预警分析")
+public class WarnAnalysisCompany implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("综合得分")
+ private Integer totalScore;
+
+ @ApiModelProperty("违章次数")
+ private Integer violationCount;
+
+ @ApiModelProperty("出现次数")
+ private Integer dangerCount;
+
+ @ApiModelProperty("受伤人数")
+ private Integer injuredCount;
+
+ @ApiModelProperty("死亡人数")
+ private Integer deadCount;
+
+ @ApiModelProperty("风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/WarnAnalysisDriver.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/WarnAnalysisDriver.java
new file mode 100644
index 0000000..615b913
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/WarnAnalysisDriver.java
@@ -0,0 +1,79 @@
+package com.ningdatech.carapi.analysis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * 驾驶员综合预警分析
+ *
+ *
+ * @author WendyYang
+ * @since 2022-11-01
+ */
+@Data
+@TableName("nd_warn_analysis_driver")
+@ApiModel(value = "WarnAnalysisDriver对象", description = "驾驶员综合预警分析")
+public class WarnAnalysisDriver implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+ @ApiModelProperty("受伤人数")
+ private Integer injuredCount;
+
+ @ApiModelProperty("死亡人数")
+ private Integer deadCount;
+
+ @ApiModelProperty("出险次数")
+ private Integer dangerCount;
+
+ @ApiModelProperty("驾驶员风险分值")
+ private Integer dangerScore;
+
+ @ApiModelProperty("司机ID")
+ private Long driverId;
+
+ @ApiModelProperty("驾驶员姓名")
+ private String driverName;
+
+ @ApiModelProperty("风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("超速次数")
+ private Integer overSpeedCount;
+
+ @ApiModelProperty("违章次数")
+ private Integer violationCount;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/CompanyWarnStatisticsDto.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/CompanyWarnStatisticsDto.java
new file mode 100644
index 0000000..dd737cd
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/CompanyWarnStatisticsDto.java
@@ -0,0 +1,22 @@
+package com.ningdatech.carapi.analysis.entity.dto;
+
+import lombok.Data;
+
+/**
+ *
+ * CompanyWarnStatisticsDto
+ *
+ *
+ * @author WendyYang
+ * @since 16:18 2022/10/25
+ */
+@Data
+public class CompanyWarnStatisticsDto {
+
+ private Integer count;
+
+ private Long regionId;
+
+ private Integer dangerLevel;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/OutDangerImportDto.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/OutDangerImportDto.java
new file mode 100644
index 0000000..2c2d9f4
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/OutDangerImportDto.java
@@ -0,0 +1,64 @@
+package com.ningdatech.carapi.analysis.entity.dto;
+
+import java.math.BigDecimal;
+
+import lombok.Data;
+
+/**
+ * @author CMM
+ * @description
+ * @since 2022/11/16 17:01
+ */
+@Data
+public class OutDangerImportDto {
+ /**
+ * 序号
+ */
+ private Integer id;
+
+ /**
+ * 所属区域
+ */
+ private String regionName;
+
+ /**
+ * 车牌号
+ */
+ private String carNo;
+
+ /**
+ * 保险公司
+ */
+ private String insureCompany;
+
+ /**
+ * 企业名称
+ */
+ private String companyName;
+
+
+ /**
+ * 事故地点
+ */
+ private String accidentAddress;
+
+ /**
+ * 事故时间
+ */
+ private String accidentTime;
+
+ /**
+ * 受伤人数
+ */
+ private Integer injuries;
+
+ /**
+ * 死亡人数
+ */
+ private Integer deathToll;
+
+ /**
+ * 理赔金额
+ */
+ private BigDecimal compensateAmount;
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/VehicleAccidentImportDto.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/VehicleAccidentImportDto.java
new file mode 100644
index 0000000..d82f2a5
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/VehicleAccidentImportDto.java
@@ -0,0 +1,70 @@
+package com.ningdatech.carapi.analysis.entity.dto;
+
+import lombok.Data;
+
+/**
+ *
+ * VehicleAccidentImportDto
+ *
+ *
+ * @author WendyYang
+ * @since 11:17 2022/10/17
+ */
+@Data
+public class VehicleAccidentImportDto {
+
+ /**
+ * 序号
+ */
+ private Integer id;
+
+ /**
+ * 城市
+ */
+ private String city;
+
+ /**
+ * 区(县)
+ */
+ private String zone;
+
+ /**
+ * 企业名称
+ */
+ private String companyName;
+
+ /**
+ * 车牌号
+ */
+ private String carNo;
+
+ /**
+ * 车架号
+ */
+ private String chassisNumber;
+
+ /**
+ * 行驶里程
+ */
+ private Integer mileage;
+
+ /**
+ * 累计出险次数
+ */
+ private Integer accidentCount;
+
+ /**
+ * 万公里出险次数
+ */
+ private Integer avgAccidentCount;
+
+ /**
+ * 风险评估
+ */
+ private String riskEvaluation;
+
+ /**
+ * 备注
+ */
+ private String remark;
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/VehicleOverSpeedImportDto.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/VehicleOverSpeedImportDto.java
new file mode 100644
index 0000000..752b234
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/VehicleOverSpeedImportDto.java
@@ -0,0 +1,70 @@
+package com.ningdatech.carapi.analysis.entity.dto;
+
+import lombok.Data;
+
+/**
+ *
+ * VehicleOverSpeedDto
+ *
+ *
+ * @author WendyYang
+ * @since 11:17 2022/10/17
+ */
+@Data
+public class VehicleOverSpeedImportDto {
+
+ /**
+ * 序号
+ */
+ private Integer id;
+
+ /**
+ * 城市
+ */
+ private String city;
+
+ /**
+ * 区(县)
+ */
+ private String zone;
+
+ /**
+ * 企业名称
+ */
+ private String companyName;
+
+ /**
+ * 车牌号
+ */
+ private String carNo;
+
+ /**
+ * 车架号
+ */
+ private String chassisNumber;
+
+ /**
+ * 行驶里程
+ */
+ private Integer mileage;
+
+ /**
+ * 累计出险次数
+ */
+ private Integer overSpeedCount;
+
+ /**
+ * 万公里出险次数
+ */
+ private Integer avgOverSpeedCount;
+
+ /**
+ * 风险评估
+ */
+ private String riskEvaluation;
+
+ /**
+ * 备注
+ */
+ private String remark;
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/VehicleViolationImportDto.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/VehicleViolationImportDto.java
new file mode 100644
index 0000000..4e2e328
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/dto/VehicleViolationImportDto.java
@@ -0,0 +1,71 @@
+package com.ningdatech.carapi.analysis.entity.dto;
+
+import lombok.Data;
+
+/**
+ *
+ * VehicleViolationImportDto
+ *
+ *
+ * @author WendyYang
+ * @since 11:17 2022/10/17
+ */
+@Data
+public class VehicleViolationImportDto {
+
+ /**
+ * 序号
+ */
+ private Integer id;
+
+ /**
+ * 城市
+ */
+ private String city;
+
+ /**
+ * 区(县)
+ */
+ private String zone;
+
+ /**
+ * 企业名称
+ */
+ private String companyName;
+
+ /**
+ * 车牌号
+ */
+ private String carNo;
+
+ /**
+ * 车架号
+ */
+ private String chassisNumber;
+
+ /**
+ * 行驶里程
+ */
+ private Integer mileage;
+
+ /**
+ * 累计违章次数
+ */
+ private Integer violationCount;
+
+ /**
+ * 万公里违章次数
+ */
+ private Integer avgViolationCount;
+
+ /**
+ * 风险评估
+ */
+ private String riskEvaluation;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/enumeration/DangerLevel.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/enumeration/DangerLevel.java
new file mode 100644
index 0000000..359f255
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/enumeration/DangerLevel.java
@@ -0,0 +1,40 @@
+package com.ningdatech.carapi.analysis.entity.enumeration;
+
+import lombok.Getter;
+
+import java.util.Arrays;
+
+/**
+ *
+ * DangerLevel
+ *
+ *
+ * @author WendyYang
+ * @since 17:18 2022/10/25
+ */
+@Getter
+public enum DangerLevel {
+ /**
+ * 预警
+ */
+ RED(1, "红色预警"),
+ ORANGE(2, "橙色预警"),
+ YELLOW(3, "黄色预警"),
+ BLUE(4, "蓝色预警");
+
+ private final Integer code;
+ private final String name;
+
+ DangerLevel(Integer code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+ public static DangerLevel getByCode(Integer code) {
+ return Arrays.stream(values())
+ .filter(w -> w.getCode().equals(code))
+ .findFirst()
+ .orElseThrow(() -> new IllegalArgumentException("预警级别编码无效"));
+ }
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/enumeration/IndustryStandardsType.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/enumeration/IndustryStandardsType.java
new file mode 100644
index 0000000..da0598d
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/enumeration/IndustryStandardsType.java
@@ -0,0 +1,43 @@
+package com.ningdatech.carapi.analysis.entity.enumeration;
+
+import lombok.Getter;
+
+/**
+ *
+ * IndustryStandardsType
+ *
+ *
+ * @author WendyYang
+ * @since 10:08 2022/10/15
+ */
+@Getter
+public enum IndustryStandardsType {
+
+ /**
+ * 车属企业安全管理规范
+ */
+ SAFETY_MANAGEMENT_SPECIFICATION(1),
+ /**
+ * 车辆安全设备规范
+ */
+ SAFETY_EQUIPMENT_SPECIFICATION(2),
+ /**
+ * 车辆驾驶安全标准
+ */
+ DRIVING_SAFETY_STANDARDS(3),
+ /**
+ * 安全生产管理人员标准
+ */
+ STANDARDS_FOR_SAFETY_PRODUCTION_MANAGEMENT_PERSONNEL(4),
+ /**
+ * 驾驶员教育考核标准
+ */
+ EVALUATION_CRITERIA_FOR_DRIVER_EDUCATION(5);
+
+ private final Integer code;
+
+ IndustryStandardsType(Integer code) {
+ this.code = code;
+ }
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/enumeration/InsuranceDangerLevel.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/enumeration/InsuranceDangerLevel.java
new file mode 100644
index 0000000..5e233eb
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/enumeration/InsuranceDangerLevel.java
@@ -0,0 +1,31 @@
+package com.ningdatech.carapi.analysis.entity.enumeration;
+
+import lombok.Getter;
+
+/**
+ *
+ * 保险风险评估-风险等级枚举
+ *
+ *
+ * @author WendyYang
+ * @since 10:59 2022/11/2
+ */
+@Getter
+public enum InsuranceDangerLevel {
+ /**
+ * 风险等级
+ */
+ HIGH(1, "高级风险"),
+ HIGH_2ND(2, "次高及风险"),
+ MID(3, "中级风险"),
+ LOW(4, "低级风险");
+
+ private final Integer code;
+ private final String value;
+
+ InsuranceDangerLevel(Integer code, String value) {
+ this.code = code;
+ this.value = value;
+ }
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/IndustryStandardsListReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/IndustryStandardsListReq.java
new file mode 100644
index 0000000..659c7b7
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/IndustryStandardsListReq.java
@@ -0,0 +1,36 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import com.ningdatech.basic.model.PagePo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * IndustryStandardsListReq
+ *
+ *
+ * @author WendyYang
+ * @since 10:25 2022/10/15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class IndustryStandardsListReq extends PagePo {
+
+ @NotNull(message = "行业标准类型不能为空")
+ @ApiModelProperty("行业规范类型:1 车属企业安全管理规范、2 车辆安全设备规范、3 车辆驾驶安全标准、4 安全生产管理人员标准、5 驾驶员教育考核标准")
+ private Integer type;
+
+ @ApiModelProperty("文件名称")
+ private String fileName;
+
+ @ApiModelProperty("开始时间")
+ private LocalDateTime startTime;
+
+ @ApiModelProperty("结束时间")
+ private LocalDateTime endTime;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/IndustryStandardsSaveReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/IndustryStandardsSaveReq.java
new file mode 100644
index 0000000..b8803ef
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/IndustryStandardsSaveReq.java
@@ -0,0 +1,34 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * 行业标准新增实体
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@ApiModel(value = "行业标准新增实体")
+public class IndustryStandardsSaveReq {
+
+ @ApiModelProperty("行业标准说明")
+ @NotBlank(message = "行业标准说明不能为空")
+ private String name;
+
+ @ApiModelProperty("标准类型")
+ @NotNull(message = "标准类型不能为空")
+ private Integer type;
+
+ @ApiModelProperty("文件ID")
+ @NotNull(message = "文件ID不能为空")
+ private Long fileId;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecurityManageGradeListReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecurityManageGradeListReq.java
new file mode 100644
index 0000000..b5b5d0b
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecurityManageGradeListReq.java
@@ -0,0 +1,27 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import com.ningdatech.basic.model.PagePo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * SecurityManagementGradeListReq
+ *
+ *
+ * @author WendyYang
+ * @since 14:56 2022/10/13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SecurityManageGradeListReq extends PagePo {
+
+ private Long regionId;
+
+ private Integer year;
+
+ private String securityLevel;
+
+ private String companyName;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecurityRiskEvalListReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecurityRiskEvalListReq.java
new file mode 100644
index 0000000..4a33ffb
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecurityRiskEvalListReq.java
@@ -0,0 +1,55 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import cn.hutool.core.util.StrUtil;
+import com.ningdatech.basic.model.PagePo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.tuple.Pair;
+
+/**
+ *
+ * SecurityRiskEvaluationListReq
+ *
+ *
+ * @author WendyYang
+ * @since 09:27 2022/10/14
+ */
+@ApiModel("安全责任体系分析评估列表参数类")
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class SecurityRiskEvalListReq extends PagePo {
+
+ private Long regionId;
+
+ private Integer year;
+
+ @ApiModelProperty("总分值:格式为-XX,XX-XX,XX-")
+ private String scoreRange;
+
+ private String companyName;
+
+ private transient Pair scoreRanges;
+
+ public void setScoreRange(String scoreRange) {
+ this.scoreRange = scoreRange;
+ this.setScoreRanges();
+ }
+
+ private void setScoreRanges() {
+ if (StringUtils.isNotBlank(this.scoreRange)) {
+ String[] scoreArray = StrUtil.strip(scoreRange, "-").split("-");
+ int indexOf = scoreRange.indexOf("-");
+ if (indexOf == scoreRange.length() - 1) {
+ scoreRanges = Pair.of(Integer.valueOf(scoreArray[0]), null);
+ } else if (indexOf == 0) {
+ scoreRanges = Pair.of(null, Integer.valueOf(scoreArray[0]));
+ } else {
+ scoreRanges = Pair.of(Integer.valueOf(scoreArray[0]), Integer.valueOf(scoreArray[1]));
+ }
+ }
+ }
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecurityRiskEvalSaveReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecurityRiskEvalSaveReq.java
new file mode 100644
index 0000000..4716bf3
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecurityRiskEvalSaveReq.java
@@ -0,0 +1,78 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 安全责任体系分析评估
+ *
+ *
+ * @author LiuXinXin
+ * @since 2022-10-14
+ */
+@Data
+@ApiModel("安全责任体系分析评估新增参数类")
+public class SecurityRiskEvalSaveReq {
+
+ @ApiModelProperty("年度")
+ @NotNull(message = "考核年度不能为空")
+ private Integer year;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ @NotNull(message = "企业编码不能为空")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ @NotBlank(message = "企业名称不能为空")
+ private String companyName;
+
+ @ApiModelProperty("综合得分")
+ @NotNull(message = "综合得分不能为空")
+ private Integer totalScore;
+
+ @ApiModelProperty("安全承诺得分")
+ @NotNull(message = "安全承诺得分不能为空")
+ private Integer promiseScore;
+
+ @ApiModelProperty("安全责任得分")
+ @NotNull(message = "安全责任得分不能为空")
+ private Integer riskScore;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+ @ApiModelProperty("检查地址")
+ private String checkAddress;
+
+ @ApiModelProperty("检查人")
+ private String checkUser;
+
+ @ApiModelProperty("检查部门")
+ private String checkDept;
+
+ @ApiModelProperty("检查内容")
+ @NotBlank(message = "检查内容不能为空")
+ private String checkContent;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecuritySystemBuildingEvalSaveReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecuritySystemBuildingEvalSaveReq.java
new file mode 100644
index 0000000..09a046c
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/SecuritySystemBuildingEvalSaveReq.java
@@ -0,0 +1,70 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 安全制度建设分析评估新增参数类
+ *
+ *
+ * @author LiuXinXin
+ * @since 2022-10-14
+ */
+@Data
+@ApiModel("安全制度建设分析评估新增参数类")
+public class SecuritySystemBuildingEvalSaveReq {
+
+ @ApiModelProperty("年度")
+ @NotNull(message = "考核年度不能为空")
+ private Integer year;
+
+ @ApiModelProperty("地区ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业编码")
+ @NotNull(message = "企业编码不能为空")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ @NotBlank(message = "企业名称不能为空")
+ private String companyName;
+
+ @ApiModelProperty("综合得分")
+ @NotNull(message = "综合得分不能为空")
+ private Integer totalScore;
+
+ @ApiModelProperty("创建人ID")
+ private Long createBy;
+
+ @ApiModelProperty("创建时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("修改人ID")
+ private Long updateBy;
+
+ @ApiModelProperty("修改时间")
+ private LocalDateTime updateOn;
+
+ @ApiModelProperty("检查地址")
+ private String checkAddress;
+
+ @ApiModelProperty("检查人")
+ private String checkUser;
+
+ @ApiModelProperty("检查部门")
+ private String checkDept;
+
+ @ApiModelProperty("检查内容")
+ @NotBlank(message = "检查内容不能为空")
+ private String checkContent;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleAccidentEvalModReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleAccidentEvalModReq.java
new file mode 100644
index 0000000..a904ed8
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleAccidentEvalModReq.java
@@ -0,0 +1,41 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * 车辆出险情况修改参数
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@ApiModel("车辆出险情况修改参数")
+public class VehicleAccidentEvalModReq {
+
+ @ApiModelProperty("主键")
+ @NotNull(message = "id不能为空")
+ private Integer id;
+
+ @ApiModelProperty("车牌号")
+ @NotBlank(message = "车牌号不能为空")
+ private String carNo;
+
+ @ApiModelProperty("累计违章次数")
+ @NotNull(message = "累计违章次数不能为空")
+ private Integer accidentCount;
+
+ @ApiModelProperty("万公里出险次数")
+ @NotNull(message = "万公里出险次数不能为空")
+ private Integer avgAccidentCount;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleOverSpeedEvalModReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleOverSpeedEvalModReq.java
new file mode 100644
index 0000000..859f1df
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleOverSpeedEvalModReq.java
@@ -0,0 +1,41 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * 车辆超速情况修改参数
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@ApiModel("车辆超速情况修改参数")
+public class VehicleOverSpeedEvalModReq {
+
+ @ApiModelProperty("主键")
+ @NotNull(message = "id不能为空")
+ private Integer id;
+
+ @ApiModelProperty("车牌号")
+ @NotBlank(message = "车牌号不能为空")
+ private String carNo;
+
+ @ApiModelProperty("累计超速次数")
+ @NotNull(message = "累计超速次数不能为空")
+ private Integer overSpeedCount;
+
+ @ApiModelProperty("万公里超速次数")
+ @NotNull(message = "万公里超速次数不能为空")
+ private Integer avgOverSpeedCount;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleServiceLifeListReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleServiceLifeListReq.java
new file mode 100644
index 0000000..c00d609
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleServiceLifeListReq.java
@@ -0,0 +1,42 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import com.ningdatech.basic.model.PagePo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.time.LocalDate;
+
+/**
+ *
+ * VehicleServiceLifeListReq
+ *
+ *
+ * @author WendyYang
+ * @since 14:24 2022/10/15
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("车辆使用年限列表查询参数")
+public class VehicleServiceLifeListReq extends PagePo {
+
+ @ApiModelProperty("车辆购置时间(开始)")
+ private LocalDate buyTimeStart;
+
+ @ApiModelProperty("车辆购置时间(结束)")
+ private LocalDate buyTimeEnd;
+
+ @ApiModelProperty("地域ID")
+ private Long regionId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleViolationEvalModReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleViolationEvalModReq.java
new file mode 100644
index 0000000..fb81664
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/VehicleViolationEvalModReq.java
@@ -0,0 +1,41 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * 车辆违章情况修改参数
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@ApiModel("车辆违章情况修改参数")
+public class VehicleViolationEvalModReq {
+
+ @ApiModelProperty("主键")
+ @NotNull(message = "id不能为空")
+ private Integer id;
+
+ @ApiModelProperty("车牌号")
+ @NotBlank(message = "车牌号不能为空")
+ private String carNo;
+
+ @ApiModelProperty("累计违章次数")
+ @NotNull(message = "累计违章次数不能为空")
+ private Integer violationCount;
+
+ @ApiModelProperty("万公里违章次数")
+ @NotNull(message = "万公里违章次数不能为空")
+ private Integer avgViolationCount;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/WarnAnalysisListReq.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/WarnAnalysisListReq.java
new file mode 100644
index 0000000..0f31ffb
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/req/WarnAnalysisListReq.java
@@ -0,0 +1,42 @@
+package com.ningdatech.carapi.analysis.entity.req;
+
+import com.ningdatech.basic.model.PagePo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ *
+ * WarnAnalysisListReq
+ *
+ *
+ * @author WendyYang
+ * @since 16:42 2022/10/14
+ */
+@Data
+@ApiModel("预警分析列表查询参数")
+@EqualsAndHashCode(callSuper = true)
+public class WarnAnalysisListReq extends PagePo {
+
+ @ApiModelProperty("地域ID")
+ private Long regionId;
+ private List regionIds;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("驾驶员姓名")
+ private String driverName;
+
+ private String dataScopeSql;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/CompanyWarnStatisticsVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/CompanyWarnStatisticsVo.java
new file mode 100644
index 0000000..f3c650b
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/CompanyWarnStatisticsVo.java
@@ -0,0 +1,39 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+import lombok.experimental.Tolerate;
+
+/**
+ *
+ * CompanyWarnStatisticsVo
+ *
+ *
+ * @author WendyYang
+ * @since 17:04 2022/10/25
+ */
+@Data
+@Builder
+public class CompanyWarnStatisticsVo {
+
+ @Tolerate
+ public CompanyWarnStatisticsVo() {
+ }
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("企业地址")
+ private String companyAddress;
+
+ @ApiModelProperty("经度")
+ private String longitude;
+
+ @ApiModelProperty("纬度")
+ private String latitude;
+
+ @ApiModelProperty("风险等级")
+ private Integer dangerLevel;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/IndustryStandardsListVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/IndustryStandardsListVo.java
new file mode 100644
index 0000000..7188be9
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/IndustryStandardsListVo.java
@@ -0,0 +1,32 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ *
+ * IndustryStandardsListVo
+ *
+ *
+ * @author WendyYang
+ * @since 10:19 2022/10/15
+ */
+@Data
+public class IndustryStandardsListVo {
+
+ private String name;
+
+ private LocalDateTime createOn;
+
+ private Integer downCount;
+
+ private Long fileId;
+
+ private Long id;
+ private Long regionId;
+ private String regionName;
+ private Long companyId;
+ private String companyName;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecurityManageGradeVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecurityManageGradeVo.java
new file mode 100644
index 0000000..4df5637
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecurityManageGradeVo.java
@@ -0,0 +1,40 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * 安全管理综合评级列表视图类
+ *
+ *
+ * @author WendyYang
+ * @since 14:41 2022/10/13
+ */
+@Data
+@ApiModel("安全管理综合评级列表视图类")
+public class SecurityManageGradeVo {
+
+ @ApiModelProperty("所属地区")
+ private List regions;
+
+ @ApiModelProperty("年度")
+ private Integer year;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("安全评级")
+ private String securityLevel;
+
+ @ApiModelProperty("综合得分")
+ private Integer score;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecurityManageResultEvalListVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecurityManageResultEvalListVo.java
new file mode 100644
index 0000000..113479c
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecurityManageResultEvalListVo.java
@@ -0,0 +1,66 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *
+ * 安全制度建设分析评估
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-14
+ */
+@Data
+@TableName("nd_security_manage_result_eval")
+@ApiModel(value = "SecurityManageResultEval对象", description = "安全制度建设分析评估")
+public class SecurityManageResultEvalListVo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("年度")
+ private Integer year;
+
+ @ApiModelProperty("地区")
+ private List regions;
+
+ @ApiModelProperty("企业ID")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("综合得分")
+ private Integer totalScore;
+
+ @ApiModelProperty("出险次数")
+ private Integer dangerCount;
+
+ @ApiModelProperty("出险扣分")
+ private Integer dangerScore;
+
+ @ApiModelProperty("死亡人数")
+ private Integer deadCount;
+
+ @ApiModelProperty("死亡扣分")
+ private Integer deadScore;
+
+ @ApiModelProperty("受伤人数")
+ private Integer injuredCount;
+
+ @ApiModelProperty("受伤扣分")
+ private Integer injuredScore;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecurityRiskEvalListVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecurityRiskEvalListVo.java
new file mode 100644
index 0000000..b69053c
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecurityRiskEvalListVo.java
@@ -0,0 +1,53 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+import lombok.experimental.Tolerate;
+
+import java.util.List;
+
+/**
+ *
+ * SecurityRiskEvaluationListVo
+ *
+ *
+ * @author WendyYang
+ * @since 10:17 2022/10/14
+ */
+@Data
+@Builder
+@ApiModel("安全责任分析评估列表视图类")
+public class SecurityRiskEvalListVo {
+
+ @Tolerate
+ public SecurityRiskEvalListVo() {
+ }
+
+ @ApiModelProperty("所属地区")
+ private List regions;
+
+ @ApiModelProperty("年度")
+ private Integer year;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("总分值")
+ private Integer totalScore;
+
+ @ApiModelProperty("安全责任得分")
+ private Integer riskScore;
+
+ @ApiModelProperty("安全承诺得分")
+ private Integer promiseScore;
+
+ @ApiModelProperty("检查内容")
+ private String checkContent;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecuritySystemBuildingEvalListVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecuritySystemBuildingEvalListVo.java
new file mode 100644
index 0000000..b75760c
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/SecuritySystemBuildingEvalListVo.java
@@ -0,0 +1,47 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+import lombok.experimental.Tolerate;
+
+import java.util.List;
+
+/**
+ *
+ * 安全制度建设分析评估列表视图类
+ *
+ *
+ * @author WendyYang
+ * @since 10:17 2022/10/14
+ */
+@Data
+@Builder
+@ApiModel("安全制度建设分析评估列表视图类")
+public class SecuritySystemBuildingEvalListVo {
+
+ @Tolerate
+ public SecuritySystemBuildingEvalListVo() {
+ }
+
+ @ApiModelProperty("所属地区")
+ private List regions;
+
+ @ApiModelProperty("年度")
+ private Integer year;
+
+ @ApiModelProperty("企业编码")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("总分值")
+ private Integer totalScore;
+
+ @ApiModelProperty("检查内容")
+ private String checkContent;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleAccidentEvalListVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleAccidentEvalListVo.java
new file mode 100644
index 0000000..c5b6e71
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleAccidentEvalListVo.java
@@ -0,0 +1,55 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * 车辆出险情况评估列表视图类
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@ApiModel("车辆出险情况评估列表视图类")
+public class VehicleAccidentEvalListVo {
+
+ @ApiModelProperty("主键")
+ private Integer id;
+
+ @ApiModelProperty("企业id")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("车辆风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车辆风险等级名称")
+ private String dangerLevelName;
+
+ @ApiModelProperty("车架号")
+ private String carFrameNo;
+
+ @ApiModelProperty("行驶里程")
+ private Integer mileage;
+
+ @ApiModelProperty("累计出险次数")
+ private Integer accidentCount;
+
+ @ApiModelProperty("地域")
+ private List regions;
+
+ @ApiModelProperty("万公里出险次数")
+ private Integer avgAccidentCount;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleOverSpeedEvalListVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleOverSpeedEvalListVo.java
new file mode 100644
index 0000000..b79a888
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleOverSpeedEvalListVo.java
@@ -0,0 +1,55 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * 车辆超速情况评估列表视图类
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@ApiModel("车辆超速情况评估列表视图类")
+public class VehicleOverSpeedEvalListVo {
+
+ @ApiModelProperty("主键")
+ private Integer id;
+
+ @ApiModelProperty("企业id")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("车辆风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车辆风险等级名称")
+ private String dangerLevelName;
+
+ @ApiModelProperty("车架号")
+ private String carFrameNo;
+
+ @ApiModelProperty("行驶里程")
+ private Integer mileage;
+
+ @ApiModelProperty("累计超速次数")
+ private Integer overSpeedCount;
+
+ @ApiModelProperty("地域")
+ private List regions;
+
+ @ApiModelProperty("万公里超速次数")
+ private Integer avgOverSpeedCount;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleServiceLifeListVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleServiceLifeListVo.java
new file mode 100644
index 0000000..5e4bb78
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleServiceLifeListVo.java
@@ -0,0 +1,60 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+import lombok.experimental.Tolerate;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ *
+ * 车辆使用年限列表视图类
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@Builder
+@ApiModel("车辆使用年限列表视图类")
+public class VehicleServiceLifeListVo {
+
+ @Tolerate
+ public VehicleServiceLifeListVo() {
+ }
+
+ @ApiModelProperty("主键")
+ private Integer id;
+
+ @ApiModelProperty("地域信息")
+ private List regions;
+
+ @ApiModelProperty("企业")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("车辆风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("车架号")
+ private String carFrameNo;
+
+ @ApiModelProperty("购置时间")
+ private LocalDate buyTime;
+
+ @ApiModelProperty("车辆使用时间")
+ private Integer usedTime;
+
+ @ApiModelProperty("车辆使用年限占比(报废年限)")
+ private Integer usedTimePercent;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleViolationEvalListVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleViolationEvalListVo.java
new file mode 100644
index 0000000..c641366
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/VehicleViolationEvalListVo.java
@@ -0,0 +1,59 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * 车辆违章情况评估列表视图类
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-15
+ */
+@Data
+@ApiModel("车辆违章情况评估列表视图类")
+public class VehicleViolationEvalListVo {
+
+ @ApiModelProperty("主键")
+ private Integer id;
+
+ @ApiModelProperty("企业id")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("车辆风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车辆风险等级名称")
+ private String dangerLevelName;
+
+ @ApiModelProperty("车架号")
+ private String carFrameNo;
+
+ @ApiModelProperty("行驶里程")
+ private Integer mileage;
+
+ @ApiModelProperty("累计违章次数")
+ private Integer violationCount;
+
+ @ApiModelProperty("地域")
+ private List regions;
+
+ @ApiModelProperty("万公里违章次数")
+ private Integer avgViolationCount;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/WarnAnalysisByCarVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/WarnAnalysisByCarVo.java
new file mode 100644
index 0000000..a26fc76
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/WarnAnalysisByCarVo.java
@@ -0,0 +1,58 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * 车辆综合预警分析
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-14
+ */
+@Data
+@ApiModel(value = "车辆综合预警分析列表视图类", description = "")
+public class WarnAnalysisByCarVo {
+
+ @ApiModelProperty("主键")
+ private Integer id;
+
+ @ApiModelProperty("地区ID")
+ private List regions;
+
+ @ApiModelProperty("企业Id")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("受伤人数")
+ private Integer injuredCount;
+
+ @ApiModelProperty("死亡人数")
+ private Integer deadCount;
+
+ @ApiModelProperty("出险次数")
+ private Integer dangerCount;
+
+ @ApiModelProperty("车辆风险分值")
+ private Integer dangerScore;
+
+ @ApiModelProperty("车牌号")
+ private String carNo;
+
+ @ApiModelProperty("风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("超速次数")
+ private Integer overSpeedCount;
+
+ @ApiModelProperty("违章次数")
+ private Integer violationCount;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/WarnAnalysisByCompanyVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/WarnAnalysisByCompanyVo.java
new file mode 100644
index 0000000..067b90d
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/WarnAnalysisByCompanyVo.java
@@ -0,0 +1,54 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * 企业综合预警分析列表视图类
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-14
+ */
+@Data
+@ApiModel("企业综合预警分析列表视图类")
+public class WarnAnalysisByCompanyVo {
+
+ @ApiModelProperty("主键")
+ private Integer id;
+
+ private List regions;
+
+ @ApiModelProperty("企业id")
+ private String companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("综合得分")
+ private Integer totalScore;
+
+ @ApiModelProperty("违章次数")
+ private Integer violationCount;
+
+ @ApiModelProperty("出险次数")
+ private Integer dangerCount;
+
+ @ApiModelProperty("受伤人数")
+ private Integer injuredCount;
+
+ @ApiModelProperty("死亡人数")
+ private Integer deadCount;
+
+ @ApiModelProperty("风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("车辆数")
+ private Integer carCount;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/WarnAnalysisByDriverVo.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/WarnAnalysisByDriverVo.java
new file mode 100644
index 0000000..3a80e10
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/entity/vo/WarnAnalysisByDriverVo.java
@@ -0,0 +1,59 @@
+package com.ningdatech.carapi.analysis.entity.vo;
+
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * 驾驶员综合预警分析列表视图类
+ *
+ *
+ * @author WendyYang
+ * @since 2022-10-14
+ */
+@Data
+@ApiModel("驾驶员综合预警分析列表视图类")
+public class WarnAnalysisByDriverVo {
+
+
+ @ApiModelProperty("主键")
+ private Integer id;
+
+ @ApiModelProperty("地区ID")
+ private List regions;
+
+ @ApiModelProperty("企业id")
+ private Long companyId;
+
+ @ApiModelProperty("企业名称")
+ private String companyName;
+
+ @ApiModelProperty("受伤人数")
+ private Integer injuredCount;
+
+ @ApiModelProperty("死亡人数")
+ private Integer deadCount;
+
+ @ApiModelProperty("出险次数")
+ private Integer dangerCount;
+
+ @ApiModelProperty("车辆风险分值")
+ private Integer dangerScore;
+
+ @ApiModelProperty("驾驶员姓名")
+ private String driverName;
+
+ @ApiModelProperty("风险等级")
+ private Integer dangerLevel;
+
+ @ApiModelProperty("超速次数")
+ private Integer overSpeedCount;
+
+ @ApiModelProperty("违章次数")
+ private Integer violationCount;
+
+}
diff --git a/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/manage/AnalysisEvalDataViewManage.java b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/manage/AnalysisEvalDataViewManage.java
new file mode 100644
index 0000000..eabfa5e
--- /dev/null
+++ b/ningda-yw-api/src/main/java/com/ningdatech/carapi/analysis/manage/AnalysisEvalDataViewManage.java
@@ -0,0 +1,312 @@
+package com.ningdatech.carapi.analysis.manage;
+
+import cn.hutool.core.map.MapUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.google.common.collect.Lists;
+import com.ningdatech.basic.util.CollUtils;
+import com.ningdatech.carapi.analysis.common.DangerLevelEnum;
+import com.ningdatech.carapi.analysis.entity.WarnAnalysisCar;
+import com.ningdatech.carapi.analysis.entity.WarnAnalysisCompany;
+import com.ningdatech.carapi.analysis.entity.enumeration.DangerLevel;
+import com.ningdatech.carapi.analysis.entity.vo.CompanyWarnStatisticsVo;
+import com.ningdatech.carapi.analysis.service.IWarnAnalysisCarService;
+import com.ningdatech.carapi.analysis.service.IWarnAnalysisCompanyService;
+import com.ningdatech.carapi.common.model.DataChartVo;
+import com.ningdatech.carapi.common.model.MapDataVO;
+import com.ningdatech.carapi.safe.entity.NdInsureInfo;
+import com.ningdatech.carapi.safe.service.INdInsureInfoService;
+import com.ningdatech.carapi.sys.entity.dto.CompanyDTO;
+import com.ningdatech.carapi.sys.entity.dto.RegionDTO;
+import com.ningdatech.carapi.sys.helper.CompaniesCacheHelper;
+import com.ningdatech.carapi.sys.helper.RegionsCacheHelper;
+import com.ningdatech.carapi.sys.service.CompanyService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
+import java.util.function.ToIntFunction;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * DataViewController
+ *
+ *
+ * @author WendyYang
+ * @since 15:34 2022/10/25
+ */
+@Component
+@AllArgsConstructor
+public class AnalysisEvalDataViewManage {
+
+ private final INdInsureInfoService insureInfoService;
+ private final IWarnAnalysisCompanyService companyWarnAnalysisService;
+ private final IWarnAnalysisCarService carWarnAnalysisService;
+
+ private final RegionsCacheHelper regionsCacheHelper;
+ private final CompaniesCacheHelper companiesCacheHelper;
+ private final CompanyService companyService;
+
+ public List insuranceOrgStatistics(Long regionId) {
+ List childIds = regionsCacheHelper.listChildRegionId(regionId);
+ QueryWrapper query = Wrappers.query();
+ query.select("count(distinct car_plate) as `count`, insure_company as groupKey");
+ query.in("region_id", childIds);
+ query.groupBy("insure_company");
+ List