qt5107 před 2 roky
rodič
revize
8dd6ecb945

+ 6 - 5
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/warehouse/Warehouse.java

@@ -1,12 +1,9 @@
 package com.fjhx.entity.warehouse;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.Version;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.fjhx.base.BaseEntity;
-import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -50,5 +47,9 @@ public class Warehouse extends BaseEntity {
     @TableLogic
     private Integer delFlag;
 
-
+    /**
+     * 仓管员名称
+     */
+    @TableField(exist = false)
+    private String warehouseKeeperName;
 }

+ 85 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/enums/warehouse/WarehouseTypeEnum.java

@@ -0,0 +1,85 @@
+package com.fjhx.enums.warehouse;
+
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 仓库类型枚举
+ */
+public enum WarehouseTypeEnum {
+    WAREHOUSE_TYPE_1(1, "普通仓库"),
+    WAREHOUSE_TYPE_2(2, "京东仓库"),
+    WAREHOUSE_TYPE_3(3, "外场仓库"),
+    WAREHOUSE_TYPE_99(99, "其他"),
+    WAREHOUSE_TYPE_100(100, "处置仓"),
+    ;
+
+    private int key;
+
+    private String value;
+
+    private static Map<Integer, String> map = new LinkedHashMap<>();
+
+    private static final HashMap<Integer, WarehouseTypeEnum> classMap = new HashMap<>();
+
+    WarehouseTypeEnum(int key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+
+    static {
+        for (WarehouseTypeEnum value : WarehouseTypeEnum.values()) {
+            classMap.put(value.getKey(), value);
+        }
+    }
+
+    /**
+     * 根据type获取枚举
+     */
+    public static WarehouseTypeEnum get(Integer type) {
+        return classMap.get(type);
+    }
+
+    /**
+     * 获取枚举map
+     *
+     * @return
+     */
+    public static Map<Integer, String> getMap() {
+        if (Func.isNotEmpty(map)) {
+            return map;
+        }
+        for (WarehouseTypeEnum ms : values()) {
+            map.put(ms.key, ms.value);
+        }
+        return map;
+    }
+
+    /**
+     * 通过key获取名称
+     *
+     * @param key
+     * @return
+     */
+    public static String getNameByKey(Integer key) {
+        if (key == null || key < 0) {
+            return StringPool.EMPTY;
+        }
+        Map<Integer, String> map = getMap();
+        return map.getOrDefault(key, StringPool.EMPTY);
+    }
+
+    public int getKey() {
+        return key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+}

+ 5 - 0
hx-service/victoriatourist/pom.xml

@@ -23,6 +23,11 @@
             <artifactId>victoriatourist-api</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>common-client-util</artifactId>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 5 - 5
hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/StockController.java

@@ -1,10 +1,10 @@
 package com.fjhx.controller.stock;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springblade.core.tool.api.R;
 import com.fjhx.entity.stock.Stock;
 import com.fjhx.params.stock.StockVo;
 import com.fjhx.service.stock.StockService;
+import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -29,25 +29,25 @@ public class StockController {
     private StockService stockService;
 
     @PostMapping("/page")
-    public R page(@RequestBody Map<String, String> condition){
+    public R page(@RequestBody Map<String, Object> condition) {
         Page<Stock> result = stockService.getPage(condition);
         return R.success(result);
     }
 
     @PostMapping("/add")
-    public R add(@RequestBody StockVo stockVo){
+    public R add(@RequestBody StockVo stockVo) {
         stockService.add(stockVo);
         return R.success();
     }
 
     @PostMapping("/edit")
-    public R edit(@RequestBody StockVo stockVo){
+    public R edit(@RequestBody StockVo stockVo) {
         stockService.edit(stockVo);
         return R.success();
     }
 
     @PostMapping("/delete")
-    public R delete(@RequestBody StockVo stockVo){
+    public R delete(@RequestBody StockVo stockVo) {
         stockService.delete(stockVo);
         return R.success();
     }

+ 9 - 5
hx-service/victoriatourist/src/main/java/com/fjhx/controller/warehouse/WarehouseController.java

@@ -1,10 +1,10 @@
 package com.fjhx.controller.warehouse;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springblade.core.tool.api.R;
 import com.fjhx.entity.warehouse.Warehouse;
 import com.fjhx.params.warehouse.WarehouseVo;
 import com.fjhx.service.warehouse.WarehouseService;
+import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -29,28 +29,32 @@ public class WarehouseController {
     private WarehouseService warehouseService;
 
     @PostMapping("/page")
-    public R page(@RequestBody Map<String, String> condition){
+    public R page(@RequestBody Map<String, Object> condition) {
         Page<Warehouse> result = warehouseService.getPage(condition);
         return R.success(result);
     }
 
     @PostMapping("/add")
-    public R add(@RequestBody WarehouseVo warehouseVo){
+    public R add(@RequestBody WarehouseVo warehouseVo) {
         warehouseService.add(warehouseVo);
         return R.success();
     }
 
     @PostMapping("/edit")
-    public R edit(@RequestBody WarehouseVo warehouseVo){
+    public R edit(@RequestBody WarehouseVo warehouseVo) {
         warehouseService.edit(warehouseVo);
         return R.success();
     }
 
     @PostMapping("/delete")
-    public R delete(@RequestBody WarehouseVo warehouseVo){
+    public R delete(@RequestBody WarehouseVo warehouseVo) {
         warehouseService.delete(warehouseVo);
         return R.success();
     }
 
+    @PostMapping("/details")
+    public R details(@RequestBody WarehouseVo warehouseVo) {
+        return R.data(warehouseService.getById(warehouseVo.getId()));
+    }
 }
 

+ 1 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/StockService.java

@@ -17,7 +17,7 @@ import java.util.Map;
  */
 public interface StockService extends BaseService<Stock> {
 
-    Page<Stock> getPage(Map<String, String> condition);
+    Page<Stock> getPage(Map<String, Object> condition);
 
     void add(StockVo stockVo);
 

+ 4 - 4
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockServiceImpl.java

@@ -3,12 +3,12 @@ package com.fjhx.service.stock.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.utils.WrapperUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.entity.stock.Stock;
-import com.fjhx.params.stock.StockVo;
 import com.fjhx.mapper.stock.StockMapper;
+import com.fjhx.params.stock.StockVo;
 import com.fjhx.service.stock.StockService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.utils.WrapperUtil;
 import org.springframework.stereotype.Service;
 
 import java.util.Map;
@@ -25,7 +25,7 @@ import java.util.Map;
 public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements StockService {
 
     @Override
-    public Page<Stock> getPage(Map<String, String> condition) {
+    public Page<Stock> getPage(Map<String, Object> condition) {
 
         QueryWrapper<Stock> wrapper = Wrappers.query();
 

+ 1 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/warehouse/WarehouseService.java

@@ -17,7 +17,7 @@ import java.util.Map;
  */
 public interface WarehouseService extends BaseService<Warehouse> {
 
-    Page<Warehouse> getPage(Map<String, String> condition);
+    Page<Warehouse> getPage(Map<String, Object> condition);
 
     void add(WarehouseVo warehouseVo);
 

+ 39 - 6
hx-service/victoriatourist/src/main/java/com/fjhx/service/warehouse/impl/WarehouseServiceImpl.java

@@ -3,14 +3,21 @@ package com.fjhx.service.warehouse.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.utils.WrapperUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.entity.stock.Stock;
 import com.fjhx.entity.warehouse.Warehouse;
-import com.fjhx.params.warehouse.WarehouseVo;
 import com.fjhx.mapper.warehouse.WarehouseMapper;
+import com.fjhx.params.warehouse.WarehouseVo;
+import com.fjhx.service.stock.StockService;
 import com.fjhx.service.warehouse.WarehouseService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.utils.UserClientUtil;
+import com.fjhx.utils.WrapperUtil;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -24,15 +31,35 @@ import java.util.Map;
 @Service
 public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse> implements WarehouseService {
 
+    @Autowired
+    private StockService stockService;
+
     @Override
-    public Page<Warehouse> getPage(Map<String, String> condition) {
+    public Page<Warehouse> getPage(Map<String, Object> condition) {
 
         QueryWrapper<Warehouse> wrapper = Wrappers.query();
 
-        WrapperUtil.init(condition, wrapper)
-                .createTimeDesc();
+        WrapperUtil.init(condition, wrapper);
+
+        //仓库类型
+        wrapper.lambda().eq(Func.isNotEmpty(condition.get("type")), Warehouse::getType, condition.get("type"));
+
+        //关键字
+        wrapper.and(Func.isNotEmpty(condition.get("keyword")), o -> o.apply("instr(`name`, '" + condition.get("keyword") + "') > 0").or().apply("instr(remarks, '" + condition.get("keyword") + "') > 0"));
+
+        //排序
+        wrapper.lambda().orderByAsc(Warehouse::getType).orderByAsc(Warehouse::getName);
 
         Page<Warehouse> page = page(condition, wrapper);
+        if (Func.isNotEmpty(page.getRecords())) {
+            //仓管员名称map
+            Map<Long, String> userNameMap = UserClientUtil.getUserNameMap(page.getRecords(), Warehouse::getWarehouseKeeperId);
+            for (Warehouse record : page.getRecords()) {
+                if (Func.isNotEmpty(userNameMap) && Func.isNotEmpty(userNameMap.get(record.getWarehouseKeeperId()))) {
+                    record.setWarehouseKeeperName(userNameMap.get(record.getWarehouseKeeperId()));
+                }
+            }
+        }
         return page;
     }
 
@@ -48,6 +75,12 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse
 
     @Override
     public void delete(WarehouseVo warehouseVo) {
+        //查询是否存在库存
+        List<Stock> list = stockService.lambdaQuery().eq(Stock::getWarehouseId, warehouseVo.getId()).list();
+        if (Func.isNotEmpty(list)) {
+            throw new ServiceException("该仓库下存在库存,无法删除!");
+        }
+
         removeById(warehouseVo.getId());
     }