From 36baabb9fc5f74a22f798651d33fa8c0ff32a1ce Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期五, 08 十二月 2023 16:31:22 +0800
Subject: [PATCH] #来访配置 劳务配置 获取或修改

---
 server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java             |   45 +++++++
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java                          |   29 ++++
 server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java          |   27 ++++
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java              |   40 +++++-
 server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java |  139 +++++++++++++++++++++++
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/LaborConfigDTO.java              |   32 +++++
 6 files changed, 304 insertions(+), 8 deletions(-)

diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java
index 5b9c21e..6caa78e 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java
@@ -8,6 +8,8 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
+import com.doumee.dao.admin.request.LaborConfigDTO;
+import com.doumee.dao.admin.request.VisitConfigDTO;
 import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.system.vo.SystemDictDataListVO;
@@ -111,4 +113,47 @@
     public ApiResponse<SystemDictData> getSystemDictData(@RequestParam String dictCode, @RequestParam String label) {
         return ApiResponse.success(systemDictDataBiz.queryByCode(dictCode,label));
     }
+
+    /**
+     * 璁垮鏉ヨ閰嶇疆
+     * @return
+     */
+    @ApiOperation(value = "璁垮鏉ヨ閰嶇疆" )
+    @GetMapping("/getVisitConfigDTO")
+    public ApiResponse<VisitConfigDTO> getVisitConfigDTO(){
+        return ApiResponse.success(systemDictDataService.getVisitConfigDTO());
+    };
+
+    /**
+     * 淇敼璁垮鏉ヨ閰嶇疆
+     * @param visitConfigDTO
+     */
+    @ApiOperation(value = "淇敼璁垮鏉ヨ閰嶇疆" )
+    @PostMapping("/updateVisitConfig")
+    public ApiResponse updateVisitConfig(@RequestBody VisitConfigDTO visitConfigDTO){
+        systemDictDataService.updateVisitConfig(visitConfigDTO);
+        return ApiResponse.success(null);
+    };
+
+
+    /**
+     * 鍔冲姟鏉ヨ閰嶇疆
+     * @return
+     */
+    @ApiOperation(value = "鍔冲姟鏉ヨ閰嶇疆" )
+    @GetMapping("/getLaborConfigDTO")
+    public ApiResponse<LaborConfigDTO> getLaborConfigDTO(){
+        return ApiResponse.success(systemDictDataService.getLaborConfigDTO());
+    };
+
+    /**
+     * 淇敼鍔冲姟鏉ヨ閰嶇疆
+     * @param miniProgrammeDTO
+     */
+    @ApiOperation(value = "淇敼鍔冲姟鏉ヨ閰嶇疆" )
+    @PostMapping("/updateLaborConfigDTO")
+    public ApiResponse updateLaborConfigDTO(@RequestBody LaborConfigDTO miniProgrammeDTO){
+        systemDictDataService.updateLaborConfigDTO(miniProgrammeDTO);
+        return ApiResponse.success(null);
+    };
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
index 8422097..c0507f6 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1,8 +1,13 @@
 package com.doumee.core.utils;
 
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
 import org.apache.commons.lang3.StringUtils;
 
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.net.URLDecoder;
 import java.text.SimpleDateFormat;
@@ -37,6 +42,10 @@
     public static final String EDS_PWD ="!@#$%^&QWERTY" ;
     public static final String ROOT_PATH = "";
     public static final String FILE_DIR = "";
+    // 璁垮鏉ヨ閰嶇疆
+    public static final String VISIT_CONFIG = "VISIT_CONFIG";
+    // 鍔冲姟鏉ヨ閰嶇疆
+    public static final String LABOR_CONFIG = "LABOR_CONFIG";
 
 
     public static  Date  getBirthdyByCardNo(String idCard){
@@ -255,7 +264,27 @@
         }
     }
 
+    /**
+     * 瀵硅薄椹煎嘲灞炴�ц浆涓嬪垝绾�
+     * @param object
+     * @return
+     * @throws JsonProcessingException
+     */
+    public static String toUnderlineJSONString(Object object) throws JsonProcessingException {
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
+        mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+        String reqJson = mapper.writeValueAsString(object);
+        return reqJson;
+    }
 
 
+    public static <T> T toSnakeObject(String json, Class<T> clazz) throws IOException {
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
+        T reqJson =  mapper.readValue(json, clazz);
+        return reqJson;
+    }
+
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/LaborConfigDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/LaborConfigDTO.java
new file mode 100644
index 0000000..04a666c
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/LaborConfigDTO.java
@@ -0,0 +1,32 @@
+package com.doumee.dao.admin.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author T14
+ */
+@Data
+@ApiModel("鍔冲姟璁垮閰嶇疆")
+public class LaborConfigDTO {
+
+    @ApiModelProperty(value = "鏉ヨ棰勭害鏂瑰紡")
+    private String reservationWay = "";
+
+    @ApiModelProperty(value = "琚浜烘牎楠屾柟寮�")
+    private String checkVisit = "";
+
+    @ApiModelProperty(value = "鍋ュ悍璇佹槸鍚﹀繀濉�")
+    private String healthCard = "";
+
+    @ApiModelProperty(value = "鍔冲姟鏄惁绛旈")
+    private String isAnswer = "";
+
+    @ApiModelProperty(value = "鍔冲姟绛旈涓婚")
+    private String theme = "";
+
+    @ApiModelProperty(value = "鍔冲姟绛旈璇存槑")
+    private String description = "";
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java
index 75574f3..1e86537 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java
@@ -1,8 +1,14 @@
 package com.doumee.dao.admin.request;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.io.IOException;
 
 
 /**
@@ -13,20 +19,42 @@
 public class VisitConfigDTO {
 
     @ApiModelProperty(value = "鏉ヨ棰勭害鏂瑰紡")
-    private Integer reservationWay;
+    private String reservationWay = "";
 
     @ApiModelProperty(value = "琚浜烘牎楠屾柟寮�")
-    private Integer checkVisit;
+    private String checkVisit = "";
 
     @ApiModelProperty(value = "鍋ュ悍璇佹槸鍚﹀繀濉�")
-    private Integer healthCard;
+    private String healthCard = "";
 
     @ApiModelProperty(value = "鍔冲姟鏄惁绛旈")
-    private Integer isAnswer;
+    private String isAnswer = "";
 
     @ApiModelProperty(value = "鍔冲姟绛旈涓婚")
-    private String theme;
+    private String theme = "";
 
     @ApiModelProperty(value = "鍔冲姟绛旈璇存槑")
-    private String description;
+    private String description = "";
+
+//    /**
+//     * 瀵硅薄椹煎嘲灞炴�ц浆涓嬪垝绾�
+//     * @param object
+//     * @return
+//     * @throws JsonProcessingException
+//     */
+//    public static String toUnderlineJSONString(Object object) throws JsonProcessingException {
+//        ObjectMapper mapper = new ObjectMapper();
+//        mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
+//        mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+//        String reqJson = mapper.writeValueAsString(object);
+//        return reqJson;
+//    }
+//
+//
+//    public static <T> T toSnakeObject(String json, Class<T> clazz) throws IOException {
+//        ObjectMapper mapper = new ObjectMapper();
+//        mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
+//        T reqJson =  mapper.readValue(json, clazz);
+//        return reqJson;
+//    }
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java b/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
index 6d3fb87..c0ce5d2 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
@@ -2,6 +2,8 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.admin.request.LaborConfigDTO;
+import com.doumee.dao.admin.request.VisitConfigDTO;
 import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.system.vo.SystemDictDataListVO;
@@ -70,7 +72,7 @@
      * @date 2023/03/21 14:49
      */
     List<SystemDictData> findList(SystemDictData systemDictData);
-  
+
     /**
      * 鍒嗛〉鏌ヨ
      * @author Eva.Caesar Liu
@@ -96,5 +98,28 @@
     List<SystemDictData> findList(Integer dicId,List<String> codes);
 
 
+    /**
+     * 璁垮鏉ヨ閰嶇疆
+     * @return
+     */
+    VisitConfigDTO getVisitConfigDTO();
 
+    /**
+     * 淇敼璁垮鏉ヨ閰嶇疆
+     * @param miniProgrammeDTO
+     */
+    void updateVisitConfig(VisitConfigDTO miniProgrammeDTO);
+
+
+    /**
+     * 鍔冲姟鏉ヨ閰嶇疆
+     * @return
+     */
+    LaborConfigDTO getLaborConfigDTO();
+
+    /**
+     * 淇敼鍔冲姟鏉ヨ閰嶇疆
+     * @param miniProgrammeDTO
+     */
+    void updateLaborConfigDTO(LaborConfigDTO miniProgrammeDTO);
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
index a34d8ba..f4a56d5 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -1,9 +1,15 @@
 package com.doumee.service.system.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.utils.Constants;
+import com.doumee.dao.admin.request.LaborConfigDTO;
+import com.doumee.dao.admin.request.VisitConfigDTO;
+import com.doumee.dao.system.SystemDictMapper;
 import com.doumee.dao.system.model.SystemDict;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.doumee.core.model.PageData;
@@ -22,6 +28,7 @@
 
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 瀛楀吀鏁版嵁Service瀹炵幇
@@ -34,6 +41,8 @@
     @Autowired
     private SystemDictDataMapper systemDictDataMapper;
 
+    @Autowired
+    private SystemDictMapper systemDictMapper;
     @Override
     public Integer create(SystemDictData systemDictData) {
         systemDictDataMapper.insert(systemDictData);
@@ -91,7 +100,7 @@
         Wrapper<SystemDictData> wrapper = new QueryWrapper<>(systemDictData);
         return systemDictDataMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<SystemDictDataListVO> findPage(PageWrap<QuerySystemDictDataDTO> pageWrap) {
         PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
@@ -112,4 +121,132 @@
                 .in(SystemDictData::getLabel,codes);
         return systemDictDataMapper.selectList(wrapper);
     }
+
+    @Override
+    public VisitConfigDTO getVisitConfigDTO() {
+
+        try {
+            String jasonStr = Constants.toUnderlineJSONString(new VisitConfigDTO());
+            JSONObject parse = (JSONObject) JSONObject.parse(jasonStr);
+            List<String> collect = parse.entrySet().stream().map(s -> s.getKey().toUpperCase()).collect(Collectors.toList());
+
+            QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>();
+            systemDictQuery.lambda()
+                            .eq(SystemDict::getDeleted,Boolean.FALSE)
+                            .eq(SystemDict::getCode,Constants.VISIT_CONFIG);
+            SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery);
+
+            if (Objects.isNull(systemDict)){
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
+            }
+            QueryWrapper<SystemDictData> wrapper = new QueryWrapper<>();
+            wrapper.lambda()
+                    .eq(SystemDictData::getDictId,systemDict.getId())
+                    .in(SystemDictData::getLabel,collect);
+            List<SystemDictData> systemDictData = systemDictDataMapper.selectList(wrapper);
+            if (CollectionUtils.isEmpty(systemDictData)){
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀鍊间笉瀛樺湪");
+            }
+            systemDictData.forEach(s->{
+                parse.put(s.getLabel().toLowerCase(),s.getCode());
+            });
+            String s = parse.toJSONString();
+            VisitConfigDTO miniProgrammeDTO = Constants.toSnakeObject(s, VisitConfigDTO.class);
+            return miniProgrammeDTO;
+        } catch (Exception e) {
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀛楀吀鍊艰В鏋愭湁璇�");
+        }
+    }
+
+    @Override
+    public void updateVisitConfig(VisitConfigDTO miniProgrammeDTO) {
+        try {
+
+            QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>();
+            systemDictQuery.lambda()
+                    .eq(SystemDict::getDeleted,Boolean.FALSE)
+                    .eq(SystemDict::getCode,Constants.VISIT_CONFIG);
+            SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery);
+
+            if (Objects.isNull(systemDict)){
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
+            }
+            String jasonStr = Constants.toUnderlineJSONString(miniProgrammeDTO);
+            JSONObject parse = (JSONObject) JSONObject.parse(jasonStr);
+            parse.entrySet().forEach(s->{
+                UpdateWrapper<SystemDictData> wrapper = new UpdateWrapper<>();
+                wrapper.lambda()
+                        .eq(SystemDictData::getDictId,systemDict.getId())
+                        .eq(SystemDictData::getLabel,s.getKey().toUpperCase())
+                        .set(SystemDictData::getCode,s.getValue());
+                systemDictDataMapper.update(null,wrapper);
+            });
+        } catch (JsonProcessingException e) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀛楀吀鍊艰В鏋愭湁璇�");
+        }
+    }
+
+    @Override
+    public LaborConfigDTO getLaborConfigDTO() {
+
+        try {
+            String jasonStr = Constants.toUnderlineJSONString(new LaborConfigDTO());
+            JSONObject parse = (JSONObject) JSONObject.parse(jasonStr);
+            List<String> collect = parse.entrySet().stream().map(s -> s.getKey().toUpperCase()).collect(Collectors.toList());
+
+            QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>();
+            systemDictQuery.lambda()
+                    .eq(SystemDict::getDeleted,Boolean.FALSE)
+                    .eq(SystemDict::getCode,Constants.LABOR_CONFIG);
+            SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery);
+
+            if (Objects.isNull(systemDict)){
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
+            }
+            QueryWrapper<SystemDictData> wrapper = new QueryWrapper<>();
+            wrapper.lambda()
+                    .eq(SystemDictData::getDictId,systemDict.getId())
+                    .in(SystemDictData::getLabel,collect);
+            List<SystemDictData> systemDictData = systemDictDataMapper.selectList(wrapper);
+            if (CollectionUtils.isEmpty(systemDictData)){
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀鍊间笉瀛樺湪");
+            }
+            systemDictData.forEach(s->{
+                parse.put(s.getLabel().toLowerCase(),s.getCode());
+            });
+            String s = parse.toJSONString();
+            LaborConfigDTO miniProgrammeDTO = Constants.toSnakeObject(s, LaborConfigDTO.class);
+            return miniProgrammeDTO;
+        } catch (Exception e) {
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀛楀吀鍊艰В鏋愭湁璇�");
+        }
+    }
+
+    @Override
+    public void updateLaborConfigDTO(LaborConfigDTO miniProgrammeDTO) {
+        try {
+
+            QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>();
+            systemDictQuery.lambda()
+                    .eq(SystemDict::getDeleted,Boolean.FALSE)
+                    .eq(SystemDict::getCode,Constants.VISIT_CONFIG);
+            SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery);
+
+            if (Objects.isNull(systemDict)){
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
+            }
+            String jasonStr = Constants.toUnderlineJSONString(miniProgrammeDTO);
+            JSONObject parse = (JSONObject) JSONObject.parse(jasonStr);
+            parse.entrySet().forEach(s->{
+                UpdateWrapper<SystemDictData> wrapper = new UpdateWrapper<>();
+                wrapper.lambda()
+                        .eq(SystemDictData::getDictId,systemDict.getId())
+                        .eq(SystemDictData::getLabel,s.getKey().toUpperCase())
+                        .set(SystemDictData::getCode,s.getValue());
+                systemDictDataMapper.update(null,wrapper);
+            });
+        } catch (JsonProcessingException e) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀛楀吀鍊艰В鏋愭湁璇�");
+        }
+    }
 }

--
Gitblit v1.9.3