feat(bid): 完成甲方报价模块全量功能开发
1. 新增甲方报价业务实体,继承基础实体类 2. 新增供应商报价明细查询接口,支持按供应商ID展开物料明细 3. 重构甲方报价关联逻辑,通过material_id精确关联物料表 4. 新增甲方报价历史统计、月度趋势、快速新建等服务功能 5. 完善菜单配置,修正甲方报价菜单结构,添加完整权限控制 6. 新增物料搜索自动补全功能,优化报价单详情页面 7. 在供应商详情页新增报价历史Tab页签,展示该供应商的所有报价物料明细 8. 在物料详情页新增甲方报价记录Tab页签,展示该物料的所有甲方报价历史 9. 新增数据库优化脚本,添加索引并修复历史数据关联
This commit is contained in:
@@ -8,6 +8,7 @@ import com.ruoyi.system.service.bid.IBizClientQuoteService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/bid/clientquote")
|
||||
@@ -41,4 +42,30 @@ public class BizClientQuoteController extends BaseController {
|
||||
public AjaxResult remove(@PathVariable Long quoteId) {
|
||||
return toAjax(service.deleteClientQuoteById(quoteId));
|
||||
}
|
||||
|
||||
// ========== 甲方报价历史 - 统计 ==========
|
||||
|
||||
@GetMapping("/statistics")
|
||||
public AjaxResult statistics(BizClientQuote query) {
|
||||
return success(service.selectClientQuoteStatistics(query));
|
||||
}
|
||||
|
||||
@GetMapping("/monthly-trend")
|
||||
public AjaxResult monthlyTrend() {
|
||||
return success(service.selectMonthlyTrend());
|
||||
}
|
||||
|
||||
// ========== 按物料ID查询报价历史 ==========
|
||||
|
||||
@GetMapping("/by-material/{materialId}")
|
||||
public AjaxResult byMaterial(@PathVariable Long materialId) {
|
||||
return success(service.selectClientQuotesByMaterialId(materialId));
|
||||
}
|
||||
|
||||
// ========== 基于历史报价快速新建 ==========
|
||||
|
||||
@PostMapping("/quick-create/{quoteId}")
|
||||
public AjaxResult quickCreate(@PathVariable Long quoteId) {
|
||||
return success(service.copyFromExisting(quoteId));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.web.controller.bid;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -11,11 +12,13 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.system.domain.bid.BizQuotation;
|
||||
import com.ruoyi.system.service.bid.IBizQuotationService;
|
||||
import com.ruoyi.system.mapper.bid.BizQuotationItemMapper;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/bid/quotation")
|
||||
public class BizQuotationController extends BaseController {
|
||||
@Autowired private IBizQuotationService service;
|
||||
@Autowired private BizQuotationItemMapper quotationItemMapper;
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('bid:quotation:list')")
|
||||
@GetMapping("/list")
|
||||
@@ -70,4 +73,15 @@ public class BizQuotationController extends BaseController {
|
||||
public AjaxResult remove(@PathVariable Long[] quotationIds) {
|
||||
return toAjax(service.deleteBizQuotationByIds(quotationIds));
|
||||
}
|
||||
|
||||
/**
|
||||
* 按供应商ID查询报价明细(展开为每行一条物料)
|
||||
* 用于供应商管理页面的"报价历史"Tab
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bid:quotation:list')")
|
||||
@GetMapping("/supplier-items/{supplierId}")
|
||||
public AjaxResult supplierItems(@PathVariable Long supplierId) {
|
||||
List<Map<String, Object>> list = quotationItemMapper.selectItemsBySupplierId(supplierId);
|
||||
return success(list);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user