Commit 1f9d9564 by yubin

组件双击 去选框 弹窗修改高度 物料根据库存排序反显 列表id修改

parent b0192161
......@@ -8,7 +8,13 @@ export function listItems(query) {
params: query
})
}
export function listLog(query) {
return request({
url: '/inventory/items/listLog',
method: 'get',
params: query
})
}
export function getStatistics(query) {
return request({
url: '/inventory/items/getStatistics',
......
......@@ -49,3 +49,10 @@ export function getMaterialsdicts() {
method: 'get'
})
}
export function ListMaterialsInventory(query){
return request({
url: '/inventory/materials/ListMaterialsInventory',
method: 'post',
params: query
})
}
......@@ -3,14 +3,16 @@
<!-- 页面标题和操作按钮 -->
<PageTitle>
<template #buttons>
<el-button
type="primary"
plain
icon="el-icon-plus"
size="medium"
@click="handleAdd"
v-hasPermi="['inventory:orders:add']"
v-hasPermi="['inventory:inbound:add']"
>新增</el-button>
<el-button
type="success"
plain
......@@ -18,16 +20,9 @@
size="medium"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['inventory:orders:edit']"
v-hasPermi="['inventory:inbound:edit']"
>修改</el-button>
<el-button
type="success"
plain
icon="el-icon-edit"
size="medium"
@click="handleImport"
v-hasPermi="['inventory:orders:add']"
>导入</el-button>
<el-button
type="danger"
plain
......@@ -35,15 +30,25 @@
size="medium"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['inventory:orders:remove']"
v-hasPermi="['inventory:inbound:remove']"
>删除</el-button>
<el-button
type="warning"
plain
icon="el-icon-upload"
size="medium"
@click="handleImport"
v-hasPermi="['inventory:inbound:import']"
>导入</el-button>
<el-button
type="warning"
plain
icon="el-icon-download"
size="medium"
@click="handleExport"
v-hasPermi="['inventory:orders:export']"
v-hasPermi="['inventory:inbound:export']"
>导出</el-button>
</template>
</PageTitle>
......@@ -98,10 +103,10 @@
/>
</el-select>
</el-form-item>
<el-form-item label="批次ID" prop="batchCode">
<el-form-item label="批次" prop="batchCode">
<el-input
v-model="queryParams.batchCode"
placeholder="请输入批次ID"
placeholder="请输入批次"
clearable
@keyup.enter.native="handleQuery"
/>
......@@ -205,7 +210,7 @@
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="批次ID" align="center" prop="batchCode" width="120" />
<el-table-column label="批次" align="center" prop="batchCode" width="120" />
<el-table-column label="仓库" align="center" prop="warehouseName" width="120">
<template slot-scope="scope">
{{ scope.row.warehouseName || '-' }}
......@@ -336,8 +341,8 @@
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="批次ID" prop="batchCode">
<el-input v-model="form.batchCode" placeholder="请输入批次ID" :disabled="isViewDetail || formDisabled.batchCode" />
<el-form-item label="批次" prop="batchCode">
<el-input v-model="form.batchCode" placeholder="请输入批次" :disabled="isViewDetail || formDisabled.batchCode" />
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -420,13 +425,10 @@
</el-col>
</el-row>
<!-- 【修改1】新增materialName展示 -->
<div v-for="(group, materialId) in outboundOrderItemsGroup" :key="materialId" class="material-group mb10">
<div class="group-header" style="background: #f5f7fa; padding: 8px 12px; border-radius: 4px; margin-bottom: 8px;">
<!-- 【修改2】展示物料名称(优先取分组的materialName,无则用getMaterialName方法) -->
<span style="font-weight: 600; margin-right: 16px;">物料:{{ group.materialName }}</span>
<span style="color: #666;">明细数量:{{ group.items.length }} </span>
<!-- 仅编辑模式显示分组操作按钮 -->
<el-button
type="text"
size="mini"
......
......@@ -7,6 +7,8 @@ import java.util.UUID;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.core.domain.entity.Materials;
import com.ruoyi.inventory.domain.Inventory;
import com.ruoyi.inventory.domain.OutboundOrderItems;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -45,6 +47,19 @@ public class MaterialsController extends BaseController
}
/**
* 查询库存列表
*/
@PreAuthorize("@ss.hasPermi('inventory:inventory:list')")
@PostMapping("/ListMaterialsInventory")
public TableDataInfo ListMaterialsInventory(Materials materials)
{
startPage();
List<Materials> list = materialsService.ListMaterialsInventory(materials);
return getDataTable(list);
}
/**
* 导出物料列表
*/
@PreAuthorize("@ss.hasPermi('inventory:materials:export')")
......
......@@ -2,8 +2,6 @@ package com.ruoyi.common.core.domain.entity;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 物料对象 materials
......@@ -11,7 +9,6 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* @author ruoyi
* @date 2025-11-28
*/
public class Materials extends BaseEntity
{
private static final long serialVersionUID = 1L;
......@@ -38,7 +35,6 @@ public class Materials extends BaseEntity
@Excel(name = "中文描述")
private String materialName;
/** 物料名称 检索条件 */
@Excel(name = "英文描述")
private String materialEname;
......@@ -136,6 +132,12 @@ public class Materials extends BaseEntity
/** 排序号 */
private String updateUserCode;
// ======================== 仅新增这一个库存字段 ========================
/** 库存数量(关联inventory表) */
@Excel(name = "库存数量")
private Long stock;
// ======================== 原有所有getter/setter(完整保留) ========================
public String getId() {
return id;
}
......@@ -386,6 +388,15 @@ public class Materials extends BaseEntity
this.updateUserCode = updateUserCode;
}
// ======================== 仅新增库存字段的getter/setter ========================
public Long getStock() {
return stock;
}
public void setStock(Long stock) {
this.stock = stock;
}
@Override
public String toString() {
return "Materials{" +
......@@ -420,6 +431,7 @@ public class Materials extends BaseEntity
", sortNo=" + sortNo +
", createUserCode='" + createUserCode + '\'' +
", updateUserCode='" + updateUserCode + '\'' +
", stock=" + stock + // 仅追加这一行
'}';
}
}
\ No newline at end of file
......@@ -99,6 +99,9 @@ public class InventoryController extends BaseController
List<Inventory> list = inventoryService.listByMatreialId(inventory);
return getDataTable(list);
}
/**
* 导出库存列表
*/
......
......@@ -3,9 +3,11 @@ package com.ruoyi.inventory.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.inventory.domain.OutboundOrderLog;
import com.ruoyi.inventory.domain.vo.inboundVO.InboundTemplateVO;
import com.ruoyi.inventory.domain.vo.OutboundOrdersSummaryVO;
import com.ruoyi.inventory.domain.vo.OutboundTemplateVO;
import com.ruoyi.inventory.service.IOutboundOrderLogService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -39,6 +41,9 @@ public class OutboundOrderItemsController extends BaseController
{
@Autowired
private IOutboundOrderItemsService outboundOrderItemsService;
@Autowired
private IOutboundOrderLogService outboundOrderLogService;
/**
* 查询出库单明细列表
......@@ -55,6 +60,19 @@ public class OutboundOrderItemsController extends BaseController
* 查询出库单明细列表
*/
@PreAuthorize("@ss.hasPermi('inventory:items:list')")
@GetMapping("/listLog")
public TableDataInfo listLog(OutboundOrderItems outboundOrderItems)
{
startPage();
OutboundOrderLog outboundOrderLog = new OutboundOrderLog();
outboundOrderLog.setOrderId(outboundOrderItems.getOrderId());
List<OutboundOrderLog> list = outboundOrderLogService.selectOutboundOrderLogList(outboundOrderLog);
return getDataTable(list);
}
/**
* 查询出库单明细列表
*/
@PreAuthorize("@ss.hasPermi('inventory:items:list')")
@GetMapping("/getStatistics")
public TableDataInfo getStatistics(OutboundOrdersSummaryVO outboundOrderItems)
{
......@@ -146,4 +164,5 @@ public class OutboundOrderItemsController extends BaseController
return toAjax(outboundOrderItemsService.deleteOutboundOrderItemsByIds(ids));
}
}
......@@ -4,6 +4,7 @@ import java.util.List;
import java.util.Map;
import com.ruoyi.common.core.domain.entity.Materials;
import com.ruoyi.inventory.domain.OutboundOrderItems;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
......@@ -41,6 +42,14 @@ public interface MaterialsMapper
public List<Materials> selectMaterialsList(Materials materials);
/**
* 查询物料列表
*
* @param materials 物料
* @return 物料集合
*/
public List<Materials> selectMaterialsInventoryList(Materials materials);
/**
* 新增物料
*
* @param materials 物料
......@@ -104,4 +113,6 @@ public interface MaterialsMapper
*/
@MapKey("sap_no")
public Map<String,Map<String,String>> selectMaterialIdAndSapMap();
}
package com.ruoyi.inventory.service;
import com.ruoyi.common.core.domain.entity.Materials;
import com.ruoyi.inventory.domain.OutboundOrderItems;
import java.util.List;
import java.util.Map;
......@@ -30,6 +31,13 @@ public interface IMaterialsService
public List<Materials> selectMaterialsList(Materials materials);
/**
* 查询物料列表
*
* @param materials 物料
* @return 物料集合
*/
public List<Materials> ListMaterialsInventory(Materials materials);
/**
* 新增物料
*
* @param materials 物料
......
......@@ -55,6 +55,7 @@ public class InventoryServiceImpl implements IInventoryService
return inventoryMapper.selectInventoryById(id);
}
/**
* 查询库存列表
*
......
......@@ -10,6 +10,7 @@ import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.inventory.domain.OutboundOrderItems;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.inventory.mapper.MaterialsMapper;
......@@ -51,6 +52,11 @@ public class MaterialsServiceImpl implements IMaterialsService
return materialsMapper.selectMaterialsList(materials);
}
@Override
public List<Materials> ListMaterialsInventory(Materials materials) {
return materialsMapper.selectMaterialsInventoryList(materials);
}
/**
* 新增物料
*
......
......@@ -34,6 +34,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createUserCode" column="create_user_code" />
<result property="updateTime" column="update_time" />
<result property="updateUserCode" column="update_user_code" />
<result property="stock" column="stock" />
</resultMap>
<sql id="selectMaterialsVo">
......@@ -73,6 +74,73 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by sort_no asc
</select>
<select id="selectMaterialsInventoryList" parameterType="Materials" resultMap="MaterialsResult">
select
m.id,
m.material_code,
m.material_name,
m.material_ename,
m.sap_no,
m.ts_code,
m.category_code,
m.hazard_id,
m.specification,
m.material_unit,
m.unit_weight,
m.package_weight,
m.total_weight,
m.volume,
m.shelf_life_days,
m.storage_temperature,
m.special_requirements,
m.is_batch_managed,
m.is_serial_managed,
m.min_stock_level,
m.max_stock_level,
IFNULL(i.quantity-locked_quantity, 0) as stock, -- 无库存时默认显示0
m.is_used,
m.is_active,
m.risk_level,
m.sort_no,
m.create_time,
m.create_user_code,
m.update_time,
m.update_user_code
from materials m
left join inventory i on m.id = i.material_id
<where>
m.is_used = 1
<if test="materialCode != null and materialCode != ''"> and m.material_code like concat('%', #{materialCode}, '%')</if>
<if test="materialName != null and materialName != ''"> and m.material_name like concat('%', #{materialName}, '%')</if>
<if test="sapNo != null and sapNo != ''"> and m.sap_no like concat('%', #{sapNo}, '%')</if>
<if test="tsCode != null and tsCode != ''"> and m.ts_code like concat('%', #{tsCode}, '%')</if>
<if test="categoryCode != null and categoryCode != ''"> and m.category_code = #{categoryCode}</if>
<if test="hazardId != null and hazardId != ''"> and m.hazard_id like concat('%', #{hazardId}, '%')</if>
<if test="specification != null and specification != ''"> and m.specification like concat('%', #{specification}, '%')</if>
<if test="materialUnit != null and materialUnit != ''"> and m.material_unit like concat('%', #{materialUnit}, '%')</if>
<if test="unitWeight != null "> and m.unit_weight = #{unitWeight}</if>
<if test="packageWeight != null "> and m.package_weight = #{packageWeight}</if>
<if test="totalWeight != null "> and m.total_weight = #{totalWeight}</if>
<if test="volume != null "> and m.volume = #{volume}</if>
<if test="shelfLifeDays != null "> and m.shelf_life_days = #{shelfLifeDays}</if>
<if test="storageTemperature != null and storageTemperature != ''"> and m.storage_temperature like concat('%', #{storageTemperature}, '%')</if>
<if test="specialRequirements != null and specialRequirements != ''"> and m.special_requirements like concat('%', #{specialRequirements}, '%')</if>
<if test="isBatchManaged != null "> and m.is_batch_managed = #{isBatchManaged}</if>
<if test="isSerialManaged != null "> and m.is_serial_managed = #{isSerialManaged}</if>
<if test="minStockLevel != null "> and m.min_stock_level = #{minStockLevel}</if>
<if test="maxStockLevel != null "> and m.max_stock_level = #{maxStockLevel}</if>
<if test="isUsed != null "> and m.is_used = #{isUsed}</if>
<if test="isActive != null "> and m.is_active = #{isActive}</if>
<if test="riskLevel != null and riskLevel != ''"> and m.risk_level like concat('%', #{riskLevel}, '%')</if>
<if test="sortNo != null "> and m.sort_no = #{sortNo}</if>
<if test="createTime != null "> and m.create_time like concat('%', #{createTime}, '%')</if>
<if test="updateTime != null "> and m.update_time like concat('%', #{updateTime}, '%')</if>
-- 可选:添加库存数量的查询条件(如果需要)
<if test="stock != null "> and i.stock = #{stock}</if>
</where>
order by stock desc
</select>
<select id="selectMaterialsById" parameterType="String" resultMap="MaterialsResult">
<include refid="selectMaterialsVo"/>
where id = #{id}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论