From 7737c1a11778a236592ff3677d54a44776fd440f Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期六, 11 十月 2025 15:15:46 +0800
Subject: [PATCH] 容器管理初始化功能

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/BasContainerServiceImpl.java |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/BasContainerServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/BasContainerServiceImpl.java
index 5f36b75..b2c69ed 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/BasContainerServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/BasContainerServiceImpl.java
@@ -1,12 +1,79 @@
 package com.vincent.rsf.server.manager.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.manager.controller.params.InitContainerParams;
+import com.vincent.rsf.server.manager.entity.WarehouseAreas;
+import com.vincent.rsf.server.manager.enums.QRCodeType;
 import com.vincent.rsf.server.manager.mapper.BasContainerMapper;
 import com.vincent.rsf.server.manager.entity.BasContainer;
 import com.vincent.rsf.server.manager.service.BasContainerService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vincent.rsf.server.manager.service.WarehouseAreasService;
+import org.apache.tika.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
 
 @Service("basContainerService")
 public class BasContainerServiceImpl extends ServiceImpl<BasContainerMapper, BasContainer> implements BasContainerService {
 
+    @Autowired
+    private WarehouseAreasService warehouseAreasService;
+
+
+    /**
+     * 瀹瑰櫒鍒濆鍖�
+     *
+     * @param params
+     * @param loginUserId
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R init(InitContainerParams params, Long loginUserId) {
+        if (Objects.isNull(params.getStartNo())) {
+            throw new CoolException("瀹瑰櫒璧峰鍊间笉鑳戒负绌猴紒锛�");
+        }
+        if (Objects.isNull(params.getEndNo())) {
+            throw new CoolException("瀹瑰櫒缁撴潫鍊间笉鑳戒负绌猴紒锛�");
+        }
+
+        WarehouseAreas areas = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getId, 42L));
+        if (Objects.isNull(areas)) {
+            throw new CoolException("搴撳尯涓嶅瓨鍦紝璇疯仈绯荤鐞嗗憳锛侊紒");
+        }
+
+        if (params.getFlagInit()) {
+            this.remove(new LambdaQueryWrapper<>());
+        }
+
+        List<BasContainer> containerList = new ArrayList<>();
+        for (int i = params.getStartNo(); i <= params.getEndNo() ; i++) {
+            BasContainer container = new BasContainer();
+            String code = StringUtils.leftPad(i + "", params.getLength(), "0");
+
+            container.setAreas(areas.getName())
+                    .setCodeType(QRCodeType.QRCODE_TYPE_BARCODE.desc)
+                    .setCode(params.getPrefix() + code)
+                    .setCreateTime(new Date())
+                    .setCreateBy(loginUserId)
+                    .setUpdateBy(loginUserId)
+                    .setUpdateTime(new Date())
+                    .setContainerType(params.getContainerType());
+            containerList.add(container);
+        }
+
+        if (!this.saveBatch(containerList)) {
+            throw new CoolException("瀹瑰櫒淇濆瓨澶辫触,璇锋鏌ョ紪鐮佹槸鍚︽湁閲嶅锛侊紒");
+        }
+
+        return R.ok();
+    }
 }

--
Gitblit v1.9.1