Files
klp-oa/klp-ui/src/api/wms/coil.js
砂糖 7feaf8021b feat: 新增规格校验功能并优化钢卷号输入处理
1. 新增validSpecification规格校验函数,校验格式为数字.两位小数*数字的钢卷规格
2. 为多个页面的钢卷号输入框添加trim修饰符自动去除首尾空格
3. 在API层统一对钢卷号字段做trim预处理
4. 为原料和产品表单添加规格必填校验和格式校验
5. 新增钢卷信息修正页面,添加生产耗时自动计算功能
6. 优化部分页面的UI和代码冗余
2026-06-15 10:56:28 +08:00

532 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',
})
}