From 7b09f233bde70508f6db7e08e983e9a2c4bb3e99 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期五, 11 八月 2023 17:50:23 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/ReceiptServiceImpl.java           |  100 ++
 inspect-server/src/main/resources/mapper/RawInspectMapper.xml                                 |    7 
 inventory-server/src/main/java/com/yuanchu/mom/mapper/RepertoryMapper.java                    |    2 
 inventory-server/src/main/java/com/yuanchu/mom/pojo/Receipt.java                              |  105 ++
 sale-server/pom.xml                                                                           |    6 
 system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java                            |    1 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java     |   78 +
 standard-server/src/main/java/com/yuanchu/mom/pojo/vo/TechnologyTemplateVo1.java              |   18 
 inventory-server/src/main/resources/mapper/ImportRepertoryMapper.xml                          |   27 
 inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java             |   10 
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/ConsignmentServiceImpl.java       |  167 +++
 framework/src/main/java/com/yuanchu/mom/utils/FileSaveUtil.java                               |   74 +
 standard-server/src/main/java/com/yuanchu/mom/pojo/RawInsProduct.java                         |    4 
 inventory-server/src/main/java/com/yuanchu/mom/controller/RepertoryController.java            |    7 
 inventory-server/src/main/java/com/yuanchu/mom/pojo/Repertory.java                            |   25 
 sale-server/src/main/java/com/yuanchu/mom/pojo/SaleMaterial.java                              |    7 
 inspect-server/pom.xml                                                                        |    5 
 framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java                   |   34 
 standard-server/src/main/java/com/yuanchu/mom/pojo/vo/TechnologyTemplateVo2.java              |   34 
 inventory-server/src/main/java/com/yuanchu/mom/service/ReceiptService.java                    |   58 +
 inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java              |    2 
 sale-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java                              |    3 
 system-run/src/main/resources/application.yml                                                 |    4 
 inventory-server/src/main/java/com/yuanchu/mom/mapper/ImportRepertoryMapper.java              |   21 
 standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyTemplateMapper.java            |   28 
 inventory-server/src/main/java/com/yuanchu/mom/service/RepertoryService.java                  |    2 
 standard-server/src/main/resources/mapper/TechnologyTemplateMapper.xml                        |   46 +
 user-server/src/main/java/com/yuanchu/mom/controller/UserController.java                      |    1 
 inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java        |   10 
 standard-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java                    |   82 +
 inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectUnaccepted.java                      |    6 
 sale-server/src/main/java/com/yuanchu/mom/controller/SaleController.java                      |   38 
 sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto1.java                       |   40 
 sale-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java                   |   26 
 sale-server/src/main/resources/mapper/SaleMapper.xml                                          |   32 
 framework/src/main/java/com/yuanchu/mom/exception/MyFileException.java                        |   18 
 inventory-server/src/main/java/com/yuanchu/mom/pojo/ImportRepertory.java                      |   92 ++
 inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml                          |   20 
 standard-server/src/main/resources/mapper/OrdersMapper.xml                                    |   17 
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/ImportRepertoryServiceImpl.java   |  120 ++
 inventory-server/pom.xml                                                                      |    6 
 inventory-server/src/main/java/com/yuanchu/mom/service/ImportRepertoryService.java            |   45 +
 sale-server/src/main/java/com/yuanchu/mom/service/SaleService.java                            |   10 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java                             |    6 
 inventory-server/src/main/java/com/yuanchu/mom/mapper/ReceiptMapper.java                      |   22 
 inventory-server/src/main/java/com/yuanchu/mom/service/impl/RepertoryServiceImpl.java         |    4 
 inventory-server/src/main/resources/mapper/RepertoryMapper.xml                                |   23 
 standard-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnologyTemplateDto.java             |   59 +
 inventory-server/src/main/resources/mapper/ConsignmentMapper.xml                              |   33 
 sale-server/src/main/resources/mapper/SaleMaterialMapper.xml                                  |   17 
 sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto2.java                       |   26 
 inventory-server/src/main/java/com/yuanchu/mom/pojo/Consignment.java                          |  106 ++
 inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ImportRepertoryDto.java               |   49 +
 inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto.java                   |   53 +
 inventory-server/src/main/java/com/yuanchu/mom/mapper/ConsignmentMapper.java                  |   25 
 standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java    |  104 ++
 standard-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyTemplateServiceImpl.java |   87 ++
 inventory-server/src/main/java/com/yuanchu/mom/service/ConsignmentService.java                |   49 +
 inventory-server/src/main/java/com/yuanchu/mom/controller/ReceiptController.java              |   98 ++
 system-run/src/main/resources/application-dev.yml                                             |    6 
 standard-server/src/main/java/com/yuanchu/mom/service/TechnologyTemplateService.java          |   71 +
 inventory-server/src/main/java/com/yuanchu/mom/controller/ConsignmentController.java          |   98 ++
 inventory-server/src/main/java/com/yuanchu/mom/controller/ImportRepertoryController.java      |   97 ++
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java          |   20 
 inventory-server/src/main/resources/mapper/ReceiptMapper.xml                                  |   32 
 sale-server/src/main/java/com/yuanchu/mom/pojo/Sale.java                                      |    7 
 66 files changed, 2,362 insertions(+), 168 deletions(-)

diff --git a/framework/src/main/java/com/yuanchu/mom/exception/MyFileException.java b/framework/src/main/java/com/yuanchu/mom/exception/MyFileException.java
new file mode 100644
index 0000000..97fa4b4
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/exception/MyFileException.java
@@ -0,0 +1,18 @@
+package com.yuanchu.mom.exception;
+
+public class MyFileException extends RuntimeException{
+    public MyFileException() {
+    }
+
+    public MyFileException(String message) {
+        super(message);
+    }
+
+    public MyFileException(Throwable cause) {
+        super(cause);
+    }
+
+    public MyFileException(String message, Throwable cause) {
+        super(message, cause);
+    }
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java b/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java
index e34b0d1..cc99c2d 100644
--- a/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java
+++ b/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java
@@ -1,11 +1,15 @@
 package com.yuanchu.mom.handler;
 
+import com.yuanchu.mom.exception.MyFileException;
 import com.yuanchu.mom.vo.Result;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException;
+import org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException;
 import org.springframework.beans.ConversionNotSupportedException;
 import org.springframework.beans.TypeMismatchException;
 import org.springframework.beans.factory.NoSuchBeanDefinitionException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.http.converter.HttpMessageNotReadableException;
 import org.springframework.http.converter.HttpMessageNotWritableException;
@@ -14,6 +18,7 @@
 import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.multipart.MultipartException;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.FileNotFoundException;
@@ -230,6 +235,35 @@
         return Result.fail(message);
     }
 
+    @Value("${spring.servlet.multipart.max-file-size}")
+    private String maxFileSize;
+
+    @Value("${spring.servlet.multipart.max-request-size}")
+    private String maxRequestSize;
+
+    /**
+     *鏂囦欢杩囧ぇ鎶ラ敊鎻愮ず
+     */
+    @ExceptionHandler({MultipartException.class})
+    public Result<?> fileUploadExceptionHandler(MultipartException  e) {
+        String msg;
+        Throwable rootCause = e.getRootCause();
+        if (rootCause instanceof FileSizeLimitExceededException) {
+            msg="涓婁紶鏂囦欢杩囧ぇ銆愬崟涓枃浠跺ぇ灏忎笉寰楄秴杩�" + maxFileSize + "銆�";
+        }else if(rootCause instanceof SizeLimitExceededException){
+            msg="涓婁紶鏂囦欢杩囧ぇ銆愭�讳笂浼犲ぇ灏忎笉寰楄秴杩�" + maxRequestSize + "銆�";
+        }else {
+            msg="鏂囦欢涓婁紶澶辫触銆愭湇鍔″櫒寮傚父銆�";
+        }
+        return Result.fail(msg);
+    }
+
+    /** 鏂囦欢鍚庣紑鍚嶄笉閫氳繃杩斿洖鎻愮ず */
+    @ExceptionHandler({MyFileException.class})
+    public Result<?> myFileException(Exception e) {
+        return Result.fail("鎶辨瓑涓嶆敮鎸併��" + e.getMessage() +"銆戝悗缂�鐨勬枃浠讹紒");
+    }
+
     /** 鍏朵粬閿欒 */
     /**
      * 鍏朵粬閿欒
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/FileSaveUtil.java b/framework/src/main/java/com/yuanchu/mom/utils/FileSaveUtil.java
index 11332ea..00e2ca6 100644
--- a/framework/src/main/java/com/yuanchu/mom/utils/FileSaveUtil.java
+++ b/framework/src/main/java/com/yuanchu/mom/utils/FileSaveUtil.java
@@ -1,10 +1,15 @@
 package com.yuanchu.mom.utils;
 
+import com.yuanchu.mom.exception.MyFileException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.tomcat.util.http.fileupload.IOUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
-
+import org.springframework.util.FileSystemUtils;
+import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.PostConstruct;
 import java.io.ByteArrayInputStream;
+import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 
@@ -16,36 +21,66 @@
 public class FileSaveUtil {
 
     // 鍙杫ml涓殑璺緞 + /
-//    @Value("${file.path}")
-    private String FILE_PATH;
+    private static String FILE_PATH;
 
+    private static String[] ALLOWED;
+
+    @Value("${file.path}")
+    private String file;
+
+    @Value("${file.allowed}")
+    private String[] allowed;
+
+    @PostConstruct
+    public void getFile() {
+        FILE_PATH = this.file;
+    }
+
+    @PostConstruct
+    public void getAllowed(){
+        ALLOWED = this.allowed;
+    }
     /**
      * 瀛樺偍鏂囦欢涓诲嚱鏁�
-     * @param content 鏂囦欢浜岃繘鍒舵祦
-     * @param originalFilename 鏂囦欢鍚嶇О
+     * @param file 鏂囦欢浜岃繘鍒舵祦
      * @return 杩斿洖鏂囦欢鍚嶇О鐢ㄤ簬瀛樺偍鏁版嵁搴�
      */
-    public String StoreFile(byte[] content, String originalFilename) {
+    public static String StoreFile(MultipartFile file) {
+        String originalFilename = file.getOriginalFilename();
         // 鐢熸垚闅忔満鍚嶇О锛氭椂闂確闅忔満6浣嶆暟瀛�
         String FileName = System.currentTimeMillis() + "_" + MyUtil.getNumber(6);
-        String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
+        String suffix = null;
+        if (originalFilename != null) {
+            suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
+            // 濡傛灉鍚庣紑鍚嶄笉閫氳繃鎶涘嚭寮傚父
+            if (!isFileAllowed(suffix)){
+                throw  new MyFileException(suffix);
+            }
+        }
         // 鍚嶇О鎷兼帴
         String fileName = FileName + suffix;
         // 杩涜瀛樺偍
-        storeFileWithFileName(content, fileName);
+        try {
+            storeFileWithFileName(file.getBytes(), fileName);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
         return fileName;
     }
 
+    public static Boolean DeleteFile(String fileName) {
+        return FileSystemUtils.deleteRecursively(new File(FILE_PATH + "/" + fileName));
+    }
     /**
      * 瀛樺偍鏂囦欢鍑芥暟
      * @param content 鏂囦欢浜岃繘鍒舵祦
      * @param fileName 鏂囦欢鍚嶇О
      */
-    private void storeFileWithFileName(byte[] content, String fileName) {
+    private static void storeFileWithFileName(byte[] content, String fileName) {
         // 瀛樺偍璺緞
-        String path = FILE_PATH + java.io.File.separatorChar;
+        String path = FILE_PATH + File.separatorChar;
         // 鐩綍涓嶅瓨鍦ㄥ垯鍒涘缓
-        java.io.File file = new java.io.File(path);
+        File file = new File(path);
         if (!file.exists()) {
             file.mkdirs();
         }
@@ -57,4 +92,21 @@
             MyUtil.PrintLog("瀛樺偍鏂囦欢寮傚父锛�" + e);
         }
     }
+
+    /**
+     * 鍒ゆ柇鏂囦欢鏄惁琚厑璁镐笂浼�
+     *
+     * @param fileName 鏂囦欢鍚�
+     * @return 鍏佽true, 鍚﹀垯false
+     */
+    private static boolean isFileAllowed(String fileName) {
+        // 鑾峰彇鍚庣紑鍚�
+        String suffixName = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
+        for (String allow : ALLOWED) {
+            if (allow.equals(suffixName)) {
+                return true;
+            }
+        }
+        return false;
+    }
 }
diff --git a/inspect-server/pom.xml b/inspect-server/pom.xml
index 079191b..c4be448 100644
--- a/inspect-server/pom.xml
+++ b/inspect-server/pom.xml
@@ -33,6 +33,11 @@
             <artifactId>standard-server</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>com.yuanchu.mom</groupId>
+            <artifactId>inventory-server</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
 
         <dependency>
             <groupId>com.vaadin.external.google</groupId>
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
index dd7eaba..f64a1f7 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/FinishedInspectController.java
@@ -5,6 +5,8 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.pojo.FinishedInspect;
 import com.yuanchu.mom.service.*;
+import com.yuanchu.mom.utils.JackSonUtil;
+import com.yuanchu.mom.utils.Jwt;
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -43,6 +45,9 @@
 
     @Autowired
     private MaterialService materialService;
+
+    @Autowired
+    Jwt jwt;
 
     @ApiOperation(value = "鏂板鎸夐挳-->1銆佹柊澧炴垚鍝佹楠屽崟")
     @PostMapping("/add_process_inspection_sheet")
@@ -84,8 +89,9 @@
             @ApiImplicitParam(name = "result",value = "妫�楠岀粨璁�",dataTypeClass  = Integer.class,required = true),
     })
     @PostMapping("/inspection_conclusion")
-    public Result<?> inspectionConclusion(Integer finishedInspectId, Integer result){
-        Integer isInsertSuccess = finishedInspectService.inspectionConclusion(finishedInspectId, result);
+    public Result<?> inspectionConclusion(@RequestHeader("token") String token,Integer finishedInspectId, Integer result) throws Exception {
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        Integer isInsertSuccess = finishedInspectService.inspectionConclusion(data.get("name").replaceAll("\"", ""),finishedInspectId, result);
         if (isInsertSuccess == 1){
             return Result.success("涓婃姤鎴愬姛锛�");
         }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
index 3eeed10..70b202e 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/RawInspectController.java
@@ -4,6 +4,7 @@
 
 import com.yuanchu.mom.pojo.RawInspect;
 import com.yuanchu.mom.service.*;
+import com.yuanchu.mom.utils.JackSonUtil;
 import com.yuanchu.mom.utils.Jwt;
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.*;
@@ -106,12 +107,9 @@
 
     @ApiOperation(value = "鏂板妫�楠屽崟")
     @PostMapping("/addRawInspects")
-    public Result addRawInspects(@RequestHeader("token") String token, @RequestBody RawInspect rawInspect) throws JSONException {
-        Map<String, String> map = jwt.readJWT(token);
-        String data = map.get("data");
-        JSONObject jsonObject = new JSONObject(data);
-        String userName = jsonObject.getString("name");
-        return Result.success(rawInspectService.addRawInspects(userName, rawInspect));
+    public Result addRawInspects(@RequestHeader("token") String token, @RequestBody RawInspect rawInspect) throws Exception {
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        return Result.success(rawInspectService.addRawInspects(data.get("name").replaceAll("\"", ""), rawInspect));
     }
 
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectUnaccepted.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectUnaccepted.java
index b484dd7..360f0d4 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectUnaccepted.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InspectUnaccepted.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -53,9 +54,8 @@
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date dealTime;
 
-    /**
-     * ${column.comment}
-     **/
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    @TableLogic(value = "1", delval = "0")
     private Integer state;
 
     /**
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java
index 1902601..3aeb2d5 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/RawInspect.java
@@ -6,6 +6,7 @@
 import java.util.Date;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -75,9 +76,8 @@
      */
     private String userName;
 
-    /**
-     * 
-     */
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    @TableLogic(value = "1", delval = "0")
     private Integer state;
 
     /**
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
index 9d3f22c..a7a296d 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/FinishedInspectService.java
@@ -21,7 +21,7 @@
     @Transactional(rollbackFor = Exception.class)
     Integer addProcessInspectionSheet(FinishedInspect finishedInspect);
 
-    Integer inspectionConclusion(Integer finishedInspectId, Integer result);
+    Integer inspectionConclusion(String username,Integer finishedInspectId, Integer result);
 
     IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername);
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
index 6dca1e1..54eb966 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
@@ -1,18 +1,22 @@
 package com.yuanchu.mom.service.impl;
 
+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.extension.plugins.pagination.Page;
 import com.yuanchu.mom.mapper.InspectUnacceptedMapper;
+import com.yuanchu.mom.mapper.RepertoryMapper;
 import com.yuanchu.mom.pojo.FinishedInspect;
 import com.yuanchu.mom.mapper.FinishedInspectMapper;
 import com.yuanchu.mom.pojo.InspectUnaccepted;
+import com.yuanchu.mom.pojo.Repertory;
 import com.yuanchu.mom.service.FinishedInspectService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.service.InspectionItemService;
 import com.yuanchu.mom.service.ProductService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -20,7 +24,7 @@
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
@@ -41,11 +45,14 @@
     @Resource
     InspectUnacceptedMapper inspectUnacceptedMapper;
 
+    @Resource
+    RepertoryMapper repertoryMapper;
+
     @Override
     public Integer addProcessInspectionSheet(FinishedInspect finishedInspect) {
         finishedInspect.setType(0);
         int insert = finishedInspectMapper.insert(finishedInspect);
-        if (insert == 1){
+        if (insert == 1) {
             List<Map<String, Object>> maps = productService.selectProductList(finishedInspect.getSpecificationsId());
             inspectionItemService.insertList(finishedInspect.getId(), maps);
             return insert;
@@ -53,22 +60,85 @@
         return 0;
     }
 
+
     @Override
-    public Integer inspectionConclusion(Integer finishedInspectId, Integer result) {
+    @Transactional(rollbackFor = Exception.class)
+    public Integer inspectionConclusion(String username, Integer finishedInspectId, Integer result) {
         //鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�
         LambdaUpdateWrapper<FinishedInspect> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.eq(FinishedInspect::getId, finishedInspectId);
         updateWrapper.set(FinishedInspect::getResult, result);
         finishedInspectMapper.update(new FinishedInspect(), updateWrapper);
-        //濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟
+        //濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟,杩橀渶瑕佹柊澧炲崐鎴愬搧搴撳瓨
         FinishedInspect finishedInspect = finishedInspectMapper.selectById(finishedInspectId);
         if (result == 0) {
+            /*鏂板涓嶅悎鏍兼楠屽崟*/
             InspectUnaccepted inspectUnaccepted = InspectUnaccepted.builder()
                     .reason(finishedInspect.getProjectName() + "涓嶅悎鏍�")  //鏆備笖瀹氫箟涓哄伐绋嬪悕绉颁笉鍚堟牸
                     .rawInspectId(finishedInspectId)
                     .type(finishedInspect.getType())
                     .build();
             inspectUnacceptedMapper.insert(inspectUnaccepted);
+            /*鏂板鍗婃垚鍝�(1)搴撳瓨*/
+            //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
+            LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
+                    .eq(Repertory::getCode, finishedInspect.getMaterialCode())
+                    .eq(Repertory::getName, finishedInspect.getMaterial())
+                    .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
+                    .eq(Repertory::getUnit, finishedInspect.getUnit())
+                    .eq(Repertory::getType, 1);
+            Repertory rep = repertoryMapper.selectOne(queryWrapper);
+            if (rep != null && rep.getCheckState()==1) {
+                rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
+                rep.setUserName(username);
+                repertoryMapper.updateById(rep);
+            } else {
+                //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉″崐鎴愬搧搴撳瓨
+                Repertory repertory = Repertory.builder()
+                        .orderCode(finishedInspect.getOrderNumber())
+                        .code(finishedInspect.getMaterialCode())
+                        .name(finishedInspect.getMaterial())
+                        .specifications(finishedInspect.getSpecificationsModel())
+                        .unit(finishedInspect.getUnit())
+                        .number(finishedInspect.getQuantity())
+                        .userName(username)
+                        .type(1)
+                        .checkState(1)
+                        .build();
+                repertoryMapper.insert(repertory);
+            }
+        }
+        //濡傛灉妫�楠屽悎鏍�,闇�瑕佹柊澧炴垚鍝�(0)搴撳瓨
+        if (result == 1) {
+            //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
+            LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
+                    .eq(Repertory::getCode, finishedInspect.getMaterialCode())
+                    .eq(Repertory::getName, finishedInspect.getMaterial())
+                    .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
+                    .eq(Repertory::getUnit, finishedInspect.getUnit())
+                    .eq(Repertory::getType, 0);
+            Repertory rep = repertoryMapper.selectOne(queryWrapper);
+            if (rep != null && rep.getCheckState()==1) {
+                rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
+                rep.setUserName(username);
+                repertoryMapper.updateById(rep);
+            } else {
+                //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉℃垚鍝佸簱瀛�
+                Repertory repertory = Repertory.builder()
+                        .orderCode(finishedInspect.getOrderNumber())
+                        .code(finishedInspect.getMaterialCode())
+                        .name(finishedInspect.getMaterial())
+                        .specifications(finishedInspect.getSpecificationsModel())
+                        .unit(finishedInspect.getUnit())
+                        .number(finishedInspect.getQuantity())
+                        .userName(username)
+                        .type(0)
+                        .checkState(1)
+                        .build();
+                repertoryMapper.insert(repertory);
+            }
         }
         return 1;
     }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
index 839e7ae..1d16519 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
@@ -161,26 +161,6 @@
         rawInsProductService.saveBatch(list);
         return rawInspect.getId();
     }
-
-    //鍒ゆ柇鏁扮粍鏄惁鍖呭惈0
-    private static boolean containsZero(Object[] array) {
-        for (Object num : array) {
-            if (num.equals(0)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    //鍒ゆ柇鏁扮粍鏄惁鍏ㄩ儴涓�1
-    private static boolean allOnes(Object[] array) {
-        for (Object num : array) {
-            if (!num.equals(1)) {
-                return false;
-            }
-        }
-        return true;
-    }
 }
 
 
diff --git a/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml b/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
index 630bf15..74e77d6 100644
--- a/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InspectUnacceptedMapper.xml
@@ -2,7 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.yuanchu.mom.mapper.InspectUnacceptedMapper">
     <select id="selectUnRawInspectsList" resultType="java.util.Map">
-        select DATE_FORMAT(form_time, '%Y-%m-%d') '鏉ユ枡鏃ユ湡',
+        select ru.id
+        DATE_FORMAT(form_time, '%Y-%m-%d') '鏉ユ枡鏃ユ湡',
         reason,
         code,
         name,
@@ -17,20 +18,22 @@
         DATE_FORMAT(deal_time, '%Y-%m-%d') '澶勭悊鏃ユ湡'
         from mom_ocean.raw_inspect ri inner join mom_ocean.inspect_unaccepted ru on ri.id = ru.raw_inspect_id
         <where>
-        <if test="dealState!=null">
+        <if test="dealState!=null and dealState!=''">
            and deal_state=#{dealState}
         </if>
-        <if test="formTime!=null">
+        <if test="formTime!=null and formTime!=''">
             and form_time=#{formTime}
         </if>
-        <if test="type!=null">
+        <if test="type!=null and type!=''">
             and ru.type=#{type}
         </if>
         and ru.state=1
         </where>
+        order by ru.id desc
     </select>
     <select id="selectInsList" resultType="java.util.Map">
-        select DATE_FORMAT(fi.create_time, '%Y-%m-%d') '鏉ユ枡鏃ユ湡',
+        select ru.id
+        DATE_FORMAT(fi.create_time, '%Y-%m-%d') '鏉ユ枡鏃ユ湡',
         reason,
         material_code,
         name,
@@ -48,15 +51,16 @@
         mom_ocean.user u
         where fi.id = ru.raw_inspect_id
         and fi.user_id=u.id
-        <if test="dealState!=null">
+        <if test="dealState!=null and dealState!=''">
             and deal_state=#{dealState}
         </if>
-        <if test="formTime!=null">
+        <if test="formTime!=null and formTime!=''">
             and fi.create_time=#{formTime}
         </if>
-        <if test="type!=null">
+        <if test="type!=null and type!=''">
             and ru.type=#{type}
         </if>
         and ru.state=1
+        order by ru.id desc
     </select>
 </mapper>
\ No newline at end of file
diff --git a/inspect-server/src/main/resources/mapper/RawInspectMapper.xml b/inspect-server/src/main/resources/mapper/RawInspectMapper.xml
index f8bfd64..e2d212b 100644
--- a/inspect-server/src/main/resources/mapper/RawInspectMapper.xml
+++ b/inspect-server/src/main/resources/mapper/RawInspectMapper.xml
@@ -3,7 +3,6 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yuanchu.mom.mapper.RawInspectMapper">
-
     <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.RawInspect">
         <id property="id" column="id" jdbcType="INTEGER"/>
         <result property="code" column="code" jdbcType="VARCHAR"/>
@@ -21,8 +20,9 @@
         <result property="formTime" column="form_time" jdbcType="DATE"/>
     </resultMap>
     <select id="selectRawInspectsByLimit" resultType="com.yuanchu.mom.pojo.RawInspect">
-        select id, code, name, specifications, unit, number, ins_state, judge_state, ins_time, user_name, create_time, form_time
-        from raw_inspect
+        select id, code, name, specifications, unit, number, ins_state, judge_state, ins_time, user_name, create_time,
+        form_time
+        from mom_ocean.raw_inspect
         where state = 1
         <if test="formTime!=null and formTime!=''">
             and form_time = #{formTime}
@@ -36,6 +36,7 @@
         <if test="judgeState!=2">
             and judge_state = #{judgeState}
         </if>
+        order by id desc
         limit #{pageSize},#{countSize}
     </select>
 </mapper>
diff --git a/inventory-server/pom.xml b/inventory-server/pom.xml
index baf1f1d..8f13703 100644
--- a/inventory-server/pom.xml
+++ b/inventory-server/pom.xml
@@ -31,6 +31,12 @@
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.yuanchu.mom</groupId>
+            <artifactId>sale-server</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+
         <!--宸ュ叿妯″潡-->
         <dependency>
             <groupId>com.yuanchu.mom</groupId>
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/controller/ConsignmentController.java b/inventory-server/src/main/java/com/yuanchu/mom/controller/ConsignmentController.java
new file mode 100644
index 0000000..3e80933
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/controller/ConsignmentController.java
@@ -0,0 +1,98 @@
+package com.yuanchu.mom.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.dto.ConsignmentDto;
+import com.yuanchu.mom.service.SaleService;
+import com.yuanchu.mom.utils.JackSonUtil;
+import com.yuanchu.mom.utils.Jwt;
+import com.yuanchu.mom.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.yuanchu.mom.service.ConsignmentService;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鎴愬搧鍙戣揣琛�(Consignment)琛ㄦ帶鍒跺眰
+ *
+ * @author zss
+ * @since 2023-08-10 15:08:02
+ */
+@Api(tags = "WMS绠$悊-->鎴愬搧鍙戣揣")
+@RestController
+@RequestMapping("/consignment")
+public class ConsignmentController {
+
+    @Autowired
+    private ConsignmentService consignmentService;
+
+    @Resource
+    SaleService saleService;
+
+    @Resource
+    Jwt jwt;
+
+    @ApiOperation(value = "鏂板鎴愬搧鍙戣揣-->鏍规嵁璁㈠崟鍙锋煡璇㈤攢鍞俊鎭�")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "orderNumber", value = "璁㈠崟缂栧彿", dataTypeClass = String.class, required = true)
+    })
+    @GetMapping("/selSale")
+    public Result selSale(String orderNumber) {
+        return Result.success(saleService.selSale(orderNumber));
+    }
+
+    @ApiOperation(value = "鏂板鎴愬搧鍙戣揣")
+    @PostMapping("/addCon")
+    public Result addCon(@RequestHeader("token") String token, @RequestBody ConsignmentDto consignmentDto) throws Exception {
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        return Result.success(consignmentService.addCon(data.get("name").replaceAll("\"", ""), consignmentDto));
+    }
+
+
+    @ApiOperation(value = "鏌ヨ鍙戣揣璁板綍鍒楄〃")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "pageSize", value = "椤垫暟", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "countSize", value = "鏉℃暟/椤�", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "name", value = "浜у搧鍚嶇О", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "specifications", value = "浜у搧鍨嬪彿", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "time", value = "鍙戣揣鏃ユ湡", dataTypeClass = String.class)
+    })
+    @GetMapping("/selectAllCon")
+    public Result selectAllCon(int pageSize, int countSize, String name, String specifications, String time) {
+        IPage<Map<String, Object>> consignmentPage = consignmentService.selectAllCon(new Page<Object>(pageSize, countSize), name, specifications, time);
+        Map<String, Object> map = new HashMap<>();
+        map.put("total", consignmentPage.getTotal());
+        map.put("row", consignmentPage.getRecords());
+        return Result.success(map);
+    }
+    @ApiOperation(value = "鏍规嵁鍙戣揣id鍒犻櫎")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "鍙戣揣id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/delCon")
+    public Result delCon(Integer id) {
+        consignmentService.delCon(id);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鎵归噺鍒犻櫎")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List", required = true)
+    })
+    @PostMapping("/delAllCon")
+    public Result delAllCon(@RequestParam("ids") List<Integer> ids) {
+        consignmentService.delAllCon(ids);
+        return Result.success();
+    }
+
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/controller/ImportRepertoryController.java b/inventory-server/src/main/java/com/yuanchu/mom/controller/ImportRepertoryController.java
new file mode 100644
index 0000000..80634e3
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/controller/ImportRepertoryController.java
@@ -0,0 +1,97 @@
+package com.yuanchu.mom.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.ImportRepertory;
+import com.yuanchu.mom.pojo.dto.ImportRepertoryDto;
+import com.yuanchu.mom.utils.JackSonUtil;
+import com.yuanchu.mom.utils.Jwt;
+import com.yuanchu.mom.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.yuanchu.mom.service.ImportRepertoryService;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 鎴愬搧鍏ュ簱琛�(ImportRepertory)琛ㄦ帶鍒跺眰
+ *
+ * @author zss
+ * @since 2023-08-10 10:27:01
+ */
+@Api(tags = "WMS绠$悊-->鎴愬搧鍏ュ簱")
+@RestController
+@RequestMapping("/importRepertory")
+public class ImportRepertoryController {
+
+    @Autowired
+    private ImportRepertoryService importRepertoryService;
+
+    @Resource
+    Jwt jwt;
+
+    @ApiOperation(value = "鏂板鎴愬搧鍏ュ簱")
+    @PostMapping("/addImpRep")
+    public Result addSale(@RequestHeader("token") String token, @RequestBody ImportRepertoryDto importRepertoryDto) throws Exception {
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        importRepertoryService.addImpRep(data.get("name").replaceAll("\"", ""), importRepertoryDto);
+        return Result.success("鏂板鎴愬姛!");
+    }
+
+    @ApiOperation("鏌ヨ鎵�鏈夊叆搴撳垪琛�")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "pageSize", value = "椤垫暟", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "countSize", value = "鏉℃暟/椤�", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "orderCode", value = "璁㈠崟缂栧彿", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "name", value = "鏉愭枡鍚嶇О", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "time", value = "鍏ュ簱鏃ユ湡", dataTypeClass = String.class)
+    })
+    @GetMapping("/selectAllImpRep")
+    public Result selectAllImpRep(int pageSize, int countSize, String orderCode, String name, String time) {
+        IPage<Map<String, Object>> importRepertoryPage = importRepertoryService.selectAllImpRep(new Page<Object>(pageSize, countSize), orderCode, name, time);
+        Map<String, Object> map = new HashMap<>();
+        map.put("total", importRepertoryPage.getTotal());
+        map.put("row", importRepertoryPage.getRecords());
+        return Result.success(map);
+    }
+
+    @ApiOperation("鏍规嵁id鏌ョ湅鍏ュ簱璇︽儏")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "鍏ュ簱id", dataTypeClass = Integer.class, required = true)
+    })
+    @GetMapping("/selectImpRepById")
+    public Result selectImpRepById(Integer id) {
+        return Result.success(importRepertoryService.getById(id));
+    }
+
+    @ApiOperation(value = "鏍规嵁鍏ュ簱id鍒犻櫎")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "鍏ュ簱id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/delImpRep")
+    public Result delImpRep(Integer id) {
+        importRepertoryService.delImpRep(id);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鎵归噺鍒犻櫎")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List", required = true)
+    })
+    @PostMapping("/delAllImpRep")
+    public Result delAllImpRep(@RequestParam("ids") List<Integer> ids) {
+        importRepertoryService.delAllImpRep(ids);
+        return Result.success();
+    }
+
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/controller/ReceiptController.java b/inventory-server/src/main/java/com/yuanchu/mom/controller/ReceiptController.java
new file mode 100644
index 0000000..e442845
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/controller/ReceiptController.java
@@ -0,0 +1,98 @@
+package com.yuanchu.mom.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import com.yuanchu.mom.service.ReceiptService;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 鍥炲崟琛�(Receipt)琛ㄦ帶鍒跺眰
+ *
+ * @author zss
+ * @since 2023-08-11 10:08:54
+ */
+@Api(tags = "WMS绠$悊-->鍥炲崟绠$悊")
+@RestController
+@RequestMapping("/receipt")
+public class ReceiptController {
+
+    @Autowired
+    private ReceiptService receiptService;
+
+    @ApiOperation(value = "鏌ヨ鍥炲崟鍒楄〃")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "pageSize", value = "椤垫暟", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "countSize", value = "鏉℃暟/椤�", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "name", value = "浜у搧鍚嶇О", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "orderCode", value = "璁㈠崟缂栧彿", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "type", value = "绫诲瀷(涓虹┖=鍏ㄩ儴)", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "deliverTime", value = "鍙戣揣鏃ユ湡", dataTypeClass = String.class)
+    })
+    @GetMapping("/selectAllRece")
+    public Result selectAllRece(int pageSize, int countSize, String name, String orderCode, String type, String deliverTime) {
+        IPage<Map<String, Object>> receiptPage = receiptService.selectAllRece(new Page<Object>(pageSize, countSize), name, orderCode, type, deliverTime);
+        Map<String, Object> map = new HashMap<>();
+        map.put("total", receiptPage.getTotal());
+        map.put("row", receiptPage.getRecords());
+        return Result.success(map);
+    }
+
+
+    @ApiOperation(value = "鏍搁攢")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "鍥炲崟id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/delRece")
+    public Result delRece(Integer id) {
+        receiptService.delRece(id);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鎵归噺鏍搁攢")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List", required = true)
+    })
+    @PostMapping("/delAllRece")
+    public Result delAllRece(@RequestParam("ids") List<Integer> ids) {
+        receiptService.delAllRece(ids);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "涓婁紶闄勪欢")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "鍥炲崟id", dataTypeClass = Integer.class, required = true),
+            @ApiImplicitParam(name = "file", value = "鍥炲崟鏂囦欢", dataTypeClass = MultipartFile.class, required = true)
+    })
+    @PostMapping("/updRece")
+    public Result updRece(Integer id,@RequestPart MultipartFile file) {
+        receiptService.updRece(id, file);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "鏌ョ湅鍥炲崟")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "鍥炲崟id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/selReceDatil")
+    public ResponseEntity<byte[]> selReceDatil(Integer id) throws IOException {
+        return receiptService.selReceDatil(id);
+    }
+
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/controller/RepertoryController.java b/inventory-server/src/main/java/com/yuanchu/mom/controller/RepertoryController.java
index e9fea45..9db780e 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/controller/RepertoryController.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/controller/RepertoryController.java
@@ -34,11 +34,12 @@
             @ApiImplicitParam(name = "name", value = "浜у搧鍚嶇О", dataTypeClass = String.class),
             @ApiImplicitParam(name = "specifications", value = "浜у搧鍨嬪彿", dataTypeClass = String.class),
             @ApiImplicitParam(name = "time", value = "鍏ュ簱鏃ユ湡", dataTypeClass = String.class),
-            @ApiImplicitParam(name = "type", value = "绫诲瀷(涓虹┖=鍏ㄩ儴)", dataTypeClass = Integer.class)
+            @ApiImplicitParam(name = "type", value = "绫诲瀷(涓虹┖=鍏ㄩ儴)", dataTypeClass = Integer.class),
+            @ApiImplicitParam(name = "checkState", value = "妫�楠岀姸鎬�(涓虹┖=鍏ㄩ儴)", dataTypeClass = Integer.class)
     })
     @GetMapping("/selectAllRepertory")
-    public Result selectAllRepertory(int pageSize, int countSize, String name, String specifications, String time, Integer type) {
-        IPage<Map<String, Object>> repertoryPage = repertoryService.selectAllRepertory(new Page<Object>(pageSize, countSize), name, specifications, time, type);
+    public Result selectAllRepertory(int pageSize, int countSize, String name, String specifications, String time, Integer type,Integer checkState) {
+        IPage<Map<String, Object>> repertoryPage = repertoryService.selectAllRepertory(new Page<Object>(pageSize, countSize), name, specifications, time, type,checkState);
         Map<String, Object> map = new HashMap<>();
         map.put("total", repertoryPage.getTotal());
         map.put("row", repertoryPage.getRecords());
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/mapper/ConsignmentMapper.java b/inventory-server/src/main/java/com/yuanchu/mom/mapper/ConsignmentMapper.java
new file mode 100644
index 0000000..a9b1956
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/mapper/ConsignmentMapper.java
@@ -0,0 +1,25 @@
+package com.yuanchu.mom.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.Consignment;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鎴愬搧鍙戣揣琛�(Consignment)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author zss
+ * @since 2023-08-10 15:08:02
+ */
+public interface ConsignmentMapper extends BaseMapper<Consignment> {
+
+    //鏌ヨ鎵�鏈夊彂璐ц褰�
+    List<Consignment> selectAll();
+
+    //鏌ヨ鍙戣揣璁板綍鍒楄〃
+    IPage<Map<String, Object>> selectAllCon(Page<Object> page, String name, String specifications, String time);
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/mapper/ImportRepertoryMapper.java b/inventory-server/src/main/java/com/yuanchu/mom/mapper/ImportRepertoryMapper.java
new file mode 100644
index 0000000..f3c0f5d
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/mapper/ImportRepertoryMapper.java
@@ -0,0 +1,21 @@
+package com.yuanchu.mom.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.ImportRepertory;
+
+import java.util.Map;
+
+/**
+ * 鎴愬搧鍏ュ簱琛�(ImportRepertory)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author zss
+ * @since 2023-08-10 10:27:01
+ */
+public interface ImportRepertoryMapper extends BaseMapper<ImportRepertory> {
+
+    //鏌ヨ鍏ュ簱鍒楄〃
+    IPage<Map<String, Object>> selectAllImpRep(Page<Object> page, String orderCode, String name, String time);
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/mapper/ReceiptMapper.java b/inventory-server/src/main/java/com/yuanchu/mom/mapper/ReceiptMapper.java
new file mode 100644
index 0000000..77301e1
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/mapper/ReceiptMapper.java
@@ -0,0 +1,22 @@
+package com.yuanchu.mom.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.Receipt;
+
+import java.util.Map;
+
+/**
+ * 鍥炲崟琛�(Receipt)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author zss
+ * @since 2023-08-11 10:08:54
+ */
+public interface ReceiptMapper extends BaseMapper<Receipt> {
+
+    //鏌ヨ鍥炲崟鍒楄〃
+    IPage<Map<String, Object>> selectAllRece(Page<Object> page, String name, String orderCode, String type, String deliverTime);
+
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/mapper/RepertoryMapper.java b/inventory-server/src/main/java/com/yuanchu/mom/mapper/RepertoryMapper.java
index 46b7c22..958b9ca 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/mapper/RepertoryMapper.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/mapper/RepertoryMapper.java
@@ -17,6 +17,6 @@
 public interface RepertoryMapper extends BaseMapper<Repertory> {
 
     //鏌ヨ鎵�鏈夊簱瀛樺垪琛�
-    IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type);
+    IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer checkState);
 }
 
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/pojo/Consignment.java b/inventory-server/src/main/java/com/yuanchu/mom/pojo/Consignment.java
new file mode 100644
index 0000000..38d023e
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/pojo/Consignment.java
@@ -0,0 +1,106 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * 鎴愬搧鍙戣揣琛�(Consignment)琛ㄥ疄浣撶被
+ *
+ * @author zss
+ * @since 2023-08-10 15:08:02
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = false)
+@Builder
+@TableName("consignment")
+public class Consignment implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     **/
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 鍚堝悓缂栧彿
+     **/
+    private String customerCode;
+
+    /**
+     * 鎶艰繍鍗曠紪鍙�
+     **/
+    private String escortCode;
+
+    /**
+     * 璁㈠崟缂栧彿
+     **/
+    private String orderCode;
+
+    /**
+     * 鏉愭枡缂栫爜
+     **/
+    private String code;
+
+    /**
+     * 鏉愭枡鍚嶇О
+     **/
+    private String name;
+
+    /**
+     * 鍨嬪彿瑙勬牸
+     **/
+    private String specifications;
+
+    /**
+     * 鍗曚綅
+     **/
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     **/
+    private Integer number;
+
+    /**
+     * 缂栧埗浜恒�佸彂璐т汉锛堝綋鍓嶇敤鎴峰悕锛�
+     **/
+    private String userName;
+
+    /**
+     * 妫�鏌ヤ汉鍛�
+     **/
+    private String checkName;
+
+    /**
+     * 瑁呴厤浜哄憳
+     **/
+    private String fitName;
+
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    private Integer state;
+
+    /**
+     * 鍙戣揣鏃ユ湡
+     **/
+    @TableField(fill = FieldFill.INSERT)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date updateTime;
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/pojo/ImportRepertory.java b/inventory-server/src/main/java/com/yuanchu/mom/pojo/ImportRepertory.java
new file mode 100644
index 0000000..75fa247
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/pojo/ImportRepertory.java
@@ -0,0 +1,92 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * 鎴愬搧鍏ュ簱琛�(ImportRepertory)琛ㄥ疄浣撶被
+ *
+ * @author zss
+ * @since 2023-08-10 10:27:02
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = false)
+@Builder
+@TableName("import_repertory")
+public class ImportRepertory implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     **/
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 璁㈠崟缂栫爜
+     **/
+    private String orderCode;
+
+    /**
+     * 鏉愭枡缂栫爜
+     **/
+    private String code;
+
+    /**
+     * 鏉愭枡鍚嶇О
+     **/
+    private String name;
+
+    /**
+     * 鍨嬪彿瑙勬牸
+     **/
+    private String specifications;
+
+    /**
+     * 鍗曚綅
+     **/
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     **/
+    private Integer number;
+
+    /**
+     * 鍏ュ簱浜猴紙褰撳墠鐢ㄦ埛鍚嶏級
+     **/
+    private String userName;
+
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    private Integer state;
+
+    /**
+     * 鍏ュ簱鏃ユ湡
+     **/
+    @TableField(fill = FieldFill.INSERT)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime;
+
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 澶囨敞
+     **/
+    private String note;
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/pojo/Receipt.java b/inventory-server/src/main/java/com/yuanchu/mom/pojo/Receipt.java
new file mode 100644
index 0000000..f01d4a2
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/pojo/Receipt.java
@@ -0,0 +1,105 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * 鍥炲崟琛�(Receipt)琛ㄥ疄浣撶被
+ *
+ * @author zss
+ * @since 2023-08-11 10:08:55
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = false)
+@Builder
+@TableName("receipt")
+public class Receipt implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     **/
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 璁㈠崟缂栧彿
+     **/
+    private String orderCode;
+
+    /**
+     * 鍚堝悓缂栧彿(瀹㈡埛璁㈠崟鍙�)
+     **/
+    private String customerCode;
+
+    /**
+     * 瀹㈡埛鍚嶇О
+     **/
+    private String proname;
+
+    /**
+     * 鍒拌揣鍦板潃
+     **/
+    private String adress;
+
+    /**
+     * 鍒拌揣鑱旂郴浜�
+     **/
+    private String name;
+
+    /**
+     * 鎵嬫満鍙�
+     **/
+    private String phone;
+
+    /**
+     * 鎶艰繍鍗曠紪鍙�
+     **/
+    private String escortCode;
+
+    /**
+     * 鍙戣揣鏃ユ湡
+     **/
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date deliverTime;
+
+    /**
+     * 鍙戣揣浜�
+     **/
+    private String userName;
+
+    /**
+     * 鐘舵��0:寰呭洖鍗�;1:宸插洖鍗�
+     **/
+    private Integer type;
+
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    private Integer state;
+
+    @TableField(fill = FieldFill.INSERT)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 鍥炲崟鐓х墖url
+     **/
+    private String url;
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/pojo/Repertory.java b/inventory-server/src/main/java/com/yuanchu/mom/pojo/Repertory.java
index d552828..5a788ff 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/pojo/Repertory.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/pojo/Repertory.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -51,20 +52,6 @@
      **/
     private String specifications;
 
-    /**
-     * 璇曢獙瑕佹眰
-     **/
-    private String requirements;
-
-    /**
-     * 宸ヨ壓鏂囦欢缂栧彿
-     **/
-    private String documentNumber;
-
-    /**
-     * 搴撲綅鍙�
-     **/
-    private Integer seat;
 
     /**
      * 鍗曚綅
@@ -81,9 +68,8 @@
      **/
     private String userName;
 
-    /**
-     * ${column.comment}
-     **/
+
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
     private Integer state;
 
     /**
@@ -111,5 +97,10 @@
      * 绫诲瀷 0:鎴愬搧;1:鍗婃垚鍝�
      **/
     private Integer type;
+
+    /**
+     *妫�楠岀姸鎬�0:鏈楠�;1:宸叉楠�
+     **/
+    private Integer checkState;
 }
 
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto.java b/inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto.java
new file mode 100644
index 0000000..d851e48
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto.java
@@ -0,0 +1,53 @@
+package com.yuanchu.mom.pojo.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class ConsignmentDto {
+
+    //璁㈠崟缂栧彿
+    @JsonSerialize
+    private String orderCode;
+
+    //鍚堝悓缂栧彿
+    @JsonSerialize
+    private String customerCode;
+
+    //瀹㈡埛鍚嶇О
+    @JsonSerialize
+    private String proname;
+
+    //鍒拌揣鍦板潃
+    @JsonSerialize
+    private String adress;
+
+    //鏀惰揣鑱旂郴浜�
+    @JsonSerialize
+    private String username;
+
+    //鎵嬫満鍙�
+    @JsonSerialize
+    private String phone ;
+
+    //浜у搧淇℃伅
+    @JsonSerialize
+    private List<ConsignmentDto2> messages;
+
+    //妫�鏌ヤ汉鍛�
+    @JsonSerialize
+    private String checkName;
+
+    //瑁呴厤浜哄憳
+    @JsonSerialize
+    private String fitName;
+}
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ImportRepertoryDto.java b/inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ImportRepertoryDto.java
new file mode 100644
index 0000000..823535f
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/pojo/dto/ImportRepertoryDto.java
@@ -0,0 +1,49 @@
+package com.yuanchu.mom.pojo.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import lombok.Data;
+
+@Data
+public class ImportRepertoryDto {
+    /**
+     * 璁㈠崟缂栫爜
+     **/
+    @JsonSerialize
+    private String orderCode;
+
+    /**
+     * 鏉愭枡缂栫爜
+     **/
+    @JsonSerialize
+    private String code;
+
+    /**
+     * 鏉愭枡鍚嶇О
+     **/
+    @JsonSerialize
+    private String name;
+
+    /**
+     * 鍨嬪彿瑙勬牸
+     **/
+    @JsonSerialize
+    private String specifications;
+
+    /**
+     * 鍗曚綅
+     **/
+    @JsonSerialize
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     **/
+    @JsonSerialize
+    private Integer number;
+
+    /**
+     * 澶囨敞
+     **/
+    @JsonSerialize
+    private String note;
+}
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/ConsignmentService.java b/inventory-server/src/main/java/com/yuanchu/mom/service/ConsignmentService.java
new file mode 100644
index 0000000..d47a783
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/ConsignmentService.java
@@ -0,0 +1,49 @@
+package com.yuanchu.mom.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.Consignment;
+import com.yuanchu.mom.pojo.dto.ConsignmentDto;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鎴愬搧鍙戣揣琛�(Consignment)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author zss
+ * @since 2023-08-10 15:08:02
+ */
+public interface ConsignmentService extends IService<Consignment> {
+
+    /**
+     * 鏂板鎴愬搧鍙戣揣
+     * @param name
+     * @param consignmentDto
+     */
+    String addCon(String name, ConsignmentDto consignmentDto);
+
+    /**
+     * 鏌ヨ鍙戣揣璁板綍鍒楄〃
+     * @param page
+     * @param name
+     * @param specifications
+     * @param time
+     * @return
+     */
+    IPage<Map<String, Object>> selectAllCon(Page<Object> page, String name, String specifications, String time);
+
+    /**
+     * 鏍规嵁id鍒犻櫎
+     * @param id
+     */
+    void delCon(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     */
+    void delAllCon(List<Integer> ids);
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/ImportRepertoryService.java b/inventory-server/src/main/java/com/yuanchu/mom/service/ImportRepertoryService.java
new file mode 100644
index 0000000..6e851a2
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/ImportRepertoryService.java
@@ -0,0 +1,45 @@
+package com.yuanchu.mom.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.ImportRepertory;
+import com.yuanchu.mom.pojo.dto.ImportRepertoryDto;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鎴愬搧鍏ュ簱琛�(ImportRepertory)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author zss
+ * @since 2023-08-10 10:27:01
+ */
+public interface ImportRepertoryService extends IService<ImportRepertory> {
+
+    //鏂板鎴愬搧鍏ュ簱
+    void addImpRep(String name, ImportRepertoryDto importRepertoryDto);
+
+    /**
+     * 鏌ヨ鍏ュ簱鍒楄〃
+     * @param page
+     * @param orderCode
+     * @param name
+     * @param time
+     * @return
+     */
+    IPage<Map<String, Object>> selectAllImpRep(Page<Object> page, String orderCode, String name, String time);
+
+    /**
+     * 鏍规嵁id鍒犻櫎
+     * @param id
+     */
+    void delImpRep(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     */
+    void delAllImpRep(List<Integer> ids);
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/ReceiptService.java b/inventory-server/src/main/java/com/yuanchu/mom/service/ReceiptService.java
new file mode 100644
index 0000000..1085ae8
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/ReceiptService.java
@@ -0,0 +1,58 @@
+package com.yuanchu.mom.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.Receipt;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鍥炲崟琛�(Receipt)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author zss
+ * @since 2023-08-11 10:08:54
+ */
+public interface ReceiptService extends IService<Receipt> {
+
+    /**
+     * 鏌ヨ鍥炲崟鍒楄〃
+     * @param page
+     * @param name
+     * @param orderCode
+     * @param type
+     * @param deliverTime
+     * @return
+     */
+    IPage<Map<String, Object>> selectAllRece(Page<Object> page, String name, String orderCode, String type, String deliverTime);
+
+    /**
+     * 鏍规嵁鍥炲崟id鍒犻櫎
+     * @param id
+     */
+    void delRece(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     */
+    void delAllRece(List<Integer> ids);
+
+    /**
+     * 鏍规嵁id淇敼鐘舵��
+     * @param id
+     */
+    void updRece(Integer id, MultipartFile file);
+
+    /**
+     * 鏍规嵁id鏌ョ湅鍥炲崟
+     * @param id
+     */
+    ResponseEntity<byte[]> selReceDatil(Integer id) throws IOException;
+
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/RepertoryService.java b/inventory-server/src/main/java/com/yuanchu/mom/service/RepertoryService.java
index 54bec43..03a42dc 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/service/RepertoryService.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/RepertoryService.java
@@ -24,6 +24,6 @@
      * @param type
      * @return
      */
-    IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type);
+    IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer checkState);
 }
 
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/ConsignmentServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/ConsignmentServiceImpl.java
new file mode 100644
index 0000000..adbb905
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/ConsignmentServiceImpl.java
@@ -0,0 +1,167 @@
+package com.yuanchu.mom.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.mapper.ConsignmentMapper;
+import com.yuanchu.mom.mapper.ReceiptMapper;
+import com.yuanchu.mom.mapper.RepertoryMapper;
+import com.yuanchu.mom.pojo.Consignment;
+import com.yuanchu.mom.pojo.Receipt;
+import com.yuanchu.mom.pojo.Repertory;
+import com.yuanchu.mom.pojo.dto.ConsignmentDto;
+import com.yuanchu.mom.pojo.dto.ConsignmentDto2;
+import com.yuanchu.mom.service.ConsignmentService;
+import com.yuanchu.mom.utils.MyUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鎴愬搧鍙戣揣琛�(Consignment)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author zss
+ * @since 2023-08-10 15:08:02
+ */
+@Service
+public class ConsignmentServiceImpl extends ServiceImpl<ConsignmentMapper, Consignment> implements ConsignmentService {
+
+    @Resource
+    ConsignmentMapper consignmentMapper;
+
+    @Resource
+    RepertoryMapper repertoryMapper;
+
+    @Resource
+    ReceiptMapper receiptMapper;
+
+    //鏂板鎴愬搧鍙戣揣
+    @Override
+    public String addCon(String name, ConsignmentDto consignmentDto) {
+        //鐢熸垚涓�涓娂杩愬崟缂栧彿
+        String escortCode = MyUtil.getTimeSixNumberCode("YY");
+        //濡傛灉璇ヨ鍗曞凡缁忓彂杩囪揣浜嗕笉鑳藉啀鍙戣揣
+        List<Consignment> consignments = consignmentMapper.selectAll();
+        //濡傛灉娌℃湁鍙戣揣琛ㄤ腑娌℃湁鏁版嵁涔熷彲浠ュ彂璐�
+        if (consignments.size()==0) {
+            /*鏂板鎴愬搧鍙戣揣*/
+            String mes1 = addConsign(name, consignmentDto, escortCode);
+            return mes1;
+        } else {
+            for (Consignment consignment : consignments) {
+                if (consignment.getCustomerCode().equals(consignmentDto.getCustomerCode())) {
+                    return "璇ュ悎鍚岃鍗曞凡鍙戣繃璐�,鏃犳硶鍐嶆鍙戣揣!";
+                } else {
+                    /*鏂板鎴愬搧鍙戣揣*/
+                    String mes2 = addConsign(name, consignmentDto, escortCode);
+                    return mes2;
+                }
+            }
+        }
+        return null;
+    }
+
+    //鏌ヨ鍙戣揣璁板綍鍒楄〃
+    @Override
+    public IPage<Map<String, Object>> selectAllCon(Page<Object> page, String name, String specifications, String time) {
+        return consignmentMapper.selectAllCon(page, name, specifications, time);
+    }
+
+    //鏍规嵁id鍒犻櫎
+    @Override
+    public void delCon(Integer id) {
+        //鍒犻櫎鍙戣揣璁板綍
+        Consignment consignment = consignmentMapper.selectById(id);
+        consignment.setState(0);
+        consignmentMapper.updateById(consignment);
+        //搴撳瓨涔熻鏂板
+        LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Repertory::getCode, consignment.getCode())
+                .eq(Repertory::getName, consignment.getName())
+                .eq(Repertory::getSpecifications, consignment.getSpecifications())
+                .eq(Repertory::getUnit, consignment.getUnit())
+                .eq(Repertory::getType, 0) //鎴愬搧鍙戣揣
+                .eq(Repertory::getCheckState, 1); //鍙湁宸叉楠屾墠鑳藉彂璐�
+        Repertory repertory = repertoryMapper.selectOne(queryWrapper);
+        repertory.setNumber(repertory.getNumber() + consignment.getNumber());
+        repertoryMapper.updateById(repertory);
+    }
+
+    //鎵归噺鍒犻櫎
+    @Override
+    public void delAllCon(List<Integer> ids) {
+        List<Consignment> consignments = consignmentMapper.selectBatchIds(ids);
+        for (Consignment consignment : consignments) {
+            consignment.setState(0);
+            //鍒犻櫎鍙戣揣璁板綍
+            consignmentMapper.updateById(consignment);
+            //搴撳瓨鏂板
+            LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(Repertory::getCode, consignment.getCode())
+                    .eq(Repertory::getName, consignment.getName())
+                    .eq(Repertory::getSpecifications, consignment.getSpecifications())
+                    .eq(Repertory::getUnit, consignment.getUnit())
+                    .eq(Repertory::getType, 0) //鎴愬搧鍙戣揣
+                    .eq(Repertory::getCheckState, 1); //鍙湁宸叉楠屾墠鑳藉彂璐�
+            Repertory repertory = repertoryMapper.selectOne(queryWrapper);
+            repertory.setNumber(repertory.getNumber() + consignment.getNumber());
+            repertoryMapper.updateById(repertory);
+        }
+    }
+
+
+    //鏂板鍙戣揣涓�绯诲垪鎿嶄綔
+    private String addConsign(String name, ConsignmentDto consignmentDto, String escortCode) {
+        /*鏂板鎴愬搧鍙戣揣*/
+        List<ConsignmentDto2> messages = consignmentDto.getMessages();
+        for (ConsignmentDto2 message : messages) {
+            //鏌ヨ浜у搧缂栫爜(閫氳繃鍦ㄦ垚鍝佸簱瀛樿〃涓殑浜у搧鍚嶇О,瑙勬牸鍨嬪彿浠ュ強鍗曚綅杩涜鏌ユ壘)
+            LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(Repertory::getName, message.getName())
+                    .eq(Repertory::getSpecifications, message.getSpecifications())
+                    .eq(Repertory::getUnit, message.getUnit())
+                    .eq(Repertory::getType, 0);
+            Repertory repertory = repertoryMapper.selectOne(queryWrapper);
+            //璇ユ垚鍝佺殑妫�楠岀姸鎬佹槸宸叉楠�1鎵嶈兘杩涜鍙戣揣
+            if (repertory.getCheckState() == 1) {
+                //璇ユ垚鍝佸簱瀛樼殑鏁伴噺澶т簬绛変簬鍙戣揣鐨勬暟閲忔墠鑳借繘琛屽彂璐�
+                if (repertory.getNumber() >= message.getNumber()) {
+                    //鏋勯�犳垚鍝佸彂璐у疄浣撶被
+                    Consignment consig = Consignment.builder()
+                            .customerCode(consignmentDto.getCustomerCode())
+                            .escortCode(escortCode)
+                            .orderCode(consignmentDto.getOrderCode())
+                            .userName(name)
+                            .checkName(consignmentDto.getCheckName())
+                            .fitName(consignmentDto.getFitName())
+                            .name(message.getName())
+                            .specifications(message.getSpecifications())
+                            .unit(message.getUnit())
+                            .number(message.getNumber())
+                            .code(repertory.getCode())
+                            .build();
+                    consignmentMapper.insert(consig);
+                    /*鍑忓皯瀵瑰簲鐨勫簱瀛�*/
+                    repertory.setNumber(repertory.getNumber() - consig.getNumber());
+                    repertoryMapper.updateById(repertory);
+                } else return "搴撳瓨涓嶈冻,鏃犳硶鍙戣揣!";
+            } else return "璇ヤ骇鍝佽繕鏈楠�,涓嶈兘鍙戣揣!";
+        }
+        /*鍙戣揣鎴愬姛涔嬪悗闇�瑕佹柊澧炰竴寮犲洖鍗�*/
+        Receipt receipt = new Receipt();
+        BeanUtils.copyProperties(consignmentDto, receipt);
+        receipt.setName(consignmentDto.getUsername());//鏀惰揣鑱旂郴浜�
+        receipt.setUserName(name);//鍙戣揣浜�
+        receipt.setEscortCode(escortCode);//鎶艰繍鍗曠紪鍙�
+        receipt.setDeliverTime(new Date());//鍙戣揣鏃ユ湡
+        receiptMapper.insert(receipt);
+        return "鍙戣揣鎴愬姛!";
+    }
+}
+
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/ImportRepertoryServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/ImportRepertoryServiceImpl.java
new file mode 100644
index 0000000..7e732b4
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/ImportRepertoryServiceImpl.java
@@ -0,0 +1,120 @@
+package com.yuanchu.mom.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.mapper.ImportRepertoryMapper;
+import com.yuanchu.mom.mapper.RepertoryMapper;
+import com.yuanchu.mom.pojo.ImportRepertory;
+import com.yuanchu.mom.pojo.Repertory;
+import com.yuanchu.mom.pojo.dto.ImportRepertoryDto;
+import com.yuanchu.mom.service.ImportRepertoryService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鎴愬搧鍏ュ簱琛�(ImportRepertory)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author zss
+ * @since 2023-08-10 10:27:01
+ */
+@Service
+public class ImportRepertoryServiceImpl extends ServiceImpl<ImportRepertoryMapper, ImportRepertory> implements ImportRepertoryService {
+
+    @Resource
+    ImportRepertoryMapper importRepertoryMapper;
+
+    @Resource
+    RepertoryMapper repertoryMapper;
+
+    //鏂板鎴愬搧鍏ュ簱
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void addImpRep(String name, ImportRepertoryDto importRepertoryDto) {
+        //鏂板鎴愬搧鍏ュ簱
+        ImportRepertory importRepertory = new ImportRepertory();
+        BeanUtils.copyProperties(importRepertoryDto, importRepertory);
+        importRepertory.setUserName(name);
+        importRepertoryMapper.insert(importRepertory);
+        //鏂板鎴愬搧搴撳瓨
+        //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
+        LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Repertory::getOrderCode, importRepertoryDto.getOrderCode())
+                .eq(Repertory::getCode, importRepertoryDto.getCode())
+                .eq(Repertory::getName, importRepertoryDto.getName())
+                .eq(Repertory::getSpecifications, importRepertoryDto.getSpecifications())
+                .eq(Repertory::getUnit, importRepertoryDto.getUnit())
+                .eq(Repertory::getType, 0);
+        Repertory rep = repertoryMapper.selectOne(queryWrapper);
+        if (rep != null && rep.getCheckState() == 0) {
+            rep.setNumber(rep.getNumber() + importRepertoryDto.getNumber());
+            rep.setUserName(name);
+            repertoryMapper.updateById(rep);
+        } else {
+            //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉℃垚鍝佸簱瀛�
+            Repertory repertory = new Repertory();
+            BeanUtils.copyProperties(importRepertoryDto, repertory);
+            repertory.setUserName(name);
+            repertory.setType(0);
+            repertory.setCheckState(0);
+            repertoryMapper.insert(repertory);
+        }
+    }
+
+    //鏌ヨ鍏ュ簱鍒楄〃
+    @Override
+    public IPage<Map<String, Object>> selectAllImpRep(Page<Object> page, String orderCode, String name, String time) {
+        return importRepertoryMapper.selectAllImpRep(page, orderCode, name, time);
+    }
+
+    //鏍规嵁id鍒犻櫎
+    @Override
+    public void delImpRep(Integer id) {
+        //鍒犻櫎鍏ュ簱璁板綍
+        ImportRepertory importRepertory = importRepertoryMapper.selectById(id);
+        importRepertory.setState(0);
+        importRepertoryMapper.updateById(importRepertory);
+        //搴撳瓨涔熻鍑忓皯
+        LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Repertory::getOrderCode, importRepertory.getOrderCode())
+                .eq(Repertory::getCode, importRepertory.getCode())
+                .eq(Repertory::getName, importRepertory.getName())
+                .eq(Repertory::getSpecifications, importRepertory.getSpecifications())
+                .eq(Repertory::getUnit, importRepertory.getUnit())
+                .eq(Repertory::getType, 0)
+                .eq(Repertory::getCheckState, 0);
+        Repertory rep = repertoryMapper.selectOne(queryWrapper);
+        rep.setNumber(rep.getNumber() - importRepertory.getNumber());
+        repertoryMapper.updateById(rep);
+    }
+
+    //鎵归噺鍒犻櫎
+    @Override
+    public void delAllImpRep(List<Integer> ids) {
+        List<ImportRepertory> importRepertories = importRepertoryMapper.selectBatchIds(ids);
+        for (ImportRepertory importRepertory : importRepertories) {
+            importRepertory.setState(0);
+            //鍒犻櫎鍏ュ簱璁板綍
+            importRepertoryMapper.updateById(importRepertory);
+            //鍑忓皯搴撳瓨
+            LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(Repertory::getOrderCode, importRepertory.getOrderCode())
+                    .eq(Repertory::getCode, importRepertory.getCode())
+                    .eq(Repertory::getName, importRepertory.getName())
+                    .eq(Repertory::getSpecifications, importRepertory.getSpecifications())
+                    .eq(Repertory::getUnit, importRepertory.getUnit())
+                    .eq(Repertory::getType, 0)
+                    .eq(Repertory::getCheckState, 0);
+            Repertory rep = repertoryMapper.selectOne(queryWrapper);
+            rep.setNumber(rep.getNumber() - importRepertory.getNumber());
+            repertoryMapper.updateById(rep);
+        }
+    }
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/ReceiptServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/ReceiptServiceImpl.java
new file mode 100644
index 0000000..6b94a81
--- /dev/null
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/ReceiptServiceImpl.java
@@ -0,0 +1,100 @@
+package com.yuanchu.mom.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.mapper.ReceiptMapper;
+import com.yuanchu.mom.pojo.Receipt;
+import com.yuanchu.mom.service.ReceiptService;
+import com.yuanchu.mom.utils.FileSaveUtil;
+import io.swagger.models.Response;
+import org.apache.logging.log4j.util.Strings;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 鍥炲崟琛�(Receipt)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author zss
+ * @since 2023-08-11 10:08:55
+ */
+@Service
+public class ReceiptServiceImpl extends ServiceImpl<ReceiptMapper, Receipt> implements ReceiptService {
+
+    @Resource
+    ReceiptMapper receiptMapper;
+
+    //鏌ヨ鍥炲崟鍒楄〃
+    @Override
+    public IPage<Map<String, Object>> selectAllRece(Page<Object> page, String name, String orderCode, String type, String deliverTime) {
+        return receiptMapper.selectAllRece(page, name, orderCode, type, deliverTime);
+    }
+
+    //鏍规嵁id鍒犻櫎
+    @Override
+    public void delRece(Integer id) {
+        Receipt receipt = receiptMapper.selectById(id);
+        receipt.setState(0);
+        receiptMapper.updateById(receipt);
+    }
+
+    //鎵归噺鍒犻櫎
+    @Override
+    public void delAllRece(List<Integer> ids) {
+        List<Receipt> receipts = receiptMapper.selectBatchIds(ids);
+        for (Receipt receipt : receipts) {
+            receipt.setState(0);
+            receiptMapper.updateById(receipt);
+        }
+    }
+
+    //涓婁紶闄勪欢淇敼鐘舵��
+    @Override
+    public void updRece(Integer id, MultipartFile file) {
+        if (ObjectUtils.isNotEmpty(file)) {
+            Receipt receipt = receiptMapper.selectById(id);
+            receipt.setUrl(FileSaveUtil.StoreFile(file));
+            receipt.setType(1);
+            receiptMapper.updateById(receipt);
+        }
+    }
+
+    //鏍规嵁id鏌ョ湅鍥炲崟鐓х墖
+    @Override
+    public ResponseEntity<byte[]> selReceDatil(Integer id) throws IOException {
+        String url = receiptMapper.selectById(id).getUrl();
+        String path = "D:\\webapp\\images\\" + url;
+        //鑾峰彇鍥剧墖鏍煎紡鍚庣紑鍚�
+        String extension = getImageExtension(url);
+        // 璇诲彇鏈湴鍥剧墖鏂囦欢锛屽苟灏嗗叾杞崲涓哄瓧鑺傛暟缁�
+        FileSystemResource imageResource = new FileSystemResource(path);
+        byte[] bytes = Files.readAllBytes(imageResource.getFile().toPath());
+        // 璁剧疆HTTP澶翠俊鎭紝鍛婅瘔娴忚鍣ㄨ繑鍥炵殑鏄浘鐗囨暟鎹�
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(new MediaType("image", extension));
+        return new ResponseEntity<>(bytes, headers, HttpStatus.OK);
+    }
+
+    private String getImageExtension(String imageName) {
+        // 鏍规嵁鍥剧墖鏂囦欢鍚嶈幏鍙栨墿灞曞悕
+        int dotIndex = imageName.lastIndexOf('.');
+        if (dotIndex > 0 && dotIndex < imageName.length() - 1) {
+            return imageName.substring(dotIndex + 1);
+        }
+        return null;
+    }
+}
+
diff --git a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/RepertoryServiceImpl.java b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/RepertoryServiceImpl.java
index e2f095d..16fa0c9 100644
--- a/inventory-server/src/main/java/com/yuanchu/mom/service/impl/RepertoryServiceImpl.java
+++ b/inventory-server/src/main/java/com/yuanchu/mom/service/impl/RepertoryServiceImpl.java
@@ -25,8 +25,8 @@
 
     //鏌ヨ鎵�鏈夊簱瀛樺垪琛�
     @Override
-    public IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type) {
-        return repertoryMapper.selectAllRepertory(page,name,specifications,time,type);
+    public IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer checkState) {
+        return repertoryMapper.selectAllRepertory(page,name,specifications,time,type,checkState);
     }
 }
 
diff --git a/inventory-server/src/main/resources/mapper/ConsignmentMapper.xml b/inventory-server/src/main/resources/mapper/ConsignmentMapper.xml
new file mode 100644
index 0000000..ef52f7a
--- /dev/null
+++ b/inventory-server/src/main/resources/mapper/ConsignmentMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yuanchu.mom.mapper.ConsignmentMapper">
+    <select id="selectAll" resultType="com.yuanchu.mom.pojo.Consignment">
+        select *
+        from mom_ocean.consignment
+        where state = 1
+    </select>
+    <select id="selectAllCon" resultType="java.util.Map">
+        select id,
+               name,
+               specifications,
+               code,
+               customer_code,
+               unit,
+               number,
+               check_name,
+               fit_name,
+               user_name
+        from mom_ocean.consignment
+        where state=1
+        <if test="name!=null and name!=''">
+            and name like concat('%',#{name},'%')
+        </if>
+        <if test="specifications!=null and specifications!=''">
+            and specifications like concat('%',#{specifications},'%')
+        </if>
+        <if test="time!=null and time!=''">
+            and DATE_FORMAT(create_time, '%Y-%m-%d')=#{time}
+        </if>
+        order by id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/inventory-server/src/main/resources/mapper/ImportRepertoryMapper.xml b/inventory-server/src/main/resources/mapper/ImportRepertoryMapper.xml
new file mode 100644
index 0000000..56f10b8
--- /dev/null
+++ b/inventory-server/src/main/resources/mapper/ImportRepertoryMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yuanchu.mom.mapper.ImportRepertoryMapper">
+    <select id="selectAllImpRep" resultType="java.util.Map">
+        select id,
+        order_code,
+        code,
+        name,
+        specifications,
+        unit,
+        number,
+        user_name,
+        create_time
+        from mom_ocean.import_repertory
+        where state=1
+        <if test="orderCode!=null and orderCode!=''">
+            and order_code like concat('%',#{orderCode},'%')
+        </if>
+        <if test="name!=null and name!=''">
+            and name like concat('%',#{name},'%')
+        </if>
+        <if test="time!=null and time!=''">
+            and create_time=#{time}
+        </if>
+        order by id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/inventory-server/src/main/resources/mapper/ReceiptMapper.xml b/inventory-server/src/main/resources/mapper/ReceiptMapper.xml
new file mode 100644
index 0000000..32b4bfd
--- /dev/null
+++ b/inventory-server/src/main/resources/mapper/ReceiptMapper.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yuanchu.mom.mapper.ReceiptMapper">
+    <select id="selectAllRece" resultType="java.util.Map">
+        select id,
+        order_code,
+        customer_code,
+        proname,
+        adress,
+        name,
+        phone,
+        escort_code,
+        DATE_FORMAT(deliver_time,'%Y-%m-%d'),
+        user_name,
+        type
+        from mom_ocean.receipt
+        where state=1
+        <if test="name!=null and name!=''">
+            and name like concat('%',#{name},'%')
+        </if>
+        <if test="orderCode!=null and orderCode!=''">
+            and order_code like concat('%',#{orderCode},'%')
+        </if>
+        <if test="type!=null and type!=''">
+            and type=#{type}
+        </if>
+        <if test="deliverTime!=null and deliverTime!=''">
+            and deliver_time=#{deliverTime}
+        </if>
+        order by id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/inventory-server/src/main/resources/mapper/RepertoryMapper.xml b/inventory-server/src/main/resources/mapper/RepertoryMapper.xml
index bbab250..3172d85 100644
--- a/inventory-server/src/main/resources/mapper/RepertoryMapper.xml
+++ b/inventory-server/src/main/resources/mapper/RepertoryMapper.xml
@@ -2,30 +2,33 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.yuanchu.mom.mapper.RepertoryMapper">
     <select id="selectAllRepertory" resultType="java.util.Map">
-        select name,
+        select id,
+        name,
         specifications,
         code,
-        requirements,
-        order_code,
-        seat,
+        check_state,
         user_name,
         DATE_FORMAT(create_time, '%Y-%m-%d') '鍏ュ簱鏃ユ湡',
         note
         from mom_ocean.repertory
         <where>
             and state=1
-            <if test="name!=null">
-                and name =#{name}
+            <if test="name!=null and name!=''">
+                and name LIKE  CONCAT('%',#{name},'%')
             </if>
-            <if test="specifications!=null ">
-                and specifications=#{specifications}
+            <if test="specifications!=null and specifications!=''">
+                and specifications LIKE CONCAT('%',#{specifications},'%')
             </if>
-            <if test="time!=null ">
+            <if test="time!=null and time!=''">
                 and create_time=#{time}
             </if>
-            <if test="type!=null">
+            <if test="type!=null and type!=''">
                 and type=#{type}
             </if>
+            <if test="checkState!=null and checkState!=''">
+                and check_state=#{checkState}
+            </if>
+            order by id desc
         </where>
     </select>
 </mapper>
\ No newline at end of file
diff --git a/sale-server/pom.xml b/sale-server/pom.xml
index 7d53d36..3633f72 100644
--- a/sale-server/pom.xml
+++ b/sale-server/pom.xml
@@ -22,11 +22,7 @@
             <artifactId>standard-server</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
-        <dependency>
-            <groupId>com.yuanchu.mom</groupId>
-            <artifactId>inventory-server</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
-        </dependency>
+
         <dependency>
             <groupId>com.yuanchu.mom</groupId>
             <artifactId>user-server</artifactId>
diff --git a/sale-server/src/main/java/com/yuanchu/mom/controller/SaleController.java b/sale-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
index ec732e4..97fa896 100644
--- a/sale-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
+++ b/sale-server/src/main/java/com/yuanchu/mom/controller/SaleController.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.pojo.dto.vo.SaleVo;
+import com.yuanchu.mom.utils.JackSonUtil;
 import org.json.JSONException;
 import org.json.JSONObject;
 import com.yuanchu.mom.pojo.dto.SaleDto;
@@ -17,10 +18,8 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.lang.reflect.Array;
+import java.util.*;
 
 /**
  * <p>
@@ -61,12 +60,9 @@
 
     @ApiOperation(value = "鏂板閿�鍞崟")
     @PostMapping("/addSale")
-    public Result addSale(@RequestHeader("token") String token, @RequestBody SaleDto saleDto) throws JSONException {
-        Map<String, String> map = jwt.readJWT(token);
-        String data = map.get("data");
-        JSONObject jsonObject = new JSONObject(data);
-        String saleman = jsonObject.getString("name");
-        saleService.addSale(saleman, saleDto);
+    public Result addSale(@RequestHeader("token") String token, @RequestBody SaleDto saleDto) throws Exception {
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        saleService.addSale(data.get("name").replaceAll("\"", ""), saleDto);
         return Result.success("鏂板鎴愬姛!");
     }
 
@@ -84,12 +80,9 @@
             @ApiImplicitParam(name = "id", value = "閿�鍞崟id", dataTypeClass = Integer.class, required = true)
     })
     @PostMapping("/updateSaleById")
-    public Result updateSaleById(@RequestHeader("token") String token, Integer id, @RequestBody SaleVo saleVo) throws JSONException {
-        Map<String, String> map = jwt.readJWT(token);
-        String data = map.get("data");
-        JSONObject jsonObject = new JSONObject(data);
-        String saleman = jsonObject.getString("name");
-        saleService.updateSaleById(saleman,id, saleVo);
+    public Result updateSaleById(@RequestHeader("token") String token, Integer id, @RequestBody SaleVo saleVo) throws Exception {
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        saleService.updateSaleById(data.get("name").replaceAll("\"", ""),id, saleVo);
         return Result.success("淇敼鎴愬姛!");
     }
 
@@ -105,10 +98,10 @@
 
     @ApiOperation(value = "鎵归噺鍒犻櫎")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "ids", value = "閿�鍞崟id", dataTypeClass = String.class, dataType = "List", required = true)
+            @ApiImplicitParam(name = "ids", value = "ids", dataTypeClass = Integer.class, dataType = "List",required = true)
     })
     @PostMapping("/delAllSale")
-    public Result delAllSale( List<Integer> ids) {
+    public Result delAllSale( @RequestParam("ids") List<Integer> ids) {
         saleService.delAllSale(ids);
         return Result.success();
     }
@@ -119,12 +112,9 @@
             @ApiImplicitParam(name = "type", value = "鐘舵��", dataTypeClass = Integer.class, required = true)
     })
     @PostMapping("/check")
-    public Result check(@RequestHeader("token") String token,Integer id,Integer type) throws JSONException {
-        Map<String, String> map = jwt.readJWT(token);
-        String data = map.get("data");
-        JSONObject jsonObject = new JSONObject(data);
-        String checkname = jsonObject.getString("name");
-        saleService.check(checkname,id,type);
+    public Result check(@RequestHeader("token") String token,Integer id,Integer type) throws Exception {
+        Map<String, String> data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class);
+        saleService.check(data.get("name").replaceAll("\"", ""),id,type);
         return Result.success("瀹℃牳鎴愬姛");
     }
 
diff --git a/sale-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java b/sale-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java
index 538c976..8193cc4 100644
--- a/sale-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java
+++ b/sale-server/src/main/java/com/yuanchu/mom/mapper/SaleMapper.java
@@ -19,4 +19,7 @@
 
     //鏌ヨ閿�鍞崟鍒楄〃
     IPage<Map<String, Object>> selectSaleList(Page<Object> page, String orderNumber, String name, Integer type, String delTime);
+
+
+
 }
diff --git a/sale-server/src/main/java/com/yuanchu/mom/pojo/Sale.java b/sale-server/src/main/java/com/yuanchu/mom/pojo/Sale.java
index 02f9b50..5e03988 100644
--- a/sale-server/src/main/java/com/yuanchu/mom/pojo/Sale.java
+++ b/sale-server/src/main/java/com/yuanchu/mom/pojo/Sale.java
@@ -1,10 +1,8 @@
 package com.yuanchu.mom.pojo;
 
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.*;
+
 import java.time.LocalDate;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -76,6 +74,7 @@
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date checkTime;
 
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
     private Integer state;
 
     @TableField(fill = FieldFill.INSERT)
diff --git a/sale-server/src/main/java/com/yuanchu/mom/pojo/SaleMaterial.java b/sale-server/src/main/java/com/yuanchu/mom/pojo/SaleMaterial.java
index b098dd0..517f1d8 100644
--- a/sale-server/src/main/java/com/yuanchu/mom/pojo/SaleMaterial.java
+++ b/sale-server/src/main/java/com/yuanchu/mom/pojo/SaleMaterial.java
@@ -1,11 +1,9 @@
 package com.yuanchu.mom.pojo;
 
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.*;
+
 import java.time.LocalDate;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -50,6 +48,7 @@
     @ApiModelProperty(value = "鍗曚环")
     private String price;
 
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
     private Integer state;
 
     @TableField(fill = FieldFill.INSERT)
diff --git a/sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto1.java b/sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto1.java
new file mode 100644
index 0000000..7e6bd4e
--- /dev/null
+++ b/sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto1.java
@@ -0,0 +1,40 @@
+package com.yuanchu.mom.pojo.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@Builder
+public class ConsignmentDto1 {
+
+    //璁㈠崟缂栧彿
+    @JsonSerialize
+    private String orderCode;
+
+    //鍚堝悓缂栧彿
+    @JsonSerialize
+    private String customerCode;
+
+    //瀹㈡埛鍚嶇О
+    @JsonSerialize
+    private String proname;
+
+    //鍒拌揣鍦板潃
+    @JsonSerialize
+    private String adress;
+
+    //鏀惰揣鑱旂郴浜�
+    @JsonSerialize
+    private String username;
+
+    //鎵嬫満鍙�
+    @JsonSerialize
+    private String phone ;
+
+    //浜у搧淇℃伅
+    @JsonSerialize
+    private List<ConsignmentDto2> messages;
+}
diff --git a/sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto2.java b/sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto2.java
new file mode 100644
index 0000000..5ae53de
--- /dev/null
+++ b/sale-server/src/main/java/com/yuanchu/mom/pojo/dto/ConsignmentDto2.java
@@ -0,0 +1,26 @@
+package com.yuanchu.mom.pojo.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class ConsignmentDto2 {
+
+    //浜у搧淇℃伅
+    @JsonSerialize
+    private String name;
+
+    //瑙勬牸鍨嬪彿
+    @JsonSerialize
+    private String specifications;
+
+    //鍗曚綅
+    @JsonSerialize
+    private String unit;
+
+    //鍙戣揣鏁伴噺
+    @JsonSerialize
+    private Integer number;
+}
diff --git a/sale-server/src/main/java/com/yuanchu/mom/service/SaleService.java b/sale-server/src/main/java/com/yuanchu/mom/service/SaleService.java
index a84ddb7..940eeda 100644
--- a/sale-server/src/main/java/com/yuanchu/mom/service/SaleService.java
+++ b/sale-server/src/main/java/com/yuanchu/mom/service/SaleService.java
@@ -4,13 +4,12 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.pojo.Sale;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.dto.ConsignmentDto1;
 import com.yuanchu.mom.pojo.dto.SaleDto;
 import com.yuanchu.mom.pojo.dto.vo.SaleVo;
-import org.springframework.stereotype.Service;
 
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 /**
  * <p>
@@ -71,4 +70,11 @@
      * @param id
      */
     void check(String checkname,Integer id,Integer type);
+
+    /**
+     *鏍规嵁璁㈠崟鍙锋煡璇㈤攢鍞俊鎭�
+     * @param orderNumber
+     * @return
+     */
+    ConsignmentDto1 selSale(String orderNumber);
 }
diff --git a/sale-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java b/sale-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
index df08cff..f661cff 100644
--- a/sale-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
+++ b/sale-server/src/main/java/com/yuanchu/mom/service/impl/SaleServiceImpl.java
@@ -7,10 +7,11 @@
 import com.yuanchu.mom.pojo.Sale;
 import com.yuanchu.mom.mapper.SaleMapper;
 import com.yuanchu.mom.pojo.SaleMaterial;
+import com.yuanchu.mom.pojo.dto.ConsignmentDto1;
+import com.yuanchu.mom.pojo.dto.ConsignmentDto2;
 import com.yuanchu.mom.pojo.dto.SaleDto;
 import com.yuanchu.mom.pojo.dto.SaleMaterialDto;
 import com.yuanchu.mom.pojo.dto.vo.SaleVo;
-import com.yuanchu.mom.service.SaleMaterialService;
 import com.yuanchu.mom.service.SaleService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.BeanUtils;
@@ -20,7 +21,6 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -136,4 +136,26 @@
         sale.setCheckTime(new Date());
         saleMapper.updateById(sale);
     }
+
+    //鏍规嵁璁㈠崟鍙锋煡璇㈤攢鍞俊鎭�
+    @Override
+    public ConsignmentDto1 selSale(String orderNumber) {
+        Sale sale = saleMapper.selectOne(Wrappers.<Sale>query().eq("order_number", orderNumber));
+        List<SaleMaterial> saleMaterials = saleMaterialMapper.selectList(Wrappers.<SaleMaterial>query().eq("sale_id", sale.getId()));
+        List<ConsignmentDto2> dto2List = saleMaterials.stream().map(saleMaterial -> {
+            ConsignmentDto2 consignmentDto2 = new ConsignmentDto2();
+            BeanUtils.copyProperties(saleMaterial, consignmentDto2);
+            return consignmentDto2;
+        }).collect(Collectors.toList());
+        ConsignmentDto1 consignmentDto1 = ConsignmentDto1.builder()
+                .orderCode(orderNumber)
+                .customerCode(sale.getCode())
+                .proname(sale.getProname())
+                .adress(sale.getAdress())
+                .username(sale.getUsername())
+                .phone(sale.getPhone())
+                .messages(dto2List)
+                .build();
+        return consignmentDto1;
+    }
 }
diff --git a/sale-server/src/main/resources/mapper/SaleMapper.xml b/sale-server/src/main/resources/mapper/SaleMapper.xml
index f95c784..f530a91 100644
--- a/sale-server/src/main/resources/mapper/SaleMapper.xml
+++ b/sale-server/src/main/resources/mapper/SaleMapper.xml
@@ -2,27 +2,27 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yuanchu.mom.mapper.SaleMapper">
     <select id="selectSaleList" resultType="java.util.Map">
-        select order_number,
+        select id,
+        order_number,
         code,
         name,
         proname,
         type,
         DATE_FORMAT(delTime, '%Y-%m-%d') '浜よ揣鏃ユ湡'
         from mom_ocean.sale
-        <where>
-            state=1
-            <if test="orderNumber!=null">
-                and order_number=#{orderNumber}
-            </if>
-            <if test="name!=null">
-                and name=#{name}
-            </if>
-            <if test="type!=null">
-                and type=#{type}
-            </if>
-            <if test="delTime!=null">
-                and DATE_FORMAT(delTime, '%Y-%m-%d')=#{delTime}
-            </if>
-        </where>
+        where state=1
+        <if test="orderNumber!=null and orderNumber!=''">
+            and order_number like concat('%',#{orderNumber},'%')
+        </if>
+        <if test="name!=null and name!=''">
+            and name LIKE CONCAT('%',#{name},'%')
+        </if>
+        <if test="type!=null and type!=''">
+            and type=#{type}
+        </if>
+        <if test="delTime!=null and delTime!=''">
+            and DATE_FORMAT(delTime, '%Y-%m-%d')=#{delTime}
+        </if>
+        order by id desc
     </select>
 </mapper>
diff --git a/sale-server/src/main/resources/mapper/SaleMaterialMapper.xml b/sale-server/src/main/resources/mapper/SaleMaterialMapper.xml
index a53fc17..a83f25e 100644
--- a/sale-server/src/main/resources/mapper/SaleMaterialMapper.xml
+++ b/sale-server/src/main/resources/mapper/SaleMaterialMapper.xml
@@ -2,11 +2,18 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yuanchu.mom.mapper.SaleMaterialMapper">
     <select id="selectSaleDatil" resultType="com.yuanchu.mom.pojo.SaleMaterial">
-        select id, name, specifications, unit, number, price, state, create_time, update_time, sale_id
+        select id,
+               name,
+               specifications,
+               unit,
+               number,
+               price,
+               state,
+               create_time,
+               update_time,
+               sale_id
         from mom_ocean.sale_material
-        where state=1
-        <if test="id!=null">
-            and sale_id=#{id}
-        </if>
+        where state = 1
+          and sale_id = #{id}
     </select>
 </mapper>
diff --git a/standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java b/standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java
new file mode 100644
index 0000000..4ede6fb
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/mom/controller/TechnologyTemplateController.java
@@ -0,0 +1,104 @@
+package com.yuanchu.mom.controller;
+
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.dto.TechnologyTemplateDto;
+import com.yuanchu.mom.pojo.vo.TechnologyTemplateVo1;
+import com.yuanchu.mom.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.yuanchu.mom.service.TechnologyTemplateService;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 宸ヨ壓妯$増琛�(TechnologyTemplate)琛ㄦ帶鍒跺眰
+ *
+ * @author zss
+ * @since 2023-08-09 11:20:20
+ */
+@Api(tags = "鍩虹鏁版嵁-->宸ュ簭")
+@RestController
+@RequestMapping("/technologyTemplate")
+public class TechnologyTemplateController {
+
+    @Autowired
+    private TechnologyTemplateService technologyTemplateService;
+
+    @ApiOperation(value = "鏂板宸ュ簭妯$増")
+    @PostMapping("/addTech")
+    public Result addTech(@RequestBody TechnologyTemplateDto technologyTemplateDto){
+        technologyTemplateService.addTech(technologyTemplateDto);
+        return Result.success("鏂板鎴愬姛!");
+    }
+
+    @ApiOperation(value = "鏌ヨ鎵�鏈夌被鍨�")
+    @GetMapping("/seleType")
+    public Result seleType(){
+        return Result.success(technologyTemplateService.seleType());
+    }
+
+    @ApiOperation(value = "鏌ヨ宸ュ簭妯$増鍒楄〃(浜岀骇鏍�)")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "element", value = "鍏冧欢", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "father", value = "宸ュ簭(鐖剁被)", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "type", value = "绫诲瀷", dataTypeClass = Integer.class,required = true)
+    })
+    @GetMapping("/selTech")
+    public Result selTech(String element,String father,Integer type){
+        List<TechnologyTemplateVo1> map = technologyTemplateService.selTech(element, father, type);
+        return Result.success(map);
+    }
+
+    @ApiOperation(value = "鏌ヨ宸ュ簭妯$増璇︽儏")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "宸ュ簭id", dataTypeClass = Integer.class,required = true)
+    })
+    @GetMapping("/selTechById")
+    public Result selTechById(Integer id){
+        return Result.success(technologyTemplateService.selTechById(id));
+    }
+
+    @ApiOperation(value = "缂栬緫")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "宸ュ簭id", dataTypeClass = Integer.class,required = true)
+    })
+    @PostMapping("/updaTechById")
+    public Result updaTechById(Integer id,@RequestBody TechnologyTemplateDto technologyTemplateDto){
+        technologyTemplateService.updaTechById(id,technologyTemplateDto);
+        return Result.success("淇敼鎴愬姛!");
+    }
+
+    @ApiOperation(value = "鏍规嵁閿�鍞崟id鍒犻櫎")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "宸ュ簭id", dataTypeClass = Integer.class, required = true)
+    })
+    @PostMapping("/delTech")
+    public Result delTech(Integer id) {
+        technologyTemplateService.delTech(id);
+        return Result.success("鍒犻櫎鎴愬姛!");
+    }
+
+    @ApiOperation(value = "鎵归噺鍒犻櫎")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "閿�鍞崟id", dataTypeClass = Integer.class, dataType = "List", required = true)
+    })
+    @PostMapping("/delAllTech")
+    public Result delAllTech(@RequestParam("ids") List<Integer> ids) {
+        technologyTemplateService.delAllTech(ids);
+        return Result.success("鎵归噺鍒犻櫎鎴愬姛!");
+    }
+
+
+
+}
+
diff --git a/standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyTemplateMapper.java b/standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyTemplateMapper.java
new file mode 100644
index 0000000..abe9947
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/mom/mapper/TechnologyTemplateMapper.java
@@ -0,0 +1,28 @@
+package com.yuanchu.mom.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.pojo.TechnologyTemplate;
+import com.yuanchu.mom.pojo.vo.TechnologyTemplateVo1;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 宸ヨ壓妯$増琛�(TechnologyTemplate)琛ㄦ暟鎹簱璁块棶灞�
+ *
+ * @author zss
+ * @since 2023-08-09 11:20:20
+ */
+public interface TechnologyTemplateMapper extends BaseMapper<TechnologyTemplate> {
+
+
+    //鏌ヨ鎵�鏈夌被鍨�
+    List<Integer> seleType();
+
+    //鏌ヨ宸ュ簭妯$増鍒楄〃
+    List<TechnologyTemplateVo1> selTech(String element, String father, Integer type);
+}
+
diff --git a/standard-server/src/main/java/com/yuanchu/mom/pojo/RawInsProduct.java b/standard-server/src/main/java/com/yuanchu/mom/pojo/RawInsProduct.java
index e974eee..5c142db 100644
--- a/standard-server/src/main/java/com/yuanchu/mom/pojo/RawInsProduct.java
+++ b/standard-server/src/main/java/com/yuanchu/mom/pojo/RawInsProduct.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -61,7 +62,8 @@
      **/
     private Integer testState;
 
-
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    @TableLogic(value = "1", delval = "0")
     private Integer state;
 
     @TableField(fill = FieldFill.INSERT)
diff --git a/standard-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java b/standard-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java
new file mode 100644
index 0000000..c6d5499
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/mom/pojo/TechnologyTemplate.java
@@ -0,0 +1,82 @@
+package com.yuanchu.mom.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+import java.io.Serializable;
+
+/**
+ * 宸ヨ壓妯$増琛�(TechnologyTemplate)琛ㄥ疄浣撶被
+ *
+ * @author zss
+ * @since 2023-08-09 11:20:20
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = false)
+@Builder
+@TableName("technology_template")
+public class TechnologyTemplate implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 宸ュ簭id
+     **/
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 宸ュ簭鍚嶇О
+     **/
+    private String name;
+
+    /**
+     * 宸ュ簭鐖剁骇
+     **/
+    private String father;
+
+    /**
+     * 0锛氭鑳惰繛鎺ュ櫒锛�1锛氶噾灞炶繛鎺ュ櫒锛�2锛氭箍鎻掓嫈鐢佃繛鎺ュ櫒锛�3锛氬垎鏀粍浠�
+     **/
+    private Integer type;
+
+    @ApiModelProperty(value = "閫昏緫鍒犻櫎 姝e父>=1,鍒犻櫎<=0", hidden = true)
+    private Integer state;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 鍏冧欢
+     **/
+    private String element;
+
+    /**
+     * 鎺у埗瑕佺偣
+     **/
+    private String control;
+
+    /**
+     * 鍩烘湰瑕佹眰
+     **/
+    private String base;
+
+    /**
+     * 澶囨敞
+     **/
+    private String note;
+}
+
diff --git a/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnologyTemplateDto.java b/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnologyTemplateDto.java
new file mode 100644
index 0000000..710618d
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/mom/pojo/dto/TechnologyTemplateDto.java
@@ -0,0 +1,59 @@
+package com.yuanchu.mom.pojo.dto;
+
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import lombok.*;
+import java.io.Serializable;
+
+
+
+@Data
+@JsonSerialize
+//鏂板鎴栬�呬慨鏀瑰伐搴忔ā鐗�
+public class TechnologyTemplateDto {
+
+    /**
+     * 宸ュ簭鍚嶇О
+     **/
+    @JsonSerialize
+    private String name;
+
+    /**
+     * 宸ュ簭鐖剁骇
+     **/
+    @JsonSerialize
+    private String father;
+
+    /**
+     * 0锛氭鑳惰繛鎺ュ櫒锛�1锛氶噾灞炶繛鎺ュ櫒锛�2锛氭箍鎻掓嫈鐢佃繛鎺ュ櫒锛�3锛氬垎鏀粍浠�
+     **/
+    @JsonSerialize
+    private Integer type;
+
+    /**
+     * 鍏冧欢
+     **/
+    @JsonSerialize
+    private String element;
+
+    /**
+     * 鎺у埗瑕佺偣
+     **/
+    @JsonSerialize
+    private String control;
+
+    /**
+     * 鍩烘湰瑕佹眰
+     **/
+    @JsonSerialize
+    private String base;
+
+    /**
+     * 澶囨敞
+     **/
+    @JsonSerialize
+    private String note;
+
+
+}
+
diff --git a/standard-server/src/main/java/com/yuanchu/mom/pojo/vo/TechnologyTemplateVo1.java b/standard-server/src/main/java/com/yuanchu/mom/pojo/vo/TechnologyTemplateVo1.java
new file mode 100644
index 0000000..b94e8d4
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/mom/pojo/vo/TechnologyTemplateVo1.java
@@ -0,0 +1,18 @@
+package com.yuanchu.mom.pojo.vo;
+
+
+import com.yuanchu.mom.pojo.dto.ProductDto2;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TechnologyTemplateVo1 {
+
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    private String father;
+
+    List<TechnologyTemplateVo2> children;
+}
diff --git a/standard-server/src/main/java/com/yuanchu/mom/pojo/vo/TechnologyTemplateVo2.java b/standard-server/src/main/java/com/yuanchu/mom/pojo/vo/TechnologyTemplateVo2.java
new file mode 100644
index 0000000..00bd44a
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/mom/pojo/vo/TechnologyTemplateVo2.java
@@ -0,0 +1,34 @@
+package com.yuanchu.mom.pojo.vo;
+
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import lombok.Data;
+
+@Data
+public class TechnologyTemplateVo2 {
+
+    @JsonSerialize
+    private Integer id;
+
+    //宸ュ簭鍚嶇О
+    @JsonSerialize
+    private String name;
+
+    //鍏冧欢
+    @JsonSerialize
+    private String element;
+
+    //鍩烘湰瑕佹眰
+    @JsonSerialize
+    private String base;
+
+    //鎺у埗瑕佺偣
+    @JsonSerialize
+    private String control;
+
+    //澶囨敞
+    @JsonSerialize
+    private String note;
+
+
+}
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/TechnologyTemplateService.java b/standard-server/src/main/java/com/yuanchu/mom/service/TechnologyTemplateService.java
new file mode 100644
index 0000000..64b927d
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/TechnologyTemplateService.java
@@ -0,0 +1,71 @@
+package com.yuanchu.mom.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.pojo.TechnologyTemplate;
+import com.yuanchu.mom.pojo.dto.TechnologyTemplateDto;
+import com.yuanchu.mom.pojo.vo.TechnologyTemplateVo1;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 宸ヨ壓妯$増琛�(TechnologyTemplate)琛ㄦ湇鍔℃帴鍙�
+ *
+ * @author zss
+ * @since 2023-08-09 11:20:20
+ */
+public interface TechnologyTemplateService extends IService<TechnologyTemplate> {
+
+
+    /**
+     * 鏂板宸ュ簭妯$増
+     * @param technologyTemplateDto
+     */
+    void addTech(TechnologyTemplateDto technologyTemplateDto);
+
+    /**
+     * 鏌ヨ鎵�鏈夌被鍨�
+     * @return
+     */
+    List<Integer> seleType();
+
+    /**
+     * 鏌ヨ宸ュ簭妯$増鍒楄〃
+     * @param page
+     * @param element
+     * @param father
+     * @param type
+     * @return
+     */
+    List<TechnologyTemplateVo1> selTech(String element, String father, Integer type);
+
+    /**
+     * 鏍规嵁id鏌ヨ璇︽儏
+     * @param id
+     * @return
+     */
+    TechnologyTemplateDto selTechById(Integer id);
+
+    /**
+     * 鏍规嵁id淇敼
+     * @param id
+     * @param technologyTemplateDto
+     */
+    void updaTechById(Integer id, TechnologyTemplateDto technologyTemplateDto);
+
+    /**
+     * 鏍规嵁id鍒犻櫎
+     * @param id
+     */
+    void delTech(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param ids
+     */
+    void delAllTech(List<Integer> ids);
+}
+
diff --git a/standard-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyTemplateServiceImpl.java b/standard-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyTemplateServiceImpl.java
new file mode 100644
index 0000000..32b9c30
--- /dev/null
+++ b/standard-server/src/main/java/com/yuanchu/mom/service/impl/TechnologyTemplateServiceImpl.java
@@ -0,0 +1,87 @@
+package com.yuanchu.mom.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.mapper.TechnologyTemplateMapper;
+import com.yuanchu.mom.pojo.TechnologyTemplate;
+import com.yuanchu.mom.pojo.dto.TechnologyTemplateDto;
+import com.yuanchu.mom.pojo.vo.TechnologyTemplateVo1;
+import com.yuanchu.mom.service.TechnologyTemplateService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 宸ヨ壓妯$増琛�(TechnologyTemplate)琛ㄦ湇鍔″疄鐜扮被
+ *
+ * @author zss
+ * @since 2023-08-09 11:20:20
+ */
+@Service
+public class TechnologyTemplateServiceImpl extends ServiceImpl<TechnologyTemplateMapper, TechnologyTemplate> implements TechnologyTemplateService {
+
+
+    @Resource
+    TechnologyTemplateMapper technologyTemplateMapper;
+
+    //鏂板宸ュ簭妯$増
+    @Override
+    public void addTech(TechnologyTemplateDto technologyTemplateDto) {
+        TechnologyTemplate technologyTemplate = new TechnologyTemplate();
+        BeanUtils.copyProperties(technologyTemplateDto,technologyTemplate);
+        technologyTemplateMapper.insert(technologyTemplate);
+    }
+
+    //鏌ヨ鎵�鏈夌被鍨�
+    @Override
+    public List<Integer> seleType() {
+        return technologyTemplateMapper.seleType();
+    }
+
+    //鏌ヨ宸ュ簭妯$増鍒楄〃
+    @Override
+    public List<TechnologyTemplateVo1> selTech( String element, String father, Integer type) {
+        return technologyTemplateMapper.selTech(element,father,type);
+    }
+
+    //鏍规嵁id鏌ョ湅宸ュ簭璇︽儏
+    @Override
+    public TechnologyTemplateDto selTechById(Integer id) {
+        TechnologyTemplate technologyTemplate = technologyTemplateMapper.selectById(id);
+        TechnologyTemplateDto technologyTemplateDto = new TechnologyTemplateDto();
+        BeanUtils.copyProperties(technologyTemplate,technologyTemplateDto);
+        return technologyTemplateDto;
+    }
+
+    //鏍规嵁id淇敼
+    @Override
+    public void updaTechById(Integer id, TechnologyTemplateDto technologyTemplateDto) {
+        TechnologyTemplate technologyTemplate = technologyTemplateMapper.selectById(id);
+        BeanUtils.copyProperties(technologyTemplateDto,technologyTemplate);
+        technologyTemplateMapper.updateById(technologyTemplate);
+    }
+
+    //鏍规嵁id鍒犻櫎
+    @Override
+    public void delTech(Integer id) {
+        TechnologyTemplate technologyTemplate = technologyTemplateMapper.selectById(id);
+        technologyTemplate.setState(0);
+        technologyTemplateMapper.updateById(technologyTemplate);
+    }
+
+    //鎵归噺鍒犻櫎
+    @Override
+    public void delAllTech(List<Integer> ids) {
+        List<TechnologyTemplate> technologyTemplates = technologyTemplateMapper.selectBatchIds(ids);
+        for (TechnologyTemplate technologyTemplate : technologyTemplates) {
+            technologyTemplate.setState(0);
+            technologyTemplateMapper.updateById(technologyTemplate);
+        }
+    }
+}
+
diff --git a/standard-server/src/main/resources/mapper/OrdersMapper.xml b/standard-server/src/main/resources/mapper/OrdersMapper.xml
index a691546..f9aaada 100644
--- a/standard-server/src/main/resources/mapper/OrdersMapper.xml
+++ b/standard-server/src/main/resources/mapper/OrdersMapper.xml
@@ -2,7 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.yuanchu.mom.mapper.OrdersMapper">
     <select id="selectAllOrder" resultType="java.util.Map">
-        select order_code,
+        select o.id,
+        order_code,
         department,
         province,
         salesman,
@@ -17,20 +18,20 @@
         o.state
         from mom_ocean.orders o,mom_ocean.material m
         <where>
-            <if test="orderCode != null">
-                and order_code = #{orderCode}
+            <if test="orderCode != null and orderCode!=''">
+                and order_code LIKE CONCAT('%',#{orderCode},'%')
             </if>
-            <if test="time != null">
+            <if test="time != null and time!=''">
                 and o.create_time = #{time}
             </if>
-            <if test="name != null">
-                and m.name = #{name}
+            <if test="name != null and name!=''">
+                and m.name LIKE CONCAT('%',#{name},'%')
             </if>
-            <if test="state != null">
+            <if test="state != null and state!=''">
                 and o.state = #{state}
             </if>
             and o.code=m.code
         </where>
-        order by o.create_time desc
+        order by o.id desc
     </select>
 </mapper>
\ No newline at end of file
diff --git a/standard-server/src/main/resources/mapper/TechnologyTemplateMapper.xml b/standard-server/src/main/resources/mapper/TechnologyTemplateMapper.xml
new file mode 100644
index 0000000..01e5925
--- /dev/null
+++ b/standard-server/src/main/resources/mapper/TechnologyTemplateMapper.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yuanchu.mom.mapper.TechnologyTemplateMapper">
+    <select id="seleType" resultType="java.lang.Integer">
+        select distinct type
+        from mom_ocean.technology_template
+        where state = 1
+    </select>
+
+    <resultMap id="selTech" type="com.yuanchu.mom.pojo.vo.TechnologyTemplateVo1">
+        <id property="father" column="father" jdbcType="VARCHAR"/>
+        <collection property="children" resultMap="TechnologyTemplateVo2ListMap"/>
+    </resultMap>
+
+    <resultMap id="TechnologyTemplateVo2ListMap" type="com.yuanchu.mom.pojo.vo.TechnologyTemplateVo2">
+        <id property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="element" column="element" jdbcType="VARCHAR"/>
+        <result property="base" column="base" jdbcType="VARCHAR"/>
+        <result property="control" column="control" jdbcType="VARCHAR"/>
+        <result property="note" column="note" jdbcType="VARCHAR"/>
+    </resultMap>
+    <select id="selTech" resultMap="selTech">
+        select id,
+        father,
+        name,
+        element,
+        base,
+        control,
+        note
+        from mom_ocean.technology_template t
+        <where>
+            state=1
+            <if test="type!=null and type!=''">
+                and type=#{type}
+            </if>
+            <if test="element!=null and element!=''">
+                and element like concat('%',#{element},'%')
+            </if>
+            <if test="father!=null and father!=''">
+                and father like concat('%',#{father},'%')
+            </if>
+        </where>
+
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java b/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java
index 4747d6e..e38aeea 100644
--- a/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java
+++ b/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java
@@ -2,6 +2,7 @@
 
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
diff --git a/system-run/src/main/resources/application-dev.yml b/system-run/src/main/resources/application-dev.yml
index 7a41453..ac77d34 100644
--- a/system-run/src/main/resources/application-dev.yml
+++ b/system-run/src/main/resources/application-dev.yml
@@ -18,7 +18,9 @@
 
 # 鐓х墖瀛樺偍璺緞+++++++++++++++++++++++++++杩愮淮闇�瑕侀厤缃�+++++++++++++++++++++++++++
 file:
-  path: E:/webapp/images
+  path: D:/webapp/images
+  # 涓婁紶鏂囦欢鍏佽鐨勬墿灞曞悕
+  allowed: png,jpg,jpeg,gif
 
 mybatis-plus:
   type-aliases-package: com.yuanchu.mom.pojo
@@ -57,7 +59,7 @@
     # redis鏁版嵁搴撶储寮�(榛樿涓�0)锛屾垜浠娇鐢ㄧ储寮曚负3鐨勬暟鎹簱锛岄伩鍏嶅拰鍏朵粬鏁版嵁搴撳啿绐�
     database: 0
     # redis鏈嶅姟鍣ㄥ湴鍧�锛堥粯璁や负localhost锛�
-    host: localhost
+    host: 192.168.110.209
     # redis绔彛锛堥粯璁や负6379锛�
     port: 6379
     # redis璁块棶瀵嗙爜锛堥粯璁や负绌猴級
diff --git a/system-run/src/main/resources/application.yml b/system-run/src/main/resources/application.yml
index 696df2f..fe0e329 100644
--- a/system-run/src/main/resources/application.yml
+++ b/system-run/src/main/resources/application.yml
@@ -3,6 +3,10 @@
 spring:
   profiles:
     active: dev
+  servlet:
+    multipart:
+      max-file-size: 20MB # 鍗曚釜鏂囦欢澶у皬
+      max-request-size: 1024MB # 涓�娆¤姹傛枃浠舵�诲ぇ灏�
 
 mybatis-plus:
   type-aliases-package: com.yuanchu.mom.pojo
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java b/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java
index 166fbd5..ab1a56f 100644
--- a/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java
+++ b/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java
@@ -41,6 +41,7 @@
         return Result.success("鐧诲綍鎴愬姛", map);
     }
 
+    @ApiOperation(value = "token鍒锋柊")
     @PostMapping("/refresh")
     public Result refresh(String reToken) throws Exception {
         Map<String, String> map = new Jwt().readJWT(reToken);

--
Gitblit v1.9.3