From e72b3ab95aace19535fe596897822f0e334de5d6 Mon Sep 17 00:00:00 2001
From: “zhuo” <“zhuo@itcast.cn”>
Date: 星期五, 11 八月 2023 18:00:23 +0800
Subject: [PATCH] 8-11提交代码

---
 cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasAnnualPlanServiceImpl.java |   51 +++++++
 cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasAnnualPlanVo.java               |    3 
 cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasAnnualPlan.java                    |    5 
 cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasAnnualPlanMapper.java            |    2 
 cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasAnnualPlanService.java          |   14 ++
 cnas-server/src/main/resources/mapper/CnasAnnualPlanMapper.xml                                   |   38 +++---
 sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java                            |  134 ++++++++++++++++++++++
 sys/src/main/resources/application-dev.yml                                                       |    2 
 cnas-server/pom.xml                                                                              |   21 +++
 cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasAnnualPlanController.java    |   47 ++++++-
 10 files changed, 280 insertions(+), 37 deletions(-)

diff --git a/cnas-server/pom.xml b/cnas-server/pom.xml
index 3cd7c42..46a16c0 100644
--- a/cnas-server/pom.xml
+++ b/cnas-server/pom.xml
@@ -29,6 +29,27 @@
             <artifactId>hutool-all</artifactId>
             <version>5.8.12</version>
         </dependency>
+        <!--搴曚笅鍥涗釜閮芥槸poi渚濊禆-->
+        <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/CnasAnnualPlanController.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasAnnualPlanController.java
index 08f6654..4b410c5 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasAnnualPlanController.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/controller/CnasAnnualPlanController.java
@@ -5,6 +5,8 @@
 import com.yuanchu.limslaboratory.pojo.CnasAnnualPlan;
 import com.yuanchu.limslaboratory.pojo.vo.CnasAnnualPlanVo;
 import com.yuanchu.limslaboratory.service.CnasAnnualPlanService;
+import com.yuanchu.limslaboratory.utils.JackSonUtil;
+import com.yuanchu.limslaboratory.utils.RedisUtil;
 import com.yuanchu.limslaboratory.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -12,7 +14,7 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.stereotype.Controller;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -39,12 +41,11 @@
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "page", value = "鍒濆椤�", dataTypeClass = Integer.class, required = true),
             @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "beginTime", value = "妫�楠屽紑濮嬫椂闂�", dataTypeClass = Date.class),
-            @ApiImplicitParam(name = "endTime", value = "妫�楠岀粨鏉熸椂闂�", dataTypeClass = Date.class),
+            @ApiImplicitParam(name = "planTime", value = "妫�楠屽紑濮嬫椂闂�", dataTypeClass = Date.class),
     })
     @GetMapping("/selectAllList")
-    public Result selectAllList(Integer page, Integer pageSize, @DateTimeFormat(pattern = "yyyy-MM-dd") Date beginTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
-        IPage<CnasAnnualPlanVo> reportPage = cnasAnnualPlanService.selectAllList(new Page(page, pageSize), beginTime, endTime);
+    public Result selectAllList(Integer page, Integer pageSize, @DateTimeFormat(pattern = "yyyy-MM") Date planTime) {
+        IPage<CnasAnnualPlanVo> reportPage = cnasAnnualPlanService.selectAllList(new Page(page, pageSize), planTime);
         Map<String, Object> map = new HashMap<>();
         map.put("total", reportPage.getTotal());
         map.put("row", reportPage.getRecords());
@@ -56,9 +57,43 @@
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "CnasAnnualPlan", value = "瀹℃煡瀵硅薄", dataTypeClass = Integer.class, required = true)
     })
-    public Result addCnasAnnualPlan(@RequestBody CnasAnnualPlan cnasAnnualPlan) {
+    public Result addCnasAnnualPlan(@RequestHeader("X-Token") String token, @RequestBody CnasAnnualPlan cnasAnnualPlan) throws Exception {
+        Object object = RedisUtil.get(token);
+        Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
+        String name = (String) unmarshal.get("name");
+        cnasAnnualPlan.setKeyboarder(name);
+        //todo:鑾峰彇name鏈夐棶棰�
         cnasAnnualPlanService.save(cnasAnnualPlan);
         return Result.success();
     }
 
+
+    @ApiOperation(value = "涓婁紶闄勪欢")
+    @PostMapping("/addAccessory")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "auditTime", value = "瀹℃牳鏃ユ湡", dataTypeClass = Date.class, required = true),
+            @ApiImplicitParam(name = "file", value = "闄勪欢鏂囦欢", dataTypeClass = MultipartFile.class, required = true)
+    })
+    public Result addAccessory(@RequestHeader("X-Token") String token, Date auditTime, MultipartFile file) throws Exception {
+        //瑙f瀽褰撳墠鐧诲綍鐢ㄦ埛
+        Object object = RedisUtil.get(token);
+        Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
+        String name = (String) unmarshal.get("name");
+        cnasAnnualPlanService.addAccessory(name, auditTime, file);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鍒犻櫎骞村害璁″垝")
+    @GetMapping("/deleteCnasAnnualPlan")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "planId", value = "瀹℃牳鏃ユ湡", dataTypeClass = Integer.class, required = true)
+    })
+    public Result deleteCnasAnnualPlan(Integer planId) {
+        Integer isDeleteSuccess = cnasAnnualPlanService.deleteCnasAnnualPlan(planId);
+        if (isDeleteSuccess == 1){
+            return Result.success("鍒犻櫎鎴愬姛");
+        } else {
+            return Result.fail("鍒犻櫎澶辫触");
+        }
+    }
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasAnnualPlanMapper.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasAnnualPlanMapper.java
index 1ab268a..c34d271 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasAnnualPlanMapper.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/mapper/CnasAnnualPlanMapper.java
@@ -22,5 +22,5 @@
      * 鏌ヨ瀹℃牳璁″垝
      * @return
      */
-    IPage<CnasAnnualPlanVo> selectAllList(Page<Object> objectPage, Date beginTime, Date endTime);
+    IPage<CnasAnnualPlanVo> selectAllList(Page<Object> objectPage, Integer year, Integer month);
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasAnnualPlan.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasAnnualPlan.java
index 6c55a83..b89903d 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasAnnualPlan.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/CnasAnnualPlan.java
@@ -8,6 +8,7 @@
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Getter;
@@ -23,6 +24,7 @@
  */
 @Data
 @TableName("cnas_annual_plan")
+@ApiModel(value="CnasAnnualPlan瀵硅薄", description="")
 public class CnasAnnualPlan implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -64,9 +66,6 @@
 
     @ApiModelProperty(value = "涓嶅悎鏍奸」鐩暟")
     private Integer count;
-
-    @ApiModelProperty(value = "瀹℃牳鐘舵��,0:鍗冲皢寮�濮�,1:瀹屾垚,2:閫炬湡")
-    private Integer auditState;
 
     @TableLogic(value = "1", delval = "0")
     @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasAnnualPlanVo.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasAnnualPlanVo.java
index 80840ea..7eb4638 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasAnnualPlanVo.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/CnasAnnualPlanVo.java
@@ -14,4 +14,7 @@
 
     @ApiModelProperty(value = "鏈堜唤")
     private Integer month;
+
+    @ApiModelProperty(value = "瀹℃牳鐘舵��,0:鍗冲皢寮�濮�,1:瀹屾垚,2:閫炬湡")
+    private Integer auditState;
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasAnnualPlanService.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasAnnualPlanService.java
index 17c8aea..cdb11f9 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasAnnualPlanService.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/CnasAnnualPlanService.java
@@ -5,6 +5,7 @@
 import com.yuanchu.limslaboratory.pojo.CnasAnnualPlan;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yuanchu.limslaboratory.pojo.vo.CnasAnnualPlanVo;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.Date;
 
@@ -22,5 +23,16 @@
      * 鏌ヨ瀹℃牳璁″垝
      * @return
      */
-    IPage<CnasAnnualPlanVo> selectAllList(Page<Object> objectPage, Date beginTime, Date endTime);
+    IPage<CnasAnnualPlanVo> selectAllList(Page<Object> objectPage, Date planTime);
+
+    /**
+     * 涓婁紶闄勪欢
+     */
+    void addAccessory(String name, Date auditTime, MultipartFile file);
+
+    /**
+     * 鍒犻櫎骞村害璁″垝
+     * @return
+     */
+    Integer deleteCnasAnnualPlan(Integer planId);
 }
diff --git a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasAnnualPlanServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasAnnualPlanServiceImpl.java
index c797363..397621f 100644
--- a/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasAnnualPlanServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/limslaboratory/service/impl/CnasAnnualPlanServiceImpl.java
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,6 +12,7 @@
 import com.yuanchu.limslaboratory.service.CnasAnnualPlanService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -31,19 +33,60 @@
 
     /**
      * 鏌ヨ瀹℃牳璁″垝
+     *
      * @return
      */
     @Override
-    public IPage<CnasAnnualPlanVo> selectAllList(Page<Object> objectPage, Date beginTime, Date endTime) {
-        IPage<CnasAnnualPlanVo> page = cnasAnnualPlanMapper.selectAllList(objectPage, beginTime, endTime);
+    public IPage<CnasAnnualPlanVo> selectAllList(Page<Object> objectPage, Date planTime) {
+        //鍒ゆ柇鏄惁鏈夋棩鏈�
+        Integer yearTime = null;
+        Integer monthTime = null;
+        if (planTime != null) {
+            yearTime = DateUtil.year(planTime);
+            monthTime = DateUtil.month(planTime) + 2;
+        }
+        IPage<CnasAnnualPlanVo> page = cnasAnnualPlanMapper.selectAllList(objectPage, yearTime, monthTime);
         page.getRecords().forEach(cnasAnnualPlanVo -> {
             //鑾峰彇璁″垝鏃堕棿
             Date time = cnasAnnualPlanVo.getPlanTime();
-            //娣诲姞骞�
+            //娣诲姞骞存湀
             cnasAnnualPlanVo.setYear(DateUtil.year(time));
-            //娣诲姞鏈�
             cnasAnnualPlanVo.setMonth(DateUtil.month(time) + 1);
+            //鍒ゆ柇瀹℃牳鐘舵��
+            //鑾峰彇褰撳墠鏃堕棿
+            Date nowDate = new Date();
+            //鑾峰彇褰撳墠鐨勫勾鏈�
+            int year = DateUtil.year(nowDate);
+            int month = DateUtil.month(nowDate) + 1;
+            if (cnasAnnualPlanVo.getAuditTime() == null && month > cnasAnnualPlanVo.getMonth() || year > cnasAnnualPlanVo.getYear()) {
+                cnasAnnualPlanVo.setAuditState(2);
+            } else if (cnasAnnualPlanVo.getAuditTime() != null) {
+                cnasAnnualPlanVo.setAuditState(1);
+            } else {
+                cnasAnnualPlanVo.setAuditState(0);
+            }
         });
         return page;
     }
+
+    /**
+     * 涓婁紶闄勪欢
+     */
+    @Override
+    public void addAccessory(String name, Date auditTime, MultipartFile file) {
+        //todo: 涓婁紶闄勪欢鏈畬鎴�
+    }
+
+    /**
+     * 鍒犻櫎骞村害璁″垝
+     *
+     * @return
+     */
+    @Override
+    public Integer deleteCnasAnnualPlan(Integer planId) {
+        LambdaUpdateWrapper<CnasAnnualPlan> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.eq(CnasAnnualPlan::getId, planId);
+        updateWrapper.set(CnasAnnualPlan::getState, 0);
+        return cnasAnnualPlanMapper.update(new CnasAnnualPlan(), updateWrapper);
+    }
 }
diff --git a/cnas-server/src/main/resources/mapper/CnasAnnualPlanMapper.xml b/cnas-server/src/main/resources/mapper/CnasAnnualPlanMapper.xml
index 0b9e5f3..8f53657 100644
--- a/cnas-server/src/main/resources/mapper/CnasAnnualPlanMapper.xml
+++ b/cnas-server/src/main/resources/mapper/CnasAnnualPlanMapper.xml
@@ -4,26 +4,26 @@
     <!--鏌ヨ瀹℃牳璁″垝-->
     <select id="selectAllList" resultType="com.yuanchu.limslaboratory.pojo.vo.CnasAnnualPlanVo">
         select id,
-               audit_type,
-               department,
-               audit_purpose,
-               audit_leader,
-               audit_emp,
-               audit_pursuant,
-               audit_scope,
-               write_user,
-               keyboarder,
-               plan_time,
-               count,
-               audit_state,
-               state,
-               audit_time,
-               create_time,
-               update_time
+        audit_type,
+        department,
+        audit_purpose,
+        audit_leader,
+        audit_emp,
+        audit_pursuant,
+        audit_scope,
+        write_user,
+        keyboarder,
+        plan_time,
+        count,
+        state,
+        audit_time,
+        update_time
         from cnas_annual_plan
         where state = 1
-          <if test="beginTime != null and endTime != null">
-              and plan_time between #{beginTime} and #{endTime}
-          </if>
+        <if test="year != null and month != null">
+            and year(plan_time) = #{year}
+            and month(plan_time) = #{month}
+        </if>
+        order by id desc
     </select>
 </mapper>
diff --git a/sys/src/main/resources/application-dev.yml b/sys/src/main/resources/application-dev.yml
index c84fc36..77eddc6 100644
--- a/sys/src/main/resources/application-dev.yml
+++ b/sys/src/main/resources/application-dev.yml
@@ -65,7 +65,7 @@
     # redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐�
     database: 0
     # redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负localhost锛�
-    host: localhost
+    host: 192.168.110.209
     # redis绔彛锛堥粯璁や负6379锛�
     port: 6379
     # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級
diff --git a/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java b/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
index f3671e0..d1146ea 100644
--- a/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
+++ b/sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
@@ -1,11 +1,24 @@
 package com.yuanchu.limslaboratory;
+
 import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
 import com.yuanchu.limslaboratory.service.PlanService;
+import com.yuanchu.limslaboratory.service.UserService;
+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.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
 import javax.annotation.Resource;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @SpringBootTest
 class SysApplicationTests {
@@ -13,16 +26,133 @@
     @Resource
     private PlanService planService;
 
+    @Resource
+    private UserService userService;
+
     @Test
     void contextLoads() {
         String newString = String.format("%06d", 77);
         System.out.println("newString === " + newString);
 
     }
+
     @Test
     void TT() {
-        List<PlanVo> planVos = planService.selectAllPlan(null, null, null, null);
-        planVos.forEach(System.out::println);
+        Map<String, Object> userInfo = userService.getUserInfo("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50IjoiYzhiMWFhYWNlYzM2NmMyNGU1ZDE4YzdlZWE5ZTU1MWIiLCJleHAiOjE2OTE3Mzk4MjV9.IZyU5jhTzpxedmmL25dhpkzQS7hth7gt-bzCx9fZyOk");
+        System.out.println(userInfo.get("name"));
+    }
+
+    @Test
+    void uploading() {
+        // 鏇挎崲涓篸oc鎴杁ocx鏂囦欢鐨勮矾寰�
+        String filePath = "D:\\20892\\desktop\\QR-14-01-02+++鍐呴儴瀹℃牳骞村害璁″垝.doc";
+        String info = "";
+        try {
+            FileInputStream fis = new FileInputStream(filePath);
+            if (filePath.endsWith(".doc")) {
+                // 璇诲彇doc鏂囦欢
+                HWPFDocument doc = new HWPFDocument(fis);
+                WordExtractor docExtractor = new WordExtractor(doc);
+                String text = docExtractor.getText();
+                System.out.println("doc:");
+                info = text.trim();
+                docExtractor.close();
+            } else if (filePath.endsWith(".docx")) {
+                // 璇诲彇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 (Exception e) {
+            e.printStackTrace();
+        }
+        List<String> infoList = new ArrayList<String>();
+        String[] split = info.split("\n");
+        for (int i = 0; i < split.length; i++) {
+            System.out.println("======>" + split[i]);
+            if (i > 2) {
+                infoList.add(split[i]);
+            }
+        }
+        Map<String, String> result = new HashMap<>();
+        //瀹㈡埛鍗曚綅/椤圭洰鍚嶇О
+        String[] proAndUnit = infoList.get(0).split("\t");
+        for (int i = 0; i < proAndUnit.length; i++) {
+            if (i == 1) {
+                result.put("unitName", proAndUnit[i]);
+            }
+            if (i == 3) {
+                result.put("projectName", proAndUnit[i]);
+            }
+        }
+        //濉〃浜哄鍚�/鑱屼綅/鑱旂郴鐢佃瘽/閭紪
+        String npty = infoList.get(1);
+        String nameAndDate = npty.split("form")[1].split("鑱屼綅")[0];
+        //濮撳悕/鏃ユ湡
+        result.put("nameAndDate", nameAndDate.trim());
+        //鑱屼綅
+        String post = npty.split("Posts")[1].split("鑱旂郴鐢佃瘽")[0];
+        result.put("post", post.trim());
+        //鑱旂郴鐢佃瘽
+        String phone = npty.split("number")[1].split("閭紪")[0];
+        result.put("telephone", phone);
+        //閭紪
+        String email = npty.split("閭紪")[1].split("\t")[1];
+        result.put("email", email);
+        //鏈嶅姟鎬佸害
+        String replace = infoList.get(2).replace(" ", "").replace("\t", "");
+        System.out.println(replace);
+        String[] split1 = replace.split("鈽�");
+        for (int i = 0; i < split1.length; i++) {
+            System.out.println(split1[i]);
+        }
+        result.forEach((k, v) -> {
+            System.out.println("k======>" + k);
+            System.out.println("v======>" + v);
+        });
+    }
+
+    @Test
+    void upload() throws Exception {
+        String filePath = "D:\\20892\\desktop\\QR-14-01-02+++鍐呴儴瀹℃牳骞村害璁″垝.doc";
+
+        String info = "";
+
+        FileInputStream fis = new FileInputStream(filePath);
+        if (filePath.endsWith(".doc")) {
+            // 璇诲彇doc鏂囦欢
+            HWPFDocument doc = new HWPFDocument(fis);
+            WordExtractor docExtractor = new WordExtractor(doc);
+            String text = docExtractor.getText();
+            System.out.println("doc:");
+            info = text.trim();
+            docExtractor.close();
+        } else if (filePath.endsWith(".docx")) {
+            // 璇诲彇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鏂囦欢");
+        }
+//        System.out.println(info);
+        List<String> infoList = new ArrayList<>();
+        String[] split = info.split("\n");
+        for (int i = 0; i < split.length; i++) {
+            System.out.println("======>" + split[i]);
+            if (i > 2) {
+                infoList.add(split[i]);
+            }
+        }
     }
 }
 

--
Gitblit v1.9.3