diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..1c5c059
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ mysql.8
+ true
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://120.195.33.173:55306/nbzhpc
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index 0e31eb2..438649a 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -4,7 +4,9 @@
+
+
@@ -13,6 +15,8 @@
+
+
\ No newline at end of file
diff --git a/.idea/mybatisx/templates.xml b/.idea/mybatisx/templates.xml
new file mode 100644
index 0000000..2aff769
--- /dev/null
+++ b/.idea/mybatisx/templates.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index e9bded7..8ef0ea1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -169,6 +169,12 @@
ruoyi-common
${ruoyi.version}
+
+
+ com.ruoyi
+ ruoyi-safecompany
+ ${ruoyi.version}
+
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 8da6e19..2213405 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -74,6 +74,10 @@
ruoyi-safecompany
${ruoyi.version}
+
+ org.projectlombok
+ lombok
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
index d2d6e8c..9edc9a5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
@@ -2,13 +2,34 @@ package com.ruoyi.web.controller.common;
import java.awt.image.BufferedImage;
import java.io.IOException;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.security.MessageDigest;
+import java.util.Random;
import java.util.concurrent.TimeUnit;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.enums.UserStatus;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.web.core.config.SmsConfig;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.FastByteArrayOutputStream;
import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import com.google.code.kaptcha.Producer;
import com.ruoyi.common.config.RuoYiConfig;
@@ -18,13 +39,13 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.sign.Base64;
import com.ruoyi.common.utils.uuid.IdUtils;
-import com.ruoyi.system.service.ISysConfigService;
/**
* 验证码操作处理
*
* @author ruoyi
*/
+@Api(tags = "验证码")
@RestController
public class CaptchaController
{
@@ -39,10 +60,16 @@ public class CaptchaController
@Autowired
private ISysConfigService configService;
+ @Autowired
+ private ISysUserService userService;
+
+ @Autowired
+ private SmsConfig smsConfig;
/**
* 生成验证码
*/
@GetMapping("/captchaImage")
+ @ApiOperation("生成验证码")
public AjaxResult getCode(HttpServletResponse response) throws IOException
{
AjaxResult ajax = AjaxResult.success();
@@ -91,4 +118,150 @@ public class CaptchaController
ajax.put("img", Base64.encode(os.toByteArray()));
return ajax;
}
+
+
+
+ /**
+ * 发送短信验证码接口
+ * @param phoneNumber 手机号
+ */
+ @ApiOperation("发送短信验证码")
+ @PostMapping("/sendSmsCode")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "phoneNumber", value = "手机号")
+ })
+ public AjaxResult sendSmsCode(String phoneNumber) throws Exception {
+ // 手机号码
+ AjaxResult ajax = AjaxResult.success();
+ if (!isValidPhoneNumber(phoneNumber)) {
+ throw new ServiceException("登录用户:" + phoneNumber+ " 手机号不符合规范");
+ }
+ // 校验手机号
+ SysUser user = userService.selectUserByPhonenumber(phoneNumber);
+ if (StringUtils.isNull(user)) {
+ throw new ServiceException("登录用户:" + phoneNumber+ " 不存在");
+ }else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) {
+ throw new ServiceException("对不起,您的账号:" + phoneNumber+ " 已被删除");
+ }else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
+ throw new ServiceException("对不起,您的账号:" + phoneNumber+ " 已停用");
+ }
+
+ // 生成短信验证码
+ String smsCode = generateVerificationCode();
+ // 发送短信(实际按系统业务实现)
+ sendSms(phoneNumber,ajax,smsCode);
+ // 保存redis缓存
+ String uuid = IdUtils.simpleUUID();
+ String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;
+ redisCache.setCacheObject(verifyKey, smsCode, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
+ ajax.put("uuid", uuid);
+ return ajax;
+ }
+
+
+
+ // 发送短信的方法
+ public void sendSms(String phoneNumber,AjaxResult ajax,String verificationCode) throws Exception {
+// if (!isValidPhoneNumber(phoneNumber)) {
+// ajax.put("flag", "false");
+// ajax.put("msg", "手机号格式不正确");
+// return ajax;
+// }
+//// String verificationCode = generateVerificationCode();
+// String ecName = "宁波市公安局镇海分局";
+// String apId = "nbzhpc";
+// String secretKey = "WaTu123!@#";
+// String content = "您的安惠商企验证码是:" + verificationCode;
+// String sign = "0GTEcXOJl";
+// String addSerial = "";
+ String ecName = smsConfig.getEcName();
+ String apId = smsConfig.getApId();
+ String secretKey = smsConfig.getSecretKey();
+ String content = "您的安惠商企登陆平台验证码是:" + verificationCode;
+ String sign = smsConfig.getSign();
+ String addSerial = smsConfig.getAddSerial();
+ // 生成MAC
+ String mac = generateMAC(ecName, apId, secretKey, phoneNumber, content, sign, addSerial);
+ // 创建请求体的JSON字符串
+ String jsonInputString = String.format(
+ "{\"addSerial\":\"%s\",\"apId\":\"%s\",\"content\":\"%s\",\"ecName\":\"%s\",\"mAC\":\"%s\",\"mobiles\":\"%s\",\"secretKey\":\"%s\",\"sign\":\"%s\"}",
+ addSerial, apId, content, ecName, mac, phoneNumber, secretKey, sign
+ );
+
+ // 将JSON字符串编码为Base64
+ String base64EncodedJson = java.util.Base64.getEncoder().encodeToString(jsonInputString.getBytes("utf-8"));
+
+ try {
+ // 创建URL对象
+ URL url = new URL("http://112.35.1.155:1992/sms/norsubmit");
+ // 打开连接
+ HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+ // 设置请求方法为POST
+ connection.setRequestMethod("POST");
+ // 设置请求头
+ connection.setRequestProperty("Content-Type", "application/json; utf-8");
+ connection.setRequestProperty("Accept", "application/json");
+ connection.setDoOutput(true);
+
+ // 发送请求
+ try (OutputStream os = connection.getOutputStream()) {
+ byte[] input = base64EncodedJson.getBytes("utf-8");
+ os.write(input, 0, input.length);
+ }
+
+ // 获取响应码
+ int responseCode = connection.getResponseCode();
+ if (responseCode != HttpURLConnection.HTTP_OK) {
+ ajax.put("flag", "false");
+ ajax.put("msg", "短信发送失败");
+ }
+ ajax.put("flag", "true");
+ ajax.put("msg", "短信发送成功");
+ } catch (Exception e) {
+ ajax.put("flag", "false");
+ ajax.put("msg", "短信发送失败");
+ }
+ }
+
+
+
+ // 生成6位数验证码
+ public static String generateVerificationCode() {
+ Random random = new Random();
+ int code = 100000 + random.nextInt(900000);
+ return String.valueOf(code);
+ }
+
+ // 验证手机号格式
+ public static boolean isValidPhoneNumber(String phoneNumber) {
+ // 这里只是一个简单的验证示例,实际验证可能根据具体国家或运营商规则不同
+ String regex = "^[1][3-9][0-9]{9}$";
+ Pattern pattern = Pattern.compile(regex);
+ Matcher matcher = pattern.matcher(phoneNumber);
+ return matcher.matches();
+ }
+
+ // 生成MAC
+ public static String generateMAC(String ecName, String apId, String secretKey, String mobiles, String content, String sign, String addSerial) {
+ String input = ecName + apId + secretKey + mobiles + content + sign + addSerial;
+ return md5(input);
+ }
+
+ private static String md5(String input) {
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ byte[] messageDigest = md.digest(input.getBytes());
+ StringBuilder sb = new StringBuilder();
+ for (byte b : messageDigest) {
+ sb.append(String.format("%02x", b));
+ }
+ return sb.toString();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+
+
+
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
index cec5006..d313212 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -4,6 +4,9 @@ import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +29,7 @@ import com.ruoyi.framework.config.ServerConfig;
*
* @author ruoyi
*/
+@Api(tags = "公共方法")
@RestController
@RequestMapping("/common")
public class CommonController
@@ -44,6 +48,7 @@ public class CommonController
* @param delete 是否删除
*/
@GetMapping("/download")
+ @ApiOperation("通用下载请求")
public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
{
try
@@ -73,6 +78,7 @@ public class CommonController
* 通用上传请求(单个)
*/
@PostMapping("/upload")
+ @ApiOperation("通用上传请求(单个)")
public AjaxResult uploadFile(MultipartFile file) throws Exception
{
try
@@ -99,6 +105,7 @@ public class CommonController
* 通用上传请求(多个)
*/
@PostMapping("/uploads")
+ @ApiOperation("通用上传请求(单个)")
public AjaxResult uploadFiles(List files) throws Exception
{
try
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index d959a17..b6f75a9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -2,11 +2,14 @@ package com.ruoyi.web.controller.system;
import java.util.List;
import java.util.Set;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysMenu;
@@ -22,6 +25,7 @@ import com.ruoyi.system.service.ISysMenuService;
*
* @author ruoyi
*/
+@Api(tags = "登录验证")
@RestController
public class SysLoginController
{
@@ -34,6 +38,7 @@ public class SysLoginController
@Autowired
private SysPermissionService permissionService;
+
/**
* 登录方法
*
@@ -41,6 +46,7 @@ public class SysLoginController
* @return 结果
*/
@PostMapping("/login")
+ @ApiOperation("登录方法")
public AjaxResult login(@RequestBody LoginBody loginBody)
{
AjaxResult ajax = AjaxResult.success();
@@ -57,6 +63,7 @@ public class SysLoginController
* @return 用户信息
*/
@GetMapping("getInfo")
+ @ApiOperation("获取用户信息")
public AjaxResult getInfo()
{
SysUser user = SecurityUtils.getLoginUser().getUser();
@@ -71,6 +78,32 @@ public class SysLoginController
return ajax;
}
+
+
+ /**
+ * @description
+ * @author 杜俊岩
+ * @param[1] null
+ * @throws
+ * @time 2024/7/5 11:46
+ * 验证短信
+ */
+ @ApiOperation("短信验证码登录验证")
+ @PostMapping("/smsLogin")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "phoneNumber", value = "手机号"),
+ @ApiImplicitParam(name = "code", value = "验证码"),
+ @ApiImplicitParam(name = "uuid", value = "唯一标识符")
+ })
+ public AjaxResult verifySmsCode(String phoneNumber, String code, String uuid) {
+ return loginService.smsLogin(phoneNumber, code, uuid);
+ }
+
+
+
+
+
+
/**
* 获取路由信息
*
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SmsConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SmsConfig.java
new file mode 100644
index 0000000..8eb763f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SmsConfig.java
@@ -0,0 +1,37 @@
+package com.ruoyi.web.core.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Author 杜俊岩
+ * @Date 2024/7/5 14:30
+ * @Version 1.0
+ */
+@ConfigurationProperties(prefix = "tencent.sms")
+@Configuration
+@Data
+public class SmsConfig {
+ /**
+ * 企业名称
+ */
+ private String ecName;
+ /**
+ * 短信账户密码
+ */
+ private String secretKey;
+ /**
+ * 短信应用的SDKAppID
+ */
+ private String apId;
+ /**
+ * 签名内容
+ */
+ private String sign;
+ /**
+ *
+ */
+ private String addSerial;
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
index ae1c3ec..1467932 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
@@ -113,7 +113,7 @@ public class SwaggerConfig
// 用ApiInfoBuilder进行定制
return new ApiInfoBuilder()
// 设置标题
- .title("标题:若依管理系统_接口文档")
+ .title("标题:安惠商企管理系统_接口文档")
// 描述
.description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
// 作者信息
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index e4a9b6b..00b74f0 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -6,16 +6,16 @@ spring:
druid:
# 主库数据源
master:
- url: jdbc:mysql://120.195.33.173:55306/nbzhpc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ url: jdbc:mysql://192.168.0.80:55306/nbzhpc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: '!QAZ1qaz'
# 从库数据源
slave:
# 从数据源开关/默认关闭
- enabled: false
- url:
- username:
- password:
+ enabled: true
+ url: jdbc:mysql://192.168.0.80:55306/nbzh?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ username: root
+ password: '!QAZ1qaz'
# 初始连接数
initialSize: 5
# 最小连接池数量
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 6e18581..c72b9a0 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -18,10 +18,10 @@ ruoyi:
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
- port: 8080
+ port: 8799
servlet:
# 应用的访问路径
- context-path: /
+ context-path: /zhpcapi
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
@@ -70,7 +70,8 @@ spring:
# redis 配置
redis:
# 地址
- host: 120.195.33.173
+# host: 120.195.33.173
+ host: 192.168.0.78
# 端口,默认为6379
port: 26379
# 数据库索引
@@ -132,7 +133,7 @@ swagger:
# 是否开启swagger
enabled: true
# 请求前缀
- pathMapping: /dev-api
+ pathMapping: /zhpcapi
knife4j:
@@ -152,4 +153,16 @@ snowid:
#工作进程id
workerId: 1
#数据中心id
- datacenterId: 1
\ No newline at end of file
+ datacenterId: 1
+tencent:
+ sms:
+ # 企业名称
+ ecName: "宁波市公安局镇海分局"
+ # 短信账户名称
+ apId: "nbzhpc"
+ # 账号密码
+ secretKey: "WaTu123!@#"
+ # 配置签名内容
+ sign: "0GTEcXOJl"
+ # 配置模板ID
+ addSerial:
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index b1aa81a..fa94edf 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -113,6 +113,10 @@ public class SysUser extends BaseTenantEntity {
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
private Date loginDate;
+
+
+
+
public Long getTenantId() {
return tenantId;
}
@@ -226,6 +230,18 @@ public class SysUser extends BaseTenantEntity {
return phoneNumber;
}
+
+
+ @Excel(name = "所属公司")
+ private String companyName;
+ public String getCompanyName() {
+ return companyName;
+ }
+
+ public void setCompanyName(String companyName) {
+ this.companyName = companyName;
+ }
+
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
@@ -349,6 +365,7 @@ public class SysUser extends BaseTenantEntity {
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
+ .append("companyName", getCompanyName())
.append("dept", getDept())
.toString();
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index 2125853..ac7d08e 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -1,6 +1,8 @@
package com.ruoyi.framework.config;
+import com.ruoyi.framework.security.SmsCodeAuthenticationProvider;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpMethod;
import org.springframework.security.authentication.AuthenticationManager;
@@ -32,7 +34,20 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
* 自定义用户认证逻辑
*/
@Autowired
- private UserDetailsService userDetailsService;
+ @Qualifier("userDetailsByUsername")
+ private UserDetailsService userDetailsByUsername;
+
+ /**
+ * @description
+ * @author 杜俊岩
+ * @param[1] null
+ * @throws
+ * @time 2024/7/5 16:04
+ * 自定义短信认证
+ */
+ @Autowired
+ @Qualifier("userDetailsByPhonenumber")
+ private UserDetailsService userDetailsByPhonenumber;
/**
* 认证失败处理类
@@ -98,7 +113,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
// 注解标记允许匿名访问的url
ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry = httpSecurity.authorizeRequests();
permitAllUrl.getUrls().forEach(url -> registry.antMatchers(url).permitAll());
-
httpSecurity
// CSRF禁用,因为不使用session
.csrf().disable()
@@ -111,7 +125,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
// 过滤请求
.authorizeRequests()
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
- .antMatchers("/login", "/register", "/captchaImage").permitAll()
+ .antMatchers("/login", "/register", "/captchaImage","/sendSmsCode","/smsLogin").permitAll()
// 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
@@ -126,6 +140,10 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
// 添加CORS filter
httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class);
httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class);
+// httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class)
+// //手机验证码的provider
+// .authenticationProvider(smsCodeAuthenticationProvider);
+
}
/**
@@ -143,6 +161,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception
{
- auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder());
+ //手机验证码的orovider
+ auth.authenticationProvider(new SmsCodeAuthenticationProvider(userDetailsByPhonenumber));
+ auth.userDetailsService(userDetailsByUsername).passwordEncoder(bCryptPasswordEncoder());
}
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationProvider.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationProvider.java
new file mode 100644
index 0000000..724403d
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationProvider.java
@@ -0,0 +1,52 @@
+package com.ruoyi.framework.security;
+
+import org.springframework.security.authentication.AuthenticationProvider;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+
+/**
+ * @Author 杜俊岩
+ * @Date 2024/7/5 15:55
+ * @Version 1.0
+ * 自定义短信登录token验证
+ */
+public class SmsCodeAuthenticationProvider implements AuthenticationProvider {
+ private UserDetailsService userDetailsService;
+
+ public SmsCodeAuthenticationProvider(UserDetailsService userDetailsService){
+ setUserDetailsService(userDetailsService);
+ }
+
+ /**
+ * 重写 authenticate方法,实现身份验证逻辑。
+ */
+ @Override
+ public Authentication authenticate(Authentication authentication) throws AuthenticationException {
+ SmsCodeAuthenticationToken authenticationToken = (SmsCodeAuthenticationToken) authentication;
+ String telephone = (String) authenticationToken.getPrincipal();
+ // 委托 UserDetailsService 查找系统用户
+ UserDetails userDetails = userDetailsService.loadUserByUsername(telephone);
+ // 鉴权成功,返回一个拥有鉴权的 AbstractAuthenticationToken
+ SmsCodeAuthenticationToken authenticationResult = new SmsCodeAuthenticationToken(userDetails, userDetails.getAuthorities());
+ authenticationResult.setDetails(authenticationToken.getDetails());
+ return authenticationResult;
+ }
+
+ /**
+ * 重写supports方法,指定此 AuthenticationProvider 仅支持短信验证码身份验证。
+ */
+ @Override
+ public boolean supports(Class> authentication) {
+ return SmsCodeAuthenticationToken.class.isAssignableFrom(authentication);
+ }
+
+ public UserDetailsService getUserDetailsService() {
+ return userDetailsService;
+ }
+
+ public void setUserDetailsService(UserDetailsService userDetailsService) {
+ this.userDetailsService = userDetailsService;
+ }
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationToken.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationToken.java
new file mode 100644
index 0000000..4867bd9
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/SmsCodeAuthenticationToken.java
@@ -0,0 +1,63 @@
+package com.ruoyi.framework.security;
+
+import org.springframework.security.authentication.AbstractAuthenticationToken;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.SpringSecurityCoreVersion;
+
+import java.util.Collection;
+
+/**
+ * @Author 杜俊岩
+ * @Date 2024/7/5 15:56
+ * @Version 1.0
+ */
+public class SmsCodeAuthenticationToken extends AbstractAuthenticationToken {
+ private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
+
+ /**
+ * 存储手机号码
+ */
+ private final Object principal;
+
+ /**
+ * 构建一个没有鉴权的构造函数
+ */
+ public SmsCodeAuthenticationToken(Object principal) {
+ super(null);
+ this.principal = principal;
+ setAuthenticated(false);
+ }
+
+ /**
+ * 构建一个拥有鉴权的构造函数
+ */
+ public SmsCodeAuthenticationToken(Object principal, Collection extends GrantedAuthority> authorities) {
+ super(authorities);
+ this.principal = principal;
+ super.setAuthenticated(true);
+ }
+
+ @Override
+ public Object getCredentials() {
+ return null;
+ }
+
+ @Override
+ public Object getPrincipal() {
+ return this.principal;
+ }
+
+ @Override
+ public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException {
+ if (isAuthenticated) {
+ throw new IllegalArgumentException(
+ "Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead");
+ }
+ super.setAuthenticated(false);
+ }
+
+ @Override
+ public void eraseCredentials() {
+ super.eraseCredentials();
+ }
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index 67267b7..210f06d 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -1,6 +1,10 @@
package com.ruoyi.framework.web.service;
import javax.annotation.Resource;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.security.SmsCodeAuthenticationToken;
+import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
@@ -28,6 +32,15 @@ import com.ruoyi.framework.manager.factory.AsyncFactory;
import com.ruoyi.framework.security.context.AuthenticationContextHolder;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.HashMap;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
/**
* 登录校验方法
@@ -52,6 +65,11 @@ public class SysLoginService
@Autowired
private ISysConfigService configService;
+
+
+
+
+
/**
* 登录验证
*
@@ -178,4 +196,62 @@ public class SysLoginService
sysUser.setLoginDate(DateUtils.getNowDate());
userService.updateUserProfile(sysUser);
}
+
+
+
+ /**
+ * 短信验证码登录验证
+ * @param phoneNumber 手机号
+ * @param code 短信验证码
+ * @param uuid 唯一标识
+ */
+ public AjaxResult smsLogin(String phoneNumber, String code, String uuid) {
+ // 手机号码
+// String phoneNumber = dto.getPhoneNumber();
+ // 校验验证码
+ String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;
+ String captcha = redisCache.getCacheObject(verifyKey);
+ if(captcha == null) {
+ AsyncManager.me().execute(AsyncFactory.recordLogininfor(phoneNumber, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire")));
+ // 抛出一个验证码过期异常
+ throw new CaptchaExpireException();
+ }
+ if(!captcha.equals(code.trim())){
+ AsyncManager.me().execute(AsyncFactory.recordLogininfor(phoneNumber, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
+ // 抛出一个验证码错误的异常
+ throw new CaptchaException();
+ }
+ redisCache.deleteObject(verifyKey);
+
+ // 用户验证
+ Authentication authentication = null;
+ try {
+ // 该方法会去调用UserDetailsByPhonenumberServiceImpl.loadUserByUsername
+ authentication = authenticationManager.authenticate(new SmsCodeAuthenticationToken(phoneNumber));
+ } catch (Exception e) {
+ if (e instanceof BadCredentialsException) {
+ AsyncManager.me().execute(AsyncFactory.recordLogininfor(phoneNumber,
+ Constants.LOGIN_FAIL, MessageUtils.message("account.not.incorrect")));
+ throw new UserPasswordNotMatchException();
+ } else {
+ AsyncManager.me().execute(AsyncFactory.recordLogininfor(phoneNumber,
+ Constants.LOGIN_FAIL, e.getMessage()));
+ throw new ServiceException(e.getMessage());
+ }
+ }
+ // 执行异步任务,记录登录信息
+ AsyncManager.me().execute(AsyncFactory.recordLogininfor(phoneNumber,
+ Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
+ // 获取登录人信息
+ LoginUser loginUser = (LoginUser) authentication.getPrincipal();
+ // 修改最近登录IP和登录时间
+ recordLoginInfo(loginUser.getUserId());
+ // 生成token
+ String token = tokenService.createToken(loginUser);
+ // 返回token给前端
+ AjaxResult ajax = AjaxResult.success();
+ ajax.put(Constants.TOKEN, token);
+ return ajax;
+ }
+
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsByPhonenumberServiceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsByPhonenumberServiceImpl.java
new file mode 100644
index 0000000..0d88083
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsByPhonenumberServiceImpl.java
@@ -0,0 +1,55 @@
+package com.ruoyi.framework.web.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.enums.UserStatus;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.service.ISysUserService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author 杜俊岩
+ * @Date 2024/7/5 14:53
+ * @Version 1.0
+ */
+@Service("userDetailsByPhonenumber")
+public class UserDetailsByPhonenumberServiceImpl implements UserDetailsService {
+ private static final Logger log = LoggerFactory.getLogger(UserDetailsByPhonenumberServiceImpl.class);
+
+ @Autowired
+ private ISysUserService userService;
+
+ @Autowired
+ private SysPermissionService permissionService;
+
+ @Override
+ public UserDetails loadUserByUsername(String phoneNumber) throws UsernameNotFoundException {
+ // 防止漏查角色等所需的信息,尽量模仿根据用户名查用户的方法开发:ISysUserService.selectUserByUserName(username)
+
+ SysUser user = userService.selectUserByPhonenumber(phoneNumber);
+ if (StringUtils.isNull(user)) {
+ log.info("登录用户:{} 不存在.", phoneNumber);
+ throw new ServiceException("登录用户:" + phoneNumber+ " 不存在");
+ } else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) {
+ log.info("登录用户:{} 已被删除.", phoneNumber);
+ throw new ServiceException("对不起,您的账号:" + phoneNumber+ " 已被删除");
+ } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
+ log.info("登录用户:{} 已被停用.", phoneNumber);
+ throw new ServiceException("对不起,您的账号:" + phoneNumber+ " 已停用");
+ }
+ return createLoginUser(user);
+ }
+
+ public UserDetails createLoginUser(SysUser user) {
+ return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user));
+ // return new LoginUser(user, permissionService.getMenuPermission(user));
+ }
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
index 1950cb7..45cf39c 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
@@ -19,7 +19,7 @@ import com.ruoyi.system.service.ISysUserService;
*
* @author ruoyi
*/
-@Service
+@Service("userDetailsByUsername")
public class UserDetailsServiceImpl implements UserDetailsService
{
private static final Logger log = LoggerFactory.getLogger(UserDetailsServiceImpl.class);
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.java
new file mode 100644
index 0000000..e5786c6
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.java
@@ -0,0 +1,30 @@
+package com.ruoyi.business.enterpriserectification.bo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = false)
+public class TbSafeRuleOneVo {
+
+ private Long id;
+
+ private String levelIndexOne;
+
+ private String levelIndexTwo;
+
+ private String levelIndexThree;
+
+ private String note;
+
+ private Integer levelIndex;
+
+ private List tbSafeRuleTwoVoList;
+}
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.java
new file mode 100644
index 0000000..b752246
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.java
@@ -0,0 +1,22 @@
+package com.ruoyi.business.enterpriserectification.bo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TbSafeRuleThreeVo {
+
+ private Long id;
+
+ private String levelIndexOne;
+
+ private String levelIndexTwo;
+
+ private String levelIndexThree;
+
+ private String note;
+
+ private Integer levelIndex;
+}
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.java
new file mode 100644
index 0000000..f09d4d2
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.java
@@ -0,0 +1,26 @@
+package com.ruoyi.business.enterpriserectification.bo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TbSafeRuleTwoVo {
+
+ private Long id;
+
+ private String levelIndexOne;
+
+ private String levelIndexTwo;
+
+ private String levelIndexThree;
+
+ private String note;
+
+ private Integer levelIndex;
+
+ private List tbSafeRuleThreeVoList;
+}
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.java
new file mode 100644
index 0000000..9acfe5b
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.java
@@ -0,0 +1,98 @@
+package com.ruoyi.business.enterpriserectification.bo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.system.until.EntiyUntil;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.util.Date;
+
+/**
+ * @Author 杜俊岩
+ * @Date 2024/7/2 19:21
+ * @Version 1.0
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value="TbSynergism对象", description="整改信息表")
+public class TbSynergismParmas extends EntiyUntil {
+
+ /**
+ * 清单生成时间
+ */
+ @ApiModelProperty("清单生成时间")
+ private Date checklistGenerationTime;
+ /**
+ * 整改截止日期
+ */
+ @ApiModelProperty("整改截止日期")
+ private Date rectificationDeadline;
+ /**
+ * 整改状态
+ */
+ @Size(max= 50,message="编码长度不能超过50")
+ @ApiModelProperty("整改状态0:已完成;1:整改中;2:未完成")
+ @Length(max= 50,message="编码长度不能超过50")
+ private String rectificationStatus;
+ /**
+ * 管控扣分项
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("异常类型")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String controlDeductionItem;
+
+ /**
+ * 要素异常明细
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("要素异常明细")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String elementAbnormalDetail;
+ /**
+ * 整改结果
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("整改结果0:已完成;1:整改中;2:未完成")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String rectificationResult;
+
+ /**
+ * 整改日期
+ */
+ @ApiModelProperty("整改日期")
+ private Date updateTime;
+ /**
+ * 0:不活跃;1:活跃
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("0:不活跃;1:活跃")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String isActive;
+ /**
+ * 整改结果详情
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("整改结果详情")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String rectificationResultDefult;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date startTime;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+ @ApiModelProperty("查询风险开始时间")
+ private Date riskStartTime;
+ @ApiModelProperty("查询风险结束时间")
+ private Date riskEndTime;
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.java
new file mode 100644
index 0000000..f79473e
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.java
@@ -0,0 +1,240 @@
+package com.ruoyi.business.enterpriserectification.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleTwoVo;
+import com.ruoyi.business.enterpriserectification.bo.TbSynergismParmas;
+import com.ruoyi.business.enterpriserectification.pojo.*;
+import com.ruoyi.business.enterpriserectification.service.*;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.enums.RectificationStatusEnum;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+
+/**
+ * @Author 杜俊岩
+ * @Date 2024/6/28 19:15
+ * @Version 1.0
+ * 企业整改
+ */
+@Api(tags = "企业整改")
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/rectification")
+public class TbCompanyRectifictionController extends BaseController {
+
+ private final TbSafeCompanyStatisticsScoreDetailService tbSafeCompanyStatisticsScoreDetailService;
+ private final TbSynergismEnterpriseSupervisionService tbSynergismEnterpriseSupervisionService;
+ private final TbSafeCompanyStatisticsScoreService tbSafeCompanyStatisticsScoreService;
+// private final TbSpecialCountRecordService tbSpecialCountRecordService;
+ private final TbCompanyInfoService tbCompanyInfoService;
+ private final TbSafeRuleService tbSafeRuleService;
+
+
+ /**
+ * @description
+ * @author 杜俊岩
+ * @param[1] null
+ * @throws
+ * @time 2024/6/29 11:40
+ * 查询企业整改列表
+ */
+ @PostMapping("/list")
+ @ApiOperation("查询企业整改列表")
+ @DataSource(value = DataSourceType.SLAVE)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "pageSize", value = "页数大小"),
+ @ApiImplicitParam(name = "pageNum", value = "页数")
+ })
+ public TableDataInfo riskgovernancelist(TbSynergismParmas tbSynergismParmas) {
+ startPage();
+ //填充条件
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(TbSynergismEnterpriseSupervision::getEnterpriseName, getLoginUserInfo());
+ //整改状态
+ if (tbSynergismParmas.getRectificationStatus() != null) {
+ wrapper.eq(TbSynergismEnterpriseSupervision::getRectificationStatus, RectificationStatusEnum.getStatusByCode(tbSynergismParmas.getRectificationStatus()));
+ }
+ //生成时间区间
+ if (tbSynergismParmas.getRiskStartTime() != null && tbSynergismParmas.getRiskEndTime() != null ) {
+ wrapper.between(TbSynergismEnterpriseSupervision::getChecklistGenerationTime, tbSynergismParmas.getRiskStartTime(), tbSynergismParmas.getRiskEndTime());
+ }
+ //整改完成区间
+ if (tbSynergismParmas.getStartTime() != null && tbSynergismParmas.getEndTime() != null ) {
+ wrapper.between(TbSynergismEnterpriseSupervision::getUpdateTime, tbSynergismParmas.getStartTime(), tbSynergismParmas.getEndTime());
+ }
+ //二级异常
+ if (tbSynergismParmas.getControlDeductionItem() != null) {
+ wrapper.eq(TbSynergismEnterpriseSupervision::getControlDeductionItem, tbSynergismParmas.getControlDeductionItem());
+ }
+ //三级异常(详情)
+ if (tbSynergismParmas.getElementAbnormalDetail() != null) {
+ wrapper.eq(TbSynergismEnterpriseSupervision::getElementAbnormalDetail, tbSynergismParmas.getElementAbnormalDetail());
+ }
+ List list = tbSynergismEnterpriseSupervisionService.list(wrapper);
+ list.forEach(s -> {
+ s.setEndTime(s.getUpdateTime());
+ });
+ return getDataTable(list);
+ }
+
+ /**
+ * @description
+ * @author 杜俊岩
+ * @param[1] null
+ * @throws
+ * @time 2024/6/29 11:51
+ * 修改
+ * 传id,修改整改状态
+ */
+ @PostMapping("/updatecompanystatus")
+ @ApiOperation("企业整改按钮")
+ @DataSource(value = DataSourceType.SLAVE)
+ public AjaxResult updatecompanystatus(Long id) {
+ TbSynergismEnterpriseSupervision serviceById = tbSynergismEnterpriseSupervisionService.getById(id);
+ serviceById.setRectificationStatus(RectificationStatusEnum.SUCCESS.getStatus());
+ serviceById.setRectificationResult(RectificationStatusEnum.SUCCESS.getStatus());
+ serviceById.setUpdateTime(new Date());
+ tbSynergismEnterpriseSupervisionService.saveOrUpdate(serviceById);
+ return success();
+ }
+
+ /**
+ * @description
+ * @author 杜俊岩
+ * @param[1] null
+ * @throws
+ * @time 2024/6/29 11:52
+ * 平安指数分数以及排名
+ */
+ @PostMapping("/countrank")
+ @ApiOperation("平安指数分数以及排名")
+ @DataSource(value = DataSourceType.SLAVE)
+ public AjaxResult countrank() {
+ //获取所有企业的0及指标
+// String companyname = getLoginUserInfo();
+// TbCompanyInfo companyInfo = tbCompanyInfoService.getOne(new LambdaQueryWrapper().eq(TbCompanyInfo::getCompanyName, companyname));
+// if (companyInfo == null) {
+// // 处理找不到企业信息的情况
+// return null;
+// }
+ TbCompanyInfo companyInfo = getLoginUserCompanyInfo();
+ if (companyInfo == null) {
+ // 处理找不到企业信息的情况
+ return null;
+ }
+ String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
+ List scores = tbSafeCompanyStatisticsScoreService.list(
+ new LambdaQueryWrapper()
+ .eq(TbSafeCompanyStatisticsScore::getStatisticsDate, now)
+ .eq(TbSafeCompanyStatisticsScore::getScoreType, "month")
+ );
+ // 使用Stream API进行排序,但注意流本身不直接支持索引
+ scores.sort(Comparator.comparingDouble(TbSafeCompanyStatisticsScore::getScore).reversed());
+ OptionalInt optionalRank = IntStream.range(0, scores.size())
+ .filter(index -> scores.get(index).getCompanyId().equals(companyInfo.getId()))
+ .findFirst(); // 这将返回第一个匹配的索引(如果存在)
+ Map resultMap = new HashMap<>();
+ if (optionalRank.isPresent()) {
+ resultMap.put("rank", optionalRank.getAsInt() + 1); // 排名从1开始
+ resultMap.put("score", scores.get(optionalRank.getAsInt()).getScore());
+ } else {
+ resultMap.put("rank", "Not Found");
+ }
+ return success(resultMap);
+ }
+
+
+
+ /**
+ * @description
+ * @author 杜俊岩
+ * @param[1] null
+ * @throws
+ * @time 2024/6/29 14:11
+ * 平安指数分数(八个一级指标)
+ */
+ @PostMapping("/countscore")
+ @ApiOperation("平安指数分数(八个一级指标)")
+ @DataSource(value = DataSourceType.SLAVE)
+ public AjaxResult countscore() {
+ TbCompanyInfo one = getLoginUserCompanyInfo();
+ if (one == null) {
+ // 处理找不到企业信息的情况
+ return null;
+ }
+ //根据公司id获取1级指标
+ String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
+ List list = tbSafeCompanyStatisticsScoreDetailService.list(new LambdaQueryWrapper()
+ .eq(TbSafeCompanyStatisticsScoreDetail::getCompanyId, one.getId())
+ .eq(TbSafeCompanyStatisticsScoreDetail::getLevelIndex, "1")
+ .eq(TbSafeCompanyStatisticsScoreDetail::getStatisticsDate, now)
+ .eq(TbSafeCompanyStatisticsScoreDetail::getScoreType, "month"));
+ List collect = list.stream()
+ .filter(s -> s.getLevelIndexOne() != null && !Objects.equals(s.getLevelIndexOne(), "防疫安全"))
+ .collect(Collectors.toList());
+ return success(collect);
+ }
+
+
+ /**
+ * @description
+ * @author 杜俊岩
+ * @param[1] null
+ * @throws
+ * @time 2024/6/29 14:14
+ * 异常类型
+ */
+ @GetMapping("/errorType")
+ @ApiOperation("异常类型")
+ public AjaxResult errorType() {
+ //根据异常id进行修改状态
+ List ruleTwo = tbSafeRuleService.getRuleTwo();
+ return success(ruleTwo);
+ }
+
+
+
+
+ /**
+ * @description
+ * @author 杜俊岩
+ * @param[1] null
+ * @throws
+ * @time 2024/6/29 11:06
+ * 获取登录人员信息
+ */
+ public String getLoginUserInfo(){
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ //获取登陆人员所在公司
+ return loginUser.getUser().getCompanyName();
+ }
+ @GetMapping("/getLoginUserInfo")
+ @ApiOperation("获取公司基本信息")
+ public TbCompanyInfo getLoginUserCompanyInfo(){
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ //获取登陆人员所在公司
+ return tbCompanyInfoService.getOne(new LambdaQueryWrapper().eq(TbCompanyInfo::getCompanyName, loginUser.getUser().getCompanyName()));
+ }
+
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.java
new file mode 100644
index 0000000..2c3f099
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.business.enterpriserectification.mapper;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbCompanyInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 章北海
+* @description 针对表【tb_company_info(企业信息)】的数据库操作Mapper
+* @createDate 2024-07-01 21:37:46
+* @Entity com.ruoyi.business.enterpriserectification.pojo.TbCompanyInfo
+*/
+public interface TbCompanyInfoMapper extends BaseMapper {
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.java
new file mode 100644
index 0000000..da524eb
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.business.enterpriserectification.mapper;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScoreDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 章北海
+* @description 针对表【tb_safe_company_statistics_score_detail(企业统计积分明细)】的数据库操作Mapper
+* @createDate 2024-07-02 14:06:55
+* @Entity com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScoreDetail
+*/
+public interface TbSafeCompanyStatisticsScoreDetailMapper extends BaseMapper {
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.java
new file mode 100644
index 0000000..8265ef5
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.business.enterpriserectification.mapper;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScore;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 章北海
+* @description 针对表【tb_safe_company_statistics_score(企业统计积分)】的数据库操作Mapper
+* @createDate 2024-07-02 14:36:31
+* @Entity com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScore
+*/
+public interface TbSafeCompanyStatisticsScoreMapper extends BaseMapper {
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.java
new file mode 100644
index 0000000..3c6ad18
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.business.enterpriserectification.mapper;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbSafeRule;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 章北海
+* @description 针对表【tb_safe_rule(平安企业规则名表)】的数据库操作Mapper
+* @createDate 2024-07-02 11:09:54
+* @Entity com.ruoyi.business.enterpriserectification.pojo.TbSafeRule
+*/
+public interface TbSafeRuleMapper extends BaseMapper {
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.java
new file mode 100644
index 0000000..2668cc7
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.business.enterpriserectification.mapper;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbSpecialCountRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 章北海
+* @description 针对表【tb_special_count_record(企业综合指数记录表)】的数据库操作Mapper
+* @createDate 2024-07-01 19:21:53
+* @Entity com.ruoyi.business.enterpriserectification.pojo.TbSpecialCountRecord
+*/
+public interface TbSpecialCountRecordMapper extends BaseMapper {
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.java
new file mode 100644
index 0000000..ce25eee
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.business.enterpriserectification.mapper;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbSynergismEnterpriseSupervision;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author 章北海
+* @description 针对表【tb_synergism_enterprise_supervision(企业监管表)】的数据库操作Mapper
+* @createDate 2024-07-01 19:21:53
+* @Entity com.ruoyi.business.enterpriserectification.pojo.TbSynergismEnterpriseSupervision
+*/
+public interface TbSynergismEnterpriseSupervisionMapper extends BaseMapper {
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.java
new file mode 100644
index 0000000..2892812
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.java
@@ -0,0 +1,97 @@
+package com.ruoyi.business.enterpriserectification.pojo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import javax.validation.constraints.NotNull;
+
+import java.io.Serializable;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.system.until.EntiyUntil;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+/**
+* 企业信息
+* @TableName tb_company_info
+*/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "tb_company_info")
+public class TbCompanyInfo extends EntiyUntil {
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ private Long id;
+ /**
+ * 公司名称
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("公司名称")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String companyName;
+ /**
+ * 公司类型
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("公司类型")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String companyType;
+ /**
+ * 统一社会信用代码
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("统一社会信用代码")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String socialCreditCode;
+ /**
+ * 企业性质
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("企业性质")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String companyNature;
+ /**
+ * 成立日期
+ */
+ @ApiModelProperty("成立日期")
+ private Date establishDate;
+ /**
+ * 营业期限
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("营业期限")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String businessTermDate;
+ /**
+ * 企业登记注册地
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("企业登记注册地")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String registerAddress;
+ /**
+ * 企业经营状态
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("企业经营状态")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String businessStatus;
+ /**
+ * 企业法定代表人
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("企业法定代表人")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String legalPerson;
+
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.java
new file mode 100644
index 0000000..c0b6ba3
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.java
@@ -0,0 +1,123 @@
+package com.ruoyi.business.enterpriserectification.pojo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import javax.validation.constraints.NotNull;
+
+import java.io.Serializable;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.system.until.EntiyUntil;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+/**
+* 企业统计积分
+* @TableName tb_safe_company_statistics_score
+*/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "tb_safe_company_statistics_score")
+public class TbSafeCompanyStatisticsScore extends EntiyUntil {
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ private Long id;
+ /**
+ * 企业id
+ */
+ @ApiModelProperty("企业id")
+ private Long companyId;
+ /**
+ * 规则项对应积分
+ */
+ @ApiModelProperty("规则项对应积分")
+ private Double score;
+ /**
+ * 积分类型 month season year
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("积分类型 month season year")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String scoreType;
+ /**
+ * 积分所属时间 2023-01 2023-03 2023
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("积分所属时间 2023-01 2023-03 2023")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String statisticsDate;
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+ /**
+ * 创建者
+ */
+ @ApiModelProperty("创建者")
+ private Integer createBy;
+ /**
+ * 更新时间
+ */
+ @ApiModelProperty("更新时间")
+ private Date updateTime;
+ /**
+ * 更新者
+ */
+ @ApiModelProperty("更新者")
+ private Integer updateBy;
+ /**
+ * 0:不活跃,1:活跃
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("0:不活跃,1:活跃")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String isActive;
+ /**
+ * 扩展字段c1
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c1")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c1;
+ /**
+ * 扩展字段c2
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c2")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c2;
+ /**
+ * 扩展字段c3
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c3")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c3;
+ /**
+ * 扩展字段c4
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c4")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c4;
+ /**
+ * 扩展字段c5
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c5")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c5;
+
+
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.java
new file mode 100644
index 0000000..f537165
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.java
@@ -0,0 +1,159 @@
+package com.ruoyi.business.enterpriserectification.pojo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import javax.validation.constraints.NotNull;
+
+import java.io.Serializable;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.system.until.EntiyUntil;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+/**
+* 企业统计积分明细
+* @TableName tb_safe_company_statistics_score_detail
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "tb_safe_company_statistics_score_detail")
+public class TbSafeCompanyStatisticsScoreDetail extends EntiyUntil {
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ private Long id;
+ /**
+ * 规则id,tb_safe_rule主键id
+ */
+ @ApiModelProperty("规则id,tb_safe_rule主键id")
+ private Long safeRuleId;
+ /**
+ * 企业id
+ */
+ @ApiModelProperty("企业id")
+ private Long companyId;
+ /**
+ * 指标等级,字典:0->综合指数算法,1->一级指标,2->二级指标,3->三级指标
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("指标等级,字典:0->综合指数算法,1->一级指标,2->二级指标,3->三级指标")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String levelIndex;
+ /**
+ * 一级指标名称
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("一级指标名称")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String levelIndexOne;
+ /**
+ * 二级指标名称
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("二级指标名称")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String levelIndexTwo;
+ /**
+ * 三级指标名称
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("三级指标名称")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String levelIndexThree;
+ /**
+ * 规则项对应积分
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("规则项对应积分")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String score;
+ /**
+ * 积分类型 month season year
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("积分类型 month season year")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String scoreType;
+ /**
+ * 积分所属时间 2023-01 2023-03 2023
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("积分所属时间 2023-01 2023-03 2023")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String statisticsDate;
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+ /**
+ * 创建者
+ */
+ @ApiModelProperty("创建者")
+ private Integer createBy;
+ /**
+ * 更新时间
+ */
+ @ApiModelProperty("更新时间")
+ private Date updateTime;
+ /**
+ * 更新者
+ */
+ @ApiModelProperty("更新者")
+ private Integer updateBy;
+ /**
+ * 0:不活跃,1:活跃
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("0:不活跃,1:活跃")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String isActive;
+ /**
+ * 扩展字段c1
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c1")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c1;
+ /**
+ * 扩展字段c2
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c2")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c2;
+ /**
+ * 扩展字段c3
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c3")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c3;
+ /**
+ * 扩展字段c4
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c4")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c4;
+ /**
+ * 扩展字段c5
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c5")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c5;
+
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.java
new file mode 100644
index 0000000..be3d158
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.java
@@ -0,0 +1,146 @@
+package com.ruoyi.business.enterpriserectification.pojo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import javax.validation.constraints.NotNull;
+
+import java.io.Serializable;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+/**
+* 平安企业规则名表
+* @TableName tb_safe_rule
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "tb_safe_rule")
+public class TbSafeRule implements Serializable {
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ private Long id;
+ /**
+ * 一级指标名称
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("一级指标名称")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String levelIndexOne;
+ /**
+ * 二级指标名称
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("二级指标名称")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String levelIndexTwo;
+ /**
+ * 三级指标名称
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("三级指标名称")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String levelIndexThree;
+ /**
+ * 规则备注
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("规则备注")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String note;
+ /**
+ * 指标等级,字典:0->综合指数算法,1->一级指标,2->二级指标,3->三级指标
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("指标等级,字典:0->综合指数算法,1->一级指标,2->二级指标,3->三级指标")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String levelIndex;
+ /**
+ * 排序字段
+ */
+ @ApiModelProperty("排序字段")
+ private Integer sortValue;
+ /**
+ * 是否是区间页面,字典:1->是,2->否
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("是否是区间页面,字典:1->是,2->否")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String isRangePage;
+ /**
+ * 创建时间
+ */
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+ /**
+ * 创建者
+ */
+ @ApiModelProperty("创建者")
+ private Integer createBy;
+ /**
+ * 更新时间
+ */
+ @ApiModelProperty("更新时间")
+ private Date updateTime;
+ /**
+ * 更新者
+ */
+ @ApiModelProperty("更新者")
+ private Integer updateBy;
+ /**
+ * 0:不活跃,1:活跃
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("0:不活跃,1:活跃")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String isActive;
+ /**
+ * 扩展字段c1
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c1")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c1;
+ /**
+ * 扩展字段c2
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c2")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c2;
+ /**
+ * 扩展字段c3
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c3")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c3;
+ /**
+ * 扩展字段c4
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c4")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c4;
+ /**
+ * 扩展字段c5
+ */
+ @Size(max= 100,message="编码长度不能超过100")
+ @ApiModelProperty("扩展字段c5")
+ @Length(max= 100,message="编码长度不能超过100")
+ private String c5;
+
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.java
new file mode 100644
index 0000000..2710e0c
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.java
@@ -0,0 +1,88 @@
+package com.ruoyi.business.enterpriserectification.pojo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import javax.validation.constraints.NotNull;
+
+import java.io.Serializable;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.system.until.EntiyUntil;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+/**
+* 企业综合指数记录表
+* @TableName tb_special_count_record
+*/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "tb_special_count_record")
+public class TbSpecialCountRecord extends EntiyUntil {
+
+ /**
+ * 主键
+ */
+ @ApiModelProperty("主键")
+ private Long id;
+ /**
+ * 公司编号
+ */
+ @Size(max= 32,message="编码长度不能超过32")
+ @ApiModelProperty("公司编号")
+ @Length(max= 32,message="编码长度不能超过32")
+ private String companyId;
+ /**
+ * 公司名称
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("公司名称")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String companyName;
+ /**
+ * 创建日期
+ */
+ @ApiModelProperty("创建日期")
+ private Date countTime;
+ /**
+ * 综合指数
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("综合指数")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String companyGh;
+ /**
+ * 综合指数(月)
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("综合指数(月)")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String companyGhMonth;
+ /**
+ * 综合指数(季)
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("综合指数(季)")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String companyGhSeason;
+ /**
+ * 综合指数(年)
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("综合指数(年)")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String companyGhYear;
+ /**
+ * 更新时间
+ */
+ @ApiModelProperty("更新时间")
+ private Date updateTime;
+
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.java
new file mode 100644
index 0000000..5762721
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.java
@@ -0,0 +1,280 @@
+package com.ruoyi.business.enterpriserectification.pojo;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import javax.validation.constraints.NotNull;
+
+import java.io.Serializable;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.system.until.EntiyUntil;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+/**
+* 企业监管表
+* @TableName tb_synergism_enterprise_supervision
+*/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "tb_synergism_enterprise_supervision")
+public class TbSynergismEnterpriseSupervision extends EntiyUntil {
+
+ /**
+ * 主键ID
+ */
+ @ApiModelProperty("主键ID")
+ private Long id;
+ /**
+ * 企业名称
+ */
+ @NotBlank(message="[企业名称]不能为空")
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("企业名称")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String enterpriseName;
+ /**
+ * 企业类型
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("企业类型")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String enterpriseType;
+ /**
+ * 企业所属街道
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("企业所属街道")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String enterpriseStreet;
+ /**
+ * 纳入监管时间
+ */
+ @ApiModelProperty("纳入监管时间")
+ private Date includedSupervisionTime;
+ /**
+ * 清单生成时间
+ */
+ @ApiModelProperty("清单生成时间")
+ private Date checklistGenerationTime;
+ /**
+ * 整改截止日期
+ */
+ @ApiModelProperty("整改截止日期")
+ private Date rectificationDeadline;
+ /**
+ * 整改状态
+ */
+ @Size(max= 50,message="编码长度不能超过50")
+ @ApiModelProperty("整改状态")
+ @Length(max= 50,message="编码长度不能超过50")
+ private String rectificationStatus;
+ /**
+ * 管控扣分项
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("管控扣分项")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String controlDeductionItem;
+ /**
+ * 连续扣分项
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("连续扣分项")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String continuousDeductionItem;
+ /**
+ * 纳入监管次数
+ */
+ @ApiModelProperty("纳入监管次数")
+ private Integer supervisionTimes;
+ /**
+ * 连续纳入监管次数
+ */
+ @ApiModelProperty("连续纳入监管次数")
+ private Integer continuousSupervisionTimes;
+ /**
+ * 要素异常明细
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("要素异常明细")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String elementAbnormalDetail;
+ /**
+ * 整改结果
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("整改结果")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String rectificationResult;
+ /**
+ * 申诉核实无需整改
+ */
+ @Size(max= 5,message="编码长度不能超过5")
+ @ApiModelProperty("申诉核实无需整改")
+ @Length(max= 5,message="编码长度不能超过5")
+ private String appealVerificationNotNeeded;
+ /**
+ * 超期提醒(绑定相应id)
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("超期提醒(绑定相应id)")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String overdueReminder;
+ /**
+ * 挂牌督办(绑定挂牌id)
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("挂牌督办(绑定挂牌id)")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String listedSupervision;
+ /**
+ * 各单位分工责任
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("各单位分工责任")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String unitDivisionResponsibility;
+ /**
+ * 监管单位
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("监管单位")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String supervisionUnit;
+ /**
+ * 处置方式
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("处置方式")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String disposalMethod;
+ /**
+ * 处置要求
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("处置要求")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String disposalRequirement;
+ /**
+ * 整改要求
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("整改要求")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String rectificationRequirement;
+ /**
+ * 紧急程度
+ */
+ @Size(max= 50,message="编码长度不能超过50")
+ @ApiModelProperty("紧急程度")
+ @Length(max= 50,message="编码长度不能超过50")
+ private String urgencyLevel;
+ /**
+ * 责任人
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("责任人")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String responsiblePerson;
+ /**
+ * 备注
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("备注")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String remarks;
+ /**
+ * 创建时间
+ */
+ @NotNull(message="[创建时间]不能为空")
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+ /**
+ * 创建者
+ */
+ @ApiModelProperty("创建者")
+ private Integer createBy;
+ /**
+ * 更新时间
+ */
+ @ApiModelProperty("更新时间")
+ private Date updateTime;
+ /**
+ * 更新者
+ */
+ @ApiModelProperty("更新者")
+ private Integer updateBy;
+ /**
+ * 0:不活跃;1:活跃
+ */
+ @Size(max= -1,message="编码长度不能超过-1")
+ @ApiModelProperty("0:不活跃;1:活跃")
+ @Length(max= -1,message="编码长度不能超过-1")
+ private String isActive;
+ /**
+ * 是否为重点问题
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("是否为重点问题")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String isFocus;
+ /**
+ * 流程关联id
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("流程关联id")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String definitionId;
+ /**
+ * 整改结果详情
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("整改结果详情")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String rectificationResultDefult;
+ /**
+ * 连续未整改次数
+ */
+ @ApiModelProperty("连续未整改次数")
+ private Integer rectificationNoNum;
+ /**
+ * 是否超期整改
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("是否超期整改")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String isOverdueReminder;
+ /**
+ * 是否挂牌督办
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("是否挂牌督办")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String isListedSupervision;
+ /**
+ * 异常规则id
+ */
+ @Size(max= 255,message="编码长度不能超过255")
+ @ApiModelProperty("异常规则id")
+ @Length(max= 255,message="编码长度不能超过255")
+ private String safeRuleId;
+
+
+ @TableField(exist = false)
+ @ApiModelProperty("整改结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date endTime;
+
+
+
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.java
new file mode 100644
index 0000000..0570433
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.business.enterpriserectification.service;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbCompanyInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 章北海
+* @description 针对表【tb_company_info(企业信息)】的数据库操作Service
+* @createDate 2024-07-01 21:37:46
+*/
+public interface TbCompanyInfoService extends IService {
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.java
new file mode 100644
index 0000000..800ff03
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.business.enterpriserectification.service;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScoreDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 章北海
+* @description 针对表【tb_safe_company_statistics_score_detail(企业统计积分明细)】的数据库操作Service
+* @createDate 2024-07-02 14:06:55
+*/
+public interface TbSafeCompanyStatisticsScoreDetailService extends IService {
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.java
new file mode 100644
index 0000000..8c4ddfb
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.business.enterpriserectification.service;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScore;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 章北海
+* @description 针对表【tb_safe_company_statistics_score(企业统计积分)】的数据库操作Service
+* @createDate 2024-07-02 14:36:31
+*/
+public interface TbSafeCompanyStatisticsScoreService extends IService {
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.java
new file mode 100644
index 0000000..89c3d43
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.java
@@ -0,0 +1,20 @@
+package com.ruoyi.business.enterpriserectification.service;
+
+import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleOneVo;
+import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleTwoVo;
+import com.ruoyi.business.enterpriserectification.pojo.TbSafeRule;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+* @author 章北海
+* @description 针对表【tb_safe_rule(平安企业规则名表)】的数据库操作Service
+* @createDate 2024-07-02 11:09:54
+*/
+public interface TbSafeRuleService extends IService {
+ List getRuleOne();
+
+ List getRuleTwo();
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.java
new file mode 100644
index 0000000..e6ba846
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.business.enterpriserectification.service;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbSpecialCountRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 章北海
+* @description 针对表【tb_special_count_record(企业综合指数记录表)】的数据库操作Service
+* @createDate 2024-07-01 19:21:53
+*/
+public interface TbSpecialCountRecordService extends IService {
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.java
new file mode 100644
index 0000000..c18deb7
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.business.enterpriserectification.service;
+
+import com.ruoyi.business.enterpriserectification.pojo.TbSynergismEnterpriseSupervision;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author 章北海
+* @description 针对表【tb_synergism_enterprise_supervision(企业监管表)】的数据库操作Service
+* @createDate 2024-07-01 19:21:53
+*/
+public interface TbSynergismEnterpriseSupervisionService extends IService {
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.java
new file mode 100644
index 0000000..f1113b3
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.java
@@ -0,0 +1,24 @@
+package com.ruoyi.business.enterpriserectification.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.business.enterpriserectification.pojo.TbCompanyInfo;
+import com.ruoyi.business.enterpriserectification.service.TbCompanyInfoService;
+import com.ruoyi.business.enterpriserectification.mapper.TbCompanyInfoMapper;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import org.springframework.stereotype.Service;
+
+/**
+* @author 章北海
+* @description 针对表【tb_company_info(企业信息)】的数据库操作Service实现
+* @createDate 2024-07-01 21:37:46
+*/
+@Service
+public class TbCompanyInfoServiceImpl extends ServiceImpl
+ implements TbCompanyInfoService{
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.java
new file mode 100644
index 0000000..32f0631
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.java
@@ -0,0 +1,25 @@
+package com.ruoyi.business.enterpriserectification.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScoreDetail;
+import com.ruoyi.business.enterpriserectification.service.TbSafeCompanyStatisticsScoreDetailService;
+import com.ruoyi.business.enterpriserectification.mapper.TbSafeCompanyStatisticsScoreDetailMapper;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import org.springframework.stereotype.Service;
+
+/**
+* @author 章北海
+* @description 针对表【tb_safe_company_statistics_score_detail(企业统计积分明细)】的数据库操作Service实现
+* @createDate 2024-07-02 14:06:55
+*/
+@Service
+@DataSource(value = DataSourceType.SLAVE)
+public class TbSafeCompanyStatisticsScoreDetailServiceImpl extends ServiceImpl
+ implements TbSafeCompanyStatisticsScoreDetailService{
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.java
new file mode 100644
index 0000000..df644b5
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.java
@@ -0,0 +1,25 @@
+package com.ruoyi.business.enterpriserectification.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.business.enterpriserectification.pojo.TbSafeCompanyStatisticsScore;
+import com.ruoyi.business.enterpriserectification.service.TbSafeCompanyStatisticsScoreService;
+import com.ruoyi.business.enterpriserectification.mapper.TbSafeCompanyStatisticsScoreMapper;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import org.springframework.stereotype.Service;
+
+/**
+* @author 章北海
+* @description 针对表【tb_safe_company_statistics_score(企业统计积分)】的数据库操作Service实现
+* @createDate 2024-07-02 14:36:31
+*/
+@Service
+@DataSource(value = DataSourceType.SLAVE)
+public class TbSafeCompanyStatisticsScoreServiceImpl extends ServiceImpl
+ implements TbSafeCompanyStatisticsScoreService{
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.java
new file mode 100644
index 0000000..c0eade7
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.java
@@ -0,0 +1,133 @@
+package com.ruoyi.business.enterpriserectification.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleOneVo;
+import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleThreeVo;
+import com.ruoyi.business.enterpriserectification.bo.TbSafeRuleTwoVo;
+import com.ruoyi.business.enterpriserectification.pojo.TbSafeRule;
+import com.ruoyi.business.enterpriserectification.service.TbSafeRuleService;
+import com.ruoyi.business.enterpriserectification.mapper.TbSafeRuleMapper;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.system.until.NbConstants;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+* @author 章北海
+* @description 针对表【tb_safe_rule(平安企业规则名表)】的数据库操作Service实现
+* @createDate 2024-07-02 11:09:54
+*/
+@Service
+@DataSource(value = DataSourceType.SLAVE)
+public class TbSafeRuleServiceImpl extends ServiceImpl
+ implements TbSafeRuleService{
+
+ @Override
+ public List getRuleOne() {
+ QueryWrapper queryWrapper = Wrappers.query();
+ //查询出所有规则名表
+ List tbSafeRuleList = this.list(queryWrapper);
+ List list = new ArrayList<>();
+ if (null == tbSafeRuleList || tbSafeRuleList.size() == 0) {
+ return list;
+ }
+ for (TbSafeRule tbSafeRule : tbSafeRuleList) {
+ if (NbConstants.LEVEL_INDEX_ONE == Integer.parseInt(tbSafeRule.getLevelIndex())) {
+ TbSafeRuleOneVo tbSafeRuleOneVo = new TbSafeRuleOneVo();
+ tbSafeRuleOneVo.setId(tbSafeRule.getId());
+ tbSafeRuleOneVo.setLevelIndex(NbConstants.LEVEL_INDEX_ONE);
+ tbSafeRuleOneVo.setLevelIndexOne(tbSafeRule.getLevelIndexOne());
+ tbSafeRuleOneVo.setLevelIndexTwo(tbSafeRule.getLevelIndexTwo());
+ tbSafeRuleOneVo.setLevelIndexThree(tbSafeRule.getLevelIndexThree());
+ tbSafeRuleOneVo.setNote(tbSafeRule.getNote());
+ tbSafeRuleOneVo.setTbSafeRuleTwoVoList(null);
+ list.add(tbSafeRuleOneVo);
+ }
+ }
+ for (TbSafeRuleOneVo tbSafeRuleOneVo : list) {
+ tbSafeRuleOneVo.setTbSafeRuleTwoVoList(getTbSafeRuleTwoVoList(tbSafeRuleList, tbSafeRuleOneVo));
+ }
+ return list;
+ }
+
+ @Override
+ public List getRuleTwo() {
+ QueryWrapper queryWrapper = Wrappers.query();
+ //查询出所有规则名表
+ List tbSafeRuleList = this.list(queryWrapper);
+ List list = new ArrayList<>();
+ if (null == tbSafeRuleList || tbSafeRuleList.size() == 0) {
+ return list;
+ }
+ for (TbSafeRule tbSafeRule : tbSafeRuleList) {
+ if (NbConstants.LEVEL_INDEX_TWO == Integer.parseInt(tbSafeRule.getLevelIndex())
+ && !"防疫安全".equals(tbSafeRule.getLevelIndexOne())) {
+ TbSafeRuleTwoVo tbSafeRuleTwoVo = new TbSafeRuleTwoVo();
+ tbSafeRuleTwoVo.setId(tbSafeRule.getId());
+ tbSafeRuleTwoVo.setLevelIndex(NbConstants.LEVEL_INDEX_TWO);
+ tbSafeRuleTwoVo.setLevelIndexOne(tbSafeRule.getLevelIndexOne());
+ tbSafeRuleTwoVo.setLevelIndexTwo(tbSafeRule.getLevelIndexTwo());
+ tbSafeRuleTwoVo.setLevelIndexThree(tbSafeRule.getLevelIndexThree());
+ tbSafeRuleTwoVo.setNote(tbSafeRule.getNote());
+ tbSafeRuleTwoVo.setTbSafeRuleThreeVoList(null);
+ list.add(tbSafeRuleTwoVo);
+ }
+ }
+ for (TbSafeRuleTwoVo tbSafeRuleTwoVo : list) {
+ tbSafeRuleTwoVo.setTbSafeRuleThreeVoList(getTbSafeRuleTwoVo(tbSafeRuleList, tbSafeRuleTwoVo));
+ }
+ return list;
+ }
+
+ /**
+ * 二级
+ */
+ private List getTbSafeRuleTwoVoList(List tbSafeRuleList, TbSafeRuleOneVo tbSafeRuleOneVo) {
+ List tbSafeRuleTwoVoList = new ArrayList<>();
+ for (TbSafeRule tbSafeRule : tbSafeRuleList) {
+ if (NbConstants.LEVEL_INDEX_TWO == Integer.parseInt(tbSafeRule.getLevelIndex())
+ && tbSafeRuleOneVo.getLevelIndexOne().equals(tbSafeRule.getLevelIndexOne())) {
+ TbSafeRuleTwoVo tbSafeRuleTwoVo = new TbSafeRuleTwoVo();
+ tbSafeRuleTwoVo.setId(tbSafeRule.getId());
+ tbSafeRuleTwoVo.setLevelIndex(NbConstants.LEVEL_INDEX_TWO);
+ tbSafeRuleTwoVo.setLevelIndexOne(tbSafeRule.getLevelIndexOne());
+ tbSafeRuleTwoVo.setLevelIndexTwo(tbSafeRule.getLevelIndexTwo());
+ tbSafeRuleTwoVo.setLevelIndexThree(tbSafeRule.getLevelIndexThree());
+ tbSafeRuleTwoVo.setTbSafeRuleThreeVoList(getTbSafeRuleTwoVo(tbSafeRuleList, tbSafeRuleTwoVo));
+ tbSafeRuleTwoVoList.add(tbSafeRuleTwoVo);
+ }
+ }
+ return tbSafeRuleTwoVoList;
+ }
+
+ /**
+ * 三级
+ */
+ private List getTbSafeRuleTwoVo(List tbSafeRuleList, TbSafeRuleTwoVo tbSafeRuleTwoVo) {
+ List tbSafeRuleThreeVoList = new ArrayList<>();
+ for (TbSafeRule tbSafeRule : tbSafeRuleList) {
+ if (NbConstants.LEVEL_INDEX_THREE == Integer.parseInt(tbSafeRule.getLevelIndex())
+ && tbSafeRule.getLevelIndexTwo().equals(tbSafeRuleTwoVo.getLevelIndexTwo())
+ && tbSafeRule.getLevelIndexOne().equals(tbSafeRuleTwoVo.getLevelIndexOne())) {
+ TbSafeRuleThreeVo tbSafeRuleThreeVo = new TbSafeRuleThreeVo();
+ tbSafeRuleThreeVo.setId(tbSafeRule.getId());
+ tbSafeRuleThreeVo.setLevelIndex(NbConstants.LEVEL_INDEX_THREE);
+ tbSafeRuleThreeVo.setLevelIndexOne(tbSafeRule.getLevelIndexOne());
+ tbSafeRuleThreeVo.setLevelIndexTwo(tbSafeRule.getLevelIndexTwo());
+ tbSafeRuleThreeVo.setLevelIndexThree(tbSafeRule.getLevelIndexThree());
+ tbSafeRuleThreeVo.setNote(tbSafeRule.getNote());
+ tbSafeRuleThreeVoList.add(tbSafeRuleThreeVo);
+ }
+ }
+ return tbSafeRuleThreeVoList;
+ }
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.java
new file mode 100644
index 0000000..cdefdf0
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.java
@@ -0,0 +1,25 @@
+package com.ruoyi.business.enterpriserectification.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.business.enterpriserectification.pojo.TbSpecialCountRecord;
+import com.ruoyi.business.enterpriserectification.service.TbSpecialCountRecordService;
+import com.ruoyi.business.enterpriserectification.mapper.TbSpecialCountRecordMapper;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import org.springframework.stereotype.Service;
+
+/**
+* @author 章北海
+* @description 针对表【tb_special_count_record(企业综合指数记录表)】的数据库操作Service实现
+* @createDate 2024-07-01 19:21:53
+*/
+@Service
+@DataSource(value = DataSourceType.SLAVE)
+public class TbSpecialCountRecordServiceImpl extends ServiceImpl
+ implements TbSpecialCountRecordService{
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.java b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.java
new file mode 100644
index 0000000..34011eb
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.java
@@ -0,0 +1,25 @@
+package com.ruoyi.business.enterpriserectification.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.business.enterpriserectification.pojo.TbSynergismEnterpriseSupervision;
+import com.ruoyi.business.enterpriserectification.service.TbSynergismEnterpriseSupervisionService;
+import com.ruoyi.business.enterpriserectification.mapper.TbSynergismEnterpriseSupervisionMapper;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import org.springframework.stereotype.Service;
+
+/**
+* @author 章北海
+* @description 针对表【tb_synergism_enterprise_supervision(企业监管表)】的数据库操作Service实现
+* @createDate 2024-07-01 19:21:53
+*/
+@Service
+@DataSource(value = DataSourceType.SLAVE)
+public class TbSynergismEnterpriseSupervisionServiceImpl extends ServiceImpl
+ implements TbSynergismEnterpriseSupervisionService{
+
+}
+
+
+
+
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/system/enums/RectificationStatusEnum.java b/ruoyi-safecompany/src/main/java/com/ruoyi/system/enums/RectificationStatusEnum.java
new file mode 100644
index 0000000..afc0156
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/system/enums/RectificationStatusEnum.java
@@ -0,0 +1,44 @@
+package com.ruoyi.system.enums;
+
+/*
+ * @User 章北海
+ * @Time 2024/6/29 14:29
+ *
+ */
+public enum RectificationStatusEnum {
+ SUCCESS("0","已完成"),
+ WAIT("1","整改中"),
+ FAIL("2","未完成");
+
+ private String code;
+ private String status;
+
+ RectificationStatusEnum(){
+
+ }
+
+ RectificationStatusEnum(String code, String status) {
+ this.code = code;
+ this.status = status;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ //根据code码获取status
+ public static String getStatusByCode(String code) {
+ for (RectificationStatusEnum statusEnum : RectificationStatusEnum.values()) {
+ if (statusEnum.getCode().equals(code)) {
+ return statusEnum.getStatus();
+ }
+ }
+ return FAIL.getStatus();
+ }
+
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/EntiyUntil.java b/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/EntiyUntil.java
new file mode 100644
index 0000000..dbbceba
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/EntiyUntil.java
@@ -0,0 +1,73 @@
+package com.ruoyi.system.until;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author 杜俊岩
+ * @Date 2024/3/5 10:46
+ * @Version 1.0
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class EntiyUntil implements Serializable {
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+
+ /** 搜索值 */
+ @JsonIgnore
+ @TableField(exist = false)
+ @ApiModelProperty(hidden = true)
+ private String searchValue;
+
+
+ /** 备注 */
+ @TableField(exist = false)
+ @ApiModelProperty(hidden = true)
+ private String remark;
+
+ /** 请求参数 */
+ @JsonInclude(JsonInclude.Include.NON_EMPTY)
+ @TableField(exist = false)
+ @ApiModelProperty(hidden = true)
+ private Map params;
+
+
+
+ @TableField(exist = false)
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private Integer pageNum;
+
+ @TableField(exist = false)
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private Integer pageSize;
+
+ @TableField(exist = false)
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private String perType;
+ @TableField(exist = false)
+ @JsonInclude(JsonInclude.Include.NON_NULL)
+ private String message;
+
+
+
+ public Map getParams()
+ {
+ if (params == null)
+ {
+ params = new HashMap<>();
+ }
+ return params;
+ }
+
+}
diff --git a/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/NbConstants.java b/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/NbConstants.java
new file mode 100644
index 0000000..1eb3b08
--- /dev/null
+++ b/ruoyi-safecompany/src/main/java/com/ruoyi/system/until/NbConstants.java
@@ -0,0 +1,39 @@
+package com.ruoyi.system.until;
+
+/**
+ * 通用常量信息
+ */
+public class NbConstants {
+ /**
+ * 指标等级
+ */
+ public static final Integer LEVEL_INDEX_ZERO = 0;
+ public static final Integer LEVEL_INDEX_ONE = 1;
+ public static final Integer LEVEL_INDEX_TWO = 2;
+ public static final Integer LEVEL_INDEX_THREE = 3;
+
+ public static final String ALARM_RED = "red";
+ public static final String ALARM_YELLOW = "yellow";
+ public static final String ALARM_BLUE = "blue";
+ public static final String ALARM_GREEN = "green";
+
+ public static final String SCORE_TYPE_MONTH = "month";
+ public static final String SCORE_TYPE_SEASON = "season";
+ public static final String SCORE_TYPE_YEAR = "year";
+
+ public static final String CN_YES = "是";
+ public static final String CN_NO = "否";
+
+ /**
+ * 风险等级从高到低划分为重大风险、较大风险、一般风险和低风险四个等级,分别用红、橙、黄、蓝四种颜色标示。
+ * 根据计算模型结果,总分在90分以上(含90分)的为红色;
+ * 75分(含75分)至90分的为橙色;
+ * 60分(含60分)至75分的为黄色;
+ * 60分以下的为蓝色
+ */
+ public static final String RISK_LEVEL_RED = "red";
+ public static final String RISK_LEVEL_ORANGE = "orange";
+ public static final String RISK_LEVEL_YELLOW = "yellow";
+ public static final String RISK_LEVEL_BLUE = "blue";
+
+}
diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbCompanyInfoMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbCompanyInfoMapper.xml
new file mode 100644
index 0000000..bf520f9
--- /dev/null
+++ b/ruoyi-safecompany/src/main/resources/mapper/TbCompanyInfoMapper.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,company_name,company_type,
+ social_credit_code,company_nature,establish_date,
+ business_term_date,register_address,business_status,
+ legal_person,register_capital,business_license_date,
+ register_authority,emergency_contact,emergency_contact_phone,
+ company_address,business_scope,pic_url,
+ longitude,latitude,province_code,
+ province_name,city_code,city_name,
+ area_code,area_name,street_code,
+ street_name,block_code,block_name,
+ police_district,police_district_code,belonging_area,
+ create_time,create_by,update_time,
+ update_by,is_active,c1,
+ c2,c3,c4,
+ c5
+
+
diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml
new file mode 100644
index 0000000..9c0f16f
--- /dev/null
+++ b/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,safe_rule_id,company_id,
+ level_index,level_index_one,level_index_two,
+ level_index_three,score,score_type,
+ statistics_date,create_time,create_by,
+ update_time,update_by,is_active,
+ c1,c2,c3,
+ c4,c5
+
+
diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreMapper.xml
new file mode 100644
index 0000000..8bd4271
--- /dev/null
+++ b/ruoyi-safecompany/src/main/resources/mapper/TbSafeCompanyStatisticsScoreMapper.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,company_id,score,
+ score_type,statistics_date,create_time,
+ create_by,update_time,update_by,
+ is_active,c1,c2,
+ c3,c4,c5
+
+
diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbSafeRuleMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbSafeRuleMapper.xml
new file mode 100644
index 0000000..7e0fc4d
--- /dev/null
+++ b/ruoyi-safecompany/src/main/resources/mapper/TbSafeRuleMapper.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,level_index_one,level_index_two,
+ level_index_three,note,level_index,
+ sort_value,is_range_page,create_time,
+ create_by,update_time,update_by,
+ is_active,c1,c2,
+ c3,c4,c5
+
+
diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbSpecialCountRecordMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbSpecialCountRecordMapper.xml
new file mode 100644
index 0000000..241eccd
--- /dev/null
+++ b/ruoyi-safecompany/src/main/resources/mapper/TbSpecialCountRecordMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,company_id,company_name,
+ count_time,company_gh,company_gh_month,
+ company_gh_season,company_gh_year,update_time
+
+
diff --git a/ruoyi-safecompany/src/main/resources/mapper/TbSynergismEnterpriseSupervisionMapper.xml b/ruoyi-safecompany/src/main/resources/mapper/TbSynergismEnterpriseSupervisionMapper.xml
new file mode 100644
index 0000000..4e9249a
--- /dev/null
+++ b/ruoyi-safecompany/src/main/resources/mapper/TbSynergismEnterpriseSupervisionMapper.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,enterprise_name,enterprise_type,
+ enterprise_street,included_supervision_time,checklist_generation_time,
+ rectification_deadline,rectification_status,control_deduction_item,
+ continuous_deduction_item,supervision_times,continuous_supervision_times,
+ element_abnormal_detail,rectification_result,appeal_verification_not_needed,
+ overdue_reminder,listed_supervision,unit_division_responsibility,
+ supervision_unit,disposal_method,disposal_requirement,
+ rectification_requirement,urgency_level,responsible_person,
+ remarks,create_time,create_by,
+ update_time,update_by,is_active,
+ is_focus,definition_id,rectification_result_defult,
+ rectification_no_num,is_overdue_reminder,is_listed_supervision,
+ safe_rule_id
+
+
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingController.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingController.class
new file mode 100644
index 0000000..1d5cfd8
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingController.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingDetailsController.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingDetailsController.class
new file mode 100644
index 0000000..65bb869
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/controller/TbCompanyInformationReportingDetailsController.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting$Fields.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting$Fields.class
new file mode 100644
index 0000000..6403464
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting$Fields.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting.class
new file mode 100644
index 0000000..2656c91
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReporting.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails$Fields.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails$Fields.class
new file mode 100644
index 0000000..d0b1fb0
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails$Fields.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails.class
new file mode 100644
index 0000000..82a712f
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/domain/TbCompanyInformationReportingDetails.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/mapper/TbCompanyInformationReportingDetailsMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/mapper/TbCompanyInformationReportingDetailsMapper.class
new file mode 100644
index 0000000..7f8dc1b
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/mapper/TbCompanyInformationReportingDetailsMapper.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/mapper/TbCompanyInformationReportingMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/mapper/TbCompanyInformationReportingMapper.class
new file mode 100644
index 0000000..0c4e2cf
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/mapper/TbCompanyInformationReportingMapper.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/ITbCompanyInformationReportingDetailsService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/ITbCompanyInformationReportingDetailsService.class
new file mode 100644
index 0000000..bc062c8
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/ITbCompanyInformationReportingDetailsService.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/ITbCompanyInformationReportingService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/ITbCompanyInformationReportingService.class
new file mode 100644
index 0000000..90c34e0
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/ITbCompanyInformationReportingService.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/impl/TbCompanyInformationReportingDetailsServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/impl/TbCompanyInformationReportingDetailsServiceImpl.class
new file mode 100644
index 0000000..62cebdc
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/impl/TbCompanyInformationReportingDetailsServiceImpl.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/impl/TbCompanyInformationReportingServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/impl/TbCompanyInformationReportingServiceImpl.class
new file mode 100644
index 0000000..eb8f6d8
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/companyInformationReporting/service/impl/TbCompanyInformationReportingServiceImpl.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.class
new file mode 100644
index 0000000..2151a20
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleOneVo.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.class
new file mode 100644
index 0000000..b406b02
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleThreeVo.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.class
new file mode 100644
index 0000000..f1cfc9f
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSafeRuleTwoVo.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.class
new file mode 100644
index 0000000..9d37d6a
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/bo/TbSynergismParmas.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.class
new file mode 100644
index 0000000..f9bb31d
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/controller/TbCompanyRectifictionController.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.class
new file mode 100644
index 0000000..8598f3c
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbCompanyInfoMapper.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.class
new file mode 100644
index 0000000..f1ae3cd
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreDetailMapper.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.class
new file mode 100644
index 0000000..0644157
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeCompanyStatisticsScoreMapper.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.class
new file mode 100644
index 0000000..f2438a5
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSafeRuleMapper.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.class
new file mode 100644
index 0000000..3add152
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSpecialCountRecordMapper.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.class
new file mode 100644
index 0000000..a747514
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/mapper/TbSynergismEnterpriseSupervisionMapper.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.class
new file mode 100644
index 0000000..688a76e
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbCompanyInfo.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.class
new file mode 100644
index 0000000..856fa12
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScore.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.class
new file mode 100644
index 0000000..c01161d
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeCompanyStatisticsScoreDetail.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.class
new file mode 100644
index 0000000..f039769
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSafeRule.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.class
new file mode 100644
index 0000000..09b120c
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSpecialCountRecord.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.class
new file mode 100644
index 0000000..75901d1
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/pojo/TbSynergismEnterpriseSupervision.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.class
new file mode 100644
index 0000000..9265b0f
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbCompanyInfoService.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.class
new file mode 100644
index 0000000..4aeca89
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreDetailService.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.class
new file mode 100644
index 0000000..ea0640c
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeCompanyStatisticsScoreService.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.class
new file mode 100644
index 0000000..ef35bee
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSafeRuleService.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.class
new file mode 100644
index 0000000..21bff0f
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSpecialCountRecordService.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.class
new file mode 100644
index 0000000..54192eb
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/TbSynergismEnterpriseSupervisionService.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.class
new file mode 100644
index 0000000..c677cdd
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbCompanyInfoServiceImpl.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.class
new file mode 100644
index 0000000..73590f5
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreDetailServiceImpl.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.class
new file mode 100644
index 0000000..4d3fec6
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeCompanyStatisticsScoreServiceImpl.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.class
new file mode 100644
index 0000000..42ed97a
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSafeRuleServiceImpl.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.class
new file mode 100644
index 0000000..2e615d2
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSpecialCountRecordServiceImpl.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.class b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.class
new file mode 100644
index 0000000..d4d4162
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/business/enterpriserectification/service/impl/TbSynergismEnterpriseSupervisionServiceImpl.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/system/enums/RectificationStatusEnum.class b/ruoyi-safecompany/target/classes/com/ruoyi/system/enums/RectificationStatusEnum.class
new file mode 100644
index 0000000..8c0e950
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/system/enums/RectificationStatusEnum.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/system/until/EntiyUntil.class b/ruoyi-safecompany/target/classes/com/ruoyi/system/until/EntiyUntil.class
new file mode 100644
index 0000000..d5d6e9f
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/system/until/EntiyUntil.class differ
diff --git a/ruoyi-safecompany/target/classes/com/ruoyi/system/until/NbConstants.class b/ruoyi-safecompany/target/classes/com/ruoyi/system/until/NbConstants.class
new file mode 100644
index 0000000..77237a7
Binary files /dev/null and b/ruoyi-safecompany/target/classes/com/ruoyi/system/until/NbConstants.class differ
diff --git a/ruoyi-safecompany/target/classes/mapper/TbCompanyInfoMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbCompanyInfoMapper.xml
new file mode 100644
index 0000000..bf520f9
--- /dev/null
+++ b/ruoyi-safecompany/target/classes/mapper/TbCompanyInfoMapper.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,company_name,company_type,
+ social_credit_code,company_nature,establish_date,
+ business_term_date,register_address,business_status,
+ legal_person,register_capital,business_license_date,
+ register_authority,emergency_contact,emergency_contact_phone,
+ company_address,business_scope,pic_url,
+ longitude,latitude,province_code,
+ province_name,city_code,city_name,
+ area_code,area_name,street_code,
+ street_name,block_code,block_name,
+ police_district,police_district_code,belonging_area,
+ create_time,create_by,update_time,
+ update_by,is_active,c1,
+ c2,c3,c4,
+ c5
+
+
diff --git a/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml
new file mode 100644
index 0000000..9c0f16f
--- /dev/null
+++ b/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreDetailMapper.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,safe_rule_id,company_id,
+ level_index,level_index_one,level_index_two,
+ level_index_three,score,score_type,
+ statistics_date,create_time,create_by,
+ update_time,update_by,is_active,
+ c1,c2,c3,
+ c4,c5
+
+
diff --git a/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreMapper.xml
new file mode 100644
index 0000000..8bd4271
--- /dev/null
+++ b/ruoyi-safecompany/target/classes/mapper/TbSafeCompanyStatisticsScoreMapper.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,company_id,score,
+ score_type,statistics_date,create_time,
+ create_by,update_time,update_by,
+ is_active,c1,c2,
+ c3,c4,c5
+
+
diff --git a/ruoyi-safecompany/target/classes/mapper/TbSafeRuleMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbSafeRuleMapper.xml
new file mode 100644
index 0000000..7e0fc4d
--- /dev/null
+++ b/ruoyi-safecompany/target/classes/mapper/TbSafeRuleMapper.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,level_index_one,level_index_two,
+ level_index_three,note,level_index,
+ sort_value,is_range_page,create_time,
+ create_by,update_time,update_by,
+ is_active,c1,c2,
+ c3,c4,c5
+
+
diff --git a/ruoyi-safecompany/target/classes/mapper/TbSpecialCountRecordMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbSpecialCountRecordMapper.xml
new file mode 100644
index 0000000..241eccd
--- /dev/null
+++ b/ruoyi-safecompany/target/classes/mapper/TbSpecialCountRecordMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,company_id,company_name,
+ count_time,company_gh,company_gh_month,
+ company_gh_season,company_gh_year,update_time
+
+
diff --git a/ruoyi-safecompany/target/classes/mapper/TbSynergismEnterpriseSupervisionMapper.xml b/ruoyi-safecompany/target/classes/mapper/TbSynergismEnterpriseSupervisionMapper.xml
new file mode 100644
index 0000000..4e9249a
--- /dev/null
+++ b/ruoyi-safecompany/target/classes/mapper/TbSynergismEnterpriseSupervisionMapper.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,enterprise_name,enterprise_type,
+ enterprise_street,included_supervision_time,checklist_generation_time,
+ rectification_deadline,rectification_status,control_deduction_item,
+ continuous_deduction_item,supervision_times,continuous_supervision_times,
+ element_abnormal_detail,rectification_result,appeal_verification_not_needed,
+ overdue_reminder,listed_supervision,unit_division_responsibility,
+ supervision_unit,disposal_method,disposal_requirement,
+ rectification_requirement,urgency_level,responsible_person,
+ remarks,create_time,create_by,
+ update_time,update_by,is_active,
+ is_focus,definition_id,rectification_result_defult,
+ rectification_no_num,is_overdue_reminder,is_listed_supervision,
+ safe_rule_id
+
+
diff --git a/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingDetailsMapper.xml b/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingDetailsMapper.xml
new file mode 100644
index 0000000..96a9509
--- /dev/null
+++ b/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingDetailsMapper.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingMapper.xml b/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingMapper.xml
new file mode 100644
index 0000000..bb49c8b
--- /dev/null
+++ b/ruoyi-safecompany/target/classes/mapper/system/TbCompanyInformationReportingMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-safecompany/target/maven-archiver/pom.properties b/ruoyi-safecompany/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..405e8eb
--- /dev/null
+++ b/ruoyi-safecompany/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Jul 05 19:29:59 CST 2024
+version=3.8.5
+groupId=com.ruoyi
+artifactId=ruoyi-safecompany
diff --git a/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..29c83e5
--- /dev/null
+++ b/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,44 @@
+com\ruoyi\business\enterpriserectification\service\TbSynergismEnterpriseSupervisionService.class
+com\ruoyi\business\enterpriserectification\service\TbSafeRuleService.class
+com\ruoyi\business\enterpriserectification\pojo\TbCompanyInfo.class
+com\ruoyi\business\enterpriserectification\bo\TbSynergismParmas.class
+com\ruoyi\business\enterpriserectification\pojo\TbSpecialCountRecord.class
+com\ruoyi\system\enums\RectificationStatusEnum.class
+com\ruoyi\business\enterpriserectification\bo\TbSafeRuleTwoVo.class
+com\ruoyi\business\enterpriserectification\service\TbSafeCompanyStatisticsScoreDetailService.class
+com\ruoyi\business\enterpriserectification\service\TbCompanyInfoService.class
+com\ruoyi\business\enterpriserectification\mapper\TbSafeCompanyStatisticsScoreDetailMapper.class
+com\ruoyi\system\until\NbConstants.class
+com\ruoyi\business\enterpriserectification\service\impl\TbSafeCompanyStatisticsScoreDetailServiceImpl.class
+com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReporting$Fields.class
+com\ruoyi\business\enterpriserectification\mapper\TbSafeRuleMapper.class
+com\ruoyi\business\enterpriserectification\bo\TbSafeRuleThreeVo.class
+com\ruoyi\business\enterpriserectification\pojo\TbSafeCompanyStatisticsScoreDetail.class
+com\ruoyi\business\enterpriserectification\pojo\TbSafeRule.class
+com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReporting.class
+com\ruoyi\business\companyInformationReporting\controller\TbCompanyInformationReportingDetailsController.class
+com\ruoyi\business\enterpriserectification\service\impl\TbCompanyInfoServiceImpl.class
+com\ruoyi\business\companyInformationReporting\service\ITbCompanyInformationReportingService.class
+com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReportingDetails$Fields.class
+com\ruoyi\business\companyInformationReporting\service\impl\TbCompanyInformationReportingDetailsServiceImpl.class
+com\ruoyi\business\enterpriserectification\mapper\TbSafeCompanyStatisticsScoreMapper.class
+com\ruoyi\business\enterpriserectification\controller\TbCompanyRectifictionController.class
+com\ruoyi\business\enterpriserectification\mapper\TbCompanyInfoMapper.class
+com\ruoyi\business\companyInformationReporting\service\ITbCompanyInformationReportingDetailsService.class
+com\ruoyi\business\enterpriserectification\service\TbSafeCompanyStatisticsScoreService.class
+com\ruoyi\system\until\EntiyUntil.class
+com\ruoyi\business\enterpriserectification\service\impl\TbSynergismEnterpriseSupervisionServiceImpl.class
+com\ruoyi\business\enterpriserectification\service\TbSpecialCountRecordService.class
+com\ruoyi\business\companyInformationReporting\mapper\TbCompanyInformationReportingDetailsMapper.class
+com\ruoyi\business\enterpriserectification\service\impl\TbSpecialCountRecordServiceImpl.class
+com\ruoyi\business\companyInformationReporting\mapper\TbCompanyInformationReportingMapper.class
+com\ruoyi\business\enterpriserectification\service\impl\TbSafeRuleServiceImpl.class
+com\ruoyi\business\enterpriserectification\pojo\TbSynergismEnterpriseSupervision.class
+com\ruoyi\business\enterpriserectification\mapper\TbSynergismEnterpriseSupervisionMapper.class
+com\ruoyi\business\enterpriserectification\pojo\TbSafeCompanyStatisticsScore.class
+com\ruoyi\business\companyInformationReporting\service\impl\TbCompanyInformationReportingServiceImpl.class
+com\ruoyi\business\enterpriserectification\bo\TbSafeRuleOneVo.class
+com\ruoyi\business\enterpriserectification\service\impl\TbSafeCompanyStatisticsScoreServiceImpl.class
+com\ruoyi\business\companyInformationReporting\controller\TbCompanyInformationReportingController.class
+com\ruoyi\business\enterpriserectification\mapper\TbSpecialCountRecordMapper.class
+com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReportingDetails.class
diff --git a/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..80377da
--- /dev/null
+++ b/ruoyi-safecompany/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,42 @@
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbSynergismEnterpriseSupervision.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbSafeCompanyStatisticsScoreServiceImpl.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbSafeCompanyStatisticsScoreMapper.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\system\until\NbConstants.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\service\ITbCompanyInformationReportingService.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbSafeRuleMapper.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\bo\TbSafeRuleOneVo.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\controller\TbCompanyInformationReportingController.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbSafeCompanyStatisticsScoreDetailService.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbCompanyInfoService.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\service\impl\TbCompanyInformationReportingDetailsServiceImpl.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbCompanyInfo.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbSpecialCountRecordService.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\system\enums\RectificationStatusEnum.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\controller\TbCompanyRectifictionController.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\system\until\EntiyUntil.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\mapper\TbCompanyInformationReportingDetailsMapper.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbSafeRuleService.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbSynergismEnterpriseSupervisionService.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\service\ITbCompanyInformationReportingDetailsService.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbCompanyInfoServiceImpl.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbSafeCompanyStatisticsScoreDetailServiceImpl.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\controller\TbCompanyInformationReportingDetailsController.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbSafeCompanyStatisticsScoreDetail.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReportingDetails.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\mapper\TbCompanyInformationReportingMapper.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\bo\TbSafeRuleTwoVo.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbSpecialCountRecord.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbSafeRuleServiceImpl.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\service\impl\TbCompanyInformationReportingServiceImpl.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbCompanyInfoMapper.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbSpecialCountRecordMapper.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbSpecialCountRecordServiceImpl.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbSynergismEnterpriseSupervisionMapper.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\TbSafeCompanyStatisticsScoreService.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\bo\TbSafeRuleThreeVo.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\bo\TbSynergismParmas.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\service\impl\TbSynergismEnterpriseSupervisionServiceImpl.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbSafeCompanyStatisticsScore.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\mapper\TbSafeCompanyStatisticsScoreDetailMapper.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\companyInformationReporting\domain\TbCompanyInformationReporting.java
+F:\A1\RuoYi-Vue3-Saas\ruoyi-safecompany\src\main\java\com\ruoyi\business\enterpriserectification\pojo\TbSafeRule.java
diff --git a/ruoyi-safecompany/target/ruoyi-safecompany-3.8.5.jar b/ruoyi-safecompany/target/ruoyi-safecompany-3.8.5.jar
new file mode 100644
index 0000000..5a98259
Binary files /dev/null and b/ruoyi-safecompany/target/ruoyi-safecompany-3.8.5.jar differ
diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml
index e019b34..fa67de7 100644
--- a/ruoyi-system/pom.xml
+++ b/ruoyi-system/pom.xml
@@ -41,6 +41,7 @@
compile
+
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 76e1c79..8b78eff 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -124,4 +124,6 @@ public interface SysUserMapper
* @return 结果
*/
public SysUser checkEmailUnique(String email);
+
+ SysUser selectUserByPhonenumber(String phoneNumber);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index 10bc2ab..2e32f57 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -203,4 +203,14 @@ public interface ISysUserService
* @return 结果
*/
public String importUser(List userList, Boolean isUpdateSupport, String operName);
+
+ /**
+ * 根据手机号查询用户
+ * @param phoneNumber 手机号
+ * @author 杜俊岩
+ * @param[1] null
+ * @throws
+ * @time 2024/7/5 15:01
+ */
+ public SysUser selectUserByPhonenumber(String phoneNumber);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 41bd2db..e49677d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -547,4 +547,9 @@ public class SysUserServiceImpl implements ISysUserService
}
return successMsg.toString();
}
+
+ @Override
+ public SysUser selectUserByPhonenumber(String phoneNumber) {
+ return userMapper.selectUserByPhonenumber(phoneNumber);
+ }
}
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index fb44dc0..40d4bab 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -25,6 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
@@ -49,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phone_number, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.tenant_id, u.user_type,
+ select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phone_number, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.tenant_id, u.user_type,u.company_name,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
@@ -152,6 +153,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
insert into sys_user(
diff --git a/ruoyi-ui-vue3/.env.development b/ruoyi-ui-vue3/.env.development
index af9ba00..7b59769 100644
--- a/ruoyi-ui-vue3/.env.development
+++ b/ruoyi-ui-vue3/.env.development
@@ -1,5 +1,5 @@
# 页面标题
-VITE_APP_TITLE = 若依管理系统
+VITE_APP_TITLE = 安惠商企管理系统
# 开发环境配置
VITE_APP_ENV = 'development'
diff --git a/ruoyi-ui-vue3/index.html b/ruoyi-ui-vue3/index.html
index d20d02e..73b634a 100644
--- a/ruoyi-ui-vue3/index.html
+++ b/ruoyi-ui-vue3/index.html
@@ -7,7 +7,7 @@
- 若依管理系统
+ 安惠商企管理系统