This commit is contained in:
ICEC 2020-07-17 11:03:06 +08:00
parent 53dc52e9c8
commit 614ac98b65
27 changed files with 7649 additions and 65 deletions

View File

@ -0,0 +1,25 @@
import request from '@/utils/request'
// 查询服务器详细
export function getChangeMouldTimeList() {
return request({
url: '/sd_changemouldtime/list',
method: 'get'
})
}
export function getDateRangeChangeMouldTime(fDateStart, fDateEnd) {
return request({
url: '/sd_changemouldtime/rangetimeavg/' + fDateStart + '/' + fDateEnd,
method: 'get'
})
}
export function DoGetChangeMouldTimeListDateRange(fDateStart, fDateEnd) {
return request({
url: '/sd_changemouldtime/DoGetChangeMouldTimeListDateRange/' + fDateStart + '/' + fDateEnd,
method: 'get'
})
}

View File

@ -0,0 +1,38 @@
import request from '@/utils/request'
// 查询服务器详细
export function getDashboardGroup() {
return request({
url: '/sd_dashboard/group',
method: 'get'
})
}
export function getLastDay() {
return request({
url: '/sd_dashboard/lastday',
method: 'get'
})
}
export function get30Day() {
return request({
url: '/sd_dashboard/30day',
method: 'get'
})
}
export function getcurrent() {
return request({
url: '/sd_dashboard/current',
method: 'get'
})
}
export function getDateRange(fDateStart,fDateEnd) {
return request({
url: '/sd_dashboard/daterange/'+fDateStart+'/'+fDateEnd,
method: 'get'
})
}

View File

@ -0,0 +1,29 @@
import request from '@/utils/request'
// 查询服务器详细
export function getDensity30Day() {
return request({
url: '/sd_density/30day',
method: 'get'
})
}
export function getDensity72h() {
return request({
url: '/sd_density/72h',
method: 'get'
})
}
export function getDensityGroup() {
return request({
url: '/sd_density/group',
method: 'get'
})
}
export function getDensityDataRange(fDateStart,fDateEnd) {
return request({
url: '/sd_density/getDensityDataRange/'+fDateStart+'/'+fDateEnd,
method: 'get'
})
}

View File

@ -0,0 +1,108 @@
import request from '@/utils/request'
// 查询服务器详细
export function getConfirmation() {
return request({
url: '/fx_technologist/getConfirmation',
method: 'get'
})
}
export function getBestODM() {
return request({
url: '/fx_technologist/getBestODM',
method: 'get'
})
}
export function getBestOEM() {
return request({
url: '/fx_technologist/getBestOEM',
method: 'get'
})
}
export function getFinishedSampleAvgDay() {
return request({
url: '/fx_technologist/getFinishedSampleAvgDay',
method: 'get'
})
}
export function getUnFinishedSampleAvgDay() {
return request({
url: '/fx_technologist/getUnFinishedSampleAvgDay',
method: 'get'
})
}
export function DayFinishedSampleOrder() {
return request({
url: '/fx_technologist/DayFinishedSampleOrder',
method: 'get'
})
}
export function DayNewMould() {
return request({
url: '/fx_technologist/DayNewMould',
method: 'get'
})
}
export function DayFinishedSample() {
return request({
url: '/fx_technologist/DayFinishedSample',
method: 'get'
})
}
export function DayFinishedBOM() {
return request({
url: '/fx_technologist/DayFinishedBOM',
method: 'get'
})
}
export function ALL() {
return request({
url: '/fx_technologist/All',
method: 'get'
})
}
export function AllDataDataRange(fDateStart,fDateEnd) {
return request({
url: '/fx_technologist/AllDataDataRange/'+fDateStart+'/'+fDateEnd,
method: 'get'
})
}
export function getBestHunsha() {
return request({
url: '/fx_technologist/getBestHunsha',
method: 'get'
})
}
export function getBestJiancai() {
return request({
url: '/fx_technologist/getBestJiancai',
method: 'get'
})
}
export function getBestHuakuang() {
return request({
url: '/fx_technologist/getBestHuakuang',
method: 'get'
})
}

View File

@ -1,64 +1,64 @@
import router from './router'
import store from './store'
import { Message } from 'element-ui'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import { getToken } from '@/utils/auth'
NProgress.configure({ showSpinner: false })
const whiteList = ['/login', '/auth-redirect', '/bind', '/register']
router.beforeEach((to, from, next) => {
NProgress.start()
if (getToken()) {
/* has token*/
if (to.path === '/login') {
next({ path: '/' })
NProgress.done()
} else {
if (store.getters.roles.length === 0) {
// 判断当前用户是否已拉取完user_info信息
store.dispatch('GetInfo').then(res => {
// 拉取user_info
const roles = res.roles
store.dispatch('GenerateRoutes', { roles }).then(accessRoutes => {
// 测试 默认静态页面
// store.dispatch('permission/generateRoutes', { roles }).then(accessRoutes => {
// 根据roles权限生成可访问的路由表
router.addRoutes(accessRoutes) // 动态添加可访问路由表
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
})
})
.catch(err => {
store.dispatch('FedLogOut').then(() => {
Message.error(err)
next({ path: '/' })
})
})
} else {
next()
// 没有动态改变权限的需求可直接next() 删除下方权限判断 ↓
// if (hasPermission(store.getters.roles, to.meta.roles)) {
// next()
// } else {
// next({ path: '/401', replace: true, query: { noGoBack: true }})
// }
// 可删 ↑
}
}
} else {
// 没有token
if (whiteList.indexOf(to.path) !== -1) {
// 在免登录白名单,直接进入
next()
} else {
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
NProgress.done()
}
}
})
router.afterEach(() => {
NProgress.done()
})
import router from './router'
import store from './store'
import { Message } from 'element-ui'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import { getToken } from '@/utils/auth'
NProgress.configure({ showSpinner: false })
const whiteList = ['/login', '/auth-redirect', '/bind', '/register']
router.beforeEach((to, from, next) => {
NProgress.start()
if (getToken()) {
/* has token*/
if (to.path === '/login') {
next({ path: '/' })
NProgress.done()
} else {
if (store.getters.roles.length === 0) {
// 判断当前用户是否已拉取完user_info信息
store.dispatch('GetInfo').then(res => {
// 拉取user_info
const roles = res.roles
store.dispatch('GenerateRoutes', { roles }).then(accessRoutes => {
// 测试 默认静态页面
// store.dispatch('permission/generateRoutes', { roles }).then(accessRoutes => {
// 根据roles权限生成可访问的路由表
router.addRoutes(accessRoutes) // 动态添加可访问路由表
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
})
})
.catch(err => {
store.dispatch('FedLogOut').then(() => {
Message.error(err)
next({ path: '/' })
})
})
} else {
next()
// 没有动态改变权限的需求可直接next() 删除下方权限判断 ↓
// if (hasPermission(store.getters.roles, to.meta.roles)) {
// next()
// } else {
// next({ path: '/401', replace: true, query: { noGoBack: true }})
// }
// 可删 ↑
}
}
} else {
// 没有token
if (whiteList.indexOf(to.path) !== -1) {
// 在免登录白名单,直接进入
next()
} else {
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
NProgress.done()
}
}
})
router.afterEach(() => {
NProgress.done()
})

View File

@ -0,0 +1,758 @@
<template>
<div class="dashboard-editor-container">
<el-row :gutter="32">
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_zhengpin_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">正品率</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_change_moulding_time" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均换模时间</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_density" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均密度</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_energy_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">产能达标率</h2>
</div>
</el-col>
</el-row>
<el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
<div class="ibox ">
<div class="ibox-title">
<h5>产线明细 </h5>
</div>
<div class="ibox-content">
<el-table
:data="tableData"
stripe
border
style="width: 100%">
<el-table-column
prop="Line"
label="线号"
width="50">
</el-table-column>
<el-table-column
prop="ChangeMould"
label="是否换模中">
<template scope="scope">
<span v-if="scope.row.ChangeMould" style="color:red">换模中</span>
<span v-else style="color: #37B328"></span>
</template>
</el-table-column>
<el-table-column
prop="SoCode"
label="订单号">
</el-table-column>
<el-table-column
prop="MouldingStyleCode"
label="框型">
</el-table-column>
<el-table-column
prop="FinishedQuantity"
label="完成箱数">
</el-table-column>
<el-table-column
prop="Quantity"
label="订单箱数">
</el-table-column>
<el-table-column
prop="NormalCapacity"
label="标准产能">
</el-table-column>
<el-table-column
prop="currentspeed"
label="牵引产能">
</el-table-column>
<el-table-column
prop="CapacityStandardObtainedRate"
label="产能达标率">
</el-table-column>
<el-table-column
prop="CurrentYield"
label="当班正品率">
</el-table-column>
<el-table-column
prop="ChangeMouldTime"
label="换模用时">
</el-table-column>
<el-table-column
prop="Person"
label="人员">
</el-table-column>
<el-table-column
prop="LastUpdateDate"
label="最后操作时间">
</el-table-column>
</el-table>
</div>
</div>
</el-row>
</div>
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from '../dashboard/mixins/resize'
import {getcurrent} from '@/api/dashboard/fxdashboard'
let lineChartData = {
xAxisData: [],
actualData: []
}
export default {
mixins: [resize],
name: 'density30day',
data() {
return {
tableData: []
}
},
created() {
this.getData()
},
mounted() {
},
methods: {
getData() {
getcurrent().then(response => {
console.log(response);
var j,k;
var avg_zhengpin_avg = 0;
var avg_density = 0;
var avg_energy_avg = 0;
var avg_chang_moulding_time = 0;
var sum_quantity = 0;
var sum_currentfinishedquantity = 0;
j = 0;
k = 0;
var data_ajax = JSON.parse(response.msg);
response.data = data_ajax;
for (var i = 0; i < response.data.length; i++) {
lineChartData.xAxisData.push((response.data[i].time + '').replace(' 00:00:00.0', ''))
lineChartData.actualData.push(parseFloat(response.data[i].density).toFixed(4))
this.tableData.push({
ChangeMould: response.data[i].ChangeMould,
Line: response.data[i].Line,
MouldingStyleCode: response.data[i].MouldingStyleCode,
FinishedQuantity: response.data[i].FinishedQuantity,
GroupProcessTime: (response.data[i].GroupTime * 1) - (response.data[i].GroupChangeMouldTime * 1),
NormalCapacity: response.data[i].NormalCapacity * 2,
currentspeed: (response.data[i].Speed * 60 * 60 * 24).toFixed(0),
CapacityStandardObtainedRate: (response.data[i].CapacityStandardObtainedRate * 100).toFixed(2) + '%',
CurrentYield: (response.data[i].CurrentYield * 100).toFixed(2) + '%',
SoCode: response.data[i].SoCode,
ChangeMouldTime: response.data[i].ChangeMouldTime,
Person: response.data[i].OperatePersonName,
Quantity: response.data[i].Quantity,
LastUpdateDate: response.data[i].LastUpdateDate
})
if (data_ajax[i].ChangeMouldTime !== 0) {
avg_chang_moulding_time = avg_chang_moulding_time + (data_ajax[i].ChangeMouldTime) * 1;
j = j + 1;
}
if (data_ajax[i].CurrentYield <= 1.2 && data_ajax[i].CurrentYield !== 0 && data_ajax[i].CurrentYield >= 0.3) {
avg_zhengpin_avg = avg_zhengpin_avg + (data_ajax[i].CurrentYield) * 1;
k = k + 1;
}
avg_density = parseFloat(avg_density) + parseFloat(data_ajax[i].AvgDensity);
avg_energy_avg = avg_energy_avg + (data_ajax[i].CapacityStandardObtainedRate );
sum_quantity = 2000;
sum_currentfinishedquantity = sum_currentfinishedquantity + (data_ajax[i].FinishedQuantity) * 1;
}
const chart_energy_avg = echarts.init(document.getElementById("chart_energy_avg"));
const chart_zhengpin_avg = echarts.init(document.getElementById("chart_zhengpin_avg"));
const chart_density = echarts.init(document.getElementById("chart_density"));
const chart_change_moulding_time = echarts.init(document.getElementById("chart_change_moulding_time"));
option_zhengpin_avg.series[0].data[0].value = (avg_zhengpin_avg / k * 100).toFixed(0);
chart_zhengpin_avg.setOption(option_zhengpin_avg, true);
option_density.series[0].data[0].value = (avg_density / data_ajax.length).toFixed(3);
chart_density.setOption(option_density, true);
option_change_moulding_time.series[0].data[0].value = (avg_chang_moulding_time / j).toFixed(0);
chart_change_moulding_time.setOption(option_change_moulding_time, true);
option_energy_avg.series[0].data[0].value = (avg_energy_avg / data_ajax.length * 100).toFixed(0);
chart_energy_avg.setOption(option_energy_avg, true);
})
}
}
}
var colorTemplate_energy_avg = [//50-85 85-100 100-120
[0.5, "rgba(255,0,0,0.8)"],
[5 / 7, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_zhengpin_avg = [//50-75 75-85 85-100
[6 / 10, "rgba(255,0,0,0.8)"],
[7 / 10, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_density = [//0.4-0.42 0.4-0.38 0.38-0.36
[1 / 3, "rgba(0,200,250,0.8)"],
[2 / 3, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var colorTemplate_change_moulding_time = [ //30-70 70-90 绿 90-120
[4 / 9, "rgba(0,200,250,0.8)"],
[6 / 9, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var data_energy_avg = [{
// name: "",
value: 50,
}];
var data_zhengpin_avg = [{
// name: "",
value: 0,
}];
var data_density = [{
// name: "",
value: 0,
}];
var data_change_moulding_time = [{
// name: "",
value: 0,
}];
//
var option_energy_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 7, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_energy_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_energy_avg
}]
};
//
var option_zhengpin_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 100, // , 100 maxAngle
splitNumber: 5, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_zhengpin_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_zhengpin_avg
}]
};
//
var option_density = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{c}",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 0.36, // , 0 minAngle
max: 0.42, // , 100 maxAngle
splitNumber: 6, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_density, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_density
}]
};
//
var option_change_moulding_time = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 30, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 9, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_change_moulding_time, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_change_moulding_time
}]
};
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width: 1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style>

View File

@ -0,0 +1,718 @@
<template>
<div class="dashboard-editor-container">
<el-row :gutter="32">
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_zhengpin_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">正品率</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_change_moulding_time" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均换模时间</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_density" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均密度</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_energy_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">产能达标率</h2>
</div>
</el-col>
</el-row>
<el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
<div class="ibox ">
<div class="ibox-title">
<h5>产线明细 </h5>
</div>
<div class="ibox-content">
<el-table
:data="tableData"
stripe
border
style="width: 100%">
<el-table-column
prop="line"
label="线号"
width="100">
</el-table-column>
<el-table-column
prop="Moulds"
label="换膜次数">
</el-table-column>
<el-table-column
prop="sumbox"
label="完成箱数">
</el-table-column>
<el-table-column
prop="avg_currentcapacity"
label="平均实际产能">
</el-table-column>
<el-table-column
prop="avg_normalcapacity"
label="平均标准产能">
</el-table-column>
<el-table-column
prop="capacityrate"
label="产能达标率">
</el-table-column>
<el-table-column
prop="yieldrate"
label="正品达标率">
</el-table-column>
<el-table-column
prop="avg_density"
label="平均密度">
</el-table-column>
</el-table>
</div>
</div>
</el-row>
</div>
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from '../dashboard/mixins/resize'
import {get30Day} from '@/api/sd_dashboard/sd_dashboard'
const lineChartData = {
xAxisData: [],
actualData: []
}
export default {
mixins: [resize],
name: 'density30day',
data() {
return {
tableData: []
}
},
created() {
this.getData()
},
mounted() {
},
methods: {
getData() {
get30Day().then(response => {
var j;
var avg_zhengpin_avg = 0;
var avg_density = 0;
var avg_energy_avg = 0;
var avg_chang_moulding_time = 0;
var sum_quantity = 0;
var sum_currentfinishedquantity = 0;
j = 0;
var data_ajax = response.data;
for (var i = 0; i < response.data.length; i++) {
lineChartData.xAxisData.push((response.data[i].time + '').replace(' 00:00:00.0', ''))
lineChartData.actualData.push(parseFloat(response.data[i].density).toFixed(4))
this.tableData.push({
line: response.data[i].line,
Moulds: ((response.data[i].Moulds.split('/')).length - 1),
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),
capacityrate: (response.data[i].avg_currentcapacity / response.data[i].avg_normalcapacity * response.data[i].sum_box_meter / response.data[i].sum_device_meter * 100).toFixed(2) + "%",
yieldrate: (response.data[i].sum_box_meter / response.data[i].sum_device_meter * 100).toFixed(2) + "%",
avg_density: (response.data[i].avg_density * 1).toFixed(4),
lastchangemouldtime: (response.data[i].lastchangemouldtime),
})
if (data_ajax[i].lastchangemouldtime !== 0) {
avg_chang_moulding_time = avg_chang_moulding_time + (data_ajax[i].lastchangemouldtime) * 1;
j = j + 1;
}
avg_density = parseFloat(avg_density) + parseFloat(data_ajax[i].avg_density);
avg_energy_avg = avg_energy_avg + (data_ajax[i].avg_currentcapacity / data_ajax[i].avg_normalcapacity);
avg_zhengpin_avg = avg_zhengpin_avg + (data_ajax[i].sum_box_meter / data_ajax[i].sum_device_meter);
sum_quantity = 2000;
sum_currentfinishedquantity = sum_currentfinishedquantity + (data_ajax[i].sumbox) * 1;
}
const chart_energy_avg = echarts.init(document.getElementById("chart_energy_avg"));
const chart_zhengpin_avg = echarts.init(document.getElementById("chart_zhengpin_avg"));
const chart_density = echarts.init(document.getElementById("chart_density"));
const chart_change_moulding_time = echarts.init(document.getElementById("chart_change_moulding_time"));
//
option_zhengpin_avg.series[0].data[0].value = (avg_zhengpin_avg / data_ajax.length * 100).toFixed(0);
chart_zhengpin_avg.setOption(option_zhengpin_avg, true);
option_density.series[0].data[0].value = (avg_density / data_ajax.length).toFixed(3);
chart_density.setOption(option_density, true);
//option_change_moulding_time.series[0].data[0].value = (avg_chang_moulding_time / data_ajax.length).toFixed(0);
option_change_moulding_time.series[0].data[0].value = 0 ;
chart_change_moulding_time.setOption(option_change_moulding_time, true);
option_energy_avg.series[0].data[0].value = (avg_energy_avg / data_ajax.length * avg_zhengpin_avg / data_ajax.length * 100).toFixed(0);
chart_energy_avg.setOption(option_energy_avg, true);
})
}
}
}
var colorTemplate_energy_avg = [//50-85 85-100 100-120
[0.5, "rgba(255,0,0,0.8)"],
[5 / 7, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_zhengpin_avg = [//50-75 75-85 85-100
[6 / 10, "rgba(255,0,0,0.8)"],
[7 / 10, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_density = [//0.4-0.42 0.4-0.38 0.38-0.36
[1 / 3, "rgba(0,200,250,0.8)"],
[2 / 3, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var colorTemplate_change_moulding_time = [ //30-70 70-90 绿 90-120
[4 / 9, "rgba(0,200,250,0.8)"],
[6 / 9, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var data_energy_avg = [{
// name: "",
value: 50,
}];
var data_zhengpin_avg = [{
// name: "",
value: 0,
}];
var data_density = [{
// name: "",
value: 0,
}];
var data_change_moulding_time = [{
// name: "",
value: 0,
}];
//
var option_energy_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 7, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_energy_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_energy_avg
}]
};
//
var option_zhengpin_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 100, // , 100 maxAngle
splitNumber: 5, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_zhengpin_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_zhengpin_avg
}]
};
//
var option_density = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{c}",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 0.36, // , 0 minAngle
max: 0.42, // , 100 maxAngle
splitNumber: 6, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_density, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_density
}]
};
//
var option_change_moulding_time = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 30, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 9, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_change_moulding_time, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_change_moulding_time
}]
};
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width: 1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style>

View File

@ -0,0 +1,804 @@
<template>
<div class="dashboard-editor-container">
<!-- <el-row :gutter="32">-->
<!-- <el-col :xs="24" :sm="12" :lg="12" style="height: 170px">-->
<!-- <table class="ibox" style="font-size:24px;width: 100%;margin-top: 50px" >-->
<!-- <tbody>-->
<!-- <tr>-->
<!-- &lt;!&ndash; <td>-->
<!-- <strong>日期</strong> <i id="groupdate"></i>-->
<!-- </td> &ndash;&gt;-->
<!-- <td id="groupdate">-->
<!-- </td>-->
<!-- <td>-->
<!-- <strong>班次</strong> 白班-->
<!-- </td>-->
<!-- <tr>-->
<!-- </tr>-->
<!-- <td>-->
<!-- <strong>班组</strong> -->
<!-- </td>-->
<!-- <td>-->
<!-- <strong>开线数量</strong> <i id="line_open_numbers">31/32</i>-->
<!-- </td>-->
<!-- </tbody>-->
<!-- </table>-->
<!-- &lt;!&ndash;右上角 生产进度 &ndash;&gt;-->
<!-- </el-col>-->
<!-- <el-col :xs="24" :sm="12" :lg="12">-->
<!-- <div class="ibox">-->
<!-- <div class="m-b-xs">-->
<!-- <h5 style="font-size:20px;">生产进度</h5>-->
<!-- <h2 id=shengchanjindu>65%</h2>-->
<!-- <div id=finishedbox class="m-t-sm small">当班已完成: 1200/2500 ()</div>-->
<!-- <el-progress id="shengchanjinduavg" :percentage="56" :format="format"></el-progress>-->
<!-- </div>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row :gutter="32">
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_zhengpin_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">正品率</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_change_moulding_time" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均换模时间</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_density" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均密度</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_energy_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">产能达标率</h2>
</div>
</el-col>
</el-row>
<el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
<div class="ibox ">
<div class="ibox-title">
<h5>产线明细 </h5>
</div>
<div class="ibox-content">
<el-table
:data="tableData"
stripe
border
style="width: 100%">
<el-table-column
prop="Line"
label="线号"
width="50">
</el-table-column>
<el-table-column
prop="ChangeMould"
label="是否换模中">
<template scope="scope">
<span v-if="scope.row.ChangeMould" style="color:red">换模中</span>
<span v-else style="color: #37B328"></span>
</template>
</el-table-column>
<el-table-column
prop="SoCode"
label="订单号">
</el-table-column>
<el-table-column
prop="MouldingStyleCode"
label="框型">
</el-table-column>
<el-table-column
prop="FinishedQuantity"
label="完成箱数">
</el-table-column>
<el-table-column
prop="Quantity"
label="订单箱数">
</el-table-column>
<el-table-column
prop="NormalCapacity"
label="标准产能">
</el-table-column>
<el-table-column
prop="currentspeed"
label="牵引产能">
</el-table-column>
<el-table-column
prop="CapacityStandardObtainedRate"
label="产能达标率">
</el-table-column>
<el-table-column
prop="CurrentYield"
label="当班正品率">
</el-table-column>
<el-table-column
prop="ChangeMouldTime"
label="换模用时">
</el-table-column>
<el-table-column
prop="Person"
label="人员">
</el-table-column>
<el-table-column
prop="LastUpdateDate"
label="最后操作时间">
</el-table-column>
</el-table>
</div>
</div>
</el-row>
</div>
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from '../dashboard/mixins/resize'
import {getcurrent} from '@/api/sd_dashboard/sd_dashboard'
let lineChartData = {
xAxisData: [],
actualData: []
}
export default {
mixins: [resize],
name: 'sd_dashboard',
data() {
return {
tableData: []
}
},
created() {
this.getData()
},
mounted() {
},
methods: {
getData() {
getcurrent().then(response => {
console.log(response);
var j,k;
var avg_zhengpin_avg = 0;
var avg_density = 0;
var avg_energy_avg = 0;
var avg_chang_moulding_time = 0;
var sum_quantity = 0;
var sum_currentfinishedquantity = 0;
j = 0;
k = 0;
var data_ajax = JSON.parse(response.msg);
response.data = data_ajax;
for (var i = 0; i < response.data.length; i++) {
lineChartData.xAxisData.push((response.data[i].time + '').replace(' 00:00:00.0', ''))
lineChartData.actualData.push(parseFloat(response.data[i].density).toFixed(4))
this.tableData.push({
ChangeMould: response.data[i].ChangeMould,
Line: response.data[i].Line,
MouldingStyleCode: response.data[i].MouldingStyleCode,
FinishedQuantity: response.data[i].FinishedQuantity,
GroupProcessTime: (response.data[i].GroupTime * 1) - (response.data[i].GroupChangeMouldTime * 1),
NormalCapacity: response.data[i].NormalCapacity * 2,
currentspeed: (response.data[i].Speed * 60 * 60 * 24).toFixed(0),
CapacityStandardObtainedRate: (response.data[i].CapacityStandardObtainedRate * 100).toFixed(2) + '%',
CurrentYield: (response.data[i].CurrentYield * 100).toFixed(2) + '%',
SoCode: response.data[i].SoCode,
ChangeMouldTime: response.data[i].ChangeMouldTime,
Person: response.data[i].OperatePersonName,
Quantity: response.data[i].Quantity,
LastUpdateDate: response.data[i].LastUpdateDate
})
if (data_ajax[i].ChangeMouldTime !== 0) {
avg_chang_moulding_time = avg_chang_moulding_time + (data_ajax[i].ChangeMouldTime) * 1;
j = j + 1;
}
if (data_ajax[i].CurrentYield <= 1.2 && data_ajax[i].CurrentYield !== 0 && data_ajax[i].CurrentYield >= 0.3) {
avg_zhengpin_avg = avg_zhengpin_avg + (data_ajax[i].CurrentYield) * 1;
k = k + 1;
}
avg_density = parseFloat(avg_density) + parseFloat(data_ajax[i].AvgDensity);
avg_energy_avg = avg_energy_avg + (data_ajax[i].CapacityStandardObtainedRate );
sum_quantity = 2000;
sum_currentfinishedquantity = sum_currentfinishedquantity + (data_ajax[i].FinishedQuantity) * 1;
}
const chart_energy_avg = echarts.init(document.getElementById("chart_energy_avg"));
const chart_zhengpin_avg = echarts.init(document.getElementById("chart_zhengpin_avg"));
const chart_density = echarts.init(document.getElementById("chart_density"));
const chart_change_moulding_time = echarts.init(document.getElementById("chart_change_moulding_time"));
option_zhengpin_avg.series[0].data[0].value = (avg_zhengpin_avg / k * 100).toFixed(0);
chart_zhengpin_avg.setOption(option_zhengpin_avg, true);
option_density.series[0].data[0].value = (avg_density / data_ajax.length).toFixed(3);
chart_density.setOption(option_density, true);
option_change_moulding_time.series[0].data[0].value = (avg_chang_moulding_time / j).toFixed(0);
chart_change_moulding_time.setOption(option_change_moulding_time, true);
option_energy_avg.series[0].data[0].value = (avg_energy_avg / data_ajax.length * 100).toFixed(0);
chart_energy_avg.setOption(option_energy_avg, true);
})
}
}
}
var colorTemplate_energy_avg = [//50-85 85-100 100-120
[0.5, "rgba(255,0,0,0.8)"],
[5 / 7, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_zhengpin_avg = [//50-75 75-85 85-100
[6 / 10, "rgba(255,0,0,0.8)"],
[7 / 10, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_density = [//0.4-0.42 0.4-0.38 0.38-0.36
[1 / 3, "rgba(0,200,250,0.8)"],
[2 / 3, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var colorTemplate_change_moulding_time = [ //30-70 70-90 绿 90-120
[4 / 9, "rgba(0,200,250,0.8)"],
[6 / 9, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var data_energy_avg = [{
// name: "",
value: 50,
}];
var data_zhengpin_avg = [{
// name: "",
value: 0,
}];
var data_density = [{
// name: "",
value: 0,
}];
var data_change_moulding_time = [{
// name: "",
value: 0,
}];
//
var option_energy_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 7, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_energy_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_energy_avg
}]
};
//
var option_zhengpin_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 100, // , 100 maxAngle
splitNumber: 5, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_zhengpin_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_zhengpin_avg
}]
};
//
var option_density = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{c}",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 0.36, // , 0 minAngle
max: 0.42, // , 100 maxAngle
splitNumber: 6, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_density, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_density
}]
};
//
var option_change_moulding_time = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 30, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 9, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_change_moulding_time, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_change_moulding_time
}]
};
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width: 1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style>

View File

@ -0,0 +1,952 @@
<template>
<div class="dashboard-editor-container">
<div class="ibox-title">
<el-row :gutter="32">
<el-col :xs="24" :sm="24" :lg="24">
<b>选择时间范围</b>
<el-date-picker
v-model="daterange_time1"
align="right"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
:picker-options="pickerOptions">
</el-date-picker>
<el-select style="width: 90px" v-model="daterange_group_value1" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<b>--</b>
<el-date-picker
v-model="daterange_time2"
align="right"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
:picker-options="pickerOptions">
</el-date-picker>
<el-select style="width: 90px" v-model="daterange_group_value2" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-button @click="getData" type="primary">查询</el-button>
<el-button @click="exportExcel" type="primary">导出明细</el-button>
</el-col>
</el-row>
</div>
<el-row :gutter="32">
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_zhengpin_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">正品率</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_change_moulding_time" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均换模时间</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_density" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均密度</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_energy_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">产能达标率</h2>
</div>
</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="exportTableData2"
:data="tableData"
stripe
border
style="width: 100%">
<el-table-column
prop="line"
label="线号"
width="100">
</el-table-column>
<el-table-column
prop="Moulds"
label="模具">
</el-table-column>
<el-table-column
prop="sumbox"
label="完成箱数">
</el-table-column>
<el-table-column
prop="avg_currentcapacity"
label="平均实际产能">
</el-table-column>
<el-table-column
prop="avg_normalcapacity"
label="平均标准产能">
</el-table-column>
<el-table-column
prop="capacityrate"
label="产能达标率">
</el-table-column>
<el-table-column
prop="yieldrate"
label="正品率">
</el-table-column>
<el-table-column
prop="avg_density"
label="平均密度">
</el-table-column>
</el-table>
</div>
</el-row>
</div>
</template>
<script>
import echarts from 'echarts'
import FileSaver from 'file-saver'
import XLSX from 'xlsx'
require('echarts/theme/macarons') // echarts theme
import resize from '../dashboard/mixins/resize'
import {getDateRange} from '@/api/sd_dashboard/sd_dashboard'
import {getDateRangeChangeMouldTime} from '@/api/sd_dashboard/sd_changemouldtime'
const lineChartData = {
xAxisData: [],
actualData: []
}
export default {
mixins: [resize],
name: 'density30day',
data() {
return {
tableData: [],
tableDataSum: [],
tableDataSum2: [],
options: [{
value: '08:00:01',
label: '08:00'
}, {
value: '20:00:00',
label: '20:00'
}],
daterange_group_value1: [],
daterange_group_value2: [],
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
shortcuts: [{
text: '今天',
onClick(picker) {
picker.$emit('pick', new Date());
}
}, {
text: '昨天',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', date);
}
}, {
text: '一周前',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', date);
}
}]
},
daterange_time1: '',
daterange_time2: '',
}
},
created() {
this.daterange_group_value1 = "08:00:01"
this.daterange_group_value2 = "08:00:01"
this.daterange_time1= '2020-07-16'
this.daterange_time2= '2020-07-16'
},
mounted() {
},
methods: {
getData() {
const fDateStart = this.daterange_time1 + ' ' + this.daterange_group_value1
const fDateEnd = this.daterange_time2 + ' ' + this.daterange_group_value2
this.lineChartData = {
xAxisData: [],
actualData: []
}
this.tableData=[];
this.tableDataSum=[];
this.tableDataSum2=[];
getDateRange(fDateStart,fDateEnd).then(response => {
var j,k,l;
var avg_zhengpin_avg = 0;
var avg_density = 0;
var avg_energy_avg = 0;
var avg_chang_moulding_time = 0;
var sum_quantity = 0;
var sum_currentfinishedquantity = 0;
var line_sum = 0;
j = 0;
k = 0;
l = 0;
var data_ajax = response.data;
for (var i = 0; i < response.data.length; i++) {
lineChartData.xAxisData.push((response.data[i].time + '').replace(' 00:00:00.0', ''))
lineChartData.actualData.push(parseFloat(response.data[i].density).toFixed(4))
this.tableData.push({
line: response.data[i].line,
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),
capacityrate: (response.data[i].avg_currentcapacity / response.data[i].avg_normalcapacity * response.data[i].sum_box_meter / response.data[i].sum_device_meter * 100).toFixed(2) + "%",
yieldrate: (response.data[i].sum_box_meter / response.data[i].sum_device_meter * 100).toFixed(2) + "%",
avg_density: (response.data[i].avg_density * 1).toFixed(4),
lastchangemouldtime: (response.data[i].lastchangemouldtime),
})
if (data_ajax[i].lastchangemouldtime >= 10) {
avg_chang_moulding_time = avg_chang_moulding_time + (data_ajax[i].lastchangemouldtime) * 1;
j = j + 1;
}
if (data_ajax[i].sum_device_meter !== null) {
avg_zhengpin_avg = avg_zhengpin_avg + (data_ajax[i].sum_box_meter / data_ajax[i].sum_device_meter) * 1;
k = k + 1;
}
if (data_ajax[i].avg_currentcapacity !== null) {
avg_energy_avg = avg_energy_avg + (data_ajax[i].avg_currentcapacity / data_ajax[i].avg_normalcapacity);
l = l + 1;
}
avg_density = parseFloat(avg_density) + parseFloat(data_ajax[i].avg_density);
// avg_energy_avg = avg_energy_avg + (data_ajax[i].avg_currentcapacity / data_ajax[i].avg_normalcapacity);
// avg_zhengpin_avg = avg_zhengpin_avg + (data_ajax[i].sum_box_meter / data_ajax[i].sum_device_meter);
sum_quantity = 2000;
sum_currentfinishedquantity = sum_currentfinishedquantity + (data_ajax[i].sumbox) * 1;
}
const chart_energy_avg = echarts.init(document.getElementById("chart_energy_avg"));
const chart_zhengpin_avg = echarts.init(document.getElementById("chart_zhengpin_avg"));
const chart_density = echarts.init(document.getElementById("chart_density"));
const chart_change_moulding_time = echarts.init(document.getElementById("chart_change_moulding_time"));
//
option_zhengpin_avg.series[0].data[0].value = (avg_zhengpin_avg / k * 100).toFixed(0);
chart_zhengpin_avg.setOption(option_zhengpin_avg, true);
option_density.series[0].data[0].value = (avg_density / data_ajax.length).toFixed(3);
chart_density.setOption(option_density, true);
//option_change_moulding_time.series[0].data[0].value = (avg_chang_moulding_time / data_ajax.length).toFixed(0);
// option_change_moulding_time.series[0].data[0].value = 0;
// chart_change_moulding_time.setOption(option_change_moulding_time, true);
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),
})
})
getDateRangeChangeMouldTime(fDateStart,fDateEnd).then(response => {
const chart_change_moulding_time = echarts.init(document.getElementById("chart_change_moulding_time"));
option_change_moulding_time.series[0].data[0].value = (response.data[0].avgchangemouldtime * 1);
chart_change_moulding_time.setOption(option_change_moulding_time, true);
//
this.tableDataSum2.push({
平均换模时间: (response.data[0].avgchangemouldtime * 1),
换模次数: (response.data[0].num * 1),
})
})
},
exportExcel () {
/* generate workbook object from table */
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 {
FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), '车间报表.xlsx');
} catch (e)
{
if (typeof console !== 'undefined')
console.log(e, wbout)
}
return wbout
},
}
}
var colorTemplate_energy_avg = [//50-85 85-100 100-120
[0.5, "rgba(255,0,0,0.8)"],
[5 / 7, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_zhengpin_avg = [//50-75 75-85 85-100
[6 / 10, "rgba(255,0,0,0.8)"],
[7 / 10, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_density = [//0.4-0.42 0.4-0.38 0.38-0.36
[1 / 3, "rgba(0,200,250,0.8)"],
[2 / 3, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var colorTemplate_change_moulding_time = [ //30-70 70-90 绿 90-120
[4 / 9, "rgba(0,200,250,0.8)"],
[6 / 9, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var data_energy_avg = [{
// name: "",
value: 50,
}];
var data_zhengpin_avg = [{
// name: "",
value: 0,
}];
var data_density = [{
// name: "",
value: 0,
}];
var data_change_moulding_time = [{
// name: "",
value: 0,
}];
//
var option_energy_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 7, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_energy_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_energy_avg
}]
};
//
var option_zhengpin_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 100, // , 100 maxAngle
splitNumber: 5, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_zhengpin_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_zhengpin_avg
}]
};
//
var option_density = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{c}",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 0.36, // , 0 minAngle
max: 0.42, // , 100 maxAngle
splitNumber: 6, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_density, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_density
}]
};
//
var option_change_moulding_time = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 30, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 9, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_change_moulding_time, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_change_moulding_time
}]
};
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width: 1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style>

View File

@ -0,0 +1,781 @@
<template>
<div class="dashboard-editor-container">
<el-row :gutter="32">
<el-col :xs="24" :sm="12" :lg="12" style="height: 170px">
<table class="ibox" style="font-size:24px;width: 100%;margin-top: 50px" >
<tbody>
<tr>
<!-- <td>
<strong>日期</strong> <i id="groupdate"></i>
</td> -->
<td id="groupdate">
</td>
<td>
<strong>班次</strong> 白班
</td>
<tr>
</tr>
<td>
<strong>班组</strong> 陈亮
</td>
<td>
<strong>开线数量</strong> <i id="line_open_numbers">31/32</i>
</td>
</tbody>
</table>
<!--右上角 生产进度 -->
</el-col>
<el-col :xs="24" :sm="12" :lg="12">
<div class="ibox">
<div class="m-b-xs">
<h5 style="font-size:20px;">生产进度</h5>
<h2 id=shengchanjindu>65%</h2>
<div id=finishedbox class="m-t-sm small">当班已完成: 1200/2500 ()</div>
<el-progress id="shengchanjinduavg" :percentage="56" :format="format"></el-progress>
</div>
</div>
</el-col>
</el-row>
<el-row :gutter="32">
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_zhengpin_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">正品率</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_change_moulding_time" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均换模时间</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_density" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均密度</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_energy_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">产能达标率</h2>
</div>
</el-col>
</el-row>
<el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
<div class="ibox ">
<div class="ibox-title">
<h5>产线明细 </h5>
</div>
<div class="ibox-content">
<el-table
:data="tableData"
stripe
border
style="width: 100%">
<el-table-column
prop="line"
label="线号"
width="100">
</el-table-column>
<el-table-column
prop="Moulds"
label="量产模具">
</el-table-column>
<el-table-column
prop="FinishedQuantity"
label="完成箱数">
</el-table-column>
<el-table-column
prop="GroupProcessTime"
label="量产用时">
</el-table-column>
<el-table-column
prop="NormalCapacity"
label="标准产能">
</el-table-column>
<el-table-column
prop="currentspeed"
label="牵引产能">
</el-table-column>
<el-table-column
prop="CapacityStandardObtainedRate"
label="产能达标率">
</el-table-column>
<el-table-column
prop="CurrentYield"
label="正品率">
</el-table-column>
<el-table-column
prop="AvgDensity"
label="平均密度">
</el-table-column>
<el-table-column
prop="MouldAndChangeMouldTime"
label="换模型号-用时">
</el-table-column>
<el-table-column
prop="Person"
label="人员">
</el-table-column>
</el-table>
</div>
</div>
</el-row>
</div>
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from '../dashboard/mixins/resize'
import {getDashboardGroup} from '@/api/sd_dashboard/sd_dashboard'
let lineChartData = {
xAxisData: [],
actualData: []
}
export default {
mixins: [resize],
name: 'density30day',
data() {
return {
tableData: []
}
},
created() {
this.getData()
},
mounted() {
},
methods: {
getData() {
getDashboardGroup().then(response => {
var j;
var avg_zhengpin_avg = 0;
var avg_density = 0;
var avg_energy_avg = 0;
var avg_chang_moulding_time = 0;
var sum_quantity = 0;
var sum_currentfinishedquantity = 0;
j = 0;
var data_ajax = response.data;
for (var i = 0; i < response.data.length; i++) {
lineChartData.xAxisData.push((response.data[i].time + '').replace(' 00:00:00.0', ''))
lineChartData.actualData.push(parseFloat(response.data[i].density).toFixed(4))
this.tableData.push({
line: response.data[i].line,
Moulds: response.data[i].Moulds,
FinishedQuantity: response.data[i].FinishedQuantity,
GroupProcessTime: (response.data[i].GroupTime * 1) - (response.data[i].GroupChangeMouldTime * 1),
NormalCapacity: response.data[i].NormalCapacity,
currentspeed: (response.data[i].currentspeed * 1).toFixed(0),
CapacityStandardObtainedRate: (response.data[i].CapacityStandardObtainedRate * 100).toFixed(2) + '%',
CurrentYield: (response.data[i].CurrentYield * 100).toFixed(2) + '%',
AvgDensity: (response.data[i].AvgDensity * 1).toFixed(4),
MouldAndChangeMouldTime: response.data[i].MouldAndChangeMouldTime,
Person: response.data[i].Person,
})
if (data_ajax[i].GroupChangeMouldTime !== 0) {
avg_chang_moulding_time = avg_chang_moulding_time + (data_ajax[i].GroupChangeMouldTime) * 1;
j = j + 1;
}
avg_density = parseFloat(avg_density) + parseFloat(data_ajax[i].AvgDensity);
avg_energy_avg = avg_energy_avg + (data_ajax[i].CapacityStandardObtainedRate) * 1;
avg_zhengpin_avg = avg_zhengpin_avg + (data_ajax[i].CurrentYield) * 1;
sum_quantity = 2000;
sum_currentfinishedquantity = sum_currentfinishedquantity + (data_ajax[i].FinishedQuantity) * 1;
}
const chart_energy_avg = echarts.init(document.getElementById("chart_energy_avg"));
const chart_zhengpin_avg = echarts.init(document.getElementById("chart_zhengpin_avg"));
const chart_density = echarts.init(document.getElementById("chart_density"));
const chart_change_moulding_time = echarts.init(document.getElementById("chart_change_moulding_time"));
option_zhengpin_avg.series[0].data[0].value = (avg_zhengpin_avg / data_ajax.length * 100).toFixed(0);
chart_zhengpin_avg.setOption(option_zhengpin_avg, true);
option_density.series[0].data[0].value = (avg_density / data_ajax.length).toFixed(3);
chart_density.setOption(option_density, true);
option_change_moulding_time.series[0].data[0].value = (avg_chang_moulding_time / j).toFixed(0);
chart_change_moulding_time.setOption(option_change_moulding_time, true);
option_energy_avg.series[0].data[0].value = (avg_energy_avg / data_ajax.length * 100).toFixed(0);
chart_energy_avg.setOption(option_energy_avg, true);
})
}
}
}
var colorTemplate_energy_avg = [//50-85 85-100 100-120
[0.5, "rgba(255,0,0,0.8)"],
[5 / 7, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_zhengpin_avg = [//50-75 75-85 85-100
[6 / 10, "rgba(255,0,0,0.8)"],
[7 / 10, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_density = [//0.4-0.42 0.4-0.38 0.38-0.36
[1 / 3, "rgba(0,200,250,0.8)"],
[2 / 3, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var colorTemplate_change_moulding_time = [ //30-70 70-90 绿 90-120
[4 / 9, "rgba(0,200,250,0.8)"],
[6 / 9, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var data_energy_avg = [{
// name: "",
value: 50,
}];
var data_zhengpin_avg = [{
// name: "",
value: 0,
}];
var data_density = [{
// name: "",
value: 0,
}];
var data_change_moulding_time = [{
// name: "",
value: 0,
}];
//
var option_energy_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 7, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_energy_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_energy_avg
}]
};
//
var option_zhengpin_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 100, // , 100 maxAngle
splitNumber: 5, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_zhengpin_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_zhengpin_avg
}]
};
//
var option_density = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{c}",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 0.36, // , 0 minAngle
max: 0.42, // , 100 maxAngle
splitNumber: 6, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_density, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_density
}]
};
//
var option_change_moulding_time = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 30, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 9, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_change_moulding_time, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_change_moulding_time
}]
};
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width: 1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style>

View File

@ -0,0 +1,722 @@
<template>
<div class="dashboard-editor-container">
<el-row :gutter="32">
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_zhengpin_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">正品率</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_change_moulding_time" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均换模时间</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_density" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">平均密度</h2>
</div>
</el-col>
<el-col :xs="24" :sm="12" :lg="6">
<div class="ibox">
<div id="chart_energy_avg" style="width: 100%;height: 204px;left: 0%;"></div>
<h2 class="text-center" style="margin-top: 0px;">产能达标率</h2>
</div>
</el-col>
</el-row>
<el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
<div class="ibox ">
<div class="ibox-title">
<h5>产线明细 </h5>
</div>
<div class="ibox-content">
<el-table
:data="tableData"
stripe
border
style="width: 100%">
<el-table-column
prop="line"
label="线号"
width="100">
</el-table-column>
<el-table-column
prop="Moulds"
label="模具">
</el-table-column>
<el-table-column
prop="sumbox"
label="完成箱数">
</el-table-column>
<el-table-column
prop="avg_currentcapacity"
label="平均实际产能">
</el-table-column>
<el-table-column
prop="avg_normalcapacity"
label="平均标准产能">
</el-table-column>
<el-table-column
prop="capacityrate"
label="产能达标率">
</el-table-column>
<el-table-column
prop="yieldrate"
label="正品达标率">
</el-table-column>
<el-table-column
prop="avg_density"
label="平均密度">
</el-table-column>
<el-table-column
prop="lastchangemouldtime"
label="上次换模时间">
</el-table-column>
</el-table>
</div>
</div>
</el-row>
</div>
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from '../dashboard/mixins/resize'
import {getLastDay} from '@/api/sd_dashboard/sd_dashboard'
const lineChartData = {
xAxisData: [],
actualData: []
}
export default {
mixins: [resize],
name: 'density30day',
data() {
return {
tableData: []
}
},
created() {
this.getData()
},
mounted() {
},
methods: {
getData() {
getLastDay().then(response => {
var j;
var avg_zhengpin_avg = 0;
var avg_density = 0;
var avg_energy_avg = 0;
var avg_chang_moulding_time = 0;
var sum_quantity = 0;
var sum_currentfinishedquantity = 0;
j = 0;
var data_ajax = response.data;
for (var i = 0; i < response.data.length; i++) {
lineChartData.xAxisData.push((response.data[i].time + '').replace(' 00:00:00.0', ''))
lineChartData.actualData.push(parseFloat(response.data[i].density).toFixed(4))
this.tableData.push({
line: response.data[i].line,
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),
capacityrate: (response.data[i].avg_currentcapacity / response.data[i].avg_normalcapacity * response.data[i].sum_box_meter / response.data[i].sum_device_meter * 100).toFixed(2) + "%",
yieldrate: (response.data[i].sum_box_meter / response.data[i].sum_device_meter * 100).toFixed(2) + "%",
avg_density: (response.data[i].avg_density * 1).toFixed(4),
lastchangemouldtime: (response.data[i].lastchangemouldtime),
})
if (data_ajax[i].lastchangemouldtime !== 0) {
avg_chang_moulding_time = avg_chang_moulding_time + (data_ajax[i].lastchangemouldtime) * 1;
j = j + 1;
}
avg_density = parseFloat(avg_density) + parseFloat(data_ajax[i].avg_density);
avg_energy_avg = avg_energy_avg + (data_ajax[i].avg_currentcapacity / data_ajax[i].avg_normalcapacity);
avg_zhengpin_avg = avg_zhengpin_avg + (data_ajax[i].sum_box_meter / data_ajax[i].sum_device_meter);
sum_quantity = 2000;
sum_currentfinishedquantity = sum_currentfinishedquantity + (data_ajax[i].sumbox) * 1;
}
const chart_energy_avg = echarts.init(document.getElementById("chart_energy_avg"));
const chart_zhengpin_avg = echarts.init(document.getElementById("chart_zhengpin_avg"));
const chart_density = echarts.init(document.getElementById("chart_density"));
const chart_change_moulding_time = echarts.init(document.getElementById("chart_change_moulding_time"));
//
option_zhengpin_avg.series[0].data[0].value = (avg_zhengpin_avg / data_ajax.length * 100).toFixed(0);
chart_zhengpin_avg.setOption(option_zhengpin_avg, true);
option_density.series[0].data[0].value = (avg_density / data_ajax.length).toFixed(3);
chart_density.setOption(option_density, true);
//option_change_moulding_time.series[0].data[0].value = (avg_chang_moulding_time / data_ajax.length).toFixed(0);
option_change_moulding_time.series[0].data[0].value = 0 ;
chart_change_moulding_time.setOption(option_change_moulding_time, true);
option_energy_avg.series[0].data[0].value = (avg_energy_avg / data_ajax.length * avg_zhengpin_avg / data_ajax.length * 100).toFixed(0);
chart_energy_avg.setOption(option_energy_avg, true);
})
}
}
}
var colorTemplate_energy_avg = [//50-85 85-100 100-120
[0.5, "rgba(255,0,0,0.8)"],
[5 / 7, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_zhengpin_avg = [//50-75 75-85 85-100
[6 / 10, "rgba(255,0,0,0.8)"],
[7 / 10, "rgba(0,180,0,0.8)"],
[1, "rgba(0,200,250,0.8)"]
];
var colorTemplate_density = [//0.4-0.42 0.4-0.38 0.38-0.36
[1 / 3, "rgba(0,200,250,0.8)"],
[2 / 3, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var colorTemplate_change_moulding_time = [ //30-70 70-90 绿 90-120
[4 / 9, "rgba(0,200,250,0.8)"],
[6 / 9, "rgba(0,180,0,0.8)"],
[1, "rgba(255,0,0,0.8)"]
];
var data_energy_avg = [{
// name: "",
value: 50,
}];
var data_zhengpin_avg = [{
// name: "",
value: 0,
}];
var data_density = [{
// name: "",
value: 0,
}];
var data_change_moulding_time = [{
// name: "",
value: 0,
}];
//
var option_energy_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 7, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_energy_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_energy_avg
}]
};
//
var option_zhengpin_avg = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 50, // , 0 minAngle
max: 100, // , 100 maxAngle
splitNumber: 5, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_zhengpin_avg, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}%", //
},
data: data_zhengpin_avg
}]
};
//
var option_density = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{c}",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 0.36, // , 0 minAngle
max: 0.42, // , 100 maxAngle
splitNumber: 6, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_density, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_density
}]
};
//
var option_change_moulding_time = {
//backgroundColor: "#000",
tooltip: { // tooltip
show: true,
formatter: "{b}{c}%",
backgroundColor: "rgba(50,50,50,0.7)", // series.tooltip tooltip.trigger 'item'
borderColor: "#333", // ...
borderWidth: 0, // ...
padding: 5, // px5...
textStyle: { // ...
// color ,fontStyle ,fontWeight ,fontFamily ,fontSize ,lineHeight ,.......
},
},
series: [{
name: "单仪表盘示例", // ,tooltiplegend setOption
type: "gauge", //
radius: "80%", // :number, string , 75%
center: ["50%", "55%"], // ()
startAngle: 225, // , 225 090180
endAngle: -45, // , -45
clockwise: true, // , true
min: 30, // , 0 minAngle
max: 120, // , 100 maxAngle
splitNumber: 9, // , 10
axisLine: { // 线(线)
show: true, // 线(线), true
lineStyle: { // 线
color: colorTemplate_change_moulding_time, //线 ([0,1]) [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']]
opacity: 1, // 0 1 0
width: 15, //线, 30
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
splitLine: { // 线
show: true, // 线, true
length: 21, // 线线, 30
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 2, //线, 2
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
}
},
axisTick: { // (线)
show: true, // (线), true
splitNumber: 5, // 线, 5
length: 8, // 线, 8
lineStyle: { // 线
color: "#eee", //线, #eee
opacity: 1, // 0 1 0
width: 1, //线, 1
type: "solid", //线, solid dashed,dotted
//shadowBlur: 10, //() shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", //color
},
},
axisLabel: { //
show: true, // , true
distance: 1, // 线, 5
color: "#000", // , #fff
fontSize: 10, // , 5
formatter: "{value}", // :// 使 {value},:formatter: '{value} kg'; // 使,formatter: function (value) {return value + 'km/h';}
},
pointer: { //
show: true, // , true
length: "70%", // , 80%
width: 5, // , 8
},
itemStyle: { //
color: "auto", // (auto)
opacity: 1, // 0 1 0
borderWidth: 0, // 线, 0 0
borderType: "solid", // 线 'solid', 'dashed', 'dotted'
borderColor: "#000", // , "#000" color
//shadowBlur: 10, // () shadowColor,shadowOffsetX, shadowOffsetY
//shadowColor: "#000", // color
},
emphasis: { //
itemStyle: {
// ,
}
},
title: { //
show: true, // , true
offsetCenter: [0,
"20%"], //
color: "#000", // , #333
fontSize: 15, // , 15
},
detail: { //
show: true, // , true
offsetCenter: [0,
"50%"], //
color: "auto", // , auto
fontSize: 20, // , 15
formatter: "{value}", //
},
data: data_change_moulding_time
}]
};
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width: 1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style>

View File

@ -0,0 +1,194 @@
<template>
<div >
<el-container >
<div id="chart_density_avg" style="width: 90%;height: 600px;top:20px"></div>
</el-container>
</div>
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from '../dashboard/mixins/resize'
import { getDensity30Day } from '@/api/sd_dashboard/sd_density'
let lineChartData = {
xAxisData: [],
actualData: []
}
export default {
mixins: [resize],
name: 'density30day',
created() {
this.getData()
},
mounted() {
},
methods: {
getData() {
lineChartData = {
xAxisData: [],
actualData: []
}
getDensity30Day().then(response => {
for (var i = 0; i < response.data.length; i++) {
lineChartData.xAxisData.push((response.data[i].time + '').replace(' 00:00:00.0', ''))
lineChartData.actualData.push(parseFloat(response.data[i].density).toFixed(3))
}
const chart_energy_avg = echarts.init(document.getElementById('chart_density_avg'))
option_energy_avg.xAxis[0].data = lineChartData.xAxisData
option_energy_avg.series[0].data = lineChartData.actualData
option_energy_avg.title.text = '30天平均密度'
option_energy_avg.yAxis[0].min = (Math.min.apply(null, lineChartData.actualData).toFixed(2)*1-0.01)
option_energy_avg.yAxis[0].max = (Math.max.apply(null, lineChartData.actualData).toFixed(2)*1+0.01)
chart_energy_avg.setOption(option_energy_avg, true)
})
}
}
}
const option_energy_avg = {
title: {
text: '',
textStyle: {
color: '#000',
fontSize: 18
},
itemGap: 5,
x: 'center'
},
tooltip: {
trigger: 'axis'
},
xAxis: [{
type: 'category',
data: ['1#', '2#', '3#', '30#'],
axisLine: {
lineStyle: {
color: '#999'
}
}
}],
yAxis: [{
type: 'value',
min: 0.36,
max: 0.42,
// splitNumber: 12,
splitLine: {
lineStyle: {
type: 'dashed',
color: '#DDD'
}
},
axisLine: {
show: false,
lineStyle: {
color: '#333'
}
},
nameTextStyle: {
color: '#999'
},
splitArea: {
show: false
}
}],
series: [{
name: '密度',
type: 'line',
data: [80, 72],
lineStyle: {
normal: {
width: 8,
color: {
type: 'linear',
colorStops: [{
offset: 0,
color: '#A9F387' // 0%
}, {
offset: 1,
color: '#48D8BF' // 100%
}],
globalCoord: false // false
},
shadowColor: 'rgba(72,216,191, 0.3)',
shadowBlur: 10,
shadowOffsetY: 20
}
},
itemStyle: {
normal: {
color: '#a32323',
borderWidth: 10,
/*shadowColor: 'rgba(72,216,191, 0.3)',
shadowBlur: 100,*/
borderColor: '#A9F387',
label : {show: true}
}
},
smooth: false,
markLine: {
label: {
formatter: '{b}: {c}'
},
precision: 4,
lineStyle: {
width: 3,
color: 'red'
},
data: [{
name: '目标',
yAxis: '0.38'
}, {
type: 'average',
name: '平均'
}]
}
}]
}
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width:1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style>

View File

@ -0,0 +1,196 @@
<template>
<div >
<el-container >
<div id="chart_density_avg" style="width: 90%;height: 600px;top:20px"></div>
</el-container>
</div>
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from '../dashboard/mixins/resize'
import { getDensity72h } from '@/api/sd_dashboard/sd_density'
let lineChartData = {
xAxisData: [],
actualData: []
}
export default {
mixins: [resize],
name: 'density72h',
created() {
this.getData()
},
mounted() {
},
methods: {
getData() {
lineChartData = {
xAxisData: [],
actualData: []
}
getDensity72h().then(response => {
for (let i = 0; i < response.data.length; i++) {
lineChartData.xAxisData.push((response.data[i].time + '').replace(':00.0', ''))
lineChartData.actualData.push(parseFloat(response.data[i].density).toFixed(3))
}
const chart_energy_avg = echarts.init(document.getElementById('chart_density_avg'))
option_energy_avg.xAxis[0].data = lineChartData.xAxisData
option_energy_avg.series[0].data = lineChartData.actualData
option_energy_avg.title.text = '72小时平均密度'
option_energy_avg.yAxis[0].min = (Math.min.apply(null, lineChartData.actualData).toFixed(2)*1-0.01)
option_energy_avg.yAxis[0].max = (Math.max.apply(null, lineChartData.actualData).toFixed(2)*1+0.01)
chart_energy_avg.setOption(option_energy_avg, true)
})
}
}
}
const option_energy_avg = {
title: {
text: '',
textStyle: {
color: '#000',
fontSize: 18
},
itemGap: 5,
x: 'center'
},
tooltip: {
trigger: 'axis'
},
xAxis: [{
type: 'category',
data: ['1#', '2#', '3#', '30#'],
axisLine: {
lineStyle: {
color: '#999'
}
}
}],
yAxis: [{
type: 'value',
min: 0.36,
max: 0.42,
// splitNumber: 12,
splitLine: {
lineStyle: {
type: 'dashed',
color: '#DDD'
}
},
axisLine: {
show: false,
lineStyle: {
color: '#333'
}
},
nameTextStyle: {
color: '#999'
},
splitArea: {
show: false
}
}],
series: [{
name: '密度',
type: 'line',
data: [80, 72],
lineStyle: {
normal: {
width: 8,
color: {
type: 'linear',
colorStops: [{
offset: 0,
color: '#A9F387' // 0%
}, {
offset: 1,
color: '#48D8BF' // 100%
}],
globalCoord: false // false
},
shadowColor: 'rgba(72,216,191, 0.3)',
shadowBlur: 10,
shadowOffsetY: 20
}
},
itemStyle: {
normal: {
color: '#a32323',
borderWidth: 10,
/*shadowColor: 'rgba(72,216,191, 0.3)',
shadowBlur: 100,*/
label : {show: true},
borderColor: '#A9F387'
}
},
smooth: false,
markLine: {
label: {
formatter: '{b}: {c}'
},
precision: 4,
lineStyle: {
width: 3,
color: 'red'
},
data: [{
name: '目标',
yAxis: '0.38'
}, {
type: 'average',
name: '平均'
}]
}
}]
}
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width:1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style>

View File

@ -0,0 +1,261 @@
<template>
<div >
<div class="ibox-title">
<el-row :gutter="24">
<el-col :xs="24" :sm="24" :lg="24">
<b>选择时间范围</b>
<el-date-picker
v-model="daterange_time1"
align="right"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
:picker-options="pickerOptions">
</el-date-picker>
<b>--</b>
<el-date-picker
v-model="daterange_time2"
align="right"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
:picker-options="pickerOptions">
</el-date-picker>
<el-button @click="getData" type="primary">查询</el-button>
</el-col>
</el-row>
</div>
<el-container >
<div id="chart_density_avg" style="width: 90%;height: 600px;top:20px"></div>
</el-container>
</div>
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from '../dashboard/mixins/resize'
import { getDensityDataRange } from '@/api/sd_dashboard/sd_density'
let lineChartData = {
xAxisData: [],
actualData: []
}
export default {
mixins: [resize],
name: 'density30day',
data() {
return {
tableData: [],
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
shortcuts: [{
text: '今天',
onClick(picker) {
picker.$emit('pick', new Date());
}
}, {
text: '昨天',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', date);
}
}, {
text: '一周前',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', date);
}
}, {
text: '30天前',
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', date);
}
}]
},
daterange_time1: '',
daterange_time2: '',
}
},
created() {
// this.getData()
},
mounted() {
},
methods: {
getData() {
lineChartData = {
xAxisData: [],
actualData: []
}
getDensityDataRange(this.daterange_time1,this.daterange_time2).then(response => {
for (var i = 0; i < response.data.length; i++) {
lineChartData.xAxisData.push((response.data[i].time + '').replace(' 00:00:00.0', ''))
lineChartData.actualData.push(parseFloat(response.data[i].density).toFixed(3))
}
const chart_energy_avg = echarts.init(document.getElementById('chart_density_avg'))
option_energy_avg.xAxis[0].data = lineChartData.xAxisData
option_energy_avg.series[0].data = lineChartData.actualData
option_energy_avg.title.text = '平均密度'
option_energy_avg.yAxis[0].min = (Math.min.apply(null, lineChartData.actualData).toFixed(2)*1-0.01)
option_energy_avg.yAxis[0].max = (Math.max.apply(null, lineChartData.actualData).toFixed(2)*1+0.01)
chart_energy_avg.setOption(option_energy_avg, true)
})
}
}
}
const option_energy_avg = {
title: {
text: '',
textStyle: {
color: '#000',
fontSize: 18
},
itemGap: 5,
x: 'center'
},
tooltip: {
trigger: 'axis'
},
xAxis: [{
type: 'category',
data: ['1#', '2#', '3#', '30#'],
axisLine: {
lineStyle: {
color: '#999'
}
}
}],
yAxis: [{
type: 'value',
min: 0.36,
max: 0.42,
// splitNumber: 12,
splitLine: {
lineStyle: {
type: 'dashed',
color: '#DDD'
}
},
axisLine: {
show: false,
lineStyle: {
color: '#333'
}
},
nameTextStyle: {
color: '#999'
},
splitArea: {
show: false
}
}],
series: [{
name: '密度',
type: 'line',
data: [80, 72],
lineStyle: {
normal: {
width: 8,
color: {
type: 'linear',
colorStops: [{
offset: 0,
color: '#A9F387' // 0%
}, {
offset: 1,
color: '#48D8BF' // 100%
}],
globalCoord: false // false
},
shadowColor: 'rgba(72,216,191, 0.3)',
shadowBlur: 10,
shadowOffsetY: 20
}
},
itemStyle: {
normal: {
color: '#a32323',
borderWidth: 10,
/*shadowColor: 'rgba(72,216,191, 0.3)',
shadowBlur: 100,*/
borderColor: '#A9F387',
label : {show: true}
}
},
smooth: false,
markLine: {
label: {
formatter: '{b}: {c}'
},
precision: 4,
lineStyle: {
width: 3,
color: 'red'
},
data: [{
name: '目标',
yAxis: '0.38'
}, {
type: 'average',
name: '平均'
}]
}
}]
}
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width:1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style>

View File

@ -0,0 +1,189 @@
<template>
<div >
<el-container >
<div id="chart_density_avg" style="width: 90%;height: 600px;top:20px"></div>
</el-container>
</div>
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from '../dashboard/mixins/resize'
import { getDensityGroup } from '@/api/sd_dashboard/sd_density'
let lineChartData = {
xAxisData: [],
actualData: []
}
export default {
mixins: [resize],
name: 'density30day',
created() {
this.getData()
},
mounted() {
},
methods: {
getData() {
lineChartData = {
xAxisData: [],
actualData: []
}
getDensityGroup().then(response => {
for (var i = 0; i < response.data.length; i++) {
lineChartData.xAxisData.push((response.data[i].time + '').replace(' 00:00:00.0', ''))
lineChartData.actualData.push(parseFloat(response.data[i].density).toFixed(3))
}
const chart_energy_avg = echarts.init(document.getElementById('chart_density_avg'))
option_energy_avg.xAxis[0].data = lineChartData.xAxisData
option_energy_avg.series[0].data = lineChartData.actualData
option_energy_avg.title.text = '当班平均密度'
option_energy_avg.yAxis[0].min = (Math.min.apply(null, lineChartData.actualData).toFixed(2)*1-0.01)
option_energy_avg.yAxis[0].max = (Math.max.apply(null, lineChartData.actualData).toFixed(2)*1+0.01)
chart_energy_avg.setOption(option_energy_avg, true)
})
}
}
}
const option_energy_avg = {
title: {
text: '',
textStyle: {
color: '#000',
fontSize: 18
},
itemGap: 5,
x: 'center'
},
tooltip: {
trigger: 'axis'
},
xAxis: [{
type: 'category',
data: ['1#', '2#', '3#', '30#'],
axisLine: {
lineStyle: {
color: '#999'
}
}
}],
yAxis: [{
type: 'value',
min: 0.36,
max: 0.42,
// splitNumber: 12,
splitLine: {
lineStyle: {
type: 'dashed',
color: '#DDD'
}
},
axisLine: {
show: false,
lineStyle: {
color: '#333'
}
},
nameTextStyle: {
color: '#999'
},
splitArea: {
show: false
}
}],
series: [{
name: '密度',
type: 'line',
data: [80, 72],
lineStyle: {
normal: {
width: 8,
color: {
type: 'linear',
colorStops: [{
offset: 0,
color: '#A9F387' // 0%
}, {
offset: 1,
color: '#48D8BF' // 100%
}],
globalCoord: false // false
},
shadowColor: 'rgba(72,216,191, 0.3)',
shadowBlur: 10,
shadowOffsetY: 20
}
},
itemStyle: {
normal: {
color: '#a32323',
borderWidth: 10,
/*shadowColor: 'rgba(72,216,191, 0.3)',
shadowBlur: 100,*/
label : {show: true},
borderColor: '#A9F387'
}
},
smooth: false,
markLine: {
label: {
formatter: '{b}: {c}'
},
precision: 4,
lineStyle: {
width: 3,
color: 'red'
},
data: [{
name: '目标',
yAxis: '0.38'
}, {
type: 'average',
name: '平均'
}]
}
}]
}
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width:1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style>

View File

@ -142,6 +142,67 @@ public class DB_Ajax_DashBoard_48102 {
public static String SD_DoGetCurrent() {
StringBuilder jsonpath = new StringBuilder();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"\tChangeMould,\n" +
"\tV_SD_MouldingDisplayBoard.Id,\n" +
"\tV_SD_MouldingDisplayBoard.Line,\n" +
"\tV_SD_MouldingDisplayBoard.CustomerName,\n" +
"\tV_SD_MouldingDisplayBoard.NormalDensity,\n" +
"\tV_SD_MouldingDisplayBoard.Length,\n" +
"\tV_SD_MouldingDisplayBoard.NormalCapacity,\n" +
"\tV_SD_MouldingDisplayBoard.SoCode,\n" +
"\tV_SD_MouldingDisplayBoard.NormalWeight,\n" +
"\tV_SD_MouldingDisplayBoard.Quantity,\n" +
"\tV_SD_MouldingDisplayBoard.FactCapacity,\n" +
"\tV_SD_MouldingDisplayBoard.MouldingStyleCode,\n" +
"\tV_SD_MouldingDisplayBoard.CurrentFinishedQuantity\n" +
"\t\n" +
"\t,\n" +
"CASE\n" +
"\t\t\n" +
"\t\tWHEN ( CurrentYield IS NULL ) THEN\n" +
"\t\t0 ELSE CurrentYield \n" +
"\tEND AS CurrentYield,\n" +
"CASE\n" +
"\t\t\n" +
"\t\tWHEN ( CapacityStandardObtainedRate IS NULL ) THEN\n" +
"\t\t0 ELSE CapacityStandardObtainedRate \n" +
"\tEND AS CapacityStandardObtainedRate,\n" +
"\tV_SD_MouldingDisplayBoard.SectionalErea,\n" +
"\tV_SD_MouldingDisplayBoard.MouldYield,\n" +
"\tV_SD_MouldingDisplayBoard.FinishedQuantity,\n" +
"\tV_SD_MouldingDisplayBoard.TotalCapacity,\n" +
"\tV_SD_MouldingDisplayBoard.ChangeMouldTime,\n" +
"\tV_SD_MouldingDisplayBoard.OperatePersonCode,\n" +
"\tV_SD_MouldingDisplayBoard.OperatePersonName,\n" +
"\tV_SD_MouldingDisplayBoard.Speed,\n" +
"\tV_SD_MouldingDisplayBoard.CurrentFinishLength \n" +
"FROM\n" +
"\tV_SD_MouldingDisplayBoard \n" +
"ORDER BY\n" +
"\tCAST ( REPLACE( V_SD_MouldingDisplayBoard.Line, '#', '' ) AS INT ) FOR JSON PATH";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
jsonpath.append(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return jsonpath.toString();
}
public static List<HashMap<String,String>> DoGetLastDay() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();

View File

@ -0,0 +1,139 @@
package com.ruoyi.db.sd_mssql;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class DB_8053_Test {
private static String IP = "192.168.80.53";
private static String DBName = "ERPDATA";
private static String USER = "sa";
private static String PWD = "#080507h";
/** 创建数据库对象 */
private static Connection getSQLConnection() {
Connection con = null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
// 加上 useunicode=true;characterEncoding=UTF-8 防止中文乱码
con = DriverManager.getConnection(
"jdbc:jtds:sqlserver://" + IP + ":1433/" + DBName + ";useunicode=true;characterEncoding=UTF-8",
USER, PWD);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
System.out.println("==连接数据库失败===");
}
// System.out.println("==连接数据库成功===");
return con;
}
public static void main(String[] args) {
}
public static List<HashMap<String,String>> DoGetChangeMouldTimeList() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"\tLine,\n" +
"\tLEFT ( MouldingStyleCode, charindex( '-', MouldingStyleCode ) - 1 ) as Mould,MouldingStyleCode,\n" +
"\tStartTime,\n" +
"\tEndTime ,\n" +
"\tDATEDIFF( minute,starttime, endtime) as ChangeMouldTime\n" +
"FROM\n" +
"\t[dbo].[MouldingDisplayBoard] \n" +
"WHERE\n" +
"\tChangeMould = 1 and \tDATEDIFF( minute,starttime, endtime) > 20\n" +
"\torder by starttime desc \n";
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\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 + "'";
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"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static String JsonTest() {
StringBuilder jsonpath = new StringBuilder();
try {
Connection conn = getSQLConnection();
String sql = "SELECT * from [chen_12个月_A版本BOM销售额] FOR JSON PATH";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
jsonpath.append(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return jsonpath.toString();
}
}

View File

@ -0,0 +1,374 @@
package com.ruoyi.db.sd_mssql;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class DB_Ajax_DashBoard_8053 {
private static String IP = "192.168.80.53";
private static String DBName = "ERPDATA";
private static String USER = "sa";
private static String PWD = "#080507h";
/** 创建数据库对象 */
private static Connection getSQLConnection() {
Connection con = null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
// 加上 useunicode=true;characterEncoding=UTF-8 防止中文乱码
con = DriverManager.getConnection(
"jdbc:jtds:sqlserver://" + IP + ":1433/" + DBName + ";useunicode=true;characterEncoding=UTF-8",
USER, PWD);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
System.out.println("==连接数据库失败===");
}
// System.out.println("==连接数据库成功===");
return con;
}
public static void main(String[] args) {
}
public static List<HashMap<String,String>> DoGetCurrentTimeGroup() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT * FROM [dbo].[V_chen_Dashboard_当前] order by " +
"CAST (" +
"REPLACE( line, '#', '' ) AS INT)";
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("Moulds",rs.getString("Moulds"));
map.put("Person",rs.getString("Person"));
map.put("NormalCapacity",rs.getString("NormalCapacity"));
map.put("currentspeed",rs.getString("currentspeed"));
map.put("FinishedQuantity",rs.getString("FinishedQuantity"));
map.put("GroupTime",rs.getString("GroupTime"));
map.put("GroupChangeMouldTime",rs.getString("GroupChangeMouldTime"));
map.put("CurrentYield",rs.getString("CurrentYield"));
map.put("CapacityStandardObtainedRate",rs.getString("CapacityStandardObtainedRate"));
map.put("AvgDensity",rs.getString("AvgDensity"));
map.put("MouldAndChangeMouldTime",rs.getString("MouldAndChangeMouldTime"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static String DoGetCurrent() {
StringBuilder jsonpath = new StringBuilder();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"\t( SELECT MAX ( MouldingDisplayBoardOperation.OperateTime ) FROM MouldingDisplayBoardOperation WHERE MouldingDisplayBoardOperation.DisplayBoardId = V_MouldingDisplayBoard.Id ) AS LastUpdateDate,\n" +
"ChangeMould,\n" +
"\tdbo.V_MouldingDisplayBoard.Id,\n" +
"\tdbo.V_MouldingDisplayBoard.Line,\n" +
"\tdbo.V_MouldingDisplayBoard.CustomerName,\n" +
"\tdbo.V_MouldingDisplayBoard.NormalDensity,\n" +
"\tdbo.V_MouldingDisplayBoard.Length,\n" +
"\tdbo.V_MouldingDisplayBoard.NormalCapacity,\n" +
"\tdbo.V_MouldingDisplayBoard.SoCode,\n" +
"\tdbo.V_MouldingDisplayBoard.NormalWeight,\n" +
"\tdbo.V_MouldingDisplayBoard.Quantity,\n" +
"\tdbo.V_MouldingDisplayBoard.FactCapacity,\n" +
"\tdbo.V_MouldingDisplayBoard.MouldingStyleCode,\n" +
"\tdbo.V_MouldingDisplayBoard.CurrentFinishedQuantity\n" +
"\t\n" +
"\t,\n" +
"CASE\n" +
"\t\t\n" +
"\t\tWHEN ( CurrentYield IS NULL ) THEN\n" +
"\t\t0 ELSE CurrentYield \n" +
"\tEND AS CurrentYield,\n" +
"CASE\n" +
"\t\t\n" +
"\t\tWHEN ( CapacityStandardObtainedRate IS NULL ) THEN\n" +
"\t\t0 ELSE CapacityStandardObtainedRate \n" +
"\tEND AS CapacityStandardObtainedRate,\n" +
"\tdbo.V_MouldingDisplayBoard.SectionalErea,\n" +
"\tdbo.V_MouldingDisplayBoard.MouldYield,\n" +
"\tdbo.V_MouldingDisplayBoard.FinishedQuantity,\n" +
"\tdbo.V_MouldingDisplayBoard.TotalCapacity,\n" +
"\tdbo.V_MouldingDisplayBoard.ChangeMouldTime,\n" +
"\tdbo.V_MouldingDisplayBoard.OperatePersonCode,\n" +
"\tdbo.V_MouldingDisplayBoard.OperatePersonName,\n" +
"\tdbo.V_MouldingDisplayBoard.Speed,\n" +
"\tdbo.V_MouldingDisplayBoard.CurrentFinishLength \n" +
"FROM\n" +
"\tdbo.V_MouldingDisplayBoard \n" +
"ORDER BY\n" +
"\tCAST (\n" +
"\tREPLACE( dbo.V_MouldingDisplayBoard.Line, '#', '' ) AS INT) FOR JSON PATH";
Statement stmt = conn.createStatement();//
System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
jsonpath.append(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return jsonpath.toString();
}
public static List<HashMap<String,String>> DoGetLastDay() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT * FROM V_chen_Dashboard_当天 ORDER BY " +
"CAST (" +
"REPLACE( line, '#', '' ) AS INT)";
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("Moulds",rs.getString("Moulds"));
map.put("sumbox",rs.getString("sumbox"));
map.put("sum_box_meter",rs.getString("sum_box_meter"));
map.put("sum_device_meter",rs.getString("sum_device_meter"));
map.put("avg_density",rs.getString("avg_density"));
map.put("avg_currentcapacity",rs.getString("avg_currentcapacity"));
map.put("avg_normalcapacity",rs.getString("avg_normalcapacity"));
map.put("lastchangemouldtime",rs.getString("lastchangemouldtime"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static List<HashMap<String,String>> DoGet30Day() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT * FROM V_chen_Dashboard_当月 ORDER BY "+
" CAST (" +
"REPLACE( line, '#', '' ) AS INT)";
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("Moulds",rs.getString("Moulds"));
map.put("sumbox",rs.getString("sumbox"));
map.put("sum_box_meter",rs.getString("sum_box_meter"));
map.put("sum_device_meter",rs.getString("sum_device_meter"));
map.put("avg_density",rs.getString("avg_density"));
map.put("avg_currentcapacity",rs.getString("avg_currentcapacity"));
map.put("avg_normalcapacity",rs.getString("avg_normalcapacity"));
map.put("lastchangemouldtime",rs.getString("lastchangemouldtime"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static List<HashMap<String,String>> DoGetDateRange(String fstarttime, String fendtime) {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "DECLARE @FStartTime DATETIME\r\n" +
"DECLARE @FEndTime DATETIME\r\n" +
"\r\n" +
"set @FStartTime='" + fstarttime + "'\r\n" +
"set @FEndTime='" + fendtime + "'\r\n" +
"\r\n" +
"\r\n" +
"\r\n" +
"\r\n" +
"SELECT\r\n" +
" db1.line,\r\n" +
" AVG ( avg_density ) AS avg_density,\r\n" +
" SUM ( sumbox ) AS sumbox,\r\n" +
" MAX ( db2.sum1 ) AS sum_box_meter,\r\n" +
" MAX ( db2.sum0 ) AS sum_device_meter,\r\n" +
" dbo.chen_cal_line_time_mould ( MIN ( db1.StartTime ), MAX ( db1.EndTime ), db1.Line ) AS Moulds,\r\n" +
" SUM ( currentcap * ( boxmeter / db2.sum1 )) AS avg_currentcapacity,\r\n" +
" SUM ( db1.NormalCapacity* ( boxmeter / db2.sum1 )) AS avg_normalcapacity,\r\n" +
" SUM ( boxmeter / db2.sum1 ) AS 校验字段 ,\r\n" +
" avg(db4.ChangeMouldTime) as lastchangemouldtime\r\n" +
"FROM \r\n" +
" (SELECT\r\n" +
" dbo.chen_cal_line_difftime( db3.StartTime, db3.EndTime, db3.line, db3.EndTime) as difftime,\r\n" +
" db3.Quantity as Quantity,\r\n" +
" db3.StartTime as StartTime,\r\n" +
" db3.EndTime as EndTime,\r\n" +
" db3.line as line,\r\n" +
" db3.Length as Length ,\r\n" +
" db3.NumberOfEveryKit as NumberOfEveryKit,\r\n" +
" db3.MouldingStyleCode as MouldingStyleCode,\r\n" +
" db3.SoCode as SoCode,\r\n" +
" dbo.chen_cal_line_time_mould ( db3.StartTime, db3.EndTime, Line ) AS Moulds,\r\n" +
" dbo.chen_cal_line_time_density ( db3.StartTime, db3.EndTime, Line ) AS avg_density,\r\n" +
" \r\n" +
" dbo.chen_cal_line_meter ( db3.StartTime, db3.EndTime, Line, @FEndTime ) / dbo.chen_cal_line_difftime( db3.StartTime, db3.EndTime, db3.line, db3.EndTime) * 60 * 60 * 12 AS currentcap,\r\n" +
" NormalCapacity,\r\n" +
" db3.sumbox AS sumbox,\r\n" +
" dbo.chen_cal_line_meter ( db3.StartTime, db3.EndTime, Line, @FEndTime ) AS meter,\r\n" +
" (db3.Length * db3.NumberOfEveryKit * db3.sumbox) AS boxmeter\r\n" +
" \r\n" +
"FROM\r\n" +
" (\r\n" +
" SELECT\r\n" +
" db2.id,\r\n" +
" db2.line,\r\n" +
" SUM ( db1.Quantity ) AS sumbox,\r\n" +
" MIN ( db1.OperateTime ) AS minop,\r\n" +
" MAX ( db1.OperateTime ) AS maxop,\r\n" +
" MAX (db2.Quantity) as Quantity, \r\n" +
" MAX (db2.Length) as Length,\r\n" +
" MAX (db2.NumberOfEveryKit) as NumberOfEveryKit,\r\n" +
" MAX (db2.MouldingStyleCode) as MouldingStyleCode,\r\n" +
" MAX (db2.SoCode) as SoCode, MAX (db2.NormalCapacity) as NormalCapacity,\r\n" +
" ( CASE WHEN MIN ( db2.StartTime ) < @FStartTime THEN @FStartTime ELSE MIN ( db2.StartTime ) END ) AS StartTime,\r\n" +
" ( CASE WHEN MIN ( db2.EndTime ) IS NULL THEN (dbo.chen_cal_line_op_lasttime(MIN ( db2.EndTime ),db2.line,@FEndTime)) ELSE ( CASE WHEN MIN ( db2.EndTime ) > @FEndTime THEN @FEndTime ELSE MIN ( db2.EndTime ) END ) END ) AS EndTime FROM\r\n" +
" [dbo].[MouldingDisplayBoardOperation] AS db1\r\n" +
" INNER JOIN MouldingDisplayBoard AS db2 ON db2.id = db1.DisplayBoardId \r\n" +
" WHERE\r\n" +
" db1.OperateTime >= @FStartTime \r\n" +
" AND db1.OperateTime <= @FEndTime \r\n" +
" GROUP BY\r\n" +
" db2.id,\r\n" +
" db2.line \r\n" +
" ) AS db3) AS db1\r\n" +
" INNER JOIN ( SELECT line, SUM ( meter ) AS sum0, SUM ( boxmeter ) AS sum1 FROM (SELECT\r\n" +
" dbo.chen_cal_line_difftime( db3.StartTime, db3.EndTime, db3.line, db3.EndTime) as difftime,\r\n" +
" db3.Quantity as Quantity,\r\n" +
" db3.StartTime as StartTime,\r\n" +
" db3.EndTime as EndTime,\r\n" +
" db3.line as line,\r\n" +
" db3.Length as Length ,\r\n" +
" db3.NumberOfEveryKit as NumberOfEveryKit,\r\n" +
" db3.MouldingStyleCode as MouldingStyleCode,\r\n" +
" db3.SoCode as SoCode,\r\n" +
" dbo.chen_cal_line_time_mould ( db3.StartTime, db3.EndTime, Line ) AS Moulds,\r\n" +
" dbo.chen_cal_line_time_density ( db3.StartTime, db3.EndTime, Line ) AS avg_density,\r\n" +
" \r\n" +
" dbo.chen_cal_line_meter ( db3.StartTime, db3.EndTime, Line, @FEndTime ) / dbo.chen_cal_line_difftime( db3.StartTime, db3.EndTime, db3.line, db3.EndTime) * 60 * 60 * 12 AS currentcap,\r\n" +
" NormalCapacity,\r\n" +
" db3.sumbox AS sumbox,\r\n" +
" dbo.chen_cal_line_meter ( db3.StartTime, db3.EndTime, Line, @FEndTime ) AS meter,\r\n" +
" (db3.Length * db3.NumberOfEveryKit * db3.sumbox) AS boxmeter\r\n" +
" \r\n" +
"FROM\r\n" +
" (\r\n" +
" SELECT\r\n" +
" db2.id,\r\n" +
" db2.line,\r\n" +
" SUM ( db1.Quantity ) AS sumbox,\r\n" +
" MIN ( db1.OperateTime ) AS minop,\r\n" +
" MAX ( db1.OperateTime ) AS maxop,\r\n" +
" MAX (db2.Quantity) as Quantity, \r\n" +
" MAX (db2.Length) as Length,\r\n" +
" MAX (db2.NumberOfEveryKit) as NumberOfEveryKit,\r\n" +
" MAX (db2.MouldingStyleCode) as MouldingStyleCode,\r\n" +
" MAX (db2.SoCode) as SoCode, MAX (db2.NormalCapacity) as NormalCapacity,\r\n" +
" ( CASE WHEN MIN ( db2.StartTime ) < @FStartTime THEN @FStartTime ELSE MIN ( db2.StartTime ) END ) AS StartTime,\r\n" +
" ( CASE WHEN MIN ( db2.EndTime ) IS NULL THEN (dbo.chen_cal_line_op_lasttime(MIN ( db2.EndTime ),db2.line,@FEndTime)) ELSE ( CASE WHEN MIN ( db2.EndTime ) > @FEndTime THEN @FEndTime ELSE MIN ( db2.EndTime ) END ) END ) AS EndTime FROM\r\n" +
" [dbo].[MouldingDisplayBoardOperation] AS db1\r\n" +
" INNER JOIN MouldingDisplayBoard AS db2 ON db2.id = db1.DisplayBoardId \r\n" +
" WHERE\r\n" +
" db1.OperateTime >= @FStartTime \r\n" +
" AND db1.OperateTime <= @FEndTime \r\n" +
" GROUP BY\r\n" +
" db2.id,\r\n" +
" db2.line \r\n" +
" ) AS db3) AS db3 GROUP BY line ) AS db2 ON db2.line = db1.line\r\n" +
" LEFT JOIN (SELECT Line,id,DATEDIFF(MINUTE,StartTime,EndTime) as ChangeMouldTime FROM MouldingDisplayBoard WHERE id IN (SELECT MAX (id) AS id FROM MouldingDisplayBoard WHERE ChangeMould=1 GROUP BY Line)) as db4 on db4.line = db1.line\r\n" +
"\r\n" +
"GROUP BY" +
" db1.line " +
"ORDER BY " +
"CAST (" +
" REPLACE( db1.line, '#', '' ) AS INT)";
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("Moulds",rs.getString("Moulds"));
map.put("sumbox",rs.getString("sumbox"));
map.put("sum_box_meter",rs.getString("sum_box_meter"));
map.put("sum_device_meter",rs.getString("sum_device_meter"));
map.put("avg_density",rs.getString("avg_density"));
map.put("avg_currentcapacity",rs.getString("avg_currentcapacity"));
map.put("avg_normalcapacity",rs.getString("avg_normalcapacity"));
map.put("lastchangemouldtime",rs.getString("lastchangemouldtime"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
}

View File

@ -0,0 +1,201 @@
package com.ruoyi.db.sd_mssql;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class DB_Ajax_DashBoard_ChangeMouldTime_8053 {
private static String IP = "192.168.80.53";
private static String DBName = "ERPDATA";
private static String USER = "sa";
private static String PWD = "#080507h";
/** 创建数据库对象 */
private static Connection getSQLConnection() {
Connection con = null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
// 加上 useunicode=true;characterEncoding=UTF-8 防止中文乱码
con = DriverManager.getConnection(
"jdbc:jtds:sqlserver://" + IP + ":1433/" + DBName + ";useunicode=true;characterEncoding=UTF-8",
USER, PWD);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
System.out.println("==连接数据库失败===");
}
// System.out.println("==连接数据库成功===");
return con;
}
public static void main(String[] args) {
}
public static List<HashMap<String,String>> DoGetChangeMouldTimeList() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"\tLine,\n" +
"\tLEFT ( MouldingStyleCode, charindex( '-', MouldingStyleCode ) - 1 ) as Mould,MouldingStyleCode,\n" +
"\tStartTime,\n" +
"\tEndTime ,\n" +
"\tDATEDIFF( minute,starttime, endtime) as ChangeMouldTime\n" +
"FROM\n" +
"\t[dbo].[MouldingDisplayBoard] \n" +
"WHERE\n" +
"\tChangeMould = 1 and \tDATEDIFF( minute,starttime, endtime) > 20\n" +
"\torder by starttime desc \n";
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>> DoGetChangeMouldTimeListDateRange(String fstarttime, String fendtime) {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
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);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static List<HashMap<String,String>> DoGetGroupDensityListMap() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\r\n" +
" line AS line,\r\n" +
" AVG ( Density ) AS density \r\n" +
"FROM\r\n" +
" [dbo].[MouldingRealTimeDensity] \r\n" +
"WHERE\r\n" +
" CreatedOn > dbo.GetWorkShiftStartDate ( GETDATE( ) ) \r\n" +
"GROUP BY\r\n" +
" line \r\n" +
"ORDER BY\r\n" +
" convert(int,REPLACE( line, '#', '' ) )";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("density",rs.getString("density"));
map.put("time",rs.getString("line"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
}

View File

@ -0,0 +1,284 @@
package com.ruoyi.db.sd_mssql;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class DB_Ajax_DashBoard_Density_8053 {
private static String IP = "192.168.80.53";
private static String DBName = "ERPDATA";
private static String USER = "sa";
private static String PWD = "#080507h";
/** 创建数据库对象 */
private static Connection getSQLConnection() {
Connection con = null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
// 加上 useunicode=true;characterEncoding=UTF-8 防止中文乱码
con = DriverManager.getConnection(
"jdbc:jtds:sqlserver://" + IP + ":1433/" + DBName + ";useunicode=true;characterEncoding=UTF-8",
USER, PWD);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
System.out.println("==连接数据库失败===");
}
// System.out.println("==连接数据库成功===");
return con;
}
public static void main(String[] args) {
}
public static List<String> DoGet72hdensity() {
List<String> list = new ArrayList<String>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\r\n" +
" ProductDate+TIME as time,\r\n" +
" AVG ( Density ) as density\r\n" +
"FROM\r\n" +
" [dbo].[MouldingRealTimeDensity] \r\n" +
"WHERE\r\n" +
" CreatedOn > GETDATE( ) - 3\r\n" +
"GROUP BY\r\n" +
" ProductDate,\r\n" +
"TIME ORDER BY MAX(CreatedOn)";
Statement stmt = conn.createStatement();//
// System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
list.add("{time:\"" + rs.getString("time") + "\",density:\"" + rs.getString("density")
+ "\"}");
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public static List<String> DoGetgroupdensity() {
List<String> list = new ArrayList<String>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\r\n" +
" line AS line,\r\n" +
" AVG ( Density ) AS density \r\n" +
"FROM\r\n" +
" [dbo].[MouldingRealTimeDensity] \r\n" +
"WHERE\r\n" +
" CreatedOn > dbo.GetWorkShiftStartDate ( GETDATE( ) ) \r\n" +
"GROUP BY\r\n" +
" line \r\n" +
"ORDER BY\r\n" +
" convert(int,REPLACE( line, '#', '' ) )";
Statement stmt = conn.createStatement();//
// System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
list.add("{line:\"" + rs.getString("line") + "\",density:\"" + rs.getString("density")
+ "\"}");
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public static List<String> DoGet30ddensity() {
List<String> list = new ArrayList<String>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\r\n" +
" ProductDate as time,\r\n" +
" AVG ( Density ) as density\r\n" +
"FROM\r\n" +
" [dbo].[MouldingRealTimeDensity] \r\n" +
"WHERE\r\n" +
" CreatedOn > GETDATE( ) - 30\r\n" +
"GROUP BY\r\n" +
" ProductDate ORDER BY MAX(CreatedOn)";
Statement stmt = conn.createStatement();//
// System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
list.add("{time:\"" + rs.getString("time") + "\",density:\"" + rs.getString("density")
+ "\"}");
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public static List<HashMap<String,String>> DoGet30dDensityListMap() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\r\n" +
" ProductDate as time,\r\n" +
" AVG ( Density ) as density\r\n" +
"FROM\r\n" +
" [dbo].[MouldingRealTimeDensity] \r\n" +
"WHERE\r\n" +
" CreatedOn > GETDATE( ) - 30\r\n" +
"GROUP BY\r\n" +
" ProductDate ORDER BY MAX(CreatedOn)";
Statement stmt = conn.createStatement();//
// System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("density",rs.getString("density"));
map.put("time",rs.getString("time"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static List<HashMap<String,String>> DoGet72hDensityListMap() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\r\n" +
" ProductDate+TIME as time,\r\n" +
" AVG ( Density ) as density\r\n" +
"FROM\r\n" +
" [dbo].[MouldingRealTimeDensity] \r\n" +
"WHERE\r\n" +
" CreatedOn > GETDATE( ) - 3\r\n" +
"GROUP BY\r\n" +
" ProductDate,\r\n" +
"TIME ORDER BY MAX(CreatedOn)";
Statement stmt = conn.createStatement();//
// System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("density",rs.getString("density"));
map.put("time",rs.getString("time"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static List<HashMap<String,String>> DoGetGroupDensityListMap() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\r\n" +
" line AS line,\r\n" +
" AVG ( Density ) AS density \r\n" +
"FROM\r\n" +
" [dbo].[MouldingRealTimeDensity] \r\n" +
"WHERE\r\n" +
" CreatedOn > dbo.GetWorkShiftStartDate ( GETDATE( ) ) \r\n" +
"GROUP BY\r\n" +
" line \r\n" +
"ORDER BY\r\n" +
" convert(int,REPLACE( line, '#', '' ) )";
Statement stmt = conn.createStatement();//
// System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("density",rs.getString("density"));
map.put("time",rs.getString("line"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static List<HashMap<String,String>> getDensityDataRange(String fDateStart, String fDateEnd) {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"\tProductDate AS TIME,\n" +
"\tAVG ( Density ) AS density \n" +
"FROM\n" +
"\t[dbo].[MouldingRealTimeDensity] \n" +
"WHERE\n" +
"\tCreatedOn >= '"+fDateStart+"' and CreatedOn <= '"+fDateEnd+"'" +
"GROUP BY\n" +
"\tProductDate \n" +
"ORDER BY\n" +
"\tMAX ( CreatedOn );";
Statement stmt = conn.createStatement();//
// System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("density",rs.getString("density"));
map.put("time",rs.getString("time"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
}

View File

@ -0,0 +1,556 @@
package com.ruoyi.db.sd_mssql;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class DB_Ajax_DashBoard_Technologist_8053 {
private static String IP = "192.168.80.53";
private static String DBName = "ERPDATA";
private static String USER = "sa";
private static String PWD = "#080507h";
/** 创建数据库对象 */
private static Connection getSQLConnection() {
Connection con = null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
// 加上 useunicode=true;characterEncoding=UTF-8 防止中文乱码
con = DriverManager.getConnection(
"jdbc:jtds:sqlserver://" + IP + ":1433/" + DBName + ";useunicode=true;characterEncoding=UTF-8",
USER, PWD);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
System.out.println("==连接数据库失败===");
}
// System.out.println("==连接数据库成功===");
return con;
}
public static void main(String[] args) {
}
public static List<HashMap<String,String>> DoGetSampleConfirmation() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"\t内外销,\n" +
"\tSUM ( CASE WHEN 客户是否下单 = '是' THEN 1 ELSE 0 END ) AS 下单数,\n" +
"\tCOUNT (内外销) AS 打样数 \n" +
"FROM\n" +
"\t[dbo].[chen_打样分析汇总] \n" +
"GROUP BY\n" +
"\t内外销;";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("NWX",rs.getString("内外销"));
map.put("ConfirmationNum",rs.getString("下单数"));
map.put("SampleNum",rs.getString("打样数"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static List<HashMap<String,String>> DoGetBestOEM() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT TOP\n" +
"\t20 MouldingStyleCode,\n" +
"\t[折算人民币价税合计] AS CNY \n" +
"FROM\n" +
"\t[chen_12个月_A版本BOM销售额] \n" +
"WHERE\n" +
"\ttagname = 'OEM' \n" +
"ORDER BY\n" +
"\t折算人民币价税合计 DESC";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("MouldingStyleCode",rs.getString("MouldingStyleCode"));
map.put("CNY",rs.getString("CNY"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static List<HashMap<String,String>> DoGetBestODM() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT TOP\n" +
"\t20 MouldingStyleCode,\n" +
"\t[折算人民币价税合计] AS CNY \n" +
"FROM\n" +
"\t[chen_12个月_A版本BOM销售额] \n" +
"WHERE\n" +
"\ttagname = 'ODM' \n" +
"ORDER BY\n" +
"\t折算人民币价税合计 DESC";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("MouldingStyleCode",rs.getString("MouldingStyleCode"));
map.put("CNY",rs.getString("CNY"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
/**
* 已完成订单交期
* 根据工艺员共计数量
*/
public static List<HashMap<String,String>> DoFinishedSampleAvgDay() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"\tTechnologist,\n" +
"\tCOUNT(id) as num,\n" +
"\tAVG (\n" +
"\tCAST ( [分解天数] AS FLOAT )) AS avg_f,\n" +
"\tAVG ( CAST ( [交期天数] AS FLOAT ) ) AS avg_j \n" +
"FROM\n" +
"\t[dbo].[chen_打样分析汇总] \n" +
"WHERE\n" +
"\tStatus = 3 \n" +
"GROUP BY\n" +
"\tTechnologist";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("Technologist",rs.getString("Technologist"));
map.put("avg_f",rs.getString("avg_f"));
map.put("num",rs.getString("num"));
map.put("avg_j",rs.getString("avg_j"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
/**
* 未完成打样交期
* 根据工艺员共计数量
*/
public static List<HashMap<String,String>> DoUnFinishedSampleAvgDay() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"\tTechnologist,\n" +
"\tCOUNT ( id ) AS num,\n" +
"\tSUM ( CASE WHEN use_date >= 15 THEN 1 ELSE 0 END ) as day15num,\n" +
"\tAVG(use_date) as avg_use_date\n" +
"\tFROM\n" +
"\t\t( SELECT Technologist, id, DATEDIFF( DAY, [经理审核时间], GETDATE()) AS use_date FROM [dbo].[chen_打样分析汇总] WHERE ( Status = 2 OR Status = 1 ) AND [经理审核时间] IS NOT NULL ) AS db0 \n" +
"GROUP BY\n" +
"\tTechnologist";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("Technologist",rs.getString("Technologist"));
map.put("day15num",rs.getString("day15num"));
map.put("num",rs.getString("num"));
map.put("avg_use_date",rs.getString("avg_use_date"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
/**
* 新增订单
*
*/
public static List<HashMap<String,String>> DayFinishedSampleOrder() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"dbo.[chen_打样分析汇总].Technologist,\n" +
"dbo.[chen_打样分析汇总].SalesMan,\n" +
"dbo.[chen_打样分析汇总].MouldingStyleCode,\n" +
"dbo.[chen_打样分析汇总].[折算人民币价税合计] as CNY\n" +
"\n" +
"FROM\n" +
"dbo.[chen_打样分析汇总]\n" +
"WHERE\n" +
"dbo.[chen_打样分析汇总].CreatedOn >= dbo.GetWorkShiftStartDate ( GETDATE( ) - 1 ) AND\n" +
"dbo.[chen_打样分析汇总].CreatedOn <= dbo.GetWorkShiftStartDate ( GETDATE( ) )\n";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("Technologist",rs.getString("Technologist"));
map.put("SalesMan",rs.getString("SalesMan"));
map.put("MouldingStyleCode",rs.getString("MouldingStyleCode"));
map.put("CNY",rs.getString("CNY"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
/**
* 新开模
*
*/
public static List<HashMap<String,String>> DayNewMould() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"dbo.MouldManufacture.MouldCode,\n" +
"CASE dbo.MouldManufacture.ManufactureType\n" +
"\tWHEN 1 THEN N'新开模'\n" +
"\tELSE N'修模'\n" +
"END as new_or_fix\n" +
",\n" +
"BD_User.UserName\n" +
"FROM\n" +
"dbo.MouldManufacture\n" +
"INNER JOIN BD_User on dbo.MouldManufacture.CreatedBy = BD_User.UserId\n" +
"WHERE\n" +
"dbo.MouldManufacture.CreatedOn >= dbo.GetWorkShiftStartDate ( GETDATE( ) - 1 ) AND\n" +
"dbo.MouldManufacture.CreatedOn <= dbo.GetWorkShiftStartDate ( GETDATE( ) ) AND\n" +
"dbo.MouldManufacture.Status <> -1\n";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("UserName",rs.getString("UserName"));
map.put("new_or_fix",rs.getString("new_or_fix"));
map.put("MouldCode",rs.getString("MouldCode"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
/**
* 打样完成
*
*/
public static List<HashMap<String,String>> DayFinishedSample() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"\tdbo.[chen_打样分析汇总].MouldingStyleCode,\n" +
"\tdbo.[chen_打样分析汇总].Technologist,\n" +
"\tdbo.[chen_打样分析汇总].FinishedDensity,\n" +
"\tdbo.[chen_打样分析汇总].FinishedSpeed,\n" +
"\tdbo.[chen_打样分析汇总].FinishedBy,\n" +
"\tdbo.[chen_打样分析汇总].[交期天数] as UseDay\n" +
"FROM\n" +
"\tdbo.[chen_打样分析汇总] \n" +
"WHERE\n" +
"\tdbo.[chen_打样分析汇总].FinishedOn >= dbo.GetWorkShiftStartDate ( GETDATE( ) - 1 ) \n" +
"\tAND dbo.[chen_打样分析汇总].FinishedOn <= dbo.GetWorkShiftStartDate ( GETDATE( ) )";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("MouldingStyleCode",rs.getString("MouldingStyleCode"));
map.put("Technologist",rs.getString("Technologist"));
map.put("FinishedDensity",rs.getString("FinishedDensity"));
map.put("FinishedSpeed",rs.getString("FinishedSpeed"));
map.put("FinishedBy",rs.getString("FinishedBy"));
map.put("UseDay",rs.getString("UseDay"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
/**
* BOM完成
*
*/
public static List<HashMap<String,String>> DayFinishedBOM() {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT\n" +
"dbo.MouldingTechnicalForm.MouldingStyleCode,\n" +
"dbo.MouldingTechnicalForm.Maker\n" +
"\n" +
"FROM\n" +
"dbo.MouldingTechnicalForm\n" +
"WHERE\n" +
"dbo.MouldingTechnicalForm.ModifiedOn >= dbo.GetWorkShiftStartDate ( GETDATE( ) - 1 ) AND\n" +
"dbo.MouldingTechnicalForm.ModifiedOn <= dbo.GetWorkShiftStartDate ( GETDATE( ) )";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("MouldingStyleCode",rs.getString("MouldingStyleCode"));
map.put("Maker",rs.getString("Maker"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
public static String All() {
StringBuilder jsonpath = new StringBuilder();
try {
Connection conn = getSQLConnection();
String sql = "SELECT * from [chen_打样分析汇总] order by CreatedOn desc FOR JSON PATH";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
jsonpath.append(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return jsonpath.toString();
}
public static String AllDataDataRange(String fDateStart,String fDateEnd) {
StringBuilder jsonpath = new StringBuilder();
try {
Connection conn = getSQLConnection();
String sql = "SELECT * from [chen_打样分析汇总] where CreatedOn >= '"+fDateStart+"' and CreatedOn <= '"+fDateEnd+"' order by CreatedOn desc FOR JSON PATH";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
jsonpath.append(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return jsonpath.toString();
}
//除了 画框 婚纱框 相框 镜框
public static List<HashMap<String,String>> getBestByProductionLine(String ProductionLine) {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT DISTINCT TOP\n" +
"\t20 chen_12个月_A版本BOM销售额.MouldingStyleCode,\n" +
"\tchen_12个月_A版本BOM销售额.[折算人民币价税合计] AS CNY,\n" +
"\tchen_打样分析汇总.[客户数量] as CustomerNum,\n" +
"\tMouldingSampleMakingMasterSchedule.ProductionLine ,\n" +
"\t( SELECT TOP 1 SHCountry FROM MouldingDataStatistics WHERE MouldingCode = reverse( SUBSTRING ( reverse( chen_12个月_A版本BOM销售额.MouldingStyleCode ), charindex( '-', reverse( chen_12个月_A版本BOM销售额.MouldingStyleCode ) ) + 1, 500 ) ) and SHCountry is not null GROUP BY SHCountry ORDER BY SUM ( SHMouldingSaleLength ) DESC ) AS Area \n" +
"FROM\n" +
"\t[chen_12个月_A版本BOM销售额]\n" +
"\tLEFT JOIN MouldingSampleMakingMasterSchedule ON MouldingSampleMakingMasterSchedule.MouldingStyleCode = chen_12个月_A版本BOM销售额.MouldingStyleCode\n" +
"\tINNER JOIN [chen_打样分析汇总] ON chen_打样分析汇总.MouldingStyleCode = chen_12个月_A版本BOM销售额.MouldingStyleCode \n" +
"WHERE\n" +
"\tMouldingSampleMakingMasterSchedule.ProductionLine = '"+ProductionLine+"' \n" +
"ORDER BY\n" +
"\tchen_12个月_A版本BOM销售额.折算人民币价税合计 DESC";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("MouldingStyleCode",rs.getString("MouldingStyleCode"));
map.put("CNY",rs.getString("CNY"));
map.put("Area",rs.getString("Area"));
map.put("CustomerNum",rs.getString("CustomerNum"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
//除了 画框 婚纱框 相框 镜框
public static List<HashMap<String,String>> getBestByProductionLine_Jiancai( ) {
List<HashMap<String,String>> hashMapList = new ArrayList<>();
try {
Connection conn = getSQLConnection();
String sql = "SELECT DISTINCT TOP\n" +
"\t20 chen_12个月_A版本BOM销售额.MouldingStyleCode,\n" +
"\tchen_12个月_A版本BOM销售额.[折算人民币价税合计] AS CNY,\tchen_打样分析汇总.[客户数量] as CustomerNum,\n" +
"\tMouldingSampleMakingMasterSchedule.ProductionLine ,\n" +
"\n" +
"\t(SELECT TOP\n" +
"\t1 SHCountry \n" +
"FROM\n" +
"\tMouldingDataStatistics \n" +
"WHERE MouldingCode = reverse(substring(reverse(chen_12个月_A版本BOM销售额.MouldingStyleCode),charindex('-',reverse(chen_12个月_A版本BOM销售额.MouldingStyleCode)) +1,500)) and SHCountry is not null\n" +
"GROUP BY SHCountry\n" +
"ORDER BY sum(SHMouldingSaleLength) desc ) as Area\n" +
"FROM\n" +
"\t[chen_12个月_A版本BOM销售额]\n" +
"\tLEFT JOIN MouldingSampleMakingMasterSchedule ON MouldingSampleMakingMasterSchedule.MouldingStyleCode = chen_12个月_A版本BOM销售额.MouldingStyleCode \n" +
"\tINNER JOIN [chen_打样分析汇总] on chen_打样分析汇总.MouldingStyleCode = chen_12个月_A版本BOM销售额.MouldingStyleCode\n" +
"\n" +
"WHERE\n" +
"\tSUBSTRING(chen_12个月_A版本BOM销售额.MouldingStyleCode,1,1) = 'J'\n" +
"\n" +
"ORDER BY\n" +
"\tchen_12个月_A版本BOM销售额.折算人民币价税合计 DESC";
Statement stmt = conn.createStatement();//
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 截面积(mm2)
HashMap<String,String> map = new HashMap<>();
map.put("MouldingStyleCode",rs.getString("MouldingStyleCode"));
map.put("CNY",rs.getString("CNY"));
map.put("Area",rs.getString("Area"));
map.put("CustomerNum",rs.getString("CustomerNum"));
hashMapList.add(map);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return hashMapList;
}
}

View File

@ -0,0 +1,24 @@
Application Version: ${ruoyi.version}
Spring Boot Version: ${spring-boot.version}
////////////////////////////////////////////////////////////////////
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永不宕机 永无BUG //
////////////////////////////////////////////////////////////////////

View File

@ -0,0 +1,43 @@
package com.ruoyi.project.sd_changemouldtime.controller;
import com.ruoyi.db.sd_mssql.DB_Ajax_DashBoard_ChangeMouldTime_8053;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 服务器监控
*
* @author ruoyi
*/
@RestController
@RequestMapping("/sd_changemouldtime")
public class SDChangeMouldTimeController extends BaseController
{
// @PreAuthorize("@ss.hasPermi('monitor:server:list')")
@GetMapping("/list")
public AjaxResult DoGetChangeMouldTimeList() throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_ChangeMouldTime_8053.DoGetChangeMouldTimeList());
}
@GetMapping("/DoGetChangeMouldTimeListDateRange/{fDateStart}/{fDateEnd}")
public AjaxResult DoGetChangeMouldTimeListDateRange(@PathVariable String fDateStart, @PathVariable String fDateEnd) throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_ChangeMouldTime_8053.DoGetChangeMouldTimeListDateRange(fDateStart,fDateEnd));
}
@GetMapping("/rangetimeavg/{fDateStart}/{fDateEnd}")
public AjaxResult getRangeTimeAvg(@PathVariable String fDateStart, @PathVariable String fDateEnd) throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_ChangeMouldTime_8053.DoGet_avg_changemouldtime_date_range(fDateStart,fDateEnd));
}
}

View File

@ -0,0 +1,24 @@
Application Version: ${ruoyi.version}
Spring Boot Version: ${spring-boot.version}
////////////////////////////////////////////////////////////////////
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永不宕机 永无BUG //
////////////////////////////////////////////////////////////////////

View File

@ -0,0 +1,54 @@
package com.ruoyi.project.sd_dashboard.controller;
import com.ruoyi.db.mssql.DB_Ajax_DashBoard_48102;
import com.ruoyi.db.sd_mssql.DB_Ajax_DashBoard_8053;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 服务器监控
*
* @author ruoyi
*/
@RestController
@RequestMapping("/sd_dashboard")
public class SDDashBoardController extends BaseController
{
// @PreAuthorize("@ss.hasPermi('monitor:server:list')")
@GetMapping("/30day")
public AjaxResult get30Day() throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_8053.DoGet30Day());
}
@GetMapping("/lastday")
public AjaxResult getLastDay() throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_8053.DoGetLastDay());
}
@GetMapping("/group")
public AjaxResult getGroup() throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_8053.DoGetCurrentTimeGroup());
}
@GetMapping("/current")
public AjaxResult DoGetCurrent() throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_48102.SD_DoGetCurrent());
}
@GetMapping("/daterange/{fDateStart}/{fDateEnd}")
public AjaxResult getDateRange(@PathVariable String fDateStart, @PathVariable String fDateEnd) throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_8053.DoGetDateRange(fDateStart,fDateEnd));
}
}

View File

@ -0,0 +1,49 @@
package com.ruoyi.project.sd_density;
import com.ruoyi.db.mssql.DB_Ajax_DashBoard_Density_48102;
import com.ruoyi.db.sd_mssql.DB_Ajax_DashBoard_Density_8053;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 服务器监控
*
* @author ruoyi
*/
@RestController
@RequestMapping("/sd_density")
public class SDDensityController extends BaseController
{
// @PreAuthorize("@ss.hasPermi('monitor:server:list')")
@GetMapping("/30day")
public AjaxResult get30Day() throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_Density_8053.DoGet30dDensityListMap());
}
@GetMapping("/72h")
public AjaxResult get72h() throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_Density_8053.DoGet72hDensityListMap());
}
@GetMapping("/group")
public AjaxResult getGroup() throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_Density_8053.DoGetGroupDensityListMap());
}
@GetMapping("/getDensityDataRange/{fDateStart}/{fDateEnd}")
public AjaxResult getDateRange(@PathVariable String fDateStart, @PathVariable String fDateEnd) throws Exception
{
return AjaxResult.success(DB_Ajax_DashBoard_Density_8053.getDensityDataRange(fDateStart,fDateEnd));
}
}

View File

@ -82,7 +82,7 @@ token:
# 令牌密钥
secret: abcdefghijklmnopqrstuvwxyz
# 令牌有效期默认30分钟
expireTime: 30
expireTime: 99999
# MyBatis配置
mybatis: