no message

main
暴炳林 2025-02-20 15:41:40 +08:00
parent 149566b2e1
commit c568abe996
6 changed files with 470 additions and 122 deletions

View File

@ -16,15 +16,14 @@
<el-button type="success" @click="rest"></el-button>&nbsp;&nbsp;
</el-form>
</div>
<div class="table-title">命中率</div>
<el-table
v-loading="this.tableloding"
:data="rqMzList"
id="educe-table1"
id="educe-table0"
ref="tableData"
border
style="width: 100%;">
<el-table-column prop="workstation" label="工作站" width="180"></el-table-column>
<el-table-column prop="workstation" label="工作站/命中率" width="180"></el-table-column>
<el-table-column prop="g201.mz" label="201" width="50"></el-table-column>
<el-table-column prop="g202.mz" label="202" width="50"></el-table-column>
<el-table-column prop="g203.mz" label="203" width="50"></el-table-column>
@ -42,15 +41,64 @@
<el-table-column prop="g215.mz" label="215" width="50"></el-table-column>
<el-table-column prop="total.mz" label="平均值" width="60"></el-table-column>
</el-table>
<div class="table-title">箱子流通数</div>
<el-table
v-loading="this.tableloding"
:data="rqLtList"
:data="rqMzList"
id="educe-table1"
ref="tableData"
border
style="width: 100%;">
<el-table-column prop="workstation" label="工作站/任务行数" width="180"></el-table-column>
<el-table-column prop="g201.taskCount" label="201" width="50"></el-table-column>
<el-table-column prop="g202.taskCount" label="202" width="50"></el-table-column>
<el-table-column prop="g203.taskCount" label="203" width="50"></el-table-column>
<el-table-column prop="g204.taskCount" label="204" width="50"></el-table-column>
<el-table-column prop="g205.taskCount" label="205" width="50"></el-table-column>
<el-table-column prop="g206.taskCount" label="206" width="50"></el-table-column>
<el-table-column prop="g207.taskCount" label="207" width="50"></el-table-column>
<el-table-column prop="g208.taskCount" label="208" width="50"></el-table-column>
<el-table-column prop="g209.taskCount" label="209" width="50"></el-table-column>
<el-table-column prop="g210.taskCount" label="210" width="50"></el-table-column>
<el-table-column prop="g211.taskCount" label="211" width="50"></el-table-column>
<el-table-column prop="g212.taskCount" label="212" width="50"></el-table-column>
<el-table-column prop="g213.taskCount" label="213" width="50"></el-table-column>
<el-table-column prop="g214.taskCount" label="214" width="50"></el-table-column>
<el-table-column prop="g215.taskCount" label="215" width="50"></el-table-column>
<el-table-column prop="total.taskCount" label="汇总" width="60"></el-table-column>
</el-table>
<el-table
v-loading="this.tableloding"
:data="rqMzList"
id="educe-table2"
ref="tableData"
border
style="width: 100%;">
<el-table-column prop="workstation" label="工作站" width="180"></el-table-column>
<el-table-column prop="workstation" label="工作站/容器流通次数" width="180"></el-table-column>
<el-table-column prop="g201.lxCount" label="201" width="50"></el-table-column>
<el-table-column prop="g202.lxCount" label="202" width="50"></el-table-column>
<el-table-column prop="g203.lxCount" label="203" width="50"></el-table-column>
<el-table-column prop="g204.lxCount" label="204" width="50"></el-table-column>
<el-table-column prop="g205.lxCount" label="205" width="50"></el-table-column>
<el-table-column prop="g206.lxCount" label="206" width="50"></el-table-column>
<el-table-column prop="g207.lxCount" label="207" width="50"></el-table-column>
<el-table-column prop="g208.lxCount" label="208" width="50"></el-table-column>
<el-table-column prop="g209.lxCount" label="209" width="50"></el-table-column>
<el-table-column prop="g210.lxCount" label="210" width="50"></el-table-column>
<el-table-column prop="g211.lxCount" label="211" width="50"></el-table-column>
<el-table-column prop="g212.lxCount" label="212" width="50"></el-table-column>
<el-table-column prop="g213.lxCount" label="213" width="50"></el-table-column>
<el-table-column prop="g214.lxCount" label="214" width="50"></el-table-column>
<el-table-column prop="g215.lxCount" label="215" width="50"></el-table-column>
<el-table-column prop="total.lxCount" label="汇总" width="60"></el-table-column>
</el-table>
<el-table
v-loading="this.tableloding"
:data="rqLtList"
id="educe-table3"
ref="tableData"
border
style="width: 100%;">
<el-table-column prop="workstation" label="工作站/箱子数" width="180"></el-table-column>
<el-table-column prop="g201" label="201" width="50"></el-table-column>
<el-table-column prop="g202" label="202" width="50"></el-table-column>
<el-table-column prop="g203" label="203" width="50"></el-table-column>
@ -68,19 +116,209 @@
<el-table-column prop="g215" label="215" width="50"></el-table-column>
<el-table-column prop="total" label="汇总" width="60"></el-table-column>
</el-table>
<div class="table-title" v-if="true">
<div class="table-title" v-if="true">
<el-table
v-loading="this.tableloding"
:height="150"
:header-cell-style="{background:'#000',color:'#fff'}"
:data="tableData"
id="educe-table4"
ref="tableData"
show-summary
style="width: 100%;">
<el-table-column
fixed
label="容器/现有逻辑"
v-if="true"
width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.rqh }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="201"
prop="g201"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g201 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="202"
v-if="true"
prop="g202"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g202 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="203"
prop="g203"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g203 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="204"
prop="g204"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g204 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="205"
prop="g205"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g205 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="206"
v-if="true"
prop="g206"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g206 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="207"
prop="g207"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g207 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="208"
prop="g208"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g208 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="209"
prop="g209"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g209 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="210"
prop="g210"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g210 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="211"
prop="g211"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g211 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="212"
prop="g212"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g212 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="213"
prop="g213"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g213 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="214"
prop="g214"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g214 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="215"
prop="g215"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g215 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="汇总"
v-if="true"
prop="count"
width="80">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.count }}</span>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageNum"
:page-sizes="[ 50, 100, 200,500]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
<el-table
v-loading="this.tableloding"
:height="MaxHeight"
:height="150"
:header-cell-style="{background:'#000',color:'#fff'}"
:data="tableData"
id="educe-table3"
ref="tableData"
border
:data="tableData1"
id="educe-table5"
ref="tableData1"
show-summary
style="width: 100%;">
<el-table-column
fixed
label="容器"
label="容器/新逻辑"
v-if="true"
width="180">
<template slot-scope="scope">
@ -90,6 +328,7 @@
<el-table-column
fixed
label="201"
prop="g201"
v-if="true"
width="50">
<template slot-scope="scope">
@ -100,6 +339,7 @@
fixed
label="202"
v-if="true"
prop="g202"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g202 }}</span>
@ -108,6 +348,7 @@
<el-table-column
fixed
label="203"
prop="g203"
v-if="true"
width="50">
<template slot-scope="scope">
@ -117,6 +358,7 @@
<el-table-column
fixed
label="204"
prop="g204"
v-if="true"
width="50">
<template slot-scope="scope">
@ -126,6 +368,7 @@
<el-table-column
fixed
label="205"
prop="g205"
v-if="true"
width="50">
<template slot-scope="scope">
@ -136,6 +379,7 @@
fixed
label="206"
v-if="true"
prop="g206"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g206 }}</span>
@ -144,6 +388,7 @@
<el-table-column
fixed
label="207"
prop="g207"
v-if="true"
width="50">
<template slot-scope="scope">
@ -153,6 +398,7 @@
<el-table-column
fixed
label="208"
prop="g208"
v-if="true"
width="50">
<template slot-scope="scope">
@ -162,6 +408,7 @@
<el-table-column
fixed
label="209"
prop="g209"
v-if="true"
width="50">
<template slot-scope="scope">
@ -171,6 +418,7 @@
<el-table-column
fixed
label="210"
prop="g210"
v-if="true"
width="50">
<template slot-scope="scope">
@ -180,6 +428,7 @@
<el-table-column
fixed
label="211"
prop="g211"
v-if="true"
width="50">
<template slot-scope="scope">
@ -189,6 +438,7 @@
<el-table-column
fixed
label="212"
prop="g212"
v-if="true"
width="50">
<template slot-scope="scope">
@ -198,6 +448,7 @@
<el-table-column
fixed
label="213"
prop="g213"
v-if="true"
width="50">
<template slot-scope="scope">
@ -207,6 +458,7 @@
<el-table-column
fixed
label="214"
prop="g214"
v-if="true"
width="50">
<template slot-scope="scope">
@ -216,12 +468,23 @@
<el-table-column
fixed
label="215"
prop="g215"
v-if="true"
width="50">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.g215 }}</span>
</template>
</el-table-column>
<el-table-column
fixed
label="汇总"
v-if="true"
prop="count"
width="80">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.count }}</span>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@ -232,7 +495,6 @@
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</div>
</template>
@ -276,6 +538,7 @@ export default {
tableloding: false,
isShow:false,//
tableData: [],
tableData1: [],
pageSize: 50,
spanArr: [], //
pos: 0, //
@ -354,40 +617,15 @@ export default {
}).then(res => res.data)
.then(res => {
if (res.code == 200) {
console.log('rqList:', res.data.rqList);
console.log('rqeList:', res.data.rqeList);
this.tableData = res.data.rqList
this.tableData1 = res.data.rqeList
this.total = this.tableData.length
this.pageSize=this.tableData.length
this.rqLtList=res.data.rqLtList
this.rqMzList=res.data.rqMzList
console.log(this.rqMzList)
/*const rqLtMap=res.data.rqLtMap
/!* 获取新逻辑数据*!/
const rqLtMapNew=rqLtMap.NEW
/!* 添加汇总*!/
rqLtMapNew.push(rqLtMapNew.reduce((acc, current) => acc + current, 0));
/!* 添加表头*!/
rqLtMapNew.unshift("头物料+容器逻辑");
const propertyKeys = ['workstation', '201', '202', '203', '204', '205', '206', '207', '208', '209', '210', '211', 'total'];
const newObj = {};
for (let i = 0; i < propertyKeys.length; i++) {
newObj[propertyKeys[i]] = rqLtMapNew[i];
}
this.rqLtList[1]=newObj;
/!* 获取旧逻辑数据*!/
const rqLtMapOLD=rqLtMap.OLD
/!* 添加汇总*!/
rqLtMapOLD.push(rqLtMapOLD.reduce((acc, current) => acc + current, 0));
/!* 添加表头*!/
rqLtMapOLD.unshift("现有逻辑");
const oldObj = {};
for (let i = 0; i < propertyKeys.length; i++) {
oldObj[propertyKeys[i]] = rqLtMapOLD[i];
}
this.rqLtList[0]=oldObj;
console.log(this.rqLtList)*/
} else {
this.$message.error('获取数据失败');
}
@ -405,40 +643,59 @@ export default {
down(){
this.exportToExcel();
},
// excelExcel
exportToExcel() {
const XLSX = require('xlsx');
const FileSaver = require('file-saver'); // file-saver
console.log('XLSX', XLSX, FileSaver);
const FileSaver = require('file-saver');
this.$nextTick(() => {
const workbook = XLSX.utils.book_new();
// ID
const tableIds = ['#educe-table1', '#educe-table2', '#educe-table3'];
const sheetNames = ['Sheet1', 'Sheet2', 'Sheet3'];
const tableIds = ['#educe-table0', '#educe-table1', '#educe-table2', '#educe-table3', '#educe-table4', '#educe-table5'];
const sheetNames = ['命中率', '任务行数', '容器流通数', '箱子数', '数据详情-现有逻辑', '数据详情-新逻辑'];
tableIds.forEach((tableId, index) => {
const worksheet = XLSX.utils.table_to_sheet(document.querySelector(tableId), { raw: true });
XLSX.utils.book_append_sheet(workbook, worksheet, sheetNames[index]);
const tableElement = document.querySelector(tableId);
if (tableElement) {
//
const uniqueRows = [];
const rows = tableElement.querySelectorAll('tr');
rows.forEach(row => {
const rowData = Array.from(row.cells).map(cell => cell.textContent);
if (!uniqueRows.some(uniqueRow => uniqueRow.join('') === rowData.join(''))) {
uniqueRows.push(rowData);
}
});
//
const newTable = document.createElement('table');
uniqueRows.forEach(rowData => {
const row = document.createElement('tr');
rowData.forEach(cellData => {
const cell = document.createElement('td');
cell.textContent = cellData;
row.appendChild(cell);
});
newTable.appendChild(row);
});
const worksheet = XLSX.utils.table_to_sheet(newTable, { raw: true });
XLSX.utils.book_append_sheet(workbook, worksheet, sheetNames[index]);
} else {
console.warn(`表格元素 ${tableId} 未找到,跳过导出。`);
}
});
// excel
let fileName = '容器流通' + new Date().getTime() + '.xlsx';
const fileName = `容器流通_${new Date().getTime()}.xlsx`;
const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
const wbout = XLSX.write(workbook, { bookType: 'xlsx', bookSST: true, type: 'array' });
try {
//
FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), fileName);
} catch (e) {
if (typeof console !== 'undefined') {
console.log(e, wbout);
}
console.error('导出Excel文件失败:', e);
}
return wbout;
});
},
parseTime(time, cFormat) {
//
if (arguments.length === 0) {

View File

@ -0,0 +1,62 @@
<template>
<div class="div1">
<!-- 其他代码 -->
<el-table
v-loading="this.tableloding"
:data="rqMzList"
id="educe-table0"
ref="tableData"
border
style="width: 100%;">
<!-- 列配置 -->
</el-table>
<el-table
v-loading="this.tableloding"
:data="rqMzList"
id="educe-table1"
ref="tableData"
border
style="width: 100%;">
<!-- 列配置 -->
</el-table>
<el-table
v-loading="this.tableloding"
:data="rqMzList"
id="educe-table2"
ref="tableData"
border
style="width: 100%;">
<!-- 列配置 -->
</el-table>
<el-table
v-loading="this.tableloding"
:data="rqLtList"
id="educe-table3"
ref="tableData"
border
style="width: 100%;">
<!-- 列配置 -->
</el-table>
<el-table
v-loading="this.tableloding"
:header-cell-style="{background:'#000',color:'#fff'}"
:data="tableData"
id="educe-table4"
ref="tableData"
border
style="width: 100%; height: 150px">
<!-- 列配置 -->
</el-table>
<el-table
v-loading="this.tableloding"
:height="150"
:header-cell-style="{background:'#000',color:'#fff'}"
:data="tableData1"
id="educe-table5"
ref="tableData1"
style="width: 100%;">
<!-- 列配置 -->
</el-table>
<!-- 其他代码 -->
</div>
</template>

View File

@ -8,7 +8,7 @@ import VueRouter from "vue-router";
import router from "@/router/router";
import store from "@/store/store";
Vue.prototype.$axios=axios;
Vue.prototype.$httpUrl='http://127.0.0.1:8084';
Vue.prototype.$httpUrl='http://127.0.0.1:8083';
//Vue.prototype.$httpUrl='http://192.68.2.88:8081';
// Vue.prototype.$httpUrl='http://10.1.112.23:8083';
Vue.config.productionTip = false;

View File

@ -20,7 +20,9 @@ public class RQTaskModel implements Serializable{
private String oldGzz="";
// 容器
private String rqh;
// 物料
// 原子任务号
private String oldZrwh;
// 新子任务号
private String zrwh;
private String agvId;
}

View File

@ -59,11 +59,11 @@ public class RongQiController {
/* 基础sql数据查询*/
String sql=" SELECT "
+" MAX(t.id) as id, "
+" max(t.OLD_GZZ) old_gzz, "
+" max(t.OLD_GZZ) gzz, "
+" count(t.id) as ts, "
+" MAX(t.agvTask_ID) as agv_id, "
+" item.code AS liaohao, "
+" MAX ( t.END_REGION ) AS gzz, "
+" MAX ( t.END_REGION ) AS old_gzz, "
+" MAX ( s2.LP ) AS rqh, "
+" t.BILLCODE AS zrwh "
+" FROM "
@ -83,20 +83,9 @@ public class RongQiController {
+" AND wd.code= '"+wdCode+"' "
+" AND t.WAVE_DOC_ID IS NOT NULL and z.id=1763 "
+" GROUP BY "
+" pt.code, "
+" t.agvTask_ID, "
+" t.BILLCODE, "
+" item.id, "
+" item.code, "
+" item.BE_MARK_WEIGHT, "
+" loc.id, "
+" loc.code, "
+" ik.PROP_C1, "
+" ik.PROP_C2, "
+" ik.PROP_C3, "
+" ik.PROP_D1, "
+" ik.PROP_D2, "
+" item.ISBOM "
+" item.code "
;
String sqlCount = "select count(t.id) as nums from (" + sql+") t";
/* 总条数*/
@ -119,7 +108,6 @@ public class RongQiController {
+ " ,id"
+" OFFSET "+ (pageNum-1) * pageSize +" ROWS "
+" FETCH NEXT "+pageSize+" ROWS ONLY; ";
/* 箱子流通数*/
List<RongQiLt> rqLtList=new ArrayList<>();
RongQiLt rongQiOLD=new RongQiLt();
@ -127,7 +115,7 @@ public class RongQiController {
rqLtList.add(rongQiOLD);
RongQiLt rongQiNEW=new RongQiLt();
rongQiNEW.setWorkstation("头物料+容器逻辑");
rongQiNEW.setWorkstation("逻辑");
rqLtList.add(rongQiNEW);
/* 工作站命中率*/
@ -139,8 +127,10 @@ public class RongQiController {
RongQiMz rqMzNEW=new RongQiMz();
rqMzNEW.setWorkstation("新逻辑");
rqMzList.add(rqMzNEW);
/* 详情数据*/
/* 详情数据-现有逻辑*/
List<RongQi> rqList = new ArrayList<>();
/* 详情数据-新逻辑*/
List<RongQi> rqeList = new ArrayList<>();
/* 查询所有数据*/
List<RQTaskModel> listAll = entityManager.createNativeQuery(sqlFy, RQTaskModel.class).getResultList();
/* 按容器分组*/
@ -148,15 +138,15 @@ public class RongQiController {
.collect(Collectors.groupingBy(RQTaskModel::getRqh));
for (String rqh : groupedByRqh.keySet()) {
RongQi rongQi=new RongQi();
rongQi.setRqh(rqh);
List<RQTaskModel> listRqh=groupedByRqh.get(rqh);
rongQi.setId(listRqh.get(0).getId());
Map<String, List<RQTaskModel>> groupedByGzz;
//i=1 新逻辑 i=0 原逻辑
for (int i = 0; i < 2; i++) {
RongQi rongQi=new RongQi();
rongQi.setRqh(rqh);
rongQi.setId(listRqh.get(0).getId());
if (i==0){
groupedByGzz = listRqh.stream()
groupedByGzz = listRqh.stream()
.filter(task -> task.getOldGzz() != null)
.collect(Collectors.groupingBy(RQTaskModel::getOldGzz));
@ -166,18 +156,19 @@ public class RongQiController {
.filter(task -> task.getGzz() != null)
.collect(Collectors.groupingBy(RQTaskModel::getGzz));
}
/* 工作站分配容器数*/
int gzzCount=1;
for (String gzz : groupedByGzz.keySet()) {
List<RQTaskModel> listGzz=groupedByGzz.get(gzz);
/* 按AgvId任务分组获取分组后的集合长度算出当前料箱到当前工作站的次数*/
Map<String, List<RQTaskModel>> groupedByAgvId = listGzz.stream()
.collect(Collectors.groupingBy(RQTaskModel::getAgvId));
/* 工作站搬运任务数*/
int gzzCount=groupedByAgvId.size();
/*Map<String, List<RQTaskModel>> groupedByAgvId = listGzz.stream()
.collect(Collectors.groupingBy(RQTaskModel::getAgvId));*/
/* 工作站拣货任务总行数*/
int taskCount=0;
for (RQTaskModel rqTaskModel : listGzz){
int taskCount=listGzz.size();
/*for (RQTaskModel rqTaskModel : listGzz){
taskCount=taskCount+rqTaskModel.getTs();
}
}*/
RongQiMz rongQiMz=rqMzList.get(i);
switch (gzz){
case "201":
@ -288,9 +279,16 @@ public class RongQiController {
default:
break;
}
gzzCount=0;
}
rongQi.setCount(rongQi.getG201()+rongQi.getG202()+rongQi.getG203()+rongQi.getG204()+rongQi.getG205()+rongQi.getG206()+rongQi.getG207()+rongQi.getG208()+rongQi.getG209()
+rongQi.getG210()+rongQi.getG211()+rongQi.getG212()+rongQi.getG213()+rongQi.getG214()+rongQi.getG215());
if (i==0){
rqList.add(rongQi);
}else {
rqeList.add(rongQi);
}
}
rqList.add(rongQi);
}
// 使用 Comparator 进行排序
Collections.sort(rqList, new Comparator<RongQi>() {
@ -299,88 +297,116 @@ public class RongQiController {
return r1.getRqh().compareTo(r2.getRqh());
}
});
Collections.sort(rqeList, new Comparator<RongQi>() {
@Override
public int compare(RongQi r1, RongQi r2) {
return r1.getRqh().compareTo(r2.getRqh());
}
});
JSONObject jsonF=new JSONObject();
jsonF.accumulate("rqList", rqList);
jsonF.accumulate("rqeList", rqeList);
jsonF.accumulate("rqLtList", rqLtList);
for (int i = 0; i < rqMzList.size(); i++) {
double j=0;
RongQiMz rongQiMz=rqMzList.get(i);//工作站料箱数
if (rongQiMz.getG201().getLxCount()!=0){
j=j+1;
rongQiMz.getG201().setMz(Math.round(rongQiMz.getG201().getTaskCount()/rongQiMz.getG201().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG201().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG201().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG201().getLxCount());
}
if (rongQiMz.getG202().getLxCount()!=0) {
j=j+1;
rongQiMz.getG202().setMz(Math.round(rongQiMz.getG202().getTaskCount() / rongQiMz.getG202().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG202().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG202().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG202().getLxCount());
}
if (rongQiMz.getG203().getLxCount()!=0) {
j=j+1;
rongQiMz.getG203().setMz(Math.round(rongQiMz.getG203().getTaskCount() / rongQiMz.getG203().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG201().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG203().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG203().getLxCount());
}
if (rongQiMz.getG204().getLxCount()!=0) {
j=j+1;
rongQiMz.getG204().setMz(Math.round(rongQiMz.getG204().getTaskCount() / rongQiMz.getG204().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG201().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG204().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG204().getLxCount());
}
if (rongQiMz.getG205().getLxCount()!=0) {
j=j+1;
rongQiMz.getG205().setMz(Math.round(rongQiMz.getG205().getTaskCount() / rongQiMz.getG205().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG205().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG205().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG205().getLxCount());
}
if (rongQiMz.getG206().getLxCount()!=0) {
j=j+1;
rongQiMz.getG206().setMz(Math.round(rongQiMz.getG206().getTaskCount() / rongQiMz.getG206().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG206().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG206().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG206().getLxCount());
}
if (rongQiMz.getG207().getLxCount()!=0) {
j=j+1;
rongQiMz.getG207().setMz(Math.round(rongQiMz.getG207().getTaskCount() / rongQiMz.getG207().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG207().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG207().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG207().getLxCount());
}
if (rongQiMz.getG208().getLxCount()!=0) {
j=j+1;
rongQiMz.getG208().setMz(Math.round(rongQiMz.getG208().getTaskCount() / rongQiMz.getG208().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG208().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG208().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG208().getLxCount());
}
if (rongQiMz.getG209().getLxCount()!=0) {
j=j+1;
rongQiMz.getG209().setMz(Math.round(rongQiMz.getG209().getTaskCount() / rongQiMz.getG209().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG209().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG209().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG209().getLxCount());
}
if (rongQiMz.getG210().getLxCount()!=0) {
j=j+1;
rongQiMz.getG210().setMz(Math.round(rongQiMz.getG210().getTaskCount() / rongQiMz.getG210().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG210().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG210().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG210().getLxCount());
}
if (rongQiMz.getG211().getLxCount()!=0) {
j=j+1;
rongQiMz.getG211().setMz(Math.round(rongQiMz.getG211().getTaskCount() / rongQiMz.getG211().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG211().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG211().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG211().getLxCount());
}
if (rongQiMz.getG212().getLxCount()!=0) {
j=j+1;
rongQiMz.getG212().setMz(Math.round(rongQiMz.getG212().getTaskCount() / rongQiMz.getG212().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG212().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG212().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG212().getLxCount());
}
if (rongQiMz.getG213().getLxCount()!=0) {
j=j+1;
rongQiMz.getG213().setMz(Math.round(rongQiMz.getG213().getTaskCount() / rongQiMz.getG213().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG213().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG213().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG213().getLxCount());
}
if (rongQiMz.getG214().getLxCount()!=0) {
j=j+1;
rongQiMz.getG214().setMz(Math.round(rongQiMz.getG214().getTaskCount() / rongQiMz.getG214().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG214().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG214().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG214().getLxCount());
}
if (rongQiMz.getG215().getLxCount()!=0) {
j=j+1;
rongQiMz.getG215().setMz(Math.round(rongQiMz.getG215().getTaskCount() / rongQiMz.getG215().getLxCount() * 100) / 100.0);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG215().getMz());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+1);
rongQiMz.getTotal().setTaskCount(rongQiMz.getTotal().getTaskCount()+rongQiMz.getG215().getTaskCount());
rongQiMz.getTotal().setLxCount(rongQiMz.getTotal().getLxCount()+rongQiMz.getG215().getLxCount());
}
if (rongQiMz.getTotal().getLxCount()!=0) {
rongQiMz.getTotal().setMz(Math.round(rongQiMz.getTotal().getTaskCount() / rongQiMz.getTotal().getLxCount() * 100) / 100.0);
double mz=rongQiMz.getG201().getMz()+rongQiMz.getG202().getMz()+rongQiMz.getG203().getMz()+rongQiMz.getG204().getMz() +rongQiMz.getG205().getMz()
+rongQiMz.getG206().getMz()+rongQiMz.getG207().getMz()+rongQiMz.getG208().getMz()+rongQiMz.getG209().getMz()+rongQiMz.getG210().getMz()
+rongQiMz.getG211().getMz()+rongQiMz.getG212().getMz()+rongQiMz.getG213().getMz()+rongQiMz.getG214().getMz()+rongQiMz.getG215().getMz();
/** 计算所有工作站命中率不为0的平均数*/
rongQiMz.getTotal().setMz(Math.round(mz / j * 100) / 100.0);
}
}
jsonF.accumulate("rqMzList", rqMzList);
@ -429,6 +455,7 @@ class RongQi implements Serializable{
private int g213=0;
private int g214=0;
private int g215=0;
private int count=0;
}
@Data
@Entity

View File

@ -1,6 +1,6 @@
server:
address: 0.0.0.0
port: 8084
port: 8083
# url: jdbc:sqlserver://47.100.54.81:1433;DatabaseName=zwwms
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
# username: super