diff --git a/ruoyi-admin/src/main/resources/static/js/board/orderVisualization.js b/ruoyi-admin/src/main/resources/static/js/board/orderVisualization.js index 25c85bd..ae62b5f 100644 --- a/ruoyi-admin/src/main/resources/static/js/board/orderVisualization.js +++ b/ruoyi-admin/src/main/resources/static/js/board/orderVisualization.js @@ -1,63 +1,68 @@ $(() => { moduleTitle() safe('#safe') + importData('#importData') + // 公共请求地址 + let url = '/broad/mtk' card({ top: 60, left: 30.5, title: '内胆检漏', - name1: '问题1', - value1: '值1', - name2: '问题2', - value2: '值2', - name3: '问题3', - value3: '值3' + name1: '', + value1: '', + name2: '', + value2: '', + name3: '', + value3: '', }, '#cardOne') + card({ top: 60, left: 38.5, title: '安全检测', - name1: '问题1', - value1: '值1', - name2: '问题2', - value2: '值2', - name3: '问题3', - value3: '值3' + name1: '', + value1: '', + name2: '', + value2: '', + name3: '', + value3: '', }, '#cardTwo') + card({ top: 60, left: 46.5, title: '成品检漏', - name1: '问题1', - value1: '值1', - name2: '问题2', - value2: '值2', - name3: '问题3', - value3: '值3' + name1: '', + value1: '', + name2: '', + value2: '', + name3: '', + value3: '', }, '#cardThree') + card({ top: 60, left: 54.5, title: '测温性能', - name1: '问题1', - value1: '值1', - name2: '问题2', - value2: '值2', - name3: '问题3', - value3: '值3' + name1: '', + value1: '', + name2: '', + value2: '', + name3: '', + value3: '', }, '#cardFour') + card({ top: 60, left: 62.5, title: '成品外观', - name1: '问题1', - value1: '值1', - name2: '问题2', - value2: '值2', - name3: '问题3', - value3: '值3' + name1: '', + value1: '', + name2: '', + value2: '', + name3: '', + value3: '', }, '#cardFive') - // 公共请求地址 - let url = '/broad/mtk' // 轮询间隔时间 const INTERVAL = 30000 @@ -145,22 +150,116 @@ $(() => { total(data.find(val => val.name === '入库订单统计').qty, '#total') Tips(data.find(val => val.name === '订单数量').qty, data.find(val => val.name === '完成数量').qty, data.find(val => val.name === '清单率').qty, '#Tips') }) - // 设备功率 - // autoUpdate(url + "/inStore3d", INTERVAL, data => { - singleVerticalBarChart({ - xName: ["1月", "2月", "3月", "4月", "5月", "6月", "7月"], - yData: [12, 20, 11, 30, 14, 80, 50], - }, document.getElementById("equipmentPower")) - // }) - // 生产效率 + // 质量分析(TOP3) + autoUpdate(url + "/selectQATop3", INTERVAL, data => { + console.log(data) + let arr = [] + data.forEach(val => { + switch (val.code) { + case '内胆检漏': + arr = data.find(val => val.code === '内胆检漏').list.sort(function (a,b) { + return b.qty - a.qty + }) + card({ + top: 60, + left: 30.5, + title: '内胆检漏', + name1: arr[0]?.name || '', + value1: arr[0]?.qty || '', + name2: arr[1]?.name || '', + value2: arr[1]?.qty || '', + name3: arr[2]?.name || '', + value3: arr[2]?.qty || '', + }, '#cardOne') + break + case '安全检测': + debugger + arr = data.find(val => val.code === '安全检测').list.sort(function (a,b) { + return b.qty - a.qty + }) + card({ + top: 60, + left: 38.5, + title: '安全检测', + name1: arr[0]?.name || '', + value1: arr[0]?.qty || '', + name2: arr[1]?.name || '', + value2: arr[1]?.qty || '', + name3: arr[2]?.name || '', + value3: arr[2]?.qty || '', + }, '#cardTwo') + break + case '成品检漏': + arr = data.find(val => val.code === '成品检漏').list.sort(function (a,b) { + return b.qty - a.qty + }) + card({ + top: 60, + left: 46.5, + title: '成品检漏', + name1: arr[0]?.name || '', + value1: arr[0]?.qty || '', + name2: arr[1]?.name || '', + value2: arr[1]?.qty || '', + name3: arr[2]?.name || '', + value3: arr[2]?.qty || '', + }, '#cardThree') + break + case '测温性能': + arr = data.find(val => val.code === '测温性能').list.sort(function (a,b) { + return b.qty - a.qty + }) + card({ + top: 60, + left: 54.5, + title: '测温性能', + name1: arr[0]?.name || '', + value1: arr[0]?.qty || '', + name2: arr[1]?.name || '', + value2: arr[1]?.qty || '', + name3: arr[2]?.name || '', + value3: arr[2]?.qty || '', + }, '#cardFour') + break + case '成品外观': + arr = data.find(val => val.code === '成品外观').list.sort(function (a,b) { + return b.qty - a.qty + }) + card({ + top: 60, + left: 62.5, + title: '成品外观', + name1: arr[0]?.name || '', + value1: arr[0]?.qty || '', + name2: arr[1]?.name || '', + value2: arr[1]?.qty || '', + name3: arr[2]?.name || '', + value3: arr[2]?.qty || '', + }, '#cardFive') + break + case '柱状图': + arr = data.find(val => val.code === '柱状图').list.sort(function (a,b) { + return b.qty - a.qty + }) + singleVerticalBarChart({ + xName: arr.map(val => val.name), + yData: arr.map(val => val.qty), + }, document.getElementById("equipmentPower"),-20,'20%') + break + } + }) + }) + + // 当日订单入库统计 autoUpdate(url + "/selectInstoreNumByday", INTERVAL, data => { singleVerticalBarChart({ xName: data.map(val => val.name), yData: data.map(val => val.qty), }, document.getElementById("productionEfficiency"),-20) }) - // 成品入库统计 + + // 重点工序质量监控 // autoUpdate(url + "/inStore3d", INTERVAL, data => { percentageRingDiagram([ { @@ -204,7 +303,7 @@ const curWeek = () => { } firstDayOfYear = new Date(today.getFullYear(), 0, spendDay); let d = Math.ceil((today.valueOf() - firstDayOfYear.valueOf()) / 86400000); - return Math.ceil(d / 7); + return Math.ceil((d / 7) +1); } const moduleTitle = () => { @@ -222,8 +321,9 @@ const moduleTitle = () => { const safe = (el) => { const html = ` + ${new Date().getFullYear().toString()}年连续安全生产天数 ${today()} - QSR连续安全生产天数 + 智能冷柜互联工厂 ` $(el).html(html) } @@ -245,27 +345,27 @@ const card = (val = { ${val.title}
- + ${val.name1} - + ${val.value1}
- + ${val.name2} - + ${val.value2}
- + ${val.name3} - - ${val.value2} + + ${val.value3}
@@ -285,4 +385,10 @@ const total = (val1 = 0, el) => { 合计:${val1} ` $(el).html(html) +} +const importData = ( el) => { + const html = ` + 一次合格率 + ` + $(el).html(html) } \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/js/echartsCommon.js b/ruoyi-admin/src/main/resources/static/js/echartsCommon.js index b476424..58fd4bb 100644 --- a/ruoyi-admin/src/main/resources/static/js/echartsCommon.js +++ b/ruoyi-admin/src/main/resources/static/js/echartsCommon.js @@ -138,6 +138,8 @@ const horizontalRoundedBarChartWithBackground = function (data, id) { $(window).resize(charts.resize); } const horizontalRoundedBarChartWithBackgroundTwo = function (data, id) { + let time = () => { + } let charts = echarts.init(id); if (!data) { data = { @@ -153,13 +155,14 @@ const horizontalRoundedBarChartWithBackgroundTwo = function (data, id) { }) let option = { grid: { + // left: "-10%", left: "0%", right: "8%", bottom: "0%", top: "0%", containLabel: true, }, - dataZoom:[], + dataZoom: [], xAxis: { show: false, }, @@ -179,6 +182,11 @@ const horizontalRoundedBarChartWithBackgroundTwo = function (data, id) { }, axisLabel: { color: "#fff", + // margin:150, + fontSize:0.75 * vw, + textStyle: { + textAlign:'center' + }, }, }, ], @@ -213,8 +221,8 @@ const horizontalRoundedBarChartWithBackgroundTwo = function (data, id) { color: "#fff", fontSize: 0.75 * vw }, - formatter: function (val,index,e) { - return data.yData[val.dataIndex] +'%' + formatter: function (val, index, e) { + return data.yData[val.dataIndex] + '%' } }, itemStyle: { @@ -245,19 +253,22 @@ const horizontalRoundedBarChartWithBackgroundTwo = function (data, id) { }) let step = 1 / (data.yNameOne.length / 9) * 100 - setInterval(() => { - option.dataZoom[0].end += step - option.dataZoom[0].start += step - if (option.dataZoom[0].start >= 100) { - option.dataZoom[0].start = 0 - option.dataZoom[0].end = step - } - if (option.dataZoom[0].end >= 100) { - option.dataZoom[0].end = 100 - option.dataZoom[0].start = option.dataZoom[0].end - step - } - charts.setOption(option); - }, 3000) + time = () => { + setInterval(() => { + option.dataZoom[0].end += step + option.dataZoom[0].start += step + if (option.dataZoom[0].start >= 100) { + option.dataZoom[0].start = 0 + option.dataZoom[0].end = step + } + if (option.dataZoom[0].end >= 100) { + option.dataZoom[0].end = 100 + option.dataZoom[0].start = option.dataZoom[0].end - step + } + charts.setOption(option); + }, 6000) + } + time() } charts.setOption(option); $(window).resize(charts.resize); @@ -919,7 +930,7 @@ const barChartAndLineChartFour = function (data, id) { } ] }; - if (Math.max(...data.yDataOne) <=5){ + if (Math.max(...data.yDataOne) <= 5) { option.yAxis[0].max = 5 } @@ -1503,7 +1514,7 @@ const multipleVerticalBarChartTwo = function (data, id) { } // 单个垂直柱状图 -const singleVerticalBarChart = function (data, id,rotate=0) { +const singleVerticalBarChart = function (data, id, rotate = 0,bottom='15%') { let charts = echarts.init(id); if (!data) { data = { @@ -1520,7 +1531,7 @@ const singleVerticalBarChart = function (data, id,rotate=0) { top: "10%", left: left(), right: "5%", - bottom: "15%", + bottom: bottom, // containLabel: true }, dataZoom: [], @@ -1534,6 +1545,7 @@ const singleVerticalBarChart = function (data, id,rotate=0) { axisLabel: { color: "#fff", fontSize: 14, + interval:0, rotate: rotate, }, }, @@ -1583,6 +1595,14 @@ const singleVerticalBarChart = function (data, id,rotate=0) { ), }, }, + label: { + show: true, + position: "top", + textStyle: { + color: "#fff", + fontSize: 0.75 * vw + }, + }, data: data.yData, }, ], @@ -1593,12 +1613,14 @@ const singleVerticalBarChart = function (data, id,rotate=0) { $(window).resize(charts.resize); } const singleVerticalBarChartTwo = function (data, id) { + let time = () => { + } let charts = echarts.init(id); if (!data) { data = { xName: ['0时', '2时', '4时', '6时', '8时', '10时', '12时', '14时'], yData: [38, 60, 40, 55, 42, 39, 45, 40], - yImg: ['','','','','','','',''], + yImg: ['', '', '', '', '', '', '', ''], } } let option = { @@ -1611,6 +1633,7 @@ const singleVerticalBarChartTwo = function (data, id) { }, dataZoom: [], xAxis: { + margin:10, nameTextStyle: { color: '#c0c3cd', padding: [0, 0, -10, 0], @@ -1620,7 +1643,8 @@ const singleVerticalBarChartTwo = function (data, id) { color: '#c0c3cd', //X轴文字 fontSize: 14, interval: 0, - rotate:20, + margin:20, + rotate: -20, }, axisTick: { lineStyle: { @@ -1709,8 +1733,8 @@ const singleVerticalBarChartTwo = function (data, id) { { type: 'pictorialBar', name: 'pictorial element', - symbol: function(val,index){ - return 'image://' + 'http://10.100.70.5:9090/' + data.yImg[index.dataIndex] + symbol: function (val, index) { + return 'image://' + 'http://10.100.70.5:9090/' + data.yImg[index.dataIndex] }, symbolSize: [40, 40], z: 10, @@ -1722,7 +1746,7 @@ const singleVerticalBarChartTwo = function (data, id) { } }) }, - ], + ], }; if (data.xName.length > 10) { option.dataZoom.push({ @@ -1739,20 +1763,21 @@ const singleVerticalBarChartTwo = function (data, id) { } }) - let step = 1 / (data.xName.length / 11) * 100 - setInterval(() => { - option.dataZoom[0].end += step - option.dataZoom[0].start += step - if (option.dataZoom[0].start >= 100) { - option.dataZoom[0].start = 0 - option.dataZoom[0].end = step - } - if (option.dataZoom[0].end >= 100) { - option.dataZoom[0].end = 100 - option.dataZoom[0].start = option.dataZoom[0].end - step - } - charts.setOption(option); - }, 3000) + let step = 1 / (data.xName.length / 11) * 100 + time = setInterval(() => { + option.dataZoom[0].end += step + option.dataZoom[0].start += step + if (option.dataZoom[0].start >= 100) { + option.dataZoom[0].start = 0 + option.dataZoom[0].end = step + } + if (option.dataZoom[0].end >= 100) { + option.dataZoom[0].end = 100 + option.dataZoom[0].start = option.dataZoom[0].end - step + } + charts.setOption(option); + }, 3000) + time() } @@ -2124,28 +2149,28 @@ const hollowPieChart = function (data, id) { // 多个环形图 const percentageRingDiagram = function (data, id) { let charts = echarts.init(id); - data ??= [ - { - name: "内胆检漏", - value: 54, - }, - { - name: "安全检测", - value: 44, - }, - { - name: "成品检漏", - value: 35, - }, - { - name: "测温性能", - value: 30, - }, - { - name: "成品外观", - value: 44, - }, - ]; + data ??= [ + { + name: "内胆检漏", + value: 54, + }, + { + name: "安全检测", + value: 44, + }, + { + name: "成品检漏", + value: 35, + }, + { + name: "测温性能", + value: 30, + }, + { + name: "成品外观", + value: 44, + }, + ]; let titleArr = [], seriesArr = []; @@ -2194,7 +2219,7 @@ const percentageRingDiagram = function (data, id) { }, hoverAnimation: false, center: [ - index > 2 ? (index - 3) * 25 + 30 + "%" : index * 25 + 20 + "%", + index > 2 ? (index - 3) * 25 + 30 + "%" : index * 25 + 20 + "%", index > 2 ? "75%" : "25%", ], data: [ diff --git a/ruoyi-admin/src/main/resources/templates/broad/orderVisualization.html b/ruoyi-admin/src/main/resources/templates/broad/orderVisualization.html index 77e12b1..edb5701 100644 --- a/ruoyi-admin/src/main/resources/templates/broad/orderVisualization.html +++ b/ruoyi-admin/src/main/resources/templates/broad/orderVisualization.html @@ -34,6 +34,7 @@
+