仓库管理,查询统计-库存明细查询 库存汇总查询 字典 关联查询

This commit is contained in:
liuhanqing
2025-06-27 11:15:03 +08:00
parent b01cff21d9
commit 2736aa6fb4
12 changed files with 365 additions and 180 deletions

View File

@@ -7,7 +7,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
/**
* 库存汇总对象 stock_summary
*
*
* @author ruoyi
* @date 2025-05-26
*/
@@ -40,11 +40,11 @@ public class StockSummary extends BaseEntity
private String lotNo;
/** 仓库 */
@Excel(name = "仓库")
private String warehouseId;
@Excel(name = "仓库")
private String warehouseName;
/** 巷道 */
@Excel(name = "巷道")
private String roadwayId;
/** 库存数量 */
@@ -83,6 +83,9 @@ public class StockSummary extends BaseEntity
/** 备注 */
@Excel(name = "备注")
private String remark;
private String cargoSpaceId;
@Excel(name = "货位名称")
private String cargoSpaceName;
/** 分组字段控制 */
@@ -100,6 +103,39 @@ public class StockSummary extends BaseEntity
private Boolean groupBySpare6;
private Boolean groupBySpare7;
private Boolean groupBySpare8;
private Boolean groupByCargoSpaceId;
public String getCargoSpaceName() {
return cargoSpaceName;
}
public void setCargoSpaceName(String cargoSpaceName) {
this.cargoSpaceName = cargoSpaceName;
}
public String getCargoSpaceId() {
return cargoSpaceId;
}
public void setCargoSpaceId(String cargoSpaceId) {
this.cargoSpaceId = cargoSpaceId;
}
public Boolean getGroupByCargoSpaceId() {
return groupByCargoSpaceId;
}
public void setGroupByCargoSpaceId(Boolean groupByCargoSpaceId) {
this.groupByCargoSpaceId = groupByCargoSpaceId;
}
public String getWarehouseName() {
return warehouseName;
}
public void setWarehouseName(String warehouseName) {
this.warehouseName = warehouseName;
}
public String getPrice() {
return price;
@@ -279,92 +315,92 @@ public class StockSummary extends BaseEntity
this.groupByRoadwayId = groupByRoadwayId;
}
public void setOnlyIdentity(Long onlyIdentity)
public void setOnlyIdentity(Long onlyIdentity)
{
this.onlyIdentity = onlyIdentity;
}
public Long getOnlyIdentity()
public Long getOnlyIdentity()
{
return onlyIdentity;
}
public void setProductId(String productId)
public void setProductId(String productId)
{
this.productId = productId;
}
public String getProductId()
public String getProductId()
{
return productId;
}
public void setProductName(String productName)
public void setProductName(String productName)
{
this.productName = productName;
}
public String getProductName()
public String getProductName()
{
return productName;
}
public void setSpec(String spec)
public void setSpec(String spec)
{
this.spec = spec;
}
public String getSpec()
public String getSpec()
{
return spec;
}
public void setUnit(String unit)
public void setUnit(String unit)
{
this.unit = unit;
}
public String getUnit()
public String getUnit()
{
return unit;
}
public void setLotNo(String lotNo)
public void setLotNo(String lotNo)
{
this.lotNo = lotNo;
}
public String getLotNo()
public String getLotNo()
{
return lotNo;
}
public void setWarehouseId(String warehouseId)
public void setWarehouseId(String warehouseId)
{
this.warehouseId = warehouseId;
}
public String getWarehouseId()
public String getWarehouseId()
{
return warehouseId;
}
public void setRoadwayId(String roadwayId)
public void setRoadwayId(String roadwayId)
{
this.roadwayId = roadwayId;
}
public String getRoadwayId()
public String getRoadwayId()
{
return roadwayId;
}
public void setQuantity(Double quantity)
public void setQuantity(Double quantity)
{
this.quantity = quantity;
}
public Double getQuantity()
public Double getQuantity()
{
return quantity;
}
@@ -405,4 +441,4 @@ public class StockSummary extends BaseEntity
", groupBySpare8=" + groupBySpare8 +
'}';
}
}
}

View File

@@ -7,7 +7,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
/**
* 库存明细查询对象 view_stock_detail
*
*
* @author gw
* @date 2025-05-26
*/
@@ -54,6 +54,7 @@ public class ViewStockDetail extends BaseEntity
/** 仓库 */
@Excel(name = "仓库")
private String warehouseId;
private String warehouseName;
/** 剁型ID */
@Excel(name = "剁型ID")
@@ -122,6 +123,34 @@ public class ViewStockDetail extends BaseEntity
/** 备注 */
@Excel(name = "备注")
private String remark;
@Excel(name = "库存状态")
private String stockStatus;
@Excel(name = "物料状态")
private String productStatus;
public String getStockStatus() {
return stockStatus;
}
public void setStockStatus(String stockStatus) {
this.stockStatus = stockStatus;
}
public String getProductStatus() {
return productStatus;
}
public void setProductStatus(String productStatus) {
this.productStatus = productStatus;
}
public String getWarehouseName() {
return warehouseName;
}
public void setWarehouseName(String warehouseName) {
this.warehouseName = warehouseName;
}
@Override
public String getRemark() {
@@ -186,197 +215,197 @@ public class ViewStockDetail extends BaseEntity
this.onlyIdentity = onlyIdentity;
}
public Long getOnlyIdentity()
public Long getOnlyIdentity()
{
return onlyIdentity;
}
public void setStockId(String stockId)
public void setStockId(String stockId)
{
this.stockId = stockId;
}
public String getStockId()
public String getStockId()
{
return stockId;
}
public void setCargoSpaceId(String cargoSpaceId)
public void setCargoSpaceId(String cargoSpaceId)
{
this.cargoSpaceId = cargoSpaceId;
}
public String getCargoSpaceId()
public String getCargoSpaceId()
{
return cargoSpaceId;
}
public void setTrayCode(String trayCode)
public void setTrayCode(String trayCode)
{
this.trayCode = trayCode;
}
public String getTrayCode()
public String getTrayCode()
{
return trayCode;
}
public void setQuantity(String quantity)
public void setQuantity(String quantity)
{
this.quantity = quantity;
}
public String getQuantity()
public String getQuantity()
{
return quantity;
}
public void setJobId(String jobId)
public void setJobId(String jobId)
{
this.jobId = jobId;
}
public String getJobId()
public String getJobId()
{
return jobId;
}
public void setLotNo(String lotNo)
public void setLotNo(String lotNo)
{
this.lotNo = lotNo;
}
public String getLotNo()
public String getLotNo()
{
return lotNo;
}
public void setStockinDetailId(String stockinDetailId)
public void setStockinDetailId(String stockinDetailId)
{
this.stockinDetailId = stockinDetailId;
}
public String getStockinDetailId()
public String getStockinDetailId()
{
return stockinDetailId;
}
public void setInDate(String inDate)
public void setInDate(String inDate)
{
this.inDate = inDate;
}
public String getInDate()
public String getInDate()
{
return inDate;
}
public void setWarehouseId(String warehouseId)
public void setWarehouseId(String warehouseId)
{
this.warehouseId = warehouseId;
}
public String getWarehouseId()
public String getWarehouseId()
{
return warehouseId;
}
public void setStackingId(String stackingId)
public void setStackingId(String stackingId)
{
this.stackingId = stackingId;
}
public String getStackingId()
public String getStackingId()
{
return stackingId;
}
public void setCargoSpaceName(String cargoSpaceName)
public void setCargoSpaceName(String cargoSpaceName)
{
this.cargoSpaceName = cargoSpaceName;
}
public String getCargoSpaceName()
public String getCargoSpaceName()
{
return cargoSpaceName;
}
public void setRoadwayId(String roadwayId)
public void setRoadwayId(String roadwayId)
{
this.roadwayId = roadwayId;
}
public String getRoadwayId()
public String getRoadwayId()
{
return roadwayId;
}
public void setCargoSpaceStatus(String cargoSpaceStatus)
public void setCargoSpaceStatus(String cargoSpaceStatus)
{
this.cargoSpaceStatus = cargoSpaceStatus;
}
public String getCargoSpaceStatus()
public String getCargoSpaceStatus()
{
return cargoSpaceStatus;
}
public void setLocked(String locked)
public void setLocked(String locked)
{
this.locked = locked;
}
public String getLocked()
public String getLocked()
{
return locked;
}
public void setProductId(String productId)
public void setProductId(String productId)
{
this.productId = productId;
}
public String getProductId()
public String getProductId()
{
return productId;
}
public void setProductName(String productName)
public void setProductName(String productName)
{
this.productName = productName;
}
public String getProductName()
public String getProductName()
{
return productName;
}
public void setSpec(String spec)
public void setSpec(String spec)
{
this.spec = spec;
}
public String getSpec()
public String getSpec()
{
return spec;
}
public void setUnit(String unit)
public void setUnit(String unit)
{
this.unit = unit;
}
public String getUnit()
public String getUnit()
{
return unit;
}
public void setPrice(String price)
public void setPrice(String price)
{
this.price = price;
}
public String getPrice()
public String getPrice()
{
return price;
}

View File

@@ -3,7 +3,7 @@
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" />
@@ -12,7 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<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="warehouseName" column="warehouse_name" />
<result property="quantity" column="quantity" />
<result property="price" column="price" />
<result property="spare1" column="spare1" />
@@ -22,10 +22,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="spare7" column="spare7" />
<result property="spare8" column="spare8" />
<result property="remark" column="remark" />
<result property="cargoSpaceId" column="cargo_space_id" />
<result property="cargoSpaceName" column="cargo_space_name" />
</resultMap>
<sql id="selectStockSummaryVo">
SELECT
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 or groupByPrice != null and groupByPrice or groupBySpare1 != null and groupBySpare1 or groupBySpare2 != null and groupBySpare2 or groupBySpare5 != null and groupBySpare5 or groupBySpare6 != null and groupBySpare6 or groupBySpare7 != null and groupBySpare7 or groupBySpare8 != null and groupBySpare8">
<if test="groupByProductId != null and groupByProductId">p.product_id,</if>
@@ -41,10 +43,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<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>
<if test="groupByWarehouseId != null and groupByWarehouseId">bw.warehouse_name,</if>
<if test="groupByCargoSpaceId != null and groupByCargoSpaceId">s.cargo_space_id,</if>
<if test="groupByCargoSpaceId != null and groupByCargoSpaceId">bcs.cargo_space_name,</if>
SUM(CAST(s.quantity AS DECIMAL(18,2))) as quantity
FROM bas_stock s
LEFT JOIN bas_product p ON s.product_id = p.product_id
LEFT JOIN bas_warehouse bw ON bw.warehouse_id = s.warehouse_id
LEFT JOIN bas_cargo_space bcs ON bcs.cargo_space_id = s.cargo_space_id
<where>
<if test="productId != null and productId != ''"> AND p.product_id like concat('%', #{productId}, '%')</if>
<if test="productName != null and productName != ''"> AND p.product_name like concat('%', #{productName}, '%')</if>
@@ -60,7 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="remark != null and remark != ''"> AND p.spare7 like concat('%', #{remark}, '%')}</if>
<if test="lotNo != null and lotNo != ''"> AND s.lot_no like concat('%', #{lotNo}, '%')</if>
<if test="warehouseId != null and warehouseId != ''"> AND s.warehouse_id like concat('%', #{warehouseId}, '%')</if>
<if test="roadwayId != null and roadwayId != ''"> AND s.cargo_space_id like concat('%', #{roadwayId}, '%')</if>
<if test="cargoSpaceId != null and cargoSpaceId != ''"> AND s.cargo_space_id like concat('%', #{roadwayId}, '%')</if>
<if test="params.warehouseDataScope != null and params.warehouseDataScope !=''">
${params.warehouseDataScope}
</if>
@@ -80,7 +86,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="groupBySpare7 != null and groupBySpare7">,p.spare7</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>
<if test="groupByWarehouseId != null and groupByWarehouseId">,bw.warehouse_name</if>
<if test="groupByCargoSpaceId != null and groupByCargoSpaceId">,s.cargo_space_id</if>
<if test="groupByCargoSpaceId != null and groupByCargoSpaceId">,bcs.cargo_space_name</if>
</trim>
</when>
<otherwise>
@@ -115,12 +123,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectStockSummaryList" parameterType="StockSummary" resultMap="StockSummaryResult">
<include refid="selectStockSummaryVo"/>
</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=",">
@@ -191,9 +199,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteStockSummaryByOnlyIdentitys" parameterType="String">
delete from stock_summary where only_identity in
delete from stock_summary where only_identity in
<foreach item="onlyIdentity" collection="array" open="(" separator="," close=")">
#{onlyIdentity}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.search.ViewStockDetail.mapper.ViewStockDetailMapper">
<resultMap type="ViewStockDetail" id="ViewStockDetailResult">
<result property="onlyIdentity" column="only_identity" />
<result property="stockId" column="stock_id" />
@@ -32,15 +32,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="spare7" column="spare7" />
<result property="spare8" column="spare8" />
<result property="remark" column="remark" />
<result property="warehouseName" column="warehouse_name" />
<result property="stockStatus" column="stock_status" />
<result property="productStatus" column="product_status" />
</resultMap>
<sql id="selectViewStockDetailVo">
select only_identity, stock_id, cargo_space_id, tray_code, quantity, job_id, lot_no, stockin_detail_id, in_date, warehouse_id, stacking_id, cargo_space_name, roadway_id, cargo_space_status, locked, product_id, product_name, spec, unit, price, remark,spare1,spare2,spare5,spare6,spare7,spare8 from view_stock_detail
select only_identity,stock_status,product_status, stock_id, cargo_space_id, tray_code, quantity, job_id, lot_no, stockin_detail_id, in_date, warehouse_id, stacking_id, cargo_space_name, roadway_id, cargo_space_status, locked, product_id, product_name, spec, unit, price, remark,spare1,spare2,spare5,spare6,spare7,spare8,warehouse_name from view_stock_detail
</sql>
<select id="selectViewStockDetailList" parameterType="ViewStockDetail" resultMap="ViewStockDetailResult">
<include refid="selectViewStockDetailVo"/>
<where>
<where>
<if test="onlyIdentity != null "> and only_identity = #{onlyIdentity}</if>
<if test="stockId != null and stockId != ''"> and stock_id like concat('%', #{stockId}, '%')</if>
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and cargo_space_id like concat('%', #{cargoSpaceId}, '%')</if>
@@ -67,12 +70,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="spare6 != null and spare6 != ''"> and spare6 like concat('%', #{spare6}, '%')</if>
<if test="spare7 != null and spare7 != ''"> and spare7 like concat('%', #{spare7}, '%')</if>
<if test="spare8 != null and spare8 != ''"> and spare8 like concat('%', #{spare8}, '%')</if>
<if test="warehouseName != null and warehouseName != ''"> and warehouse_name like concat('%', #{warehouseName}, '%')</if>
<if test="stockStatus != null and stockStatus != ''"> and stock_status like concat('%', #{stockStatus}, '%')</if>
<if test="productStatus != null and productStatus != ''"> and product_status like concat('%', #{productStatus}, '%')</if>
<if test="params.warehouseDataScope != null and params.warehouseDataScope !=''">
${params.warehouseDataScope}
</if>
</where>
</select>
<select id="selectViewStockDetailByOnlyIdentity" parameterType="Long" resultMap="ViewStockDetailResult">
<include refid="selectViewStockDetailVo"/>
where only_identity = #{onlyIdentity}
@@ -178,9 +184,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteViewStockDetailByOnlyIdentitys" parameterType="String">
delete from view_stock_detail where only_identity in
delete from view_stock_detail where only_identity in
<foreach item="onlyIdentity" collection="array" open="(" separator="," close=")">
#{onlyIdentity}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -53,8 +53,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="barCodeOldQuantity != null and barCodeOldQuantity != ''"> and bar_code_old_quantity = #{barCodeOldQuantity}</if>
<if test="barCodeQuantity != null and barCodeQuantity != ''"> and bar_code_quantity = #{barCodeQuantity}</if>
<if test="productGuid != null and productGuid != ''"> and product_guid = #{productGuid}</if>
order by create_time desc
</where>
order by create_time desc
</select>
<select id="selectBasStockMaintainRecordByWhGuid" parameterType="String" resultMap="BasStockMaintainRecordResult">

View File

@@ -3033,25 +3033,28 @@ export default {
confirm: '确 定',
cancel: '取 消'
},
// ***************收货单据管理*************
// ***************Stock Summary Management*************
searchStockSummary: {
export: '导出',
productId: '物料编码111111111',
inputProductId: '请输入物料编码',
productName: '物料名称',
inputProductName: '请输入物料名称',
spec: '规格',
inputSpec: '请输入规格',
lotNo: '批号',
inputLotNo: '请输入批号',
warehouseId: '仓库',
inputWarehouseId: '请输入仓库',
roadwayId: '巷道',
inputRoadwayId: '请输入巷道',
search: '搜索',
reset: '重置',
unit: '单位',
quantity: '数量',
groupOptions: 'Group Options',
export: 'Export',
productId: 'Product Code',
inputProductId: 'Please enter product code',
productName: 'Product Name',
inputProductName: 'Please enter product name',
spec: 'Specification',
inputSpec: 'Please enter specification',
lotNo: 'Lot Number',
inputLotNo: 'Please enter lot number',
warehouseId: 'Warehouse',
inputWarehouseId: 'Please enter warehouse',
roadwayId: 'Roadway',
inputRoadwayId: 'Please enter roadway',
cargoSpace: 'cargoSpace',
inputCargoSpace: 'inputCargoSpace',
search: 'Search',
reset: 'Reset',
unit: 'Unit',
quantity: 'Quantity',
},
// ***************预警库存查询*************
searchViewStockWarning: {
@@ -3129,6 +3132,17 @@ export default {
confirm: '确 定',
cancel: '取 消'
},
// ***************Product Basic Fields**************
basproduct1:{
englishName:"English Name",
netWeightPerUnit:"Net Weight Per Unit",
long:"Length MM",
wide:"Width MM",
tall:"Height MM",
volume:"Volume m³",
price:"Price",
notes:"Description"
},
// ***************客户管理**************
basCustomer: {
customerNo: 'customerNo',

View File

@@ -562,6 +562,11 @@ export default {
},
// ****************盘点差异管理*****************
checkDifference: {
unaudited:'未审核',
audited:'已审核',
inputStatus:'请选择审核状态',
status:'审核状态',
audit:'审核',
createTime: '创建时间',
checkGuid: '盘点id',
checkStockDetailId: '盘点单据id',
@@ -659,7 +664,8 @@ export default {
height:'高',
volume:'体积',
productId:'物料编码',
cargoSpaceStatus: '货位状态'
cargoSpaceStatus: '锁定状态',
cargoSpaceStockStatus: '货位状态'
},
@@ -2813,7 +2819,9 @@ export default {
deleteConfirm: '是否确认删除库存明细查询编号为"{id}"的数据项?',
deleteSuccess: '删除成功',
addSuccess: '新增成功',
editSuccess: '修改成功'
editSuccess: '修改成功',
stockStatus: '库存状态',
productStatus: '物料状态',
},
// ***************平库出库流水*************
searchViewFlatWarehouseOutFlow: {
@@ -3024,6 +3032,7 @@ export default {
},
// ***************收货单据管理*************
searchStockSummary: {
groupOptions: '分组选项',
export: '导出',
productId: '物料编码',
inputProductId: '请输入物料编码',
@@ -3035,8 +3044,8 @@ export default {
inputLotNo: '请输入批号',
warehouseId: '仓库',
inputWarehouseId: '请输入仓库',
roadwayId: '巷道',
inputRoadwayId: '请输入巷道',
cargoSpace: '货位',
inputCargoSpace: '请输入货位',
search: '搜索',
reset: '重置',
unit: '单位',

View File

@@ -1194,6 +1194,7 @@ export default {
title: '货位管理',
cargoSpaceId: '货位编码',
warehouseId: '仓库编码',
warehouseName: '仓库',
roadwayId: '巷道号',
cargoAreaId: '货区编码',
cargoSpaceType: '货位类型',
@@ -2819,7 +2820,9 @@ export default {
deleteConfirm: '是否确认删除库存明细查询编号为"{id}"的数据项?',
deleteSuccess: '删除成功',
addSuccess: '新增成功',
editSuccess: '修改成功'
editSuccess: '修改成功',
stockStatus: '库存状态',
productStatus: '物料状态',
},
// ***************平库出库流水*************
searchViewFlatWarehouseOutFlow: {
@@ -3030,6 +3033,7 @@ export default {
},
// ***************收货单据管理*************
searchStockSummary: {
groupOptions: '分组选项',
export: '导出',
productId: '物料编码',
inputProductId: '请输入物料编码',
@@ -3041,8 +3045,8 @@ export default {
inputLotNo: '请输入批号',
warehouseId: '仓库',
inputWarehouseId: '请输入仓库',
roadwayId: '巷道',
inputRoadwayId: '请输入巷道',
cargoSpace: '货位',
inputCargoSpace: '请输入货位',
search: '搜索',
reset: '重置',
unit: '单位',

View File

@@ -2,49 +2,51 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" :label-width="labelWidthForSearch">
<!-- 仓库ID -->
<el-form-item :label="$t('cargoSpace.warehouseId')" prop="warehouseId">
<el-input
v-model="queryParams.warehouseId"
:placeholder="$t('cargoSpace.warehouseId')"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item :label="$t('cargoSpace.warehouseName')" prop="warehouseId"><!-- 仓库id -->
<el-select v-model="queryParams.warehouseId" :placeholder="$t('cargoSpace.warehouseName')">
<el-option
v-for="item in warehouseOptions"
:key="item.warehouseId"
:label="item.warehouseName"
:value="item.warehouseId"
/>
</el-select>
</el-form-item>
<!-- 巷道号 -->
<el-form-item :label="$t('cargoSpace.roadwayId')" prop="roadwayId">
<!-- <el-form-item :label="$t('cargoSpace.roadwayId')" prop="roadwayId">
<el-input
v-model="queryParams.roadwayId"
:placeholder="$t('cargoSpace.roadwayId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item>-->
<!-- 货区编号 -->
<el-form-item :label="$t('cargoSpace.cargoAreaId')" prop="cargoAreaId">
<!-- <el-form-item :label="$t('cargoSpace.cargoAreaId')" prop="cargoAreaId">
<el-input
v-model="queryParams.cargoAreaId"
:placeholder="$t('cargoSpace.cargoAreaId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item>-->
<!-- 货位类型 -->
<el-form-item :label="$t('cargoSpace.cargoSpaceType')" prop="theTypeName">
<!-- <el-form-item :label="$t('cargoSpace.cargoSpaceType')" prop="theTypeName">
<el-input
v-model="queryParams.theTypeName"
:placeholder="$t('cargoSpace.cargoSpaceType')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="货位名称" prop="cargoSpaceName">
</el-form-item>-->
<el-form-item label="货位名称" prop="cargoSpaceName">
<el-input
v-model="queryParams.cargoSpaceName"
placeholder="请输入货位名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
</el-form-item>
<!-- 排 -->
<el-form-item :label="$t('cargoSpace.platoon')" prop="thePlatoon">
<el-input
@@ -74,21 +76,25 @@
</el-form-item>
<!-- 货位状态 -->
<el-form-item :label="$t('cargoSpace.status')" prop="status">
<el-input
v-model="queryParams.status"
:placeholder="$t('cargoSpace.status')"
clearable
@keyup.enter.native="handleQuery"
/>
<el-select v-model="queryParams.status" :placeholder="$t('cargoSpace.status')" clearable>
<el-option
v-for="dict in dict.type.cargo_space_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<!-- 是否锁定 -->
<el-form-item :label="$t('cargoSpace.locked')" prop="locked">
<el-input
v-model="queryParams.locked"
:placeholder="$t('cargoSpace.locked')"
clearable
@keyup.enter.native="handleQuery"
/>
<el-select v-model="queryParams.locked" :placeholder="$t('cargoSpace.locked')" clearable>
<el-option
v-for="dict in dict.type.cargo_space_lock_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<!-- 托盘编码 -->
<el-form-item :label="$t('cargoSpace.trayCode')" prop="trayCode">
@@ -99,7 +105,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="是否双伸 Y N " prop="issDouble">
<el-input
v-model="queryParams.issDouble"
@@ -205,35 +210,43 @@
<!-- 仓库ID -->
<el-table-column :label="$t('cargoSpace.warehouseId')" align="center" prop="warehouseId" />
<!-- 巷道号 -->
<el-table-column :label="$t('cargoSpace.roadwayId')" align="center" prop="roadwayId" />
<!-- <el-table-column :label="$t('cargoSpace.roadwayId')" align="center" prop="roadwayId" />-->
<!-- 货区编号 -->
<el-table-column :label="$t('cargoSpace.cargoAreaId')" align="center" prop="cargoAreaId" />
<!-- <el-table-column :label="$t('cargoSpace.cargoAreaId')" align="center" prop="cargoAreaId" />-->
<!-- 货位类型 -->
<!-- <el-table-column :label="$t('cargoSpace.cargoSpaceType')" align="center" prop="theType" /> -->
<!-- 货位类型名称 -->
<el-table-column :label="$t('cargoSpace.cargoSpaceTypeName')" align="center" prop="theTypeName" />
<!-- <el-table-column :label="$t('cargoSpace.cargoSpaceTypeName')" align="center" prop="theTypeName" />-->
<!-- 货位名称 -->
<el-table-column :label="$t('cargoSpace.cargoSpaceName')" align="center" prop="cargoSpaceName" />
<!-- 排 -->
<!-- <el-table-column :label="$t('cargoSpace.platoon')" align="center" prop="thePlatoon" /> -->
<el-table-column :label="$t('cargoSpace.platoon')" align="center" prop="thePlatoon" />
<!-- 列 -->
<!-- <el-table-column :label="$t('cargoSpace.column')" align="center" prop="theColumn" /> -->
<el-table-column :label="$t('cargoSpace.column')" align="center" prop="theColumn" />
<!-- 层 -->
<!-- <el-table-column :label="$t('cargoSpace.floor')" align="center" prop="theFloor" /> -->
<el-table-column :label="$t('cargoSpace.floor')" align="center" prop="theFloor" />
<!-- 货位编码 -->
<el-table-column :label="$t('cargoSpace.status')" align="center" prop="status" />
<el-table-column :label="$t('cargoSpace.status')" align="center" prop="status" >
<template slot-scope="scope">
<dict-tag :options="dict.type.cargo_space_status" :value="scope.row.status"/>
</template>
</el-table-column>
<!-- 是否锁定 -->
<el-table-column :label="$t('cargoSpace.locked')" align="center" prop="locked" />
<el-table-column :label="$t('cargoSpace.locked')" align="center" prop="locked" >
<template slot-scope="scope">
<dict-tag :options="dict.type.cargo_space_lock_status" :value="scope.row.locked"/>
</template>
</el-table-column>
<!-- 托盘编码 -->
<el-table-column :label="$t('cargoSpace.trayCode')" align="center" prop="trayCode" />
<!-- 货物高度 -->
<el-table-column :label="$t('cargoSpace.cargoHeight')" align="center" prop="cargoHight" />
<!-- 是否双伸 -->
<el-table-column :label="$t('cargoSpace.isDouble')" align="center" prop="issDouble" />
<!-- <el-table-column :label="$t('cargoSpace.isDouble')" align="center" prop="issDouble" />-->
<!-- 双货位分组编码 -->
<!-- <el-table-column :label="$t('cargoSpace.groupCodingNo')" align="center" prop="groupCodingNo" /> -->
<!-- 双货位分组编码名称1、2… -->
<el-table-column :label="$t('cargoSpace.groupCodingName')" align="center" prop="groupCoding" />
<!-- <el-table-column :label="$t('cargoSpace.groupCodingName')" align="center" prop="groupCoding" />-->
<!-- 双货位标识 0 外1内 -->
<!-- <el-table-column :label="$t('cargoSpace.cargoSpaceLogo')" align="center" prop="cargoSpaceLogo" /> -->
<!-- 本仓库区域 1--8 A 9--15 B -->
@@ -260,7 +273,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@@ -345,9 +358,11 @@
<script>
import { listCargoSpace, getCargoSpace, delCargoSpace, addCargoSpace, updateCargoSpace } from "@/api/bas/cargoSpace"
import {listWarehouse} from "@/api/bas/warehouse"
export default {
name: "CargoSpace",
dicts:['cargo_space_status','cargo_space_lock_status'],
data() {
return {
// 遮罩层
@@ -364,6 +379,7 @@ export default {
total: 0,
// 库存信息表格数据
cargoSpaceList: [],
warehouseOptions:[],
// 弹出层标题
title: "",
// 是否显示弹出层
@@ -427,9 +443,16 @@ export default {
}
},
created() {
this.getWarehouseList();
this.getList()
},
methods: {
/** 获取仓库列表 */
getWarehouseList() {
listWarehouse().then(response => {
this.warehouseOptions = response.rows;
});
},
/** 查询库存信息列表 */
getList() {
this.loading = true
@@ -540,11 +563,11 @@ export default {
},
comped: {
labelWidthForSearch() {
const lang = this.$i18n.locale;
const lang = this.$i18n.locale;
return lang.startsWith('en') ? '84px' : '68px';
},
labelWidthForFunction() {
const lang = this.$i18n.locale;
const lang = this.$i18n.locale;
return lang.startsWith('en') ? '150px' : '120px';
}
},

View File

@@ -2,15 +2,15 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" :label-width="labelWidthForSearch">
<el-form-item :label="$t('warehouse.Id')" prop="warehouseId">
<!-- 仓库ID(序号) -->
<!-- <el-form-item :label="$t('warehouse.Id')" prop="warehouseId">
&lt;!&ndash; 仓库ID(序号) &ndash;&gt;
<el-input
v-model="queryParams.warehouseId"
:placeholder="$t('warehouse.placeholderId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item>-->
<!-- 仓库编号 -->
<el-form-item :label="$t('warehouse.warehouseId')" prop="warehouseNo">
<el-input
@@ -76,6 +76,17 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('warehouse.warehouseType')" prop="warehouseType">
<el-select v-model="queryParams.warehouseType" :placeholder="$t('warehouse.placeholderWarehouseType')" clearable>
<el-option
v-for="dict in dict.type.warehouse_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item
<el-form-item>
<!-- 【查询】按钮 -->
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{ $t('warehouse.search') }}</el-button>
@@ -152,7 +163,11 @@
<!-- 仓库级别 -->
<el-table-column :label="$t('warehouse.warehouseKind')" align="center" prop="warehouseKind" />
<!-- 仓库类型 -->
<el-table-column :label="$t('warehouse.warehouseType')" align="center" prop="warehouseType" />
<el-table-column :label="$t('warehouse.warehouseType')" align="center" prop="warehouseType" >
<template slot-scope="scope">
<dict-tag :options="dict.type.warehouse_type" :value="scope.row.warehouseType"/>
</template>
</el-table-column>
<!-- 仓库是否可用 -->
<el-table-column :label="$t('warehouse.isCurrent')" align="center" prop="isCurrent">
<template slot-scope="scope">
@@ -248,7 +263,7 @@ import { listWarehouse, getWarehouse, delWarehouse, addWarehouse, updateWarehous
export default {
name: "Warehouse",
dicts: ['sys_yes_no'],
dicts: ['sys_yes_no','warehouse_type'],
data() {
return {
// 遮罩层

View File

@@ -1,22 +1,23 @@
<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="分组选项">
<el-form-item :label="$t('searchStockSummary.groupOptions')">
<el-checkbox-group v-model="queryParams.groupFields" @change="handleQuery">
<el-checkbox label="productId">物料编码</el-checkbox>
<el-checkbox label="productName">物料名称</el-checkbox>
<el-checkbox label="spec">规格</el-checkbox>
<el-checkbox label="unit">单位</el-checkbox>
<el-checkbox label="lotNo">批号</el-checkbox>
<el-checkbox label="warehouseId">仓库</el-checkbox>
<el-checkbox label="roadwayId">巷道</el-checkbox>
<el-checkbox label="price">价格</el-checkbox>
<el-checkbox label="spare1">英文名称</el-checkbox>
<el-checkbox label="spare2">单件净重</el-checkbox>
<el-checkbox label="spare5">长度</el-checkbox>
<el-checkbox label="spare6">宽度</el-checkbox>
<el-checkbox label="spare7">高度</el-checkbox>
<el-checkbox label="spare8">体积</el-checkbox>
<el-checkbox label="productId">{{$t('searchStockSummary.productId')}}</el-checkbox>
<el-checkbox label="productName">{{$t('searchStockSummary.productName')}}</el-checkbox>
<!-- <el-checkbox label="spec">{{$t('searchStockSummary.spec')}}</el-checkbox>-->
<el-checkbox label="unit">{{$t('searchStockSummary.unit')}}</el-checkbox>
<!-- <el-checkbox label="lotNo">{{$t('searchStockSummary.lotNo')}}</el-checkbox>-->
<el-checkbox label="warehouseId">{{$t('searchStockSummary.warehouseId')}}</el-checkbox>
<!-- <el-checkbox label="roadwayId">{{$t('searchStockSummary.roadwayId')}}</el-checkbox>-->
<el-checkbox label="cargoSpaceId">{{$t('searchStockSummary.cargoSpace')}}</el-checkbox>
<el-checkbox label="price">{{$t('basproduct1.price')}}</el-checkbox>
<el-checkbox label="spare1">{{$t('basproduct1.englishName')}}</el-checkbox>
<el-checkbox label="spare2">{{$t('basproduct1.netWeightPerUnit')}}</el-checkbox>
<el-checkbox label="spare5">{{$t('basproduct1.long')}}</el-checkbox>
<el-checkbox label="spare6">{{$t('basproduct1.wide')}}</el-checkbox>
<el-checkbox label="spare7">{{$t('basproduct1.tall')}}</el-checkbox>
<el-checkbox label="spare8">{{$t('basproduct1.volume')}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<br>
@@ -62,10 +63,10 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchStockSummary.roadwayId')" prop="roadwayId"> <!-- 巷道 -->
<el-form-item :label="$t('searchStockSummary.cargoSpace')" prop="cargoSpaceId"> <!-- 巷道 -->
<el-input
v-model="queryParams.roadwayId"
:placeholder="$t('searchStockSummary.inputRoadwayId')"
v-model="queryParams.cargoSpaceId"
:placeholder="$t('searchStockSummary.inputCargoSpace')"
clearable
@keyup.enter.native="handleQuery"
/>
@@ -98,11 +99,11 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('searchStockSummary.productId')" align="center" prop="productId" v-if="queryParams.groupFields.includes('productId')" /> <!-- 物料编码 -->
<el-table-column :label="$t('searchStockSummary.productName')" align="center" prop="productName" v-if="queryParams.groupFields.includes('productName')" /> <!-- 物料名称 -->
<el-table-column :label="$t('searchStockSummary.spec')" align="center" prop="spec" v-if="queryParams.groupFields.includes('spec')" /> <!-- 规格 -->
<!-- <el-table-column :label="$t('searchStockSummary.spec')" align="center" prop="spec" v-if="queryParams.groupFields.includes('spec')" /> &lt;!&ndash; 规格 &ndash;&gt;-->
<el-table-column :label="$t('searchStockSummary.unit')" align="center" prop="unit" v-if="queryParams.groupFields.includes('unit')" /> <!-- 单位 -->
<el-table-column :label="$t('searchStockSummary.lotNo')" align="center" prop="lotNo" v-if="queryParams.groupFields.includes('lotNo')" /> <!-- 批号 -->
<el-table-column :label="$t('searchStockSummary.warehouseId')" align="center" prop="warehouseId" v-if="queryParams.groupFields.includes('warehouseId')" /> <!-- 仓库 -->
<el-table-column :label="$t('searchStockSummary.roadwayId')" align="center" prop="roadwayId" v-if="queryParams.groupFields.includes('roadwayId')" /> <!-- 巷道 -->
<!-- <el-table-column :label="$t('searchStockSummary.lotNo')" align="center" prop="lotNo" v-if="queryParams.groupFields.includes('lotNo')" /> &lt;!&ndash; 批号 &ndash;&gt;-->
<el-table-column :label="$t('searchStockSummary.warehouseId')" align="center" prop="warehouseName" v-if="queryParams.groupFields.includes('warehouseId')" /> <!-- 仓库 -->
<el-table-column :label="$t('searchStockSummary.cargoSpace')" align="center" prop="cargoSpaceName" v-if="queryParams.groupFields.includes('cargoSpaceId')" /> <!-- 货位 -->
<el-table-column :label="$t('searchStockSummary.quantity')" align="center" prop="quantity" /> <!-- 库存数量 -->
<el-table-column :label="$t('basproduct1.englishName')" align="center" prop="spare1" v-if="queryParams.groupFields.includes('spare1')" /><!-- 英文名称 -->
<el-table-column :label="$t('basproduct1.netWeightPerUnit')" align="center" prop="spare2" v-if="queryParams.groupFields.includes('spare2')" /><!-- 单件净重 -->
@@ -168,7 +169,7 @@ export default {
created() {
// 初始化时全选分组选项
this.queryParams.groupFields = [
'productId', 'productName', 'spec', 'unit', 'lotNo', 'warehouseId', 'roadwayId',
'productId', 'productName', 'spec', 'unit', 'lotNo', 'warehouseId', 'cargoSpaceId',
'price', 'spare1', 'spare2', 'spare5', 'spare6', 'spare7', 'spare8'
];
this.getList();
@@ -217,7 +218,7 @@ export default {
this.resetForm("queryForm");
// 重置时恢复全选状态
this.queryParams.groupFields = [
'productId', 'productName', 'spec', 'unit', 'lotNo', 'warehouseId', 'roadwayId',
'productId', 'productName', 'spec', 'unit', 'lotNo', 'warehouseId', 'cargoSpaceId',
'price', 'spare1', 'spare2', 'spare5', 'spare6', 'spare7', 'spare8'
];
this.handleQuery();

View File

@@ -163,6 +163,27 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('stockManagement.productStatus')" prop="productStatus"><!-- 物料状态 -->
<el-select v-model="queryParams.productStatus" :placeholder="$t('stockManagement.selectProductStatus')" clearable>
<el-option
v-for="dict in dict.type.product_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('stockManagement.stockStatus')" prop="stockStatus"><!-- 库存状态 -->
<el-select v-model="queryParams.stockStatus" :placeholder="$t('stockManagement.stockStatus')" clearable>
<el-option
v-for="dict in dict.type.stock_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{$t('searchViewStockDetail.search')}} <!-- 搜索 --></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{$t('searchViewStockDetail.reset')}} <!-- 重置 --></el-button>
@@ -223,18 +244,36 @@
<el-table-column :label="$t('searchViewStockDetail.trayCode')" align="center" prop="trayCode" />
<el-table-column :label="$t('searchViewStockDetail.quantity')" align="center" prop="quantity" />
<el-table-column :label="$t('searchViewStockDetail.jobId')" align="center" prop="jobId" />
<el-table-column :label="$t('searchViewStockDetail.lotNo')" align="center" prop="lotNo" />
<!-- <el-table-column :label="$t('searchViewStockDetail.lotNo')" align="center" prop="lotNo" />-->
<el-table-column :label="$t('searchViewStockDetail.stockinDetailId')" align="center" prop="stockinDetailId" />
<el-table-column :label="$t('searchViewStockDetail.inDate')" align="center" prop="inDate" />
<el-table-column :label="$t('searchViewStockDetail.warehouseId')" align="center" prop="warehouseId" />
<el-table-column :label="$t('searchViewStockDetail.stackingId')" align="center" prop="stackingId" />
<el-table-column :label="$t('searchViewStockDetail.warehouseId')" align="center" prop="warehouseName" />
<!-- <el-table-column :label="$t('searchViewStockDetail.stackingId')" align="center" prop="stackingId" />-->
<el-table-column :label="$t('searchViewStockDetail.cargoSpaceName')" align="center" prop="cargoSpaceName" />
<el-table-column :label="$t('searchViewStockDetail.roadwayId')" align="center" prop="roadwayId" />
<el-table-column :label="$t('searchViewStockDetail.cargoSpaceStatus')" align="center" prop="cargoSpaceStatus" />
<el-table-column :label="$t('searchViewStockDetail.locked')" align="center" prop="locked" />
<el-table-column :label="$t('searchViewStockDetail.cargoSpaceStatus')" align="center" prop="cargoSpaceStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.cargo_space_status" :value="scope.row.cargoSpaceStatus"/>
</template>
</el-table-column>
<el-table-column :label="$t('searchViewStockDetail.stockStatus')" align="center" prop="stockStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.stock_status" :value="scope.row.stockStatus"/>
</template>
</el-table-column>
<el-table-column :label="$t('searchViewStockDetail.productStatus')" align="center" prop="productStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.product_status" :value="scope.row.productStatus"/>
</template>
</el-table-column>
<el-table-column :label="$t('searchViewStockDetail.locked')" align="center" prop="locked" >
<template slot-scope="scope">
<dict-tag :options="dict.type.cargo_space_lock_status" :value="scope.row.locked"/>
</template>
</el-table-column>
<el-table-column :label="$t('searchViewStockDetail.productId')" align="center" prop="productId" />
<el-table-column :label="$t('searchViewStockDetail.productName')" align="center" prop="productName" />
<el-table-column :label="$t('searchViewStockDetail.spec')" align="center" prop="spec" />
<!-- <el-table-column :label="$t('searchViewStockDetail.spec')" align="center" prop="spec" />-->
<el-table-column :label="$t('searchViewStockDetail.unit')" align="center" prop="unit" />
<el-table-column :label="$t('basproduct1.englishName')" align="center" prop="spare1" /><!-- 英文名称 -->
<el-table-column :label="$t('basproduct1.netWeightPerUnit')" align="center" prop="spare2" /><!-- 单件净重 -->
@@ -347,6 +386,7 @@ import { listWarehouse } from "@/api/bas/warehouse"
export default {
name: "ViewStockDetail",
dicts: ['product_status', 'stock_status','cargo_space_status','cargo_space_lock_status'],
data() {
return {
// 遮罩层