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">
@@ -80,6 +80,10 @@ export default {
columns: [],
title: '详细信息'
})
+ },
+ height: {
+ type: String,
+ default: ''
}
},
data() {
diff --git a/klp-ui/src/components/TimeInput.vue b/klp-ui/src/components/TimeInput.vue
index 51968fd1..2ca612e4 100644
--- a/klp-ui/src/components/TimeInput.vue
+++ b/klp-ui/src/components/TimeInput.vue
@@ -20,7 +20,7 @@ export default {
},
showNowButton: {
type: Boolean,
- default: false
+ default: true
}
},
data() {
diff --git a/klp-ui/src/views/wms/coil/abnormal.vue b/klp-ui/src/views/wms/coil/abnormal.vue
index 456543e6..8284c8a9 100644
--- a/klp-ui/src/views/wms/coil/abnormal.vue
+++ b/klp-ui/src/views/wms/coil/abnormal.vue
@@ -13,6 +13,7 @@ export default {
return {
querys: {
dataType: 1,
+ orderByAbnormal: true,
// 筛选异常数量大于等于1的
// minAbnormalCount: 1
},
diff --git a/klp-ui/src/views/wms/coil/panels/LabelRender/GalvanizedTag.vue b/klp-ui/src/views/wms/coil/panels/LabelRender/GalvanizedTag.vue
index 8dd86332..2eb6f316 100644
--- a/klp-ui/src/views/wms/coil/panels/LabelRender/GalvanizedTag.vue
+++ b/klp-ui/src/views/wms/coil/panels/LabelRender/GalvanizedTag.vue
@@ -63,7 +63,7 @@
- 表面质量
+ 质量状态
diff --git a/klp-ui/src/views/wms/coil/panels/base.vue b/klp-ui/src/views/wms/coil/panels/base.vue
index 02052bc2..2a4cb9cd 100644
--- a/klp-ui/src/views/wms/coil/panels/base.vue
+++ b/klp-ui/src/views/wms/coil/panels/base.vue
@@ -59,10 +59,10 @@
-
+
追溯
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 79e6d870..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',
@@ -25,6 +25,9 @@ const calcSummary = (list, lossList) => {
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),
@@ -38,6 +41,7 @@ const calcSummary = (list, lossList) => {
passRate: (passRate * 100)?.toFixed(2) + '%',
lossRate: (lossRate * 100)?.toFixed(2) + '%',
abRate: (abRate * 100)?.toFixed(2) || 0,
+ passRate2: (passRate2 * 100)?.toFixed(2) || 0,
}
}
@@ -45,14 +49,25 @@ const calcAbSummary = (list) => {
// 异常统计,统计四个异常库中的各自的数量和总重
let o = {
jishuCount: 0,
- jishuWeight: 0,
miniCount: 0,
- miniWeight: 0,
rubbishCount: 0,
- rubbishWeight: 0,
returnCount: 0,
+
+ jishuWeight: 0,
+ miniWeight: 0,
+ rubbishWeight: 0,
returnWeight: 0,
+
+ // 计入技术部的钢卷占比
+ jishuRate: 0,
+ // 计入小钢卷库的钢卷占比
+ miniRate: 0,
+ // 计入废品库的钢卷占比
+ rubbishRate: 0,
+ // 计入退货库的钢卷占比
+ returnRate: 0,
}
+ const totalCount = list.length
for (let i = 0; i < list.length; i++) {
// { label: '技术部', value: '2019583656787259393' },
// { label: '小钢卷库', value: '2019583325311414274' },
@@ -83,13 +98,19 @@ const calcAbSummary = (list) => {
}
return [
{ label: '技术部钢卷数', value: o['jishuCount'] },
- { label: '技术部钢卷重量', value: o['jishuWeight'] },
{ label: '小钢卷库钢卷数', value: o['miniCount'] },
- { label: '小钢卷库钢卷重量', value: o['miniWeight'] },
{ label: '废品库钢卷数', value: o['rubbishCount'] },
- { label: '废品库钢卷重量', value: o['rubbishWeight'] },
{ label: '退货库钢卷数', value: o['returnCount'] },
- { 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: 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%' },
]
}
@@ -110,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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 导出产出钢卷
+ 导出消耗钢卷
+ 列设置
+
+
+
+
+
+ {{ summary.outCount }}
+ {{ summary.outTotalWeight }}t
+ {{ summary.outAvgWeight }}t
+
+ {{ summary.lossCount }}
+ {{ summary.lossTotalWeight }}t
+ {{ summary.lossAvgWeight }}t
+
+ {{ summary.totalCount }}
+ {{ summary.totalWeight }}t
+ {{ summary.totalAvgWeight }}t
+
+
+ {{ summary.passRate }}
+ {{ 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 }}
+
+
+
+
+ {{ item.value
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 投入明细配置
+ 产出明细配置
+
+
+
+
+
+
+
+
+
\ 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 88e37c14..59a46cc0 100644
--- a/klp-ui/src/views/wms/report/template/day.vue
+++ b/klp-ui/src/views/wms/report/template/day.vue
@@ -62,6 +62,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 }}
@@ -73,12 +98,12 @@
-
-
-
+
+
+
@@ -102,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";
@@ -156,7 +181,7 @@ export default {
const { start, end } = getDayTimeRange(currentDate)
return {
- activeTab: 'loss',
+ activeTab: 'output',
activeColumnConfig: 'coil-report-loss',
settingVisible: false,
list: [],
@@ -209,6 +234,9 @@ export default {
},
abSummary() {
return calcAbSummary(this.list)
+ },
+ mSummary() {
+ return calcMSummary(this.list, this.lossList)
}
},
methods: {
@@ -229,7 +257,7 @@ export default {
// 统一查询入口(兼容回车和按钮点击)
handleQuery() {
this.getList()
- this.getLossList()
+ // this.getLossList()
},
// 核心查询逻辑
getList() {
@@ -264,7 +292,8 @@ export default {
computedWidth: parseFloat(width),
}
})
- this.loading = false
+ this.getLossList()
+ // this.loading = false
})
},
async getLossList() {
@@ -333,7 +362,7 @@ export default {
},
mounted() {
this.getList()
- this.getLossList()
+ // this.getLossList()
this.loadColumns()
}
}
diff --git a/klp-ui/src/views/wms/report/template/month.vue b/klp-ui/src/views/wms/report/template/month.vue
index d2405d58..44d88428 100644
--- a/klp-ui/src/views/wms/report/template/month.vue
+++ b/klp-ui/src/views/wms/report/template/month.vue
@@ -62,6 +62,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 }}
@@ -73,12 +98,12 @@
-
-
-
+
+
+
@@ -102,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";
@@ -186,7 +211,7 @@ export default {
const { start, end } = getDayTimeRange(currentDate)
return {
- activeTab: 'loss',
+ activeTab: 'output',
activeColumnConfig: 'coil-report-loss',
settingVisible: false,
list: [],
@@ -239,6 +264,9 @@ export default {
},
abSummary() {
return calcAbSummary(this.list)
+ },
+ mSummary() {
+ return calcMSummary(this.list, this.lossList)
}
},
methods: {
@@ -259,7 +287,7 @@ export default {
// 统一查询入口(兼容回车和按钮点击)
handleQuery() {
this.getList()
- this.getLossList()
+ // this.getLossList()
},
// 核心查询逻辑
getList() {
@@ -294,7 +322,9 @@ export default {
computedWidth: parseFloat(width),
}
})
- this.loading = false
+ // this.loading = false
+ this.getLossList()
+ // this.loading = false
})
},
async getLossList() {
@@ -363,7 +393,7 @@ export default {
},
mounted() {
this.getList()
- this.getLossList()
+ // this.getLossList()
this.loadColumns()
}
}
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 导出产出钢卷
+ 导出消耗钢卷
+ 列设置
+
+
+
+
+
+ {{ summary.outCount }}
+ {{ summary.outTotalWeight }}t
+ {{ summary.outAvgWeight }}t
+
+ {{ summary.lossCount }}
+ {{ summary.lossTotalWeight }}t
+ {{ summary.lossAvgWeight }}t
+
+ {{ summary.totalCount }}
+ {{ summary.totalWeight }}t
+ {{ summary.totalAvgWeight }}t
+
+
+ {{ summary.passRate }}
+ {{ summary.lossRate }}
+
+ {{ summary.abRate }}
+
+ {{ summary.passRate2 }}
+
+
+
+
+ {{ item.value
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 投入明细配置
+ 产出明细配置
+
+
+
+
+
+
+
\ 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
diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java
index fba2faa8..afae1c0a 100644
--- a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java
+++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java
@@ -319,5 +319,11 @@ public class WmsMaterialCoilBo extends BaseEntity {
* 钢卷异常信息列表(用于更新钢卷时同时插入异常信息)
*/
private List abnormals;
+
+ /**
+ * 按异常数量排序(异常钢卷在前按创建时间,没异常的钢卷在后按创建时间)
+ */
+ @TableField(exist = false)
+ private Boolean orderByAbnormal;
}
diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java
index 5164a25f..88e258a0 100644
--- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java
+++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java
@@ -689,6 +689,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
qw.orderByAsc("aw_sort_key");
qw.orderByAsc("aw_layer_key");
qw.orderByAsc("aw_id_key");
+ } else if (Boolean.TRUE.equals(bo.getOrderByAbnormal())) {
+ // 按异常排序:异常的钢卷在前按创建时间倒序,没异常的钢卷在后按创建时间倒序
+ qw.orderByAsc("CASE WHEN COALESCE(ca.abnormal_count, 0) > 0 THEN 0 ELSE 1 END");
+ qw.orderByDesc("mc.create_time");
} else {
//根据创建时间倒叙
qw.orderByDesc("mc.create_time");
@@ -2539,6 +2543,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
WmsMaterialCoilVo wmsMaterialCoilVo = queryById(coilId);
Long oldActualWarehouseId = wmsMaterialCoilVo != null ? wmsMaterialCoilVo.getActualWarehouseId() : null;
+ // 如果质量状态为O的提示不能发货
+ if (wmsMaterialCoilVo != null && Objects.equals(wmsMaterialCoilVo.getQualityStatus(), "O")) {
+ throw new RuntimeException("当前钢卷为质检未通过,请勿发货!");
+ }
// 如果当前钢卷为历史数据应该抛异常
if (wmsMaterialCoilVo != null && wmsMaterialCoilVo.getDataType() == 0) {
throw new RuntimeException("当前数据为历史数据,请勿发货!");