feat(wms): 新增钢卷对比功能实现数据同步状态监控

- 在 SqlServerApiBusinessService 中新增按时间段查询出口卷实绩方法
- 在 SqlServerApiClient 中实现 queryExcoilByTimeRange 数据查询接口
- 在 SqlServerApiController 中添加 /excoil/by-time 时间段查询端点
- 新增 CoilComparisonController 实现钢卷数据对比和匹配状态逻辑
- 创建前端 coilComparison API 接口文件并导出 getExcoilStatus 方法
- 开发钢卷对比页面界面,包含产线切换标签页和时间范围筛选功能
- 实现钢卷加工状态、入库状态和匹配状态的数据展示和标记功能
This commit is contained in:
2026-05-21 14:29:14 +08:00
parent 2fc8cf02d1
commit d982efc866
6 changed files with 256 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
import request from '@/utils/request'
export function getExcoilStatus(query) {
return request({
url: '/wms/coil-comparison/excoil-status',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1,94 @@
<template>
<div class="app-container">
<el-tabs v-model="activeLine" type="card" @tab-click="handleQuery">
<el-tab-pane label="酸连轧" name="acid" />
<el-tab-pane label="双机架" name="dr" />
<el-tab-pane label="镀锌" name="cgl" />
<el-tab-pane label="镀铬" name="ecl" />
<el-tab-pane label="脱脂" name="spl" />
<el-tab-pane label="纵剪" name="sl" />
</el-tabs>
<div class="mb8" style="display:flex;align-items:center;gap:12px;padding:12px 0">
<el-date-picker v-model="dateRange" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期"
value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']"
style="width:360px" />
<el-button type="primary" icon="el-icon-search" @click="handleQuery">查询</el-button>
<span style="color:#999;font-size:13px">查询二级实绩中的热卷是否已在三级更新</span>
</div>
<KLPTable v-loading="loading" :data="list" max-height="600">
<el-table-column label="出口卷号" align="center" prop="excoilId" width="150" />
<el-table-column label="热卷号" align="center" prop="hotCoilId" width="150" />
<el-table-column label="下线时间" align="center" width="150">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.endDate) }}</span>
</template>
</el-table-column>
<el-table-column label="工序" align="center" prop="processCode" width="80" />
<el-table-column label="对比状态" align="center" width="100">
<template slot-scope="scope">
<el-tag v-if="scope.row.matchStatus === 0" type="success">已加工</el-tag>
<el-tag v-else-if="scope.row.matchStatus === 1" type="warning">未加工</el-tag>
<el-tag v-else type="danger">未入库</el-tag>
</template>
</el-table-column>
<el-table-column label="入场钢卷号" align="center" prop="enterCoilNo" width="150" />
<el-table-column label="当前钢卷号" align="center" prop="currentCoilNo" width="150" />
<el-table-column label="供应商钢卷号" align="center" prop="supplierCoilNo" width="150" />
<el-table-column label="物品名称" align="center" prop="itemName" width="120" />
<el-table-column label="物品编码" align="center" prop="itemCode" width="120" />
<el-table-column label="规格" align="center" prop="specification" width="110" />
<el-table-column label="材质" align="center" prop="material" width="100" />
<el-table-column label="生产厂家" align="center" prop="manufacturer" width="100" />
<el-table-column label="库区" align="center" prop="warehouseName" width="130" />
<el-table-column label="钢卷状态" align="center" prop="coilStatus" width="80">
<template slot-scope="scope">
<span v-if="scope.row.coilStatus === 0">在库</span>
<span v-else-if="scope.row.coilStatus === 1">在途</span>
<span v-else-if="scope.row.coilStatus === 2">已出库</span>
<span v-else>-</span>
</template>
</el-table-column>
</KLPTable>
</div>
</template>
<script>
import { getExcoilStatus } from "@/api/wms/coilComparison";
export default {
name: "CoilComparison",
data() {
return {
loading: false,
activeLine: 'acid',
dateRange: [],
list: [],
};
},
created() {
const end = new Date();
const start = new Date();
start.setDate(start.getDate() - 7);
this.dateRange = [start, end];
this.handleQuery();
},
methods: {
handleQuery() {
this.loading = true;
const params = {};
if (this.dateRange && this.dateRange.length === 2) {
params.startTime = this.dateRange[0];
params.endTime = this.dateRange[1];
}
params.lineType = this.activeLine;
getExcoilStatus(params).then(res => {
this.list = res.data || [];
this.loading = false;
}).catch(() => {
this.loading = false;
});
},
},
};
</script>