diff --git a/ruoyi-ui/src/api/dashboard/changemouldtime.js b/ruoyi-ui/src/api/dashboard/changemouldtime.js index 5aba2797e..ee960a27e 100644 --- a/ruoyi-ui/src/api/dashboard/changemouldtime.js +++ b/ruoyi-ui/src/api/dashboard/changemouldtime.js @@ -9,14 +9,17 @@ export function getChangeMouldTimeList() { } - -export function getDateRangeChangeMouldTime(fDateStart,fDateEnd) { - - +export function getDateRangeChangeMouldTime(fDateStart, fDateEnd) { return request({ - url: '/fx_changemouldtime/rangetimeavg/'+fDateStart+'/'+fDateEnd, + url: '/fx_changemouldtime/rangetimeavg/' + fDateStart + '/' + fDateEnd, method: 'get' }) } +export function DoGetChangeMouldTimeListDateRange(fDateStart, fDateEnd) { + return request({ + url: '/fx_changemouldtime/DoGetChangeMouldTimeListDateRange/' + fDateStart + '/' + fDateEnd, + method: 'get' + }) +} diff --git a/ruoyi-ui/src/views/fx_dashboard/dashboard_daterange.vue b/ruoyi-ui/src/views/fx_dashboard/dashboard_daterange.vue index 4e060a341..6f8a63b2d 100644 --- a/ruoyi-ui/src/views/fx_dashboard/dashboard_daterange.vue +++ b/ruoyi-ui/src/views/fx_dashboard/dashboard_daterange.vue @@ -41,7 +41,7 @@ </el-option> </el-select> <el-button @click="getData" type="primary">查询</el-button> - <el-button @click="exportExcel" type="primary">导出</el-button> + <el-button @click="exportExcel" type="primary">导出明细</el-button> </el-col> @@ -75,11 +75,72 @@ </el-col> </el-row> + <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;"> + <b>汇总统计</b> + <div class="ibox-content"> + <el-col :xs="24" :sm="18" :lg="18"> + <el-table + id="exportTableData" + :data="tableDataSum" + stripe + border + style="width: 100%"> + <el-table-column + prop="开线数量" + label="开线数量" + width="100"> + </el-table-column> + <el-table-column + prop="完成箱数" + label="完成箱数"> + </el-table-column> + <el-table-column + prop="线均箱数" + label="线均箱数"> + </el-table-column> + <el-table-column + prop="产能达标率" + label="产能达标率"> + </el-table-column> + <el-table-column + prop="正品达标率" + label="正品率"> + </el-table-column> + <el-table-column + prop="平均密度" + label="平均密度"> + </el-table-column> + + </el-table> + </el-col> + <el-col :xs="24" :sm="6" :lg="6"> + + <el-table + id="exportTableData3" + :data="tableDataSum2" + stripe + border + style="width: 100%"> + <el-table-column + prop="换模次数" + label="换模次数"> + </el-table-column> + <el-table-column + prop="平均换模时间" + label="平均换模时间"> + </el-table-column> + </el-table> + </el-col> + + </div> + </el-row> + + <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;"> <b>产线明细</b> <div class="ibox-content"> <el-table - id="exportTableData" + id="exportTableData2" :data="tableData" stripe border @@ -111,7 +172,7 @@ </el-table-column> <el-table-column prop="yieldrate" - label="正品达标率"> + label="正品率"> </el-table-column> <el-table-column prop="avg_density" @@ -146,6 +207,9 @@ data() { return { tableData: [], + tableDataSum: [], + tableDataSum2: [], + options: [{ value: '08:00:01', label: '08:00' @@ -189,8 +253,8 @@ this.daterange_group_value1 = "08:00:01" this.daterange_group_value2 = "08:00:01" - this.daterange_time1= '2020-07-01' - this.daterange_time2= '2020-07-01' + this.daterange_time1= '2020-07-16' + this.daterange_time2= '2020-07-16' }, @@ -207,8 +271,12 @@ actualData: [] } this.tableData=[]; + this.tableDataSum=[]; + this.tableDataSum2=[]; - getDateRange(fDateStart,fDateEnd).then(response => { + + + getDateRange(fDateStart,fDateEnd).then(response => { var j,k,l; var avg_zhengpin_avg = 0; @@ -217,6 +285,7 @@ var avg_chang_moulding_time = 0; var sum_quantity = 0; var sum_currentfinishedquantity = 0; + var line_sum = 0; j = 0; k = 0; l = 0; @@ -231,7 +300,7 @@ this.tableData.push({ line: response.data[i].line, - Moulds: response.data[i].Moulds, + Moulds: response.data[i].Moulds+'-', sumbox: response.data[i].sumbox, avg_currentcapacity: (response.data[i].avg_currentcapacity * 1 * response.data[i].sum_box_meter / response.data[i].sum_device_meter).toFixed(2), avg_normalcapacity: (response.data[i].avg_normalcapacity * 1).toFixed(2), @@ -242,6 +311,10 @@ }) + + + + if (data_ajax[i].lastchangemouldtime >= 10) { avg_chang_moulding_time = avg_chang_moulding_time + (data_ajax[i].lastchangemouldtime) * 1; j = j + 1; @@ -287,6 +360,18 @@ option_energy_avg.series[0].data[0].value = (avg_energy_avg / l * avg_zhengpin_avg / k * 100).toFixed(0); chart_energy_avg.setOption(option_energy_avg, true); + //汇总数据填充 + this.tableDataSum.push({ + 平均密度:(avg_density / data_ajax.length).toFixed(3), + 正品达标率: (avg_zhengpin_avg / k * 100).toFixed(0)+'%', + 产能达标率: (avg_energy_avg / l * avg_zhengpin_avg / k * 100).toFixed(0)+'%', + 线均箱数: (sum_currentfinishedquantity/(response.data.length)).toFixed(1), + 完成箱数: sum_currentfinishedquantity.toFixed(1), + 开线数量: (response.data.length), + + + }) + }) @@ -299,6 +384,16 @@ + + //总表数据填充 + this.tableDataSum2.push({ + 平均换模时间: (response.data[0].avgchangemouldtime * 1), + 换模次数: (response.data[0].num * 1), + }) + + + + }) @@ -307,7 +402,7 @@ }, exportExcel () { /* generate workbook object from table */ - let wb = XLSX.utils.table_to_book(document.querySelector('#exportTableData')); + let wb = XLSX.utils.table_to_book(document.querySelector('#exportTableData2')); /* get binary string as output */ let wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' }); try { diff --git a/ruoyi/src/main/java/com/ruoyi/db/mssql/DB_Ajax_DashBoard_48102.java b/ruoyi/src/main/java/com/ruoyi/db/mssql/DB_Ajax_DashBoard_48102.java index 41b607cc4..8c4c78a0e 100644 --- a/ruoyi/src/main/java/com/ruoyi/db/mssql/DB_Ajax_DashBoard_48102.java +++ b/ruoyi/src/main/java/com/ruoyi/db/mssql/DB_Ajax_DashBoard_48102.java @@ -341,7 +341,6 @@ public class DB_Ajax_DashBoard_48102 { "CAST (" + " REPLACE( db1.line, '#', '' ) AS INT)"; Statement stmt = conn.createStatement();// - System.out.println(sql); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { // 截面积(mm2) diff --git a/ruoyi/src/main/java/com/ruoyi/db/mssql/DB_Ajax_DashBoard_ChangeMouldTime_48102.java b/ruoyi/src/main/java/com/ruoyi/db/mssql/DB_Ajax_DashBoard_ChangeMouldTime_48102.java index b911b232a..9c4a8fff2 100644 --- a/ruoyi/src/main/java/com/ruoyi/db/mssql/DB_Ajax_DashBoard_ChangeMouldTime_48102.java +++ b/ruoyi/src/main/java/com/ruoyi/db/mssql/DB_Ajax_DashBoard_ChangeMouldTime_48102.java @@ -76,28 +76,78 @@ public class DB_Ajax_DashBoard_ChangeMouldTime_48102 { } - - public static List<HashMap<String,String>> DoGet_avg_changemouldtime_date_range(String fstarttime, String fendtime) { + public static List<HashMap<String,String>> DoGetChangeMouldTimeListDateRange(String fstarttime, String fendtime) { List<HashMap<String,String>> hashMapList = new ArrayList<>(); try { Connection conn = getSQLConnection(); - String sql = "SELECT AVG\r\n" + - " (\r\n" + - " DATEDIFF( MINUTE, StartTime, EndTime )) AS avgchangemouldtime \r\n" + - "FROM\r\n" + - " dbo.MouldingDisplayBoard \r\n" + - "WHERE\r\n" + - "\tChangeMould = 1 and \tDATEDIFF( minute,starttime, endtime) > 20\n" + - " AND Deleted = 0 \r\n" + - " AND StartTime > '" + fstarttime + "' \r\n" + - " AND endtime < '" + fendtime + "'"; + String sql = "SELECT\n" + + "\tLine,\n" + + "\tLEFT ( MouldingStyleCode, charindex( '-', MouldingStyleCode ) - 1 ) AS Mould,\n" + + "\tMouldingStyleCode,\n" + + "\tStartTime,\n" + + "\tEndTime,\n" + + "\tDATEDIFF( MINUTE, starttime, endtime ) AS ChangeMouldTime \n" + + "FROM\n" + + "\t[dbo].[MouldingDisplayBoard] \n" + + "WHERE\n" + + "\tChangeMould = 1 \n" + + "\tAND DATEDIFF( MINUTE, starttime, endtime ) > 20 \n" + + "\tAND endtime >= '"+fstarttime+"' \n" + + "\tAND endtime <= '"+fendtime+"' \n" + + "ORDER BY\n" + + "\tstarttime DESC"; Statement stmt = conn.createStatement();// + ResultSet rs = stmt.executeQuery(sql); + while (rs.next()) { + // 截面积(mm2) + HashMap<String,String> map = new HashMap<>(); + map.put("Line",rs.getString("Line")); + map.put("Mould",rs.getString("Mould")); + map.put("MouldingStyleCode",rs.getString("MouldingStyleCode")); + map.put("StartTime",rs.getString("StartTime")); + map.put("EndTime",rs.getString("EndTime")); + map.put("ChangeMouldTime",rs.getString("ChangeMouldTime")); + hashMapList.add(map); + + } + rs.close(); + stmt.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + + } + return hashMapList; + } + + + + public static List<HashMap<String,String>> DoGet_avg_changemouldtime_date_range(String fstarttime, String fendtime) { + List<HashMap<String,String>> hashMapList = new ArrayList<>(); + try { + Connection conn = getSQLConnection(); + String sql = "SELECT AVG\n" + + "\t(\n" + + "\tDATEDIFF( MINUTE, StartTime, EndTime )) AS avgchangemouldtime , count\n" + + "\t(\n" + + "\tDATEDIFF( MINUTE, StartTime, EndTime )) AS num \n" + + "FROM\n" + + "\tdbo.MouldingDisplayBoard \n" + + "WHERE\n" + + "\tChangeMould = 1 \n" + + "\tAND DATEDIFF( MINUTE, starttime, endtime ) > 20 \n" + + "\tAND Deleted = 0 " + + " AND StartTime > '" + fstarttime + "' \r\n" + + " AND endtime < '" + fendtime + "'"; + Statement stmt = conn.createStatement();// ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { // 截面积(mm2) HashMap<String,String> map = new HashMap<>(); map.put("avgchangemouldtime",rs.getString("avgchangemouldtime")); + map.put("num",rs.getString("num")); + hashMapList.add(map); } diff --git a/ruoyi/src/main/java/com/ruoyi/project/fx_changemouldtime/controller/ChangeMouldTimeController.java b/ruoyi/src/main/java/com/ruoyi/project/fx_changemouldtime/controller/ChangeMouldTimeController.java index acf9264c5..065a8928b 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/fx_changemouldtime/controller/ChangeMouldTimeController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/fx_changemouldtime/controller/ChangeMouldTimeController.java @@ -19,11 +19,19 @@ public class ChangeMouldTimeController extends BaseController { // @PreAuthorize("@ss.hasPermi('monitor:server:list')") @GetMapping("/list") - public AjaxResult get30Day() throws Exception + public AjaxResult DoGetChangeMouldTimeList() throws Exception { return AjaxResult.success(DB_Ajax_DashBoard_ChangeMouldTime_48102.DoGetChangeMouldTimeList()); } + + @GetMapping("/DoGetChangeMouldTimeListDateRange/{fDateStart}/{fDateEnd}") + public AjaxResult DoGetChangeMouldTimeListDateRange(@PathVariable String fDateStart, @PathVariable String fDateEnd) throws Exception + { + return AjaxResult.success(DB_Ajax_DashBoard_ChangeMouldTime_48102.DoGetChangeMouldTimeListDateRange(fDateStart,fDateEnd)); + } + + @GetMapping("/rangetimeavg/{fDateStart}/{fDateEnd}") public AjaxResult getRangeTimeAvg(@PathVariable String fDateStart, @PathVariable String fDateEnd) throws Exception {