|
@@ -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();
|
|
|
+ }
|
|
|
+
|
|
|
}
|