库存汇总查询
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
package com.ruoyi.search.StockSummary.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.search.StockSummary.domain.StockSummary;
|
||||
import com.ruoyi.search.StockSummary.service.IStockSummaryService;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 库存汇总Controller
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-26
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/search/StockSummary")
|
||||
public class StockSummaryController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IStockSummaryService stockSummaryService;
|
||||
|
||||
/**
|
||||
* 查询库存汇总列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('search:StockSummary:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(StockSummary stockSummary)
|
||||
{
|
||||
startPage();
|
||||
List<StockSummary> list = stockSummaryService.selectStockSummaryList(stockSummary);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出库存汇总列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('search:StockSummary:export')")
|
||||
@Log(title = "库存汇总", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, StockSummary stockSummary)
|
||||
{
|
||||
List<StockSummary> list = stockSummaryService.selectStockSummaryList(stockSummary);
|
||||
ExcelUtil<StockSummary> util = new ExcelUtil<StockSummary>(StockSummary.class);
|
||||
util.exportExcel(response, list, "库存汇总数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存汇总详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('search:StockSummary:query')")
|
||||
@GetMapping(value = "/{onlyIdentity}")
|
||||
public AjaxResult getInfo(@PathVariable("onlyIdentity") Long onlyIdentity)
|
||||
{
|
||||
return success(stockSummaryService.selectStockSummaryByOnlyIdentity(onlyIdentity));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增库存汇总
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('search:StockSummary:add')")
|
||||
@Log(title = "库存汇总", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody StockSummary stockSummary)
|
||||
{
|
||||
return toAjax(stockSummaryService.insertStockSummary(stockSummary));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库存汇总
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('search:StockSummary:edit')")
|
||||
@Log(title = "库存汇总", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody StockSummary stockSummary)
|
||||
{
|
||||
return toAjax(stockSummaryService.updateStockSummary(stockSummary));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除库存汇总
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('search:StockSummary:remove')")
|
||||
@Log(title = "库存汇总", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{onlyIdentitys}")
|
||||
public AjaxResult remove(@PathVariable Long[] onlyIdentitys)
|
||||
{
|
||||
return toAjax(stockSummaryService.deleteStockSummaryByOnlyIdentitys(onlyIdentitys));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,223 @@
|
||||
package com.ruoyi.search.StockSummary.domain;
|
||||
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 库存汇总对象 stock_summary
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-26
|
||||
*/
|
||||
public class StockSummary extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 序号 */
|
||||
@Excel(name = "序号")
|
||||
private Long onlyIdentity;
|
||||
|
||||
/** 物料编码 */
|
||||
@Excel(name = "物料编码")
|
||||
private String productId;
|
||||
|
||||
/** 物料名称 */
|
||||
@Excel(name = "物料名称")
|
||||
private String productName;
|
||||
|
||||
/** 规格 */
|
||||
@Excel(name = "规格")
|
||||
private String spec;
|
||||
|
||||
/** 单位 */
|
||||
@Excel(name = "单位")
|
||||
private String unit;
|
||||
|
||||
/** 批号 */
|
||||
@Excel(name = "批号")
|
||||
private String lotNo;
|
||||
|
||||
/** 仓库 */
|
||||
@Excel(name = "仓库")
|
||||
private String warehouseId;
|
||||
|
||||
/** 巷道 */
|
||||
@Excel(name = "巷道")
|
||||
private String roadwayId;
|
||||
|
||||
/** 库存数量 */
|
||||
@Excel(name = "库存数量")
|
||||
private Double quantity;
|
||||
|
||||
/** 分组字段控制 */
|
||||
private Boolean groupByProductId;
|
||||
private Boolean groupByProductName;
|
||||
private Boolean groupBySpec;
|
||||
private Boolean groupByUnit;
|
||||
private Boolean groupByLotNo;
|
||||
private Boolean groupByWarehouseId;
|
||||
private Boolean groupByRoadwayId;
|
||||
|
||||
public Boolean getGroupByProductId() {
|
||||
return groupByProductId;
|
||||
}
|
||||
|
||||
public void setGroupByProductId(Boolean groupByProductId) {
|
||||
this.groupByProductId = groupByProductId;
|
||||
}
|
||||
|
||||
public Boolean getGroupByProductName() {
|
||||
return groupByProductName;
|
||||
}
|
||||
|
||||
public void setGroupByProductName(Boolean groupByProductName) {
|
||||
this.groupByProductName = groupByProductName;
|
||||
}
|
||||
|
||||
public Boolean getGroupBySpec() {
|
||||
return groupBySpec;
|
||||
}
|
||||
|
||||
public void setGroupBySpec(Boolean groupBySpec) {
|
||||
this.groupBySpec = groupBySpec;
|
||||
}
|
||||
|
||||
public Boolean getGroupByUnit() {
|
||||
return groupByUnit;
|
||||
}
|
||||
|
||||
public void setGroupByUnit(Boolean groupByUnit) {
|
||||
this.groupByUnit = groupByUnit;
|
||||
}
|
||||
|
||||
public Boolean getGroupByLotNo() {
|
||||
return groupByLotNo;
|
||||
}
|
||||
|
||||
public void setGroupByLotNo(Boolean groupByLotNo) {
|
||||
this.groupByLotNo = groupByLotNo;
|
||||
}
|
||||
|
||||
public Boolean getGroupByWarehouseId() {
|
||||
return groupByWarehouseId;
|
||||
}
|
||||
|
||||
public void setGroupByWarehouseId(Boolean groupByWarehouseId) {
|
||||
this.groupByWarehouseId = groupByWarehouseId;
|
||||
}
|
||||
|
||||
public Boolean getGroupByRoadwayId() {
|
||||
return groupByRoadwayId;
|
||||
}
|
||||
|
||||
public void setGroupByRoadwayId(Boolean groupByRoadwayId) {
|
||||
this.groupByRoadwayId = groupByRoadwayId;
|
||||
}
|
||||
|
||||
public void setOnlyIdentity(Long onlyIdentity)
|
||||
{
|
||||
this.onlyIdentity = onlyIdentity;
|
||||
}
|
||||
|
||||
public Long getOnlyIdentity()
|
||||
{
|
||||
return onlyIdentity;
|
||||
}
|
||||
|
||||
public void setProductId(String productId)
|
||||
{
|
||||
this.productId = productId;
|
||||
}
|
||||
|
||||
public String getProductId()
|
||||
{
|
||||
return productId;
|
||||
}
|
||||
|
||||
public void setProductName(String productName)
|
||||
{
|
||||
this.productName = productName;
|
||||
}
|
||||
|
||||
public String getProductName()
|
||||
{
|
||||
return productName;
|
||||
}
|
||||
|
||||
public void setSpec(String spec)
|
||||
{
|
||||
this.spec = spec;
|
||||
}
|
||||
|
||||
public String getSpec()
|
||||
{
|
||||
return spec;
|
||||
}
|
||||
|
||||
public void setUnit(String unit)
|
||||
{
|
||||
this.unit = unit;
|
||||
}
|
||||
|
||||
public String getUnit()
|
||||
{
|
||||
return unit;
|
||||
}
|
||||
|
||||
public void setLotNo(String lotNo)
|
||||
{
|
||||
this.lotNo = lotNo;
|
||||
}
|
||||
|
||||
public String getLotNo()
|
||||
{
|
||||
return lotNo;
|
||||
}
|
||||
|
||||
public void setWarehouseId(String warehouseId)
|
||||
{
|
||||
this.warehouseId = warehouseId;
|
||||
}
|
||||
|
||||
public String getWarehouseId()
|
||||
{
|
||||
return warehouseId;
|
||||
}
|
||||
|
||||
public void setRoadwayId(String roadwayId)
|
||||
{
|
||||
this.roadwayId = roadwayId;
|
||||
}
|
||||
|
||||
public String getRoadwayId()
|
||||
{
|
||||
return roadwayId;
|
||||
}
|
||||
|
||||
public void setQuantity(Double quantity)
|
||||
{
|
||||
this.quantity = quantity;
|
||||
}
|
||||
|
||||
public Double getQuantity()
|
||||
{
|
||||
return quantity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("onlyIdentity", getOnlyIdentity())
|
||||
.append("productId", getProductId())
|
||||
.append("productName", getProductName())
|
||||
.append("spec", getSpec())
|
||||
.append("unit", getUnit())
|
||||
.append("lotNo", getLotNo())
|
||||
.append("warehouseId", getWarehouseId())
|
||||
.append("roadwayId", getRoadwayId())
|
||||
.append("quantity", getQuantity())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.ruoyi.search.StockSummary.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.search.StockSummary.domain.StockSummary;
|
||||
|
||||
/**
|
||||
* 库存汇总Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-26
|
||||
*/
|
||||
public interface StockSummaryMapper
|
||||
{
|
||||
/**
|
||||
* 查询库存汇总
|
||||
*
|
||||
* @param onlyIdentity 库存汇总主键
|
||||
* @return 库存汇总
|
||||
*/
|
||||
public StockSummary selectStockSummaryByOnlyIdentity(Long onlyIdentity);
|
||||
|
||||
/**
|
||||
* 查询库存汇总列表
|
||||
*
|
||||
* @param stockSummary 库存汇总
|
||||
* @return 库存汇总集合
|
||||
*/
|
||||
public List<StockSummary> selectStockSummaryList(StockSummary stockSummary);
|
||||
|
||||
/**
|
||||
* 新增库存汇总
|
||||
*
|
||||
* @param stockSummary 库存汇总
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertStockSummary(StockSummary stockSummary);
|
||||
|
||||
/**
|
||||
* 修改库存汇总
|
||||
*
|
||||
* @param stockSummary 库存汇总
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateStockSummary(StockSummary stockSummary);
|
||||
|
||||
/**
|
||||
* 删除库存汇总
|
||||
*
|
||||
* @param onlyIdentity 库存汇总主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteStockSummaryByOnlyIdentity(Long onlyIdentity);
|
||||
|
||||
/**
|
||||
* 批量删除库存汇总
|
||||
*
|
||||
* @param onlyIdentitys 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteStockSummaryByOnlyIdentitys(Long[] onlyIdentitys);
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.ruoyi.search.StockSummary.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.search.StockSummary.domain.StockSummary;
|
||||
|
||||
/**
|
||||
* 库存汇总Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-26
|
||||
*/
|
||||
public interface IStockSummaryService
|
||||
{
|
||||
/**
|
||||
* 查询库存汇总
|
||||
*
|
||||
* @param onlyIdentity 库存汇总主键
|
||||
* @return 库存汇总
|
||||
*/
|
||||
public StockSummary selectStockSummaryByOnlyIdentity(Long onlyIdentity);
|
||||
|
||||
/**
|
||||
* 查询库存汇总列表
|
||||
*
|
||||
* @param stockSummary 库存汇总
|
||||
* @return 库存汇总集合
|
||||
*/
|
||||
public List<StockSummary> selectStockSummaryList(StockSummary stockSummary);
|
||||
|
||||
/**
|
||||
* 新增库存汇总
|
||||
*
|
||||
* @param stockSummary 库存汇总
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertStockSummary(StockSummary stockSummary);
|
||||
|
||||
/**
|
||||
* 修改库存汇总
|
||||
*
|
||||
* @param stockSummary 库存汇总
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateStockSummary(StockSummary stockSummary);
|
||||
|
||||
/**
|
||||
* 批量删除库存汇总
|
||||
*
|
||||
* @param onlyIdentitys 需要删除的库存汇总主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteStockSummaryByOnlyIdentitys(Long[] onlyIdentitys);
|
||||
|
||||
/**
|
||||
* 删除库存汇总信息
|
||||
*
|
||||
* @param onlyIdentity 库存汇总主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteStockSummaryByOnlyIdentity(Long onlyIdentity);
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.ruoyi.search.StockSummary.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.search.StockSummary.mapper.StockSummaryMapper;
|
||||
import com.ruoyi.search.StockSummary.domain.StockSummary;
|
||||
import com.ruoyi.search.StockSummary.service.IStockSummaryService;
|
||||
|
||||
/**
|
||||
* 库存汇总Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-26
|
||||
*/
|
||||
@Service
|
||||
public class StockSummaryServiceImpl implements IStockSummaryService
|
||||
{
|
||||
@Autowired
|
||||
private StockSummaryMapper stockSummaryMapper;
|
||||
|
||||
/**
|
||||
* 查询库存汇总
|
||||
*
|
||||
* @param onlyIdentity 库存汇总主键
|
||||
* @return 库存汇总
|
||||
*/
|
||||
@Override
|
||||
public StockSummary selectStockSummaryByOnlyIdentity(Long onlyIdentity)
|
||||
{
|
||||
return stockSummaryMapper.selectStockSummaryByOnlyIdentity(onlyIdentity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询库存汇总列表
|
||||
*
|
||||
* @param stockSummary 库存汇总
|
||||
* @return 库存汇总
|
||||
*/
|
||||
@Override
|
||||
public List<StockSummary> selectStockSummaryList(StockSummary stockSummary)
|
||||
{
|
||||
return stockSummaryMapper.selectStockSummaryList(stockSummary);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增库存汇总
|
||||
*
|
||||
* @param stockSummary 库存汇总
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertStockSummary(StockSummary stockSummary)
|
||||
{
|
||||
return stockSummaryMapper.insertStockSummary(stockSummary);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库存汇总
|
||||
*
|
||||
* @param stockSummary 库存汇总
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateStockSummary(StockSummary stockSummary)
|
||||
{
|
||||
return stockSummaryMapper.updateStockSummary(stockSummary);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除库存汇总
|
||||
*
|
||||
* @param onlyIdentitys 需要删除的库存汇总主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteStockSummaryByOnlyIdentitys(Long[] onlyIdentitys)
|
||||
{
|
||||
return stockSummaryMapper.deleteStockSummaryByOnlyIdentitys(onlyIdentitys);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除库存汇总信息
|
||||
*
|
||||
* @param onlyIdentity 库存汇总主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteStockSummaryByOnlyIdentity(Long onlyIdentity)
|
||||
{
|
||||
return stockSummaryMapper.deleteStockSummaryByOnlyIdentity(onlyIdentity);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.search.StockSummary.mapper.StockSummaryMapper">
|
||||
|
||||
<resultMap type="StockSummary" id="StockSummaryResult">
|
||||
<result property="onlyIdentity" column="only_identity" />
|
||||
<result property="productId" column="product_id" />
|
||||
<result property="productName" column="product_name" />
|
||||
<result property="spec" column="spec" />
|
||||
<result property="unit" column="unit" />
|
||||
<result property="lotNo" column="lot_no" />
|
||||
<result property="warehouseId" column="warehouse_id" />
|
||||
<result property="roadwayId" column="roadway_id" />
|
||||
<result property="quantity" column="quantity" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectStockSummaryVo">
|
||||
SELECT
|
||||
<choose>
|
||||
<when test="groupByProductId != null and groupByProductId or groupByProductName != null and groupByProductName or groupBySpec != null and groupBySpec or groupByUnit != null and groupByUnit or groupByLotNo != null and groupByLotNo or groupByWarehouseId != null and groupByWarehouseId or groupByRoadwayId != null and groupByRoadwayId">
|
||||
<if test="groupByProductId != null and groupByProductId">p.product_id,</if>
|
||||
<if test="groupByProductName != null and groupByProductName">p.product_name,</if>
|
||||
<if test="groupBySpec != null and groupBySpec">p.spec,</if>
|
||||
<if test="groupByUnit != null and groupByUnit">p.unit,</if>
|
||||
<if test="groupByLotNo != null and groupByLotNo">s.lot_no,</if>
|
||||
<if test="groupByWarehouseId != null and groupByWarehouseId">s.warehouse_id,</if>
|
||||
<if test="groupByRoadwayId != null and groupByRoadwayId">s.cargo_space_id as roadway_id,</if>
|
||||
SUM(CAST(s.quantity AS DECIMAL(18,2))) as quantity
|
||||
FROM bas_stock s
|
||||
LEFT JOIN bas_product p ON s.product_guid = p.product_guid
|
||||
GROUP BY
|
||||
<trim prefixOverrides=",">
|
||||
<if test="groupByProductId != null and groupByProductId">,p.product_id</if>
|
||||
<if test="groupByProductName != null and groupByProductName">,p.product_name</if>
|
||||
<if test="groupBySpec != null and groupBySpec">,p.spec</if>
|
||||
<if test="groupByUnit != null and groupByUnit">,p.unit</if>
|
||||
<if test="groupByLotNo != null and groupByLotNo">,s.lot_no</if>
|
||||
<if test="groupByWarehouseId != null and groupByWarehouseId">,s.warehouse_id</if>
|
||||
<if test="groupByRoadwayId != null and groupByRoadwayId">,s.cargo_space_id</if>
|
||||
</trim>
|
||||
</when>
|
||||
<otherwise>
|
||||
1 as group_all,
|
||||
SUM(CAST(s.quantity AS DECIMAL(18,2))) as quantity
|
||||
FROM bas_stock s
|
||||
LEFT JOIN bas_product p ON s.product_guid = p.product_guid
|
||||
</otherwise>
|
||||
</choose>
|
||||
</sql>
|
||||
|
||||
<select id="selectStockSummaryList" parameterType="StockSummary" resultMap="StockSummaryResult">
|
||||
<include refid="selectStockSummaryVo"/>
|
||||
<where>
|
||||
<if test="productId != null and productId != ''"> AND p.product_id = #{productId}</if>
|
||||
<if test="productName != null and productName != ''"> AND p.product_name like concat('%', #{productName}, '%')</if>
|
||||
<if test="spec != null and spec != ''"> AND p.spec = #{spec}</if>
|
||||
<if test="unit != null and unit != ''"> AND p.unit = #{unit}</if>
|
||||
<if test="lotNo != null and lotNo != ''"> AND s.lot_no = #{lotNo}</if>
|
||||
<if test="warehouseId != null and warehouseId != ''"> AND s.warehouse_id = #{warehouseId}</if>
|
||||
<if test="roadwayId != null and roadwayId != ''"> AND s.cargo_space_id = #{roadwayId}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectStockSummaryByOnlyIdentity" parameterType="Long" resultMap="StockSummaryResult">
|
||||
<include refid="selectStockSummaryVo"/>
|
||||
where only_identity = #{onlyIdentity}
|
||||
</select>
|
||||
|
||||
<insert id="insertStockSummary" parameterType="StockSummary">
|
||||
insert into stock_summary
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="onlyIdentity != null">only_identity,</if>
|
||||
<if test="productId != null and productId != ''">product_id,</if>
|
||||
<if test="productName != null">product_name,</if>
|
||||
<if test="spec != null">spec,</if>
|
||||
<if test="unit != null">unit,</if>
|
||||
<if test="lotNo != null">lot_no,</if>
|
||||
<if test="warehouseId != null">warehouse_id,</if>
|
||||
<if test="roadwayId != null">roadway_id,</if>
|
||||
<if test="quantity != null">quantity,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="onlyIdentity != null">#{onlyIdentity},</if>
|
||||
<if test="productId != null and productId != ''">#{productId},</if>
|
||||
<if test="productName != null">#{productName},</if>
|
||||
<if test="spec != null">#{spec},</if>
|
||||
<if test="unit != null">#{unit},</if>
|
||||
<if test="lotNo != null">#{lotNo},</if>
|
||||
<if test="warehouseId != null">#{warehouseId},</if>
|
||||
<if test="roadwayId != null">#{roadwayId},</if>
|
||||
<if test="quantity != null">#{quantity},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateStockSummary" parameterType="StockSummary">
|
||||
update stock_summary
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="productId != null and productId != ''">product_id = #{productId},</if>
|
||||
<if test="productName != null">product_name = #{productName},</if>
|
||||
<if test="spec != null">spec = #{spec},</if>
|
||||
<if test="unit != null">unit = #{unit},</if>
|
||||
<if test="lotNo != null">lot_no = #{lotNo},</if>
|
||||
<if test="warehouseId != null">warehouse_id = #{warehouseId},</if>
|
||||
<if test="roadwayId != null">roadway_id = #{roadwayId},</if>
|
||||
<if test="quantity != null">quantity = #{quantity},</if>
|
||||
</trim>
|
||||
where only_identity = #{onlyIdentity}
|
||||
</update>
|
||||
|
||||
<delete id="deleteStockSummaryByOnlyIdentity" parameterType="Long">
|
||||
delete from stock_summary where only_identity = #{onlyIdentity}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteStockSummaryByOnlyIdentitys" parameterType="String">
|
||||
delete from stock_summary where only_identity in
|
||||
<foreach item="onlyIdentity" collection="array" open="(" separator="," close=")">
|
||||
#{onlyIdentity}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
44
ruoyi-ui/src/api/search/StockSummary.js
Normal file
44
ruoyi-ui/src/api/search/StockSummary.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询库存汇总列表
|
||||
export function listStockSummary(query) {
|
||||
return request({
|
||||
url: '/search/StockSummary/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询库存汇总详细
|
||||
export function getStockSummary(onlyIdentity) {
|
||||
return request({
|
||||
url: '/search/StockSummary/' + onlyIdentity,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增库存汇总
|
||||
export function addStockSummary(data) {
|
||||
return request({
|
||||
url: '/search/StockSummary',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改库存汇总
|
||||
export function updateStockSummary(data) {
|
||||
return request({
|
||||
url: '/search/StockSummary',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除库存汇总
|
||||
export function delStockSummary(onlyIdentity) {
|
||||
return request({
|
||||
url: '/search/StockSummary/' + onlyIdentity,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
173
ruoyi-ui/src/views/search/StockSummary/index.vue
Normal file
173
ruoyi-ui/src/views/search/StockSummary/index.vue
Normal file
@@ -0,0 +1,173 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="物料编码" prop="productId">
|
||||
<el-input
|
||||
v-model="queryParams.productId"
|
||||
placeholder="请输入物料编码"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料名称" prop="productName">
|
||||
<el-input
|
||||
v-model="queryParams.productName"
|
||||
placeholder="请输入物料名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="规格" prop="spec">
|
||||
<el-input
|
||||
v-model="queryParams.spec"
|
||||
placeholder="请输入规格"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="批号" prop="lotNo">
|
||||
<el-input
|
||||
v-model="queryParams.lotNo"
|
||||
placeholder="请输入批号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="仓库" prop="warehouseId">
|
||||
<el-input
|
||||
v-model="queryParams.warehouseId"
|
||||
placeholder="请输入仓库"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="巷道" prop="roadwayId">
|
||||
<el-input
|
||||
v-model="queryParams.roadwayId"
|
||||
placeholder="请输入巷道"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['search:StockSummary:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="stockSummaryList"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="物料编码" align="center" prop="productId" />
|
||||
<el-table-column label="物料名称" align="center" prop="productName" />
|
||||
<el-table-column label="规格" align="center" prop="spec" />
|
||||
<el-table-column label="单位" align="center" prop="unit" />
|
||||
<el-table-column label="批号" align="center" prop="lotNo" />
|
||||
<el-table-column label="仓库" align="center" prop="warehouseId" />
|
||||
<el-table-column label="巷道" align="center" prop="roadwayId" />
|
||||
<el-table-column label="库存数量" align="center" prop="quantity" />
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listStockSummary, getStockSummary } from "@/api/search/StockSummary";
|
||||
|
||||
export default {
|
||||
name: "StockSummary",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 库存汇总表格数据
|
||||
stockSummaryList: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
productId: null,
|
||||
productName: null,
|
||||
spec: null,
|
||||
unit: null,
|
||||
lotNo: null,
|
||||
warehouseId: null,
|
||||
roadwayId: null,
|
||||
quantity: null,
|
||||
//分组字段
|
||||
groupFields: ['productId', 'productName', 'spec', 'unit', 'lotNo', 'warehouseId', 'roadwayId']
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询库存汇总列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listStockSummary(this.queryParams).then(response => {
|
||||
this.stockSummaryList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('search/StockSummary/export', {
|
||||
...this.queryParams
|
||||
}, `库存汇总_${new Date().getTime()}.xlsx`)
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.onlyIdentity)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
Reference in New Issue
Block a user