|
|
|
@ -587,7 +587,13 @@
|
|
|
|
|
</el-button> |
|
|
|
|
|
|
|
|
|
<!-- 处理未挂载在目的仓的数据 --> |
|
|
|
|
<el-button icon="Refresh" class="errBtn" type="primary" @click="handleShowProblemData"> |
|
|
|
|
<el-button |
|
|
|
|
icon="Refresh" |
|
|
|
|
v-if="details.problemDataByPlan.length > 0 || details.problemDataByReal.length > 0" |
|
|
|
|
class="errBtn" |
|
|
|
|
type="primary" |
|
|
|
|
@click="handleShowProblemData" |
|
|
|
|
> |
|
|
|
|
处理待挂载数据 |
|
|
|
|
</el-button> |
|
|
|
|
</div> |
|
|
|
@ -638,11 +644,9 @@
|
|
|
|
|
@selection="list => (details.problemInfo.selectionList = list)" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<!-- <template v-if="slotProps.scope.column.label === '计划数'"> |
|
|
|
|
<el-text size="small" text @click="handleEditplanNum(slotProps.scope, item)">{{ |
|
|
|
|
slotProps.scope.row.planNum |
|
|
|
|
}}</el-text> |
|
|
|
|
</template> --> |
|
|
|
|
<template v-if="slotProps.scope.column.label === '计划数'"> |
|
|
|
|
<el-text size="small" text>{{ slotProps.scope.row.planNum }}</el-text> |
|
|
|
|
</template> |
|
|
|
|
</template> |
|
|
|
|
</tablecmt> |
|
|
|
|
|
|
|
|
@ -725,6 +729,7 @@ import {
|
|
|
|
|
deepClone, |
|
|
|
|
debounce, |
|
|
|
|
handleClearTableQuery, |
|
|
|
|
getObjType, |
|
|
|
|
} from '@/utils/util'; |
|
|
|
|
import { |
|
|
|
|
columnList, |
|
|
|
@ -848,7 +853,7 @@ const details = reactive<any>({
|
|
|
|
|
/** 修改计划数量 */ |
|
|
|
|
editPlanNumberVisited: false, |
|
|
|
|
/** 未挂载目的仓的数据 */ |
|
|
|
|
problemDataVisited: true, |
|
|
|
|
problemDataVisited: false, |
|
|
|
|
}, |
|
|
|
|
/** 列表Dom节点 */ |
|
|
|
|
listNode: '', |
|
|
|
@ -1802,7 +1807,7 @@ const handleSubmitEdit = async () => {
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 显示未挂载目的仓的数据 */ |
|
|
|
|
const handleShowProblemData = () => { |
|
|
|
|
const handleShowProblemData = async () => { |
|
|
|
|
details.nodeList = []; |
|
|
|
|
for (let i = 0; i < details.nodeInfoData.length; i++) { |
|
|
|
|
const item = details.nodeInfoData[i]; |
|
|
|
@ -1820,6 +1825,9 @@ const handleShowProblemData = () => {
|
|
|
|
|
if (details.nodeList.length === 0) return ElMessage.warning('没有后续节点,请添加节点'); |
|
|
|
|
|
|
|
|
|
details.popUpShow.problemDataVisited = true; |
|
|
|
|
|
|
|
|
|
await nextTick(); |
|
|
|
|
setTabelHeight(); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 提交挂载 */ |
|
|
|
@ -1845,9 +1853,9 @@ const handleSubmitProblemData = () => {
|
|
|
|
|
for (let i = 0; i < details.problemInfo.selectionList.length; i++) { |
|
|
|
|
const item = details.problemInfo.selectionList[i]; |
|
|
|
|
|
|
|
|
|
item.totalNum = item.totalNum || 20; |
|
|
|
|
item.planNum = item.stockNum; |
|
|
|
|
item.loadingNum = 0; |
|
|
|
|
// item.totalNum = item.totalNum || 20; |
|
|
|
|
// item.planNum = item.stockNum; |
|
|
|
|
// item.loadingNum = 0; |
|
|
|
|
_orderMap.push(item.orderCode + ',' + item.waybillNo); |
|
|
|
|
_node.lineCarsOrderList.push(item); |
|
|
|
|
|
|
|
|
@ -1968,16 +1976,22 @@ const editSubmit = async () => {
|
|
|
|
|
const _warehouseIds = []; |
|
|
|
|
const _warehouseNames = []; |
|
|
|
|
|
|
|
|
|
const _nodeRemoveOrderObj = {}; |
|
|
|
|
|
|
|
|
|
let _flag = false; |
|
|
|
|
|
|
|
|
|
// 判定有节点是否有空未选 |
|
|
|
|
const _flag = details.nodeInfoData.every((value, index) => { |
|
|
|
|
for (let i = 0; i < details.nodeInfoData.length; i++) { |
|
|
|
|
const value = details.nodeInfoData[i]; |
|
|
|
|
_warehouseNames.push(value.nodeName); |
|
|
|
|
if (index === 0) return true; |
|
|
|
|
_warehouseIds.push(value.nodeId); |
|
|
|
|
if (i === 0) continue; |
|
|
|
|
if (value.nodeName && value.nodeId) continue; |
|
|
|
|
_flag = true; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return value.nodeName && value.nodeId; |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
if (!_flag) { |
|
|
|
|
if (_flag) { |
|
|
|
|
return ElMessage({ |
|
|
|
|
type: 'warning', |
|
|
|
|
message: '节点信息有误', |
|
|
|
@ -2008,6 +2022,7 @@ const editSubmit = async () => {
|
|
|
|
|
// 循环节点数据 |
|
|
|
|
for (let i = 0; i < submitData.addCarsLoadLineList.length; i++) { |
|
|
|
|
const val = submitData.addCarsLoadLineList[i]; |
|
|
|
|
val.addList || (val.addList = []); |
|
|
|
|
|
|
|
|
|
console.log('val :>> ', val); |
|
|
|
|
|
|
|
|
@ -2033,117 +2048,169 @@ const editSubmit = async () => {
|
|
|
|
|
const _addArr = []; |
|
|
|
|
|
|
|
|
|
// 未找到数据,则该节点为新增节点 |
|
|
|
|
if (Object.keys(_item).length === 0) { |
|
|
|
|
val.updateType = 2; |
|
|
|
|
if (Object.keys(_item).length === 0) val.updateType = 2; |
|
|
|
|
|
|
|
|
|
// for (let index = 0; index < val.lineCarsOrderList.length; index++) { |
|
|
|
|
// const element = val.lineCarsOrderList[index]; |
|
|
|
|
|
|
|
|
|
// _addArr.push({ |
|
|
|
|
// ...element, |
|
|
|
|
// nodeId: submitData.startWarehouseId, |
|
|
|
|
// nodeName: submitData.startWarehouseName, |
|
|
|
|
// finalNodeId: val.nodeId, |
|
|
|
|
// }); |
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
// val.MappingData = []; |
|
|
|
|
// } else { |
|
|
|
|
// 浅拷贝数据 |
|
|
|
|
let _MappingData = _item.MappingData || []; |
|
|
|
|
|
|
|
|
|
// 循环查询订单是否为新增或删除 |
|
|
|
|
for (let index = 0; index < val.lineCarsOrderList.length; index++) { |
|
|
|
|
const element = val.lineCarsOrderList[index]; |
|
|
|
|
|
|
|
|
|
if (element.carsOrderId) { |
|
|
|
|
for (let j = 0; j < _MappingData.length; j++) { |
|
|
|
|
const item = _MappingData[j]; |
|
|
|
|
|
|
|
|
|
if (element.carsOrderId !== item.carsOrderId) continue; |
|
|
|
|
// 根据计划节点删除订单 |
|
|
|
|
_MappingData.splice(j, 1); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (let index = 0; index < val.lineCarsOrderList.length; index++) { |
|
|
|
|
const element = val.lineCarsOrderList[index]; |
|
|
|
|
// 检测该订单的目的节点是不是该节点 |
|
|
|
|
if (element.finalNodeId === val.nodeId) continue; |
|
|
|
|
|
|
|
|
|
// 目的节点改变, 则在该始发节点添加addList |
|
|
|
|
for (const iterator of submitData.addCarsLoadLineList) { |
|
|
|
|
if (iterator.nodeId !== element.nodeId) continue; |
|
|
|
|
iterator.addList || (iterator.addList = []); |
|
|
|
|
iterator.addList.push({ |
|
|
|
|
...element, |
|
|
|
|
nodeId: iterator.nodeId, |
|
|
|
|
nodeName: iterator.nodeName, |
|
|
|
|
finalNodeId: val.nodeId, |
|
|
|
|
finalNodeName: val.nodeName, |
|
|
|
|
}); |
|
|
|
|
console.log('iterator :>> ', iterator); |
|
|
|
|
iterator.updateType = 1; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 检测该运单是否与配载任务挂载 |
|
|
|
|
if (!element.carsOrderId) |
|
|
|
|
_addArr.push({ |
|
|
|
|
...element, |
|
|
|
|
nodeId: submitData.startWarehouseId, |
|
|
|
|
nodeName: submitData.startWarehouseName, |
|
|
|
|
finalNodeId: val.nodeId, |
|
|
|
|
finalNodeName: val.nodeName, |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val.MappingData = []; |
|
|
|
|
} else { |
|
|
|
|
// 浅拷贝数据 |
|
|
|
|
let _MappingData = _item.MappingData; |
|
|
|
|
|
|
|
|
|
// 循环查询订单是否为新增或删除 |
|
|
|
|
for (let index = 0; index < val.lineCarsOrderList.length; index++) { |
|
|
|
|
const element = val.lineCarsOrderList[index]; |
|
|
|
|
|
|
|
|
|
if (element.carsOrderId) |
|
|
|
|
for (let j = 0; j < _MappingData.length; j++) { |
|
|
|
|
const item = _MappingData[j]; |
|
|
|
|
|
|
|
|
|
if (!element.carsOrderId === item.carsOrderId) continue; |
|
|
|
|
_MappingData.splice(j, 1); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 检测该运单是否与配载任务挂载 |
|
|
|
|
if (!element.carsOrderId) |
|
|
|
|
_addArr.push({ |
|
|
|
|
...element, |
|
|
|
|
nodeId: submitData.startWarehouseId, |
|
|
|
|
nodeName: submitData.startWarehouseName, |
|
|
|
|
finalNodeId: val.nodeId, |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
_removeList = [..._removeList, ..._MappingData]; |
|
|
|
|
_removeList = [..._removeList, ..._MappingData]; |
|
|
|
|
|
|
|
|
|
// 节点是否更新节点费用 |
|
|
|
|
let isUpDateNodeCost = false; |
|
|
|
|
// 节点是否更新节点费用 |
|
|
|
|
let isUpDateNodeCost = false; |
|
|
|
|
|
|
|
|
|
for (let index = 0; index < nodeInfokeys.length; index++) { |
|
|
|
|
const value = nodeInfokeys[index]; |
|
|
|
|
for (let index = 0; index < nodeInfokeys.length; index++) { |
|
|
|
|
const value = nodeInfokeys[index]; |
|
|
|
|
|
|
|
|
|
console.log('_item[value] === val[value] :>> ', _item[value] === val[value]); |
|
|
|
|
console.log('_item[value] === val[value] :>> ', _item[value] === val[value]); |
|
|
|
|
|
|
|
|
|
if (_item[value] === val[value]) continue; |
|
|
|
|
isUpDateNodeCost = true; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
if (_item[value] === val[value]) continue; |
|
|
|
|
isUpDateNodeCost = true; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
Number(submitData.addCarsLoadLineList[details.active].updateType) !== 1 && |
|
|
|
|
// 存在移除订单数据 |
|
|
|
|
(_MappingData.length > 0 || |
|
|
|
|
// 存在新增订单数据 |
|
|
|
|
_addArr.length > 0) |
|
|
|
|
) { |
|
|
|
|
submitData.addCarsLoadLineList[details.active].updateType = 1; |
|
|
|
|
} |
|
|
|
|
if ( |
|
|
|
|
Number(submitData.addCarsLoadLineList[details.active].updateType) !== 1 && |
|
|
|
|
// 存在移除订单数据 |
|
|
|
|
(_MappingData.length > 0 || |
|
|
|
|
// 存在新增订单数据 |
|
|
|
|
_addArr.length > 0) |
|
|
|
|
) { |
|
|
|
|
submitData.addCarsLoadLineList[details.active].updateType = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 删除无用数据 |
|
|
|
|
delete val.blackList; |
|
|
|
|
delete val.query; |
|
|
|
|
delete val.selectionList; |
|
|
|
|
delete val.loading; |
|
|
|
|
delete val.data; |
|
|
|
|
delete val.renderData; |
|
|
|
|
delete val.newColumnList; |
|
|
|
|
delete val.itemInputsc; |
|
|
|
|
delete val.selectionChange; |
|
|
|
|
delete val.lineCarsOrderList; |
|
|
|
|
delete val.timeQuery; |
|
|
|
|
|
|
|
|
|
if (details.active === i) continue; |
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
// 更新节点费用 |
|
|
|
|
isUpDateNodeCost || |
|
|
|
|
// 节点位置更新 |
|
|
|
|
val.sort + '' !== _item.sort + '' |
|
|
|
|
) { |
|
|
|
|
// 节点存在更新数据 |
|
|
|
|
val.updateType = 1; |
|
|
|
|
} else { |
|
|
|
|
// 节点未更新 |
|
|
|
|
val.updateType = 0; |
|
|
|
|
} |
|
|
|
|
// 删除无用数据 |
|
|
|
|
delete val.blackList; |
|
|
|
|
delete val.query; |
|
|
|
|
delete val.selectionList; |
|
|
|
|
delete val.loading; |
|
|
|
|
delete val.data; |
|
|
|
|
delete val.renderData; |
|
|
|
|
delete val.newColumnList; |
|
|
|
|
delete val.itemInputsc; |
|
|
|
|
delete val.selectionChange; |
|
|
|
|
delete val.lineCarsOrderList; |
|
|
|
|
delete val.timeQuery; |
|
|
|
|
delete val.itemClearQuery; |
|
|
|
|
delete val.itemFilterData; |
|
|
|
|
delete val.itemTimesc; |
|
|
|
|
|
|
|
|
|
if (details.active === i && val.updateType) continue; |
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
// 更新节点费用 |
|
|
|
|
isUpDateNodeCost || |
|
|
|
|
// 节点位置更新 |
|
|
|
|
val.sort + '' !== _item.sort + '' |
|
|
|
|
) { |
|
|
|
|
// 节点存在更新数据 |
|
|
|
|
val.updateType = 1; |
|
|
|
|
} else { |
|
|
|
|
// 节点未更新 |
|
|
|
|
val.updateType = 0; |
|
|
|
|
} |
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
// 新增的订单 |
|
|
|
|
_lineCarsOrderList = [..._lineCarsOrderList, ..._addArr]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
submitData.removeCarsLoadLineList = _cloneNodeList.map(val => { |
|
|
|
|
_removeList = [...removeList, ...val.MappingData]; |
|
|
|
|
return { id: val.id }; |
|
|
|
|
}); |
|
|
|
|
_removeList = [..._removeList, ...val.MappingData]; |
|
|
|
|
|
|
|
|
|
submitData.addCarsLoadLineList[details.active].addList = _lineCarsOrderList; |
|
|
|
|
const _obj = { id: val.id, removeList: [] }; |
|
|
|
|
|
|
|
|
|
submitData.addCarsLoadLineList[details.active].removeList = _removeList.map(val => { |
|
|
|
|
return { id: val.carsOrderId }; |
|
|
|
|
return _obj; |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
submitData.addCarsLoadLineList[details.active].addList.push(..._lineCarsOrderList); |
|
|
|
|
|
|
|
|
|
// 分类移除的数据 |
|
|
|
|
for (let i = 0; i < _removeList.length; i++) { |
|
|
|
|
const value = _removeList[i]; |
|
|
|
|
|
|
|
|
|
let _item = {}; |
|
|
|
|
|
|
|
|
|
for (let j = 0; j < submitData.addCarsLoadLineList.length; j++) { |
|
|
|
|
const item = submitData.addCarsLoadLineList[j]; |
|
|
|
|
|
|
|
|
|
if (value.nodeId !== item.nodeId) continue; |
|
|
|
|
_item = item; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!_item.nodeId) { |
|
|
|
|
for (let j = 0; j < submitData.removeCarsLoadLineList.length; j++) { |
|
|
|
|
const item = submitData.removeCarsLoadLineList[j]; |
|
|
|
|
|
|
|
|
|
if (value.nodeId !== item.nodeId) continue; |
|
|
|
|
_item = item; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
getObjType(_item.removeList) === 'array' || (_item.removeList = []); |
|
|
|
|
_item.removeList.push({ id: value.carsOrderId, ...value }); |
|
|
|
|
value.updateType = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
console.log('submitData :>> ', submitData); |
|
|
|
|
|
|
|
|
|
const res = await postUpdateCarsLoadBasicData(submitData); |
|
|
|
|