From 4eb4b44397f0121ddb9000157ce618dfe6e53025 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期四, 23 十月 2025 10:01:09 +0800
Subject: [PATCH] 1

---
 src/main/webapp/static/js/locDetl/locDetl.js                     |    2 
 src/main/java/com/zy/asrs/controller/LocDetlController.java      |   27 ++++++--
 src/main/java/com/zy/asrs/controller/ImagePreviewController.java |   80 ++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/utils/ImagePreviewUtils.java           |   48 ++++++++++++++++
 src/main/webapp/views/pakStore/locDetlQuery.html                 |   17 +++--
 pom.xml                                                          |    3 -
 src/main/resources/application.yml                               |    3 +
 7 files changed, 162 insertions(+), 18 deletions(-)

diff --git a/pom.xml b/pom.xml
index 78ceb00..8b08150 100644
--- a/pom.xml
+++ b/pom.xml
@@ -108,18 +108,15 @@
             <artifactId>truelicense-core</artifactId>
             <version>1.33</version>
         </dependency>
-
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
-
     </dependencies>
 
 
     <build>
-<!--        <finalName>rqdzasrs</finalName>-->
         <finalName>czkhasrs</finalName>
         <plugins>
             <plugin>
diff --git a/src/main/java/com/zy/asrs/controller/ImagePreviewController.java b/src/main/java/com/zy/asrs/controller/ImagePreviewController.java
new file mode 100644
index 0000000..b2bef35
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/ImagePreviewController.java
@@ -0,0 +1,80 @@
+package com.zy.asrs.controller;
+
+import com.zy.asrs.utils.ImagePreviewUtils;
+import com.zy.common.web.BaseController;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.*;
+
+@RestController
+@RequestMapping()
+public class ImagePreviewController extends BaseController {
+    //涓婁紶鍥剧墖
+    @ApiResponses({@ApiResponse(code = 200, message = "涓婁紶鎴愬姛"), @ApiResponse(code = 400, message = "涓婁紶澶辫触"), @ApiResponse(code = 500, message = "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�")})
+    @RequestMapping(value = "/saveImage", method = RequestMethod.POST)
+    public Map<String, Object> saveImage(@RequestParam("files") MultipartFile[] files) {
+        Map<String, Object> map = new HashMap<>();
+        List<String> list = new ArrayList<>();
+        for (int i = 0; i < files.length; i++) {
+            MultipartFile mfile = files[i];
+            //鑾峰彇鏂囦欢鍚庣紑
+            String suffixName = ImagePreviewUtils.getSaveImagePath(mfile);
+            //鐢熸垚鏂版枃浠跺悕绉�
+            String newFileName = ImagePreviewUtils.getNewImageFileName(suffixName);
+            //淇濆瓨鏂囦欢
+            File file = new File(ImagePreviewUtils.getNewImagePath(newFileName));
+            boolean state = ImagePreviewUtils.saveImage(mfile, file);
+            if (state) {
+//                 list.add(ImageUtil.getNewImagePath(newFileName));
+                //淇濆瓨鏁版嵁搴撶殑鍥剧墖璺緞涓�  鐩稿璺緞
+                list.add("uploadimage/" + newFileName);
+            }
+        }
+        map.put("imgList", list);
+        return map;
+
+    }
+
+    //棰勮鍥剧墖
+    @RequestMapping("previewImage")
+    @ApiOperation(value = "鏍规嵁鏂囦欢鍚嶅疄鐜伴瑙堝姛鑳�")
+    public void previewFile(
+            HttpServletResponse response) throws IOException {
+        showImg("D:\\"+"images\\"+"20251022efda188c-56b3-4c38-9940-78d0b61b43a1.png", response);
+    }
+
+    public static void showImg(String path, HttpServletResponse response){
+        if(path!=null&&!path.equals("")){
+
+            try {
+                FileInputStream fis = new FileInputStream(path);
+                ServletOutputStream os = response.getOutputStream();
+
+                byte [] b = new byte[1024*8];
+                while(fis.read(b)!=-1){
+                    os.write(b);
+                }
+            } catch (FileNotFoundException e) {
+                e.printStackTrace();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+}
diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index f6a802f..f061841 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -13,12 +13,9 @@
 import com.core.common.DateUtils;
 import com.core.common.R;
 import com.zy.asrs.entity.LocDetl;
-import com.zy.asrs.entity.ManLocDetl;
 import com.zy.asrs.entity.Mat;
-import com.zy.asrs.entity.StockStatisDTO;
 import com.zy.asrs.mapper.LocDetlMapper;
 import com.zy.asrs.service.LocDetlService;
-import com.zy.asrs.service.ManLocDetlService;
 import com.zy.asrs.service.MatService;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -60,11 +57,27 @@
         if (!locNos.isEmpty()) {
             List<LocDetl> res = new ArrayList<>();
             for (String locNo : new HashSet<>(locNos)) {
-                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
-                if (!locDetls.isEmpty()) {
-                    res.addAll(locDetls);
+                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
+                    if (!locDetls.isEmpty()) {
+                        res.addAll(locDetls);
+                    }
                 }
-            }
+            return R.ok().add(res);
+        }
+        return R.parse(BaseRes.EMPTY);
+    }
+
+    @RequestMapping(value = "/locDetlOut/auth")
+    @ManagerAuth
+    public R stockOutListAll(@RequestParam(value = "matnrs[]",required = false) List<String> matnrs){
+        if (!matnrs.isEmpty()) {
+            List<LocDetl> res = new ArrayList<>();
+                for (String matnr : new HashSet<>(matnrs)) {
+                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr",matnr));
+                    if (!locDetls.isEmpty()) {
+                        res.addAll(locDetls);
+                    }
+                }
             return R.ok().add(res);
         }
         return R.parse(BaseRes.EMPTY);
diff --git a/src/main/java/com/zy/asrs/utils/ImagePreviewUtils.java b/src/main/java/com/zy/asrs/utils/ImagePreviewUtils.java
new file mode 100644
index 0000000..f132db4
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/ImagePreviewUtils.java
@@ -0,0 +1,48 @@
+package com.zy.asrs.utils;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.UUID;
+
+public class ImagePreviewUtils {
+    private final static String SAVE_IMAGE_PATH ="D:/images/";
+
+    //杩斿洖鏂囦欢鍚庣紑
+    public static String getSaveImagePath(MultipartFile file){
+        String originalFilename = file.getOriginalFilename();//鑾峰彇鍘熸枃浠跺悕
+        int indexOf = originalFilename.indexOf(".");
+        return originalFilename.substring(indexOf,originalFilename.length());
+    }
+
+    //淇濆瓨鍥剧墖
+    public static boolean saveImage(MultipartFile multipartFile, File file){
+        //鍒ゆ柇鏂囦欢澶规槸鍚﹀瓨鍦�  涓嶅瓨鍦ㄥ垯鍒涘缓
+        if (!file.getParentFile().exists()){
+            file.getParentFile().mkdirs();
+        }
+        try {
+            //浣跨敤姝ゆ柟娉曚繚瀛樺繀椤昏缁濆璺緞涓旀枃浠跺す蹇呴』宸插瓨鍦�  鍚﹀垯鎶ラ敊
+            multipartFile.transferTo(file);
+            return true;
+        }catch (IllegalStateException | IOException e){
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+    //鏂版枃浠跺悕
+    public static String getNewImageFileName(String suffix){
+        SimpleDateFormat adf = new SimpleDateFormat("yyyyMMdd");
+        String date = adf.format(new Date());
+        return date + UUID.randomUUID() + suffix;
+    }
+
+    //杩斿洖鍥剧墖淇濆瓨鍦板潃
+    public static String getNewImagePath(String name){
+        return SAVE_IMAGE_PATH + name;
+    }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 474bd63..945dfab 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,6 +24,9 @@
     multipart:
       maxFileSize: 100MB
       maxRequestSize: 100MB
+      enabled: true
+      file-size-threshold: 0B
+      location: D:\
 
 mybatis-plus:
   mapper-locations: classpath:mapper/*.xml
diff --git a/src/main/webapp/static/js/locDetl/locDetl.js b/src/main/webapp/static/js/locDetl/locDetl.js
index e54a513..d46cb7c 100644
--- a/src/main/webapp/static/js/locDetl/locDetl.js
+++ b/src/main/webapp/static/js/locDetl/locDetl.js
@@ -17,7 +17,7 @@
         ,{field: 'brand', align: 'center',title: '鍝佺墝', hide: true}
         ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
         ,{field: 'price', align: 'center',title: '鍗曚环', hide: true}
-        ,{field: 'sku', align: 'center',title: '绠�鍥�', hide: true}
+        ,{field: 'sku', align: 'center',title: '绠�鍥�', hide: false}
         ,{field: 'units', align: 'center',title: '鍗曚綅閲�', hide: true}
         ,{field: 'barcode', align: 'center',title: '鏉$爜', hide: true}
         ,{field: 'origin', align: 'center',title: '浜у湴', hide: true}
diff --git a/src/main/webapp/views/pakStore/locDetlQuery.html b/src/main/webapp/views/pakStore/locDetlQuery.html
index 1fd1dda..f47d520 100644
--- a/src/main/webapp/views/pakStore/locDetlQuery.html
+++ b/src/main/webapp/views/pakStore/locDetlQuery.html
@@ -64,7 +64,7 @@
         </div>
         <div class="layui-inline">
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿"  autocomplete="off">
+                <input class="layui-input" type="text" name="matnr" placeholder="鍟嗗搧妯″叿鍚嶇О"  autocomplete="off">
             </div>
         </div>
         <div class="layui-inline">
@@ -192,14 +192,17 @@
                         layer.msg("璇烽�夋嫨鏁版嵁", {icon: 2});
                         return;
                     }
-                    let locNos = [];
-                    data.forEach(function(elem) {
-                        locNos.push(elem.locNo);
-                    });
+                    // let locNos = [];
+                    let matnrs = [];
+                    // data.forEach(function(elem) {
+                    //     // locNos.push(elem.locNo);
+                    //     matnrs.push(elem.matnr);
+                    // });
                     $.ajax({
-                        url: baseUrl+"/locDetl/auth",
+                        url: baseUrl+"/locDetlOut/auth",
                         headers: {'token': localStorage.getItem('token')},
-                        data: {locNos:locNos},
+                        // data: {locNos:locNos,matnrs:matnrs},
+                        data: {matnrs},
                         method: 'POST',
                         async: false,
                         success: function (res) {

--
Gitblit v1.9.1