feat(asset): 添加仓库管理功能模块
- 创建仓库管理实体类 AmsWarehouse,包含仓库编码、名称、管理部门等字段 - 实现仓库管理的增删改查功能,包括新增、编辑、查看和删除页面 - 添加仓库编码唯一性校验,防止重复创建仓库 - 实现仓库与部门关联功能,支持选择管理部门 - 添加仓库引用检查机制,防止删除被引用的仓库 - 集成系统部门服务,确保管理部门的有效性验证 - 完善仓库管理的权限控制和数据导出功能main
parent
6509cc3f45
commit
7de57b4994
@ -0,0 +1,77 @@
|
||||
package com.ruoyi.asset.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.asset.domain.AmsWarehouse;
|
||||
|
||||
/**
|
||||
* 仓库管理Mapper接口
|
||||
*
|
||||
* @author Yangk
|
||||
* @date 2026-06-03
|
||||
*/
|
||||
public interface AmsWarehouseMapper
|
||||
{
|
||||
/**
|
||||
* 查询仓库管理
|
||||
*
|
||||
* @param warehouseId 仓库管理主键
|
||||
* @return 仓库管理
|
||||
*/
|
||||
public AmsWarehouse selectAmsWarehouseByWarehouseId(Long warehouseId);
|
||||
|
||||
/**
|
||||
* 查询仓库管理列表
|
||||
*
|
||||
* @param amsWarehouse 仓库管理
|
||||
* @return 仓库管理集合
|
||||
*/
|
||||
public List<AmsWarehouse> selectAmsWarehouseList(AmsWarehouse amsWarehouse);
|
||||
|
||||
/**
|
||||
* 校验仓库编码是否唯一
|
||||
*
|
||||
* @param warehouseCode 仓库编码
|
||||
* @return 仓库信息
|
||||
*/
|
||||
public AmsWarehouse checkWarehouseCodeUnique(String warehouseCode);
|
||||
|
||||
/**
|
||||
* 查询仓库被业务数据引用的数量
|
||||
*
|
||||
* @param warehouseId 仓库主键
|
||||
* @return 引用数量
|
||||
*/
|
||||
public int countWarehouseReferences(Long warehouseId);
|
||||
|
||||
/**
|
||||
* 新增仓库管理
|
||||
*
|
||||
* @param amsWarehouse 仓库管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertAmsWarehouse(AmsWarehouse amsWarehouse);
|
||||
|
||||
/**
|
||||
* 修改仓库管理
|
||||
*
|
||||
* @param amsWarehouse 仓库管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateAmsWarehouse(AmsWarehouse amsWarehouse);
|
||||
|
||||
/**
|
||||
* 删除仓库管理
|
||||
*
|
||||
* @param warehouseId 仓库管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteAmsWarehouseByWarehouseId(Long warehouseId);
|
||||
|
||||
/**
|
||||
* 批量删除仓库管理
|
||||
*
|
||||
* @param warehouseIds 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteAmsWarehouseByWarehouseIds(String[] warehouseIds);
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
package com.ruoyi.asset.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.asset.domain.AmsWarehouse;
|
||||
|
||||
/**
|
||||
* 仓库管理Service接口
|
||||
*
|
||||
* @author Yangk
|
||||
* @date 2026-06-03
|
||||
*/
|
||||
public interface IAmsWarehouseService
|
||||
{
|
||||
/**
|
||||
* 查询仓库管理
|
||||
*
|
||||
* @param warehouseId 仓库管理主键
|
||||
* @return 仓库管理
|
||||
*/
|
||||
public AmsWarehouse selectAmsWarehouseByWarehouseId(Long warehouseId);
|
||||
|
||||
/**
|
||||
* 查询仓库管理列表
|
||||
*
|
||||
* @param amsWarehouse 仓库管理
|
||||
* @return 仓库管理集合
|
||||
*/
|
||||
public List<AmsWarehouse> selectAmsWarehouseList(AmsWarehouse amsWarehouse);
|
||||
|
||||
/**
|
||||
* 校验仓库编码是否唯一
|
||||
*
|
||||
* @param amsWarehouse 仓库管理
|
||||
* @return 结果
|
||||
*/
|
||||
public boolean checkWarehouseCodeUnique(AmsWarehouse amsWarehouse);
|
||||
|
||||
/**
|
||||
* 新增仓库管理
|
||||
*
|
||||
* @param amsWarehouse 仓库管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertAmsWarehouse(AmsWarehouse amsWarehouse);
|
||||
|
||||
/**
|
||||
* 修改仓库管理
|
||||
*
|
||||
* @param amsWarehouse 仓库管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateAmsWarehouse(AmsWarehouse amsWarehouse);
|
||||
|
||||
/**
|
||||
* 批量删除仓库管理
|
||||
*
|
||||
* @param warehouseIds 需要删除的仓库管理主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteAmsWarehouseByWarehouseIds(String warehouseIds);
|
||||
|
||||
/**
|
||||
* 删除仓库管理信息
|
||||
*
|
||||
* @param warehouseId 仓库管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteAmsWarehouseByWarehouseId(Long warehouseId);
|
||||
}
|
||||
@ -0,0 +1,136 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.asset.mapper.AmsWarehouseMapper">
|
||||
|
||||
<resultMap type="AmsWarehouse" id="AmsWarehouseResult">
|
||||
<result property="warehouseId" column="warehouse_id" />
|
||||
<result property="warehouseCode" column="warehouse_code" />
|
||||
<result property="warehouseName" column="warehouse_name" />
|
||||
<result property="manageDeptId" column="manage_dept_id" />
|
||||
<result property="manageDeptName" column="manage_dept_name" />
|
||||
<result property="warehouseAddress" column="warehouse_address" />
|
||||
<result property="managerName" column="manager_name" />
|
||||
<result property="contactPhone" column="contact_phone" />
|
||||
<result property="enabled" column="enabled" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="remark" column="remark" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectAmsWarehouseVo">
|
||||
select warehouse_id, warehouse_code, warehouse_name, manage_dept_id, manage_dept_name, warehouse_address, manager_name, contact_phone, enabled, create_by, create_time, update_by, update_time, remark, del_flag from ams_warehouse
|
||||
</sql>
|
||||
|
||||
<select id="selectAmsWarehouseList" parameterType="AmsWarehouse" resultMap="AmsWarehouseResult">
|
||||
<include refid="selectAmsWarehouseVo"/>
|
||||
<where>
|
||||
del_flag = '0'
|
||||
<if test="warehouseCode != null and warehouseCode != ''"> and warehouse_code = #{warehouseCode}</if>
|
||||
<if test="warehouseName != null and warehouseName != ''"> and warehouse_name like concat('%', #{warehouseName}, '%')</if>
|
||||
<if test="manageDeptId != null"> and manage_dept_id = #{manageDeptId}</if>
|
||||
<if test="warehouseAddress != null and warehouseAddress != ''"> and warehouse_address = #{warehouseAddress}</if>
|
||||
<if test="managerName != null and managerName != ''"> and manager_name like concat('%', #{managerName}, '%')</if>
|
||||
<if test="contactPhone != null and contactPhone != ''"> and contact_phone = #{contactPhone}</if>
|
||||
<if test="enabled != null and enabled != ''"> and enabled = #{enabled}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectAmsWarehouseByWarehouseId" parameterType="Long" resultMap="AmsWarehouseResult">
|
||||
<include refid="selectAmsWarehouseVo"/>
|
||||
where warehouse_id = #{warehouseId} and del_flag = '0'
|
||||
</select>
|
||||
|
||||
<select id="checkWarehouseCodeUnique" parameterType="String" resultMap="AmsWarehouseResult">
|
||||
<include refid="selectAmsWarehouseVo"/>
|
||||
where warehouse_code = #{warehouseCode} and del_flag = '0' limit 1
|
||||
</select>
|
||||
|
||||
<select id="countWarehouseReferences" parameterType="Long" resultType="int">
|
||||
select
|
||||
(select count(1) from ams_asset where warehouse_id = #{warehouseId} and del_flag = '0')
|
||||
+ (select count(1) from ams_asset_lifecycle_log where del_flag = '0' and (before_warehouse_id = #{warehouseId} or after_warehouse_id = #{warehouseId}))
|
||||
+ (select count(1) from ams_asset_location where warehouse_id = #{warehouseId} and del_flag = '0')
|
||||
+ (select count(1) from ams_borrow_order_item where del_flag = '0' and (before_warehouse_id = #{warehouseId} or return_warehouse_id = #{warehouseId}))
|
||||
+ (select count(1) from ams_inbound_order where warehouse_id = #{warehouseId} and del_flag = '0')
|
||||
+ (select count(1) from ams_inventory_task where warehouse_id = #{warehouseId} and del_flag = '0')
|
||||
+ (select count(1) from ams_inventory_task_item where del_flag = '0' and (book_warehouse_id = #{warehouseId} or inventory_warehouse_id = #{warehouseId}))
|
||||
+ (select count(1) from ams_receive_order_item where before_warehouse_id = #{warehouseId} and del_flag = '0')
|
||||
+ (select count(1) from ams_return_order where receive_warehouse_id = #{warehouseId} and del_flag = '0')
|
||||
+ (select count(1) from ams_return_order_item where after_warehouse_id = #{warehouseId} and del_flag = '0')
|
||||
+ (select count(1) from ams_transfer_order_item where del_flag = '0' and (old_warehouse_id = #{warehouseId} or new_warehouse_id = #{warehouseId}))
|
||||
</select>
|
||||
|
||||
<insert id="insertAmsWarehouse" parameterType="AmsWarehouse" useGeneratedKeys="true" keyProperty="warehouseId">
|
||||
insert into ams_warehouse
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="warehouseCode != null and warehouseCode != ''">warehouse_code,</if>
|
||||
<if test="warehouseName != null and warehouseName != ''">warehouse_name,</if>
|
||||
<if test="manageDeptId != null">manage_dept_id,</if>
|
||||
<if test="manageDeptName != null">manage_dept_name,</if>
|
||||
<if test="warehouseAddress != null">warehouse_address,</if>
|
||||
<if test="managerName != null">manager_name,</if>
|
||||
<if test="contactPhone != null">contact_phone,</if>
|
||||
<if test="enabled != null and enabled != ''">enabled,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="remark != null">remark,</if>
|
||||
<if test="delFlag != null">del_flag,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="warehouseCode != null and warehouseCode != ''">#{warehouseCode},</if>
|
||||
<if test="warehouseName != null and warehouseName != ''">#{warehouseName},</if>
|
||||
<if test="manageDeptId != null">#{manageDeptId},</if>
|
||||
<if test="manageDeptName != null">#{manageDeptName},</if>
|
||||
<if test="warehouseAddress != null">#{warehouseAddress},</if>
|
||||
<if test="managerName != null">#{managerName},</if>
|
||||
<if test="contactPhone != null">#{contactPhone},</if>
|
||||
<if test="enabled != null and enabled != ''">#{enabled},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="remark != null">#{remark},</if>
|
||||
<if test="delFlag != null">#{delFlag},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateAmsWarehouse" parameterType="AmsWarehouse">
|
||||
update ams_warehouse
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="warehouseCode != null and warehouseCode != ''">warehouse_code = #{warehouseCode},</if>
|
||||
<if test="warehouseName != null and warehouseName != ''">warehouse_name = #{warehouseName},</if>
|
||||
manage_dept_id = #{manageDeptId},
|
||||
manage_dept_name = #{manageDeptName},
|
||||
<if test="warehouseAddress != null">warehouse_address = #{warehouseAddress},</if>
|
||||
<if test="managerName != null">manager_name = #{managerName},</if>
|
||||
<if test="contactPhone != null">contact_phone = #{contactPhone},</if>
|
||||
<if test="enabled != null and enabled != ''">enabled = #{enabled},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="remark != null">remark = #{remark},</if>
|
||||
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||||
</trim>
|
||||
where warehouse_id = #{warehouseId}
|
||||
</update>
|
||||
|
||||
<update id="deleteAmsWarehouseByWarehouseId" parameterType="Long">
|
||||
update ams_warehouse set del_flag = '1' where warehouse_id = #{warehouseId}
|
||||
</update>
|
||||
|
||||
<update id="deleteAmsWarehouseByWarehouseIds" parameterType="String">
|
||||
update ams_warehouse set del_flag = '1' where warehouse_id in
|
||||
<foreach item="warehouseId" collection="array" open="(" separator="," close=")">
|
||||
#{warehouseId}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,95 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||
<head>
|
||||
<th:block th:include="include :: header('新增仓库管理')" />
|
||||
</head>
|
||||
<body class="white-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
|
||||
<form class="form-horizontal m" id="form-warehouse-add">
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">仓库编码:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="warehouseCode" class="form-control" type="text" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">仓库名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="warehouseName" class="form-control" type="text" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">管理部门:</label>
|
||||
<div class="col-sm-8">
|
||||
<select name="manageDeptId" class="form-control">
|
||||
<option value="">请选择</option>
|
||||
<option th:each="dept : ${deptList}" th:text="${dept.deptName}" th:value="${dept.deptId}"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">仓库地址:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="warehouseAddress" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">负责人:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="managerName" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">联系电话:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="contactPhone" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">启用状态:</label>
|
||||
<div class="col-sm-8">
|
||||
<div class="radio-box" th:each="dict : ${@dict.getType('ams_enabled_status')}">
|
||||
<input type="radio" th:id="${'enabled_' + dict.dictCode}" name="enabled" th:value="${dict.dictValue}" th:checked="${dict.default}" required>
|
||||
<label th:for="${'enabled_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">备注:</label>
|
||||
<div class="col-sm-8">
|
||||
<textarea name="remark" class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<th:block th:include="include :: footer" />
|
||||
<script th:inline="javascript">
|
||||
var prefix = ctx + "asset/warehouse"
|
||||
$("#form-warehouse-add").validate({
|
||||
focusCleanup: true
|
||||
});
|
||||
|
||||
function submitHandler() {
|
||||
if ($.validate.form()) {
|
||||
$.operate.save(prefix + "/add", $('#form-warehouse-add').serialize());
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||
<head>
|
||||
<th:block th:include="include :: header('修改仓库管理')" />
|
||||
</head>
|
||||
<body class="white-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
|
||||
<form class="form-horizontal m" id="form-warehouse-edit" th:object="${amsWarehouse}">
|
||||
<input name="warehouseId" th:field="*{warehouseId}" type="hidden">
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">仓库编码:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="warehouseCode" th:field="*{warehouseCode}" class="form-control" type="text" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">仓库名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="warehouseName" th:field="*{warehouseName}" class="form-control" type="text" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">管理部门:</label>
|
||||
<div class="col-sm-8">
|
||||
<select name="manageDeptId" th:field="*{manageDeptId}" class="form-control">
|
||||
<option value="">请选择</option>
|
||||
<option th:each="dept : ${deptList}" th:text="${dept.deptName}" th:value="${dept.deptId}"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">仓库地址:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="warehouseAddress" th:field="*{warehouseAddress}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">负责人:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="managerName" th:field="*{managerName}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">联系电话:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="contactPhone" th:field="*{contactPhone}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">启用状态:</label>
|
||||
<div class="col-sm-8">
|
||||
<div class="radio-box" th:each="dict : ${@dict.getType('ams_enabled_status')}">
|
||||
<input type="radio" th:id="${'enabled_' + dict.dictCode}" name="enabled" th:value="${dict.dictValue}" th:field="*{enabled}" required>
|
||||
<label th:for="${'enabled_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">备注:</label>
|
||||
<div class="col-sm-8">
|
||||
<textarea name="remark" class="form-control">[[*{remark}]]</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<th:block th:include="include :: footer" />
|
||||
<script th:inline="javascript">
|
||||
var prefix = ctx + "asset/warehouse";
|
||||
$("#form-warehouse-edit").validate({
|
||||
focusCleanup: true
|
||||
});
|
||||
|
||||
function submitHandler() {
|
||||
if ($.validate.form()) {
|
||||
$.operate.save(prefix + "/edit", $('#form-warehouse-edit').serialize());
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,86 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||
<head>
|
||||
<th:block th:include="include :: header('仓库管理详细')" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="main-content">
|
||||
<form class="form-horizontal" th:object="${amsWarehouse}">
|
||||
<h4 class="form-header h4">基本信息</h4>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">仓库编码:</label>
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-plaintext" th:text="*{warehouseCode}"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">仓库名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-plaintext" th:text="*{warehouseName}"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">管理部门:</label>
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-plaintext" th:text="*{manageDeptName}"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">仓库地址:</label>
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-plaintext" th:text="*{warehouseAddress}"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">负责人:</label>
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-plaintext" th:text="*{managerName}"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">联系电话:</label>
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-plaintext" th:text="*{contactPhone}"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">启用状态:</label>
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-plaintext" th:text="*{@dict.getLabel('ams_enabled_status', enabled)}"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">备注:</label>
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-plaintext" th:text="*{remark}"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<th:block th:include="include :: footer" />
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,150 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
|
||||
<head>
|
||||
<th:block th:include="include :: header('仓库管理列表')" />
|
||||
</head>
|
||||
<body class="gray-bg">
|
||||
<div class="container-div">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 search-collapse">
|
||||
<form id="formId">
|
||||
<div class="select-list">
|
||||
<ul>
|
||||
<li>
|
||||
<label>仓库编码:</label>
|
||||
<input type="text" name="warehouseCode"/>
|
||||
</li>
|
||||
<li>
|
||||
<label>仓库名称:</label>
|
||||
<input type="text" name="warehouseName"/>
|
||||
</li>
|
||||
<li>
|
||||
<label>管理部门:</label>
|
||||
<select name="manageDeptId">
|
||||
<option value="">所有</option>
|
||||
<option th:each="dept : ${deptList}" th:text="${dept.deptName}" th:value="${dept.deptId}"></option>
|
||||
</select>
|
||||
</li>
|
||||
<li>
|
||||
<label>仓库地址:</label>
|
||||
<input type="text" name="warehouseAddress"/>
|
||||
</li>
|
||||
<li>
|
||||
<label>负责人:</label>
|
||||
<input type="text" name="managerName"/>
|
||||
</li>
|
||||
<li>
|
||||
<label>联系电话:</label>
|
||||
<input type="text" name="contactPhone"/>
|
||||
</li>
|
||||
<li>
|
||||
<label>启用状态:</label>
|
||||
<select name="enabled" th:with="type=${@dict.getType('ams_enabled_status')}">
|
||||
<option value="">所有</option>
|
||||
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
|
||||
</select>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a>
|
||||
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i> 重置</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="btn-group-sm" id="toolbar" role="group">
|
||||
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="asset:warehouse:add">
|
||||
<i class="fa fa-plus"></i> 添加
|
||||
</a>
|
||||
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="asset:warehouse:edit">
|
||||
<i class="fa fa-edit"></i> 修改
|
||||
</a>
|
||||
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="asset:warehouse:remove">
|
||||
<i class="fa fa-remove"></i> 删除
|
||||
</a>
|
||||
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="asset:warehouse:export">
|
||||
<i class="fa fa-download"></i> 导出
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-12 select-table table-striped">
|
||||
<table id="bootstrap-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<th:block th:include="include :: footer" />
|
||||
<script th:inline="javascript">
|
||||
var editFlag = [[${@permission.hasPermi('asset:warehouse:edit')}]];
|
||||
var removeFlag = [[${@permission.hasPermi('asset:warehouse:remove')}]];
|
||||
var enabledDatas = [[${@dict.getType('ams_enabled_status')}]];
|
||||
var prefix = ctx + "asset/warehouse";
|
||||
|
||||
$(function() {
|
||||
var options = {
|
||||
url: prefix + "/list",
|
||||
viewUrl: prefix + "/view/{id}",
|
||||
createUrl: prefix + "/add",
|
||||
updateUrl: prefix + "/edit/{id}",
|
||||
removeUrl: prefix + "/remove",
|
||||
exportUrl: prefix + "/export",
|
||||
modalName: "仓库管理",
|
||||
columns: [{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
field: 'warehouseId',
|
||||
title: '仓库ID',
|
||||
visible: false
|
||||
},
|
||||
{
|
||||
field: 'warehouseCode',
|
||||
title: '仓库编码'
|
||||
},
|
||||
{
|
||||
field: 'warehouseName',
|
||||
title: '仓库名称'
|
||||
},
|
||||
{
|
||||
field: 'manageDeptName',
|
||||
title: '管理部门'
|
||||
},
|
||||
{
|
||||
field: 'warehouseAddress',
|
||||
title: '仓库地址'
|
||||
},
|
||||
{
|
||||
field: 'managerName',
|
||||
title: '负责人'
|
||||
},
|
||||
{
|
||||
field: 'contactPhone',
|
||||
title: '联系电话'
|
||||
},
|
||||
{
|
||||
field: 'enabled',
|
||||
title: '启用状态',
|
||||
formatter: function(value, row, index) {
|
||||
return $.table.selectDictLabel(enabledDatas, value);
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'remark',
|
||||
title: '备注'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="$.operate.view(\'' + row.warehouseId + '\')"><i class="fa fa-eye"></i>查看</a> ');
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.warehouseId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.warehouseId + '\')"><i class="fa fa-remove"></i>删除</a>');
|
||||
return actions.join('');
|
||||
}
|
||||
}]
|
||||
};
|
||||
$.table.init(options);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Reference in New Issue