From b081758449c9d491adf1c70a030461b24dc163fe Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期一, 14 八月 2023 17:59:31 +0800
Subject: [PATCH] 满意度调查word解析 人员管理

---
 framework/src/main/java/com/yuanchu/limslaboratory/utils/MultipartFileToFileUtil.java                    |   70 ++++++++++
 cnas-server/src/main/resources/mapper/CnasSatisfactionSurveyMapper.xml                                   |   14 +
 cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyPageDto.java         |    8 
 user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java                                      |    2 
 user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java                             |    2 
 sys/src/main/resources/application-dev.yml                                                               |    6 
 user-server/src/main/resources/mapper/UserMapper.xml                                                     |    2 
 cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasSatisfactionSurveyController.java    |   37 ++++
 cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java |  183 +++++++++++++++++++++++++
 user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java                   |    5 
 cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasSatisfactionSurveyService.java          |   28 +++
 cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasSatisfactionSurveyMapper.java            |    4 
 cnas-server/pom.xml                                                                                      |   25 +++
 cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasSatisfactionSurvey.java                    |   19 +-
 14 files changed, 362 insertions(+), 43 deletions(-)

diff --git a/cnas-server/pom.xml b/cnas-server/pom.xml
index 46a16c0..7931358 100644
--- a/cnas-server/pom.xml
+++ b/cnas-server/pom.xml
@@ -50,6 +50,31 @@
             <artifactId>poi-scratchpad</artifactId>
             <version>4.1.2</version>
         </dependency>
+        <dependency>
+            <groupId>com.yunchu.limslaboratory</groupId>
+            <artifactId>user-server</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>4.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>4.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml-schemas</artifactId>
+            <version>4.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-scratchpad</artifactId>
+            <version>4.1.2</version>
+        </dependency>
     </dependencies>
 
 
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasSatisfactionSurveyController.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasSatisfactionSurveyController.java
index 95646d1..47b9854 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasSatisfactionSurveyController.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasSatisfactionSurveyController.java
@@ -1,16 +1,18 @@
 package com.yuanchu.limslaboratory.controller;
 
-import com.yuanchu.limslaboratory.pojo.Dto.CnasSatisfactionSurveyDto;
+import com.yuanchu.limslaboratory.pojo.CnasSatisfactionSurvey;
+import com.yuanchu.limslaboratory.pojo.Dto.CnasSatisfactionSurveyPageDto;
 import com.yuanchu.limslaboratory.pojo.vo.CnasSatisfactionSurveyVo;
 import com.yuanchu.limslaboratory.service.CnasSatisfactionSurveyService;
 import com.yuanchu.limslaboratory.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.util.Map;
 
 /**
  * @Author 寮犲
@@ -30,9 +32,32 @@
      */
     @ApiOperation(value = "鑾峰彇婊℃剰搴﹁皟鏌�")
     @GetMapping("/getCnasSatisfactionSurvey")
-    public Result<CnasSatisfactionSurveyVo>getCnasSatisfactionSurvey(CnasSatisfactionSurveyDto cnasSatisfactionSurveyDto){
-        return Result.success(service.getCnasSatisfactionSurvey(cnasSatisfactionSurveyDto));
+    public Result<CnasSatisfactionSurveyVo>getCnasSatisfactionSurvey(CnasSatisfactionSurveyPageDto cnasSatisfactionSurveyPageDto){
+        return Result.success(service.getCnasSatisfactionSurvey(cnasSatisfactionSurveyPageDto));
     }
 
+    @GetMapping("/getFillNameAndId")
+    @ApiOperation(value = "鑾峰彇褰撳墠褰曞彇浜�")
+    public Result<Map>getFillNameAndId(@RequestHeader("X-Token")String token){
+        return Result.success(service.getFillNameAndTd(token));
+    }
+
+    /**
+     * 闄勪欢涓婁紶
+     * @param file
+     * @return
+     */
+    @ApiOperation(value = "闄勪欢涓婁紶")
+    @PostMapping(value = "/uploadFile",consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = {MediaType.APPLICATION_JSON_VALUE})
+    public Result<Map>wordParse(MultipartFile file){
+        return Result.success(service.wordParse(file));
+    }
+
+    @ApiOperation(value = "婊℃剰搴﹁皟鏌ユ柊澧�")
+    @PostMapping("/addSurvey")
+    public Result<Boolean>addSurvey(@RequestBody CnasSatisfactionSurvey cnasSatisfactionSurvey){
+        System.out.println(cnasSatisfactionSurvey+"=============");
+        return Result.success(service.addSurvey(cnasSatisfactionSurvey));
+    }
 
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasSatisfactionSurveyMapper.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasSatisfactionSurveyMapper.java
index 2b73e83..585272b 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasSatisfactionSurveyMapper.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasSatisfactionSurveyMapper.java
@@ -4,8 +4,6 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.limslaboratory.pojo.CnasSatisfactionSurvey;
-import com.yuanchu.limslaboratory.pojo.Dto.CnasSatisfactionSurveyDto;
-import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -15,5 +13,5 @@
 @Repository
 public interface CnasSatisfactionSurveyMapper extends BaseMapper<CnasSatisfactionSurvey> {
 
-    IPage<CnasSatisfactionSurvey>selectCnasSatisfactionSurvey(Page<CnasSatisfactionSurvey>page, @Param("dto") CnasSatisfactionSurveyDto dto);
+    IPage<CnasSatisfactionSurvey>selectCnasSatisfactionSurvey(Page<CnasSatisfactionSurvey>page, String surveyDate,String entryDate);
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasSatisfactionSurvey.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasSatisfactionSurvey.java
index ddf02ce..e9e930a 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasSatisfactionSurvey.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasSatisfactionSurvey.java
@@ -9,7 +9,7 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
-import java.sql.Date;
+import java.util.Date;
 import java.time.LocalDateTime;
 
 /**
@@ -45,12 +45,12 @@
      */
     private String userUnit;
 
-    /**
-     * 鏃ユ湡
-     */
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date dateInfo;
+    ///**
+    // * 鏃ユ湡
+    // */
+    //@DateTimeFormat(pattern = "yyyy-MM-dd")
+    //@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    //private Date dateInfo;
 
     /**
      * 濉啓浜哄鍚�
@@ -134,5 +134,10 @@
             pattern = "yyyy-MM-dd HH:mm:ss"
     )
     private LocalDateTime updatedTime;
+
+    /**
+     * 鏀惰垂鍚堢悊鎬�
+     */
+    private String reasonableCharge;
 }
 
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyDto.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyPageDto.java
similarity index 76%
rename from cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyDto.java
rename to cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyPageDto.java
index 13b98ee..119dea9 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyDto.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/CnasSatisfactionSurveyPageDto.java
@@ -8,7 +8,7 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
-import java.util.Date;
+import java.sql.Date;
 
 /**
  * @Author 寮犲
@@ -17,7 +17,7 @@
 @Data
 @EqualsAndHashCode(callSuper = false)
 @ApiModel(value="CnasSatisfactionSurveyDto", description="")
-public class CnasSatisfactionSurveyDto implements Serializable {
+public class CnasSatisfactionSurveyPageDto implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true)
@@ -27,13 +27,9 @@
     private Long pageNum;
 
     @ApiModelProperty(value = "璋冩煡鏃ユ湡", example = "2020-01-02", required = true)
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date surveyDate;
 
     @ApiModelProperty(value = "褰曞叆鏃ユ湡", example = "2025-06-08", required = true)
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date entryDate;
 
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasSatisfactionSurveyService.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasSatisfactionSurveyService.java
index e80a3f7..673c12d 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasSatisfactionSurveyService.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasSatisfactionSurveyService.java
@@ -1,7 +1,11 @@
 package com.yuanchu.limslaboratory.service;
 
-import com.yuanchu.limslaboratory.pojo.Dto.CnasSatisfactionSurveyDto;
+import com.yuanchu.limslaboratory.pojo.CnasSatisfactionSurvey;
+import com.yuanchu.limslaboratory.pojo.Dto.CnasSatisfactionSurveyPageDto;
 import com.yuanchu.limslaboratory.pojo.vo.CnasSatisfactionSurveyVo;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Map;
 
 /**
  * @Author 寮犲
@@ -11,10 +15,28 @@
 
     /**
      * 鑾峰彇婊℃剰搴﹁皟鏌ヤ俊鎭�
-     * @param cnasSatisfactionSurveyDto
+     * @param cnasSatisfactionSurveyPageDto
      * @return
      */
-    CnasSatisfactionSurveyVo getCnasSatisfactionSurvey(CnasSatisfactionSurveyDto cnasSatisfactionSurveyDto);
+    CnasSatisfactionSurveyVo getCnasSatisfactionSurvey(CnasSatisfactionSurveyPageDto cnasSatisfactionSurveyPageDto);
 
+    /**
+     * 鑾峰彇褰撳墠褰曞叆浜�
+     * @return
+     */
+    Map<String, Object> getFillNameAndTd(String token);
 
+    /**
+     * 瑙f瀽word
+     * @param file
+     * @return
+     */
+    Map<String, String> wordParse(MultipartFile file);
+
+    /**
+     * 鏂板婊℃剰搴﹁皟鏌�
+     * @param cnasSatisfactionSurvey
+     * @return
+     */
+    Boolean addSurvey(CnasSatisfactionSurvey cnasSatisfactionSurvey);
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java
index 846cd7c..57fb932 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasSatisfactionSurveyServiceImpl.java
@@ -1,15 +1,28 @@
 package com.yuanchu.limslaboratory.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.limslaboratory.mapper.CnasSatisfactionSurveyMapper;
 import com.yuanchu.limslaboratory.pojo.CnasSatisfactionSurvey;
-import com.yuanchu.limslaboratory.pojo.Dto.CnasSatisfactionSurveyDto;
+import com.yuanchu.limslaboratory.pojo.Dto.CnasSatisfactionSurveyPageDto;
 import com.yuanchu.limslaboratory.pojo.vo.CnasSatisfactionSurveyVo;
 import com.yuanchu.limslaboratory.service.CnasSatisfactionSurveyService;
+import com.yuanchu.limslaboratory.service.UserService;
+import com.yuanchu.limslaboratory.utils.MultipartFileToFileUtil;
+import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.hwpf.extractor.WordExtractor;
+import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Author 寮犲
@@ -18,14 +31,176 @@
 @Service
 public class CnasSatisfactionSurveyServiceImpl implements CnasSatisfactionSurveyService {
 
+    private static final List<String> SELECT_LIST = Arrays.asList( "鈽戞弧鎰�=0", "鈽戜竴鑸�=1",  "鈽戜笉婊℃剰=2");
+
 
     @Resource
     private CnasSatisfactionSurveyMapper mapper;
 
+    @Resource
+    private UserService userService;
+
     @Override
-    public CnasSatisfactionSurveyVo getCnasSatisfactionSurvey(CnasSatisfactionSurveyDto cnasSatisfactionSurveyDto) {
-        Page<CnasSatisfactionSurvey>page=new Page<>(cnasSatisfactionSurveyDto.getCurrentPage(), cnasSatisfactionSurveyDto.getPageNum(),true);
-        IPage<CnasSatisfactionSurvey> cnasSatisfactionSurveyIPage = mapper.selectCnasSatisfactionSurvey(page, cnasSatisfactionSurveyDto);
+    public CnasSatisfactionSurveyVo getCnasSatisfactionSurvey(CnasSatisfactionSurveyPageDto cnasSatisfactionSurveyPageDto) {
+        Page<CnasSatisfactionSurvey>page=new Page<>(cnasSatisfactionSurveyPageDto.getCurrentPage(), cnasSatisfactionSurveyPageDto.getPageNum(),true);
+        String surveyDate=DateUtil.format(cnasSatisfactionSurveyPageDto.getSurveyDate(), "yyyyMMdd");
+        String entryDate=DateUtil.format(cnasSatisfactionSurveyPageDto.getEntryDate(), "yyyyMMdd");;
+        IPage<CnasSatisfactionSurvey> cnasSatisfactionSurveyIPage = mapper.selectCnasSatisfactionSurvey(page,surveyDate,entryDate);
         return new CnasSatisfactionSurveyVo(cnasSatisfactionSurveyIPage.getRecords(),cnasSatisfactionSurveyIPage.getTotal());
     }
+
+    /**
+     *
+     * @param token
+     * @return
+     */
+    @Override
+    public Map<String, Object> getFillNameAndTd(String token) {
+        Map<String, Object> userInfo = userService.getUserInfo(token);
+        return userInfo;
+    }
+
+    @Override
+    public Map<String, String> wordParse(MultipartFile file) {
+        Map<String, String>result=null;
+        File multipartFileToFile = null;
+        try {
+            multipartFileToFile=MultipartFileToFileUtil.multipartFileToFile(file);
+            result=parseWord(multipartFileToFile);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }finally {
+            MultipartFileToFileUtil.delteTempFile(multipartFileToFile);
+        }
+        return result;
+    }
+
+    @Override
+    public Boolean addSurvey(CnasSatisfactionSurvey cnasSatisfactionSurvey) {
+        cnasSatisfactionSurvey.setCreatedTime(DateUtil.toLocalDateTime(DateUtil.date()));
+        return mapper.insert(cnasSatisfactionSurvey)>1;
+    }
+
+    /**
+     * 瑙f瀽word
+     * @param file
+     * @return
+     */
+    public static Map<String,String> parseWord(File file){
+        String info = "";
+        try {
+            FileInputStream fis = new FileInputStream(file);
+            String[] split = file.getName().split("\\.");
+            if ("doc".equals(split[split.length-1])) {
+                // 璇诲彇doc鏂囦欢
+                HWPFDocument doc = new HWPFDocument(fis);
+                WordExtractor docExtractor = new WordExtractor(doc);
+                String text = docExtractor.getText();
+                info = text.trim();
+                docExtractor.close();
+            } else if ("docx".equals(split[split.length-1])) {
+                // 璇诲彇docx鏂囦欢
+                XWPFDocument docx = new XWPFDocument(fis);
+                XWPFWordExtractor docxExtractor = new XWPFWordExtractor(docx);
+                String text = docxExtractor.getText();
+                System.out.println("docx:");
+                info = text.trim();
+                docxExtractor.close();
+            } else {
+                System.out.println("涓嶆槸word鏂囦欢");
+            }
+            fis.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        List<String> infoList = new ArrayList<String>();
+        String[] split = info.split("\n");
+        for (int i = 0; i < split.length; i++) {
+            if (i > 2) {
+                infoList.add(split[i]
+                        .replaceAll("\r","")
+                        .replaceAll(" ","")
+                        .replaceAll("\t","")
+                        .replaceAll("\\s","").replaceAll(" +",""));
+            }
+        }
+        Map<String, String> result = new HashMap<>();
+        //绗竴琛�
+        String unitName="鍗曚綅鍚嶇ОUnitname";
+        String projectName="椤圭洰鍚嶇ОProjectname";
+        String[] one = infoList.get(0).replace(unitName, "").split(projectName);
+        result.put("unitName",one[0]);
+        result.put("projectName",one[1]);
+        String fillName="濉〃浜哄鍚嶏紡鏃ユ湡Name/dateofthepersonfillingintheform";
+        String post="鑱屼綅Posts";
+        String telephone="鑱旂郴鐢佃瘽Contactnumber";
+        String email="閭紪Zip";
+        String[] split1 = infoList.get(1).replace(fillName, "").split(post);
+        result.put("fillName",split1[0]);
+        String[] split2 = split1[1].split(telephone);
+        result.put("post",split2[0]);
+        String[] split3 = split2[1].split(email);
+        result.put("telephone",split3[0]);
+        result.put("email",split3[1]);
+        //绗簩琛�
+        String serviceAttitude="鏈嶅姟鎬佸害Serviceattitude";
+        //鏈嶅姟鎬佸害鍜屽缓璁�
+        String two = getSelectAndAdvise(infoList.get(2), serviceAttitude);
+        result.put("serviceAttitude",two);
+        //绗笁琛�
+        String technicalPower="鎶�鏈兘鍔汿echnicalcompetence";
+        String three = getSelectAndAdvise(infoList.get(3), technicalPower);
+        result.put("technicalPower",three);
+        //绗洓琛�
+        String testJob="妫�娴嬪伐浣淚nspectionwork";
+        String four = getSelectAndAdvise(infoList.get(4), testJob);
+        result.put("testJob",four);
+        //绗簲琛�
+        String reasonableCharge="鏀惰垂鍚堢悊鎬easonablefees";
+        String five = getSelectAndAdvise(infoList.get(5), reasonableCharge);
+        result.put("reasonableCharge",five);
+        //绗叚琛�
+        String improvementRequirements="鏀硅繘鐨勮姹傦細";
+        String requirementsForImprovement="Requirementsforimprovement:";
+        String six = infoList.get(6).replace(improvementRequirements, "").replace(requirementsForImprovement, "");
+        result.put("improvementRequirements",six);
+        //绗竷琛�
+        String otherSupplements="鎮ㄥ鎴戜滑鐨勫笇鏈涳細";
+        String otherEnglish="Whatyouwantfromus:";
+        String seven = infoList.get(7).replace(otherSupplements, "").replace(otherEnglish, "");
+        result.put("otherSupplements",seven);
+        return result;
+    }
+
+
+    /**
+     * 鑾峰彇閫夋嫨浠ュ強寤鸿
+     * @param str
+     * @param type
+     * @return
+     */
+    public static String getSelectAndAdvise(String str,String type){
+        String adviseInfo="寤鸿锛�";
+        String suggestion="Suggestion:";
+        String satisfied="Satisfied";
+        String general="General";
+        String dissatisfied="Dissatisfied";
+        String[] split4 = str.replace(type, "").replace(suggestion, "").split(adviseInfo);
+        List<String>select=new ArrayList<>();
+        String advise=split4[1];
+        String[] split5 = split4[0].split(satisfied);
+        select.add(split5[0]);
+        String[] split6 = split5[1].split(general);
+        select.add(split6[0]);
+        select.add(split6[1].replace(dissatisfied,""));
+        String selected = getSelected(select);
+        return selected+"/$"+advise;
+    }
+
+    public static String getSelected(List<String> select){
+        String collect = SELECT_LIST.stream().filter(item -> select.stream()
+                .map(e -> e).collect(Collectors.toList())
+                .contains(item.split("=")[0])).collect(Collectors.joining());
+        return collect.split("=")[1];
+    }
 }
diff --git a/cnas-server/src/main/resources/mapper/CnasSatisfactionSurveyMapper.xml b/cnas-server/src/main/resources/mapper/CnasSatisfactionSurveyMapper.xml
index 2beef0a..3302613 100644
--- a/cnas-server/src/main/resources/mapper/CnasSatisfactionSurveyMapper.xml
+++ b/cnas-server/src/main/resources/mapper/CnasSatisfactionSurveyMapper.xml
@@ -9,7 +9,6 @@
             css.project_name projectName,
             css.survey_date surveyDate,
             css.user_unit userUnit,
-            css.date_info dateInfo,
             css.`fill_name` fillName,
             css.post post,
             css.telephone telephone,
@@ -18,7 +17,9 @@
             css.service_attitude serviceAttitude,
             css.technical_power technicalPower,
             css.test_job testJob,
-            css.improvement_requirements improvementRequirements
+            css.reasonable_charge reasonableCharge,
+            css.improvement_requirements improvementRequirements,
+            css.other_supplements otherSupplements
         FROM
             cnas_satisfaction_survey css,
             `user` u
@@ -26,11 +27,12 @@
             1 = 1
           AND css.user_id = u.id
           and css.state=1
-        <if test="dto.surveyDate!=null">
-            and css.survey_date = ${dto.surveyDate}
+        <if test="surveyDate!=null">
+            and date_format(css.survey_date,'%Y%m%d') = ${surveyDate}
         </if>
-        <if test="dto.entryDate!=null">
-            and css.entry_date = ${dto.entryDate}
+        <if test="entryDate!=null">
+            and date_format(css.entry_date,'%Y%m%d') = ${entryDate}
         </if>
+        order by css.id Desc
     </select>
 </mapper>
\ No newline at end of file
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/MultipartFileToFileUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MultipartFileToFileUtil.java
new file mode 100644
index 0000000..a867564
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/MultipartFileToFileUtil.java
@@ -0,0 +1,70 @@
+package com.yuanchu.limslaboratory.utils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * @Author 寮犲
+ * @Date 2022/8/5
+ */
+@Slf4j
+public class MultipartFileToFileUtil {
+    /**
+     * MultipartFile 杞� File
+     *
+     * @param file
+     * @throws Exception
+     */
+    public static File multipartFileToFile(MultipartFile file) throws Exception {
+
+        File toFile = null;
+        if (file.equals("") || file.getSize() <= 0) {
+            file = null;
+        } else {
+            InputStream ins = null;
+            ins = file.getInputStream();
+            toFile = new File(file.getOriginalFilename());
+            inputStreamToFile(ins, toFile);
+            ins.close();
+        }
+        return toFile;
+    }
+
+    //鑾峰彇娴佹枃浠�
+    private static void inputStreamToFile(InputStream ins, File file) {
+        try {
+            OutputStream os = new FileOutputStream(file);
+            int bytesRead = 0;
+            byte[] buffer = new byte[8192];
+            while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
+                os.write(buffer, 0, bytesRead);
+            }
+            os.close();
+            ins.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 鍒犻櫎鏈湴涓存椂鏂囦欢
+     * @param file
+     */
+    public static void delteTempFile(File file) {
+        if (file != null) {
+            String name = file.getName();
+            File del = new File(file.toURI());
+            if (del.delete()){
+                log.info("鍒犻櫎涓存椂鏂囦欢"+name+"鎴愬姛!");
+            }else {
+                log.error("鍒犻櫎涓存椂鏂囦欢"+name+"澶辫触!");
+            }
+        }
+    }
+
+}
diff --git a/sys/src/main/resources/application-dev.yml b/sys/src/main/resources/application-dev.yml
index 77eddc6..6cef4e4 100644
--- a/sys/src/main/resources/application-dev.yml
+++ b/sys/src/main/resources/application-dev.yml
@@ -71,15 +71,15 @@
     # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級
     password: null
     # redis杩炴帴瓒呮椂鏃堕棿锛堝崟浣嶆绉掞級
-    timeout: 5
+    timeout: 50
     # redis杩炴帴姹犻厤缃�
     pool:
       # 鏈�澶у彲鐢ㄨ繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級
-      max-active: 8
+      max-active: 20
       # 鏈�澶х┖闂茶繛鎺ユ暟锛堥粯璁や负8锛岃礋鏁拌〃绀烘棤闄愶級
       max-idle: 8
       # 鏈�灏忕┖闂茶繛鎺ユ暟锛堥粯璁や负0锛岃鍊煎彧鏈変负姝f暟鎵嶆湁鐢級
-      min-idle: 0
+      min-idle: 5
       # 浠庤繛鎺ユ睜涓幏鍙栬繛鎺ユ渶澶х瓑寰呮椂闂达紙榛樿涓�-1锛屽崟浣嶄负姣锛岃礋鏁拌〃绀烘棤闄愶級
       max-wait: -1
 
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java
index 14cea5b..7c1b746 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/pojo/User.java
@@ -54,7 +54,7 @@
     private String email;
 
     @ApiModelProperty(value = "骞撮緞")
-    private Integer age;
+    private String age;
 
     @ApiModelProperty(value = "涓�х鍚�")
     private String info;
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
index 744ad7e..72be050 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
@@ -49,6 +49,7 @@
             }
             Map<String, Object> data = new HashMap<>();
             data.put("name",loginUser.get("name"));
+            data.put("id",loginUser.get("id"));
             data.put("remind", remind);
             return data;
         }
@@ -103,7 +104,7 @@
         User user = new User()
                 .setName(newPersonnelVo.getName())
                 .setAccount(newPersonnelVo.getAccount())
-                .setAge(newPersonnelVo.getAge())
+                .setAge(String.valueOf(newPersonnelVo.getAge()))
                 .setPhone(newPersonnelVo.getPhone())
                 .setEmail(newPersonnelVo.getEmail())
                 .setRoleId(newPersonnelVo.getRole_id())
@@ -117,7 +118,7 @@
         User user = new User()
                 .setName(updatePersonnelVo.getName())
                 .setAccount(updatePersonnelVo.getAccount())
-                .setAge(updatePersonnelVo.getAge())
+                .setAge(String.valueOf(updatePersonnelVo.getAge()))
                 .setPhone(updatePersonnelVo.getPhone())
                 .setEmail(updatePersonnelVo.getEmail())
                 .setRoleId(updatePersonnelVo.getRole_id())
diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java b/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java
index b5564c0..ec6866e 100644
--- a/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/vo/PagePersonnelVo.java
@@ -26,7 +26,7 @@
     private Date createTime;
 
     @ApiModelProperty(value = "骞撮緞", example = "23")
-    private Integer age;
+    private String age;
 
     @ApiModelProperty(value = "鎵嬫満鍙�", example = "12345678981")
     private String phone;
diff --git a/user-server/src/main/resources/mapper/UserMapper.xml b/user-server/src/main/resources/mapper/UserMapper.xml
index 54ecc0e..4a8eb08 100644
--- a/user-server/src/main/resources/mapper/UserMapper.xml
+++ b/user-server/src/main/resources/mapper/UserMapper.xml
@@ -32,7 +32,7 @@
         IFNULL(u.`phone`, '---') phone, IFNULL(u.`email`, '---') email, u.`job_state`
         FROM `user` u, role r
         WHERE u.`role_id` = r.`id`
-        <if test="name != null">
+        <if test="name != null and name!=''">
             AND u.name = #{name}
         </if>
     </select>

--
Gitblit v1.9.3