Browse Source

执法登记列表&详情优化

dev-V1.0.1
ganhao 4 months ago
parent
commit
f5f9592771
  1. 26
      script/sql/zfjd-refactoring-v1/其他/gh.sql
  2. 4
      zdxt-modules/zdxt-enforcement-code/pom.xml
  3. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/AppEnterpriseComplaintEnums.java
  4. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/DeleteStatusEnum.java
  5. 51
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/LawTaskSourceEnum.java
  6. 55
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/LawTypeEnum.java
  7. 38
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/CommonUtil.java
  8. 165
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/IdCardCryptoUtil.java
  9. 413
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/StringUtils.java
  10. 12
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEntEnforcementRegistrationController.java
  11. 37
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/dto/enterprise/EnforcementRegistrationQueryDTO.java
  12. 44
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementLawUserVo.java
  13. 25
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationDetailVo.java
  14. 319
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationInfoVo.java
  15. 35
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationListVo.java
  16. 134
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnterpriseEvaluateInfoVo.java
  17. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EnforcementRegistrationMapper.java
  18. 10
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnforcementRegistrationService.java
  19. 2
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseComplaintServiceImpl.java
  20. 43
      zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java
  21. 65
      zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementRegistrationMapper.xml

26
script/sql/zfjd-refactoring-v1/其他/gh.sql

@ -0,0 +1,26 @@
DROP TABLE IF EXISTS `todo_item`;
CREATE TABLE `todo_item` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`client_type` varchar(16) NOT NULL COMMENT '客户端类型:enterprise-企业端, law-执法端, supervise-监督端',
`type` varchar(16) DEFAULT NULL COMMENT '类型:PFFW|普法服务,ZFPJ-执法评价,ZFYG-预告,RW-任务,YY-预约',
`source_id` bigint DEFAULT NULL COMMENT '记录来源ID(关联业务表主键)',
`enterprise_id` varchar(50) DEFAULT NULL COMMENT '被执法企业ID',
`enterprise_number` varchar(32) DEFAULT NULL COMMENT '企业统一社会信用代码',
`agent_user_id` varchar(50) DEFAULT NULL COMMENT '代办人员ID',
`read_status` tinyint DEFAULT 0 COMMENT '阅读状态:0未读 1已读',
`is_delete` int(4) DEFAULT 0 COMMENT '是否删除 0 否 1是',
`create_dept` varchar(100) DEFAULT NULL COMMENT '创建部门',
`create_by` varchar(50) DEFAULT NULL COMMENT '创建者',
`update_by` varchar(50) DEFAULT NULL COMMENT '更新者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_client_type_source` (`client_type`,`type`,`source_id`) USING BTREE COMMENT '客户端+类型+来源ID 唯一索引',
KEY `idx_credit_code` (`credit_code`) USING BTREE COMMENT '企业信用代码索引',
KEY `idx_agent_user_id` (`agent_user_id`) USING BTREE COMMENT '代办人员ID索引',
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='待办事项表';
ALTER TABLE `enforcement_registration`
ADD COLUMN `has_evaluate` tinyint(1) DEFAULT 0 COMMENT '是否评价:0-未评价 1-已评价' AFTER `is_real_union`;
-- 已评价需要初始化数据

4
zdxt-modules/zdxt-enforcement-code/pom.xml

@ -101,6 +101,10 @@
<artifactId>zdxt-common-sse</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!-- Quartz定时任务 -->
<dependency>
<groupId>org.dromara</groupId>

2
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/commonenum/AppEnterpriseComplaintEnums.java → zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/AppEnterpriseComplaintEnums.java

@ -1,4 +1,4 @@
package com.zdxt.enforcementcode.domain.commonenum;
package com.zdxt.enforcementcode.common.commonenum;
public enum AppEnterpriseComplaintEnums {

2
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/commonenum/DeleteStatusEnum.java → zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/DeleteStatusEnum.java

@ -1,4 +1,4 @@
package com.zdxt.enforcementcode.domain.commonenum;
package com.zdxt.enforcementcode.common.commonenum;
/**
* 更新状态类型枚举定义

51
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/LawTaskSourceEnum.java

@ -0,0 +1,51 @@
package com.zdxt.enforcementcode.common.commonenum;
/**
* 任务来源
* @author liaoz
*/
public enum LawTaskSourceEnum {
DAILY_CHECK("01", "日常检查"),
COMPLAINT_REPORT("02", "投诉举报"),
DEPT_TRANSFER("03", "部门移送"),
SUPERIOR_ASSIGN("04", "上级交办"),
KEY_AREA_GOVERN("05", "重点领域治理部署"),
SPECIAL_ACTION("06", "专项行动"),
OTHER("09", "其它");
private String key;
private String value;
LawTaskSourceEnum(String key, String value) {
this.value = value;
this.key = key;
}
public String getValue() {
return value;
}
public String getKey() {
return key;
}
/**
* 根据value获取description
* @description
*
* @createDate 2017年11月28日
* @param key
* @return
*/
public static String getValueByKey(String key) {
LawTaskSourceEnum[] enums = LawTaskSourceEnum.values();
for (int i = 0; i < enums.length; i++) {
if (enums[i].getKey().equals(key)) {
return enums[i].getValue();
}
}
return "";
}
}

55
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/LawTypeEnum.java

@ -0,0 +1,55 @@
package com.zdxt.enforcementcode.common.commonenum;
/**
* 执法类型
* @author liaoz
*/
public enum LawTypeEnum {
ADMIN_CHECK(1, "行政检查"),
ADMIN_PUNISH(2, "行政处罚"),
ADMIN_LICENSE(3, "行政许可"),
ADMIN_FORCE(4, "行政强制"),
ADMIN_LEVY(5, "行政征收"),
ADMIN_PAY(6, "行政给付"),
ADMIN_CONFIRM(7, "行政确认"),
ADMIN_REGISTER(8, "行政登记"),
ADMIN_ARBITRATE(9, "行政裁决"),
DOC_SEND(10, "文书送达");
private Integer key;
private String value;
LawTypeEnum(Integer key, String value) {
this.value = value;
this.key = key;
}
public String getValue() {
return value;
}
public Integer getKey() {
return key;
}
/**
* 根据value获取description
* @description
*
* @createDate 2017年11月28日
* @param key
* @return
*/
public static String getValueByKey(String key) {
LawTypeEnum[] enums = LawTypeEnum.values();
for (int i = 0; i < enums.length; i++) {
if (enums[i].getKey().equals(key)) {
return enums[i].getValue();
}
}
return "";
}
}

38
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/CommonUtil.java

@ -0,0 +1,38 @@
package com.zdxt.enforcementcode.common.util;
public class CommonUtil {
private static String KEY="VRJHzFqJpsSZhwnsKTWNspv_GZMxTWl-bgH6DyE9Ty0";
/**
* 手机号****加密
* @return
*/
public static String encryptPhone(String num){
if(StringUtils.isEmpty(num))return num;
if(!num.matches("^\\d+$")){
num=IdCardCryptoUtil.symmetricDecryptIdCard(KEY,num);
}
String regex = "^1\\d{10}$";
if(num.matches(regex)){
return num.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
}
return num;
}
/**
* 两个字名字空格
* @param name
* @return
*/
public static String getNameSpace(String name){
if(StringUtils.isEmpty(name))return name;
String res=name;
if(name.length()==2){
res=name.substring(0,1)+"\u3000"+name.substring(1,2);
}
return res;
}
}

165
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/IdCardCryptoUtil.java

@ -0,0 +1,165 @@
package com.zdxt.enforcementcode.common.util;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import java.nio.charset.StandardCharsets;
/**
* 证件号加密工具
*
* @author joelzzhang
*/
public class IdCardCryptoUtil {
/**
* 以下字符串为密钥可以通过配置来传递
*/
public static final String OUTER_AES_KEY = "u3BPiZWALItH27e34oO6bw==";
public static final String INNER_AES_KEY = "ol1hV81iCruo+thxtZGnCg==";
public static final String PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDADIVdRXNyT5pmGxSUfwEup2Y1YCz7VfibMyyQhkpVP3ByKsoFDjZ30yW5gv70sQbqn/MCthTFqwh3/I/YLfthM3vU7TdlmNfnlKcQ6prxYofLkX8akrhgQVFerb/4DhcbAk5xvx12Dkeh/nzDf5Qw2K3CymRPnr4zN6ZjAL79HwIDAQAB";
public static final String PRIVATE_KEY = "MIICdAIBADANBgkqhkiG9w0BAQEFAASCAl4wggJaAgEAAoGBAMAMhV1Fc3JPmmYbFJR/AS6nZjVgLPtV+JszLJCGSlU/cHIqygUONnfTJbmC/vSxBuqf8wK2FMWrCHf8j9gt+2Eze9TtN2WY1+eUpxDqmvFih8uRfxqSuGBBUV6tv/gOFxsCTnG/HXYOR6H+fMN/lDDYrcLKZE+evjM3pmMAvv0fAgMBAAECf2rTWPVVrHuC/ywzFz+CmSXAxLNSZbMCH0doYvs0hIrmvtjCjgN1F6P1z2yUpHBEbsetZEwdyQnEf74+WCuBaFIYjmQm/05grIxam/QrGibnV5qNiA0VeCkj6bUy+z5mt3/ithgzjmOiYIgMenjf6ut6RmgRDodgJiFbvSvfskECQQDoqGMNaUV+Y/O9h+l9eOCkSUOjOsL9WDRL34ei/jf7VFFYBZLs2GMzLunDkDz1dHvufDiMPeHUTTN8zIEEpNMVAkEA01Ehf9Np2zUqFQp3SW/fHVsaGM97JsbsTQrsDdUWwZLJTSQ7Yf+yg21GkNa8Mmlsp1OLyS607HV7lPlKO0LsYwJBAN1LTOv0taUCbVRZcj1mPEYHac5Ylh9jRlrkwp7GL3lfOf//TUD6kWCdvrvE9jaCFV9ByIecVLEavV53JkDEhgECQHgR40z0XXOWs8Cc38a0cDwH5b4vNjSEVwQ3roT1jSaUNxlD+xHl7hLLZosp2Gl0ia5RxF2d0mOBJaUyOMGPdy0CQCLBU3995JMoUyLgt2+Riw0PFbdxFEnKGyshAt5Q957/hC6L/V5tQNnh/AM9q23DIUQGb1whhxdIzV12qFSSS34=";
public static void main(String[] args) {
String key = "VRJHzFqJpsSZhwnsKTWNspv_GZMxTWl-bgH6DyE9Ty0";
System.out.println("====================== 示例 ======================");
// 加密
String source_dec = "13823290422";
String enc = IdCardCryptoUtil.symmetricEncryptIdCard(key, source_dec);
System.out.println(source_dec+" 加密后 : "+enc);
// 解密
String source_enc = "wDLyWcBO/fIH2rJpSGN98A==";
String dec = IdCardCryptoUtil.symmetricDecryptIdCard(key, source_enc);
System.out.println(source_enc+" 解密后 : "+dec);
// String userIdCode = IdCardCryptoUtil.symmetricEncryptIdCard("VRJHzFqJpsSZhwnsKTWNspv_GZMxTWl-bgH6DyE9Ty0", "18361639869");
// String userNameCode = IdCardCryptoUtil.symmetricEncryptIdCard("eWIzY3BMRVNEQXhvUUlXMA==", "汪鑫");
// System.out.println(userIdCode);
// String phone = IdCardCryptoUtil.symmetricDecryptIdCard("VRJHzFqJpsSZhwnsKTWNspv_GZMxTWl-bgH6DyE9Ty0", "0d17ehr8XLbrj2kbgeEiDg==");
// String sfz = IdCardCryptoUtil.symmetricDecryptIdCard("VRJHzFqJpsSZhwnsKTWNspv_GZMxTWl-bgH6DyE9Ty0", "9vtFzYM8BZMXg2wlaegdMdXaLufwHP8WOhqKl4Ld3IM=");
// System.out.println(phone);
// System.out.println(sfz);
System.out.println("====================== 实用 ======================");
String[] strings={
"13360957126",
"16688211945",
"17339838670",
"18460319603",
"15626498490",
"18080147218",
};
// 刘义 13410900924 19020722074
// 杜海荣 15019258592 19020722059
// 张志兴 13760735454 19020722087
// 陈翠莉 13192669039 19020722072
// 李大航 17799857610 19020722079
// String string="";
for(String s:strings){
String phoneJM=IdCardCryptoUtil.symmetricEncryptIdCard(key, s);
System.out.println(s+" 加密后: "+phoneJM);
// string=string+"'"+phoneJM+"',";
}
// System.out.println(string);
/* String[] strings={
"i4BpGrKBbN0LtUemOvlhd+coz3KcCkFyFLe2lqbwlog=","bNW1LELHjqRD1LhoqcVlppnQv2Q0Ob3r+Gc9DXX/I30=","ohDLgX+wBEXZcsI1GFhc29OgyhRw2fpn9cK5YItWBFA=","oi5Rqny8mo7ar+GOhZTmH9f65xsKpYaNWRWCdsBWyhM=","ZbhCWrGlvSkbC5xkMH8/DNK2D7TAjbMtaI4S8rK5prc=","wqTtpWcQtEnNlzUGEyqNTK2gs88ReMSCUVhfg29V7sU="
};
String string="";
for(String s:strings){
String sfzjm = IdCardCryptoUtil.symmetricDecryptIdCard("VRJHzFqJpsSZhwnsKTWNspv_GZMxTWl-bgH6DyE9Ty0", s);
System.out.println(s+":"+sfzjm);
string=string+"'"+sfzjm+"',";
}
System.out.println(string);*/
// System.out.println(userNameCode);
//// System.out.println(secret);
// Map<String,Object> heardMap = new HashMap<>();
// heardMap.put("x-auth-channel", IdUtil.simpleUUID());
// heardMap.put("x-auth-app-code","zfjdm");
// String s = IdCardCryptoUtil.httpSendPost("http://egbpub.siqhz.com/egb/api/thirdauth/pub/auth/token",userIdCode,userNameCode,"zfjdm");
// System.out.println(s);
//
//
// String secret = IdCardCryptoUtil.symmetricEncryptIdCard("eWIzY3BMRVNEQXhvUUlXMA==", "df00fe17-dd15-4def-b1ff-8128ffe068ec");
// Map<String,Object> params = new HashMap<>();
// params.put("accessKeySign",secret);
// params.put("appCode","zfjdm");
// String data = HttpUtil.httpSendPost("http://egbpub.siqhz.com/egb/api/thirdauth/pub/auth/getUserInfo",
// JSONObject.toJSONString(params),new HashMap<>());
// System.out.println(data);
}
/**
* 证件号通过RSA的公钥加密
*
* @param publicKey 公钥Base64
* @param privateKey 私钥Base64
* @param content 被加密的字符串
* @return 加密后的字符串
*/
public static String asymmetricEncryptIdCard(String publicKey, String privateKey, String content) {
RSA rsa = SecureUtil.rsa(privateKey, publicKey);
byte[] encrypt = rsa.encrypt(content, StandardCharsets.UTF_8, KeyType.PublicKey);
return Base64.encode(encrypt);
}
/**
* 证件号通过RSA的私钥解密
*
* @param publicKey 公钥Base64
* @param privateKey 私钥Base64
* @param content 被解密的字符串
* @return 解密后的字符串
*/
public static String asymmetricDecryptIdCard(String publicKey, String privateKey, String content) {
RSA rsa = SecureUtil.rsa(privateKey, publicKey);
byte[] decrypt = rsa.decrypt(content, KeyType.PrivateKey);
return StrUtil.str(decrypt, StandardCharsets.UTF_8);
}
/**
* 证件号对称加密后入库
*
* @param key 密钥Base64
* @param content 被加密的字符串
* @return 加密后的字符串
*/
public static String symmetricEncryptIdCard(String key, String content) {
return SecureUtil.aes(SecureUtil.decode(key)).encryptBase64(content);
}
/**
* 证件号对称解密
*
* @param key 密钥Base64
* @param content 被解密的字符串Base64
* @return 解密后的字符串
*/
public static String symmetricDecryptIdCard(String key, String content) {
return SecureUtil.aes(SecureUtil.decode(key)).decryptStr(content);
}
public static String httpSendPost(String url,String userId,String userName,String appCode){
HttpRequest request = HttpRequest.post(url)
.header("x-auth-channel",IdUtil.simpleUUID())
.header("x-auth-app-code",appCode)
.form("userId", userId)
.form("userName", userName);
request.contentType("application/x-www-form-urlencoded");
JSONObject jsonObject = JSONObject.parseObject(request.execute().body());
String data = jsonObject.getString("data");
return data;
}
}

413
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/StringUtils.java

@ -0,0 +1,413 @@
package com.zdxt.enforcementcode.common.util;
import cn.hutool.core.text.StrFormatter;
import java.util.Collection;
import java.util.Map;
import java.util.UUID;
/**
* 字符串工具类
*
* @author ruoyi
*/
public class StringUtils extends org.apache.commons.lang3.StringUtils
{
/** 空字符串 */
private static final String NULLSTR = "";
/** 下划线 */
private static final char SEPARATOR = '_';
/**
* 获取参数不为空值
*
* @param value defaultValue 要判断的value
* @return value 返回值
*/
public static <T> T nvl(T value, T defaultValue)
{
return value != null ? value : defaultValue;
}
/**
* * 判断一个Collection是否为空 包含ListSetQueue
*
* @param coll 要判断的Collection
* @return true为空 false非空
*/
public static boolean isEmpty(Collection<?> coll)
{
return isNull(coll) || coll.isEmpty();
}
/**
* * 判断一个Collection是否非空包含ListSetQueue
*
* @param coll 要判断的Collection
* @return true非空 false
*/
public static boolean isNotEmpty(Collection<?> coll)
{
return !isEmpty(coll);
}
/**
* * 判断一个对象数组是否为空
*
* @param objects 要判断的对象数组
** @return true为空 false非空
*/
public static boolean isEmpty(Object[] objects)
{
return isNull(objects) || (objects.length == 0);
}
/**
* * 判断一个对象数组是否非空
*
* @param objects 要判断的对象数组
* @return true非空 false
*/
public static boolean isNotEmpty(Object[] objects)
{
return !isEmpty(objects);
}
/**
* * 判断一个Map是否为空
*
* @param map 要判断的Map
* @return true为空 false非空
*/
public static boolean isEmpty(Map<?, ?> map)
{
return isNull(map) || map.isEmpty();
}
/**
* * 判断一个Map是否为空
*
* @param map 要判断的Map
* @return true非空 false
*/
public static boolean isNotEmpty(Map<?, ?> map)
{
return !isEmpty(map);
}
/**
* * 判断一个字符串是否为空串
*
* @param str String
* @return true为空 false非空
*/
public static boolean isEmpty(String str)
{
return isNull(str) || NULLSTR.equals(str.trim());
}
/**
* * 判断一个字符串是否为非空串
*
* @param str String
* @return true非空串 false空串
*/
public static boolean isNotEmpty(String str)
{
return !isEmpty(str);
}
/**
* * 判断一个对象是否为空
*
* @param object Object
* @return true为空 false非空
*/
public static boolean isNull(Object object)
{
return object == null;
}
/**
* * 判断一个对象是否非空
*
* @param object Object
* @return true非空 false
*/
public static boolean isNotNull(Object object)
{
return !isNull(object);
}
/**
* * 判断一个对象是否是数组类型Java基本型别的数组
*
* @param object 对象
* @return true是数组 false不是数组
*/
public static boolean isArray(Object object)
{
return isNotNull(object) && object.getClass().isArray();
}
/**
* 去空格
*/
public static String trim(String str)
{
return (str == null ? "" : str.trim());
}
/**
* 截取字符串
*
* @param str 字符串
* @param start 开始
* @return 结果
*/
public static String substring(final String str, int start)
{
if (str == null)
{
return NULLSTR;
}
if (start < 0)
{
start = str.length() + start;
}
if (start < 0)
{
start = 0;
}
if (start > str.length())
{
return NULLSTR;
}
return str.substring(start);
}
/**
* 截取字符串
*
* @param str 字符串
* @param start 开始
* @param end 结束
* @return 结果
*/
public static String substring(final String str, int start, int end)
{
if (str == null)
{
return NULLSTR;
}
if (end < 0)
{
end = str.length() + end;
}
if (start < 0)
{
start = str.length() + start;
}
if (end > str.length())
{
end = str.length();
}
if (start > end)
{
return NULLSTR;
}
if (start < 0)
{
start = 0;
}
if (end < 0)
{
end = 0;
}
return str.substring(start, end);
}
/**
* 格式化文本, {} 表示占位符<br>
* 此方法只是简单将占位符 {} 按照顺序替换为参数<br>
* 如果想输出 {} 使用 \\转义 { 即可如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br>
* <br>
* 通常使用format("this is {} for {}", "a", "b") -> this is a for b<br>
* 转义{} format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
* 转义\ format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
*
* @param template 文本模板被替换的部分用 {} 表示
* @param params 参数值
* @return 格式化后的文本
*/
public static String format(String template, Object... params)
{
if (isEmpty(params) || isEmpty(template))
{
return template;
}
return StrFormatter.format(template, params);
}
/**
* 下划线转驼峰命名
*/
public static String toUnderScoreCase(String str)
{
if (str == null)
{
return null;
}
StringBuilder sb = new StringBuilder();
// 前置字符是否大写
boolean preCharIsUpperCase = true;
// 当前字符是否大写
boolean curreCharIsUpperCase = true;
// 下一字符是否大写
boolean nexteCharIsUpperCase = true;
for (int i = 0; i < str.length(); i++)
{
char c = str.charAt(i);
if (i > 0)
{
preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1));
}
else
{
preCharIsUpperCase = false;
}
curreCharIsUpperCase = Character.isUpperCase(c);
if (i < (str.length() - 1))
{
nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));
}
if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase)
{
sb.append(SEPARATOR);
}
else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase)
{
sb.append(SEPARATOR);
}
sb.append(Character.toLowerCase(c));
}
return sb.toString();
}
/**
* 是否包含字符串
*
* @param str 验证字符串
* @param strs 字符串组
* @return 包含返回true
*/
public static boolean inStringIgnoreCase(String str, String... strs)
{
if (str != null && strs != null)
{
for (String s : strs)
{
if (str.equalsIgnoreCase(trim(s)))
{
return true;
}
}
}
return false;
}
/**
* 将下划线大写方式命名的字符串转换为驼峰式如果转换前的下划线大写方式命名的字符串为空则返回空字符串 例如HELLO_WORLD->HelloWorld
*
* @param name 转换前的下划线大写方式命名的字符串
* @return 转换后的驼峰式命名的字符串
*/
public static String convertToCamelCase(String name)
{
StringBuilder result = new StringBuilder();
// 快速检查
if (name == null || name.isEmpty())
{
// 没必要转换
return "";
}
else if (!name.contains("_"))
{
// 不含下划线,仅将首字母大写
return name.substring(0, 1).toUpperCase() + name.substring(1);
}
// 用下划线将原始字符串分割
String[] camels = name.split("_");
for (String camel : camels)
{
// 跳过原始字符串中开头、结尾的下换线或双重下划线
if (camel.isEmpty())
{
continue;
}
// 首字母大写
result.append(camel.substring(0, 1).toUpperCase());
result.append(camel.substring(1).toLowerCase());
}
return result.toString();
}
/**
* 驼峰式命名法
* 例如user_name->userName
*/
public static String toCamelCase(String s)
{
if (s == null)
{
return null;
}
s = s.toLowerCase();
StringBuilder sb = new StringBuilder(s.length());
boolean upperCase = false;
for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if (c == SEPARATOR)
{
upperCase = true;
}
else if (upperCase)
{
sb.append(Character.toUpperCase(c));
upperCase = false;
}
else
{
sb.append(c);
}
}
return sb.toString();
}
public static String getUUID(){
String str = UUID.randomUUID().toString();
return str.replace("-", "");
}
public static boolean isLinux() {
return System.getProperty("os.name").toLowerCase().contains("linux");
}
public static boolean isWindows() {
return System.getProperty("os.name").toLowerCase().contains("windows");
}
}

12
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEntEnforcementRegistrationController.java

@ -3,9 +3,11 @@ package com.zdxt.enforcementcode.controller.app.enterprise;
import com.zdxt.enforcementcode.domain.bo.EnforcementRegistrationBo;
import com.zdxt.enforcementcode.domain.dto.enterprise.EnforcementRegistrationQueryDTO;
import com.zdxt.enforcementcode.domain.vo.EnforcementRegistrationVo;
import com.zdxt.enforcementcode.domain.vo.enterprise.EnforcementRegistrationDetailVo;
import com.zdxt.enforcementcode.domain.vo.enterprise.EnforcementRegistrationListVo;
import com.zdxt.enforcementcode.service.IEnforcementRegistrationService;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
@ -53,4 +55,14 @@ public class AppEntEnforcementRegistrationController extends BaseController {
return enforcementRegistrationService.queryEnforcementRegistrationPageList(dto, pageQuery);
}
/**
* 执法登记详情 - 联合执法版本
*/
@GetMapping("/queryDetailById/{id}")
@ResponseBody
public R<EnforcementRegistrationDetailVo> queryDetailById(@PathVariable("id") String id){
EnforcementRegistrationDetailVo detailVo = enforcementRegistrationService.queryDetailById(id);
return R.ok(detailVo);
}
}

37
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/dto/enterprise/EnforcementRegistrationQueryDTO.java

@ -30,14 +30,47 @@ public class EnforcementRegistrationQueryDTO {
*/
private Long isRealUnion;
/**
* 查询字段
*/
private String searchValue;
/**
* 日期类型筛选: 1=本月, 2=本季, 3=本年
*/
private Integer dateType;
private String dateSearch;
/**
* 指定月份筛选, 格式: "YYYY-MM"
*
*/
private String dateSearch;
private String year;
/**
* 季度
*/
private String quarter;
/**
*
*/
private String month;
/**
* 开始时间
*/
private String beginTime;
private String beginEnforcementTime;
/**
* 结束时间
*/
private String endTime;
private String endEnforcementTime;
/**
* 关键字查询
*/
private String searchText;
}

44
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementLawUserVo.java

@ -0,0 +1,44 @@
package com.zdxt.enforcementcode.domain.vo.enterprise;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import com.zdxt.enforcementcode.domain.EnforcementRegistration;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.sensitive.annotation.Sensitive;
import org.dromara.common.sensitive.core.SensitiveStrategy;
import java.io.Serializable;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/**
* 企业端-执法人员
*
* @author Lion Li
* @date 2026-04-17
*/
@Data
public class EnforcementLawUserVo implements Serializable {
/**
* 用户ID
*/
private Long userId;
/**
* 用户账号
*/
private String userName;
/**
* 用户昵称
*/
private String nickName;
/**
* 手机号码
*/
private String phonenumber;
}

25
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationDetailVo.java

@ -0,0 +1,25 @@
package com.zdxt.enforcementcode.domain.vo.enterprise;
import lombok.Data;
/**
* 企业端-执法登记记录对象 enforcement_registration
*
* @author Lion Li
* @date 2026-04-17
*/
@Data
public class EnforcementRegistrationDetailVo {
/**
* 执法登记信息
*/
EnforcementRegistrationInfoVo enforcementRegistrationVo;
/**
* 执法评价信息
*/
EnterpriseEvaluateInfoVo enterpriseEvaluateInfoVo;
}

319
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationInfoVo.java

@ -0,0 +1,319 @@
package com.zdxt.enforcementcode.domain.vo.enterprise;
import com.zdxt.enforcementcode.common.commonenum.LawTaskSourceEnum;
import lombok.Data;
import java.io.Serial;
import java.util.Date;
/**
* 企业端-执法登记记录对象 enforcement_registration
*
* @author Lion Li
* @date 2026-04-17
*/
@Data
public class EnforcementRegistrationInfoVo {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
private String id;
/**
* 执法部门
*/
private String lawEnforcement;
/**
* 执法部门ID
*/
private String lawEnforcementId;
/**
* 被执法企业ID
*/
private String enterpriseId;
/**
* 被执法企业
*/
private String enterpriseName;
/**
* 被执法企业税号
*/
private String enterpriseNumber;
/**
* 执法时间
*/
private Date enforcementTime;
/**
* 执法人员姓名
*/
private String lawEnforcer;
/**
* 执法人员ID
*/
private String lawEnforcerId;
/**
* 执法人员联系方式
*/
private String lawEnforcerTel;
/**
* 其他执法人员
*/
private String lawEnforcerTwo;
/**
* 其他执法人员ID
*/
private String lawEnforcerIdTwo;
/**
* 执法人员联系方式
*/
private String lawEnforcerTelTwo;
/**
* 辅助人员姓名
*/
private String subsidiaryer;
/**
* 辅助人员id
*/
private String subsidiaryerId;
/**
* 辅助人员联系方式
*/
private String subsidiaryerTel;
/**
* 执法事项
*/
private String lawEnforcementItem;
/**
* 执法依据
*/
private String lawEnforcementBasis;
/**
* 备注
*/
private String remark;
/**
* 执法结果 0 合格 1 不合格
*/
private Long reslut;
/**
*
*/
private String userId;
/**
*
*/
private String deptId;
/**
* 是否删除 0 1
*/
private Long isDelete;
/**
* 数据状态 0 正常 1 取消
*/
private Long status;
/**
* 登记编号
*/
private String lawEnforcementCode;
/**
* 是否投诉 0 1
*/
private Long isComplaint;
/**
* 数据保存或提交 0 保存 1提交
*/
private Long isSubmit;
/**
*
*/
private String enforce;
/**
*
*/
private String uniteCheck;
/**
*
*/
private String lawEnforcementItemText;
/**
*
*/
private String lawField;
/**
* 任务来源
*/
private String checkCategory;
/**
* 任务来源-中文描述
*/
private String checkCategoryDesc;
/**
*
*/
private String checkCss;
/**
*
*/
private String enforceReason;
/**
*
*/
private String bureauDeptId;
/**
*
*/
private String bureauDeptName;
/**
*
*/
private String lawEnforcementBasisText;
/**
*
*/
private Long isEvaluate;
/**
*
*/
private String lawId;
/**
*
*/
private String lawText;
/**
* 是否是联合检查 需要=1 and union_no不为空才是联合检查
*/
private Long hasUnion;
/**
* 是否委托执法
*/
private Long hasAuto;
/**
* 联合执法的分组编号
*/
private String unionNo;
/**
* 执法类别
*/
private String lawEnforceCategory;
/**
* 执法类别-中文描述
*/
private String lawEnforceCategoryDesc;
/**
* 委托执法部门id
*/
private String entrustDeptId;
/**
* 委托执法部门名称
*/
private String entrustDeptName;
/**
* 企业注册地址
*/
private String enterpriseAddress;
/**
* 企业注册区
*/
private String district;
/**
* 企业注册街道
*/
private String street;
/**
* 1:市直登记, 3:区直登记
*/
private Long zone;
/**
* 是否真联合执法(0:未联合; 1:已经联合)
*/
private Long isRealUnion;
/**
* 创建部门
*/
private String createDept;
/**
* 创建者
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新者
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
public String getCheckCategoryDesc() {
return LawTaskSourceEnum.getValueByKey(checkCategory);
}
public String getLawEnforceCategoryDesc() {
return LawTaskSourceEnum.getValueByKey(lawEnforceCategory);
}
}

35
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationListVo.java

@ -4,9 +4,12 @@ import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import com.zdxt.enforcementcode.domain.EnforcementRegistration;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.core.utils.DateUtils;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
@ -21,6 +24,7 @@ import java.util.Date;
public class EnforcementRegistrationListVo implements Serializable {
/**
* 主键ID
*/
@ -31,6 +35,12 @@ public class EnforcementRegistrationListVo implements Serializable {
*/
private String lawEnforcement;
/**
* 执法事项
*/
private String lawEnforcementItemText;
/**
* 执法部门ID
*/
@ -112,5 +122,30 @@ public class EnforcementRegistrationListVo implements Serializable {
private String lawEnforcementBasis;
/**
* 是否执法评价
*/
private int hasEvaluate;
/**
* 执法人员
*/
private List<EnforcementLawUserVo> lawEnforcementUsers;
/**
* 评价按钮是否显示
* @return
*/
private int isShowEvaluate(){
if(hasEvaluate == 1){//已评价
return 0;
}else{//未评价且10个日然日内显示评价按钮
long diffDays = DateUtils.difference(enforcementTime, new Date(), TimeUnit.DAYS);
if (diffDays <= 10) {
return 1;
}
}
return 0;
}
}

134
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnterpriseEvaluateInfoVo.java

@ -0,0 +1,134 @@
package com.zdxt.enforcementcode.domain.vo.enterprise;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.io.Serial;
/**
* 企业端-执法评价对象 enterprise_evaluate
*
* @author Lion Li
* @date 2026-04-13
*/
@Data
public class EnterpriseEvaluateInfoVo extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
private String id;
/**
* 案件名称
*/
private String enforcementName;
/**
* 案件ID
*/
private String enforcementId;
/**
* 评价意见建议
*/
private String evaluateDescription;
/**
* 联系人
*/
private String linkman;
/**
* 联系电话
*/
private String linkmanTel;
/**
* 是否授权 0 1是
*/
private Long authorization;
/**
*
*/
private Long inspectionEfficiency;
/**
*
*/
private Long checkEffect;
/**
*
*/
private Long serviceExperience;
/**
*
*/
private Long checkQuality;
/**
*
*/
private String batchId;
/**
* 检查效果启用
*/
private Long checkEffectiveness;
/**
* 执法态度启用
*/
private Long checkAttitude;
/**
* 程序合法启用
*/
private Long proceduralLegality;
/**
* 满意程度不满意1较满意2非常满意3
*/
private Long satisfactionLevel;
/**
* 其他问题开关打开1关闭2
*/
private Long otherProblemSwitch;
/**
* 1是0否存在逐利检查接受被检查企业的馈赠报酬福利等
*/
private Long problem1;
/**
* 1是0否存在要求被检查企业提供宴请娱乐旅游等活动
*/
private Long problem2;
/**
* 是否存在干扰企业正常生产经营刻意要求法定代表人到场行为
*/
private Long problem3;
/**
* 是否存在任性处罚企业乱查封乱扣押乱冻结动辄责令停产停业的行为
*/
private Long problem4;
/**
* 是否存在变相检查以观摩督导考察等名义行检查之实.
*/
private Long problem5;
}

2
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EnforcementRegistrationMapper.java

@ -1,5 +1,6 @@
package com.zdxt.enforcementcode.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zdxt.enforcementcode.domain.EnforcementRegistration;
@ -24,6 +25,7 @@ public interface EnforcementRegistrationMapper extends BaseMapperPlus<Enforcemen
* @param dto 查询条件
* @return 执法登记列表
*/
@InterceptorIgnore(dataPermission = "true")
IPage<EnforcementRegistrationListVo> selectEnforcementRegistrationPage(@Param("page") Page<EnforcementRegistrationListVo> page, @Param("dto") EnforcementRegistrationQueryDTO dto);
}

10
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnforcementRegistrationService.java

@ -3,9 +3,12 @@ package com.zdxt.enforcementcode.service;
import com.zdxt.enforcementcode.domain.dto.enterprise.EnforcementRegistrationQueryDTO;
import com.zdxt.enforcementcode.domain.vo.EnforcementRegistrationVo;
import com.zdxt.enforcementcode.domain.bo.EnforcementRegistrationBo;
import com.zdxt.enforcementcode.domain.vo.enterprise.EnforcementRegistrationDetailVo;
import com.zdxt.enforcementcode.domain.vo.enterprise.EnforcementRegistrationListVo;
import org.dromara.common.core.domain.R;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.Collection;
import java.util.List;
@ -85,4 +88,11 @@ public interface IEnforcementRegistrationService {
* @return
*/
TableDataInfo<EnforcementRegistrationListVo> queryEnforcementRegistrationPageList(EnforcementRegistrationQueryDTO dto, PageQuery pageQuery);
/**
* 企业端-执法登记详情
* @param id
* @return
*/
EnforcementRegistrationDetailVo queryDetailById(@PathVariable("id") String id);
}

2
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseComplaintServiceImpl.java

@ -10,7 +10,7 @@ import com.zdxt.enforcementcode.domain.EnterpriseComplaint;
import com.zdxt.enforcementcode.domain.NonEnforcementRegistration;
import com.zdxt.enforcementcode.domain.ZdxtFile;
import com.zdxt.enforcementcode.domain.bo.EnterpriseComplaintBo;
import com.zdxt.enforcementcode.domain.commonenum.AppEnterpriseComplaintEnums;
import com.zdxt.enforcementcode.common.commonenum.AppEnterpriseComplaintEnums;
import com.zdxt.enforcementcode.domain.dto.enterprise.AppEnterpriseComplatintInsertDTO;
import com.zdxt.enforcementcode.domain.dto.enterprise.AppEnterpriseComplatintQueryDTO;
import com.zdxt.enforcementcode.domain.vo.ZdxtFileVo;

43
zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java

@ -1,10 +1,17 @@
package com.zdxt.enforcementcode.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zdxt.enforcementcode.domain.EnterpriseEvaluate;
import com.zdxt.enforcementcode.domain.dto.enterprise.EnforcementRegistrationQueryDTO;
import com.zdxt.enforcementcode.domain.vo.EnterpriseEvaluateVo;
import com.zdxt.enforcementcode.domain.vo.enterprise.EnforcementRegistrationDetailVo;
import com.zdxt.enforcementcode.domain.vo.enterprise.EnforcementRegistrationInfoVo;
import com.zdxt.enforcementcode.domain.vo.enterprise.EnforcementRegistrationListVo;
import com.zdxt.enforcementcode.domain.vo.enterprise.EnterpriseEvaluateInfoVo;
import com.zdxt.enforcementcode.mapper.EnterpriseEvaluateMapper;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -49,7 +56,7 @@ public class EnforcementRegistrationServiceImpl implements IEnforcementRegistrat
private final EnterpriseComplaintMapper complaintMapper;
private final ISysDictTypeService dictTypeService;
private final SysUserMapper sysUserMapper;
private final EnterpriseEvaluateMapper evaluateMapper;
/**
* 查询企业端-执法登记记录
*
@ -369,10 +376,44 @@ public class EnforcementRegistrationServiceImpl implements IEnforcementRegistrat
return baseMapper.deleteByIds(ids) > 0;
}
/**
* 企业端-执法登记列表历史执法信息
* @param dto
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<EnforcementRegistrationListVo> queryEnforcementRegistrationPageList(EnforcementRegistrationQueryDTO dto, PageQuery pageQuery) {
Page<EnforcementRegistrationListVo> page = pageQuery.build();
IPage<EnforcementRegistrationListVo> result = baseMapper.selectEnforcementRegistrationPage(page, dto);
return TableDataInfo.build(result);
}
/**
* 企业端-执法登记详情
* @param id
* @return
*/
@Override
public EnforcementRegistrationDetailVo queryDetailById(String id) {
EnforcementRegistrationDetailVo detailVo = new EnforcementRegistrationDetailVo();
//查询执法基础信息
EnforcementRegistrationVo registrationVo = baseMapper.selectVoById(id);
EnforcementRegistrationInfoVo infoVo = new EnforcementRegistrationInfoVo();
BeanUtil.copyProperties(registrationVo, infoVo);
detailVo.setEnforcementRegistrationVo(infoVo);
if (registrationVo != null) {
//查询评价信息
EnterpriseEvaluateVo evaluateVo =
evaluateMapper.selectVoOne(
new LambdaQueryWrapper<EnterpriseEvaluate>().eq(EnterpriseEvaluate::getEnforcementId, id)
);
if(evaluateVo != null){
EnterpriseEvaluateInfoVo enterpriseEvaluateInfoVo = new EnterpriseEvaluateInfoVo();
BeanUtil.copyProperties(evaluateVo,enterpriseEvaluateInfoVo);
detailVo.setEnterpriseEvaluateInfoVo(enterpriseEvaluateInfoVo);
}
}
return detailVo;
}
}

65
zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementRegistrationMapper.xml

@ -4,6 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zdxt.enforcementcode.mapper.EnforcementRegistrationMapper">
<!-- 企业端-分页查询执法登记列表 -->
<select id="selectEnforcementRegistrationPage" resultType="com.zdxt.enforcementcode.domain.vo.enterprise.EnforcementRegistrationListVo">
SELECT
id,
@ -23,10 +24,12 @@
subsidiaryer_id,
subsidiaryer_tel,
law_enforcement_item,
law_enforcement_basis
law_enforcement_basis,
has_evaluate,
is_real_union,
law_enforcement_item_text
FROM enforcement_registration
<where>
<!-- 执法部门过滤 -->
<if test="dto.lawEnforcement != null and dto.lawEnforcement != ''">
AND law_enforcement = #{dto.lawEnforcement}
@ -39,27 +42,49 @@
<if test="dto.isRealUnion != null">
AND is_real_union = #{dto.isRealUnion}
</if>
<!-- 日期类型筛选 -->
<if test="dto.dateType != null">
<choose>
<when test="dto.dateType == 1">
<!-- 本月 -->
AND enforcement_time &gt;= DATE_FORMAT(CURDATE(), '%Y-%m-01')
</when>
<when test="dto.dateType == 2">
<!-- 本季 -->
AND enforcement_time &gt;= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL (QUARTER(CURDATE()) - 1) * 3 MONTH), '%Y-%m-01')
</when>
<when test="dto.dateType == 3">
<!-- 本年 -->
AND enforcement_time &gt;= DATE_FORMAT(CURDATE(), '%Y-01-01')
</when>
</choose>
<if test="dto.searchValue != null and dto.searchValue != ''">
and (law_enforcement_item_text like concat(concat('%',#{dto.searchValue}),'%')
or law_enforcement like concat(concat('%',#{dto.searchValue}),'%')
or law_enforcer like concat(concat('%',#{dto.searchValue}),'%')
or law_enforcer_two like concat(concat('%',#{dto.searchValue}),'%')
or enterprise_name like concat(concat('%',#{dto.searchValue}),'%')
)
</if>
<if test="dto.dateType != null and dto.dateType == 1">
and DATE_FORMAT(enforcement_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
</if>
<if test="dto.dateType != null and dto.dateType == 2">
AND DATE_FORMAT(enforcement_time, '%Y-%m') &gt;= CONCAT(YEAR(CURDATE()), '-',
CASE WHEN QUARTER(CURDATE()) IN (1) THEN '01'
WHEN QUARTER(CURDATE()) IN (2) THEN '04'
WHEN QUARTER(CURDATE()) IN (3) THEN '07'
ELSE '10' END)
and DATE_FORMAT(enforcement_time, '%Y-%m') &lt;= CONCAT(YEAR(CURDATE()), '-',
CASE
WHEN QUARTER(CURDATE()) IN (1) THEN '03'
WHEN QUARTER(CURDATE()) IN (2) THEN '06'
WHEN QUARTER(CURDATE()) IN (3) THEN '09'
ELSE '12'
END)
</if>
<if test="dto.dateType != null and dto.dateType == 3">
and DATE_FORMAT(enforcement_time, '%Y') = DATE_FORMAT(CURDATE(), '%Y')
</if>
<!-- 指定月份筛选 -->
<if test="dto.dateSearch != null and dto.dateSearch != ''">
AND DATE_FORMAT(enforcement_time, '%Y-%m') = #{dto.dateSearch}
and DATE_FORMAT(enforcement_time, '%Y-%m') = #{dto.dateSearch}
</if>
<if test="dto.beginTime != null and dto.beginTime != ''"><!-- 开始时间检索 -->
and DATE_FORMAT(enforcement_time,'%Y-%m-%d') &gt;= #{dto.beginTime}
</if>
<if test="dto.endTime != null and dto.endTime != ''"><!-- 结束时间检索 -->
and DATE_FORMAT(enforcement_time,'%Y-%m-%d') &lt;= #{dto.endTime}
</if>
<!-- &lt;!&ndash; 数据范围过滤 &ndash;&gt;-->
<!-- <if test="dto..dataScope != null and dto..dataScope != ''">-->
<!-- &lt;!&ndash; 数据范围过滤 &ndash;&gt;-->
<!-- ${dto..dataScope}-->
<!-- </if>-->
AND is_delete = 0
</where>
ORDER BY id DESC

Loading…
Cancel
Save