From 2ee1593879453e6e638fb94c3836116cec053cca Mon Sep 17 00:00:00 2001
From: xujun <271087757@qq.com>
Date: Thu, 19 Dec 2024 16:18:04 +0800
Subject: [PATCH] xujun

---
 .../yiboshi/science/dao/SystemParameterDAO.java  |  2 ++
 .../com/yiboshi/science/param/dto/SpecDTO.java   | 12 ++++++++++++
 .../rest/v1/SystemParameterController.java       |  9 +++++++++
 .../science/service/SystemParameterService.java  |  7 +++++++
 .../service/impl/SystemParameterServiceImpl.java | 16 +++++++++++++++-
 .../java/com/yiboshi/science/utils/RedisKey.java |  2 ++
 .../main/resources/mapper/SystemParameterDAO.xml |  7 +++++++
 7 files changed, 54 insertions(+), 1 deletion(-)
 create mode 100644 science-admin/src/main/java/com/yiboshi/science/param/dto/SpecDTO.java

diff --git a/science-admin/src/main/java/com/yiboshi/science/dao/SystemParameterDAO.java b/science-admin/src/main/java/com/yiboshi/science/dao/SystemParameterDAO.java
index 5bd7b12..4d0c981 100644
--- a/science-admin/src/main/java/com/yiboshi/science/dao/SystemParameterDAO.java
+++ b/science-admin/src/main/java/com/yiboshi/science/dao/SystemParameterDAO.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yiboshi.science.base.BaseDAO;
 import com.yiboshi.science.entity.SystemParameter;
+import com.yiboshi.science.param.dto.SpecDTO;
 import com.yiboshi.science.param.dto.SystemParameterDTO;
 import com.yiboshi.science.param.query.SystemParameterQueryVO;
 import org.apache.ibatis.annotations.Param;
@@ -18,4 +19,5 @@ import java.util.List;
 public interface SystemParameterDAO extends BaseMapper<SystemParameter>, BaseDAO<SystemParameterQueryVO, SystemParameterDTO,SystemParameter> {
      List<SystemParameter> getList(@Param("ew") Wrapper<SystemParameter> queryWrapper);
      List<SystemParameter>  getParentParameterList();
+     List<SpecDTO> getSpecArray();
 }
\ No newline at end of file
diff --git a/science-admin/src/main/java/com/yiboshi/science/param/dto/SpecDTO.java b/science-admin/src/main/java/com/yiboshi/science/param/dto/SpecDTO.java
new file mode 100644
index 0000000..8c7a4c2
--- /dev/null
+++ b/science-admin/src/main/java/com/yiboshi/science/param/dto/SpecDTO.java
@@ -0,0 +1,12 @@
+package com.yiboshi.science.param.dto;
+
+import com.yiboshi.science.base.BaseDTO;
+import lombok.Data;
+
+@Data
+public class SpecDTO extends BaseDTO {
+
+    private String key;
+    private String pkey;
+    private String ppkey;
+}
diff --git a/science-admin/src/main/java/com/yiboshi/science/rest/v1/SystemParameterController.java b/science-admin/src/main/java/com/yiboshi/science/rest/v1/SystemParameterController.java
index 8da6839..4ba6142 100644
--- a/science-admin/src/main/java/com/yiboshi/science/rest/v1/SystemParameterController.java
+++ b/science-admin/src/main/java/com/yiboshi/science/rest/v1/SystemParameterController.java
@@ -7,6 +7,7 @@ import com.yiboshi.science.config.annotation.Logs;
 import com.yiboshi.science.entity.SelectListItem;
 import com.yiboshi.science.entity.SystemParameter;
 import com.yiboshi.science.enumeration.CommonEnum;
+import com.yiboshi.science.param.dto.SpecDTO;
 import com.yiboshi.science.param.dto.SystemParameterDTO;
 import com.yiboshi.science.param.query.SystemParameterQueryVO;
 import com.yiboshi.science.rest.BaseController;
@@ -159,4 +160,12 @@ public class SystemParameterController extends BaseController<SystemParameterSer
         List<SelectListItem> list = systemParameterService.getKnowledgeInfoList();
         return ResponseDataModel.ok(list);
     }
+
+    @ApiOperation(value = "专业数组代码列表", httpMethod = "GET", notes = "专业数组代码列表")
+    @GetMapping
+    @RequestMapping("/getSpecArray")
+    public ResponseDataModel<List<SpecDTO>> getSpecArray() {
+        List<SpecDTO> list = systemParameterService.getSpecArray();
+        return ResponseDataModel.ok(list);
+    }
 }
diff --git a/science-admin/src/main/java/com/yiboshi/science/service/SystemParameterService.java b/science-admin/src/main/java/com/yiboshi/science/service/SystemParameterService.java
index ef8724b..059ce19 100644
--- a/science-admin/src/main/java/com/yiboshi/science/service/SystemParameterService.java
+++ b/science-admin/src/main/java/com/yiboshi/science/service/SystemParameterService.java
@@ -2,6 +2,7 @@ package com.yiboshi.science.service;
 import com.yiboshi.science.base.BaseService;
 import com.yiboshi.science.entity.SelectListItem;
 import com.yiboshi.science.entity.SystemParameter;
+import com.yiboshi.science.param.dto.SpecDTO;
 import com.yiboshi.science.param.dto.SystemParameterDTO;
 import com.yiboshi.science.param.query.SystemParameterQueryVO;
 
@@ -102,4 +103,10 @@ public interface SystemParameterService extends BaseService<SystemParameterQuery
      * @return
      */
     List<SelectListItem> getKnowledgeInfoList();
+
+    /**
+     * 专业数组代码列表
+     * @return
+     */
+    List<SpecDTO> getSpecArray();
 }
diff --git a/science-admin/src/main/java/com/yiboshi/science/service/impl/SystemParameterServiceImpl.java b/science-admin/src/main/java/com/yiboshi/science/service/impl/SystemParameterServiceImpl.java
index cf0b025..31a216b 100644
--- a/science-admin/src/main/java/com/yiboshi/science/service/impl/SystemParameterServiceImpl.java
+++ b/science-admin/src/main/java/com/yiboshi/science/service/impl/SystemParameterServiceImpl.java
@@ -9,6 +9,7 @@ import com.yiboshi.science.dao.SystemParameterDAO;
 import com.yiboshi.science.entity.SelectListItem;
 import com.yiboshi.science.entity.SystemParameter;
 import com.yiboshi.science.entity.SystemParameterType;
+import com.yiboshi.science.param.dto.SpecDTO;
 import com.yiboshi.science.param.dto.SystemParameterDTO;
 import com.yiboshi.science.param.query.SystemParameterQueryVO;
 import com.yiboshi.science.service.SystemParameterService;
@@ -348,7 +349,7 @@ public class SystemParameterServiceImpl extends BaseServiceImpl<SystemParameterD
         List<SystemParameter> parentList = this.getListByType(68);
 
         List<SelectListItem> list = new ArrayList<>();
-        List<SystemParameter> FirstList = parentList.stream().filter(e -> e.getSystemCode().equals("C") || e.getSystemCode().equals("G") || e.getSystemCode().equals("H")).collect(Collectors.toList());
+        List<SystemParameter> FirstList = parentList.stream().filter(e -> e.getSystemCode().equals("C") || e.getSystemCode().equals("G") || e.getSystemCode().equals("H") || e.getSystemCode().equals("F")).collect(Collectors.toList());
         FirstList.forEach(e -> {
             SelectListItem treeListItem = new SelectListItem(e.getName(), e.getId(), e.getSystemCode(), false, false, new ArrayList<>());
             list.add(treeListItem);
@@ -375,4 +376,17 @@ public class SystemParameterServiceImpl extends BaseServiceImpl<SystemParameterD
         });
         return SelectList;
     }
+
+    public List<SpecDTO> getSpecArray() {
+        List<SpecDTO> list = null;
+        Object obj = redisUtils.get(RedisKey.SpecArrayList);
+
+        if (null != obj)
+            list = (List<SpecDTO>) redisUtils.get(RedisKey.SpecArrayList);
+        if (null == list || list.size() == 0) {
+            list = systemParameterDAO.getSpecArray();
+            redisUtils.set(RedisKey.SpecArrayList, list, 7, TimeUnit.DAYS);
+        }
+        return list;
+    }
 }
diff --git a/science-admin/src/main/java/com/yiboshi/science/utils/RedisKey.java b/science-admin/src/main/java/com/yiboshi/science/utils/RedisKey.java
index d0b2744..5b7ff44 100644
--- a/science-admin/src/main/java/com/yiboshi/science/utils/RedisKey.java
+++ b/science-admin/src/main/java/com/yiboshi/science/utils/RedisKey.java
@@ -20,4 +20,6 @@ public class RedisKey {
     public final static String ProjectKPIList = "project-kpi-list";
     //学科代码列表
     public final static String KnowledgeCodeList = "knowledge-code-list";
+    //专业数组代码列表
+    public final static String SpecArrayList = "spec-array-list";
 }
diff --git a/science-admin/src/main/resources/mapper/SystemParameterDAO.xml b/science-admin/src/main/resources/mapper/SystemParameterDAO.xml
index de1262b..4c112b6 100644
--- a/science-admin/src/main/resources/mapper/SystemParameterDAO.xml
+++ b/science-admin/src/main/resources/mapper/SystemParameterDAO.xml
@@ -32,4 +32,11 @@
         where type_id in (select a.parent_id from system_parameter_type a where a.parent_id is not null)
         order by a.type_id,a.display_order asc
     </select>
+    <select id="getSpecArray" resultType="com.yiboshi.science.param.dto.SpecDTO">
+        select a.id as `key`, b.id as pkey, c.id as ppkey
+        from system_parameter a
+                 left join system_parameter b on a.parent_id = b.id
+                 left join system_parameter c on b.parent_id = c.id
+        where a.type_id = 68 and b.id is not null and c.id is not null
+    </select>
 </mapper>
\ No newline at end of file
-- 
2.18.0