From 99c3b8abab04a85094478aa4504e04823c68034a Mon Sep 17 00:00:00 2001 From: wang Date: Tue, 20 Oct 2026 14:50:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../economic-crime-admin/pom.xml | 14 + .../admin/constant/AdminSwaggerTagConst.java | 4 + .../admin/interceptor/AdminInterceptor.java | 7 + .../alarm/constant/AlarmCaseSourceConst.java | 33 +- .../alarm/service/AlarmReportService.java | 51 +- .../controller/CaseRiskWarningController.java | 5 +- .../form/CaseRiskWarningProcessForm.java | 5 +- .../engine/CaseRiskWarningEngine.java | 2 +- .../service/CaseRiskWarningService.java | 3 +- .../CaseNegativeListController.java | 6 +- .../CaseWeeklyScheduleController.java | 6 +- .../form/CaseWeeklyScheduleCreateForm.java | 2 +- .../service/CaseNegativeListService.java | 3 +- .../service/CaseWeeklyScheduleService.java | 3 +- .../support/CaseSupervisionNotifySupport.java | 4 +- .../src/main/resources/dev/application.yaml | 4 + .../src/main/resources/pre/application.yaml | 4 + .../src/main/resources/prod/application.yaml | 4 + .../src/main/resources/test/application.yaml | 4 + .../lab1024/sa/base/config/FileConfig.java | 12 +- .../support/dict/manager/DictManager.java | 2 +- .../support/dict/service/DictService.java | 13 +- .../file/constant/FileFolderTypeEnum.java | 2 + .../file/controller/FileController.java | 6 + .../java/controller/Controller.java.vm | 5 +- .../java/service/Service.java.vm | 2 +- .../mapper/support/DictDataMapper.xml | 9 +- economic-crime-web/package.json | 3 +- .../src/api/support/dict-api.js | 30 +- .../support/dict-cascader/index.vue | 9 +- .../components/support/dict-label/index.vue | 2 +- .../components/support/dict-select/index.vue | 14 +- .../constants/business/alarm/alarm-const.js | 53 +- .../business/alarm/alarm-source-const.js | 3 +- .../src/constants/support/dict-const.js | 2 + .../src/constants/support/table-id-const.js | 10 + .../components/side-menu/recursion-menu.vue | 51 +- economic-crime-web/src/lib/smart-watermark.js | 5 +- economic-crime-web/src/router/system/home.js | 9 +- .../src/store/modules/system/dict.js | 13 +- .../src/store/modules/system/user.js | 18 +- .../business/alarm/alarm-reception-list.vue | 141 +++- .../src/views/business/alarm/audit-list.vue | 13 +- .../case-management/case-supervision.vue | 392 +---------- .../case-management/enterprise-record.vue | 371 +---------- .../business/case-management/evaluation.vue | 366 +---------- .../case-management/leader-record.vue | 321 +-------- .../case-management/two-books-one-form.vue | 614 +++++------------- .../views/business/review/general-list.vue | 251 +------ .../views/business/review/group-config.vue | 314 +-------- .../views/business/review/opinion-flow.vue | 207 +----- .../views/business/review/process-list.vue | 350 +--------- .../src/views/business/review/supervision.vue | 236 +------ .../src/views/portal/module-portal.vue | 1 + 54 files changed, 621 insertions(+), 3393 deletions(-) diff --git a/economic-crime-api/economic-crime-admin/pom.xml b/economic-crime-api/economic-crime-admin/pom.xml index fa9e6b7..8622a2b 100644 --- a/economic-crime-api/economic-crime-admin/pom.xml +++ b/economic-crime-api/economic-crime-admin/pom.xml @@ -79,4 +79,18 @@ + + + + work-db-test + + + org.postgresql + postgresql + 42.7.4 + test + + + + \ No newline at end of file diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java index fab932f..a67b7e4 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java @@ -29,6 +29,10 @@ public class AdminSwaggerTagConst extends SwaggerTagConst { public static final String MANAGER_DOSSIER = "卷宗管理"; + public static final String MANAGER_CASE_SUPERVISION = "案件监督管理"; + + public static final String MANAGER_CASE_RISK = "案件风险预警"; + } diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/interceptor/AdminInterceptor.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/interceptor/AdminInterceptor.java index bf0005a..5a43939 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/interceptor/AdminInterceptor.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/interceptor/AdminInterceptor.java @@ -52,6 +52,13 @@ public class AdminInterceptor implements HandlerInterceptor { return true; } + // 容器已判定的错误由 Spring 输出原始状态,避免附件 404 被改写为登录失效。 + // 仅内部 ERROR 分派到默认错误控制器可通过;直接请求和业务接口仍校验登录。 + if (request.getDispatcherType() == javax.servlet.DispatcherType.ERROR + && ((HandlerMethod) handler).getBeanType() == org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.class) { + return true; + } + try { // --------------- 第一步: 根据token 获取用户 --------------- diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/alarm/constant/AlarmCaseSourceConst.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/alarm/constant/AlarmCaseSourceConst.java index bba2411..bf9c603 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/alarm/constant/AlarmCaseSourceConst.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/alarm/constant/AlarmCaseSourceConst.java @@ -14,12 +14,21 @@ public final class AlarmCaseSourceConst { /** 行政执法机关移交 */ public static final String ADMIN_TRANSFER = "admin_transfer"; - /** 人民法院移交 */ + /** 人民法院移交(历史兼容) */ public static final String COURT_TRANSFER = "court_transfer"; + /** 人民法院移送普通案件 */ + public static final String COURT_TRANSFER_NORMAL = "court_transfer_normal"; + + /** 人民法院移送虚假诉讼类案件 */ + public static final String COURT_TRANSFER_FALSE = "court_transfer_false"; + /** 人民检察院移交 */ public static final String PROSECUTORATE_TRANSFER = "procuratorate_transfer"; + /** 人民检察院通知立案 */ + public static final String PROCURATORATE_NOTIFY = "procuratorate_notify"; + /** 上级交办 */ public static final String SUPERIOR_ASSIGN = "superior_assign"; @@ -35,6 +44,25 @@ public final class AlarmCaseSourceConst { /** 检察院移交 - 其他案件 */ public static final String SUB_OTHER = "other"; + /** + * 判断是否为人民法院移送虚假诉讼类 + */ + public static boolean isCourtFalse(String caseSource, String caseSourceSub) { + if (COURT_TRANSFER_FALSE.equals(caseSource)) { + return true; + } + return COURT_TRANSFER.equals(caseSource) && SUB_FALSE_LITIGATION.equals(caseSourceSub); + } + + /** + * 判断是否属于人民法院移送类(含历史和普通案件) + */ + public static boolean isCourtSource(String caseSource) { + return COURT_TRANSFER.equals(caseSource) + || COURT_TRANSFER_NORMAL.equals(caseSource) + || COURT_TRANSFER_FALSE.equals(caseSource); + } + public static String resolveLabel(String caseSource) { if (caseSource == null || caseSource.isBlank()) { return "当事人报案"; @@ -43,7 +71,10 @@ public final class AlarmCaseSourceConst { case PARTY_REPORT -> "当事人报案"; case ADMIN_TRANSFER -> "行政执法机关移交"; case COURT_TRANSFER -> "人民法院移交"; + case COURT_TRANSFER_NORMAL -> "人民法院移送普通案件"; + case COURT_TRANSFER_FALSE -> "人民法院移送虚假诉讼类案件"; case PROSECUTORATE_TRANSFER -> "人民检察院移交"; + case PROCURATORATE_NOTIFY -> "人民检察院通知立案"; case SUPERIOR_ASSIGN -> "上级交办"; case WORK_DISCOVERY -> "工作中发现"; case OTHER_UNIT_TRANSFER -> "其他单位移交"; diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/alarm/service/AlarmReportService.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/alarm/service/AlarmReportService.java index 38ec18b..fc5971e 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/alarm/service/AlarmReportService.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/alarm/service/AlarmReportService.java @@ -466,7 +466,7 @@ public class AlarmReportService { if (!pageResult.getEmptyFlag()) { // 填充字典名称 list.forEach(vo -> { - vo.setCategoryName(dictService.getDictDataLabel("CASE_TYPE", vo.getCaseTypeCode())); + vo.setCategoryName(resolveCaseTypeName(vo.getCaseTypeCode())); fillAlarmSourceInfo(vo); fillCaseSourceInfo(vo); fillAlarmCategoryInfo(vo); @@ -647,7 +647,7 @@ public class AlarmReportService { AlarmDetailVO detailVO = SmartBeanUtil.copy(entity, AlarmDetailVO.class); // 填充字典名称 - detailVO.setCategoryName(dictService.getDictDataLabel("CASE_TYPE", detailVO.getCaseTypeCode())); + detailVO.setCategoryName(resolveCaseTypeName(detailVO.getCaseTypeCode())); fillAlarmSourceInfo(detailVO); fillCaseSourceInfo(detailVO); fillAlarmCategoryInfo(detailVO); @@ -854,7 +854,7 @@ public class AlarmReportService { } AlarmReportVO vo = SmartBeanUtil.copy(entity, AlarmReportVO.class); - vo.setCategoryName(dictService.getDictDataLabel("CASE_TYPE", vo.getCaseTypeCode())); + vo.setCategoryName(resolveCaseTypeName(vo.getCaseTypeCode())); vo.setAlarmSourceName(dictService.getDictDataLabel("ALARM_SOURCE", vo.getAlarmSource())); vo.setAlarmLevelName(dictService.getDictDataLabel("ALARM_LEVEL", vo.getAlarmLevel())); fillStatusInfo(vo); @@ -888,7 +888,7 @@ public class AlarmReportService { List entities = alarmReportDao.selectList(queryWrapper); List list = entities.stream().map(entity -> { AlarmReportVO vo = SmartBeanUtil.copy(entity, AlarmReportVO.class); - vo.setCategoryName(dictService.getDictDataLabel("CASE_TYPE", vo.getCaseTypeCode())); + vo.setCategoryName(resolveCaseTypeName(vo.getCaseTypeCode())); fillAlarmSourceInfo(vo); fillCaseSourceInfo(vo); fillAlarmCategoryInfo(vo); @@ -1310,7 +1310,7 @@ public class AlarmReportService { if (StringUtils.isNotBlank(form.getAlarmSource())) { entity.setAlarmSource(form.getAlarmSource()); } - entity.setCaseSource(normalizeCaseSource(form.getCaseSource())); + entity.setCaseSource(AlarmCaseSourceConst.normalize(form.getCaseSource(), form.getCaseSourceSub())); entity.setCaseSourceSub(normalizeCaseSourceSub(form.getCaseSource(), form.getCaseSourceSub())); entity.setAcceptingUnit(normalizeAcceptingUnit(form.getCaseSource(), form.getAcceptingUnit())); } @@ -1319,10 +1319,10 @@ public class AlarmReportService { if (form == null || !ALARM_CATEGORY_PENDING_REVIEW.equals(form.getAlarmCategory())) { return null; } - String caseSource = normalizeCaseSource(form.getCaseSource()); - if (AlarmCaseSourceConst.COURT_TRANSFER.equals(caseSource)) { + String caseSource = AlarmCaseSourceConst.normalize(form.getCaseSource(), form.getCaseSourceSub()); + if (AlarmCaseSourceConst.isCourtSource(caseSource)) { if (StringUtils.isBlank(form.getAcceptingUnit())) { - return ResponseDTO.userErrorParam("人民法院移交时请填写受案单位"); + return ResponseDTO.userErrorParam("人民法院移送时请填写受案单位"); } } if (AlarmCaseSourceConst.PROSECUTORATE_TRANSFER.equals(caseSource)) { @@ -1330,7 +1330,7 @@ public class AlarmReportService { if (StringUtils.isBlank(sub) || (!AlarmCaseSourceConst.SUB_FALSE_LITIGATION.equals(sub) && !AlarmCaseSourceConst.SUB_OTHER.equals(sub))) { - return ResponseDTO.userErrorParam("人民检察院移交请选择案件类型"); + return ResponseDTO.userErrorParam("人民检察院移送请选择案件类型"); } } return null; @@ -1344,6 +1344,13 @@ public class AlarmReportService { } private String normalizeCaseSourceSub(String caseSource, String caseSourceSub) { + String source = AlarmCaseSourceConst.normalize(caseSource, caseSourceSub); + if (AlarmCaseSourceConst.COURT_TRANSFER_FALSE.equals(source)) { + return AlarmCaseSourceConst.SUB_FALSE_LITIGATION; + } + if (AlarmCaseSourceConst.COURT_TRANSFER_NORMAL.equals(source)) { + return "normal"; + } if (!AlarmCaseSourceConst.PROSECUTORATE_TRANSFER.equals(normalizeCaseSource(caseSource))) { return null; } @@ -1351,7 +1358,7 @@ public class AlarmReportService { } private String normalizeAcceptingUnit(String caseSource, String acceptingUnit) { - if (!AlarmCaseSourceConst.COURT_TRANSFER.equals(normalizeCaseSource(caseSource))) { + if (!AlarmCaseSourceConst.isCourtSource(normalizeCaseSource(caseSource))) { return null; } return StringUtils.isBlank(acceptingUnit) ? null : acceptingUnit.trim(); @@ -1361,9 +1368,7 @@ public class AlarmReportService { if (vo == null) { return; } - if (StringUtils.isBlank(vo.getCaseSource())) { - vo.setCaseSource(AlarmCaseSourceConst.PARTY_REPORT); - } + vo.setCaseSource(AlarmCaseSourceConst.normalize(vo.getCaseSource(), vo.getCaseSourceSub())); vo.setCaseSourceName(resolveCaseSourceName(vo.getCaseSource())); vo.setCaseSourceSubName(resolveCaseSourceSubName(vo.getCaseSourceSub())); } @@ -1372,14 +1377,16 @@ public class AlarmReportService { if (vo == null) { return; } - if (StringUtils.isBlank(vo.getCaseSource())) { - vo.setCaseSource(AlarmCaseSourceConst.PARTY_REPORT); - } + vo.setCaseSource(AlarmCaseSourceConst.normalize(vo.getCaseSource(), vo.getCaseSourceSub())); vo.setCaseSourceName(resolveCaseSourceName(vo.getCaseSource())); vo.setCaseSourceSubName(resolveCaseSourceSubName(vo.getCaseSourceSub())); } private String resolveCaseSourceName(String caseSource) { + String canonicalLabel = AlarmCaseSourceConst.resolveLabel(caseSource); + if (!java.util.Objects.equals(canonicalLabel, caseSource)) { + return canonicalLabel; + } String label = dictService.getDictDataLabel("CASE_SOURCE", caseSource); if (StringUtils.isNotBlank(label)) { return label; @@ -1474,6 +1481,15 @@ public class AlarmReportService { vo.setDisposalStatus(temp.getDisposalStatus()); } + /** 当前分类使用77类,未知的历史编码才回退旧字典,避免旧库无法回显。 */ + private String resolveCaseTypeName(String code) { + if (StringUtils.isBlank(code)) return ""; + if ("00".equals(code)) return "待定性"; + String label = dictService.getDictDataLabel("CASE_TYPE_77", code); + if (StringUtils.isBlank(label)) label = dictService.getDictDataLabel("CASE_TYPE", code); + return StringUtils.isBlank(label) ? code : label; + } + private String resolveStatusName(String status) { if (StringUtils.isBlank(status)) { return "-"; @@ -1514,6 +1530,9 @@ public class AlarmReportService { if ("pending_info".equals(disposalStatus)) { disposalStatus = "pending_review"; } + if ("pending_review".equals(disposalStatus)) { + return ALARM_CATEGORY_NON_ECONOMIC.equals(alarmCategory) ? "待审核" : "待定性审核"; + } String label = dictService.getDictDataLabel("ALARM_DISPOSAL_STATUS", disposalStatus); if (StringUtils.isNotBlank(label)) { return label; diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/controller/CaseRiskWarningController.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/controller/CaseRiskWarningController.java index f5174a6..98eab16 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/controller/CaseRiskWarningController.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/controller/CaseRiskWarningController.java @@ -3,8 +3,7 @@ package net.lab1024.sa.admin.module.business.caserisk.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; + import net.lab1024.sa.admin.constant.AdminSwaggerTagConst; import net.lab1024.sa.admin.module.business.caserisk.domain.form.CaseRiskWarningProcessForm; import net.lab1024.sa.admin.module.business.caserisk.domain.form.CaseRiskWarningQueryForm; @@ -15,6 +14,8 @@ import net.lab1024.sa.base.common.domain.PageResult; import net.lab1024.sa.base.common.domain.ResponseDTO; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import javax.validation.Valid; import java.util.List; import java.util.Map; diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/domain/form/CaseRiskWarningProcessForm.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/domain/form/CaseRiskWarningProcessForm.java index ac027b3..7827386 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/domain/form/CaseRiskWarningProcessForm.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/domain/form/CaseRiskWarningProcessForm.java @@ -1,9 +1,10 @@ package net.lab1024.sa.admin.module.business.caserisk.domain.form; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import lombok.Data; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + @Data public class CaseRiskWarningProcessForm { diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/engine/CaseRiskWarningEngine.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/engine/CaseRiskWarningEngine.java index c9706e9..da9449e 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/engine/CaseRiskWarningEngine.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/engine/CaseRiskWarningEngine.java @@ -1,7 +1,6 @@ package net.lab1024.sa.admin.module.business.caserisk.engine; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import jakarta.annotation.Resource; import net.lab1024.sa.admin.module.business.alarm.constant.AlarmCaseSourceConst; import net.lab1024.sa.admin.module.business.caserisk.constant.CaseLegalDocConst; import net.lab1024.sa.admin.module.business.caserisk.constant.CaseRiskWarningConst; @@ -17,6 +16,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/service/CaseRiskWarningService.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/service/CaseRiskWarningService.java index 06735f9..9e99ef8 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/service/CaseRiskWarningService.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/caserisk/service/CaseRiskWarningService.java @@ -1,7 +1,7 @@ package net.lab1024.sa.admin.module.business.caserisk.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import jakarta.annotation.Resource; + import net.lab1024.sa.admin.module.business.caserisk.constant.CaseRiskWarningConst; import net.lab1024.sa.admin.module.business.caserisk.dao.CaseRiskWarningDao; import net.lab1024.sa.admin.module.business.caserisk.domain.entity.CaseRiskWarningEntity; @@ -19,6 +19,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.LinkedHashMap; diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/controller/CaseNegativeListController.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/controller/CaseNegativeListController.java index 5fb0296..8de5d58 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/controller/CaseNegativeListController.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/controller/CaseNegativeListController.java @@ -3,8 +3,7 @@ package net.lab1024.sa.admin.module.business.casesupervision.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; + import net.lab1024.sa.admin.constant.AdminSwaggerTagConst; import net.lab1024.sa.admin.module.business.casesupervision.domain.form.CaseNegativeListQueryForm; import net.lab1024.sa.admin.module.business.casesupervision.domain.vo.CaseNegativeListVO; @@ -15,6 +14,9 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; +import javax.validation.Valid; + @RestController @Tag(name = AdminSwaggerTagConst.Business.MANAGER_CASE_SUPERVISION) public class CaseNegativeListController { diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/controller/CaseWeeklyScheduleController.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/controller/CaseWeeklyScheduleController.java index 465f0e5..9e77651 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/controller/CaseWeeklyScheduleController.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/controller/CaseWeeklyScheduleController.java @@ -1,10 +1,12 @@ package net.lab1024.sa.admin.module.business.casesupervision.controller; +import javax.annotation.Resource; +import javax.validation.Valid; + import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; + import net.lab1024.sa.admin.constant.AdminSwaggerTagConst; import net.lab1024.sa.admin.module.business.casesupervision.domain.form.CaseNegativeListQueryForm; import net.lab1024.sa.admin.module.business.casesupervision.domain.form.CaseWeeklyScheduleCreateForm; diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/domain/form/CaseWeeklyScheduleCreateForm.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/domain/form/CaseWeeklyScheduleCreateForm.java index f6368a2..c327450 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/domain/form/CaseWeeklyScheduleCreateForm.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/domain/form/CaseWeeklyScheduleCreateForm.java @@ -1,8 +1,8 @@ package net.lab1024.sa.admin.module.business.casesupervision.domain.form; -import jakarta.validation.constraints.NotEmpty; import lombok.Data; +import javax.validation.constraints.NotEmpty; import java.time.LocalDateTime; import java.util.List; diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/service/CaseNegativeListService.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/service/CaseNegativeListService.java index e2673b1..5710817 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/service/CaseNegativeListService.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/service/CaseNegativeListService.java @@ -2,7 +2,7 @@ package net.lab1024.sa.admin.module.business.casesupervision.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import jakarta.annotation.Resource; + import net.lab1024.sa.admin.module.business.caserisk.dao.CaseFileDao; import net.lab1024.sa.admin.module.business.caserisk.domain.entity.CaseFileEntity; import net.lab1024.sa.admin.module.business.casesupervision.constant.CaseSupervisionConst; @@ -14,6 +14,7 @@ import net.lab1024.sa.base.common.util.SmartPageUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.time.LocalDate; import java.util.List; import java.util.stream.Collectors; diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/service/CaseWeeklyScheduleService.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/service/CaseWeeklyScheduleService.java index 1d35c67..eb28de8 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/service/CaseWeeklyScheduleService.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/service/CaseWeeklyScheduleService.java @@ -2,7 +2,7 @@ package net.lab1024.sa.admin.module.business.casesupervision.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import jakarta.annotation.Resource; + import net.lab1024.sa.admin.module.business.caserisk.dao.CaseFileDao; import net.lab1024.sa.admin.module.business.caserisk.domain.entity.CaseFileEntity; import net.lab1024.sa.admin.module.business.casesupervision.constant.CaseSupervisionConst; @@ -30,6 +30,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/support/CaseSupervisionNotifySupport.java b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/support/CaseSupervisionNotifySupport.java index 96e2b85..f74fa3e 100644 --- a/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/support/CaseSupervisionNotifySupport.java +++ b/economic-crime-api/economic-crime-admin/src/main/java/net/lab1024/sa/admin/module/business/casesupervision/support/CaseSupervisionNotifySupport.java @@ -1,6 +1,6 @@ package net.lab1024.sa.admin.module.business.casesupervision.support; -import jakarta.annotation.Resource; + import net.lab1024.sa.base.common.enumeration.UserTypeEnum; import net.lab1024.sa.base.module.support.message.constant.MessageTypeEnum; import net.lab1024.sa.base.module.support.message.domain.MessageSendForm; @@ -8,6 +8,8 @@ import net.lab1024.sa.base.module.support.message.service.MessageService; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; +import javax.annotation.Resource; + @Component public class CaseSupervisionNotifySupport { diff --git a/economic-crime-api/economic-crime-admin/src/main/resources/dev/application.yaml b/economic-crime-api/economic-crime-admin/src/main/resources/dev/application.yaml index 364252f..c6876a7 100644 --- a/economic-crime-api/economic-crime-admin/src/main/resources/dev/application.yaml +++ b/economic-crime-api/economic-crime-admin/src/main/resources/dev/application.yaml @@ -23,5 +23,9 @@ management: # 环境 spring: + servlet: + multipart: + max-file-size: 20MB + max-request-size: 25MB profiles: active: dev \ No newline at end of file diff --git a/economic-crime-api/economic-crime-admin/src/main/resources/pre/application.yaml b/economic-crime-api/economic-crime-admin/src/main/resources/pre/application.yaml index 67b2396..5e21b6a 100644 --- a/economic-crime-api/economic-crime-admin/src/main/resources/pre/application.yaml +++ b/economic-crime-api/economic-crime-admin/src/main/resources/pre/application.yaml @@ -18,5 +18,9 @@ server: # 环境 spring: + servlet: + multipart: + max-file-size: 20MB + max-request-size: 25MB profiles: active: pre \ No newline at end of file diff --git a/economic-crime-api/economic-crime-admin/src/main/resources/prod/application.yaml b/economic-crime-api/economic-crime-admin/src/main/resources/prod/application.yaml index 24cad6f..4abe3ae 100644 --- a/economic-crime-api/economic-crime-admin/src/main/resources/prod/application.yaml +++ b/economic-crime-api/economic-crime-admin/src/main/resources/prod/application.yaml @@ -18,5 +18,9 @@ server: # 环境 spring: + servlet: + multipart: + max-file-size: 20MB + max-request-size: 25MB profiles: active: prod \ No newline at end of file diff --git a/economic-crime-api/economic-crime-admin/src/main/resources/test/application.yaml b/economic-crime-api/economic-crime-admin/src/main/resources/test/application.yaml index 3abc86e..7677538 100644 --- a/economic-crime-api/economic-crime-admin/src/main/resources/test/application.yaml +++ b/economic-crime-api/economic-crime-admin/src/main/resources/test/application.yaml @@ -18,5 +18,9 @@ server: # 环境 spring: + servlet: + multipart: + max-file-size: 20MB + max-request-size: 25MB profiles: active: test \ No newline at end of file diff --git a/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java b/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java index c6df40a..315adda 100644 --- a/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java +++ b/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/config/FileConfig.java @@ -103,7 +103,17 @@ public class FileConfig implements WebMvcConfigurer { location = location + "/"; } log.info("本地文件访问目录: {}", uploadDir.getAbsolutePath()); - registry.addResourceHandler(FileStorageLocalServiceImpl.UPLOAD_MAPPING + "/**").addResourceLocations(location); + registry.addResourceHandler(FileStorageLocalServiceImpl.UPLOAD_MAPPING + "/**").addResourceLocations(location) + .resourceChain(false).addResolver(new org.springframework.web.servlet.resource.PathResourceResolver() { + @Override + protected boolean checkResource(org.springframework.core.io.Resource resource, + org.springframework.core.io.Resource resourceLocation) throws java.io.IOException { + // 私有附件只能经业务控制器授权下载,禁止静态URL及符号链接绕过。 + java.nio.file.Path privateRoot = new File(uploadDir, "private").getCanonicalFile().toPath(); + return super.checkResource(resource, resourceLocation) + && !resource.getFile().getCanonicalFile().toPath().startsWith(privateRoot); + } + }); } } diff --git a/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/dict/manager/DictManager.java b/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/dict/manager/DictManager.java index 2b12fe6..3d5c61d 100644 --- a/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/dict/manager/DictManager.java +++ b/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/dict/manager/DictManager.java @@ -32,7 +32,7 @@ public class DictManager { /** * 获取字典 */ - @Cacheable(value = CacheKeyConst.Dict.DICT_DATA, key = "#dictCode + '_' + #dataValue") + @Cacheable(value = CacheKeyConst.Dict.DICT_DATA, key = "#dictCode + '_' + #dataValue", unless = "#result == null") public DictDataVO getDictData(String dictCode, String dataValue) { DictEntity dictEntity = dictDao.selectByCode(dictCode); if (dictEntity == null) { diff --git a/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictService.java b/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictService.java index 099c656..7069e0d 100644 --- a/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictService.java +++ b/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/dict/service/DictService.java @@ -89,6 +89,7 @@ public class DictService { /** * 禁用 启用 */ + @CacheEvict(value = CacheKeyConst.Dict.DICT_DATA, allEntries = true) public ResponseDTO updateDisabled(Long dictId) { DictEntity dictEntity = dictDao.selectById(dictId); if (dictEntity == null) { @@ -103,7 +104,7 @@ public class DictService { /** * 更新 */ - @CacheEvict(CacheKeyConst.Dict.DICT_DATA) + @CacheEvict(value = CacheKeyConst.Dict.DICT_DATA, allEntries = true) public synchronized ResponseDTO update(DictUpdateForm updateForm) { DictEntity existDictCode = dictDao.selectByCode(updateForm.getDictCode()); if (null != existDictCode && !existDictCode.getDictId().equals(updateForm.getDictId())) { @@ -118,7 +119,7 @@ public class DictService { /** * 批量删除 */ - @CacheEvict(CacheKeyConst.Dict.DICT_DATA) + @CacheEvict(value = CacheKeyConst.Dict.DICT_DATA, allEntries = true) public synchronized ResponseDTO batchDelete(List idList) { if (CollectionUtils.isEmpty(idList)) { return ResponseDTO.ok(); @@ -131,7 +132,7 @@ public class DictService { /** * 单个删除 */ - @CacheEvict(CacheKeyConst.Dict.DICT_DATA) + @CacheEvict(value = CacheKeyConst.Dict.DICT_DATA, allEntries = true) public synchronized ResponseDTO delete(Long dictId) { if (null == dictId) { return ResponseDTO.ok(); @@ -170,6 +171,7 @@ public class DictService { /** * 添加 */ + @CacheEvict(value = CacheKeyConst.Dict.DICT_DATA, allEntries = true) public synchronized ResponseDTO addDictData(DictDataAddForm addForm) { addForm.setDataValue(SmartStringUtil.trim(addForm.getDataValue())); @@ -192,7 +194,7 @@ public class DictService { /** * 更新 */ - @CacheEvict(value = CacheKeyConst.Dict.DICT_DATA, key = "#updateForm.dictCode + '_' + #updateForm.dataValue") + @CacheEvict(value = CacheKeyConst.Dict.DICT_DATA, allEntries = true) public synchronized ResponseDTO updateDictData(DictDataUpdateForm updateForm) { updateForm.setDataValue(SmartStringUtil.trim(updateForm.getDataValue())); @@ -215,6 +217,7 @@ public class DictService { /** * 批量删除 */ + @CacheEvict(value = CacheKeyConst.Dict.DICT_DATA, allEntries = true) public synchronized ResponseDTO batchDeleteDictData(List idList) { if (CollectionUtils.isEmpty(idList)) { return ResponseDTO.ok(); @@ -229,6 +232,7 @@ public class DictService { /** * 单个删除 */ + @CacheEvict(value = CacheKeyConst.Dict.DICT_DATA, allEntries = true) public synchronized ResponseDTO deleteDictData(Long dictDataId) { if (null == dictDataId) { return ResponseDTO.ok(); @@ -260,6 +264,7 @@ public class DictService { /** * 更新启用/禁用 */ + @CacheEvict(value = CacheKeyConst.Dict.DICT_DATA, allEntries = true) public synchronized ResponseDTO updateDictDataDisabled(Long dictDataId) { DictDataEntity dictDataEntity = dictDataDao.selectById(dictDataId); if (dictDataEntity == null) { diff --git a/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/file/constant/FileFolderTypeEnum.java b/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/file/constant/FileFolderTypeEnum.java index a8f750f..75fe996 100644 --- a/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/file/constant/FileFolderTypeEnum.java +++ b/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/file/constant/FileFolderTypeEnum.java @@ -39,6 +39,8 @@ public enum FileFolderTypeEnum implements BaseEnum { */ PROPERTY(5, FileFolderTypeEnum.FOLDER_PUBLIC + "/property/", "涉案财物"), + TWO_BOOKS(6, FileFolderTypeEnum.FOLDER_PRIVATE + "/two-books/", "两书一单"), + ; /** diff --git a/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/file/controller/FileController.java b/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/file/controller/FileController.java index 672a091..2ad747f 100644 --- a/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/file/controller/FileController.java +++ b/economic-crime-api/economic-crime-base/src/main/java/net/lab1024/sa/base/module/support/file/controller/FileController.java @@ -41,6 +41,7 @@ public class FileController extends SupportBaseController { @Operation(summary = "文件上传 ") @PostMapping("/file/upload") public ResponseDTO upload(@RequestParam MultipartFile file, @RequestParam Integer folder) { + if (Integer.valueOf(6).equals(folder)) return ResponseDTO.userErrorParam("请通过两书一单页面上传附件"); RequestUser requestUser = SmartRequestUtil.getRequestUser(); return fileService.fileUpload(file, folder, requestUser); } @@ -48,12 +49,17 @@ public class FileController extends SupportBaseController { @Operation(summary = "获取文件URL:根据fileKey ") @GetMapping("/file/getFileUrl") public ResponseDTO getUrl(@RequestParam String fileKey) { + if (fileKey.startsWith("private/")) return ResponseDTO.userErrorParam("私有附件请通过对应业务页面访问"); return fileService.getFileUrl(fileKey); } @Operation(summary = "下载文件流(根据fileKey) ") @GetMapping("/file/downLoad") public void downLoad(@RequestParam String fileKey, HttpServletRequest request, HttpServletResponse response) throws IOException { + if (fileKey.startsWith("private/")) { + SmartResponseUtil.write(response, ResponseDTO.userErrorParam("私有附件请通过对应业务页面下载")); + return; + } String userAgent = ServletUtil.getHeaderIgnoreCase(request, RequestHeaderConst.USER_AGENT); ResponseDTO downloadFileResult = fileService.getDownloadFile(fileKey, userAgent); if (!downloadFileResult.getOk()) { diff --git a/economic-crime-api/economic-crime-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm b/economic-crime-api/economic-crime-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm index 3d0657b..8107e4a 100644 --- a/economic-crime-api/economic-crime-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm +++ b/economic-crime-api/economic-crime-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm @@ -11,8 +11,9 @@ import org.springframework.web.bind.annotation.RestController; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; + +import javax.validation.Valid; +import javax.annotation.Resource; /** * ${basic.description} Controller diff --git a/economic-crime-api/economic-crime-base/src/main/resources/code-generator-template/java/service/Service.java.vm b/economic-crime-api/economic-crime-base/src/main/resources/code-generator-template/java/service/Service.java.vm index e21bb2f..702a09d 100644 --- a/economic-crime-api/economic-crime-base/src/main/resources/code-generator-template/java/service/Service.java.vm +++ b/economic-crime-api/economic-crime-base/src/main/resources/code-generator-template/java/service/Service.java.vm @@ -10,8 +10,8 @@ import net.lab1024.sa.base.common.domain.PageResult; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; -import jakarta.annotation.Resource; /** * ${basic.description} Service diff --git a/economic-crime-api/economic-crime-base/src/main/resources/mapper/support/DictDataMapper.xml b/economic-crime-api/economic-crime-base/src/main/resources/mapper/support/DictDataMapper.xml index 0a3ae5c..897d52b 100644 --- a/economic-crime-api/economic-crime-base/src/main/resources/mapper/support/DictDataMapper.xml +++ b/economic-crime-api/economic-crime-base/src/main/resources/mapper/support/DictDataMapper.xml @@ -20,10 +20,15 @@ diff --git a/economic-crime-web/package.json b/economic-crime-web/package.json index 2932a8b..25ab7d5 100644 --- a/economic-crime-web/package.json +++ b/economic-crime-web/package.json @@ -13,7 +13,8 @@ "dev": "vite", "build:test": "vite build --base=/admin/ --mode test", "build:pre": "vite build --mode pre", - "build:prod": "vite build --mode production" + "build:prod": "vite build --mode production", + "build:war": "vite build --mode production && cd dist && jar -cvf ../economic-crime-web.war * && cp ../economic-crime-web.war ../实施交付包/1.部署包_WAR/ && echo 'WAR打包成功!产物已就绪:economic-crime-web.war'" }, "type": "module", "dependencies": { diff --git a/economic-crime-web/src/api/support/dict-api.js b/economic-crime-web/src/api/support/dict-api.js index be56224..f411e7c 100644 --- a/economic-crime-web/src/api/support/dict-api.js +++ b/economic-crime-web/src/api/support/dict-api.js @@ -8,6 +8,20 @@ * @Copyright 1024创新实验室 ( https://1024lab.net ),Since 2012 */ import { postRequest, getRequest } from '/@/lib/axios'; +import { useDictStore } from '/@/store/modules/system/dict'; +import { message } from 'ant-design-vue'; + +// 字典写入成功后刷新当前浏览器的选项与标签;刷新失败不误报写入失败。 +async function mutateAndRefresh(request) { + const response = await request; + try { + const latest = await getRequest('/support/dict/getAllDictData'); + useDictStore().initData(latest.data); + } catch (error) { + message.warning('字典已保存,但缓存刷新失败,请刷新页面后重试查看'); + } + return response; +} export const dictApi = { @@ -28,22 +42,22 @@ export const dictApi = { // 添加 @author 1024创新实验室-主任-卓大 addDict: (param) => { - return postRequest('/support/dict/add', param); + return mutateAndRefresh(postRequest('/support/dict/add', param)); }, // 更新 @author 1024创新实验室-主任-卓大 updateDict: (param) => { - return postRequest('/support/dict/update', param); + return mutateAndRefresh(postRequest('/support/dict/update', param)); }, // 字典-删除- @author 卓大 batchDeleteDict: (dictIdList) => { - return postRequest('/support/dict/batchDelete', dictIdList); + return mutateAndRefresh(postRequest('/support/dict/batchDelete', dictIdList)); }, // 字典 启用 禁用 @author 1024创新实验室-主任-卓大 updateDisabled: (dictId) => { - return getRequest(`/support/dict/updateDisabled/${dictId}`); + return mutateAndRefresh(getRequest(`/support/dict/updateDisabled/${dictId}`)); }, // ------------- 查询字典数据 ------------- @@ -55,21 +69,21 @@ export const dictApi = { // 字典数据 添加 - @author 卓大 addDictData: (param) => { - return postRequest('/support/dict/dictData/add', param); + return mutateAndRefresh(postRequest('/support/dict/dictData/add', param)); }, // 字典数据 更新- @author 卓大 updateDictData: (param) => { - return postRequest('/support/dict/dictData/update', param); + return mutateAndRefresh(postRequest('/support/dict/dictData/update', param)); }, // 字典数据-删除- @author 卓大 batchDeleteDictData: (dictDataIdList) => { - return postRequest('/support/dict/dictData/batchDelete', dictDataIdList); + return mutateAndRefresh(postRequest('/support/dict/dictData/batchDelete', dictDataIdList)); }, // 字典数据 启用 禁用 @author 1024创新实验室-主任-卓大 updateDictDataDisabled: (dictDataId) => { - return getRequest(`/support/dict/dictData/updateDisabled/${dictDataId}`); + return mutateAndRefresh(getRequest(`/support/dict/dictData/updateDisabled/${dictDataId}`)); }, }; diff --git a/economic-crime-web/src/components/support/dict-cascader/index.vue b/economic-crime-web/src/components/support/dict-cascader/index.vue index 1093d5f..2c6f3ad 100644 --- a/economic-crime-web/src/components/support/dict-cascader/index.vue +++ b/economic-crime-web/src/components/support/dict-cascader/index.vue @@ -167,9 +167,12 @@ function initOptions() { const list = useDictStore().getDictData(props.dictCode) || []; + // 保留停用项的历史回显,但不允许新选择停用项及其子项。 pathIndex.value = buildDictPathIndex(list); - flatOptions.value = buildDictFlatOptions(list, { leafOnly: props.leafOnly }); - treeData.value = buildDictTree(list).map((node) => mapTreeNode(node)); + const disabledCodes = new Set(list.filter((item) => item.disabledFlag).map((item) => item.dataValue)); + const activeList = list.filter((item) => !pathIndex.value.get(item.dataValue)?.codes.some((code) => disabledCodes.has(code))); + flatOptions.value = buildDictFlatOptions(activeList, { leafOnly: props.leafOnly }); + treeData.value = buildDictTree(activeList).map((node) => mapTreeNode(node)); expandedKeys.value = treeData.value.slice(0, 8).map((node) => node.key); } @@ -265,7 +268,7 @@ onMounted(initOptions); watch( - () => [props.dictCode, props.leafOnly], + () => [props.dictCode, props.leafOnly, useDictStore().getDictData(props.dictCode)], () => initOptions(), ); diff --git a/economic-crime-web/src/components/support/dict-label/index.vue b/economic-crime-web/src/components/support/dict-label/index.vue index 1f5d3f0..0a5b249 100644 --- a/economic-crime-web/src/components/support/dict-label/index.vue +++ b/economic-crime-web/src/components/support/dict-label/index.vue @@ -8,7 +8,7 @@ const props = defineProps({ dictCode: String, - dataValue: String, + dataValue: [String, Number], }); const dataLabels = computed(() => { return useDictStore().getDataLabels(props.dictCode, props.dataValue); diff --git a/economic-crime-web/src/components/support/dict-select/index.vue b/economic-crime-web/src/components/support/dict-select/index.vue index 49f88bf..ddbd033 100644 --- a/economic-crime-web/src/components/support/dict-select/index.vue +++ b/economic-crime-web/src/components/support/dict-select/index.vue @@ -20,7 +20,7 @@ @change="onChange" :disabled="disabled" > - + {{ item.dataLabel }} @@ -28,7 +28,7 @@ - - diff --git a/economic-crime-web/src/views/business/case-management/enterprise-record.vue b/economic-crime-web/src/views/business/case-management/enterprise-record.vue index 7fe07cd..dd38a7b 100644 --- a/economic-crime-web/src/views/business/case-management/enterprise-record.vue +++ b/economic-crime-web/src/views/business/case-management/enterprise-record.vue @@ -1,371 +1,4 @@ - - - + - - diff --git a/economic-crime-web/src/views/business/case-management/evaluation.vue b/economic-crime-web/src/views/business/case-management/evaluation.vue index accb277..40a554c 100644 --- a/economic-crime-web/src/views/business/case-management/evaluation.vue +++ b/economic-crime-web/src/views/business/case-management/evaluation.vue @@ -1,366 +1,4 @@ - - - + - - diff --git a/economic-crime-web/src/views/business/case-management/leader-record.vue b/economic-crime-web/src/views/business/case-management/leader-record.vue index 2d27738..8134101 100644 --- a/economic-crime-web/src/views/business/case-management/leader-record.vue +++ b/economic-crime-web/src/views/business/case-management/leader-record.vue @@ -1,321 +1,4 @@ - - - + - - diff --git a/economic-crime-web/src/views/business/case-management/two-books-one-form.vue b/economic-crime-web/src/views/business/case-management/two-books-one-form.vue index 372424d..5334d1e 100644 --- a/economic-crime-web/src/views/business/case-management/two-books-one-form.vue +++ b/economic-crime-web/src/views/business/case-management/two-books-one-form.vue @@ -10,13 +10,14 @@ -
+
- + - + +
+ - + -
+
@@ -192,49 +197,42 @@ - + - + 风险防范提示书 风险防范建议书 风险预警备案单 - - - - {{ e.name }} - - + + - - + + - + 待处理 处理中 已完成 - - + + - + - - + + - + - - - - 选择文件 - + + 上传附件 -
支持 PDF/Word/Excel,最多3个文件
+
+
+ {{ file.name }} + 下载 + (保存后可下载) +
+
+
支持PDF/Word/Excel,每个不超过20MB,最多3个;移除附件在保存文书后生效。
diff --git a/economic-crime-web/src/views/business/review/group-config.vue b/economic-crime-web/src/views/business/review/group-config.vue index 3175a12..3d8d09c 100644 --- a/economic-crime-web/src/views/business/review/group-config.vue +++ b/economic-crime-web/src/views/business/review/group-config.vue @@ -1,314 +1,4 @@ - - + - - diff --git a/economic-crime-web/src/views/business/review/opinion-flow.vue b/economic-crime-web/src/views/business/review/opinion-flow.vue index 93854aa..cc115a3 100644 --- a/economic-crime-web/src/views/business/review/opinion-flow.vue +++ b/economic-crime-web/src/views/business/review/opinion-flow.vue @@ -1,207 +1,4 @@ - - + - - diff --git a/economic-crime-web/src/views/business/review/process-list.vue b/economic-crime-web/src/views/business/review/process-list.vue index bdeeb17..2dba213 100644 --- a/economic-crime-web/src/views/business/review/process-list.vue +++ b/economic-crime-web/src/views/business/review/process-list.vue @@ -1,350 +1,4 @@ - - + - - diff --git a/economic-crime-web/src/views/business/review/supervision.vue b/economic-crime-web/src/views/business/review/supervision.vue index ed7e524..3d703cd 100644 --- a/economic-crime-web/src/views/business/review/supervision.vue +++ b/economic-crime-web/src/views/business/review/supervision.vue @@ -1,236 +1,4 @@ - - + - - diff --git a/economic-crime-web/src/views/portal/module-portal.vue b/economic-crime-web/src/views/portal/module-portal.vue index 4598760..bc1c1ff 100644 --- a/economic-crime-web/src/views/portal/module-portal.vue +++ b/economic-crime-web/src/views/portal/module-portal.vue @@ -152,6 +152,7 @@ function handleLogout() { onMounted(() => { portalStore.clearActiveModule(); + userStore.resetBusinessNavigation(); updateTime(); timer = setInterval(updateTime, 1000); });