|
@@ -13,12 +13,13 @@
|
|
|
<div class="flex-1"> 班组:<component :is="renderDictTag(shiftInfo.shiftGroup, 'lg_bz')" /> </div>
|
|
|
<div class="flex-1"> 班次:<component :is="renderDictTag(shiftInfo.shift, 'lg_bb')" /> </div>
|
|
|
<div class="flex-1 flex"
|
|
|
- ><span> 定尺:</span><a-input v-model:value="mainSize" @blur="handleSizeBlur" style="flex: 1" :bordered="false" size="small" />
|
|
|
+ ><span> 定尺:</span
|
|
|
+ ><a-input v-model:value="mainSize" @blur="handleSizeBlur" style="flex: 1; margin-top: -4px" :bordered="false" size="small" />
|
|
|
</div>
|
|
|
- <div class="flex-1" style="text-align: center; font-size: 13px">
|
|
|
+ <div class="flex-1" style="text-align: center">
|
|
|
{{ dayjs(curTime).format('YYYY 年 MM 月 DD 日') }}
|
|
|
</div>
|
|
|
- <div class="flex-1" style="text-align: right; font-size: 12px"> lg/R05 </div>
|
|
|
+ <div class="flex-1" style="text-align: right"> lg/R05 </div>
|
|
|
</div>
|
|
|
<a-table :columns="columns" size="small" :data-source="dataSource" bordered :pagination="false">
|
|
|
<template #summary>
|
|
@@ -66,6 +67,12 @@
|
|
|
<div class="song-item" v-for="ele in stackingList">{{ ele.size }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="song-items flex" v-for="(item, index) in coldSendList" :key="index">
|
|
|
+ <div class="title" style="margin-right: 10px; color: #108ee9">{{ index }}</div>
|
|
|
+ <div class="flex flex-col">
|
|
|
+ <div class="song-item" v-for="ele in item">{{ ele.size }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</a-table-summary-cell>
|
|
|
<a-table-summary-cell :col-span="flowColSpan">
|
|
|
<div class="song-items flex">
|
|
@@ -73,6 +80,11 @@
|
|
|
<div class="song-item" v-for="ele in stackingList">{{ ele.amount }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="song-items flex" v-for="(item, index) in coldSendList" :key="index">
|
|
|
+ <div class="flex flex-col">
|
|
|
+ <div class="song-item" v-for="ele in item">{{ ele.amount }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</a-table-summary-cell>
|
|
|
<a-table-summary-cell :col-span="weightColSpan">
|
|
|
<div class="song-items flex">
|
|
@@ -80,6 +92,11 @@
|
|
|
<div class="song-item" v-for="ele in stackingList">{{ ele.weight ? ele.weight.toFixed(3) : '' }} t</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="song-items flex" v-for="(item, index) in coldSendList" :key="index">
|
|
|
+ <div class="flex flex-col">
|
|
|
+ <div class="song-item" v-for="ele in item">{{ ele.weight ? ele.weight.toFixed(3) : '' }} t</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</a-table-summary-cell>
|
|
|
</a-table-summary-row>
|
|
|
</template>
|
|
@@ -94,15 +111,15 @@
|
|
|
size="large"
|
|
|
v-model:value="item.totalCount"
|
|
|
:min="0"
|
|
|
- :step="4"
|
|
|
+ :step="1"
|
|
|
@change="
|
|
|
(value) => {
|
|
|
if (!value) {
|
|
|
item.totalCount = 0;
|
|
|
}
|
|
|
- if (value % 4 !== 0) {
|
|
|
- item.totalCount = value - (value % 4);
|
|
|
- }
|
|
|
+ // if (value % 4 !== 0) {
|
|
|
+ // item.totalCount = value - (value % 4);
|
|
|
+ // }
|
|
|
}
|
|
|
"
|
|
|
:controls="false"
|
|
@@ -121,7 +138,7 @@
|
|
|
</template>
|
|
|
</a-input-number>
|
|
|
</div>
|
|
|
- <div style="font-size: 16px; color: #f50">注:请输入4或4的倍数.</div>
|
|
|
+ <div style="font-size: 16px; color: #f50">注:请输入大于等于0的数.</div>
|
|
|
</div>
|
|
|
</a-modal>
|
|
|
|
|
@@ -313,15 +330,38 @@
|
|
|
};
|
|
|
|
|
|
const { start, stop } = useTimeoutFn(() => {
|
|
|
- getHeatList({
|
|
|
- ccmNo: hostNumber.value,
|
|
|
- queryType: fetchQueryType.value,
|
|
|
- changeShiftId: fetchChangeShiftId.value,
|
|
|
- });
|
|
|
- }, 10000);
|
|
|
+ getHeatList(
|
|
|
+ {
|
|
|
+ ccmNo: hostNumber.value,
|
|
|
+ queryType: fetchQueryType.value,
|
|
|
+ changeShiftId: fetchChangeShiftId.value,
|
|
|
+ },
|
|
|
+ true
|
|
|
+ );
|
|
|
+ }, 60000);
|
|
|
onMounted(() => {
|
|
|
initData(props.openData);
|
|
|
});
|
|
|
+
|
|
|
+ let newSip: any[] = [];
|
|
|
+ for (let index = 0; index < 22; index++) {
|
|
|
+ newSip.push({
|
|
|
+ SerialNumber: index + 1,
|
|
|
+ heatNo: '',
|
|
|
+ brandNum: '',
|
|
|
+ oneFlow: '',
|
|
|
+ twoFlow: '',
|
|
|
+ threeFlow: '',
|
|
|
+ fourFlow: '',
|
|
|
+ fiveFlow: '',
|
|
|
+ sixFlow: '',
|
|
|
+ sevenFlow: '',
|
|
|
+ eightFlow: '',
|
|
|
+ total: '',
|
|
|
+ });
|
|
|
+ }
|
|
|
+ const defaultSourceData = newSip;
|
|
|
+
|
|
|
const initData = async (data) => {
|
|
|
const { ccmNo, shiftText, queryType, curShiftInfo, changeShiftId, time } = data;
|
|
|
printKey.value = dayjs().unix();
|
|
@@ -335,30 +375,15 @@
|
|
|
curTime.value = time;
|
|
|
}
|
|
|
|
|
|
- let newSip: any[] = [];
|
|
|
- for (let index = 0; index < 22; index++) {
|
|
|
- newSip.push({
|
|
|
- SerialNumber: index + 1,
|
|
|
- heatNo: '',
|
|
|
- brandNum: '',
|
|
|
- oneFlow: '',
|
|
|
- twoFlow: '',
|
|
|
- threeFlow: '',
|
|
|
- fourFlow: '',
|
|
|
- fiveFlow: '',
|
|
|
- sixFlow: '',
|
|
|
- sevenFlow: '',
|
|
|
- eightFlow: '',
|
|
|
- total: '',
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
dataSource.value = [...newSip];
|
|
|
- getHeatList({
|
|
|
- ccmNo,
|
|
|
- queryType,
|
|
|
- changeShiftId,
|
|
|
- });
|
|
|
+ getHeatList(
|
|
|
+ {
|
|
|
+ ccmNo,
|
|
|
+ queryType,
|
|
|
+ changeShiftId,
|
|
|
+ },
|
|
|
+ true
|
|
|
+ );
|
|
|
|
|
|
// 获取定尺啊
|
|
|
initDictOptions('lg_dcgg').then((dc) => {
|
|
@@ -381,6 +406,8 @@
|
|
|
const weightColSpan = ref(4);
|
|
|
// 热送统计
|
|
|
const hotSendList = ref<any>({});
|
|
|
+ // 冷装统计
|
|
|
+ const coldSendList = ref<any>({});
|
|
|
// 堆垛统计
|
|
|
const stackingList = ref<any>([]);
|
|
|
// 定尺和备注
|
|
@@ -388,7 +415,17 @@
|
|
|
const mainSize = ref('');
|
|
|
const mainOrgRemark = ref('');
|
|
|
const mainRemark = ref('');
|
|
|
- const getHeatList = async (params) => {
|
|
|
+
|
|
|
+ const getHeatList = async (params, isInit?: boolean) => {
|
|
|
+ if (isInit !== true) {
|
|
|
+ setTimeout(() => {
|
|
|
+ getHeatListCopy(params);
|
|
|
+ }, 800);
|
|
|
+ } else {
|
|
|
+ return getHeatListCopy(params);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ const getHeatListCopy = async (params) => {
|
|
|
try {
|
|
|
stop();
|
|
|
changeLoading(true);
|
|
@@ -412,6 +449,10 @@
|
|
|
const rollThreeSize = {};
|
|
|
// 上若
|
|
|
const rollShippSize = {};
|
|
|
+ // 冷装
|
|
|
+ const rollTwoColdSize = {};
|
|
|
+ const rollThreeColdSize = {};
|
|
|
+ const rollShippColdSize = {};
|
|
|
// 装车按热装和冷装分组
|
|
|
const rollChargeSizeType = {
|
|
|
'0': {},
|
|
@@ -497,7 +538,7 @@
|
|
|
},
|
|
|
dataIndex: 'stackLength',
|
|
|
key: 'stackLength',
|
|
|
- // width: 100,
|
|
|
+ width: 120,
|
|
|
children: [],
|
|
|
};
|
|
|
|
|
@@ -535,7 +576,7 @@
|
|
|
roll_out_shipp: [],
|
|
|
};
|
|
|
|
|
|
- dataSource.value = dataSource.value.map((item, index) => {
|
|
|
+ const dataOrgSource = defaultSourceData.map((item, index) => {
|
|
|
if (!newArr[index]) return item;
|
|
|
const { hotChargeLength, rollClubOneDetails, stackLength } = newArr[index];
|
|
|
|
|
@@ -640,16 +681,30 @@
|
|
|
// 添加定尺
|
|
|
columnsHotCharge.roll_club_two.push(sizeFormat);
|
|
|
|
|
|
- if (!rollTwoSize[k.hotChargeLength]) {
|
|
|
- rollTwoSize[k.hotChargeLength] = {
|
|
|
- type: k.hotChargeBtype,
|
|
|
- size: Number(k.hotChargeLength) / 1000 + 'm',
|
|
|
- amount: k.totalCount,
|
|
|
- weight: k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265,
|
|
|
- };
|
|
|
+ if (k.hotChargeBtype === '0') {
|
|
|
+ if (!rollTwoSize[k.hotChargeLength]) {
|
|
|
+ rollTwoSize[k.hotChargeLength] = {
|
|
|
+ type: k.hotChargeBtype,
|
|
|
+ size: Number(k.hotChargeLength) / 1000 + 'm',
|
|
|
+ amount: k.totalCount,
|
|
|
+ weight: k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265,
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ rollTwoSize[k.hotChargeLength].amount += k.totalCount;
|
|
|
+ rollTwoSize[k.hotChargeLength].weight += k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265;
|
|
|
+ }
|
|
|
} else {
|
|
|
- rollTwoSize[k.hotChargeLength].amount += k.totalCount;
|
|
|
- rollTwoSize[k.hotChargeLength].weight += k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265;
|
|
|
+ if (!rollTwoColdSize[k.hotChargeLength]) {
|
|
|
+ rollTwoColdSize[k.hotChargeLength] = {
|
|
|
+ type: k.hotChargeBtype,
|
|
|
+ size: Number(k.hotChargeLength) / 1000 + 'm',
|
|
|
+ amount: k.totalCount,
|
|
|
+ weight: k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265,
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ rollTwoColdSize[k.hotChargeLength].amount += k.totalCount;
|
|
|
+ rollTwoColdSize[k.hotChargeLength].weight += k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
// 棒三
|
|
@@ -657,16 +712,30 @@
|
|
|
// 添加定尺
|
|
|
columnsHotCharge.roll_club_three.push(sizeFormat);
|
|
|
|
|
|
- if (!rollThreeSize[k.hotChargeLength]) {
|
|
|
- rollThreeSize[k.hotChargeLength] = {
|
|
|
- type: k.hotChargeBtype,
|
|
|
- size: Number(k.hotChargeLength) / 1000 + 'm',
|
|
|
- amount: k.totalCount,
|
|
|
- weight: k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265,
|
|
|
- };
|
|
|
+ if (k.hotChargeBtype === '0') {
|
|
|
+ if (!rollThreeSize[k.hotChargeLength]) {
|
|
|
+ rollThreeSize[k.hotChargeLength] = {
|
|
|
+ type: k.hotChargeBtype,
|
|
|
+ size: Number(k.hotChargeLength) / 1000 + 'm',
|
|
|
+ amount: k.totalCount,
|
|
|
+ weight: k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265,
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ rollThreeSize[k.hotChargeLength].amount += k.totalCount;
|
|
|
+ rollThreeSize[k.hotChargeLength].weight += k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265;
|
|
|
+ }
|
|
|
} else {
|
|
|
- rollThreeSize[k.hotChargeLength].amount += k.totalCount;
|
|
|
- rollThreeSize[k.hotChargeLength].weight += k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265;
|
|
|
+ if (!rollThreeColdSize[k.hotChargeLength]) {
|
|
|
+ rollThreeColdSize[k.hotChargeLength] = {
|
|
|
+ type: k.hotChargeBtype,
|
|
|
+ size: Number(k.hotChargeLength) / 1000 + 'm',
|
|
|
+ amount: k.totalCount,
|
|
|
+ weight: k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265,
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ rollThreeColdSize[k.hotChargeLength].amount += k.totalCount;
|
|
|
+ rollThreeColdSize[k.hotChargeLength].weight += k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
// 上若
|
|
@@ -674,16 +743,30 @@
|
|
|
// 添加定尺
|
|
|
columnsHotCharge.roll_out_shipp.push(sizeFormat);
|
|
|
|
|
|
- if (!rollShippSize[k.hotChargeLength]) {
|
|
|
- rollShippSize[k.hotChargeLength] = {
|
|
|
- type: k.hotChargeBtype,
|
|
|
- size: Number(k.hotChargeLength) / 1000 + 'm',
|
|
|
- amount: k.totalCount,
|
|
|
- weight: k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265,
|
|
|
- };
|
|
|
+ if (k.hotChargeBtype === '0') {
|
|
|
+ if (!rollShippSize[k.hotChargeLength]) {
|
|
|
+ rollShippSize[k.hotChargeLength] = {
|
|
|
+ type: k.hotChargeBtype,
|
|
|
+ size: Number(k.hotChargeLength) / 1000 + 'm',
|
|
|
+ amount: k.totalCount,
|
|
|
+ weight: k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265,
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ rollShippSize[k.hotChargeLength].amount += k.totalCount;
|
|
|
+ rollShippSize[k.hotChargeLength].weight += k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265;
|
|
|
+ }
|
|
|
} else {
|
|
|
- rollShippSize[k.hotChargeLength].amount += k.totalCount;
|
|
|
- rollShippSize[k.hotChargeLength].weight += k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265;
|
|
|
+ if (!rollShippColdSize[k.hotChargeLength]) {
|
|
|
+ rollShippColdSize[k.hotChargeLength] = {
|
|
|
+ type: k.hotChargeBtype,
|
|
|
+ size: Number(k.hotChargeLength) / 1000 + 'm',
|
|
|
+ amount: k.totalCount,
|
|
|
+ weight: k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265,
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ rollShippColdSize[k.hotChargeLength].amount += k.totalCount;
|
|
|
+ rollShippColdSize[k.hotChargeLength].weight += k.totalCount * (Number(k.hotChargeLength) / 1000) * 0.2265;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -884,7 +967,7 @@
|
|
|
remakeColSpan.value = Math.ceil(allSpan / 3);
|
|
|
const nnColSpan = Math.ceil((allSpan - remakeColSpan.value) / 2);
|
|
|
const newNNColSpan = nnColSpan % 2 === 0 ? nnColSpan : nnColSpan + 1;
|
|
|
- sizeColSpan.value = newNNColSpan / 2 > 4 ? newNNColSpan / 2 : 4;
|
|
|
+ sizeColSpan.value = newNNColSpan / 2 > 4 ? 4 : newNNColSpan / 2;
|
|
|
flowColSpan.value = newNNColSpan - sizeColSpan.value;
|
|
|
weightColSpan.value = allSpan - remakeColSpan.value - newNNColSpan;
|
|
|
|
|
@@ -911,12 +994,28 @@
|
|
|
stackingList.value.forEach((ele) => (allWeight += ele.weight));
|
|
|
}
|
|
|
|
|
|
+ // 冷装统计
|
|
|
+ if (Object.values(rollTwoColdSize).length) {
|
|
|
+ coldSendList.value['二'] = Object.values(rollTwoColdSize);
|
|
|
+ coldSendList.value['二'].forEach((ele) => (allWeight += ele.weight));
|
|
|
+ }
|
|
|
+ if (Object.values(rollThreeColdSize).length) {
|
|
|
+ coldSendList.value['三'] = Object.values(rollThreeColdSize);
|
|
|
+ coldSendList.value['三'].forEach((ele) => (allWeight += ele.weight));
|
|
|
+ }
|
|
|
+ if (Object.values(rollShippColdSize).length) {
|
|
|
+ coldSendList.value['上'] = Object.values(rollShippColdSize);
|
|
|
+ coldSendList.value['上'].forEach((ele) => (allWeight += ele.weight));
|
|
|
+ }
|
|
|
+
|
|
|
emits('statistics', {
|
|
|
chargeList: rollChargeSizeType,
|
|
|
stackingList: stackingList.value,
|
|
|
hotSendList: hotSendList.value['一'],
|
|
|
});
|
|
|
mainRemark.value = `合计:${allWeight.toFixed(3)} t`;
|
|
|
+
|
|
|
+ dataSource.value = dataOrgSource;
|
|
|
}
|
|
|
start();
|
|
|
changeLoading(false);
|
|
@@ -1444,9 +1543,11 @@
|
|
|
|
|
|
.ccmno-info {
|
|
|
font-family: 'Kingsoft_Cloud_Font';
|
|
|
+ font-size: 20px;
|
|
|
|
|
|
.ant-input {
|
|
|
color: rgba(255, 255, 255, 0.8);
|
|
|
+ font-size: 20px;
|
|
|
}
|
|
|
}
|
|
|
.ccmno {
|
|
@@ -1527,6 +1628,7 @@
|
|
|
min-height: 100%;
|
|
|
|
|
|
.ant-table {
|
|
|
+ font-size: 20px;
|
|
|
border-top: 1px solid rgba(184, 184, 184, 0.6);
|
|
|
|
|
|
> .ant-table-container {
|
|
@@ -1601,6 +1703,7 @@
|
|
|
padding: 0;
|
|
|
text-align: center;
|
|
|
cursor: pointer;
|
|
|
+ font-size: 20px;
|
|
|
}
|
|
|
|
|
|
.ant-select {
|
|
@@ -1642,6 +1745,7 @@
|
|
|
|
|
|
.ant-input {
|
|
|
color: rgba(255, 255, 255, 0.8);
|
|
|
+ font-size: 20px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1659,6 +1763,7 @@
|
|
|
|
|
|
.title {
|
|
|
margin-right: 10px;
|
|
|
+ color: #f50;
|
|
|
}
|
|
|
}
|
|
|
}
|