Browse Source

[feat]新增库存新增物理对应模块的物料信息搜索。

dev
zhangsiqi 3 months ago
parent
commit
9c81dab1de
  1. 47
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java
  2. 42
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiryDetail.java
  3. 1
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseStorageOrderMapper.java
  4. 12
      ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml
  5. 79
      ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryHistory.html
  6. 145
      ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html
  7. 52
      ruoyi-admin/src/main/resources/templates/warehouse/inventoryReportDamage/edit.html

47
ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java

@ -50,6 +50,9 @@ public class WarehouseInventoryInquiry extends BaseEntity
@Excel(name = "物料加工方式")
private String materialProcessMethod;
@Excel(name = "入库部门",sort = 9,dictType = "warehouseDept")
private String warehouseDept;
/** 物料型号 */
@Excel(name = "物料型号")
private String materialModel;
@ -60,27 +63,27 @@ public class WarehouseInventoryInquiry extends BaseEntity
/** 物料历史总数量 */
@Excel(name = "物料历史总数量")
private Integer historicalTotal;
private Double historicalTotal;
/** 可用库存数 */
@Excel(name = "可用库存数")
private Integer availableStockNum;
private Double availableStockNum;
/** 物料归属可用库存数 */
@Excel(name = "物料归属可用库存数")
private Integer attributionAvailableStockNum;
private Double attributionAvailableStockNum;
/** 物料无归属可用库存数 */
@Excel(name = "物料无归属可用库存数")
private Integer noattributionAvailableStockNum;
private Double noattributionAvailableStockNum;
/** 物料使用数 */
@Excel(name = "物料使用数")
private Integer useNum;
private Double useNum;
/** 物料报损数 */
@Excel(name = "物料报损数")
private Integer reportDamageNum;
private Double reportDamageNum;
/** 物料使用状态(0 使用中、1 已作废) */
@Excel(name = "物料使用状态", readConverterExp = "0=,使=用中、1,已=作废")
@ -185,57 +188,57 @@ public class WarehouseInventoryInquiry extends BaseEntity
{
return materialSpecification;
}
public void setHistoricalTotal(Integer historicalTotal)
public void setHistoricalTotal(Double historicalTotal)
{
this.historicalTotal = historicalTotal;
}
public Integer getHistoricalTotal()
public Double getHistoricalTotal()
{
return historicalTotal;
}
public void setAvailableStockNum(Integer availableStockNum)
public void setAvailableStockNum(Double availableStockNum)
{
this.availableStockNum = availableStockNum;
}
public Integer getAvailableStockNum()
public Double getAvailableStockNum()
{
return availableStockNum;
}
public void setAttributionAvailableStockNum(Integer attributionAvailableStockNum)
public void setAttributionAvailableStockNum(Double attributionAvailableStockNum)
{
this.attributionAvailableStockNum = attributionAvailableStockNum;
}
public Integer getAttributionAvailableStockNum()
public Double getAttributionAvailableStockNum()
{
return attributionAvailableStockNum;
}
public void setNoattributionAvailableStockNum(Integer noattributionAvailableStockNum)
public void setNoattributionAvailableStockNum(Double noattributionAvailableStockNum)
{
this.noattributionAvailableStockNum = noattributionAvailableStockNum;
}
public Integer getNoattributionAvailableStockNum()
public Double getNoattributionAvailableStockNum()
{
return noattributionAvailableStockNum;
}
public void setUseNum(Integer useNum)
public void setUseNum(Double useNum)
{
this.useNum = useNum;
}
public Integer getUseNum()
public Double getUseNum()
{
return useNum;
}
public void setReportDamageNum(Integer reportDamageNum)
public void setReportDamageNum(Double reportDamageNum)
{
this.reportDamageNum = reportDamageNum;
}
public Integer getReportDamageNum()
public Double getReportDamageNum()
{
return reportDamageNum;
}
@ -249,6 +252,14 @@ public class WarehouseInventoryInquiry extends BaseEntity
return materialUseStatus;
}
public String getWarehouseDept() {
return warehouseDept;
}
public void setWarehouseDept(String warehouseDept) {
this.warehouseDept = warehouseDept;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

42
ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiryDetail.java

@ -52,22 +52,22 @@ public class WarehouseInventoryInquiryDetail extends BaseEntity
private String materialSpecification;
/** 物料历史总数量 */
private Integer historicalTotal;
private Double historicalTotal;
/** 可用库存数 */
private Integer availableStockNum;
private Double availableStockNum;
/** 物料归属可用库存数 */
private Integer attributionAvailableStockNum;
private Double attributionAvailableStockNum;
/** 物料无归属可用库存数 */
private Integer noattributionAvailableStockNum;
private Double noattributionAvailableStockNum;
/** 物料使用数 */
private Integer useNum;
private Double useNum;
/** 物料报损数 */
private Integer reportDamageNum;
private Double reportDamageNum;
/** 物料使用状态 */
private String materialUseStatus;
@ -95,7 +95,7 @@ public class WarehouseInventoryInquiryDetail extends BaseEntity
/** 库存历史数量 */
@Excel(name = "库存历史数量")
private Integer inventoryHistoricalNum;
private Double inventoryHistoricalNum;
/** 不含税采购总价 */
@Excel(name = "不含税采购总价")
@ -216,57 +216,57 @@ public class WarehouseInventoryInquiryDetail extends BaseEntity
{
return materialSpecification;
}
public void setHistoricalTotal(Integer historicalTotal)
public void setHistoricalTotal(Double historicalTotal)
{
this.historicalTotal = historicalTotal;
}
public Integer getHistoricalTotal()
public Double getHistoricalTotal()
{
return historicalTotal;
}
public void setAvailableStockNum(Integer availableStockNum)
public void setAvailableStockNum(Double availableStockNum)
{
this.availableStockNum = availableStockNum;
}
public Integer getAvailableStockNum()
public Double getAvailableStockNum()
{
return availableStockNum;
}
public void setAttributionAvailableStockNum(Integer attributionAvailableStockNum)
public void setAttributionAvailableStockNum(Double attributionAvailableStockNum)
{
this.attributionAvailableStockNum = attributionAvailableStockNum;
}
public Integer getAttributionAvailableStockNum()
public Double getAttributionAvailableStockNum()
{
return attributionAvailableStockNum;
}
public void setNoattributionAvailableStockNum(Integer noattributionAvailableStockNum)
public void setNoattributionAvailableStockNum(Double noattributionAvailableStockNum)
{
this.noattributionAvailableStockNum = noattributionAvailableStockNum;
}
public Integer getNoattributionAvailableStockNum()
public Double getNoattributionAvailableStockNum()
{
return noattributionAvailableStockNum;
}
public void setUseNum(Integer useNum)
public void setUseNum(Double useNum)
{
this.useNum = useNum;
}
public Integer getUseNum()
public Double getUseNum()
{
return useNum;
}
public void setReportDamageNum(Integer reportDamageNum)
public void setReportDamageNum(Double reportDamageNum)
{
this.reportDamageNum = reportDamageNum;
}
public Integer getReportDamageNum()
public Double getReportDamageNum()
{
return reportDamageNum;
}
@ -324,12 +324,12 @@ public class WarehouseInventoryInquiryDetail extends BaseEntity
{
return inventoryIncreaseDecrease;
}
public void setInventoryHistoricalNum(Integer inventoryHistoricalNum)
public void setInventoryHistoricalNum(Double inventoryHistoricalNum)
{
this.inventoryHistoricalNum = inventoryHistoricalNum;
}
public Integer getInventoryHistoricalNum()
public Double getInventoryHistoricalNum()
{
return inventoryHistoricalNum;
}

1
ruoyi-admin/src/main/java/com/ruoyi/warehouse/mapper/WarehouseStorageOrderMapper.java

@ -3,6 +3,7 @@ package com.ruoyi.warehouse.mapper;
import java.util.List;
import com.ruoyi.warehouse.domain.WarehouseStorageOrder;
import com.ruoyi.warehouse.domain.WarehouseStorageOrderDetail;
import org.mapstruct.Mapper;
/**
* 仓库入库单Mapper接口

12
ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml

@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="materialProcessMethod" column="material_process_method" />
<result property="materialModel" column="material_model" />
<result property="materialSpecification" column="material_specification" />
<result property="warehouseDept" column="warehouse_dept" />
<result property="historicalTotal" column="historical_total" />
<result property="availableStockNum" column="available_stock_num" />
<result property="attributionAvailableStockNum" column="attribution_available_stock_num" />
@ -31,7 +32,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectWarehouseInventoryInquiryVo">
select inventory_inquiry_id, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, material_model, material_specification, historical_total, available_stock_num, attribution_available_stock_num, noattribution_available_stock_num, use_num, report_damage_num, material_use_status, remark, create_time, create_by, update_by, update_time from warehouse_inventory_inquiry
select inventory_inquiry_id, material_no, material_name, material_type,
material_photoUrl, material_brand, material_unit, material_describe,
material_process_method, material_model, material_specification,warehouse_dept,
historical_total, available_stock_num, attribution_available_stock_num,
noattribution_available_stock_num, use_num, report_damage_num, material_use_status,
remark, create_time, create_by, update_by, update_time
from warehouse_inventory_inquiry
</sql>
<select id="selectWarehouseInventoryInquiryList" parameterType="WarehouseInventoryInquiry" resultMap="WarehouseInventoryInquiryResult">
@ -67,6 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialProcessMethod != null">material_process_method,</if>
<if test="materialModel != null">material_model,</if>
<if test="materialSpecification != null">material_specification,</if>
<if test="warehouseDept != null">warehouse_dept,</if>
<if test="historicalTotal != null">historical_total,</if>
<if test="availableStockNum != null">available_stock_num,</if>
<if test="attributionAvailableStockNum != null">attribution_available_stock_num,</if>
@ -91,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialProcessMethod != null">#{materialProcessMethod},</if>
<if test="materialModel != null">#{materialModel},</if>
<if test="materialSpecification != null">#{materialSpecification},</if>
<if test="warehouseDept != null">#{warehouseDept},</if>
<if test="historicalTotal != null">#{historicalTotal},</if>
<if test="availableStockNum != null">#{availableStockNum},</if>
<if test="attributionAvailableStockNum != null">#{attributionAvailableStockNum},</if>
@ -119,6 +128,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialProcessMethod != null">material_process_method = #{materialProcessMethod},</if>
<if test="materialModel != null">material_model = #{materialModel},</if>
<if test="materialSpecification != null">material_specification = #{materialSpecification},</if>
<if test="warehouseDept != null">warehouse_dept = #{warehouseDept},</if>
<if test="historicalTotal != null">historical_total = #{historicalTotal},</if>
<if test="availableStockNum != null">available_stock_num = #{availableStockNum},</if>
<if test="attributionAvailableStockNum != null">attribution_available_stock_num = #{attributionAvailableStockNum},</if>

79
ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryHistory.html

@ -16,7 +16,12 @@
<div class="form-group">
<label class="col-sm-3 control-label">图片:</label>
<div class="col-sm-8">
<input name="materialPhotourl" th:field="*{materialPhotourl}" class="form-control" type="text" disabled>
<div>
<img th:src="*{materialPhotourl}" />
</div>
<!-- 隐藏字段保存图片URL -->
<input type="hidden" th:field="*{materialPhotourl}" th:value="*{materialPhotourl}" />
</div>
</div>
<div class="form-group">
@ -70,63 +75,21 @@
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
columns: [{
checkbox: true
},
{
title: '库存查询详情id',
field: 'inventoryInquiryDetailId',
visible: false
},
{
title: '物料号',
field: 'materialNo',
visible: false
},
{
title: '库存历史时间',
field: 'inventoryHistoricalTime',
},
{
title: '库存历史类型',
field: 'inventoryHistoricalType',
},
{
title: '库存增减',
field: 'inventoryIncreaseDecrease',
},
{
title: '库存历史数量',
field: 'inventoryHistoricalNum',
},
{
title: '不含税采购总价',
field: 'purchasePriceExcludingTax',
},
{
title: '含税总价',
field: 'purchasePriceIncludesTax',
},
{
title: '采购单号',
field: 'purchaseOrderCode',
},
{
title: '供应商ID',
field: 'supplierCode',
},
{
title: '供应商名称',
field: 'supplierName',
},
{
title: '库存归属单号',
field: 'inventoryAttributionCode',
},
{
title: '库存使用单号',
field: 'inventoryUseCode',
},
columns: [
{checkbox: true},
{title: '库存查询详情id', field: 'inventoryInquiryDetailId', visible: false},
{title: '物料号', field: 'materialNo', visible: false},
{title: '库存历史时间', field: 'inventoryHistoricalTime',},
{title: '库存历史类型', field: 'inventoryHistoricalType',},
{title: '库存增减', field: 'inventoryIncreaseDecrease',},
{title: '库存历史数量', field: 'inventoryHistoricalNum',},
{title: '不含税采购总价', field: 'purchasePriceExcludingTax',},
{title: '含税总价', field: 'purchasePriceIncludesTax',},
{title: '采购单号', field: 'purchaseOrderCode',},
{title: '供应商ID', field: 'supplierCode',},
{title: '供应商名称', field: 'supplierName',},
{title: '库存归属单号', field: 'inventoryAttributionCode',},
{title: '库存使用单号', field: 'inventoryUseCode',},
]
};
$.table.init(options);

145
ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html

@ -49,11 +49,19 @@
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('warehouse:inventoryInquiry:edit')}]];
var materialUseStatusDatas = [[${@dict.getType('material_use_status')}]];
var auditStatusDatas = [[${@dict.getType('auditStatus')}]];
var useStatusDatas = [[${@dict.getType('useStatus')}]];
var processMethodDatas = [[${@dict.getType('processMethod')}]];
var sysUnitClassDatas = [[${@dict.getType('sysUnitClassDatas')}]];
var warehouseDeptDatas = [[${@dict.getType('warehouseDept')}]];
var haveProductTem = [[${@dict.getType('haveProductTem')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var commonCurrencyDatas = [[${@dict.getType('commonCurrentcy')}]];
var userName = [[${@permission.getPrincipalProperty('userName')}]];
var currentUser = [[${currentUser}]];
var loginName = [[${@permission.getPrincipalProperty('loginName')}]];
var prefix = ctx + "warehouse/inventoryInquiry";
$(function() {
var options = {
url: prefix + "/list",
@ -61,110 +69,59 @@
updateUrl: prefix + "/edit/{id}",
exportUrl: prefix + "/export",
modalName: "仓库库存查询",
columns: [{
checkbox: true
},
{
title: '库存查询id',
field: 'inventoryInquiryId',
visible: false
},
{
title: '料号',
field: 'materialNo',
},
{
title: '物料名称',
field: 'materialName',
},
{
title: '物料类型',
field: 'materialType',
},
{
title: '物料图片地址',
field: 'materialPhotourl',
},
{
title: '物料品牌',
field: 'materialBrand',
},
{
title: '物料单位',
field: 'materialUnit',
},
{
title: '物料描述',
field: 'materialDescribe',
},
{
title: '物料加工方式',
field: 'materialProcessMethod',
},
{
title: '物料型号',
field: 'materialModel',
},
{
title: '物料规格',
field: 'materialSpecification',
},
{
title: '物料历史总数量',
field: 'historicalTotal',
},
{
title: '可用库存数',
field: 'availableStockNum',
},
{
title: '物料归属可用库存数',
field: 'attributionAvailableStockNum',
columns: [
{checkbox: true},
{title: '库存查询id', field: 'inventoryInquiryId', visible: false},
{title: '料号', field: 'materialNo',},
{title: '物料名称', field: 'materialName',},
{title: '物料类型', field: 'materialType',
formatter: function( value, row,index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
title: '物料无归属可用库存数',
field: 'noattributionAvailableStockNum',
{title: '物料图片地址', field: 'materialPhotourl',
formatter: function(value, row, index) {
return $.table.imageView(value);
}
},
{
title: '物料使用数',
field: 'useNum',
{title: '物料品牌', field: 'materialBrand',},
{title: '物料单位', field: 'materialUnit',},
{title: '物料描述', field: 'materialDescribe',},
{title: '物料加工方式', field: 'materialProcessMethod',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
},
{
title: '物料报损数',
field: 'reportDamageNum',
{title: '物料型号', field: 'materialModel',},
{title: '物料规格', field: 'materialSpecification',},
{title: '物料入库部门', field: 'warehouseDept',visible: false,
formatter: function(value, row, index) {
return $.table.selectDictLabel(warehouseDeptDatas, value);
}
},
{
title: '物料使用状态',
field: 'materialUseStatus',
{title: '物料历史总数量', field: 'historicalTotal',},
{title: '可用库存数', field: 'availableStockNum',},
{title: '物料归属可用库存数', field: 'attributionAvailableStockNum',},
{title: '物料无归属可用库存数', field: 'noattributionAvailableStockNum',},
{title: '物料使用数', field: 'useNum',},
{title: '物料报损数', field: 'reportDamageNum',},
{title: '物料使用状态', field: 'materialUseStatus',
formatter: function(value, row, index) {
return $.table.selectDictLabel(materialUseStatusDatas, value);
}
},
{
title: '录入时间',
field: 'createTime',
},
{
title: '录入人',
field: 'createBy',
},
{
title: '更新人',
field: 'updateBy',
},
{
title: '上次更新时间',
field: 'updateTime',
},
{
title: '操作',
align: 'center',
{title: '录入时间', field: 'createTime',},
{title: '录入人', field: 'createBy',},
{title: '更新人', field: 'updateBy',},
{title: '上次更新时间', field: 'updateTime',},
{title: '操作', align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.inventoryInquiryId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
return actions.join('');
}
}]
}
]
};
$.table.init(options);
});

52
ruoyi-admin/src/main/resources/templates/warehouse/inventoryReportDamage/edit.html

@ -9,32 +9,32 @@
<form class="form-horizontal m" id="form-inventoryReportDamage-edit" th:object="${warehouseInventoryReportDamage}">
<input name="reportDamageId" th:field="*{reportDamageId}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">报废类型:</label>
<label class="col-sm-3 control-label is-required">报废类型:</label>
<div class="col-sm-8">
<select name="warehousScrapType" class="form-control m-b" th:with="type=${@dict.getType('warehous_scrap_type')}">
<select name="warehousScrapType" class="form-control m-b" th:with="type=${@dict.getType('warehous_scrap_type')}" required>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{warehousScrapType}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">关联生产单号:</label>
<label class="col-sm-3 control-label is-required">是否关联生产单号:</label>
<div class="col-sm-8">
<input name="makeNo" th:field="*{makeNo}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否关联生产单号:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('yes_or_no')}">
<div class="radio-box" th:each="dict : ${@dict.getType('yes_or_no')}" required>
<input type="radio" th:id="${'whetherMakeNo_' + dict.dictCode}" name="whetherMakeNo" th:value="${dict.dictValue}" th:field="*{whetherMakeNo}">
<label th:for="${'whetherMakeNo_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group" hidden="hidden">
<label class="col-sm-3 control-label is-required">关联生产单号:</label>
<div class="col-sm-8">
<input name="makeNo" th:field="*{makeNo}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">申请部门:</label>
<label class="col-sm-3 control-label is-required">申请部门:</label>
<div class="col-sm-8">
<input name="applyDept" th:field="*{applyDept}" class="form-control" type="text">
<input name="applyDept" th:field="*{applyDept}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
@ -47,45 +47,45 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">料号:</label>
<label class="col-sm-3 control-label is-required">料号:</label>
<div class="col-sm-8">
<input name="materialNo" th:field="*{materialNo}" class="form-control" type="text">
<input name="materialNo" th:field="*{materialNo}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">物料名称:</label>
<label class="col-sm-3 control-label is-required">物料名称:</label>
<div class="col-sm-8">
<input name="materialName" th:field="*{materialName}" class="form-control" type="text">
<input name="materialName" th:field="*{materialName}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">物料数合计:</label>
<label class="col-sm-3 control-label is-required">物料数合计:</label>
<div class="col-sm-8">
<input name="materialTotal" th:field="*{materialTotal}" class="form-control" type="text">
<input name="materialTotal" th:field="*{materialTotal}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">数量合计:</label>
<label class="col-sm-3 control-label is-required">数量合计:</label>
<div class="col-sm-8">
<input name="numTotal" th:field="*{numTotal}" class="form-control" type="text">
<input name="numTotal" th:field="*{numTotal}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">仓库ID:</label>
<label class="col-sm-3 control-label is-required">仓库ID:</label>
<div class="col-sm-8">
<input name="warehouseCode" th:field="*{warehouseCode}" class="form-control" type="text">
<input name="warehouseCode" th:field="*{warehouseCode}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">仓库名称:</label>
<label class="col-sm-3 control-label is-required">仓库名称:</label>
<div class="col-sm-8">
<input name="warehouseName" th:field="*{warehouseName}" class="form-control" type="text">
<input name="warehouseName" th:field="*{warehouseName}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">仓库存放地址:</label>
<label class="col-sm-3 control-label is-required">仓库存放地址:</label>
<div class="col-sm-8">
<input name="warehouseStoreAddress" th:field="*{warehouseStoreAddress}" class="form-control" type="text">
<input name="warehouseStoreAddress" th:field="*{warehouseStoreAddress}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group ">

Loading…
Cancel
Save