From 817683f9935a6343e954ffe7fd0eeae46e55d29c Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期四, 01 一月 2026 15:27:42 +0800
Subject: [PATCH] AGV下单

---
 src/main/java/com/zy/asrs/controller/LocDetlController.java |  125 +++++++++++++++++++++++++----------------
 1 files changed, 77 insertions(+), 48 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index 619459d..4020040 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -24,6 +24,7 @@
 import com.zy.asrs.service.LocOwnerService;
 import com.zy.asrs.service.MatService;
 import com.zy.common.web.BaseController;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -128,12 +129,19 @@
     @RequestMapping(value = "/locDetl/{id}/auth")
     @ManagerAuth
     public R get(@PathVariable("id") String id) {
-        return R.ok(locDetlService.selectById(String.valueOf(id)));
+        // asr_loc_detl 琛ㄦ病鏈� id 涓婚敭锛屼娇鐢� loc_no 鏌ヨ
+        // 娉ㄦ剰锛氫竴涓� loc_no 鍙兘瀵瑰簲澶氭潯璁板綍锛岃繑鍥炵涓�鏉�
+        List<LocDetl> list = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", id).last("limit 1"));
+        if (!list.isEmpty()) {
+            return R.ok(list.get(0));
+        }
+        // 杩斿洖 null 鑰屼笉鏄敊璇紝閬垮厤鍓嶇瑙f瀽澶辫触
+        return R.ok(null);
     }
 
     @RequestMapping(value = "/locDetl/auth")
     @ManagerAuth
-    public R stockOutList(@RequestParam(value = "locNos[]") List<String> locNos){
+    public R stockOutList(@RequestParam(value = "locNos[]") List<String> locNos) {
         if (!locNos.isEmpty()) {
             List<LocDetl> res = new ArrayList<>();
             for (String locNo : new HashSet<>(locNos)) {
@@ -149,10 +157,10 @@
 
     @RequestMapping(value = "/stock/out/list/auth")
     @ManagerAuth
-    public R stockOutList(@RequestParam(defaultValue = "1")Integer curr,
-                          @RequestParam(defaultValue = "10")Integer limit,
-                          @RequestParam Map<String, Object> param){
-        if (!Cools.isEmpty(param.get("modi_time"))){
+    public R stockOutList(@RequestParam(defaultValue = "1") Integer curr,
+                          @RequestParam(defaultValue = "10") Integer limit,
+                          @RequestParam Map<String, Object> param) {
+        if (!Cools.isEmpty(param.get("modi_time"))) {
             String val = String.valueOf(param.get("modi_time"));
             if (val.contains(RANGE_TIME_LINK)) {
                 String[] dates = val.split(RANGE_TIME_LINK);
@@ -162,7 +170,7 @@
             }
         }
         Page<LocDetl> stockOut = locDetlService.getStockOut(toPage(curr, limit, param, LocDetl.class));
-        if (stockOut.getRecords().size()==0){
+        if (stockOut.getRecords().size() == 0) {
             stockOut = locDetlService.getStockOut(toPage(1, limit, param, LocDetl.class));
         }
         return R.ok(stockOut);
@@ -170,12 +178,12 @@
 
     @RequestMapping(value = "/locDetl/list/auth")// /locDetl/list/auth 鎺ュ彛闂
     @ManagerAuth
-    public R list(@RequestParam(defaultValue = "1")Integer curr,
-                  @RequestParam(defaultValue = "10")Integer limit,
-                  @RequestParam(required = false)String orderByField,
-                  @RequestParam(required = false)String orderByType,
-                  @RequestParam(required = false)String condition,
-                  @RequestParam Map<String, Object> param){
+    public R list(@RequestParam(defaultValue = "1") Integer curr,
+                  @RequestParam(defaultValue = "10") Integer limit,
+                  @RequestParam(required = false) String orderByField,
+                  @RequestParam(required = false) String orderByType,
+                  @RequestParam(required = false) String condition,
+                  @RequestParam Map<String, Object> param) {
 //        String row = "";
         EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
 //        if (param.get("row") != null) {
@@ -191,7 +199,9 @@
         excludeTrash(param);
         convert(param, wrapper);
         allLike(LocDetl.class, param.keySet(), wrapper, condition);
-        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        if (!Cools.isEmpty(orderByField)) {
+            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+        }
 //        if (!row.equals("")){
 //            wrapper.and()
 //                    .where("loc_no like '" +row +"%'");
@@ -200,10 +210,10 @@
     }
 
 
-    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
-        for (Map.Entry<String, Object> entry : map.entrySet()){
+    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
             String val = String.valueOf(entry.getValue());
-            if (val.contains(RANGE_TIME_LINK)){
+            if (val.contains(RANGE_TIME_LINK)) {
                 String[] dates = val.split(RANGE_TIME_LINK);
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
@@ -228,26 +238,42 @@
         return R.ok();
     }
 
-	@RequestMapping(value = "/locDetl/update/auth")
-	@ManagerAuth(memo = "搴撲綅鏄庣粏淇敼")
-    public R update(LocDetl locDetl){
-        if (Cools.isEmpty(locDetl) || null==locDetl.getMatnr()){
-            return R.error();
+    @RequestMapping(value = "/locDetl/update/auth")
+    @ManagerAuth(memo = "搴撲綅鏄庣粏淇敼")
+    public R update(LocDetl locDetl) {
+        if (Cools.isEmpty(locDetl) || null == locDetl.getMatnr() || Cools.isEmpty(locDetl.getLocNo())) {
+            return R.error("鍙傛暟涓嶅畬鏁达紝闇�瑕� locNo 鍜� matnr");
         }
         locDetl.setModiUser(getUserId());
         locDetl.setModiTime(new Date());
-        locDetlService.updateById(locDetl);
-        return R.ok();
+        
+        // asr_loc_detl 琛ㄦ病鏈� id 涓婚敭锛屼娇鐢� EntityWrapper 鏍规嵁 loc_no 鍜� matnr 鏇存柊
+        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+        wrapper.eq("loc_no", locDetl.getLocNo());
+        wrapper.eq("matnr", locDetl.getMatnr());
+        
+        // 濡傛灉鏈夋壒娆′俊鎭紝涔熷姞鍏ユ潯浠�
+        if (!Cools.isEmpty(locDetl.getBatch())) {
+            wrapper.eq("batch", locDetl.getBatch());
+        } else {
+            wrapper.andNew("(batch IS NULL OR batch = '')");
+        }
+        
+        boolean result = locDetlService.update(locDetl, wrapper);
+        if (result) {
+            return R.ok();
+        }
+        return R.error("鏇存柊澶辫触锛屾湭鎵惧埌鍖归厤鐨勮褰�");
     }
 
     @RequestMapping(value = "/locDetl/delete/auth")
     @ManagerAuth(memo = "搴撲綅鏄庣粏鍒犻櫎")
-    public R delete(@RequestParam String param){
+    public R delete(@RequestParam String param) {
         List<LocDetl> list = JSONArray.parseArray(param, LocDetl.class);
-        if (Cools.isEmpty(list)){
+        if (Cools.isEmpty(list)) {
             return R.error();
         }
-        for (LocDetl entity : list){
+        for (LocDetl entity : list) {
             locDetlService.delete(new EntityWrapper<>(entity));
         }
         return R.ok();
@@ -255,8 +281,8 @@
 
     @PostMapping(value = "/locDetl/frozenInventory")
     @ManagerAuth(memo = "搴撳瓨鍐荤粨")
-    public R frozen(@RequestBody List<FrozenParam> param){
-        if (param.size() == 0)  {
+    public R frozen(@RequestBody List<FrozenParam> param) {
+        if (param.size() == 0) {
             return R.parse("鏈敹鍒版暟鎹�");
         }
 
@@ -265,8 +291,8 @@
 
     @PostMapping(value = "/locDetl/unfreezeInventory")
     @ManagerAuth(memo = "搴撳瓨瑙e喕")
-    public R unfreeze(@RequestBody List<FrozenParam> param){
-        if (param.size() == 0)  {
+    public R unfreeze(@RequestBody List<FrozenParam> param) {
+        if (param.size() == 0) {
             return R.parse("鏈敹鍒版暟鎹�");
         }
 
@@ -275,7 +301,7 @@
 
     @RequestMapping(value = "/locDetl/export/auth")
     @ManagerAuth(memo = "搴撲綅鏄庣粏瀵煎嚭")
-    public R export(@RequestBody JSONObject param){
+    public R export(@RequestBody JSONObject param) {
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
         EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
         Map<String, Object> map = excludeTrash(param.getJSONObject("locDetl"));
@@ -306,7 +332,7 @@
             if (Cools.isEmpty(mat)) {
                 continue;
             }
-            if (!Cools.isEmpty(mat                                                                          .getStoreMax()) || !Cools.isEmpty(mat.getStoreMin())) {
+            if (!Cools.isEmpty(mat.getStoreMax()) || !Cools.isEmpty(mat.getStoreMin())) {
                 abnormalLocDetlParam.setStoreMax(mat.getStoreMax());
                 abnormalLocDetlParam.setStoreMaxDate(mat.getStoreMaxDate());
                 abnormalLocDetlParam.setStoreMin(mat.getStoreMin());
@@ -335,15 +361,15 @@
 
     @RequestMapping(value = "/locDetl/selectOwner/list/auth")
     @ManagerAuth
-    public R selectOwnerlist(@RequestParam(defaultValue = "1")Integer curr,
-                             @RequestParam(defaultValue = "10")Integer limit,
-                             @RequestParam(required = false)String orderByField,
-                             @RequestParam(required = false)String orderByType,
-                             @RequestParam Map<String, Object> param){
+    public R selectOwnerlist(@RequestParam(defaultValue = "1") Integer curr,
+                             @RequestParam(defaultValue = "10") Integer limit,
+                             @RequestParam(required = false) String orderByField,
+                             @RequestParam(required = false) String orderByType,
+                             @RequestParam Map<String, Object> param) {
         Integer owner = null;
-        if (param.get("owner$") != null && param.get("owner$") != ""){
+        if (param.get("owner$") != null && param.get("owner$") != "") {
             LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().like("owner", (String) param.get("owner$")));
-            if(locOwner == null){
+            if (locOwner == null) {
                 return R.error("鍙傛暟鏈夎锛�");
             }
             param.remove("owner$");
@@ -369,7 +395,7 @@
         Page<LocDetlAll> page = new Page<>();
         page.setRecords(list);
         page.setTotal(count);
-        if (list.size()==0){
+        if (list.size() == 0) {
             locDetlDTO.setPageNumber(1);
             list = locDetlService.selectAllOwner(locDetlDTO);
             count = locDetlService.selectAllCount(locDetlDTO);
@@ -387,7 +413,7 @@
         wrapper.like("matnr", condition);
         Page<LocDetl> page = locDetlService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
-        for (LocDetl locDetl : page.getRecords()){
+        for (LocDetl locDetl : page.getRecords()) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", locDetl.getMatnr());
             map.put("value", locDetl.getMatnr());
@@ -400,7 +426,7 @@
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
         Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != locDetlService.selectOne(wrapper)){
+        if (null != locDetlService.selectOne(wrapper)) {
             return R.parse(BaseRes.REPEAT).add(getComment(LocDetl.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
@@ -408,14 +434,15 @@
 
     @RequestMapping(value = "/locDetl/statis/auth")
     @ManagerAuth
-    public R statis(@RequestParam(defaultValue = "1")Integer curr,
-                    @RequestParam(defaultValue = "10")Integer limit,
+    public R statis(@RequestParam(defaultValue = "1") Integer curr,
+                    @RequestParam(defaultValue = "10") Integer limit,
                     @RequestParam Map<String, Object> param) {
         Page<LocDetl> stockStatis = locDetlService.getStockStatis(toPage(curr, limit, param, LocDetl.class));
         for (LocDetl locDetl : stockStatis.getRecords()) {
             Mat mat = matService.selectByMatnr(locDetl.getMatnr());
             if (mat != null) {
-                locDetl.sync(mat);
+                BeanUtils.copyProperties(mat, locDetl);
+//                locDetl.sync(mat);
             }
         }
         return R.ok().add(stockStatis);
@@ -431,7 +458,8 @@
         for (LocDetl locDetl : excel) {
             Mat mat = matService.selectByMatnr(locDetl.getMatnr());
             if (mat != null) {
-                locDetl.sync(mat);
+                BeanUtils.copyProperties(mat, locDetl);
+//                locDetl.sync(mat);
             }
         }
         response.setContentType("application/vnd.ms-excel");
@@ -446,10 +474,11 @@
 
     /**
      * 鑾峰彇搴撳瓨鎬绘暟
+     *
      * @return
      */
     @RequestMapping("/locDetl/count")
-    public R getAllCount(){
+    public R getAllCount() {
         Integer sum = locDetlService.sum();
         return R.ok(sum);
     }

--
Gitblit v1.9.1