24282 преди 1 година
родител
ревизия
6e37df03c5

+ 34 - 0
sd-business/src/main/java/com/sd/business/controller/inventory/InventoryController.java

@@ -3,14 +3,24 @@ package com.sd.business.controller.inventory;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.annotation.NonInterception;
 import com.sd.business.entity.inventory.dto.InventorySelectDto;
+import com.sd.business.entity.inventory.dto.QuantityByDepartmentDto;
+import com.sd.business.entity.inventory.dto.QuantityByWarehouseDto;
+import com.sd.business.entity.inventory.dto.QuantityDto;
 import com.sd.business.entity.inventory.vo.InventoryVo;
+import com.sd.business.entity.inventory.vo.QuantityByDepartmentVo;
+import com.sd.business.entity.inventory.vo.QuantityByWarehouseVo;
 import com.sd.business.service.inventory.InventoryService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * <p>
@@ -44,4 +54,28 @@ public class InventoryController {
         inventoryService.exportExcel(dto);
     }
 
+    /**
+     * 查询库存
+     */
+    @PostMapping("/getQuantity")
+    public Map<Long, BigDecimal> getQuantity(@Validated @RequestBody QuantityDto dto) {
+        return inventoryService.getQuantity(dto);
+    }
+
+    /**
+     * 根据仓库获取库存数量
+     */
+    @PostMapping("/getQuantityByWarehouse")
+    public List<QuantityByWarehouseVo> getQuantityByWarehouse(@RequestBody QuantityByWarehouseDto dto) {
+        return inventoryService.getQuantityByWarehouse(dto);
+    }
+
+    /**
+     * 根据事业部获取库存数量
+     */
+    @PostMapping("/getQuantityByDepartment")
+    public List<QuantityByDepartmentVo> getQuantityByDepartment(@RequestBody QuantityByDepartmentDto dto) {
+        return inventoryService.getQuantityByDepartment(dto);
+    }
+
 }

+ 15 - 0
sd-business/src/main/java/com/sd/business/entity/inventory/dto/QuantityByDepartmentDto.java

@@ -0,0 +1,15 @@
+package com.sd.business.entity.inventory.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class QuantityByDepartmentDto {
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+}

+ 15 - 0
sd-business/src/main/java/com/sd/business/entity/inventory/dto/QuantityByWarehouseDto.java

@@ -0,0 +1,15 @@
+package com.sd.business.entity.inventory.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class QuantityByWarehouseDto {
+
+    /**
+     * 事业部id
+     */
+    private Long departmentId;
+
+}

+ 32 - 0
sd-business/src/main/java/com/sd/business/entity/inventory/dto/QuantityDto.java

@@ -0,0 +1,32 @@
+package com.sd.business.entity.inventory.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Getter
+@Setter
+public class QuantityDto {
+
+    /**
+     * 事业部id
+     */
+    @NotNull(message = "事业部id不能为空")
+    private Long departmentId;
+
+    /**
+     * 仓库id
+     */
+    @NotNull(message = "仓库id不能为空")
+    private Long warehouseId;
+
+    /**
+     * bom规格id列表
+     */
+    @NotEmpty(message = "bom规格id列表不能为空")
+    private List<Long> bomSpecIdList;
+
+}

+ 27 - 0
sd-business/src/main/java/com/sd/business/entity/inventory/vo/QuantityByDepartmentVo.java

@@ -0,0 +1,27 @@
+package com.sd.business.entity.inventory.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+public class QuantityByDepartmentVo {
+
+    /**
+     * 库存数量
+     */
+    private BigDecimal inventoryQuantity;
+
+    /**
+     * 事业部id
+     */
+    private Long departmentId;
+
+    /**
+     * 事业部名称
+     */
+    private String departmentName;
+
+}

+ 27 - 0
sd-business/src/main/java/com/sd/business/entity/inventory/vo/QuantityByWarehouseVo.java

@@ -0,0 +1,27 @@
+package com.sd.business.entity.inventory.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+public class QuantityByWarehouseVo {
+
+    /**
+     * 库存数量
+     */
+    private BigDecimal inventoryQuantity;
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 仓库名称
+     */
+    private String warehouseName;
+
+}

+ 24 - 0
sd-business/src/main/java/com/sd/business/service/inventory/InventoryService.java

@@ -3,8 +3,17 @@ package com.sd.business.service.inventory;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.service.BaseService;
 import com.sd.business.entity.inventory.dto.InventorySelectDto;
+import com.sd.business.entity.inventory.dto.QuantityByDepartmentDto;
+import com.sd.business.entity.inventory.dto.QuantityByWarehouseDto;
+import com.sd.business.entity.inventory.dto.QuantityDto;
 import com.sd.business.entity.inventory.po.Inventory;
 import com.sd.business.entity.inventory.vo.InventoryVo;
+import com.sd.business.entity.inventory.vo.QuantityByDepartmentVo;
+import com.sd.business.entity.inventory.vo.QuantityByWarehouseVo;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -27,4 +36,19 @@ public interface InventoryService extends BaseService<Inventory> {
      */
     void exportExcel(InventorySelectDto dto);
 
+    /**
+     * 查询库存
+     */
+    Map<Long, BigDecimal> getQuantity(QuantityDto dto);
+
+    /**
+     * 根据仓库获取库存数量
+     */
+    List<QuantityByWarehouseVo> getQuantityByWarehouse(QuantityByWarehouseDto dto);
+
+    /**
+     * 根据事业部获取库存数量
+     */
+    List<QuantityByDepartmentVo> getQuantityByDepartment(QuantityByDepartmentDto dto);
+
 }

+ 49 - 0
sd-business/src/main/java/com/sd/business/service/inventory/impl/InventoryServiceImpl.java

@@ -7,8 +7,13 @@ import com.sd.business.entity.bom.po.Bom;
 import com.sd.business.entity.bom.po.BomSpec;
 import com.sd.business.entity.department.po.Department;
 import com.sd.business.entity.inventory.dto.InventorySelectDto;
+import com.sd.business.entity.inventory.dto.QuantityByDepartmentDto;
+import com.sd.business.entity.inventory.dto.QuantityByWarehouseDto;
+import com.sd.business.entity.inventory.dto.QuantityDto;
 import com.sd.business.entity.inventory.po.Inventory;
 import com.sd.business.entity.inventory.vo.InventoryVo;
+import com.sd.business.entity.inventory.vo.QuantityByDepartmentVo;
+import com.sd.business.entity.inventory.vo.QuantityByWarehouseVo;
 import com.sd.business.entity.warehouse.po.Warehouse;
 import com.sd.business.mapper.inventory.InventoryMapper;
 import com.sd.business.service.inventory.InventoryService;
@@ -18,8 +23,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -82,4 +89,46 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
         ExcelUtil.export(response, DateUtil.format(new Date(), "yyyy-MM-dd库存数据"), "库存数据", list, InventoryVo.class);
     }
 
+    @Override
+    public Map<Long, BigDecimal> getQuantity(QuantityDto dto) {
+        return mapKV(Inventory::getBomSpecId, Inventory::getQuantity, q -> q
+                .eq(Inventory::getWarehouseId, dto.getWarehouseId())
+                .eq(Inventory::getDepartmentId, dto.getDepartmentId())
+                .in(Inventory::getBomSpecId, dto.getBomSpecIdList()));
+    }
+
+    @Override
+    public List<QuantityByWarehouseVo> getQuantityByWarehouse(QuantityByWarehouseDto dto) {
+
+        return Sql.create(QuantityByWarehouseVo.class)
+                .sum(Inventory::getQuantity, QuantityByWarehouseVo::getInventoryQuantity)
+                .selectAs(Warehouse::getId, QuantityByWarehouseVo::getWarehouseId)
+                .selectAs(Warehouse::getName, QuantityByWarehouseVo::getWarehouseName)
+
+                .from(Inventory.class)
+                .innerJoin(Warehouse.class, Warehouse::getId, Inventory::getId)
+
+                .eq(Inventory::getDepartmentId, dto.getDepartmentId())
+                .groupBy(Warehouse::getId)
+                .orderByAsc(Warehouse::getId)
+                .list();
+    }
+
+    @Override
+    public List<QuantityByDepartmentVo> getQuantityByDepartment(QuantityByDepartmentDto dto) {
+
+        return Sql.create(QuantityByDepartmentVo.class)
+                .sum(Inventory::getQuantity, QuantityByDepartmentVo::getInventoryQuantity)
+                .selectAs(Department::getId, QuantityByDepartmentVo::getDepartmentId)
+                .selectAs(Department::getName, QuantityByDepartmentVo::getDepartmentName)
+
+                .from(Inventory.class)
+                .innerJoin(Department.class, Department::getId, Inventory::getDepartmentId)
+
+                .eq(Inventory::getWarehouseId, dto.getWarehouseId())
+                .groupBy(Department::getId)
+                .orderByAsc(Department::getId)
+                .list();
+    }
+
 }

+ 12 - 0
sd-business/src/main/java/com/sd/business/service/upload/ObsUploadService.java

@@ -0,0 +1,12 @@
+package com.sd.business.service.upload;
+
+import java.io.ByteArrayInputStream;
+
+/**
+ * 文件上传服务
+ */
+public interface ObsUploadService {
+
+    String uploadFileByte(ByteArrayInputStream bis, String fileName);
+
+}

+ 6 - 4
sd-business/src/main/java/com/sd/business/upload/ObsUploadService.java → sd-business/src/main/java/com/sd/business/service/upload/impl/ObsUploadServiceImpl.java

@@ -1,4 +1,4 @@
-package com.sd.business.upload;
+package com.sd.business.service.upload.impl;
 
 
 import cn.hutool.core.date.DateUtil;
@@ -8,8 +8,9 @@ import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.obs.services.ObsClient;
 import com.ruoyi.common.exception.ServiceException;
+import com.sd.business.service.upload.ObsUploadService;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
 
 import java.io.ByteArrayInputStream;
 import java.util.Date;
@@ -18,8 +19,8 @@ import java.util.StringJoiner;
 /**
  * 文件上传服务
  */
-@Component
-public class ObsUploadService {
+@Service
+public class ObsUploadServiceImpl implements ObsUploadService {
 
     @Value("${obs.ak}")
     private String ak;
@@ -42,6 +43,7 @@ public class ObsUploadService {
     @Value("${ruoyi.name}")
     private String name;
 
+    @Override
     public String uploadFileByte(ByteArrayInputStream bis, String fileName) {
 
         if (fileName.length() > 100) {