feat(purchaseorder): 添加产品编码和型号查询功能
- 在采购订单列表页面添加产品编码和产品型号查询条件输入框 - 在表格中新增产品编码、产品型号和数量列显示相关信息 - 实现多条目时通过popover弹窗展示所有产品的详细信息 - 后端增加按产品编码和型号过滤采购订单的功能 - 优化采购订单详情查询逻辑以支持新的筛选条件 - 调整产品描述列宽度以改善显示效果dev_1.0.1^2
parent
e04b80ff25
commit
e298748d45
|
|
@ -130,7 +130,7 @@
|
||||||
<span>{{ scope.row.productModel }}</span>
|
<span>{{ scope.row.productModel }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="产品描述" show-overflow-tooltip>
|
<el-table-column label="产品描述" width="300" >
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.productDescription }}</span>
|
<span>{{ scope.row.productDescription }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,22 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="产品编码" prop="productCode">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.productCode"
|
||||||
|
placeholder="请输入产品编码"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="产品型号" prop="productModel">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.productModel"
|
||||||
|
placeholder="请输入产品型号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="汇智负责人" prop="ownerName">
|
<el-form-item label="汇智负责人" prop="ownerName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.ownerName"
|
v-model="queryParams.ownerName"
|
||||||
|
|
@ -103,6 +119,44 @@
|
||||||
<el-table-column label="制造商名称" align="center" prop="vendorName" width="120"/>
|
<el-table-column label="制造商名称" align="center" prop="vendorName" width="120"/>
|
||||||
<el-table-column label="联系人" align="center" prop="vendorUser" width="100"/>
|
<el-table-column label="联系人" align="center" prop="vendorUser" width="100"/>
|
||||||
<el-table-column label="联系电话" align="center" prop="vendorPhone" width="120"/>
|
<el-table-column label="联系电话" align="center" prop="vendorPhone" width="120"/>
|
||||||
|
<el-table-column label="产品编码" align="center" width="150">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div v-if="scope.row.omsPurchaseOrderItemList && scope.row.omsPurchaseOrderItemList.length > 0">
|
||||||
|
<span v-if="scope.row.omsPurchaseOrderItemList.length === 1">
|
||||||
|
{{ scope.row.omsPurchaseOrderItemList[0].productCode }}
|
||||||
|
</span>
|
||||||
|
<el-popover v-else placement="bottom" width="500" trigger="click">
|
||||||
|
<el-table :data="scope.row.omsPurchaseOrderItemList" size="mini">
|
||||||
|
<el-table-column property="productCode" label="产品编码" width="180"></el-table-column>
|
||||||
|
<el-table-column property="productModel" label="产品型号" width="180"></el-table-column>
|
||||||
|
<el-table-column property="quantity" label="数量" width="80"></el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div slot="reference" style="cursor: pointer; color: #409EFF">
|
||||||
|
{{ scope.row.omsPurchaseOrderItemList[0].productCode }} <i class="el-icon-arrow-down"></i>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
|
<span v-else>-</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="产品型号" align="center" width="150">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span v-if="scope.row.omsPurchaseOrderItemList && scope.row.omsPurchaseOrderItemList.length > 0">
|
||||||
|
{{ scope.row.omsPurchaseOrderItemList[0].productModel }}
|
||||||
|
<span v-if="scope.row.omsPurchaseOrderItemList.length > 1">...</span>
|
||||||
|
</span>
|
||||||
|
<span v-else>-</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="数量" align="center" width="80">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span v-if="scope.row.omsPurchaseOrderItemList && scope.row.omsPurchaseOrderItemList.length > 0">
|
||||||
|
{{ scope.row.omsPurchaseOrderItemList[0].quantity }}
|
||||||
|
<span v-if="scope.row.omsPurchaseOrderItemList.length > 1">...</span>
|
||||||
|
</span>
|
||||||
|
<span v-else>-</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="含税总计金额" align="center" prop="totalAmount" width="120"/>
|
<el-table-column label="含税总计金额" align="center" prop="totalAmount" width="120"/>
|
||||||
<el-table-column label="发起日期" align="center" prop="createTime" width="180" sortable>
|
<el-table-column label="发起日期" align="center" prop="createTime" width="180" sortable>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
@ -345,6 +399,8 @@ export default {
|
||||||
ownerName: null,
|
ownerName: null,
|
||||||
approveStatus: null,
|
approveStatus: null,
|
||||||
confirmStatus: null,
|
confirmStatus: null,
|
||||||
|
productModel: null,
|
||||||
|
productCode: null,
|
||||||
status: null,
|
status: null,
|
||||||
orderByColumn: 'createTime',
|
orderByColumn: 'createTime',
|
||||||
isAsc: 'desc'
|
isAsc: 'desc'
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,13 @@ public class OmsPurchaseOrderServiceImpl implements IOmsPurchaseOrderService, To
|
||||||
@Override
|
@Override
|
||||||
public List<OmsPurchaseOrder> selectOmsPurchaseOrderList(OmsPurchaseOrder omsPurchaseOrder)
|
public List<OmsPurchaseOrder> selectOmsPurchaseOrderList(OmsPurchaseOrder omsPurchaseOrder)
|
||||||
{
|
{
|
||||||
return omsPurchaseOrderMapper.selectOmsPurchaseOrderList(omsPurchaseOrder);
|
List<OmsPurchaseOrder> omsPurchaseOrders = omsPurchaseOrderMapper.selectOmsPurchaseOrderList(omsPurchaseOrder);
|
||||||
|
if (CollUtil.isNotEmpty(omsPurchaseOrders)) {
|
||||||
|
List<OmsPurchaseOrderItem> omsPurchaseOrderItems = omsPurchaseOrderMapper.listItemByCodeList(omsPurchaseOrders.stream().map(OmsPurchaseOrder::getPurchaseNo).collect(Collectors.toList()));
|
||||||
|
Map<String, List<OmsPurchaseOrderItem>> collect = omsPurchaseOrderItems.stream().collect(Collectors.groupingBy(OmsPurchaseOrderItem::getPurchaseNo));
|
||||||
|
omsPurchaseOrders.forEach(item -> item.setOmsPurchaseOrderItemList(collect.get(item.getPurchaseNo())));
|
||||||
|
}
|
||||||
|
return omsPurchaseOrders;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="flowType != null "> and t1.flow_type = #{flowType}</if>
|
<if test="flowType != null "> and t1.flow_type = #{flowType}</if>
|
||||||
<if test="vendorName != null "> and t2.vendor_name = #{vendorName}</if>
|
<if test="vendorName != null "> and t2.vendor_name = #{vendorName}</if>
|
||||||
<if test="ownerName != null "> and t1.owner_name = #{ownerName}</if>
|
<if test="ownerName != null "> and t1.owner_name = #{ownerName}</if>
|
||||||
|
<if test="productCode != null and productCode!='' "> and t1.id in (select purchase_id from oms_purchase_order_item where product_code =#{productCode})</if>
|
||||||
|
<if test="productModel != null and productModel!=''"> and t1.id in
|
||||||
|
(select purchase_id from oms_purchase_order_item t1 left join product_info t2 on t1.product_code=t2.product_code where t2.model like concat('%',#{productModel},'%'))</if>
|
||||||
<if test="authVendorCodeList != null and authVendorCodeList.size>0 "> and t2.vendor_code in
|
<if test="authVendorCodeList != null and authVendorCodeList.size>0 "> and t2.vendor_code in
|
||||||
<foreach item="item" collection="authVendorCodeList" separator="," open="(" close=")">#{item}</foreach>
|
<foreach item="item" collection="authVendorCodeList" separator="," open="(" close=")">#{item}</foreach>
|
||||||
</if>
|
</if>
|
||||||
|
|
@ -260,10 +263,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
t1.amount_total,
|
t1.amount_total,
|
||||||
t1.delivery_date,
|
t1.delivery_date,
|
||||||
t1.inner_quantity,
|
t1.inner_quantity,
|
||||||
opo.purchase_no
|
opo.purchase_no,
|
||||||
|
t3.model as product_model
|
||||||
FROM
|
FROM
|
||||||
oms_purchase_order_item t1
|
oms_purchase_order_item t1
|
||||||
inner join oms_purchase_order opo on t1.purchase_id = opo.id
|
inner join oms_purchase_order opo on t1.purchase_id = opo.id
|
||||||
|
left join product_info t3 on t1.product_code=t3.product_code
|
||||||
where opo.purchase_no in
|
where opo.purchase_no in
|
||||||
<foreach item="item" collection="list" separator="," open="(" close=")">
|
<foreach item="item" collection="list" separator="," open="(" close=")">
|
||||||
#{item}
|
#{item}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue