import type { PageParam, PageResult } from '@vben/request';
|
|
import { requestClient } from '#/api/request';
|
|
export namespace MesTraceCrossRegionApi {
|
/** 窜货预警 */
|
export interface Warning {
|
id?: number; // 编号
|
warningNo?: string; // 预警编号
|
bagCodeId?: number; // 袋码编号
|
bagCode?: string; // 袋码
|
palletCodeId?: number; // 托盘码编号
|
palletCode?: string; // 托盘码
|
batchId?: number; // 生产批次编号
|
batchCode?: string; // 批次号
|
itemId?: number; // 物料编号
|
itemCode?: string; // 物料编码
|
itemName?: string; // 物料名称
|
salesId?: number; // 销售出库单编号
|
salesCode?: string; // 出库单号
|
clientId?: number; // 经销商编号
|
clientName?: string; // 经销商名称
|
dealerProvince?: string; // 经销商省份
|
dealerCity?: string; // 经销商城市
|
scanProvince?: string; // 扫码省份
|
scanCity?: string; // 扫码城市
|
warningType?: string; // 预警类型:CROSS_PROVINCE / CROSS_CITY
|
warningTypeName?: string; // 预警类型名称
|
scanEventId?: number; // 关联消费者扫码事件编号
|
status?: number; // 状态:10 待处理 / 20 已处理 / 30 误报
|
statusName?: string; // 状态名称
|
handleUserId?: number; // 处理人编号
|
handleUserName?: string; // 处理人姓名
|
handleTime?: string; // 处理时间
|
handleRemark?: string; // 处理备注
|
eventTime?: string; // 预警产生时间
|
}
|
|
/** 窜货预警分页查询参数 */
|
export interface PageParams extends PageParam {
|
status?: number;
|
warningType?: string;
|
batchCode?: string;
|
bagCode?: string;
|
clientName?: string;
|
eventTime?: string[];
|
}
|
|
/** 窜货预警汇总 */
|
export interface Summary {
|
[key: string]: number | undefined; // 汇总指标(按字段名取值)
|
total?: number; // 预警总数
|
pending?: number; // 待处理数量
|
handled?: number; // 已处理数量
|
falseAlarm?: number; // 误报数量
|
crossProvince?: number; // 跨省窜货数量
|
crossCity?: number; // 跨市窜货数量
|
}
|
|
/** 窜货预警分布统计项 */
|
export interface StatisticsItem {
|
name?: string; // 分组名称
|
count?: number; // 预警数量
|
}
|
|
/** 防窜货规则配置 */
|
export interface AntiConfig {
|
warningLevel?: string; // 判定粒度:PROVINCE 跨省 / CITY 跨市
|
remark?: string; // 配置说明
|
}
|
}
|
|
/** 获得窜货预警分页 */
|
export function getTraceCrossRegionPage(
|
params: MesTraceCrossRegionApi.PageParams,
|
) {
|
return requestClient.get<PageResult<MesTraceCrossRegionApi.Warning>>(
|
'/mes/trace-cross-region/page',
|
{ params },
|
);
|
}
|
|
/** 处理窜货预警 */
|
export function handleTraceCrossRegion(data: {
|
id: number;
|
status: number;
|
handleRemark?: string;
|
}) {
|
return requestClient.put('/mes/trace-cross-region/handle', data);
|
}
|
|
/** 获得窜货预警汇总 */
|
export function getTraceCrossRegionSummary(startTime?: string, endTime?: string) {
|
return requestClient.get<MesTraceCrossRegionApi.Summary>(
|
'/mes/trace-cross-region/summary',
|
{ params: { startTime, endTime } },
|
);
|
}
|
|
/** 获得窜货预警分布统计 */
|
export function getTraceCrossRegionStatistics(
|
groupBy: string,
|
startTime?: string,
|
endTime?: string,
|
) {
|
return requestClient.get<MesTraceCrossRegionApi.StatisticsItem[]>(
|
'/mes/trace-cross-region/statistics',
|
{ params: { groupBy, startTime, endTime } },
|
);
|
}
|
|
/** 获得防窜货规则配置 */
|
export function getTraceCrossRegionConfig() {
|
return requestClient.get<MesTraceCrossRegionApi.AntiConfig>(
|
'/mes/trace-cross-region/config',
|
);
|
}
|
|
/** 更新防窜货规则配置 */
|
export function updateTraceCrossRegionConfig(warningLevel: string) {
|
return requestClient.put(
|
`/mes/trace-cross-region/config?warningLevel=${warningLevel}`,
|
);
|
}
|