Files
klp-oa/klp-ui/src/api/wms/coil.js
砂糖 41716b3430 feat(wms/coil): 新增钢卷加工链追溯功能并优化成本信息展示
1. 新增钢卷加工链双向追溯API接口getCoilChain
2. 替换原有的递归 lineage 构建逻辑,使用新接口获取完整加工链数据
3. 补充完善工序类型枚举映射,新增修复工序和退火工序
4. 重构加工路径图构建逻辑,使用接口返回的depth字段计算层级
2026-06-18 09:31:32 +08:00

549 lines
11 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import request from '@/utils/request'
import veilReq from '@/utils/veilReq'
import { tansParams } from "@/utils/klp";
// 查询钢卷物料表列表
export function listMaterialCoil(query) {
return request({
url: '/wms/materialCoil/list',
method: 'get',
params: query
})
}
export function getMaterialCoilLocationGrid(query) {
return request({
url: '/wms/materialCoil/locationGrid',
method: 'get',
params: query
})
}
export function exportMaterialCoil(query) {
return request({
url: '/wms/materialCoil/export',
method: 'get',
params: query
})
}
export function getMaterialCoil(CoilMaterialId) {
return request({
url: '/wms/materialCoil/' + CoilMaterialId,
method: 'get'
})
}
export function addMaterialCoil(data) {
// 对data进行预处理将currentCoilNo去除首位的空格
const payload = {
...data,
currentCoilNo: data.currentCoilNo.trim(),
}
return request({
url: '/wms/materialCoil',
method: 'post',
data: payload
})
}
export function updateMaterialCoil(data) {
// 对data进行预处理将currentCoilNo去除首位的空格
const payload = {
...data,
currentCoilNo: data.currentCoilNo.trim(),
}
return request({
url: '/wms/materialCoil',
method: 'put',
data: payload
})
}
// 简单更新钢卷物料表
export function updateMaterialCoilSimple(data) {
// 对data进行预处理将currentCoilNo去除首位的空格
const payload = {
...data,
currentCoilNo: data.currentCoilNo.trim(),
}
return request({
url: '/wms/materialCoil/update',
method: 'put',
data: payload
})
}
// 删除钢卷物料表
export function delMaterialCoil(CoilMaterialId) {
return request({
url: '/wms/materialCoil/' + CoilMaterialId,
method: 'delete'
})
}
// 钢卷溯源查询
export function getMaterialCoilTrace(query) {
return request({
url: '/wms/materialCoil/trace',
method: 'get',
params: query
})
}
// 查询各个库区中不同类型的钢卷分布情况
export function getMaterialCoilDistributionByWarehouse(query) {
return request({
url: '/wms/materialCoil/distributionByWarehouse',
method: 'get',
params: query
})
}
// 查询不同类型的钢卷在不同库区的分布情况
export function getMaterialCoilDistributionByType(query) {
return request({
url: '/wms/materialCoil/distributionByItemType',
method: 'get',
params: query
})
}
// 查询不同类型的钢卷在不同库区的分布情况
export function getMaterialCoilDistributionByActualWarehouse(query) {
return request({
url: '/wms/materialCoil/distributionByActualWarehouse',
method: 'get',
params: query
})
}
// 钢卷分卷
export function splitMaterialCoil(data) {
const payload = {
...data,
// currentCoilNo: data.currentCoilNo.trim(),
newCoils: data.newCoils?.map(item => ({
...item,
currentCoilNo: item.currentCoilNo?.trim(),
})),
}
return request({
url: '/wms/materialCoil',
method: 'put',
data: payload
})
}
// 钢卷合卷
export function mergeMaterialCoil(data) {
// 对data进行预处理将currentCoilNo去除首位的空格
const payload = {
...data,
currentCoilNo: data.currentCoilNo.trim(),
}
return request({
url: '/wms/materialCoil/merge',
method: 'post',
data: payload
})
}
export function distributionByActualItemType(query) {
return request({
url: '/wms/materialCoil/distributionByActualItemType',
method: 'get',
params: query
})
}
export function exportAllMaterialCoil(query) {
return request({
url: '/wms/materialCoil/export',
method: 'post',
data: query
})
}
// 钢卷发货
export function exportCoil(coilId) {
return request({
url: '/wms/materialCoil/exportCoil/' + coilId,
method: 'get'
})
}
// 根据钢卷ID序列查询钢卷列表
export function listCoilByIds(coilIds) {
return request({
url: '/wms/materialCoil/list',
method: 'get',
params: {
coilIds,
pageNum: 1,
pageSize: 1000
}
})
}
// 根据钢卷id查询最近的操作人和操作时间
export function listCoilOperation({coilIds, planId}) {
return request({
url: '/wms/deliveryPlanCoilOperate/coilOperate',
method: 'get',
params: {
// 至少要穿一个空字符串兜底
coilIds: coilIds,
planId,
pageNum: 1,
pageSize: 1000
}
})
}
// 钢卷导出
export function exportCoilData(coilIds) {
return request({
url: '/wms/materialCoil/export',
method: 'post',
data: {
coilIds
}
})
}
// 报表查询使用的post类型的查询查询所有符合条件的钢卷
export function listCoilWithIds(data) {
// 如果存在pageSize, 或者pageNum 将其放入params中
const { pageSize, pageNum, ...rest } = data
return request({
url: '/wms/materialCoil/listByPost',
method: 'post',
data: rest,
params: {
pageSize,
pageNum,
},
timeout: 600000
})
}
// 撤回钢卷发货
export function cancelExportCoil(coilId) {
return request({
url: '/wms/materialCoil/withdrawExportCoil/' + coilId,
method: 'get'
})
}
// 检查入场钢卷号或当前钢卷号是否合法(是否存在)
export function checkCoilNo({ currentCoilNo, enterCoilNo, coilId, supplierCoilNo }) {
return request({
url: '/wms/materialCoil/checkCoilNoDuplicate',
method: 'get',
params: {
currentCoilNo,
enterCoilNo,
supplierCoilNo,
coilId
}
})
}
// 根据前缀获取当前的最大钢卷号
export function getMaxCoilNo(enterCoilNoPrefix) {
return request({
url: '/wms/materialCoil/getMaxEnterCoilNo',
method: 'get',
params: {
enterCoilNoPrefix
}
})
}
/**
* 查询存在重号的钢卷
*/
export function getDuplicateGroups() {
return request({
timeout: 100000,
url: '/wms/materialCoil/duplicateGroups',
method: 'get'
})
}
/**
* 还原钢卷,将一个钢卷从历史记录中还原为当前数据
*/
export function restoreMaterialCoil(coilId) {
if (!coilId) {
return Promise.reject(new Error('coilId is required'))
}
return request({
url: '/wms/materialCoil/rollback/' + coilId,
method: 'post'
})
}
/**
* 开始分条,锁定钢卷
*/
export function startSpecialSplit(coilId, actionType) {
if (!coilId) {
return Promise.reject(new Error('coilId is required'))
}
if (!actionType) {
return Promise.reject(new Error('actionType is required'))
}
return request({
url: '/wms/materialCoil/specialSplit/start',
method: 'post',
params: {
coilId,
actionType
}
})
}
/**
* 创建一个分条
*/
export function createSpecialChild(parentCoilId, pendingActionId, data) {
// 对data进行预处理将currentCoilNo去除首位的空格
const payload = {
...data,
currentCoilNo: data.currentCoilNo.trim(),
}
return request({
url: '/wms/materialCoil/specialSplit/createChild',
method: 'post',
data: payload,
params: {
parentCoilId,
pendingActionId
}
})
}
/**
* 完成分卷操作
*/
export function completeSpecialSplit(pendingActionId) {
if (!pendingActionId) {
return Promise.reject(new Error('pendingActionId is required'))
}
return request({
url: '/wms/materialCoil/specialSplit/complete',
method: 'post',
timeout: 100000,
params: {
pendingActionId
}
})
}
/**
* 取消镀锌分卷
*/
export function cancelSpecialSplit(pendingActionId) {
if (!pendingActionId) {
return Promise.reject(new Error('pendingActionId is required'))
}
return request({
url: '/wms/materialCoil/specialSplit/cancel',
method: 'post',
params: {
pendingActionId
}
})
}
/**
* 钢卷被退货,发给客户的钢卷被退货
*/
export function returnCoil(coilId) {
if (!coilId) {
return Promise.reject(new Error('coilId is required'))
}
return request({
url: '/wms/materialCoil/return',
method: 'post',
params: {
coilId
}
})
}
/**
* 冷硬卷切边统计
*/
export function listCoilTrimStatistics() {
return request({
url: '/wms/materialCoil/statistics/trimStatistics',
method: 'get',
})
}
// 类别宽度统计,汇总统计
export function categoryWidthStatistics() {
return request({
url: '/wms/materialCoil/statistics/categoryWidthStatistics',
method: 'get',
})
}
/**
* 导出钢卷的全部字段
*/
export function exportCoilWithAll(data) {
return request({
url: '/wms/materialCoil/exportAll',
method: 'post',
data: data,
transformRequest: [(params) => { return tansParams(params) }],
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
responseType: 'blob'
})
}
/**
* 查询带有发货绑定信息的钢卷
*/
export function listWithBindInfoCoil(params) {
return request({
url: '/wms/materialCoil/listWithBindInfo',
method: 'get',
params,
timeout: 600000
})
}
/**
* 类型不匹配的卷
*/
export function listTypeErrorCoil() {
return request({
url: '/wms/materialCoil/queryMismatchedItemCoils',
method: 'get',
timeout: 600000
})
}
export function getCoilStatisticsList(data) {
return request({
url: '/wms/materialCoil/statisticsList',
method: 'post',
data,
})
}
/**
* 查询原料材质与钢卷类型不匹配的钢卷
*/
export function listMismatchedItemCoil(params) {
return request({
url: '/wms/materialCoil/queryMaterialMismatchCoils',
method: 'get',
timeout: 600000,
params
})
}
/**
* 修复原料材质与钢卷类型不匹配的钢卷
*/
export function fixMismatchedItemCoil(coilId) {
return request({
url: '/wms/materialCoil/fixMaterialMismatch',
method: 'put',
timeout: 600000,
params: {
coilId
}
})
}
/**
* 带有改判记录的钢卷列表
*/
export function listWithAdjustRecordCoil(params) {
return request({
url: '/wms/materialCoil/listWithRejudge',
method: 'get',
timeout: 600000,
params
})
}
/**
* 根据入场钢卷号查询最早的热轧卷板材质
*/
export function getFirstHeatCoilMaterial(enterCoilNo) {
return veilReq({
url: '/wms/materialCoil/material/queryEarliestHotRolledMaterial',
method: 'get',
timeout: 600000,
params: {
enterCoilNo
}
})
}
/**
* 查询钢卷发货单绑定的销售信息
*/
export function getDeliveryOrderInfo(coilId) {
return request({
url: `/crm/order/getOrderByCoilId/${coilId}`,
method: 'get',
timeout: 600000,
})
}
/**
* 解除钢卷的锁定状态
*/
export function excludeLock(coilId) {
return request({
url: `/wms/materialCoil/unlock/${coilId}`,
method: 'put',
timeout: 600000,
})
}
// 轻量钢卷列表
export function listLightCoil(data) {
return request({
url: '/wms/materialCoil/listForReport',
method: 'post',
timeout: 600000,
data: data
})
}
// 获取可导出的列元数据
export function getExportColumns() {
return request({
url: '/wms/materialCoil/exportColumns',
method: 'get',
})
}
export function listForPeriodComparison(data) {
return request({
url: '/wms/materialCoil/listForPeriodComparison',
method: 'post',
timeout: 600000,
data: data
})
}
// 钢卷加工链追溯查询(双向:向上到根节点,向下到所有后代)
export function getCoilChain(coilId) {
return request({
url: '/wms/materialCoil/chain/all/' + coilId,
method: 'get'
})
}