From 412ed345ecf217516fa697f0a25cf7e67559958f Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 12 十二月 2024 18:20:43 +0800
Subject: [PATCH] 修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java          |    6 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInfoConfigController.java       |    1 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDeclareNoticeController.java    |   91 ++++++--
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TIndexMenuServiceImpl.java     |    2 
 ruoyi-system/src/main/resources/mapper/system/TOrderMapper.xml                          |   12 
 ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml                        |   11 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInformationController.java      |   84 +++++-
 ruoyi-system/src/main/resources/mapper/system/TIndexMenuMapper.xml                      |    2 
 ruoyi-system/src/main/resources/mapper/system/TTitleMajorMapper.xml                     |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCommitteeController.java        |   77 +++++-
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGeneratedRecordsController.java |   21 +
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TInfoConfig.java                     |    3 
 ruoyi-admin/src/main/resources/templates/专业技术工作总结.xml                                   |  195 -----------------
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java        |   12 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/DeclareNoticeQuery.java        |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/CommitteeQuery.java            |    3 
 ruoyi-admin/src/main/resources/application-druid.yml                                    |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/ConsultationQuery.java         |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TConsultationController.java     |   77 ++++++-
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/InformationQuery.java          |    2 
 20 files changed, 314 insertions(+), 297 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
index 77f7c58..6e780d0 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java
@@ -199,7 +199,7 @@
             return R.fail("验证码错误");
         }
 
-        if (redisCache.getCacheObject(byId.getPhone()).equals(code)){
+        if (redisCache.getCacheObject(newPhone).equals(code)){
             byId.setPhone(newPhone);
             appUserService.updateById(byId);
             return R.ok();
@@ -510,6 +510,10 @@
             }
             tUserChange.setUserChangeDetails(list1);
         }
+        TRegion byId2 = regionService.getById(byId.getCityCode());
+        if(Objects.nonNull(byId2)){
+            byId.setCityStr(byId2.getProvinceName()+"-"+byId2.getName());
+        }
         byId.setChanges(list);
         return R.ok(byId) ;
     }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCommitteeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCommitteeController.java
index 77047a8..69a1af0 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCommitteeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCommitteeController.java
@@ -16,8 +16,10 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -97,26 +99,63 @@
     @PostMapping("/list")
     public R<Page<TCommittee>> list(@RequestBody CommitteeQuery informationQuery){
         Page<TCommittee> page;
-        if(informationQuery.getSortType() == 1){
-            page = tCommitteeService.lambdaQuery()
-                    .like(!StringUtils.isEmpty(informationQuery.getName()), TCommittee::getCommitteeName, informationQuery.getName())
-                    .like(!StringUtils.isEmpty(informationQuery.getCommitteeUnit()), TCommittee::getCommitteeUnit, informationQuery.getCommitteeUnit())
-                    .eq(informationQuery.getRegionId() != null, TCommittee::getRegionId, informationQuery.getRegionId())
-                    .eq(informationQuery.getTechnicalId() != null, TCommittee::getTechnicalId, informationQuery.getTechnicalId())
-                    .eq(informationQuery.getMajorId() != null, TCommittee::getMajorId, informationQuery.getMajorId())
-                    .eq(informationQuery.getLevel() != null, TCommittee::getLevel, informationQuery.getLevel())
-                    .orderByDesc(TCommittee::getCreateTime)
-                    .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+        if(StringUtils.isEmpty(informationQuery.getProvinceName())){
+            if(informationQuery.getSortType() == 1){
+                page = tCommitteeService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getName()), TCommittee::getCommitteeName, informationQuery.getName())
+                        .like(!StringUtils.isEmpty(informationQuery.getCommitteeUnit()), TCommittee::getCommitteeUnit, informationQuery.getCommitteeUnit())
+                        .eq(informationQuery.getRegionId() != null, TCommittee::getRegionId, informationQuery.getRegionId())
+                        .eq(informationQuery.getTechnicalId() != null, TCommittee::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TCommittee::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TCommittee::getLevel, informationQuery.getLevel())
+                        .orderByDesc(TCommittee::getCreateTime)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }else {
+                page = tCommitteeService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getName()), TCommittee::getCommitteeName, informationQuery.getName())
+                        .like(!StringUtils.isEmpty(informationQuery.getCommitteeUnit()), TCommittee::getCommitteeUnit, informationQuery.getCommitteeUnit())
+                        .eq(informationQuery.getRegionId() != null, TCommittee::getRegionId, informationQuery.getRegionId())
+                        .eq(informationQuery.getTechnicalId() != null, TCommittee::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TCommittee::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TCommittee::getLevel, informationQuery.getLevel())
+                        .orderByDesc(TCommittee::getCommitteeSort)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }
         }else {
-            page = tCommitteeService.lambdaQuery()
-                    .like(!StringUtils.isEmpty(informationQuery.getName()), TCommittee::getCommitteeName, informationQuery.getName())
-                    .like(!StringUtils.isEmpty(informationQuery.getCommitteeUnit()), TCommittee::getCommitteeUnit, informationQuery.getCommitteeUnit())
-                    .eq(informationQuery.getRegionId() != null, TCommittee::getRegionId, informationQuery.getRegionId())
-                    .eq(informationQuery.getTechnicalId() != null, TCommittee::getTechnicalId, informationQuery.getTechnicalId())
-                    .eq(informationQuery.getMajorId() != null, TCommittee::getMajorId, informationQuery.getMajorId())
-                    .eq(informationQuery.getLevel() != null, TCommittee::getLevel, informationQuery.getLevel())
-                    .orderByDesc(TCommittee::getCommitteeSort)
-                    .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            List<TRegion> list;
+            // 查询省份下的市
+            if(informationQuery.getProvinceName().equals("直辖市")){
+                List<String> cityList = new ArrayList<>();
+                cityList.add("北京市");
+                cityList.add("天津市");
+                cityList.add("重庆市");
+                cityList.add("上海市");
+                list = regionService.lambdaQuery().in(TRegion::getProvinceName, cityList).list();
+            }else {
+                list = regionService.lambdaQuery().eq(TRegion::getProvinceName, informationQuery.getProvinceName()).list();
+            }
+            List<Integer> ids = list.stream().map(TRegion::getId).collect(Collectors.toList());
+            if(informationQuery.getSortType() == 1){
+                page = tCommitteeService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getName()), TCommittee::getCommitteeName, informationQuery.getName())
+                        .like(!StringUtils.isEmpty(informationQuery.getCommitteeUnit()), TCommittee::getCommitteeUnit, informationQuery.getCommitteeUnit())
+                        .in( TCommittee::getRegionId, ids)
+                        .eq(informationQuery.getTechnicalId() != null, TCommittee::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TCommittee::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TCommittee::getLevel, informationQuery.getLevel())
+                        .orderByDesc(TCommittee::getCreateTime)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }else {
+                page = tCommitteeService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getName()), TCommittee::getCommitteeName, informationQuery.getName())
+                        .like(!StringUtils.isEmpty(informationQuery.getCommitteeUnit()), TCommittee::getCommitteeUnit, informationQuery.getCommitteeUnit())
+                        .in( TCommittee::getRegionId, ids)
+                        .eq(informationQuery.getTechnicalId() != null, TCommittee::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TCommittee::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TCommittee::getLevel, informationQuery.getLevel())
+                        .orderByDesc(TCommittee::getCommitteeSort)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }
         }
 
         for (TCommittee record : page.getRecords()) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TConsultationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TConsultationController.java
index eb7cad7..3a754ed 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TConsultationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TConsultationController.java
@@ -20,9 +20,11 @@
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -74,7 +76,6 @@
         appUserQuery.setRegionId1(Long.valueOf(information.getRegionId()));
         appUserQuery.setLevelId1(information.getLevel());
 
-
         List<Long> newIds = appUserService.getNewIds(appUserQuery);
         for (Long newId : newIds) {
             redisCache.setCacheObject("ALLERT:"+newId,information.getClassificationId());
@@ -117,16 +118,70 @@
     public R<Page<TConsultation>> list(@RequestBody ConsultationQuery informationQuery) {
         Long userId = tokenService.getLoginUser().getUserId();
 
-        Page<TConsultation> page = informationService.lambdaQuery()
-                .like(!StringUtils.isEmpty(informationQuery.getClassificationName()), TConsultation::getClassificationName, informationQuery.getClassificationName())
-                .eq(informationQuery.getRegionId() != null, TConsultation::getRegionId, informationQuery.getRegionId())
-                .eq(informationQuery.getTechnicalId() != null, TConsultation::getTitleId, informationQuery.getTechnicalId())
-                .eq(informationQuery.getClassificationId() != null, TConsultation::getClassificationId, informationQuery.getClassificationId())
-                .eq(informationQuery.getMajorId() != null, TConsultation::getMajorId, informationQuery.getMajorId())
-                .eq(informationQuery.getLevel() != null, TConsultation::getLevel, informationQuery.getLevel())
-                .orderByDesc(TConsultation::getClassificationSort)
-                .orderByDesc(TConsultation::getPubTime)
-                .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+        Page<TConsultation> page;
+        if(StringUtils.isEmpty(informationQuery.getProvinceName())){
+            if(informationQuery.getSortType()==1){
+                page = informationService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getClassificationName()), TConsultation::getClassificationName, informationQuery.getClassificationName())
+                        .eq(informationQuery.getRegionId() != null, TConsultation::getRegionId, informationQuery.getRegionId())
+                        .eq(informationQuery.getTechnicalId() != null, TConsultation::getTitleId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getClassificationId() != null, TConsultation::getClassificationId, informationQuery.getClassificationId())
+                        .eq(informationQuery.getMajorId() != null, TConsultation::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TConsultation::getLevel, informationQuery.getLevel())
+                        .orderByDesc(TConsultation::getCreateTime)
+                        .orderByDesc(TConsultation::getPubTime)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }else {
+                page = informationService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getClassificationName()), TConsultation::getClassificationName, informationQuery.getClassificationName())
+                        .eq(informationQuery.getRegionId() != null, TConsultation::getRegionId, informationQuery.getRegionId())
+                        .eq(informationQuery.getTechnicalId() != null, TConsultation::getTitleId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getClassificationId() != null, TConsultation::getClassificationId, informationQuery.getClassificationId())
+                        .eq(informationQuery.getMajorId() != null, TConsultation::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TConsultation::getLevel, informationQuery.getLevel())
+                        .orderByDesc(TConsultation::getClassificationSort)
+                        .orderByDesc(TConsultation::getPubTime)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }
+        }else {
+            List<TRegion> list;
+            // 查询省份下的市
+            if(informationQuery.getProvinceName().equals("直辖市")){
+                List<String> cityList = new ArrayList<>();
+                cityList.add("北京市");
+                cityList.add("天津市");
+                cityList.add("重庆市");
+                cityList.add("上海市");
+                list = regionService.lambdaQuery().in(TRegion::getProvinceName, cityList).list();
+            }else {
+                list = regionService.lambdaQuery().eq(TRegion::getProvinceName, informationQuery.getProvinceName()).list();
+            }
+            List<Integer> ids = list.stream().map(TRegion::getId).collect(Collectors.toList());
+            if(informationQuery.getSortType()==1){
+                page = informationService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getClassificationName()), TConsultation::getClassificationName, informationQuery.getClassificationName())
+                        .in( TConsultation::getRegionId, ids)
+                        .eq(informationQuery.getTechnicalId() != null, TConsultation::getTitleId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getClassificationId() != null, TConsultation::getClassificationId, informationQuery.getClassificationId())
+                        .eq(informationQuery.getMajorId() != null, TConsultation::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TConsultation::getLevel, informationQuery.getLevel())
+                        .orderByDesc(TConsultation::getCreateTime)
+                        .orderByDesc(TConsultation::getPubTime)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }else {
+                page = informationService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getClassificationName()), TConsultation::getClassificationName, informationQuery.getClassificationName())
+                        .in( TConsultation::getRegionId, ids)
+                        .eq(informationQuery.getTechnicalId() != null, TConsultation::getTitleId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getClassificationId() != null, TConsultation::getClassificationId, informationQuery.getClassificationId())
+                        .eq(informationQuery.getMajorId() != null, TConsultation::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TConsultation::getLevel, informationQuery.getLevel())
+                        .orderByDesc(TConsultation::getClassificationSort)
+                        .orderByDesc(TConsultation::getPubTime)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }
+        }
+
 
         Set<Long> cacheSet = redisCache.getCacheSet("Consultation:" + userId);
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDeclareNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDeclareNoticeController.java
index 8fb6d7a..838a56a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDeclareNoticeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDeclareNoticeController.java
@@ -18,6 +18,7 @@
 
 import javax.annotation.Resource;
 import java.lang.reflect.Array;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -130,31 +131,73 @@
     @PostMapping(value = "/list")
     public R<Page<TDeclareNotice>> list(@RequestBody DeclareNoticeQuery informationQuery) {
         Page<TDeclareNotice> page;
-        if(informationQuery.getSortType()==1){
-            page = tDeclareNoticeService.lambdaQuery()
-                    .like(!StringUtils.isEmpty(informationQuery.getDeclareNoticeName()), TDeclareNotice::getDeclareNoticeName, informationQuery.getDeclareNoticeName())
-                    .eq(informationQuery.getRegionId() != null, TDeclareNotice::getRegionId, informationQuery.getRegionId())
-                    .eq(informationQuery.getTechnicalId() != null, TDeclareNotice::getTechnicalId, informationQuery.getTechnicalId())
-                    .eq(informationQuery.getMajorId() != null, TDeclareNotice::getMajorId, informationQuery.getMajorId())
-                    .eq(informationQuery.getLevel() != null, TDeclareNotice::getLevel, informationQuery.getLevel())
-                    .eq(informationQuery.getIsOnline()!=null, TDeclareNotice::getIsOnline, informationQuery.getIsOnline())
-                    .between(informationQuery.getDeclareStartTime1()!=null,TDeclareNotice::getDeclareStartTime,informationQuery.getDeclareStartTime1(),informationQuery.getDeclareStartTime2())
-                    .between(informationQuery.getDeclareEndTime1()!=null,TDeclareNotice::getDeclareEndTime,informationQuery.getDeclareEndTime1(),informationQuery.getDeclareEndTime2())
-                    .orderByDesc(TDeclareNotice::getCreateTime)
-                    .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+        if(StringUtils.isEmpty(informationQuery.getProvinceName())){
+            if(informationQuery.getSortType()==1){
+                page = tDeclareNoticeService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getDeclareNoticeName()), TDeclareNotice::getDeclareNoticeName, informationQuery.getDeclareNoticeName())
+                        .eq(informationQuery.getRegionId() != null, TDeclareNotice::getRegionId, informationQuery.getRegionId())
+                        .eq(informationQuery.getTechnicalId() != null, TDeclareNotice::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TDeclareNotice::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TDeclareNotice::getLevel, informationQuery.getLevel())
+                        .eq(informationQuery.getIsOnline()!=null, TDeclareNotice::getIsOnline, informationQuery.getIsOnline())
+                        .between(informationQuery.getDeclareStartTime1()!=null,TDeclareNotice::getDeclareStartTime,informationQuery.getDeclareStartTime1(),informationQuery.getDeclareStartTime2())
+                        .between(informationQuery.getDeclareEndTime1()!=null,TDeclareNotice::getDeclareEndTime,informationQuery.getDeclareEndTime1(),informationQuery.getDeclareEndTime2())
+                        .orderByDesc(TDeclareNotice::getCreateTime)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }else {
+                page = tDeclareNoticeService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getDeclareNoticeName()), TDeclareNotice::getDeclareNoticeName, informationQuery.getDeclareNoticeName())
+                        .eq(informationQuery.getRegionId() != null, TDeclareNotice::getRegionId, informationQuery.getRegionId())
+                        .eq(informationQuery.getTechnicalId() != null, TDeclareNotice::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TDeclareNotice::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TDeclareNotice::getLevel, informationQuery.getLevel())
+                        .eq(informationQuery.getIsOnline()!=null, TDeclareNotice::getIsOnline, informationQuery.getIsOnline())
+                        .between(informationQuery.getDeclareStartTime1()!=null,TDeclareNotice::getDeclareStartTime,informationQuery.getDeclareStartTime1(),informationQuery.getDeclareStartTime2())
+                        .between(informationQuery.getDeclareEndTime1()!=null,TDeclareNotice::getDeclareEndTime,informationQuery.getDeclareEndTime1(),informationQuery.getDeclareEndTime2())
+                        .orderByDesc(TDeclareNotice::getNoticeSort)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }
         }else {
-            page = tDeclareNoticeService.lambdaQuery()
-                    .like(!StringUtils.isEmpty(informationQuery.getDeclareNoticeName()), TDeclareNotice::getDeclareNoticeName, informationQuery.getDeclareNoticeName())
-                    .eq(informationQuery.getRegionId() != null, TDeclareNotice::getRegionId, informationQuery.getRegionId())
-                    .eq(informationQuery.getTechnicalId() != null, TDeclareNotice::getTechnicalId, informationQuery.getTechnicalId())
-                    .eq(informationQuery.getMajorId() != null, TDeclareNotice::getMajorId, informationQuery.getMajorId())
-                    .eq(informationQuery.getLevel() != null, TDeclareNotice::getLevel, informationQuery.getLevel())
-                    .eq(informationQuery.getIsOnline()!=null, TDeclareNotice::getIsOnline, informationQuery.getIsOnline())
-                    .between(informationQuery.getDeclareStartTime1()!=null,TDeclareNotice::getDeclareStartTime,informationQuery.getDeclareStartTime1(),informationQuery.getDeclareStartTime2())
-                    .between(informationQuery.getDeclareEndTime1()!=null,TDeclareNotice::getDeclareEndTime,informationQuery.getDeclareEndTime1(),informationQuery.getDeclareEndTime2())
-                    .orderByDesc(TDeclareNotice::getNoticeSort)
-                    .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            List<TRegion> list;
+            // 查询省份下的市
+            if(informationQuery.getProvinceName().equals("直辖市")){
+                List<String> cityList = new ArrayList<>();
+                cityList.add("北京市");
+                cityList.add("天津市");
+                cityList.add("重庆市");
+                cityList.add("上海市");
+                list = regionService.lambdaQuery().in(TRegion::getProvinceName, cityList).list();
+            }else {
+                list = regionService.lambdaQuery().eq(TRegion::getProvinceName, informationQuery.getProvinceName()).list();
+            }
+            List<Integer> ids = list.stream().map(TRegion::getId).collect(Collectors.toList());
+            if(informationQuery.getSortType()==1){
+                page = tDeclareNoticeService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getDeclareNoticeName()), TDeclareNotice::getDeclareNoticeName, informationQuery.getDeclareNoticeName())
+                        .in( TDeclareNotice::getRegionId, ids)
+                        .eq(informationQuery.getTechnicalId() != null, TDeclareNotice::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TDeclareNotice::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TDeclareNotice::getLevel, informationQuery.getLevel())
+                        .eq(informationQuery.getIsOnline()!=null, TDeclareNotice::getIsOnline, informationQuery.getIsOnline())
+                        .between(informationQuery.getDeclareStartTime1()!=null,TDeclareNotice::getDeclareStartTime,informationQuery.getDeclareStartTime1(),informationQuery.getDeclareStartTime2())
+                        .between(informationQuery.getDeclareEndTime1()!=null,TDeclareNotice::getDeclareEndTime,informationQuery.getDeclareEndTime1(),informationQuery.getDeclareEndTime2())
+                        .orderByDesc(TDeclareNotice::getCreateTime)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }else {
+                page = tDeclareNoticeService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getDeclareNoticeName()), TDeclareNotice::getDeclareNoticeName, informationQuery.getDeclareNoticeName())
+                        .in( TDeclareNotice::getRegionId, ids)
+                        .eq(informationQuery.getTechnicalId() != null, TDeclareNotice::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TDeclareNotice::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TDeclareNotice::getLevel, informationQuery.getLevel())
+                        .eq(informationQuery.getIsOnline()!=null, TDeclareNotice::getIsOnline, informationQuery.getIsOnline())
+                        .between(informationQuery.getDeclareStartTime1()!=null,TDeclareNotice::getDeclareStartTime,informationQuery.getDeclareStartTime1(),informationQuery.getDeclareStartTime2())
+                        .between(informationQuery.getDeclareEndTime1()!=null,TDeclareNotice::getDeclareEndTime,informationQuery.getDeclareEndTime1(),informationQuery.getDeclareEndTime2())
+                        .orderByDesc(TDeclareNotice::getNoticeSort)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }
         }
+
 
         for (TDeclareNotice record : page.getRecords()) {
             TRegion byId = regionService.getById(record.getRegionId());
@@ -177,7 +220,7 @@
         tDeclareNotice.setDeclareNoticeTechnicals(tDeclareNoticeTechnicals);
         tDeclareNotice.setDeclareNoticeMajors(tDeclareNoticeMajors);
         if(StringUtils.isEmpty(tDeclareNotice.getDeclareLevel())){
-            tDeclareNotice.setDeclareLevel(tDeclareNoticeTechnicals.stream().map(TDeclareNoticeTechnical::getLevelName).collect(Collectors.joining("/")));
+            tDeclareNotice.setDeclareLevel(tDeclareNoticeTechnicals.stream().map(TDeclareNoticeTechnical::getTechnicalName).collect(Collectors.joining("/")));
         }
         return R.ok(tDeclareNotice);
     }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGeneratedRecordsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGeneratedRecordsController.java
index 76be3ba..761f523 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGeneratedRecordsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TGeneratedRecordsController.java
@@ -6,10 +6,13 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.domain.*;
 import com.ruoyi.system.mapper.SysConfigMapper;
 import com.ruoyi.system.query.GeneratedQuery;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.TAppUserService;
 import com.ruoyi.system.service.TGeneratedRecordsService;
 import com.ruoyi.system.service.TOrderService;
 import com.ruoyi.system.service.impl.SysConfigServiceImpl;
@@ -32,10 +35,7 @@
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.Period;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * <p>
@@ -62,6 +62,8 @@
     private NativePayService nativePayService;
     @Resource
     private SysConfigMapper sysConfigMapper;
+    @Resource
+    private TAppUserService appUserService;
     //列表
     @ApiOperation(value = "查询",tags = "后台-用户生成数据")
     @PostMapping("/list")
@@ -72,7 +74,14 @@
     @ApiOperation(value = "详情",tags = "后台-用户生成数据")
     @PostMapping("/detail")
     public R<TGeneratedRecords> detail(Long id){
-        return R.ok(generatedRecordsService.getById(id));
+        TGeneratedRecords generatedRecords = generatedRecordsService.getById(id);
+        TAppUser appUser = appUserService.getById(generatedRecords.getUserId());
+        if(Objects.nonNull(appUser)){
+            generatedRecords.setAvatar(appUser.getAvatar());
+            generatedRecords.setUserPhone(appUser.getPhone());
+            generatedRecords.setUserName(appUser.getName());
+        }
+        return R.ok(generatedRecords);
     }
     @ApiOperation(value = "检查当前用户是否付费",tags = {"web-职称工作总结"})
     @PostMapping("/pay/check")
@@ -232,7 +241,7 @@
         templateParam.put("workUnit", generatedRecords.getWorkUnit());
         templateParam.put("workContent", generatedRecords.getWorkContent());
         templateParam.put("generateUniversityComplete", generatedRecords.getGenerateUniversityComplete());
-        templateParam.put("level", generatedRecords.getLevel());
+        templateParam.put("level", generatedRecords.getTechnicalName());
         templateParam.put("technicalName", generatedRecords.getTechnicalName());
         templateParam.put("majorName", generatedRecords.getMajorName());
         templateParam.put("certificate", generatedRecords.getCertificate());
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java
index 853a319..129ab75 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java
@@ -214,10 +214,10 @@
     public R allert() {
         Long userId = tokenService.getLoginUser().getUserId();
         TAppUser byId = appUserService.getById(userId);
-        Object cacheObject = redisCache.getCacheObject("ALLERT:"+userId);
+        Long cacheObject = redisCache.getCacheObject("ALLERT:"+userId);
 
         if (cacheObject!=null && byId.getIsSetPreference() == 1){
-            return R.ok(cacheObject);
+            return R.ok(cacheObject == 1);
         }else {
             return R.ok(false);
         }
@@ -276,9 +276,7 @@
     @ApiOperation(value = "订单统计1",tags = {"后台-统计"})
     @PostMapping(value = "/order/count1")
     public R<List<Map<String,String>>> ordercount1(@RequestBody OrderCountQuery orderCountQuery) {
-        List<Map<String,String>> map = new ArrayList<>();
-            map = indexMenuService.count1(orderCountQuery.getStartDate(),orderCountQuery.getEndDate(),orderCountQuery.getPaymentStatus(),orderCountQuery.getDayType());
-
+        List<Map<String,String>> map = indexMenuService.count1(orderCountQuery.getStartDate(),orderCountQuery.getEndDate(),orderCountQuery.getPaymentStatus(),orderCountQuery.getDayType());
         return R.ok(map);
     }
 
@@ -308,6 +306,10 @@
             notices = new ArrayList<>(notices.subList(0, 16));
         }
         notices = notices.stream().distinct().collect(Collectors.toList());
+        Set<Long> cacheSet = redisCache.getCacheSet("INFORMATION:" + userId);
+        for (TInformation notice : notices) {
+            notice.setIsCollect(cacheSet.contains(notice.getId())?1:0);
+        }
         return R.ok(notices);
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInfoConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInfoConfigController.java
index 99f90fd..ccaa0c0 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInfoConfigController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInfoConfigController.java
@@ -31,7 +31,6 @@
         return R.ok(tInfoConfigService.getById(id));
     }
     @ApiOperation(value = "修改",tags = "后台-系统设置-关于我们,其他设置")
-
     @PostMapping("/updateInfoConfig")
     public R<Boolean> updateInfoConfig(@RequestBody TInfoConfig tInfoConfig){
         return R.ok(tInfoConfigService.updateById(tInfoConfig));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInformationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInformationController.java
index 24572cf..407aa32 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInformationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInformationController.java
@@ -31,9 +31,11 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -98,29 +100,69 @@
     public R<Page<TInformation>> list(@RequestBody InformationQuery informationQuery) {
         Long userId = tokenService.getLoginUser().getUserId();
         Page<TInformation> page;
-        if (informationQuery.getSortType()==1){
-            page = informationService.lambdaQuery()
-                    .like(!StringUtils.isEmpty(informationQuery.getInformationName()), TInformation::getInformationName, informationQuery.getInformationName())
-                    .eq(informationQuery.getRegionId() != null, TInformation::getRegionId, informationQuery.getRegionId())
-                    .eq(informationQuery.getTechnicalId() != null, TInformation::getTechnicalId, informationQuery.getTechnicalId())
-                    .eq(informationQuery.getMajorId() != null, TInformation::getMajorId, informationQuery.getMajorId())
-                    .eq(informationQuery.getLevel() != null, TInformation::getLevel, informationQuery.getLevel())
-                    .eq(informationQuery.getFree()!=null&&informationQuery.getFree() == 1, TInformation::getInformationPrice, BigDecimal.ZERO)
-                    .ne(informationQuery.getFree()!=null&&informationQuery.getFree() == 2, TInformation::getInformationPrice, BigDecimal.ZERO)
-                    .orderByDesc(TInformation::getCreateTime)
-                    .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+        if(StringUtils.isEmpty(informationQuery.getProvinceName())){
+            if (informationQuery.getSortType()==1){
+                page = informationService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getInformationName()), TInformation::getInformationName, informationQuery.getInformationName())
+                        .eq(informationQuery.getRegionId() != null, TInformation::getRegionId, informationQuery.getRegionId())
+                        .eq(informationQuery.getTechnicalId() != null, TInformation::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TInformation::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TInformation::getLevel, informationQuery.getLevel())
+                        .eq(informationQuery.getFree()!=null&&informationQuery.getFree() == 1, TInformation::getInformationPrice, BigDecimal.ZERO)
+                        .ne(informationQuery.getFree()!=null&&informationQuery.getFree() == 2, TInformation::getInformationPrice, BigDecimal.ZERO)
+                        .orderByDesc(TInformation::getCreateTime)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }else {
+                page = informationService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getInformationName()), TInformation::getInformationName, informationQuery.getInformationName())
+                        .eq(informationQuery.getRegionId() != null, TInformation::getRegionId, informationQuery.getRegionId())
+                        .eq(informationQuery.getTechnicalId() != null, TInformation::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TInformation::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TInformation::getLevel, informationQuery.getLevel())
+                        .eq(informationQuery.getFree()!=null&&informationQuery.getFree() == 1, TInformation::getInformationPrice, BigDecimal.ZERO)
+                        .ne(informationQuery.getFree()!=null&&informationQuery.getFree() == 2, TInformation::getInformationPrice, BigDecimal.ZERO)
+                        .orderByDesc(TInformation::getCommitteeSort)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }
         }else {
-            page = informationService.lambdaQuery()
-                    .like(!StringUtils.isEmpty(informationQuery.getInformationName()), TInformation::getInformationName, informationQuery.getInformationName())
-                    .eq(informationQuery.getRegionId() != null, TInformation::getRegionId, informationQuery.getRegionId())
-                    .eq(informationQuery.getTechnicalId() != null, TInformation::getTechnicalId, informationQuery.getTechnicalId())
-                    .eq(informationQuery.getMajorId() != null, TInformation::getMajorId, informationQuery.getMajorId())
-                    .eq(informationQuery.getLevel() != null, TInformation::getLevel, informationQuery.getLevel())
-                    .eq(informationQuery.getFree()!=null&&informationQuery.getFree() == 1, TInformation::getInformationPrice, BigDecimal.ZERO)
-                    .ne(informationQuery.getFree()!=null&&informationQuery.getFree() == 2, TInformation::getInformationPrice, BigDecimal.ZERO)
-                    .orderByDesc(TInformation::getCommitteeSort)
-                    .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            List<TRegion> list;
+            // 查询省份下的市
+            if(informationQuery.getProvinceName().equals("直辖市")){
+                List<String> cityList = new ArrayList<>();
+                cityList.add("北京市");
+                cityList.add("天津市");
+                cityList.add("重庆市");
+                cityList.add("上海市");
+                list = regionService.lambdaQuery().in(TRegion::getProvinceName, cityList).list();
+            }else {
+                list = regionService.lambdaQuery().eq(TRegion::getProvinceName, informationQuery.getProvinceName()).list();
+            }
+            List<Integer> ids = list.stream().map(TRegion::getId).collect(Collectors.toList());
+            if (informationQuery.getSortType()==1){
+                page = informationService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getInformationName()), TInformation::getInformationName, informationQuery.getInformationName())
+                        .in( TInformation::getRegionId, ids)
+                        .eq(informationQuery.getTechnicalId() != null, TInformation::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TInformation::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TInformation::getLevel, informationQuery.getLevel())
+                        .eq(informationQuery.getFree()!=null&&informationQuery.getFree() == 1, TInformation::getInformationPrice, BigDecimal.ZERO)
+                        .ne(informationQuery.getFree()!=null&&informationQuery.getFree() == 2, TInformation::getInformationPrice, BigDecimal.ZERO)
+                        .orderByDesc(TInformation::getCreateTime)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }else {
+                page = informationService.lambdaQuery()
+                        .like(!StringUtils.isEmpty(informationQuery.getInformationName()), TInformation::getInformationName, informationQuery.getInformationName())
+                        .in( TInformation::getRegionId, ids)
+                        .eq(informationQuery.getTechnicalId() != null, TInformation::getTechnicalId, informationQuery.getTechnicalId())
+                        .eq(informationQuery.getMajorId() != null, TInformation::getMajorId, informationQuery.getMajorId())
+                        .eq(informationQuery.getLevel() != null, TInformation::getLevel, informationQuery.getLevel())
+                        .eq(informationQuery.getFree()!=null&&informationQuery.getFree() == 1, TInformation::getInformationPrice, BigDecimal.ZERO)
+                        .ne(informationQuery.getFree()!=null&&informationQuery.getFree() == 2, TInformation::getInformationPrice, BigDecimal.ZERO)
+                        .orderByDesc(TInformation::getCommitteeSort)
+                        .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize()));
+            }
         }
+
         Set<Long> cacheSet = redisCache.getCacheSet("INFORMATION:" + userId);
 
         for (TInformation record : page.getRecords()) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/CommitteeQuery.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/CommitteeQuery.java
index 1466f6d..916d03e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/CommitteeQuery.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/CommitteeQuery.java
@@ -33,5 +33,6 @@
 
     @ApiModelProperty(value = "1=后台 2=web端")
     private Integer sortType=1;
-
+    @ApiModelProperty(value = "省份名称")
+    private String provinceName;
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/ConsultationQuery.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/ConsultationQuery.java
index 2ae026d..31cced8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/ConsultationQuery.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/ConsultationQuery.java
@@ -31,4 +31,8 @@
     @ApiModelProperty(value = "1初级2中级3副高级4正高级5高级")
     @TableField("level")
     private Integer level;
+    @ApiModelProperty(value = "1=后台 2=web端")
+    private Integer sortType=1;
+    @ApiModelProperty(value = "省份名称")
+    private String provinceName;
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/DeclareNoticeQuery.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/DeclareNoticeQuery.java
index bdf4474..006128b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/DeclareNoticeQuery.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/DeclareNoticeQuery.java
@@ -45,5 +45,6 @@
 
     @ApiModelProperty(value = "1=后台 2=web端")
     private Integer sortType=1;
-
+    @ApiModelProperty(value = "省份名称")
+    private String provinceName;
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/InformationQuery.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/InformationQuery.java
index 6df36cd..6d2ff57 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/InformationQuery.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/query/InformationQuery.java
@@ -35,4 +35,6 @@
 
     @ApiModelProperty(value = "1=后台 2=web端")
     private Integer sortType=1;
+    @ApiModelProperty(value = "省份名称")
+    private String provinceName;
 }
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index 7614a5e..e7efa86 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -6,7 +6,7 @@
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://127.0.0.1:3306/tech_info?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://192.168.110.111:3306/tech_info?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
                 password: 123456
 #                url: jdbc:mysql://8.137.10.192:3306/sys_config?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
diff --git "a/ruoyi-admin/src/main/resources/templates/\344\270\223\344\270\232\346\212\200\346\234\257\345\267\245\344\275\234\346\200\273\347\273\223.xml" "b/ruoyi-admin/src/main/resources/templates/\344\270\223\344\270\232\346\212\200\346\234\257\345\267\245\344\275\234\346\200\273\347\273\223.xml"
index 39e5e02..668a9b6 100644
--- "a/ruoyi-admin/src/main/resources/templates/\344\270\223\344\270\232\346\212\200\346\234\257\345\267\245\344\275\234\346\200\273\347\273\223.xml"
+++ "b/ruoyi-admin/src/main/resources/templates/\344\270\223\344\270\232\346\212\200\346\234\257\345\267\245\344\275\234\346\200\273\347\273\223.xml"
@@ -157,109 +157,7 @@
                                 <w:sz w:val="28" />
                                 <w:szCs w:val="28" />
                             </w:rPr>
-                            <w:t>${generateEducation},毕业于${generateUniversity}、${generateUniversityMajor}</w:t>
-                        </w:r>
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>。为人正直,品德端正,现在任职于</w:t>
-                        </w:r>
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>${workUnit}</w:t>
-                        </w:r>
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>,做</w:t>
-                        </w:r>
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>${workContent}</w:t>
-                        </w:r>
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>,累计工作年限已经达到</w:t>
-                        </w:r>
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>${generateUniversityComplete}</w:t>
-                        </w:r>
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>年,准备在今年申报</w:t>
-                        </w:r>
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>${level}${technicalName}${majorName}</w:t>
-                        </w:r>
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>,已满足对应层级的申报条件与要求。</w:t>
-                        </w:r>
-                        <w:proofErr w:type="gramStart" />
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>自从工作</w:t>
-                        </w:r>
-                        <w:proofErr w:type="gramEnd" />
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>
-                                以来,我热爱挑战和解决问题,也始终保持高度的责任感和敬业精神。我相信自己的能力和决心,希望能够在新的工作中不断提升自己并创造更大的价值。现将本人详细的经历、能力、业绩总结如下。</w:t>
+                            <w:t>${generateEducation},毕业于${generateUniversity}、${generateUniversityMajor}。为人正直,品德端正,现在任职于${workUnit},做${workContent},累计工作年限已经达到${generateUniversityComplete}年,准备在今年申报${technicalName}${majorName},已满足对应层级的申报条件与要求。自从工作以来,我热爱挑战和解决问题,也始终保持高度的责任感和敬业精神。我相信自己的能力和决心,希望能够在新的工作中不断提升自己并创造更大的价值。现将本人详细的经历、能力、业绩总结如下。</w:t>
                         </w:r>
                     </w:p>
                     <w:p w14:paraId="60C6D495" w14:textId="77777777" w:rsidR="005C5315"
@@ -292,69 +190,7 @@
                                 <w:sz w:val="28" />
                                 <w:szCs w:val="28" />
                             </w:rPr>
-                            <w:t>
-                                作为年青一代专业技术人员生力军的一员,始终把理想信念作为立身之本,不忘初心,牢记使命,守护理想灯塔,赓续信念火种。从业以来,不断加强理论学习、厚实理论功底,从而练就马克思主义的看家本领、掌握马克思主义的强大思想武器。尤其要在学懂弄通做</w:t>
-                        </w:r>
-                        <w:proofErr w:type="gramStart" />
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>实习近</w:t>
-                        </w:r>
-                        <w:proofErr w:type="gramEnd" />
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>
-                                平新时代中国特色社会主义思想上下功夫,通过系统学、深入学、跟进学、持续学,从中领悟真理力量和实践力量,让当代中国马克思主义在内心深处铸魂、在思想高地扎根,以新时代党的创新理论武装头脑、指导实践、推动工作,做到</w:t>
-                        </w:r>
-                        <w:proofErr w:type="gramStart" />
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>学思用贯通</w:t>
-                        </w:r>
-                        <w:proofErr w:type="gramEnd" />
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>,</w:t>
-                        </w:r>
-                        <w:proofErr w:type="gramStart" />
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>知信行</w:t>
-                        </w:r>
-                        <w:proofErr w:type="gramEnd" />
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:t>统一。</w:t>
+                            <w:t>作为年青一代专业技术人员生力军的一员,始终把理想信念作为立身之本,不忘初心,牢记使命,守护理想灯塔,赓续信念火种。从业以来,不断加强理论学习、厚实理论功底,从而练就马克思主义的看家本领、掌握马克思主义的强大思想武器。尤其要在学懂弄通做实习近平新时代中国特色社会主义思想上下功夫,通过系统学、深入学、跟进学、持续学,从中领悟真理力量和实践力量,让当代中国马克思主义在内心深处铸魂、在思想高地扎根,以新时代党的创新理论武装头脑、指导实践、推动工作,做到学思用贯通,知信行统一。</w:t>
                         </w:r>
                     </w:p>
                     <w:p w14:paraId="1519A9E5" w14:textId="77777777" w:rsidR="005C5315"
@@ -387,8 +223,7 @@
                                 <w:sz w:val="28" />
                                 <w:szCs w:val="28" />
                             </w:rPr>
-                            <w:t>
-                                一直以来遵守公司各项规章制度,遵守行业规则,遵纪守法。从未利用职务之便在经营活动中为自己谋取私利。平等对待所有同事与客户,在履行职责和对外交往中,不敢做有损公司声誉的事情。在业务运作中也是按照有关规章、制度条款执行,保证公司的各项业务记录准确、清晰,严禁有弄虚作假与舞弊或其他行为。</w:t>
+                            <w:t>一直以来遵守公司各项规章制度,遵守行业规则,遵纪守法。从未利用职务之便在经营活动中为自己谋取私利。平等对待所有同事与客户,在履行职责和对外交往中,不敢做有损公司声誉的事情。在业务运作中也是按照有关规章、制度条款执行,保证公司的各项业务记录准确、清晰,严禁有弄虚作假与舞弊或其他行为。</w:t>
                         </w:r>
                     </w:p>
                     <w:p w14:paraId="193DFE44" w14:textId="77777777" w:rsidR="005C5315"
@@ -422,8 +257,7 @@
                                 <w:sz w:val="28" />
                                 <w:szCs w:val="28" />
                             </w:rPr>
-                            <w:t>
-                                工作岗位是安身立命的港湾,不仅要自强不息也要不断提升自身专业技术水平。在理论、方法、思维方面创新,对于技术骨干与技术管理必需具备的能力水平,一方面要通过不断学习开拓思维眼界,另一方面也要积极投入在工作中,不放过任何一个问题,注重解决生产实践上、公司技术人员的培养、教育上的需要,取得了较多的研究成果。建筑设计是一个非常具有挑战性的专业工作,需要报以高度的责任心与事业心,以下是我的专业技术工作经历。</w:t>
+                            <w:t>工作岗位是安身立命的港湾,不仅要自强不息也要不断提升自身专业技术水平。在理论、方法、思维方面创新,对于技术骨干与技术管理必需具备的能力水平,一方面要通过不断学习开拓思维眼界,另一方面也要积极投入在工作中,不放过任何一个问题,注重解决生产实践上、公司技术人员的培养、教育上的需要,取得了较多的研究成果。建筑设计是一个非常具有挑战性的专业工作,需要报以高度的责任心与事业心,以下是我的专业技术工作经历。</w:t>
                         </w:r>
                     </w:p>
                     <w:p w14:paraId="092AC732" w14:textId="77777777" w:rsidR="005C5315"
@@ -442,11 +276,8 @@
                                 <w:sz w:val="28" />
                                 <w:szCs w:val="28" />
                             </w:rPr>
-                            <w:t>
-                                ${certificate}</w:t>
+                            <w:t>${certificate}</w:t>
                         </w:r>
-
-
                     </w:p>
                     <w:p w14:paraId="0B2B1EC8" w14:textId="77777777" w:rsidR="005C5315"
                         w:rsidRDefault="00000000">
@@ -531,8 +362,7 @@
                                 <w:sz w:val="28" />
                                 <w:szCs w:val="28" />
                             </w:rPr>
-                            <w:t>
-                                工作业绩是专业技术人员专业水平能力的重要体现,时刻牢记要更加积极参与更多的项目,努力解决更多的问题,提高实际贡献。要敢于提出新理论、探索新技术,多出重大科技成果。</w:t>
+                            <w:t>工作业绩是专业技术人员专业水平能力的重要体现,时刻牢记要更加积极参与更多的项目,努力解决更多的问题,提高实际贡献。要敢于提出新理论、探索新技术,多出重大科技成果。</w:t>
                         </w:r>
                     </w:p>
                     <w:p w14:paraId="7C7A2753" w14:textId="77777777" w:rsidR="005C5315"
@@ -565,18 +395,7 @@
                                 <w:sz w:val="28" />
                                 <w:szCs w:val="28" />
                             </w:rPr>
-                            <w:t>回顾这一年,我部在公司正确领导下取得了一定的成绩,但也存在着一些问题和不足,明年我们决心克服困难、积极创新,努力工作。同时,</w:t>
-                        </w:r>
-                        <w:r>
-                            <w:rPr>
-                                <w:rFonts w:ascii="仿宋" w:eastAsia="仿宋" w:hAnsi="仿宋" w:cs="仿宋" />
-                                <w:color w:val="000000" />
-                                <w:sz w:val="28" />
-                                <w:szCs w:val="28" />
-                            </w:rPr>
-                            <w:lastRenderedPageBreak />
-                            <w:t>
-                                更加严格执行建筑设计工作的各项标准与规范,主动学习更多关于与专业相关的前沿知识、前沿技术,灵活应用,为以后的工作打下坚实的基础。在工作作风上,能遵纪守法,团结同事,实事求是,乐观向上,始终保持严谨认真的工作态度和一丝不苟的工作作风,勤奋努力。始终做到老老实实,勤勤恳恳做事,过简单勤劳的生活,时刻牢记自己的责任和义务,严格要求自己,努力完成领导随时交办的任务,把每一项工作都抓得很细,做到精细化管理。</w:t>
+                            <w:t>回顾这一年,我部在公司正确领导下取得了一定的成绩,但也存在着一些问题和不足,明年我们决心克服困难、积极创新,努力工作。同时,更加严格执行建筑设计工作的各项标准与规范,主动学习更多关于与专业相关的前沿知识、前沿技术,灵活应用,为以后的工作打下坚实的基础。在工作作风上,能遵纪守法,团结同事,实事求是,乐观向上,始终保持严谨认真的工作态度和一丝不苟的工作作风,勤奋努力。始终做到老老实实,勤勤恳恳做事,过简单勤劳的生活,时刻牢记自己的责任和义务,严格要求自己,努力完成领导随时交办的任务,把每一项工作都抓得很细,做到精细化管理。</w:t>
                         </w:r>
                     </w:p>
                     <w:sectPr w:rsidR="005C5315">
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TInfoConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TInfoConfig.java
index 1f067d9..9005571 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TInfoConfig.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TInfoConfig.java
@@ -26,8 +26,7 @@
     private static final long serialVersionUID = 1L;
 
     @TableId(value = "id", type = IdType.AUTO)
-    @ApiModelProperty(value = "1:关于我们2:顶部slogn 3:购买须知")
-
+    @ApiModelProperty(value = "1:关于我们2:顶部slogn 3:购买须知,4:隐私协议 5:注册协议")
     private Long id;
     @ApiModelProperty(hidden = true)
     @TableField(value = "config_type")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TIndexMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TIndexMenuServiceImpl.java
index d7eac65..adf3b07 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TIndexMenuServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TIndexMenuServiceImpl.java
@@ -15,6 +15,7 @@
 
 import java.time.LocalDate;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -37,6 +38,7 @@
             List<AllertTitleDto> allert1 = this.baseMapper.allert(Collections.singletonList(s));
             allert.addAll(allert1);
         }
+        allert = allert.stream().distinct().collect(Collectors.toList());
         for (AllertTitleDto allertTitleDto : allert) {
             List<TTitleMajor> tTitleMajors = titleMajorMapper.selectList(Wrappers.lambdaQuery(TTitleMajor.class)
                     .eq(TTitleMajor::getTechnicalId, allertTitleDto.getId()));
diff --git a/ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml
index a4c2e9c..79bee98 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TAppUserMapper.xml
@@ -37,16 +37,14 @@
         t_app_user au
                 LEFT JOIN (
                 SELECT
-                    id,
+                    MAX(id) as id,
                     user_id,
                     MAX(create_time) AS newest_create_time
                 FROM
                     t_user_change
                 WHERE
                     is_delete = 0
-                GROUP BY
-                    user_id
-                limit 1
+                GROUP BY user_id
             ) uc_newest ON au.id = uc_newest.user_id
                 LEFT JOIN t_user_change_detail td on td.change_id = uc_newest.id
         <where>
@@ -72,15 +70,14 @@
         t_app_user au
         LEFT JOIN (
         SELECT
-        id,
+        MIN(id) as id,
         user_id,
         MIN(create_time) AS newest_create_time
         FROM
         t_user_change
         WHERE
         is_delete = 0
-        GROUP BY
-        user_id
+        GROUP BY user_id
         ) uc_newest ON au.id = uc_newest.user_id
         LEFT JOIN t_user_change_detail td on td.change_id = uc_newest.id
         <where>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TIndexMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TIndexMenuMapper.xml
index fbdd149..16c8d56 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TIndexMenuMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TIndexMenuMapper.xml
@@ -39,7 +39,7 @@
         WHERE 1=1 and tt.is_delete = 0
         <if test="cityCode != null and cityCode.size() > 0">
             <foreach collection="cityCode" item="id"  separator=",">
-                or   FIND_IN_SET(#{id}, tt.region_ids)
+                and   FIND_IN_SET(#{id}, tt.region_ids)
             </foreach>
         </if>
     </select>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderMapper.xml
index ed18f60..a734e49 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderMapper.xml
@@ -33,7 +33,7 @@
         t2.phone AS phone,
         t2.avatar AS avatar,
         CONCAT( t2.NAME, ' ', t2.phone ) AS user_search,
-        COALESCE ( t_course.course_name, t_information.information_name,t_generated_records.recordsName ) AS good_name,
+        COALESCE ( t_course.course_name, t_information.information_name,'工作总结生成' ) AS good_name,
         COALESCE ( t_course.course_cover, t_information.information_cover ) AS cover,
         CONCAT(COALESCE ( t_course.course_name, t_information.information_name ),' ',t1.code) as orderSearch
         FROM
@@ -43,7 +43,7 @@
         AND t1.good_type = 1
         LEFT JOIN ( SELECT id, information_name AS information_name,information_cover FROM t_information ) t_information ON t1.good_id = t_information.id
         AND t1.good_type = 2
-        LEFT JOIN ( SELECT id, `name` AS recordsName,user_id FROM t_generated_records order by create_time DESC limit 1) t_generated_records ON t1.user_id = t_generated_records.user_id
+        LEFT JOIN ( SELECT id,'工作总结生成' AS recordsName,user_id FROM t_generated_records order by create_time DESC limit 1) t_generated_records ON t1.user_id = t_generated_records.user_id
         AND t1.good_type = 3
         <where>
             t1.is_delete = 0
@@ -51,7 +51,7 @@
                AND ( t1.code LIKE concat('%',#{orderQuery.orderSearch},'%')
                 or t_course.course_name LIKE concat('%',#{orderQuery.orderSearch},'%')
                 or t_information.information_name LIKE concat('%',#{orderQuery.orderSearch},'%')
-                or t_generated_records.recordsName LIKE concat('%',#{orderQuery.orderSearch},'%'))
+                or COALESCE ( t_course.course_name, t_information.information_name,'工作总结生成' ) LIKE concat('%',#{orderQuery.orderSearch},'%'))
             </if>
             <if test="orderQuery.userSearch != null and orderQuery.userSearch != ''">
                 AND (t2.name LIKE concat('%',#{orderQuery.userSearch},'%') OR t2.phone LIKE concat('%',#{orderQuery.userSearch},'%'))
@@ -103,7 +103,7 @@
         t2.NAME AS user_name,
         t2.phone AS user_phone,
         CONCAT( t2.NAME, ' ', t2.phone ) AS user_search,
-        COALESCE ( t_course.course_name, t_information.information_name ) AS good_name,
+        COALESCE ( t_course.course_name, t_information.information_name,'工作总结生成' ) AS good_name,
         COALESCE ( t_course.course_cover, t_information.information_cover ) AS cover,
         CONCAT(COALESCE ( t_course.course_name, t_information.information_name ),' ',t1.code) as orderSearch
         FROM
@@ -113,7 +113,7 @@
         AND t1.good_type = 1
         LEFT JOIN ( SELECT id, information_name AS information_name,information_cover FROM t_information ) t_information ON t1.good_id = t_information.id
         AND t1.good_type = 2
-        LEFT JOIN ( SELECT id, `name` AS recordsName,user_id FROM t_generated_records order by create_time DESC limit 1) t_generated_records ON t1.user_id = t_generated_records.user_id
+        LEFT JOIN ( SELECT id, '工作总结生成' AS recordsName,user_id FROM t_generated_records order by create_time DESC limit 1) t_generated_records ON t1.user_id = t_generated_records.user_id
         AND t1.good_type = 3
         <where>
             t1.is_delete = 0
@@ -121,7 +121,7 @@
                 AND ( t1.code LIKE concat('%',#{orderQuery.orderSearch},'%')
                     or t_course.course_name LIKE concat('%',#{orderQuery.orderSearch},'%')
                     or t_information.information_name LIKE concat('%',#{orderQuery.orderSearch},'%')
-                    or t_generated_records.recordsName LIKE concat('%',#{orderQuery.orderSearch},'%'))
+                    or COALESCE ( t_course.course_name, t_information.information_name,'工作总结生成' ) LIKE concat('%',#{orderQuery.orderSearch},'%'))
             </if>
             <if test="orderQuery.userSearch != null and orderQuery.userSearch != ''">
                 AND (t2.name LIKE concat('%',#{orderQuery.userSearch},'%') OR t2.phone LIKE concat('%',#{orderQuery.userSearch},'%'))
diff --git a/ruoyi-system/src/main/resources/mapper/system/TTitleMajorMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTitleMajorMapper.xml
index f8dfa13..e7287e1 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TTitleMajorMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TTitleMajorMapper.xml
@@ -33,8 +33,7 @@
         where t1.is_delete = 0
         GROUP BY
             t1.id
-        ORDER BY
-            t1.create_time DESC
+        ORDER BY t1.create_time DESC
     </select>
 
 </mapper>

--
Gitblit v1.7.1