diff --git a/script/sql/zfjd-refactoring-v1/其他/gh.sql b/script/sql/zfjd-refactoring-v1/其他/gh.sql
new file mode 100644
index 00000000..9621ed70
--- /dev/null
+++ b/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`;
+-- 已评价需要初始化数据
\ No newline at end of file
diff --git a/zdxt-modules/zdxt-enforcement-code/pom.xml b/zdxt-modules/zdxt-enforcement-code/pom.xml
index 99b73514..efc0fd0f 100644
--- a/zdxt-modules/zdxt-enforcement-code/pom.xml
+++ b/zdxt-modules/zdxt-enforcement-code/pom.xml
@@ -101,6 +101,10 @@
zdxt-common-sse
+
+ com.alibaba
+ fastjson
+
org.dromara
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/commonenum/AppEnterpriseComplaintEnums.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/AppEnterpriseComplaintEnums.java
similarity index 94%
rename from zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/commonenum/AppEnterpriseComplaintEnums.java
rename to zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/AppEnterpriseComplaintEnums.java
index c1be8e1e..7d083530 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/commonenum/AppEnterpriseComplaintEnums.java
+++ b/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 {
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/commonenum/DeleteStatusEnum.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/DeleteStatusEnum.java
similarity index 94%
rename from zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/commonenum/DeleteStatusEnum.java
rename to zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/DeleteStatusEnum.java
index 19e2a114..5efbd677 100755
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/commonenum/DeleteStatusEnum.java
+++ b/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;
/**
* 更新状态类型枚举定义
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/LawTaskSourceEnum.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/LawTaskSourceEnum.java
new file mode 100755
index 00000000..4f8a2f49
--- /dev/null
+++ b/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 "";
+ }
+}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/LawTypeEnum.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/commonenum/LawTypeEnum.java
new file mode 100755
index 00000000..ec1b7ec3
--- /dev/null
+++ b/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 "";
+ }
+}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/CommonUtil.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/CommonUtil.java
new file mode 100644
index 00000000..55ae4abb
--- /dev/null
+++ b/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;
+ }
+}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/IdCardCryptoUtil.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/IdCardCryptoUtil.java
new file mode 100644
index 00000000..3bed1789
--- /dev/null
+++ b/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 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 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;
+ }
+}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/StringUtils.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/StringUtils.java
new file mode 100644
index 00000000..e3a0402e
--- /dev/null
+++ b/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 nvl(T value, T defaultValue)
+ {
+ return value != null ? value : defaultValue;
+ }
+
+ /**
+ * * 判断一个Collection是否为空, 包含List,Set,Queue
+ *
+ * @param coll 要判断的Collection
+ * @return true:为空 false:非空
+ */
+ public static boolean isEmpty(Collection> coll)
+ {
+ return isNull(coll) || coll.isEmpty();
+ }
+
+ /**
+ * * 判断一个Collection是否非空,包含List,Set,Queue
+ *
+ * @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);
+ }
+
+ /**
+ * 格式化文本, {} 表示占位符
+ * 此方法只是简单将占位符 {} 按照顺序替换为参数
+ * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
+ * 例:
+ * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b
+ * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a
+ * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
+ *
+ * @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");
+ }
+}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEntEnforcementRegistrationController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEntEnforcementRegistrationController.java
index 48a0aef1..4fe3f7d1 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEntEnforcementRegistrationController.java
+++ b/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 queryDetailById(@PathVariable("id") String id){
+ EnforcementRegistrationDetailVo detailVo = enforcementRegistrationService.queryDetailById(id);
+ return R.ok(detailVo);
+ }
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/dto/enterprise/EnforcementRegistrationQueryDTO.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/dto/enterprise/EnforcementRegistrationQueryDTO.java
index 738ec560..43a89801 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/dto/enterprise/EnforcementRegistrationQueryDTO.java
+++ b/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;
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementLawUserVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementLawUserVo.java
new file mode 100644
index 00000000..f77893d5
--- /dev/null
+++ b/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;
+}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationDetailVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationDetailVo.java
new file mode 100644
index 00000000..30df494c
--- /dev/null
+++ b/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;
+}
+
+
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationInfoVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationInfoVo.java
new file mode 100644
index 00000000..c3e15e26
--- /dev/null
+++ b/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);
+ }
+}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationListVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationListVo.java
index 6c7bd82e..859925fc 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnforcementRegistrationListVo.java
+++ b/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 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;
+ }
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnterpriseEvaluateInfoVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/enterprise/EnterpriseEvaluateInfoVo.java
new file mode 100644
index 00000000..0a79917d
--- /dev/null
+++ b/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;
+
+
+}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EnforcementRegistrationMapper.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EnforcementRegistrationMapper.java
index e997cfe5..2b68b09a 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EnforcementRegistrationMapper.java
+++ b/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 selectEnforcementRegistrationPage(@Param("page") Page page, @Param("dto") EnforcementRegistrationQueryDTO dto);
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnforcementRegistrationService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnforcementRegistrationService.java
index eff0fc22..63a56512 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnforcementRegistrationService.java
+++ b/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 queryEnforcementRegistrationPageList(EnforcementRegistrationQueryDTO dto, PageQuery pageQuery);
+
+ /**
+ * 企业端-执法登记详情
+ * @param id
+ * @return
+ */
+ EnforcementRegistrationDetailVo queryDetailById(@PathVariable("id") String id);
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseComplaintServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseComplaintServiceImpl.java
index 2b6cd898..708aa6e9 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseComplaintServiceImpl.java
+++ b/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;
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java
index b0f54d80..65ee514f 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java
+++ b/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 queryEnforcementRegistrationPageList(EnforcementRegistrationQueryDTO dto, PageQuery pageQuery) {
Page page = pageQuery.build();
IPage 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().eq(EnterpriseEvaluate::getEnforcementId, id)
+ );
+ if(evaluateVo != null){
+ EnterpriseEvaluateInfoVo enterpriseEvaluateInfoVo = new EnterpriseEvaluateInfoVo();
+ BeanUtil.copyProperties(evaluateVo,enterpriseEvaluateInfoVo);
+ detailVo.setEnterpriseEvaluateInfoVo(enterpriseEvaluateInfoVo);
+ }
+ }
+ return detailVo;
+ }
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementRegistrationMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementRegistrationMapper.xml
index 4fa23a03..a6336f49 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementRegistrationMapper.xml
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnforcementRegistrationMapper.xml
@@ -4,6 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+