From 9d6a02b54ea894771c48ff660d86b48990eccb7f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 09 八月 2025 09:48:03 +0800
Subject: [PATCH] Merge branch 'ycds-wms-dev' of http://47.97.1.152:5880/r/zy-asrs-master into ycds-wms-dev

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 54 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java
index 827f327..34718ae 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MatController.java
@@ -4,23 +4,22 @@
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.parser.Feature;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.R;
 import com.zy.asrs.framework.exception.CoolException;
-import com.zy.asrs.wms.asrs.entity.MatField;
-import com.zy.asrs.wms.asrs.entity.MatFieldValue;
-import com.zy.asrs.wms.asrs.entity.Tag;
+import com.zy.asrs.wms.asrs.entity.*;
 import com.zy.asrs.wms.asrs.entity.template.MatTemplate;
 import com.zy.asrs.wms.asrs.service.MatFieldService;
 import com.zy.asrs.wms.asrs.service.MatFieldValueService;
 import com.zy.asrs.wms.asrs.service.TagService;
+import com.zy.asrs.wms.asrs.service.impl.LocDetlServiceImpl;
 import com.zy.asrs.wms.common.annotation.CacheData;
 import com.zy.asrs.wms.common.annotation.OperationLog;
 import com.zy.asrs.wms.common.domain.BaseParam;
 import com.zy.asrs.wms.common.domain.KeyValVo;
 import com.zy.asrs.wms.common.domain.PageParam;
-import com.zy.asrs.wms.asrs.entity.Mat;
 import com.zy.asrs.wms.asrs.service.MatService;
 import com.zy.asrs.wms.system.controller.BaseController;
 import com.zy.asrs.wms.utils.ExcelUtil;
@@ -32,6 +31,7 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/api")
@@ -45,6 +45,8 @@
     private MatFieldValueService matFieldValueService;
     @Autowired
     private TagService tagService;
+    @Autowired
+    private LocDetlServiceImpl locDetlService;
 
     @PreAuthorize("hasAuthority('asrs:mat:list')")
     @PostMapping("/mat/page")
@@ -52,7 +54,9 @@
     public R page(@RequestBody Map<String, Object> map) {
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<Mat, BaseParam> pageParam = new PageParam<>(baseParam, Mat.class);
-        PageParam<Mat, BaseParam> page = matService.page(pageParam, pageParam.buildWrapper(true));
+        QueryWrapper<Mat> queryWrapper = pageParam.buildWrapper(true);
+        queryWrapper.orderByDesc("utiliz");
+        PageParam<Mat, BaseParam> page = matService.page(pageParam, queryWrapper);
 
         JSONObject data = JSON.parseObject(JSON.toJSONString(page));
 
@@ -66,6 +70,44 @@
 
         return R.ok().add(data);
     }
+
+
+    /**
+     * @author Ryan
+     * @date 2025/7/3
+     * @description: 鑾峰彇鍙嚭搴撶墿鏂欎俊鎭�
+     * @version 1.0
+     */
+    @PreAuthorize("hasAuthority('asrs:mat:list')")
+    @PostMapping("/locs/mats/page")
+    public R getOutPage(@RequestBody Map<String, Object> param) {
+        List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>().select(LocDetl::getMatId));
+        if (locDetls.isEmpty()) {
+            return R.ok();
+        }
+        /**鑾峰彇瀛樼墿鏂欎俊鎭�*/
+        Set<Long> ids = locDetls.stream().map(LocDetl::getMatId).collect(Collectors.toSet());
+
+        BaseParam baseParam = buildParam(param, BaseParam.class);
+        PageParam<Mat, BaseParam> pageParam = new PageParam<>(baseParam, Mat.class);
+        QueryWrapper<Mat> queryWrapper = pageParam.buildWrapper(true);
+        queryWrapper.orderByDesc("utiliz");
+        queryWrapper.in("id", ids);
+
+        PageParam<Mat, BaseParam> page = matService.page(pageParam, queryWrapper);
+
+        JSONObject data = JSON.parseObject(JSON.toJSONString(page));
+
+        List<Mat> records = page.getRecords();
+        data.put("records", records);
+        for (Mat mat : records) {
+            List<MatFieldValue> list = matFieldValueService.list(new LambdaQueryWrapper<MatFieldValue>()
+                    .eq(MatFieldValue::getMatId, mat.getId()));
+            mat.syncField(list);
+        }
+        return R.ok(data);
+    }
+
 
     @PreAuthorize("hasAuthority('asrs:mat:list')")
     @PostMapping("/mat/list")
@@ -86,6 +128,13 @@
     @PostMapping("/mat/save")
     public R save(@RequestBody HashMap<String,Object> param) {
         Mat mat = JSON.parseObject(JSON.toJSONString(param), Mat.class, Feature.DisableCircularReferenceDetect);
+        if (Objects.isNull(mat)) {
+            throw new CoolException("鐗╂枡涓嶈兘涓虹┖锛侊紒");
+        }
+        Mat mat1 = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, mat.getMatnr()));
+        if (!Objects.isNull(mat1)) {
+            throw new CoolException("褰撳墠鐗╂枡缂栫爜宸插瓨鍦紝涓嶅彲閲嶅娣诲姞锛侊紒");
+        }
         if (!matService.save(mat)) {
             return R.error("娣诲姞澶辫触");
         }

--
Gitblit v1.9.1