diff --git a/klp-ui/src/api/wms/coil.js b/klp-ui/src/api/wms/coil.js index 31472a82..fc627750 100644 --- a/klp-ui/src/api/wms/coil.js +++ b/klp-ui/src/api/wms/coil.js @@ -190,7 +190,8 @@ export function listCoilWithIds(data) { return request({ url: '/wms/materialCoil/listByPost', method: 'post', - data + data, + timeout: 600000 }) } diff --git a/klp-ui/src/api/wms/pendingAction.js b/klp-ui/src/api/wms/pendingAction.js index c0aba021..d6d17579 100644 --- a/klp-ui/src/api/wms/pendingAction.js +++ b/klp-ui/src/api/wms/pendingAction.js @@ -23,7 +23,8 @@ export function listPendingAction(query) { return request({ url: '/wms/coilPendingAction/list', method: 'get', - params: query + params: query, + timeout: 600000 }) } diff --git a/klp-ui/src/components/KLPUI/KLPTable/index.vue b/klp-ui/src/components/KLPUI/KLPTable/index.vue index 4bc14c76..180f77cd 100644 --- a/klp-ui/src/components/KLPUI/KLPTable/index.vue +++ b/klp-ui/src/components/KLPUI/KLPTable/index.vue @@ -9,7 +9,7 @@
+ @cell-mouse-enter="handleCellEnter" @row-mouseleave="handleRowLeave" :height="height"> diff --git a/klp-ui/src/views/wms/report/duge/comprehensive.vue b/klp-ui/src/views/wms/report/duge/comprehensive.vue new file mode 100644 index 00000000..3dacb83a --- /dev/null +++ b/klp-ui/src/views/wms/report/duge/comprehensive.vue @@ -0,0 +1,37 @@ + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/report/js/calc.js b/klp-ui/src/views/wms/report/js/calc.js index b81917a4..a4986f77 100644 --- a/klp-ui/src/views/wms/report/js/calc.js +++ b/klp-ui/src/views/wms/report/js/calc.js @@ -14,7 +14,7 @@ const calcSummary = (list, lossList) => { const totalAvgWeight = totalCount > 0 ? (totalWeight / totalCount)?.toFixed(2) : 0 // 成品比率 - const passRate = outCount > 0 ? (outTotalWeight / lossTotalWeight) : 0 + const passRate = outCount > 0 && lossTotalWeight > 0 ? (outTotalWeight / lossTotalWeight) : 0 // 损失比率 const lossRate = totalCount > 0 ? (1 - passRate) : 0 // 异常率,成品在warehouseId在'2019583656787259393', @@ -26,7 +26,7 @@ const calcSummary = (list, lossList) => { }).length / totalCount : 0 // 正品率(1-异常率) - const passRate2 = totalCount != 0 ? (1 - abRate * totalCount) : 0 + const passRate2 = totalCount != 0 ? (1 - abRate) : 0 return { outCount, @@ -102,15 +102,15 @@ const calcAbSummary = (list) => { { label: '废品库钢卷数', value: o['rubbishCount'] }, { label: '退货库钢卷数', value: o['returnCount'] }, - { label: '技术部钢卷重量', value: o['jishuWeight'] }, - { label: '小钢卷库钢卷重量', value: o['miniWeight'] }, - { label: '废品库钢卷重量', value: o['rubbishWeight'] }, - { label: '退货库钢卷重量', value: o['returnWeight'] }, + { label: '技术部钢卷重量', value: o['jishuWeight'].toFixed(2) }, + { label: '小钢卷库钢卷重量', value: o['miniWeight'].toFixed(2) }, + { label: '废品库钢卷重量', value: o['rubbishWeight'].toFixed(2) }, + { label: '退货库钢卷重量', value: o['returnWeight'].toFixed(2) }, - { label: '技术部占比', value: (o['jishuCount'] / totalCount * 100).toFixed(2) + '%' }, - { label: '小钢卷库占比', value: (o['miniCount'] / totalCount * 100).toFixed(2) + '%' }, - { label: '废品库占比', value: (o['rubbishCount'] / totalCount * 100).toFixed(2) + '%' }, - { label: '退货库占比', value: (o['returnCount'] / totalCount * 100).toFixed(2) + '%' }, + { label: '技术部占比', value: totalCount > 0 ? (o['jishuCount'] / totalCount * 100).toFixed(2) + '%' : '0.00%' }, + { label: '小钢卷库占比', value: totalCount > 0 ? (o['miniCount'] / totalCount * 100).toFixed(2) + '%' : '0.00%' }, + { label: '废品库占比', value: totalCount > 0 ? (o['rubbishCount'] / totalCount * 100).toFixed(2) + '%' : '0.00%' }, + { label: '退货库占比', value: totalCount > 0 ? (o['returnCount'] / totalCount * 100).toFixed(2) + '%' : '0.00%' }, ] } @@ -131,8 +131,68 @@ const calcTeamSummary = (list) => { return teamSummary } +const calcMSummary = (list, lossList) => { + // 统计,需要二外处理M卷,也就是钢卷的currentCoilNo中带有M的钢卷,在统计产出钢卷的数量和重量时需要忽略并记录,并且在统计消耗钢卷的总重量时也需要移除 + + // 筛选出 M 卷 + const mCoils = list.filter(item => item.currentCoilNo && item.currentCoilNo.includes('M')) + // 非 M 卷 + const nonMCoils = list.filter(item => !item.currentCoilNo || !item.currentCoilNo.includes('M')) + + // 非 M 卷作为产出统计 + const outCount = nonMCoils.length + const outTotalWeight = nonMCoils.reduce((acc, cur) => acc + (parseFloat(cur.netWeight) || 0), 0) + const outAvgWeight = outCount > 0 ? (outTotalWeight / outCount)?.toFixed(2) : 0 + + // 计算产出的 M 卷总重量 + const mOutTotalWeight = mCoils.reduce((acc, cur) => acc + (parseFloat(cur.netWeight) || 0), 0) + + // 消耗钢卷统计(数量包括所有卷,但总重量减去产出的 M 卷重量) + const lossCount = lossList.length + const lossTotalWeight = lossList.reduce((acc, cur) => acc + (parseFloat(cur.netWeight) || 0), 0) - mOutTotalWeight + const lossAvgWeight = lossCount > 0 ? (lossTotalWeight / lossCount)?.toFixed(2) : 0 + + // 合计 + const totalCount = outCount + lossCount + const totalWeight = parseFloat((outTotalWeight + lossTotalWeight).toFixed(2)) + const totalAvgWeight = totalCount > 0 ? (totalWeight / totalCount)?.toFixed(2) : 0 + + // 成品比率 + const passRate = outCount > 0 && lossTotalWeight > 0 ? (outTotalWeight / lossTotalWeight) : 0 + // 损失比率 + const lossRate = totalCount > 0 ? (1 - passRate) : 0 + + // 异常率,成品在warehouseId在'2019583656787259393', + // '2019583325311414274', + // '2019583429955104769', + // '2019583137616310273',这四个库中的占比 + const abRate = totalCount != 0 ? nonMCoils.filter(item => { + return item.warehouseId == '2019583656787259393' || item.warehouseId == '2019583325311414274' || item.warehouseId == '2019583429955104769' || item.warehouseId == '2019583137616310273' + }).length / totalCount : 0 + + // 正品率(1-异常率) + const passRate2 = totalCount != 0 ? (1 - abRate) : 0 + + return { + outCount, + outTotalWeight: outTotalWeight.toFixed(2), + outAvgWeight, + lossCount, + lossTotalWeight: lossTotalWeight.toFixed(2), + lossAvgWeight, + totalCount, + totalWeight: totalWeight.toFixed(2), + totalAvgWeight, + passRate: (passRate * 100)?.toFixed(2) + '%', + lossRate: (lossRate * 100)?.toFixed(2) + '%', + abRate: (abRate * 100)?.toFixed(2) || 0, + passRate2: (passRate2 * 100)?.toFixed(2) || 0, + } +} + export { calcSummary, calcAbSummary, calcTeamSummary, + calcMSummary, } \ No newline at end of file diff --git a/klp-ui/src/views/wms/report/lajiao/comprehensive.vue b/klp-ui/src/views/wms/report/lajiao/comprehensive.vue new file mode 100644 index 00000000..59b7ee5e --- /dev/null +++ b/klp-ui/src/views/wms/report/lajiao/comprehensive.vue @@ -0,0 +1,37 @@ + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/report/merge/index.vue b/klp-ui/src/views/wms/report/merge/index.vue index 8bf716de..ecb4dd29 100644 --- a/klp-ui/src/views/wms/report/merge/index.vue +++ b/klp-ui/src/views/wms/report/merge/index.vue @@ -61,6 +61,31 @@ {{ summary.lossRate }} {{ summary.abRate }} + + {{ summary.passRate2 }} + + + + + {{ mSummary.outCount }} + {{ mSummary.outTotalWeight }}t + {{ mSummary.outAvgWeight }}t + + {{ mSummary.lossCount }} + {{ mSummary.lossTotalWeight }}t + {{ mSummary.lossAvgWeight }}t + + {{ mSummary.totalCount }} + {{ mSummary.totalWeight }}t + {{ mSummary.totalAvgWeight }}t + + + {{ mSummary.passRate }} + {{ mSummary.lossRate }} + + {{ mSummary.abRate }} + + {{ mSummary.passRate2 }} @@ -94,7 +119,7 @@ import MutiSelect from "@/components/MutiSelect"; import ProductInfo from "@/components/KLPService/Renderer/ProductInfo"; import RawMaterialInfo from "@/components/KLPService/Renderer/RawMaterialInfo"; import CoilNo from "@/components/KLPService/Renderer/CoilNo.vue"; -import { calcSummary } from "@/views/wms/report/js/calc"; +import { calcSummary, calcMSummary } from "@/views/wms/report/js/calc"; import CoilTable from "@/views/wms/report/components/coilTable"; import ColumnsSetting from "@/views/wms/report/components/setting/columns"; @@ -191,6 +216,9 @@ export default { summary() { return calcSummary(this.outList, this.lossList) }, + mSummary() { + return calcMSummary(this.outList, this.lossList) + }, }, created() { this.handleQuery() diff --git a/klp-ui/src/views/wms/report/shuang/comprehensive.vue b/klp-ui/src/views/wms/report/shuang/comprehensive.vue new file mode 100644 index 00000000..363a0419 --- /dev/null +++ b/klp-ui/src/views/wms/report/shuang/comprehensive.vue @@ -0,0 +1,37 @@ + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/report/template/comprehensive.vue b/klp-ui/src/views/wms/report/template/comprehensive.vue new file mode 100644 index 00000000..7ed1e539 --- /dev/null +++ b/klp-ui/src/views/wms/report/template/comprehensive.vue @@ -0,0 +1,402 @@ + + + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/report/template/day.vue b/klp-ui/src/views/wms/report/template/day.vue index 6cdcbef6..59a46cc0 100644 --- a/klp-ui/src/views/wms/report/template/day.vue +++ b/klp-ui/src/views/wms/report/template/day.vue @@ -66,6 +66,29 @@ {{ summary.passRate2 }} + + + {{ mSummary.outCount }} + {{ mSummary.outTotalWeight }}t + {{ mSummary.outAvgWeight }}t + + {{ mSummary.lossCount }} + {{ mSummary.lossTotalWeight }}t + {{ mSummary.lossAvgWeight }}t + + {{ mSummary.totalCount }} + {{ mSummary.totalWeight }}t + {{ mSummary.totalAvgWeight }}t + + + {{ mSummary.passRate }} + {{ mSummary.lossRate }} + + {{ mSummary.abRate }} + + {{ mSummary.passRate2 }} + + {{ item.value @@ -75,12 +98,12 @@ - - - + + + @@ -104,7 +127,7 @@ import CoilNo from "@/components/KLPService/Renderer/CoilNo.vue"; import MemoInput from "@/components/MemoInput"; import MutiSelect from "@/components/MutiSelect"; import WarehouseSelect from "@/components/KLPService/WarehouseSelect"; -import { calcSummary, calcAbSummary } from "@/views/wms/report/js/calc"; +import { calcSummary, calcAbSummary, calcMSummary } from "@/views/wms/report/js/calc"; import ColumnsSetting from "@/views/wms/report/components/setting/columns.vue"; import CoilTable from "@/views/wms/report/components/coilTable/index.vue"; @@ -158,7 +181,7 @@ export default { const { start, end } = getDayTimeRange(currentDate) return { - activeTab: 'loss', + activeTab: 'output', activeColumnConfig: 'coil-report-loss', settingVisible: false, list: [], @@ -211,6 +234,9 @@ export default { }, abSummary() { return calcAbSummary(this.list) + }, + mSummary() { + return calcMSummary(this.list, this.lossList) } }, methods: { @@ -266,7 +292,7 @@ export default { computedWidth: parseFloat(width), } }) - this.getLossList() + this.getLossList() // this.loading = false }) }, diff --git a/klp-ui/src/views/wms/report/template/month.vue b/klp-ui/src/views/wms/report/template/month.vue index 45aaf022..44d88428 100644 --- a/klp-ui/src/views/wms/report/template/month.vue +++ b/klp-ui/src/views/wms/report/template/month.vue @@ -66,6 +66,29 @@ {{ summary.passRate2 }} + + + {{ mSummary.outCount }} + {{ mSummary.outTotalWeight }}t + {{ mSummary.outAvgWeight }}t + + {{ mSummary.lossCount }} + {{ mSummary.lossTotalWeight }}t + {{ mSummary.lossAvgWeight }}t + + {{ mSummary.totalCount }} + {{ mSummary.totalWeight }}t + {{ mSummary.totalAvgWeight }}t + + + {{ mSummary.passRate }} + {{ mSummary.lossRate }} + + {{ mSummary.abRate }} + + {{ mSummary.passRate2 }} + + {{ item.value @@ -75,12 +98,12 @@ - - - + + + @@ -104,7 +127,7 @@ import CoilNo from "@/components/KLPService/Renderer/CoilNo.vue"; import MemoInput from "@/components/MemoInput"; import MutiSelect from "@/components/MutiSelect"; import WarehouseSelect from "@/components/KLPService/WarehouseSelect"; -import { calcSummary, calcAbSummary } from "@/views/wms/report/js/calc"; +import { calcSummary, calcAbSummary, calcMSummary } from "@/views/wms/report/js/calc"; import ColumnsSetting from "@/views/wms/report/components/setting/columns.vue"; import CoilTable from "@/views/wms/report/components/coilTable/index.vue"; @@ -188,7 +211,7 @@ export default { const { start, end } = getDayTimeRange(currentDate) return { - activeTab: 'loss', + activeTab: 'output', activeColumnConfig: 'coil-report-loss', settingVisible: false, list: [], @@ -241,6 +264,9 @@ export default { }, abSummary() { return calcAbSummary(this.list) + }, + mSummary() { + return calcMSummary(this.list, this.lossList) } }, methods: { diff --git a/klp-ui/src/views/wms/report/template/shuang.vue b/klp-ui/src/views/wms/report/template/shuang.vue new file mode 100644 index 00000000..4bf638a0 --- /dev/null +++ b/klp-ui/src/views/wms/report/template/shuang.vue @@ -0,0 +1,168 @@ + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/report/zha/comprehensive.vue b/klp-ui/src/views/wms/report/zha/comprehensive.vue new file mode 100644 index 00000000..703bcd50 --- /dev/null +++ b/klp-ui/src/views/wms/report/zha/comprehensive.vue @@ -0,0 +1,40 @@ + + + \ No newline at end of file diff --git a/klp-ui/src/views/wms/report/zinc/comprehensive.vue b/klp-ui/src/views/wms/report/zinc/comprehensive.vue new file mode 100644 index 00000000..5be7bad7 --- /dev/null +++ b/klp-ui/src/views/wms/report/zinc/comprehensive.vue @@ -0,0 +1,38 @@ + + + \ No newline at end of file