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"> +