容器管理

This commit is contained in:
lsymicc
2025-06-17 13:47:49 +08:00
parent f27c69fb84
commit ffa580c9a6
14 changed files with 1690 additions and 0 deletions

View File

@@ -0,0 +1,157 @@
package com.ruoyi.bas.container.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 容器管理对象 bas_container
*
* @author ruoyi
* @date 2025-06-17
*/
public class BasContainer extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 容器编号 */
@Excel(name = "容器编号")
private String containerId;
/** 点位名称 */
@Excel(name = "点位名称")
private String portName;
/** 容器状态 */
@Excel(name = "容器状态")
private Long status;
/** 物料种类数量 */
@Excel(name = "物料种类数量")
private Long productTypeQuantity;
/** 容量(可存放料箱数量) */
@Excel(name = "容量", readConverterExp = "可=存放料箱数量")
private Long capacity;
/** 操作人 */
@Excel(name = "操作人")
private String operationMan;
/** 备用 */
private String spare1;
/** 备用 */
private String spare2;
/** 备用 */
private String spare3;
public void setContainerId(String containerId)
{
this.containerId = containerId;
}
public String getContainerId()
{
return containerId;
}
public void setPortName(String portName)
{
this.portName = portName;
}
public String getPortName()
{
return portName;
}
public void setStatus(Long status)
{
this.status = status;
}
public Long getStatus()
{
return status;
}
public void setProductTypeQuantity(Long productTypeQuantity)
{
this.productTypeQuantity = productTypeQuantity;
}
public Long getProductTypeQuantity()
{
return productTypeQuantity;
}
public void setCapacity(Long capacity)
{
this.capacity = capacity;
}
public Long getCapacity()
{
return capacity;
}
public void setOperationMan(String operationMan)
{
this.operationMan = operationMan;
}
public String getOperationMan()
{
return operationMan;
}
public void setSpare1(String spare1)
{
this.spare1 = spare1;
}
public String getSpare1()
{
return spare1;
}
public void setSpare2(String spare2)
{
this.spare2 = spare2;
}
public String getSpare2()
{
return spare2;
}
public void setSpare3(String spare3)
{
this.spare3 = spare3;
}
public String getSpare3()
{
return spare3;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("containerId", getContainerId())
.append("portName", getPortName())
.append("status", getStatus())
.append("productTypeQuantity", getProductTypeQuantity())
.append("capacity", getCapacity())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("operationMan", getOperationMan())
.append("spare1", getSpare1())
.append("spare2", getSpare2())
.append("spare3", getSpare3())
.toString();
}
}

View File

@@ -0,0 +1,61 @@
package com.ruoyi.bas.container.mapper;
import java.util.List;
import com.ruoyi.bas.container.domain.BasContainer;
/**
* 容器管理Mapper接口
*
* @author ruoyi
* @date 2025-06-17
*/
public interface BasContainerMapper
{
/**
* 查询容器管理
*
* @param containerId 容器管理主键
* @return 容器管理
*/
public BasContainer selectBasContainerByContainerId(String containerId);
/**
* 查询容器管理列表
*
* @param basContainer 容器管理
* @return 容器管理集合
*/
public List<BasContainer> selectBasContainerList(BasContainer basContainer);
/**
* 新增容器管理
*
* @param basContainer 容器管理
* @return 结果
*/
public int insertBasContainer(BasContainer basContainer);
/**
* 修改容器管理
*
* @param basContainer 容器管理
* @return 结果
*/
public int updateBasContainer(BasContainer basContainer);
/**
* 删除容器管理
*
* @param containerId 容器管理主键
* @return 结果
*/
public int deleteBasContainerByContainerId(String containerId);
/**
* 批量删除容器管理
*
* @param containerIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteBasContainerByContainerIds(String[] containerIds);
}

View File

@@ -0,0 +1,61 @@
package com.ruoyi.bas.container.service;
import java.util.List;
import com.ruoyi.bas.container.domain.BasContainer;
/**
* 容器管理Service接口
*
* @author ruoyi
* @date 2025-06-17
*/
public interface IBasContainerService
{
/**
* 查询容器管理
*
* @param containerId 容器管理主键
* @return 容器管理
*/
public BasContainer selectBasContainerByContainerId(String containerId);
/**
* 查询容器管理列表
*
* @param basContainer 容器管理
* @return 容器管理集合
*/
public List<BasContainer> selectBasContainerList(BasContainer basContainer);
/**
* 新增容器管理
*
* @param basContainer 容器管理
* @return 结果
*/
public int insertBasContainer(BasContainer basContainer);
/**
* 修改容器管理
*
* @param basContainer 容器管理
* @return 结果
*/
public int updateBasContainer(BasContainer basContainer);
/**
* 批量删除容器管理
*
* @param containerIds 需要删除的容器管理主键集合
* @return 结果
*/
public int deleteBasContainerByContainerIds(String[] containerIds);
/**
* 删除容器管理信息
*
* @param containerId 容器管理主键
* @return 结果
*/
public int deleteBasContainerByContainerId(String containerId);
}

View File

@@ -0,0 +1,96 @@
package com.ruoyi.bas.container.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.bas.container.mapper.BasContainerMapper;
import com.ruoyi.bas.container.domain.BasContainer;
import com.ruoyi.bas.container.service.IBasContainerService;
/**
* 容器管理Service业务层处理
*
* @author ruoyi
* @date 2025-06-17
*/
@Service
public class BasContainerServiceImpl implements IBasContainerService
{
@Autowired
private BasContainerMapper basContainerMapper;
/**
* 查询容器管理
*
* @param containerId 容器管理主键
* @return 容器管理
*/
@Override
public BasContainer selectBasContainerByContainerId(String containerId)
{
return basContainerMapper.selectBasContainerByContainerId(containerId);
}
/**
* 查询容器管理列表
*
* @param basContainer 容器管理
* @return 容器管理
*/
@Override
public List<BasContainer> selectBasContainerList(BasContainer basContainer)
{
return basContainerMapper.selectBasContainerList(basContainer);
}
/**
* 新增容器管理
*
* @param basContainer 容器管理
* @return 结果
*/
@Override
public int insertBasContainer(BasContainer basContainer)
{
basContainer.setCreateTime(DateUtils.getNowDate());
return basContainerMapper.insertBasContainer(basContainer);
}
/**
* 修改容器管理
*
* @param basContainer 容器管理
* @return 结果
*/
@Override
public int updateBasContainer(BasContainer basContainer)
{
basContainer.setUpdateTime(DateUtils.getNowDate());
return basContainerMapper.updateBasContainer(basContainer);
}
/**
* 批量删除容器管理
*
* @param containerIds 需要删除的容器管理主键
* @return 结果
*/
@Override
public int deleteBasContainerByContainerIds(String[] containerIds)
{
return basContainerMapper.deleteBasContainerByContainerIds(containerIds);
}
/**
* 删除容器管理信息
*
* @param containerId 容器管理主键
* @return 结果
*/
@Override
public int deleteBasContainerByContainerId(String containerId)
{
return basContainerMapper.deleteBasContainerByContainerId(containerId);
}
}

View File

@@ -0,0 +1,157 @@
package com.ruoyi.bas.containerDetails.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 容器物料明细对象 bas_container_details
*
* @author ruoyi
* @date 2025-06-17
*/
public class BasContainerDetails extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 容器编号 */
@Excel(name = "容器编号")
private String containerId;
/** 物料编码 */
@Excel(name = "物料编码")
private String productId;
/** 物料名称 */
@Excel(name = "物料名称")
private String productName;
/** 数量 */
@Excel(name = "数量")
private Long quantity;
/** 单位 */
@Excel(name = "单位")
private String unit;
/** 备用 */
@Excel(name = "备用")
private String spare1;
/** 备用 */
@Excel(name = "备用")
private String spare2;
/** 备用 */
@Excel(name = "备用")
private String spare3;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setContainerId(String containerId)
{
this.containerId = containerId;
}
public String getContainerId()
{
return containerId;
}
public void setProductId(String productId)
{
this.productId = productId;
}
public String getProductId()
{
return productId;
}
public void setProductName(String productName)
{
this.productName = productName;
}
public String getProductName()
{
return productName;
}
public void setQuantity(Long quantity)
{
this.quantity = quantity;
}
public Long getQuantity()
{
return quantity;
}
public void setUnit(String unit)
{
this.unit = unit;
}
public String getUnit()
{
return unit;
}
public void setSpare1(String spare1)
{
this.spare1 = spare1;
}
public String getSpare1()
{
return spare1;
}
public void setSpare2(String spare2)
{
this.spare2 = spare2;
}
public String getSpare2()
{
return spare2;
}
public void setSpare3(String spare3)
{
this.spare3 = spare3;
}
public String getSpare3()
{
return spare3;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("containerId", getContainerId())
.append("productId", getProductId())
.append("productName", getProductName())
.append("quantity", getQuantity())
.append("unit", getUnit())
.append("spare1", getSpare1())
.append("spare2", getSpare2())
.append("spare3", getSpare3())
.toString();
}
}

View File

@@ -0,0 +1,61 @@
package com.ruoyi.bas.containerDetails.mapper;
import java.util.List;
import com.ruoyi.bas.containerDetails.domain.BasContainerDetails;
/**
* 容器物料明细Mapper接口
*
* @author ruoyi
* @date 2025-06-17
*/
public interface BasContainerDetailsMapper
{
/**
* 查询容器物料明细
*
* @param id 容器物料明细主键
* @return 容器物料明细
*/
public BasContainerDetails selectBasContainerDetailsById(Long id);
/**
* 查询容器物料明细列表
*
* @param basContainerDetails 容器物料明细
* @return 容器物料明细集合
*/
public List<BasContainerDetails> selectBasContainerDetailsList(BasContainerDetails basContainerDetails);
/**
* 新增容器物料明细
*
* @param basContainerDetails 容器物料明细
* @return 结果
*/
public int insertBasContainerDetails(BasContainerDetails basContainerDetails);
/**
* 修改容器物料明细
*
* @param basContainerDetails 容器物料明细
* @return 结果
*/
public int updateBasContainerDetails(BasContainerDetails basContainerDetails);
/**
* 删除容器物料明细
*
* @param id 容器物料明细主键
* @return 结果
*/
public int deleteBasContainerDetailsById(Long id);
/**
* 批量删除容器物料明细
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteBasContainerDetailsByIds(Long[] ids);
}

View File

@@ -0,0 +1,61 @@
package com.ruoyi.bas.containerDetails.service;
import java.util.List;
import com.ruoyi.bas.containerDetails.domain.BasContainerDetails;
/**
* 容器物料明细Service接口
*
* @author ruoyi
* @date 2025-06-17
*/
public interface IBasContainerDetailsService
{
/**
* 查询容器物料明细
*
* @param id 容器物料明细主键
* @return 容器物料明细
*/
public BasContainerDetails selectBasContainerDetailsById(Long id);
/**
* 查询容器物料明细列表
*
* @param basContainerDetails 容器物料明细
* @return 容器物料明细集合
*/
public List<BasContainerDetails> selectBasContainerDetailsList(BasContainerDetails basContainerDetails);
/**
* 新增容器物料明细
*
* @param basContainerDetails 容器物料明细
* @return 结果
*/
public int insertBasContainerDetails(BasContainerDetails basContainerDetails);
/**
* 修改容器物料明细
*
* @param basContainerDetails 容器物料明细
* @return 结果
*/
public int updateBasContainerDetails(BasContainerDetails basContainerDetails);
/**
* 批量删除容器物料明细
*
* @param ids 需要删除的容器物料明细主键集合
* @return 结果
*/
public int deleteBasContainerDetailsByIds(Long[] ids);
/**
* 删除容器物料明细信息
*
* @param id 容器物料明细主键
* @return 结果
*/
public int deleteBasContainerDetailsById(Long id);
}

View File

@@ -0,0 +1,93 @@
package com.ruoyi.bas.containerDetails.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.bas.containerDetails.mapper.BasContainerDetailsMapper;
import com.ruoyi.bas.containerDetails.domain.BasContainerDetails;
import com.ruoyi.bas.containerDetails.service.IBasContainerDetailsService;
/**
* 容器物料明细Service业务层处理
*
* @author ruoyi
* @date 2025-06-17
*/
@Service
public class BasContainerDetailsServiceImpl implements IBasContainerDetailsService
{
@Autowired
private BasContainerDetailsMapper basContainerDetailsMapper;
/**
* 查询容器物料明细
*
* @param id 容器物料明细主键
* @return 容器物料明细
*/
@Override
public BasContainerDetails selectBasContainerDetailsById(Long id)
{
return basContainerDetailsMapper.selectBasContainerDetailsById(id);
}
/**
* 查询容器物料明细列表
*
* @param basContainerDetails 容器物料明细
* @return 容器物料明细
*/
@Override
public List<BasContainerDetails> selectBasContainerDetailsList(BasContainerDetails basContainerDetails)
{
return basContainerDetailsMapper.selectBasContainerDetailsList(basContainerDetails);
}
/**
* 新增容器物料明细
*
* @param basContainerDetails 容器物料明细
* @return 结果
*/
@Override
public int insertBasContainerDetails(BasContainerDetails basContainerDetails)
{
return basContainerDetailsMapper.insertBasContainerDetails(basContainerDetails);
}
/**
* 修改容器物料明细
*
* @param basContainerDetails 容器物料明细
* @return 结果
*/
@Override
public int updateBasContainerDetails(BasContainerDetails basContainerDetails)
{
return basContainerDetailsMapper.updateBasContainerDetails(basContainerDetails);
}
/**
* 批量删除容器物料明细
*
* @param ids 需要删除的容器物料明细主键
* @return 结果
*/
@Override
public int deleteBasContainerDetailsByIds(Long[] ids)
{
return basContainerDetailsMapper.deleteBasContainerDetailsByIds(ids);
}
/**
* 删除容器物料明细信息
*
* @param id 容器物料明细主键
* @return 结果
*/
@Override
public int deleteBasContainerDetailsById(Long id)
{
return basContainerDetailsMapper.deleteBasContainerDetailsById(id);
}
}

View File

@@ -0,0 +1,93 @@
<?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.bas.containerDetails.mapper.BasContainerDetailsMapper">
<resultMap type="BasContainerDetails" id="BasContainerDetailsResult">
<result property="id" column="id" />
<result property="containerId" column="container_id" />
<result property="productId" column="product_id" />
<result property="productName" column="product_name" />
<result property="quantity" column="quantity" />
<result property="unit" column="unit" />
<result property="spare1" column="spare1" />
<result property="spare2" column="spare2" />
<result property="spare3" column="spare3" />
</resultMap>
<sql id="selectBasContainerDetailsVo">
select id, container_id, product_id, product_name, quantity, unit, spare1, spare2, spare3 from bas_container_details
</sql>
<select id="selectBasContainerDetailsList" parameterType="BasContainerDetails" resultMap="BasContainerDetailsResult">
<include refid="selectBasContainerDetailsVo"/>
<where>
<if test="containerId != null and containerId != ''"> and container_id = #{containerId}</if>
<if test="productId != null and productId != ''"> and product_id = #{productId}</if>
<if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
<if test="quantity != null "> and quantity = #{quantity}</if>
<if test="unit != null and unit != ''"> and unit = #{unit}</if>
<if test="spare1 != null and spare1 != ''"> and spare1 = #{spare1}</if>
<if test="spare2 != null and spare2 != ''"> and spare2 = #{spare2}</if>
<if test="spare3 != null and spare3 != ''"> and spare3 = #{spare3}</if>
</where>
</select>
<select id="selectBasContainerDetailsById" parameterType="Long" resultMap="BasContainerDetailsResult">
<include refid="selectBasContainerDetailsVo"/>
where id = #{id}
</select>
<insert id="insertBasContainerDetails" parameterType="BasContainerDetails">
insert into bas_container_details
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="containerId != null">container_id,</if>
<if test="productId != null">product_id,</if>
<if test="productName != null">product_name,</if>
<if test="quantity != null">quantity,</if>
<if test="unit != null">unit,</if>
<if test="spare1 != null">spare1,</if>
<if test="spare2 != null">spare2,</if>
<if test="spare3 != null">spare3,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="containerId != null">#{containerId},</if>
<if test="productId != null">#{productId},</if>
<if test="productName != null">#{productName},</if>
<if test="quantity != null">#{quantity},</if>
<if test="unit != null">#{unit},</if>
<if test="spare1 != null">#{spare1},</if>
<if test="spare2 != null">#{spare2},</if>
<if test="spare3 != null">#{spare3},</if>
</trim>
</insert>
<update id="updateBasContainerDetails" parameterType="BasContainerDetails">
update bas_container_details
<trim prefix="SET" suffixOverrides=",">
<if test="containerId != null">container_id = #{containerId},</if>
<if test="productId != null">product_id = #{productId},</if>
<if test="productName != null">product_name = #{productName},</if>
<if test="quantity != null">quantity = #{quantity},</if>
<if test="unit != null">unit = #{unit},</if>
<if test="spare1 != null">spare1 = #{spare1},</if>
<if test="spare2 != null">spare2 = #{spare2},</if>
<if test="spare3 != null">spare3 = #{spare3},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBasContainerDetailsById" parameterType="Long">
delete from bas_container_details where id = #{id}
</delete>
<delete id="deleteBasContainerDetailsByIds" parameterType="String">
delete from bas_container_details where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,99 @@
<?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.bas.container.mapper.BasContainerMapper">
<resultMap type="BasContainer" id="BasContainerResult">
<result property="containerId" column="container_id" />
<result property="portName" column="port_name" />
<result property="status" column="status" />
<result property="productTypeQuantity" column="product_type_quantity" />
<result property="capacity" column="capacity" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<result property="operationMan" column="operation_man" />
<result property="spare1" column="spare1" />
<result property="spare2" column="spare2" />
<result property="spare3" column="spare3" />
</resultMap>
<sql id="selectBasContainerVo">
select container_id, port_name, status, product_type_quantity, capacity, create_time, update_time, operation_man, spare1, spare2, spare3 from bas_container
</sql>
<select id="selectBasContainerList" parameterType="BasContainer" resultMap="BasContainerResult">
<include refid="selectBasContainerVo"/>
<where>
<if test="containerId != null and containerId != ''"> and container_id = #{containerId}</if>
<if test="portName != null and portName != ''"> and port_name = #{portName}</if>
<if test="status != null "> and status = #{status}</if>
<if test="productTypeQuantity != null "> and product_type_quantity = #{productTypeQuantity}</if>
<if test="updateTime != null and updateTime != ''"> and update_time = #{updateTime}</if>
<if test="operationMan != null and operationMan != ''"> and operation_man = #{operationMan}</if>
</where>
</select>
<select id="selectBasContainerByContainerId" parameterType="String" resultMap="BasContainerResult">
<include refid="selectBasContainerVo"/>
where container_id = #{containerId}
</select>
<insert id="insertBasContainer" parameterType="BasContainer">
insert into bas_container
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="containerId != null">container_id,</if>
<if test="portName != null">port_name,</if>
<if test="status != null">status,</if>
<if test="productTypeQuantity != null">product_type_quantity,</if>
<if test="capacity != null">capacity,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="operationMan != null">operation_man,</if>
<if test="spare1 != null">spare1,</if>
<if test="spare2 != null">spare2,</if>
<if test="spare3 != null">spare3,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="containerId != null">#{containerId},</if>
<if test="portName != null">#{portName},</if>
<if test="status != null">#{status},</if>
<if test="productTypeQuantity != null">#{productTypeQuantity},</if>
<if test="capacity != null">#{capacity},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="operationMan != null">#{operationMan},</if>
<if test="spare1 != null">#{spare1},</if>
<if test="spare2 != null">#{spare2},</if>
<if test="spare3 != null">#{spare3},</if>
</trim>
</insert>
<update id="updateBasContainer" parameterType="BasContainer">
update bas_container
<trim prefix="SET" suffixOverrides=",">
<if test="portName != null">port_name = #{portName},</if>
<if test="status != null">status = #{status},</if>
<if test="productTypeQuantity != null">product_type_quantity = #{productTypeQuantity},</if>
<if test="capacity != null">capacity = #{capacity},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="operationMan != null">operation_man = #{operationMan},</if>
<if test="spare1 != null">spare1 = #{spare1},</if>
<if test="spare2 != null">spare2 = #{spare2},</if>
<if test="spare3 != null">spare3 = #{spare3},</if>
</trim>
where container_id = #{containerId}
</update>
<delete id="deleteBasContainerByContainerId" parameterType="String">
delete from bas_container where container_id = #{containerId}
</delete>
<delete id="deleteBasContainerByContainerIds" parameterType="String">
delete from bas_container where container_id in
<foreach item="containerId" collection="array" open="(" separator="," close=")">
#{containerId}
</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询容器管理列表
export function listContainer(query) {
return request({
url: '/bas/container/list',
method: 'get',
params: query
})
}
// 查询容器管理详细
export function getContainer(containerId) {
return request({
url: '/bas/container/' + containerId,
method: 'get'
})
}
// 新增容器管理
export function addContainer(data) {
return request({
url: '/bas/container',
method: 'post',
data: data
})
}
// 修改容器管理
export function updateContainer(data) {
return request({
url: '/bas/container',
method: 'put',
data: data
})
}
// 删除容器管理
export function delContainer(containerId) {
return request({
url: '/bas/container/' + containerId,
method: 'delete'
})
}
// 获取点位名称
export function getPortNames() {
return request({
url: '/product/port/list',
method: 'get'
});
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询容器物料明细列表
export function listContainerDetails(query) {
return request({
url: '/bas/containerDetails/list',
method: 'get',
params: query
})
}
// 查询容器物料明细详细
export function getContainerDetails(id) {
return request({
url: '/bas/containerDetails/' + id,
method: 'get'
})
}
// 新增容器物料明细
export function addContainerDetails(data) {
return request({
url: '/bas/containerDetails',
method: 'post',
data: data
})
}
// 修改容器物料明细
export function updateContainerDetails(data) {
return request({
url: '/bas/containerDetails',
method: 'put',
data: data
})
}
// 删除容器物料明细
export function delContainerDetails(id) {
return request({
url: '/bas/containerDetails/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,312 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="容器编号" prop="containerId">
<el-input
v-model="queryParams.containerId"
placeholder="请输入容器编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="点位名称" prop="portName">
<el-select v-model="queryParams.portName" placeholder="请选择点位名称" clearable>
<el-option
v-for="dict in portNameOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="物料种类" prop="productTypeQuantity">
<el-input
v-model="queryParams.productTypeQuantity"
placeholder="请输入物料种类"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="操作人" prop="operationMan">
<el-input
v-model="queryParams.operationMan"
placeholder="请输入操作人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['bas:container:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['bas:container:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['bas:container:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['bas:container:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="containerList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="容器编号" align="center" prop="containerId" />
<el-table-column label="点位名称" align="center" prop="portName" />
<el-table-column label="容器状态" align="center" prop="status" />
<el-table-column label="物料种类" align="center" prop="productTypeQuantity" />
<el-table-column label="容量" align="center" prop="capacity" />
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="状态更新时间" align="center" prop="updateTime" />
<el-table-column label="操作人" align="center" prop="operationMan" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['bas:container:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['bas:container:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改容器管理对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="容器编号" prop="containerId">
<el-input v-model="form.containerId" placeholder="请输入容器编号" />
</el-form-item>
<el-form-item label="点位名称" prop="portName">
<el-select v-model="queryParams.portName" placeholder="请选择点位名称" clearable>
<el-option
disabled
v-for="item in portNameOptions"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="物料种类" prop="productTypeQuantity">
<el-input v-model="form.productTypeQuantity" placeholder="请输入物料种类" />
</el-form-item>
<el-form-item label="操作人" prop="operationMan">
<el-input v-model="form.operationMan" placeholder="请输入操作人" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listContainer, getContainer, delContainer, addContainer, updateContainer } from "@/api/bas/container"
export default {
name: "Container",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 容器管理表格数据
containerList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
containerId: null,
portName: null,
status: null,
productTypeQuantity: null,
updateTime: null,
operationMan: null,
},
portNameOptions: [],
// 表单参数
form: {},
// 表单校验
rules: {
}
}
},
created() {
this.getList()
},
methods: {
/** 查询容器管理列表 */
getList() {
this.loading = true
listContainer(this.queryParams).then(response => {
this.containerList = response.rows
this.portNameOptions = response.portNameOptions
this.total = response.total
this.loading = false
})
console.log(response)
console.log(this.portNameOptions)
},
// 取消按钮
cancel() {
this.open = false
this.reset()
},
// 表单重置
reset() {
this.form = {
containerId: null,
portName: null,
status: null,
productTypeQuantity: null,
capacity: null,
createTime: null,
updateTime: null,
operationMan: null,
spare1: null,
spare2: null,
spare3: null
}
this.resetForm("form")
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm")
this.handleQuery()
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.containerId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = "添加容器管理"
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const containerId = row.containerId || this.ids
getContainer(containerId).then(response => {
this.form = response.data
this.open = true
this.title = "修改容器管理"
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.containerId != null) {
updateContainer(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
this.open = false
this.getList()
})
} else {
addContainer(this.form).then(response => {
this.$modal.msgSuccess("新增成功")
this.open = false
this.getList()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const containerIds = row.containerId || this.ids
this.$modal.confirm('是否确认删除容器管理编号为"' + containerIds + '"的数据项?').then(function() {
return delContainer(containerIds)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
this.download('bas/container/export', {
...this.queryParams
}, `container_${new Date().getTime()}.xlsx`)
}
}
}
</script>

View File

@@ -0,0 +1,343 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="容器编号" prop="containerId">
<el-input
v-model="queryParams.containerId"
placeholder="请输入容器编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="物料编码" prop="productId">
<el-input
v-model="queryParams.productId"
placeholder="请输入物料编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="物料名称" prop="productName">
<el-input
v-model="queryParams.productName"
placeholder="请输入物料名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="数量" prop="quantity">
<el-input
v-model="queryParams.quantity"
placeholder="请输入数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单位" prop="unit">
<el-input
v-model="queryParams.unit"
placeholder="请输入单位"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用" prop="spare1">
<el-input
v-model="queryParams.spare1"
placeholder="请输入备用"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用" prop="spare2">
<el-input
v-model="queryParams.spare2"
placeholder="请输入备用"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用" prop="spare3">
<el-input
v-model="queryParams.spare3"
placeholder="请输入备用"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['bas:containerDetails:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['bas:containerDetails:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['bas:containerDetails:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['bas:containerDetails:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="containerDetailsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="id" align="center" prop="id" />
<el-table-column label="容器编号" align="center" prop="containerId" />
<el-table-column label="物料编码" align="center" prop="productId" />
<el-table-column label="物料名称" align="center" prop="productName" />
<el-table-column label="数量" align="center" prop="quantity" />
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="备用" align="center" prop="spare1" />
<el-table-column label="备用" align="center" prop="spare2" />
<el-table-column label="备用" align="center" prop="spare3" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['bas:containerDetails:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['bas:containerDetails:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改容器物料明细对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="容器编号" prop="containerId">
<el-input v-model="form.containerId" placeholder="请输入容器编号" />
</el-form-item>
<el-form-item label="物料编码" prop="productId">
<el-input v-model="form.productId" placeholder="请输入物料编码" />
</el-form-item>
<el-form-item label="物料名称" prop="productName">
<el-input v-model="form.productName" placeholder="请输入物料名称" />
</el-form-item>
<el-form-item label="数量" prop="quantity">
<el-input v-model="form.quantity" placeholder="请输入数量" />
</el-form-item>
<el-form-item label="单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入单位" />
</el-form-item>
<el-form-item label="备用" prop="spare1">
<el-input v-model="form.spare1" placeholder="请输入备用" />
</el-form-item>
<el-form-item label="备用" prop="spare2">
<el-input v-model="form.spare2" placeholder="请输入备用" />
</el-form-item>
<el-form-item label="备用" prop="spare3">
<el-input v-model="form.spare3" placeholder="请输入备用" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listContainerDetails, getContainerDetails, delContainerDetails, addContainerDetails, updateContainerDetails } from "@/api/bas/containerDetails"
export default {
name: "ContainerDetails",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 容器物料明细表格数据
containerDetailsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
containerId: null,
productId: null,
productName: null,
quantity: null,
unit: null,
spare1: null,
spare2: null,
spare3: null
},
// 表单参数
form: {},
// 表单校验
rules: {
}
}
},
created() {
this.getList()
},
methods: {
/** 查询容器物料明细列表 */
getList() {
this.loading = true
listContainerDetails(this.queryParams).then(response => {
this.containerDetailsList = response.rows
this.total = response.total
this.loading = false
})
},
// 取消按钮
cancel() {
this.open = false
this.reset()
},
// 表单重置
reset() {
this.form = {
id: null,
containerId: null,
productId: null,
productName: null,
quantity: null,
unit: null,
spare1: null,
spare2: null,
spare3: null
}
this.resetForm("form")
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm")
this.handleQuery()
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = "添加容器物料明细"
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const id = row.id || this.ids
getContainerDetails(id).then(response => {
this.form = response.data
this.open = true
this.title = "修改容器物料明细"
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateContainerDetails(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
this.open = false
this.getList()
})
} else {
addContainerDetails(this.form).then(response => {
this.$modal.msgSuccess("新增成功")
this.open = false
this.getList()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids
this.$modal.confirm('是否确认删除容器物料明细编号为"' + ids + '"的数据项?').then(function() {
return delContainerDetails(ids)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
this.download('bas/containerDetails/export', {
...this.queryParams
}, `containerDetails_${new Date().getTime()}.xlsx`)
}
}
}
</script>