From 9ebb88c8541a1d351a10042bdd7c2fd319d3f6bb Mon Sep 17 00:00:00 2001 From: wujian <14790700720@163.com> Date: 星期三, 24 一月 2024 09:27:04 +0800 Subject: [PATCH] add 首页 --- jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml | 4 jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java | 9 + jcdm-ui/src/views/index.vue | 14 - jcdm-ui/src/api/main/da/passingStationCollection/passingStationCollection.js | 9 + jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java | 20 ++ jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java | 10 + jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java | 36 ++++ jcdm-ui/src/views/dashboard/PanelGroup.vue | 338 +++++++++++++++++++----------------------- jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java | 3 jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/common/Constants.java | 5 10 files changed, 254 insertions(+), 194 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java index 1907f60..83eb39f 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java +++ b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java @@ -1,11 +1,17 @@ package com.jcdm.main.bs.orderScheduling.domain; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.jcdm.common.annotation.Excel; import com.jcdm.common.core.domain.BaseEntity; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; import java.util.Date; +import java.util.List; /** * 璁㈠崟鎺掍骇瀵硅薄 bs_order_scheduling @@ -13,6 +19,7 @@ * @author jiang * @date 2024-01-13 */ +@Data public class BsOrderScheduling extends BaseEntity { private static final long serialVersionUID = 1L; @@ -146,6 +153,19 @@ @Excel(name = "CVT涓嬬嚎鏃堕棿") private Date cvtOfflineTime; + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startQuery; + + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endQuery; + + @TableField(exist = false) + private String queryField; + public Date getBoxClosingOnlineTime() { return boxClosingOnlineTime; } diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java index 11a711b..39bb248 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java +++ b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java @@ -29,6 +29,9 @@ */ public List<BsOrderScheduling> selectBsOrderSchedulingList(BsOrderScheduling bsOrderScheduling); + + public Integer getProduceNumToday(BsOrderScheduling bsOrderScheduling); + /** * 鏌ヨ鍚堢涓婄嚎鍒楄〃 * diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/common/Constants.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/common/Constants.java new file mode 100644 index 0000000..5b0d40e --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/common/Constants.java @@ -0,0 +1,5 @@ +package com.jcdm.main.da.passingStationCollection.common; + +public final class Constants { + +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java index 999b8e7..f315cc9 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java @@ -3,7 +3,9 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.jcdm.common.core.domain.R; import com.jcdm.common.utils.DateUtils; +import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; import org.springframework.security.access.prepost.PreAuthorize; @@ -48,6 +50,14 @@ return getDataTable(list); } + @PreAuthorize("@ss.hasPermi('da:passingStationCollection:list')") + @GetMapping("/getProduceNumToday") + public R getProduceNumToday(String fieldName) + { + Integer num = daPassingStationCollectionService.getProduceNumToday(fieldName); + return R.ok(num); + } + /** * 瀵煎嚭浜у搧杩囩珯閲囬泦鍒楄〃 */ diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java index e251e00..81cc555 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java @@ -1,5 +1,6 @@ package com.jcdm.main.da.passingStationCollection.service; +import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; import java.util.List; @@ -28,6 +29,14 @@ */ public List<DaPassingStationCollection> selectDaPassingStationCollectionList(DaPassingStationCollection daPassingStationCollection); + + /** + * 鑾峰彇棣栭〉鍗曟棩绱閲忎骇鏁版嵁 + * @param fieldName bs + * @return list + */ + public Integer getProduceNumToday(String fieldName); + /** * 鏂板浜у搧杩囩珯閲囬泦 * diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java index c5d10a9..9860373 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java @@ -1,11 +1,21 @@ package com.jcdm.main.da.passingStationCollection.service.impl; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.List; + +import com.jcdm.common.constant.Constants; import com.jcdm.common.utils.DateUtils; +import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; +import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper; +import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper; import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Service; /** @@ -19,6 +29,12 @@ { @Autowired private DaPassingStationCollectionMapper daPassingStationCollectionMapper; + + @Autowired + private BsOrderSchedulingMapper bsOrderSchedulingMapper; + + @Autowired + private IBsOrderSchedulingService bsOrderSchedulingService; /** * 鏌ヨ浜у搧杩囩珯閲囬泦 @@ -45,6 +61,26 @@ } /** + * 鑾峰彇棣栭〉鍗曟棩绱閲忎骇鏁版嵁 + * @param fieldName bs + * @return list + */ + @Override + public Integer getProduceNumToday(String fieldName) { + + BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); + bsOrderScheduling.setQueryField(fieldName); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime startTime = LocalDate.now().atStartOfDay(); + LocalDateTime endTime = LocalDate.now().plusDays(1).atStartOfDay(); + String s1 = startTime.format(formatter); + String s2 = endTime.format(formatter); + bsOrderScheduling.setStartTime(s1); + bsOrderScheduling.setEndTime(s2); + return bsOrderSchedulingMapper.getProduceNumToday(bsOrderScheduling); + } + + /** * 鏂板浜у搧杩囩珯閲囬泦 * * @param daPassingStationCollection 浜у搧杩囩珯閲囬泦 diff --git a/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml b/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml index 39d1b06..6495b9d 100644 --- a/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml +++ b/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml @@ -99,6 +99,10 @@ </if> </where> </select> + <select id="getProduceNumToday" resultType="java.lang.Integer"> + select count(*) from bs_order_scheduling + where ${queryField} BETWEEN #{startTime} AND #{endTime} + </select> <insert id="insertBsOrderScheduling" parameterType="BsOrderScheduling" useGeneratedKeys="true" keyProperty="id"> diff --git a/jcdm-ui/src/api/main/da/passingStationCollection/passingStationCollection.js b/jcdm-ui/src/api/main/da/passingStationCollection/passingStationCollection.js index 6d6b40a..f852ed8 100644 --- a/jcdm-ui/src/api/main/da/passingStationCollection/passingStationCollection.js +++ b/jcdm-ui/src/api/main/da/passingStationCollection/passingStationCollection.js @@ -9,6 +9,15 @@ }) } +// 鑾峰彇棣栭〉鍗曟棩绱閲忎骇鏁版嵁 +export function getProduceNumToday(query) { + return request({ + url: '/da/passingStationCollection/getProduceNumToday', + method: 'get', + params: query + }) +} + // 鏌ヨ浜у搧杩囩珯閲囬泦璇︾粏 export function getPassingStationCollection(id) { return request({ diff --git a/jcdm-ui/src/views/dashboard/PanelGroup.vue b/jcdm-ui/src/views/dashboard/PanelGroup.vue index 29156b6..5400808 100644 --- a/jcdm-ui/src/views/dashboard/PanelGroup.vue +++ b/jcdm-ui/src/views/dashboard/PanelGroup.vue @@ -2,89 +2,61 @@ <el-row :gutter="40" class="panel-group"> <el-card class="bottom-card"> <div slot="header" class="clearfix"> - <span class="top2">鍗曟棩绱浜ч噺</span> + <span style="font-size: 20px;font-weight: bold">鍗曟棩绱浜ч噺</span> </div> - <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('newVisitis')"> - <div class="card-panel-icon-wrapper icon-people"> - <svg-icon icon-class="peoples" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - 鍚堢涓婄嚎 + <div style="display: flex; margin-top: 20px; height: 80px;"> + <div class="transition-box" style="background-color: limegreen"> + <i class="el-icon-notebook-1"></i> + <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider> + <div> + <span style="margin-left: 20px" class="nextLine">鍚堢涓婄嚎</span> + <span class="nextLine">{{data1}}</span> </div> - <count-to :start-val="0" :end-val="10200" :duration="2600" class="card-panel-num" /> </div> - </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('messages')"> - <div class="card-panel-icon-wrapper icon-message"> - <svg-icon icon-class="message" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - 鍚堢涓嬬嚎 + <div class="transition-box" style="background-color: cornflowerblue"> + <i class="el-icon-setting"></i> + <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider> + <div> + <span style="margin-left: 20px" class="nextLine">鍚堢涓嬬嚎</span> + <span class="nextLine">{{data2}}</span> </div> - <count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" /> - </div> - </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('purchases')"> - <div class="card-panel-icon-wrapper icon-money"> - <svg-icon icon-class="money" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - 鎬昏涓婄嚎 - </div> - <count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" /> - </div> - </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('shoppings')"> - <div class="card-panel-icon-wrapper icon-shopping"> - <svg-icon icon-class="shopping" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - 鎬昏涓嬬嚎 - </div> - <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" /> - </div> - </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('shoppings')"> - <div class="card-panel-icon-wrapper icon-shopping"> - <svg-icon icon-class="shopping" class-name="card-panel-icon" /> </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - CVT涓婄嚎 + <div class="transition-box" style="background-color: mediumpurple"> + <i class="el-icon-s-unfold"></i> + <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider> + <div> + <span style="margin-left: 20px">鎬昏涓婄嚎</span> + <span class="nextLine">{{data3}}</span> </div> - <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" /> + </div> + <div class="transition-box" style="background-color: green"> + <i class="el-icon-cpu"></i> + <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider> + <div> + <span style="margin-left: 20px">鎬昏涓嬬嚎</span> + <span class="nextLine">{{data4}}</span> + </div> + </div> + <div class="transition-box" style="background-color: orange"> + <i class="el-icon-upload2"></i> + <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider> + <div> + <span style="margin-left: 20px">CVT涓婄嚎</span> + <span class="nextLine">{{data5}}</span> + </div> + </div> + <div class="transition-box" style="background-color: darkslategray"> + <i class="el-icon-finished"></i> + <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider> + <div> + <span style="margin-left: 20px">CVT涓嬬嚎</span> + <span class="nextLine">{{data6}}</span> + </div> </div> </div> - </el-col> - <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col"> - <div class="card-panel" @click="handleSetLineChartData('shoppings')"> - <div class="card-panel-icon-wrapper icon-shopping"> - <svg-icon icon-class="shopping" class-name="card-panel-icon" /> - </div> - <div class="card-panel-description"> - <div class="card-panel-text"> - CVT涓嬬嚎 - </div> - <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" /> - </div> - </div> - </el-col> </el-card> </el-row> @@ -93,142 +65,138 @@ <script> import CountTo from 'vue-count-to' +import { getProduceNumToday } from '@/api/main/da/passingStationCollection/passingStationCollection' export default { components: { CountTo }, + data(){ + return{ + query1:'box_closing_online_time', + data1:'', + query2:'closing_box_offline_time', + data2:'', + query3:'final_assembly_launch_time', + data3:'', + query4:'final_assembly_offline_time', + data4:'', + query5:'cvt_launch_time', + data5:'', + query6:'cvt_offline_time', + data6:'', + } + }, methods: { handleSetLineChartData(type) { this.$emit('handleSetLineChartData', type) + }, + getData1(){ + getProduceNumToday({fieldName:this.query1}).then(response => { + this.data1 = response.data; + }); + }, + getData2(){ + getProduceNumToday({fieldName:this.query2}).then(response => { + this.data2 = response.data; + }); + }, + getData3(){ + getProduceNumToday({fieldName:this.query3}).then(response => { + this.data3 = response.data; + }); + }, + getData4(){ + getProduceNumToday({fieldName:this.query4}).then(response => { + this.data4 = response.data; + }); + }, + getData5(){ + getProduceNumToday({fieldName:this.query5}).then(response => { + this.data5 = response.data; + }); + }, + getData6(){ + getProduceNumToday({fieldName:this.query6}).then(response => { + this.data6 = response.data; + }); } + }, + mounted() { + this.getData1(), + this.getData2(), + this.getData3(), + this.getData4(), + this.getData5(), + this.getData6() } } </script> <style lang="scss" scoped> + +.transition-box { + display: flex; + align-items: center; + margin-bottom: 10px; + width: 200px; + height: 80px; + border-radius: 4px; + text-align: center; + color: #fff; + padding: 40px 20px; + box-sizing: border-box; + margin-right: 10px; +} + .bottom-card{ - padding: 15px 20px 20px 20px; + padding: 0px 10px 20px 10px; height: auto; - width: 1272px; + width: 1292px; margin-left: 20px; justify-content: center; column-width: max-content; } - -.top2{ - font-size: 18px; - font-weight: bold; - margin-bottom: 0px; +.el-icon-notebook-1{ + font-size: 40px; + display: flex; + justify-content: left; } - -.panel-group { - - width: 1272px; +.el-icon-setting{ + font-size: 40px; + display: flex; + justify-content: left; +} +.el-icon-s-unfold{ + font-size: 40px; + display: flex; + justify-content: left; +} +.el-icon-cpu{ + font-size: 40px; + display: flex; + justify-content: left; +} +.el-icon-upload2 { + font-size: 40px; + display: flex; + justify-content: left; +} +.el-icon-finished{ + font-size: 40px; + display: flex; + justify-content: left; +} +.el-divider--vertical{ + width:2px; + height:40px; //鏇存敼绔栧悜鍒嗗壊绾块暱搴� + vertical-align:middle; + position:relative; +} +.nextLine{ + display: block; margin-left: 20px; - .card-panel-col { - margin-bottom: 32px; - } - - .card-panel { - height: 108px; - cursor: pointer; - font-size: 12px; - position: relative; - overflow: hidden; - color: #666; - background: #fff; - box-shadow: 4px 4px 40px rgba(0, 0, 0, .05); - border-color: rgba(0, 0, 0, .05); - - &:hover { - .card-panel-icon-wrapper { - color: #fff; - } - - .icon-people { - background: #40c9c6; - } - - .icon-message { - background: #36a3f7; - } - - .icon-money { - background: #f4516c; - } - - .icon-shopping { - background: #34bfa3 - } - } - - .icon-people { - color: #40c9c6; - } - - .icon-message { - color: #36a3f7; - } - - .icon-money { - color: #f4516c; - } - - .icon-shopping { - color: #34bfa3 - } - - .card-panel-icon-wrapper { - float: left; - margin: 14px 0 0 14px; - padding: 16px; - transition: all 0.38s ease-out; - border-radius: 6px; - } - - .card-panel-icon { - float: left; - font-size: 48px; - } - - .card-panel-description { - float: right; - font-weight: bold; - margin: 26px; - margin-left: 0px; - padding: 20px 20px; - - .card-panel-text { - line-height: 14px; - color: rgba(0, 0, 0, 0.45); - font-size: 12px; - margin-bottom: 9px; - } - - .card-panel-num { - font-size: 18px; - } - } - } } -@media (max-width:550px) { - .card-panel-description { - display: none; - } - .card-panel-icon-wrapper { - float: none !important; - width: 100%; - height: 100%; - margin: 0 !important; - - .svg-icon { - display: block; - margin: 14px auto !important; - float: none !important; - } - } -} </style> diff --git a/jcdm-ui/src/views/index.vue b/jcdm-ui/src/views/index.vue index 37ff1f2..c0abca2 100644 --- a/jcdm-ui/src/views/index.vue +++ b/jcdm-ui/src/views/index.vue @@ -1,19 +1,15 @@ <template> <div class="dashboard-editor-container"> - <panel-group @handleSetLineChartData="handleSetLineChartData" /> + <panel-group style="margin-bottom: 10px" @handleSetLineChartData="handleSetLineChartData" /> - <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;"> + <el-row style="background:#fff;padding:16px 16px 0; width: 1292px"> <el-col :xs="24" :sm="12"> - <el-card> - <pie-chart /> - </el-card> + <pie-chart /> </el-col> <el-col :xs="24" :sm="12"> - <el-card> - <line-chart :chart-data="lineChartData" /> - </el-card> + <line-chart :chart-data="lineChartData" /> </el-col> </el-row> @@ -73,7 +69,7 @@ <style lang="scss" scoped> .dashboard-editor-container { - padding: 32px; + padding: 20px; background-color: rgb(240, 242, 245); position: relative; -- Gitblit v1.9.3