From ebd2f4397a92c6a5096de1b86d59154363344720 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 13 五月 2025 08:48:15 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/LocController.java |   82 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 80 insertions(+), 2 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/LocController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/LocController.java
index fe87973..bf5b8a7 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/LocController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/LocController.java
@@ -2,15 +2,20 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zy.acs.common.utils.Utils;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.framework.common.R;
-import com.zy.acs.manager.common.utils.ExcelUtil;
+import com.zy.acs.framework.exception.CoolException;
 import com.zy.acs.manager.common.annotation.OperationLog;
 import com.zy.acs.manager.common.domain.BaseParam;
 import com.zy.acs.manager.common.domain.KeyValVo;
 import com.zy.acs.manager.common.domain.PageParam;
+import com.zy.acs.manager.common.utils.ExcelUtil;
+import com.zy.acs.manager.manager.controller.param.LocInitParam;
 import com.zy.acs.manager.manager.entity.Loc;
+import com.zy.acs.manager.manager.entity.Zone;
 import com.zy.acs.manager.manager.service.LocService;
+import com.zy.acs.manager.manager.service.ZoneService;
 import com.zy.acs.manager.system.controller.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -18,6 +23,7 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/api")
@@ -25,13 +31,15 @@
 
     @Autowired
     private LocService locService;
+    @Autowired
+    private ZoneService zoneService;
 
     @PreAuthorize("hasAuthority('manager:loc:list')")
     @PostMapping("/loc/page")
     public R page(@RequestBody Map<String, Object> map) {
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<Loc, BaseParam> pageParam = new PageParam<>(baseParam, Loc.class);
-        return R.ok().add(locService.page(pageParam, pageParam.buildWrapper(true)));
+        return R.ok().add(locService.page(pageParam, pageParam.buildWrapper(false)));
     }
 
     @PreAuthorize("hasAuthority('manager:loc:list')")
@@ -78,6 +86,22 @@
         return R.ok("Update Success").add(loc);
     }
 
+    @PreAuthorize("hasAuthority('manager:loc:update')")
+    @OperationLog("Update Loc")
+    @PostMapping("/loc/update/many")
+    public R updateMany(@RequestBody List<Loc> locList) {
+        if (!Cools.isEmpty(locList)) {
+            for (Loc loc : locList) {
+                loc.setUpdateBy(getLoginUserId());
+                loc.setUpdateTime(new Date());
+                if (!locService.updateById(loc)) {
+                    return R.error("Update Fail");
+                }
+            }
+        }
+        return R.ok("Update Success").add(locList.stream().map(Loc::getId).collect(Collectors.toList()));
+    }
+
     @PreAuthorize("hasAuthority('manager:loc:remove')")
     @OperationLog("Delete Loc")
     @PostMapping("/loc/remove/{ids}")
@@ -108,4 +132,58 @@
         ExcelUtil.build(ExcelUtil.create(locService.list(), Loc.class), response);
     }
 
+    @PreAuthorize("hasAuthority('manager:loc:save')")
+    @OperationLog
+    @PostMapping("/loc/init")
+    public R init(@RequestBody LocInitParam param) {
+        if (param.getStartRow() > param.getEndRow()) {
+            return R.error("the start row cannot be greater than the end row !");
+        }
+        if (param.getStartBay() > param.getEndBay()) {
+            return R.error("the start bay cannot be greater than the end bay !");
+        }
+        if (param.getStartLev() > param.getEndLev()) {
+            return R.error("the start lev cannot be greater than the end lev !");
+        }
+        Zone zone = zoneService.getById(param.getZoneId());
+        for (int r = param.getStartRow(); r <= param.getEndRow(); r++) {
+            for (int b = param.getStartBay(); b <= param.getEndBay(); b++) {
+                for (int l = param.getStartLev(); l <= param.getEndLev(); l++) {
+                    String locNo = Utils.zeroFill(zone.getUuid(), 2) + String.format("%03d", r) + String.format("%03d", b) + String.format("%02d", l);
+                    double offset = param.getBottom() + ((l-1) * param.getLevOffset());
+                    Loc loc = new Loc(
+                            locNo,    // 缂栧彿
+                            zone.getId(),    // 搴撳尯
+                            locNo,    // 搴撲綅缂栧彿
+                            null,    // 鍚嶇О
+                            null,    // 鏉$爜
+                            param.getLocSts(),    // 搴撲綅鐘舵��
+                            offset,    // 鍋忕Щ閲�
+                            r,    // 鎺�
+                            b,    // 鍒�
+                            l,    // 灞�
+                            null,    // 鎵樼洏鐮�
+                            param.getLocType(),    // 搴撲綅绫诲瀷
+                            null,    // 鐘舵�乕闈炵┖]
+                            null,    // 鏄惁鍒犻櫎[闈炵┖]
+                            null,    // 绉熸埛
+                            getLoginUserId(),    // 娣诲姞浜哄憳
+                            null,    // 娣诲姞鏃堕棿[闈炵┖]
+                            getLoginUserId(),    // 淇敼浜哄憳
+                            null,    // 淇敼鏃堕棿
+                            null    // 澶囨敞
+                    );
+                    loc.setCompDirect(param.getCompDirect());
+                    if (locService.count(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, locNo)) > 0) {
+                        throw new CoolException(locNo + " location has exist !");
+                    }
+                    if (!locService.save(loc)) {
+                        throw new CoolException(locNo + "location save fail !");
+                    }
+                }
+            }
+        }
+        return R.ok("initialize success");
+    }
+
 }

--
Gitblit v1.9.1