sunxianglong 5 bulan lalu
induk
melakukan
6954a83b47

+ 15 - 0
src/main/java/com/jeesite/modules/wms/dao/WmsHouseDao.java

@@ -0,0 +1,15 @@
+package com.jeesite.modules.wms.dao;
+
+import com.jeesite.common.dao.CrudDao;
+import com.jeesite.common.mybatis.annotation.MyBatisDao;
+import com.jeesite.modules.wms.entity.WmsHouse;
+
+/**
+ * 仓库表DAO接口
+ * @author sxl
+ * @version 2026-05-08
+ */
+@MyBatisDao
+public interface WmsHouseDao extends CrudDao<WmsHouse> {
+	
+}

+ 15 - 0
src/main/java/com/jeesite/modules/wms/dao/WmsHouseLocationDao.java

@@ -0,0 +1,15 @@
+package com.jeesite.modules.wms.dao;
+
+import com.jeesite.common.dao.CrudDao;
+import com.jeesite.common.mybatis.annotation.MyBatisDao;
+import com.jeesite.modules.wms.entity.WmsHouseLocation;
+
+/**
+ * 库位表DAO接口
+ * @author sxl
+ * @version 2026-05-08
+ */
+@MyBatisDao
+public interface WmsHouseLocationDao extends CrudDao<WmsHouseLocation> {
+	
+}

+ 69 - 0
src/main/java/com/jeesite/modules/wms/entity/WmsHouse.java

@@ -0,0 +1,69 @@
+package com.jeesite.modules.wms.entity;
+
+import javax.validation.constraints.Size;
+
+import com.jeesite.common.entity.DataEntity;
+import com.jeesite.common.mybatis.annotation.Column;
+import com.jeesite.common.mybatis.annotation.Table;
+import com.jeesite.common.mybatis.mapper.query.QueryType;
+
+/**
+ * 仓库表Entity
+ * @author sxl
+ * @version 2026-05-08
+ */
+@Table(name="wms_house", alias="a", label="仓库表信息", columns={
+		@Column(name="id", attrName="id", label="id", isPK=true),
+		@Column(name="title", attrName="title", label="仓库名称", queryType=QueryType.LIKE),
+		@Column(name="position", attrName="position", label="仓库位置"),
+		@Column(name="remark", attrName="remark", label="备注"),
+		@Column(name="status", attrName="status", label="状态", comment="状态(0正常 1删除 2停用)", isUpdate=false),
+		@Column(name="create_by", attrName="createBy", label="创建者", isUpdate=false, isQuery=false),
+		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false),
+		@Column(name="update_by", attrName="updateBy", label="更新者", isQuery=false),
+		@Column(name="update_date", attrName="updateDate", label="更新时间", isQuery=false),
+	}, orderBy="a.update_date DESC"
+)
+public class WmsHouse extends DataEntity<WmsHouse> {
+
+	private static final long serialVersionUID = 1L;
+	private String title;		// 仓库名称
+	private String position;		// 仓库位置
+	private String remark;		// 备注
+
+	public WmsHouse() {
+		this(null);
+	}
+
+	public WmsHouse(String id){
+		super(id);
+	}
+
+	@Size(min=0, max=255, message="仓库名称长度不能超过 255 个字符")
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	@Size(min=0, max=255, message="仓库位置长度不能超过 255 个字符")
+	public String getPosition() {
+		return position;
+	}
+
+	public void setPosition(String position) {
+		this.position = position;
+	}
+
+	@Size(min=0, max=255, message="备注长度不能超过 255 个字符")
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+}

+ 84 - 0
src/main/java/com/jeesite/modules/wms/entity/WmsHouseLocation.java

@@ -0,0 +1,84 @@
+package com.jeesite.modules.wms.entity;
+
+import javax.validation.constraints.Size;
+
+import com.jeesite.common.entity.DataEntity;
+import com.jeesite.common.mybatis.annotation.Column;
+import com.jeesite.common.mybatis.annotation.JoinTable;
+import com.jeesite.common.mybatis.annotation.Table;
+import com.jeesite.common.mybatis.mapper.query.QueryType;
+
+/**
+ * 库位表Entity
+ * @author sxl
+ * @version 2026-05-08
+ */
+@Table(name="wms_house_location", alias="a", label="库位表信息", columns={
+		@Column(name="id", attrName="id", label="id", isPK=true),
+		@Column(name="house_id", attrName="houseId", label="仓库"),
+		@Column(name="title", attrName="title", label="库位名称", queryType=QueryType.LIKE),
+		@Column(name="remark", attrName="remark", label="备注"),
+		@Column(name="status", attrName="status", label="状态", comment="状态(0正常 1删除 2停用)", isUpdate=false),
+		@Column(name="create_by", attrName="createBy", label="创建者", isUpdate=false, isQuery=false),
+		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false),
+		@Column(name="update_by", attrName="updateBy", label="更新者", isQuery=false),
+		@Column(name="update_date", attrName="updateDate", label="更新时间", isQuery=false),
+} ,joinTable={
+		@JoinTable(type= JoinTable.Type.JOIN, entity= WmsHouse.class, attrName="this", alias="b",
+				on="b.id = a.house_id",
+				columns={
+						@Column(name="title", attrName="houseTitle", label="仓库名称", queryType=QueryType.LIKE),
+				}),
+}, orderBy="a.update_date DESC"
+)
+public class WmsHouseLocation extends DataEntity<WmsHouseLocation> {
+
+	private static final long serialVersionUID = 1L;
+	private String houseId;		// 仓库
+	private String title;		// 仓位名称
+	private String remark;		// 备注
+	private String houseTitle;	// 仓库名称
+
+	public WmsHouseLocation() {
+		this(null);
+	}
+
+	public WmsHouseLocation(String id){
+		super(id);
+	}
+
+	@Size(min=0, max=255, message="仓库长度不能超过 255 个字符")
+	public String getHouseId() {
+		return houseId;
+	}
+
+	public void setHouseId(String houseId) {
+		this.houseId = houseId;
+	}
+
+	@Size(min=0, max=255, message="库位名称长度不能超过 255 个字符")
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	@Size(min=0, max=255, message="备注长度不能超过 255 个字符")
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public String getHouseTitle() {
+		return houseTitle;
+	}
+
+	public void setHouseTitle(String houseTitle) {
+		this.houseTitle = houseTitle;
+	}
+}

+ 81 - 0
src/main/java/com/jeesite/modules/wms/service/WmsHouseLocationService.java

@@ -0,0 +1,81 @@
+package com.jeesite.modules.wms.service;
+
+import java.util.List;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.jeesite.common.entity.Page;
+import com.jeesite.common.service.CrudService;
+import com.jeesite.modules.wms.entity.WmsHouseLocation;
+import com.jeesite.modules.wms.dao.WmsHouseLocationDao;
+
+/**
+ * 库位表Service
+ * @author sxl
+ * @version 2026-05-08
+ */
+@Service
+public class WmsHouseLocationService extends CrudService<WmsHouseLocationDao, WmsHouseLocation> {
+	
+	/**
+	 * 获取单条数据
+	 * @param wmsHouseLocation
+	 * @return
+	 */
+	@Override
+	public WmsHouseLocation get(WmsHouseLocation wmsHouseLocation) {
+		return super.get(wmsHouseLocation);
+	}
+	
+	/**
+	 * 查询分页数据
+	 * @param wmsHouseLocation 查询条件
+	 * @param wmsHouseLocation.page 分页对象
+	 * @return
+	 */
+	@Override
+	public Page<WmsHouseLocation> findPage(WmsHouseLocation wmsHouseLocation) {
+		return super.findPage(wmsHouseLocation);
+	}
+	
+	/**
+	 * 查询列表数据
+	 * @param wmsHouseLocation
+	 * @return
+	 */
+	@Override
+	public List<WmsHouseLocation> findList(WmsHouseLocation wmsHouseLocation) {
+		return super.findList(wmsHouseLocation);
+	}
+	
+	/**
+	 * 保存数据(插入或更新)
+	 * @param wmsHouseLocation
+	 */
+	@Override
+	@Transactional
+	public void save(WmsHouseLocation wmsHouseLocation) {
+		super.save(wmsHouseLocation);
+	}
+	
+	/**
+	 * 更新状态
+	 * @param wmsHouseLocation
+	 */
+	@Override
+	@Transactional
+	public void updateStatus(WmsHouseLocation wmsHouseLocation) {
+		super.updateStatus(wmsHouseLocation);
+	}
+	
+	/**
+	 * 删除数据
+	 * @param wmsHouseLocation
+	 */
+	@Override
+	@Transactional
+	public void delete(WmsHouseLocation wmsHouseLocation) {
+		super.delete(wmsHouseLocation);
+	}
+	
+}

+ 81 - 0
src/main/java/com/jeesite/modules/wms/service/WmsHouseService.java

@@ -0,0 +1,81 @@
+package com.jeesite.modules.wms.service;
+
+import java.util.List;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.jeesite.common.entity.Page;
+import com.jeesite.common.service.CrudService;
+import com.jeesite.modules.wms.entity.WmsHouse;
+import com.jeesite.modules.wms.dao.WmsHouseDao;
+
+/**
+ * 仓库表Service
+ * @author sxl
+ * @version 2026-05-08
+ */
+@Service
+public class WmsHouseService extends CrudService<WmsHouseDao, WmsHouse> {
+	
+	/**
+	 * 获取单条数据
+	 * @param wmsHouse
+	 * @return
+	 */
+	@Override
+	public WmsHouse get(WmsHouse wmsHouse) {
+		return super.get(wmsHouse);
+	}
+	
+	/**
+	 * 查询分页数据
+	 * @param wmsHouse 查询条件
+	 * @param wmsHouse.page 分页对象
+	 * @return
+	 */
+	@Override
+	public Page<WmsHouse> findPage(WmsHouse wmsHouse) {
+		return super.findPage(wmsHouse);
+	}
+	
+	/**
+	 * 查询列表数据
+	 * @param wmsHouse
+	 * @return
+	 */
+	@Override
+	public List<WmsHouse> findList(WmsHouse wmsHouse) {
+		return super.findList(wmsHouse);
+	}
+	
+	/**
+	 * 保存数据(插入或更新)
+	 * @param wmsHouse
+	 */
+	@Override
+	@Transactional
+	public void save(WmsHouse wmsHouse) {
+		super.save(wmsHouse);
+	}
+	
+	/**
+	 * 更新状态
+	 * @param wmsHouse
+	 */
+	@Override
+	@Transactional
+	public void updateStatus(WmsHouse wmsHouse) {
+		super.updateStatus(wmsHouse);
+	}
+	
+	/**
+	 * 删除数据
+	 * @param wmsHouse
+	 */
+	@Override
+	@Transactional
+	public void delete(WmsHouse wmsHouse) {
+		super.delete(wmsHouse);
+	}
+	
+}

+ 97 - 0
src/main/java/com/jeesite/modules/wms/web/WmsHouseController.java

@@ -0,0 +1,97 @@
+package com.jeesite.modules.wms.web;
+
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.jeesite.common.config.Global;
+import com.jeesite.common.entity.Page;
+import com.jeesite.common.web.BaseController;
+import com.jeesite.modules.wms.entity.WmsHouse;
+import com.jeesite.modules.wms.service.WmsHouseService;
+
+/**
+ * 仓库表Controller
+ * @author sxl
+ * @version 2026-05-08
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/wms/wmsHouse")
+public class WmsHouseController extends BaseController {
+
+	@Autowired
+	private WmsHouseService wmsHouseService;
+	
+	/**
+	 * 获取数据
+	 */
+	@ModelAttribute
+	public WmsHouse get(String id, boolean isNewRecord) {
+		return wmsHouseService.get(id, isNewRecord);
+	}
+	
+	/**
+	 * 查询列表
+	 */
+	@RequiresPermissions("wms:wmsHouse:view")
+	@RequestMapping(value = {"list", ""})
+	public String list(WmsHouse wmsHouse, Model model) {
+		model.addAttribute("wmsHouse", wmsHouse);
+		return "modules/wms/wmsHouseList";
+	}
+	
+	/**
+	 * 查询列表数据
+	 */
+	@RequiresPermissions("wms:wmsHouse:view")
+	@RequestMapping(value = "listData")
+	@ResponseBody
+	public Page<WmsHouse> listData(WmsHouse wmsHouse, HttpServletRequest request, HttpServletResponse response) {
+		wmsHouse.setPage(new Page<>(request, response));
+		Page<WmsHouse> page = wmsHouseService.findPage(wmsHouse);
+		return page;
+	}
+
+	/**
+	 * 查看编辑表单
+	 */
+	@RequiresPermissions("wms:wmsHouse:view")
+	@RequestMapping(value = "form")
+	public String form(WmsHouse wmsHouse, Model model) {
+		model.addAttribute("wmsHouse", wmsHouse);
+		return "modules/wms/wmsHouseForm";
+	}
+
+	/**
+	 * 保存数据
+	 */
+	@RequiresPermissions("wms:wmsHouse:edit")
+	@PostMapping(value = "save")
+	@ResponseBody
+	public String save(@Validated WmsHouse wmsHouse) {
+		wmsHouseService.save(wmsHouse);
+		return renderResult(Global.TRUE, text("保存仓库表成功!"));
+	}
+	
+	/**
+	 * 删除数据
+	 */
+	@RequiresPermissions("wms:wmsHouse:edit")
+	@RequestMapping(value = "delete")
+	@ResponseBody
+	public String delete(WmsHouse wmsHouse) {
+		wmsHouseService.delete(wmsHouse);
+		return renderResult(Global.TRUE, text("删除仓库表成功!"));
+	}
+	
+}

+ 105 - 0
src/main/java/com/jeesite/modules/wms/web/WmsHouseLocationController.java

@@ -0,0 +1,105 @@
+package com.jeesite.modules.wms.web;
+
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.jeesite.modules.wms.entity.WmsHouse;
+import com.jeesite.modules.wms.service.WmsHouseService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.jeesite.common.config.Global;
+import com.jeesite.common.entity.Page;
+import com.jeesite.common.web.BaseController;
+import com.jeesite.modules.wms.entity.WmsHouseLocation;
+import com.jeesite.modules.wms.service.WmsHouseLocationService;
+
+/**
+ * 库位表Controller
+ * @author sxl
+ * @version 2026-05-08
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/wms/wmsHouseLocation")
+public class WmsHouseLocationController extends BaseController {
+
+	@Autowired
+	private WmsHouseLocationService wmsHouseLocationService;
+	@Autowired
+	private WmsHouseService wmsHouseService;
+
+	/**
+	 * 获取数据
+	 */
+	@ModelAttribute
+	public WmsHouseLocation get(String id, boolean isNewRecord) {
+		return wmsHouseLocationService.get(id, isNewRecord);
+	}
+
+	/**
+	 * 查询列表
+	 */
+	@RequiresPermissions("wms:wmsHouseLocation:view")
+	@RequestMapping(value = {"list", ""})
+	public String list(WmsHouseLocation wmsHouseLocation, Model model) {
+		WmsHouse wmsHouse = new WmsHouse();
+		wmsHouse.setStatus("0");
+		List<WmsHouse> houses = wmsHouseService.findList(wmsHouse);
+		model.addAttribute("houses", houses);
+		model.addAttribute("wmsHouseLocation", wmsHouseLocation);
+		return "modules/wms/wmsHouseLocationList";
+	}
+
+	/**
+	 * 查询列表数据
+	 */
+	@RequiresPermissions("wms:wmsHouseLocation:view")
+	@RequestMapping(value = "listData")
+	@ResponseBody
+	public Page<WmsHouseLocation> listData(WmsHouseLocation wmsHouseLocation, HttpServletRequest request, HttpServletResponse response) {
+		wmsHouseLocation.setPage(new Page<>(request, response));
+		Page<WmsHouseLocation> page = wmsHouseLocationService.findPage(wmsHouseLocation);
+		return page;
+	}
+
+	/**
+	 * 查看编辑表单
+	 */
+	@RequiresPermissions("wms:wmsHouseLocation:view")
+	@RequestMapping(value = "form")
+	public String form(WmsHouseLocation wmsHouseLocation, Model model) {
+		model.addAttribute("wmsHouseLocation", wmsHouseLocation);
+		return "modules/wms/wmsHouseLocationForm";
+	}
+
+	/**
+	 * 保存数据
+	 */
+	@RequiresPermissions("wms:wmsHouseLocation:edit")
+	@PostMapping(value = "save")
+	@ResponseBody
+	public String save(@Validated WmsHouseLocation wmsHouseLocation) {
+		wmsHouseLocationService.save(wmsHouseLocation);
+		return renderResult(Global.TRUE, text("保存库位表成功!"));
+	}
+
+	/**
+	 * 删除数据
+	 */
+	@RequiresPermissions("wms:wmsHouseLocation:edit")
+	@RequestMapping(value = "delete")
+	@ResponseBody
+	public String delete(WmsHouseLocation wmsHouseLocation) {
+		wmsHouseLocationService.delete(wmsHouseLocation);
+		return renderResult(Global.TRUE, text("删除库位表成功!"));
+	}
+
+}

+ 15 - 0
src/main/resources/mappings/modules/wms/WmsHouseDao.xml

@@ -0,0 +1,15 @@
+<?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.jeesite.modules.wms.dao.WmsHouseDao">
+	
+	<!-- 查询数据
+	<select id="findList" resultType="WmsHouse">
+		SELECT ${sqlMap.column.toSql()}
+		FROM ${sqlMap.table.toSql()}
+		<where>
+			${sqlMap.where.toSql()}
+		</where>
+		ORDER BY ${sqlMap.order.toSql()}
+	</select> -->
+	
+</mapper>

+ 15 - 0
src/main/resources/mappings/modules/wms/WmsHouseLocationDao.xml

@@ -0,0 +1,15 @@
+<?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.jeesite.modules.wms.dao.WmsHouseLocationDao">
+	
+	<!-- 查询数据
+	<select id="findList" resultType="WmsHouseLocation">
+		SELECT ${sqlMap.column.toSql()}
+		FROM ${sqlMap.table.toSql()}
+		<where>
+			${sqlMap.where.toSql()}
+		</where>
+		ORDER BY ${sqlMap.order.toSql()}
+	</select> -->
+	
+</mapper>

+ 73 - 0
src/main/resources/views/modules/wms/wmsHouseForm.html

@@ -0,0 +1,73 @@
+<% layout('/layouts/default.html', {title: '仓库表管理', libs: ['validate']}){ %>
+<div class="main-content">
+	<div class="box box-main">
+		<div class="box-header with-border">
+			<div class="box-title">
+				<i class="fa icon-note"></i> ${text(wmsHouse.isNewRecord ? '新增仓库表' : '编辑仓库表')}
+			</div>
+			<div class="box-tools pull-right">
+				<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
+			</div>
+		</div>
+		<#form:form id="inputForm" model="${wmsHouse}" action="${ctx}/wms/wmsHouse/save" method="post" class="form-horizontal">
+			<div class="box-body">
+				<div class="form-unit">${text('基本信息')}</div>
+				<#form:hidden path="id"/>
+				<div class="row">
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('仓库名称')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="title" maxlength="255" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('仓库位置')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="position" maxlength="255" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('备注')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="remark" maxlength="255" class="form-control"/>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="box-footer">
+				<div class="row">
+					<div class="col-sm-offset-2 col-sm-10">
+						<% if (hasPermi('wms:wmsHouse:edit')){ %>
+							<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>&nbsp;
+						<% } %>
+						<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
+					</div>
+				</div>
+			</div>
+		</#form:form>
+	</div>
+</div>
+<% } %>
+<script>
+$("#inputForm").validate({
+	submitHandler: function(form){
+		js.ajaxSubmitForm($(form), function(data){
+			js.showMessage(data.message);
+			if(data.result == Global.TRUE){
+				js.closeCurrentTabPage(function(contentWindow){
+					contentWindow.page();
+				});
+			}
+		}, "json");
+    }
+});
+</script>

+ 81 - 0
src/main/resources/views/modules/wms/wmsHouseList.html

@@ -0,0 +1,81 @@
+<% layout('/layouts/default.html', {title: '仓库管理', libs: ['dataGrid']}){ %>
+<div class="main-content">
+	<div class="box box-main">
+		<div class="box-header">
+			<div class="box-title">
+				<i class="fa icon-notebook"></i> ${text('仓库管理')}
+			</div>
+			<div class="box-tools pull-right">
+				<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
+				<% if(hasPermi('wms:wmsHouse:edit')){ %>
+				<a href="${ctx}/wms/wmsHouse/form" class="btn btn-default btnTool" title="${text('新增仓库表')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
+				<% } %>
+				<a href="#" class="btn btn-default" id="btnSetting" title="${text('设置')}"><i class="fa fa-navicon"></i></a>
+			</div>
+		</div>
+		<div class="box-body">
+			<#form:form id="searchForm" model="${wmsHouse}" action="${ctx}/wms/wmsHouse/listData" method="post" class="form-inline hide"
+			data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
+			<div class="form-group">
+				<label class="control-label">${text('仓库名称')}:</label>
+				<div class="control-inline">
+					<#form:input path="title" maxlength="255" class="form-control width-120"/>
+				</div>
+			</div>
+			<div class="form-group">
+				<label class="control-label">${text('仓库位置')}:</label>
+				<div class="control-inline">
+					<#form:input path="position" maxlength="255" class="form-control width-120"/>
+				</div>
+			</div>
+			<div class="form-group">
+				<label class="control-label">${text('状态')}:</label>
+				<div class="control-inline width-120">
+					<#form:select path="status" dictType="sys_search_status" blankOption="true" class="form-control isQuick"/>
+				</div>
+			</div>
+			<div class="form-group">
+				<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
+				<button type="reset" class="btn btn-default btn-sm">${text('重置')}</button>
+			</div>
+		</#form:form>
+		<table id="dataGrid"></table>
+		<div id="dataGridPage"></div>
+	</div>
+</div>
+</div>
+<% } %>
+<script>
+	// 初始化DataGrid对象
+	$('#dataGrid').dataGrid({
+		searchForm: $("#searchForm"),
+		columnModel: [
+			{header:'${text("仓库名称")}', name:'title', index:'a.title', width:150, align:"center", frozen:true, formatter: function(val, obj, row, act){
+					return '<a href="${ctx}/wms/wmsHouse/form?id='+row.id+'" class="btnList" data-title="${text("编辑仓库表")}">'+(val||row.id)+'</a>';
+				}},
+			{header:'${text("仓库位置")}', name:'position', index:'a.position', width:150, align:"center"},
+			{header:'${text("备注")}', name:'remark', index:'a.remark', width:150, align:"center"},
+			{header:'${text("状态")}', name:'status', index:'a.status', width:150, align:"center", formatter: function(val, obj, row, act){
+					return js.getDictLabel(${@DictUtils.getDictListJson('sys_search_status')}, val, '${text("未知")}', true);
+				}},
+			{header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
+			{header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){
+					var actions = [];
+					//<% if(hasPermi('wms:wmsHouse:edit')){ %>
+					actions.push('<a href="${ctx}/wms/wmsHouse/form?id='+row.id+'" class="btnList" title="${text("编辑仓库")}"><i class="fa fa-pencil"></i></a>&nbsp;');
+					if (row.status == Global.STATUS_NORMAL){
+						actions.push('<a href="${ctx}/mes/wmsHouse/disable?id='+row.id+'" class="btnList" title="${text("停用仓库")}" data-confirm="${text("确认要停用该仓库吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
+					} else if (row.status == Global.STATUS_DISABLE){
+						actions.push('<a href="${ctx}/mes/wmsHouse/enable?id='+row.id+'" class="btnList" title="${text("启用仓库")}" data-confirm="${text("确认要启用该仓库吗?")}"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
+					}
+					actions.push('<a href="${ctx}/wms/wmsHouse/delete?id='+row.id+'" class="btnList" title="${text("删除仓库")}" data-confirm="${text("确认要删除该仓库吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
+					//<% } %>
+					return actions.join('');
+				}}
+		],
+		// 加载成功后执行事件
+		ajaxSuccess: function(data){
+
+		}
+	});
+</script>

+ 73 - 0
src/main/resources/views/modules/wms/wmsHouseLocationForm.html

@@ -0,0 +1,73 @@
+<% layout('/layouts/default.html', {title: '库位表管理', libs: ['validate']}){ %>
+<div class="main-content">
+	<div class="box box-main">
+		<div class="box-header with-border">
+			<div class="box-title">
+				<i class="fa icon-note"></i> ${text(wmsHouseLocation.isNewRecord ? '新增库位表' : '编辑库位表')}
+			</div>
+			<div class="box-tools pull-right">
+				<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
+			</div>
+		</div>
+		<#form:form id="inputForm" model="${wmsHouseLocation}" action="${ctx}/wms/wmsHouseLocation/save" method="post" class="form-horizontal">
+			<div class="box-body">
+				<div class="form-unit">${text('基本信息')}</div>
+				<#form:hidden path="id"/>
+				<div class="row">
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('仓库')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="houseId" maxlength="255" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('库位名称')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="title" maxlength="255" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('备注')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="remark" maxlength="255" class="form-control"/>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<div class="box-footer">
+				<div class="row">
+					<div class="col-sm-offset-2 col-sm-10">
+						<% if (hasPermi('wms:wmsHouseLocation:edit')){ %>
+							<button type="submit" class="btn btn-sm btn-primary" id="btnSubmit"><i class="fa fa-check"></i> ${text('保 存')}</button>&nbsp;
+						<% } %>
+						<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
+					</div>
+				</div>
+			</div>
+		</#form:form>
+	</div>
+</div>
+<% } %>
+<script>
+$("#inputForm").validate({
+	submitHandler: function(form){
+		js.ajaxSubmitForm($(form), function(data){
+			js.showMessage(data.message);
+			if(data.result == Global.TRUE){
+				js.closeCurrentTabPage(function(contentWindow){
+					contentWindow.page();
+				});
+			}
+		}, "json");
+    }
+});
+</script>

+ 79 - 0
src/main/resources/views/modules/wms/wmsHouseLocationList.html

@@ -0,0 +1,79 @@
+<% layout('/layouts/default.html', {title: '库位管理', libs: ['dataGrid']}){ %>
+<div class="main-content">
+	<div class="box box-main">
+		<div class="box-header">
+			<div class="box-title">
+				<i class="fa icon-notebook"></i> ${text('库位管理')}
+			</div>
+			<div class="box-tools pull-right">
+				<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
+				<% if(hasPermi('wms:wmsHouseLocation:edit')){ %>
+				<a href="${ctx}/wms/wmsHouseLocation/form" class="btn btn-default btnTool" title="${text('新增库位表')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
+				<% } %>
+				<a href="#" class="btn btn-default" id="btnSetting" title="${text('设置')}"><i class="fa fa-navicon"></i></a>
+			</div>
+		</div>
+		<div class="box-body">
+			<#form:form id="searchForm" model="${wmsHouseLocation}" action="${ctx}/wms/wmsHouseLocation/listData" method="post" class="form-inline hide"
+			data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
+			<div class="form-group">
+				<label class="control-label">${text('仓库')}:</label>
+				<div class="control-inline width-120">
+					<#form:select path="houseId" items="${houses}" itemLabel="title" itemValue="id" class="form-control required" blankOption="true" />
+				</div>
+			</div>
+			<div class="form-group">
+				<label class="control-label">${text('仓位名称')}:</label>
+				<div class="control-inline">
+					<#form:input path="title" maxlength="255" class="form-control width-120"/>
+				</div>
+			</div>
+			<div class="form-group">
+				<label class="control-label">${text('状态')}:</label>
+				<div class="control-inline width-120">
+					<#form:select path="status" dictType="sys_search_status" blankOption="true" class="form-control isQuick"/>
+				</div>
+			</div>
+			<div class="form-group">
+				<button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
+				<button type="reset" class="btn btn-default btn-sm">${text('重置')}</button>
+			</div>
+		</#form:form>
+		<table id="dataGrid"></table>
+		<div id="dataGridPage"></div>
+	</div>
+</div>
+</div>
+<% } %>
+<script>
+	// 初始化DataGrid对象
+	$('#dataGrid').dataGrid({
+		searchForm: $("#searchForm"),
+		columnModel: [
+			{header:'${text("仓库")}', name:'houseTitle', index:'a.house_id', width:150, align:"center", frozen:true},
+			{header:'${text("仓位名称")}', name:'title', index:'a.title', width:150, align:"center"},
+			{header:'${text("备注")}', name:'remark', index:'a.remark', width:150, align:"center"},
+			{header:'${text("状态")}', name:'status', index:'a.status', width:150, align:"center", formatter: function(val, obj, row, act){
+					return js.getDictLabel(${@DictUtils.getDictListJson('sys_search_status')}, val, '${text("未知")}', true);
+				}},
+			{header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
+			{header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){
+					var actions = [];
+					//<% if(hasPermi('wms:wmsHouseLocation:edit')){ %>
+					actions.push('<a href="${ctx}/wms/wmsHouseLocation/form?id='+row.id+'" class="btnList" title="${text("编辑库位")}"><i class="fa fa-pencil"></i></a>&nbsp;');
+					if (row.status == Global.STATUS_NORMAL){
+						actions.push('<a href="${ctx}/mes/wmsHouseLocation/disable?id='+row.id+'" class="btnList" title="${text("停用仓库")}" data-confirm="${text("确认要停用该仓库吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
+					} else if (row.status == Global.STATUS_DISABLE){
+						actions.push('<a href="${ctx}/mes/wmsHouseLocation/enable?id='+row.id+'" class="btnList" title="${text("启用仓库")}" data-confirm="${text("确认要启用该仓库吗?")}"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
+					}
+					actions.push('<a href="${ctx}/wms/wmsHouseLocation/delete?id='+row.id+'" class="btnList" title="${text("删除库位")}" data-confirm="${text("确认要删除该库位吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
+					//<% } %>
+					return actions.join('');
+				}}
+		],
+		// 加载成功后执行事件
+		ajaxSuccess: function(data){
+
+		}
+	});
+</script>