From 7c416e34ee8c0b325d339a6cf627984653744341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Wed, 7 May 2025 00:37:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yanzhu-bigscreen/src/api/index.js | 2 + yanzhu-bigscreen/src/api/planSchedule.js | 23 + .../src/views/safety/aiWarning.vue | 135 +++-- .../src/views/schedule/planSchedule.vue | 561 ++++++++++++++++-- .../com/yanzhu/manage/domain/ProPlan.java | 20 + .../yanzhu/manage/domain/ProPlanSchedule.java | 12 + .../yanzhu/manage/mapper/ProPlanMapper.java | 5 + .../manage/mapper/ProPlanScheduleMapper.java | 8 + .../resources/mapper/manage/ProPlanMapper.xml | 72 +++ .../mapper/manage/ProPlanScheduleMapper.xml | 21 +- .../DevAiProjectDataController.java | 3 - .../manage/controller/ProPlanController.java | 9 + .../controller/ProPlanScheduleController.java | 11 + .../manage/service/IProPlanService.java | 5 + .../impl/ProPlanScheduleServiceImpl.java | 22 +- .../service/impl/ProPlanServiceImpl.java | 8 + 16 files changed, 806 insertions(+), 111 deletions(-) create mode 100644 yanzhu-bigscreen/src/api/planSchedule.js diff --git a/yanzhu-bigscreen/src/api/index.js b/yanzhu-bigscreen/src/api/index.js index bdeaef43..182e2ef2 100644 --- a/yanzhu-bigscreen/src/api/index.js +++ b/yanzhu-bigscreen/src/api/index.js @@ -9,6 +9,7 @@ import safety from "./safety"; import tower from "./tower"; import powerIot from "./powerIot"; import aiWarning from "./aiWarning"; +import planSchedule from './planSchedule'; export default { http: axios, downFile: download, @@ -22,4 +23,5 @@ export default { tower, powerIot, aiWarning, + planSchedule, }; diff --git a/yanzhu-bigscreen/src/api/planSchedule.js b/yanzhu-bigscreen/src/api/planSchedule.js new file mode 100644 index 00000000..5307cb0f --- /dev/null +++ b/yanzhu-bigscreen/src/api/planSchedule.js @@ -0,0 +1,23 @@ +import request from "@/utils/request"; + +// 查询计划管理列表 +const findAllPlanDatas = (proId) => { + return request({ + url: `/manage/plan/findAllPlanDatas/${proId}`, + method: "get", + }); +}; + +// 查询项目进度列表 +const findAllSchedule = (data) => { + return request({ + url: `/manage/schedule/findAll`, + method: "post", + data:data + }); +}; + +export default { + findAllPlanDatas, + findAllSchedule +}; diff --git a/yanzhu-bigscreen/src/views/safety/aiWarning.vue b/yanzhu-bigscreen/src/views/safety/aiWarning.vue index b07594a8..2361edd5 100644 --- a/yanzhu-bigscreen/src/views/safety/aiWarning.vue +++ b/yanzhu-bigscreen/src/views/safety/aiWarning.vue @@ -12,7 +12,7 @@ :height="230" > - + 0){ + if (this.selDate.length > 0) { let _params = { beginTime: this.selDate[0], - endTime: this.selDate[1] - } + endTime: this.selDate[1], + }; postData.params = _params; } if (this.selType != 0) { postData.alarmType = this.selType; } - this.$api.aiWarning - .list(postData) - .then((d) => { - this.listPage.total = d.total || 0; - this.listDatas = d.rows || []; - this.listKey++; - }); + this.$api.aiWarning.list(postData).then((d) => { + this.listPage.total = d.total || 0; + this.listDatas = d.rows || []; + this.listKey++; + }); }, loadTodayList() { let postData = { @@ -306,45 +323,47 @@ export default { pageSize: this.todayPage.pageSize, projectId: this.selProject.id, params: { - date: new Date().toLocaleDateString().replaceAll("/","-"), + date: new Date().toLocaleDateString().replaceAll("/", "-"), }, }; - this.$api.aiWarning - .list(postData) - .then((d) => { - this.todayPage.total = d.total || 0; - this.todayList = d.rows || []; - this.todayKey++; - }); + this.$api.aiWarning.list(postData).then((d) => { + this.todayPage.total = d.total || 0; + this.todayList = d.rows || []; + this.todayKey++; + }); }, getAiVideoAlertorTypeCount() { //今日视图 - this.$api.aiWarning.groupCountByAlarmType(this.selProject.id, "Y").then((response) => { - if (response.data) { - let sum = 0; - response.data.forEach((datum) => { - sum += datum.value; - }); - this.overviewTotalDay = sum; - this.typeDistributionDataDay = response.data; - this.overviewDay++; - } - }); + this.$api.aiWarning + .groupCountByAlarmType(this.selProject.id, "Y") + .then((response) => { + if (response.data) { + let sum = 0; + response.data.forEach((datum) => { + sum += datum.value; + }); + this.overviewTotalDay = sum; + this.typeDistributionDataDay = response.data; + this.overviewDay++; + } + }); //累计视图 - this.$api.aiWarning.groupCountByAlarmType(this.selProject.id, "N").then((response) => { - if (response.data) { - let sum = 0; - response.data.forEach((datum) => { - sum += datum.value; - }); - this.overviewTotal = sum; - this.typeDistributionData = response.data; - this.overview++; - } - }); + this.$api.aiWarning + .groupCountByAlarmType(this.selProject.id, "N") + .then((response) => { + if (response.data) { + let sum = 0; + response.data.forEach((datum) => { + sum += datum.value; + }); + this.overviewTotal = sum; + this.typeDistributionData = response.data; + this.overview++; + } + }); }, - daysTrendView(){ + daysTrendView() { this.$api.aiWarning.getDaysTrendView(this.selProject.id).then((response) => { if (response.data) { let _data1 = []; @@ -355,14 +374,19 @@ export default { }); let _lineData = []; _lineData.push(_data1); - let _color = ['#0078e7']; - let _legend = ['预警总数']; - let _trendData = {'lineData':_lineData,'color':_color,'legend':_legend,'date':_date8}; + let _color = ["#0078e7"]; + let _legend = ["预警总数"]; + let _trendData = { + lineData: _lineData, + color: _color, + legend: _legend, + date: _date8, + }; this.warningData = _trendData; } }); }, - initIntervalTimes(){ + initIntervalTimes() { this.intervalTimes = setInterval(this.init, 150000); // 每2.5分钟刷新一次 }, }, @@ -370,10 +394,9 @@ export default { \ No newline at end of file + diff --git a/yanzhu-bigscreen/src/views/schedule/planSchedule.vue b/yanzhu-bigscreen/src/views/schedule/planSchedule.vue index 17f33c5b..78e1e060 100644 --- a/yanzhu-bigscreen/src/views/schedule/planSchedule.vue +++ b/yanzhu-bigscreen/src/views/schedule/planSchedule.vue @@ -1,5 +1,5 @@ - +
-
- -
+
{{ it.scheduleNode }} %
- 测试计划名称1 + {{ it.taskName }}
- {{ it.value || 0 }} -
-
-
-
-
- -
-
-
- 测试计划名称2 -
-
- {{ it.value || 0 }} + 计划周期:{{ it.planStartDate }}-{{ it.planFinishDate }}
- - -
- -
暂无数据
-
-
+ + + + + + + + +
+ + +
+
+ + + +
+
+

任务数

+
1
+
+
+
+ +
+
+ + + +
+
+

已完成

+
+ 2 +
+
+
+
+ +
+
+ + + +
+
+

完成率

+
+ 3 + % +
+
+
+
+ +
+
+ + + +
+
+

进行中

+
4
+
+
+
+ +
+
+ + + + +
+
+

已滞后

+
+ 5 +
+
+
+
+ +
+
+ + + + +
+
+

滞后率

+
+ 6 + % +
+
+
+
+
+
+
+
+ + +
+
+ {{ it.scheduleNode }} % +
+
+
+ {{ it.taskName }} +
+
+ 计划周期:{{ it.planStartDate }}-{{ it.planFinishDate }} +
+
+
+
+
+
+ + + + +
@@ -102,10 +309,45 @@ export default { data() { return { + selProject: null, photographyList: [], - info: null, - activeNames: [], - infoList: {}, + jxzjhList: [], + legendOpt: { + icon: "rect", + orient: "horizontal", + itemWidth: "50%", + left: 240, + right: "10%", + itemWidth: 20, + itemGap: 20, + itemHeight: 20, + textStyle: { + padding: [0, 0, 0, 0], + fontSize: 10, + color: "#c3dbfd", + align: "center", + rich: { + name: { + color: "#c3dbfd", + padding: [5, 2, 5, 2], + }, + percent: { + color: "#4676FD", + padding: [0, 2, 0, 2], + }, + }, + }, + }, + overview: 0, + overviewTotal: 0, + overviewDatas: [], + overviewText: "任务计划", + overviewTask: [], + overviewJxzjh: [], //进行中计划 + overviewYwcjh: [], //已完成计划 + overviewYzhjh: [], //已滞后计划 + overviewMonthjh: [], //本月进行计划 + scheduleNodeData: [], }; }, mounted() { @@ -124,18 +366,249 @@ export default { return; } this.initPhotographyList(); + this.initAllPlanDatas(); + this.initScheduleNodes(); }, initPhotographyList() { - this.$api.detail.photographyList(this.selProject.id).then((d) => { - this.photographyList = d.data; + this.$api.detail.photographyList(this.selProject.id).then((res) => { + this.photographyList = res.data; }); }, + initAllPlanDatas() { + this.$api.planSchedule.findAllPlanDatas(this.selProject.id).then((res) => { + let _jxzjhs = []; + let _ywcjhs = []; + let _yzhjhs = []; + let _rwzttj = []; + let _nowMonth = []; + res.data.forEach((item) => { + if (item.taskStatus == "zcjxz" || item.taskStatus == "zhjxz") { + _jxzjhs.push(item); + } + if (item.taskStatus == "zcwc" || item.taskStatus == "zhwc") { + _ywcjhs.push(item); + } + if (item.taskStatus == "zhwc" || item.taskStatus == "zhjxz") { + _yzhjhs.push(item); + } + if (item.nowMonth == "Y") { + _nowMonth.push(item); + } + }); + let _wkss = res.data.filter((ex) => ex.taskStatus === "wks"); + let _zcwcs = res.data.filter((ex) => ex.taskStatus === "zcwc"); + let _zhwcs = res.data.filter((ex) => ex.taskStatus === "zhwc"); + let _zcjxzs = res.data.filter((ex) => ex.taskStatus === "zcjxz"); + let _zhjxzs = res.data.filter((ex) => ex.taskStatus === "zhjxz"); + _rwzttj.push({ name: "未开始", value: _wkss.length }); + _rwzttj.push({ name: "进行中(滞后)", value: _zhwcs.length }); + _rwzttj.push({ name: "进行中(正常)", value: _zcwcs.length }); + _rwzttj.push({ name: "已完成(滞后)", value: _zhjxzs.length }); + _rwzttj.push({ name: "已完成(正常)", value: _zcjxzs.length }); + this.overviewDatas = _rwzttj; + this.overview++; + let _tasks = []; + _tasks.push({ name: "任务数", value: res.data.length }); + _tasks.push({ name: "已完成", value: _ywcjhs.length }); + _tasks.push({ + name: "完成率", + value: ((_ywcjhs.length / res.data.length) * 100).toFixed(2), + }); + _tasks.push({ name: "进行中", value: _jxzjhs.length }); + _tasks.push({ name: "已滞后", value: _yzhjhs.length }); + _tasks.push({ + name: "滞后率", + value: ((_yzhjhs.length / res.data.length) * 100).toFixed(2), + }); + this.overviewTask = []; + (this.overviewJxzjh = _jxzjhs), + (this.overviewYwcjh = _ywcjhs), + (this.overviewYzhjh = _yzhjhs), + (this.overviewMonthjh = _nowMonth); + }); + }, + initScheduleNodes() { + this.$api.planSchedule + .findAllSchedule({ projectId: this.selProject.id }) + .then((res) => { + let _data1 = []; + let _date8 = []; + res.data.forEach((item) => { + _data1.push(item.totalSchedule); + _date8.push(item.createDate); + }); + let _lineData = []; + _lineData.push(_data1); + let _color = ["#0078e7"]; + let _legend = ["施工进度"]; + let _datas = { + lineData: _lineData, + color: _color, + legend: _legend, + unit: "%", + date: _date8, + }; + this.scheduleNodeData = _datas; + }); + }, }, }; -