管理员首页

main
王家东 10 months ago
parent d856f5ab46
commit b58d68081f
  1. 1
      jeecg-boot-master/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
  2. 4
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annual/mapper/AnnualMapper.java
  3. 1
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annual/service/IAnnualService.java
  4. 8
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annual/service/impl/AnnualServiceImpl.java
  5. 34
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annualCompIntface/controller/AnnconalCompController.java
  6. 7
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annualCompIntface/service/AnnconalCompService.java
  7. 111
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annualCompIntface/service/AnnconalCompServiceImpl.java
  8. 7
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annualCompPoint/mapper/AnnualCompPointMapper.java
  9. 6
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annualCompPoint/service/IAnnualCompPointService.java
  10. 13
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annualCompPoint/service/impl/AnnualCompPointServiceImpl.java
  11. 6
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/comp/mapper/CompMapper.java
  12. 5
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/comp/service/ICompService.java
  13. 15
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/comp/service/impl/CompServiceImpl.java
  14. 190
      jeecgboot-vue3-master/src/views/dashboard/Analysis/index1.vue

@ -138,6 +138,7 @@ public class ShiroConfig {
//filterChainDefinitionMap.put("/test/jeecgDemo/html", "anon"); //模板页面
//filterChainDefinitionMap.put("/test/jeecgDemo/redis/**", "anon"); //redis测试
filterChainDefinitionMap.put("/comp/bigScreen/**", "anon");//比赛大屏
filterChainDefinitionMap.put("/admin/inde/**", "anon");//比赛大屏
//websocket排除
filterChainDefinitionMap.put("/websocket/**", "anon");//系统通知和公告

@ -3,6 +3,7 @@ package org.jeecg.modules.demo.annual.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.jeecg.modules.demo.annual.entity.Annual;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -14,4 +15,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface AnnualMapper extends BaseMapper<Annual> {
@Select("select id from annual where annual_name = #{thisyear}")
String getannualthisid(String thisyear);
}

@ -11,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IAnnualService extends IService<Annual> {
String getannualthisid(String thisyear);
}

@ -3,6 +3,7 @@ package org.jeecg.modules.demo.annual.service.impl;
import org.jeecg.modules.demo.annual.entity.Annual;
import org.jeecg.modules.demo.annual.mapper.AnnualMapper;
import org.jeecg.modules.demo.annual.service.IAnnualService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -16,4 +17,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class AnnualServiceImpl extends ServiceImpl<AnnualMapper, Annual> implements IAnnualService {
@Autowired
private AnnualMapper annualMapper;
@Override
public String getannualthisid(String thisyear) {
return annualMapper.getannualthisid(thisyear);
}
}

@ -0,0 +1,34 @@
package org.jeecg.modules.demo.annualCompIntface.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.demo.annualCompIntface.service.AnnconalCompService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@Api(tags = "组委会首页")
@RestController
@RequestMapping("/admin/inde")
@Slf4j
public class AnnconalCompController
{
@Autowired
private AnnconalCompService annconalCompService;
@ApiOperation(value = "管理员首页", notes = "管理员首页")
@GetMapping(value = "/inde")
public Result adminind(HttpServletRequest req) {
Map<String, Object> result = annconalCompService.inde();
return Result.ok(result);
}
}

@ -0,0 +1,7 @@
package org.jeecg.modules.demo.annualCompIntface.service;
import java.util.Map;
public interface AnnconalCompService {
Map<String, Object> inde();
}

@ -0,0 +1,111 @@
package org.jeecg.modules.demo.annualCompIntface.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.demo.annual.entity.Annual;
import org.jeecg.modules.demo.annual.service.IAnnualService;
import org.jeecg.modules.demo.annualCompPoint.entity.AnnualCompPoint;
import org.jeecg.modules.demo.annualCompPoint.service.IAnnualCompPointService;
import org.jeecg.modules.demo.annualcomp.entity.AnnualComp;
import org.jeecg.modules.demo.annualcomp.service.IAnnualCompService;
import org.jeecg.modules.demo.annualcompetitionprojectregistration.entity.AnnualCompetitionProjectRegistration;
import org.jeecg.modules.demo.annualcompetitionprojectregistration.service.IAnnualCompetitionProjectRegistrationService;
import org.jeecg.modules.demo.awardpersion.entity.AwardPersion;
import org.jeecg.modules.demo.comp.entity.Comp;
import org.jeecg.modules.demo.comp.service.ICompService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.Calendar;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class AnnconalCompServiceImpl implements AnnconalCompService{
@Autowired
private ICompService compService;
@Autowired
private IAnnualCompService annualCompService;
@Autowired
private IAnnualService annualService;
@Autowired
private IAnnualCompPointService annualCompPointService;
@Autowired
private IAnnualCompetitionProjectRegistrationService annualCompetitionProjectRegistrationService;
@Override
public Map<String, Object> inde() {
Map<String, Object> resultMap = new LinkedHashMap<>();
LocalDate currentDate = LocalDate.now();
Calendar calendar = Calendar.getInstance();
int currentYear = calendar.get(Calendar.YEAR);
String thisyear =String.valueOf(currentYear);
//本年度已展开比赛数=============================开始====================
String annualId = annualService.getannualthisid(thisyear);
List<AnnualComp> annualCompList = annualCompService.list(new LambdaQueryWrapper<AnnualComp>().eq(AnnualComp::getAnnualid,annualId));
resultMap.put("num01",annualCompList.size());
//本年度已展开比赛数=============================结束====================
//本年度参加比赛队伍数=============================开始====================
List<String> annualCompidsList = annualCompList.stream().map(AnnualComp::getId).collect(Collectors.toList());
List<AnnualCompPoint> annualCompPointList =annualCompPointService.list(new LambdaQueryWrapper<AnnualCompPoint>().in(AnnualCompPoint::getAnnualCompId,annualCompidsList));
List<String> annualCompPointidsList = annualCompPointList.stream().map(AnnualCompPoint::getId).collect(Collectors.toList());
List<AnnualCompetitionProjectRegistration> annualCompetitionProjectRegistrationList = annualCompetitionProjectRegistrationService.list(new LambdaQueryWrapper<AnnualCompetitionProjectRegistration>().in(AnnualCompetitionProjectRegistration::getAnnualCompid,annualCompPointidsList));
resultMap.put("num02",annualCompetitionProjectRegistrationList.size());
//本年度参加比赛队伍数=============================结束====================
//管理比赛数=============================开始====================
List<Comp> compList = compService.list();
resultMap.put("num03",compList.size());
//管理比赛数=============================结束====================
//专家总数=============================开始====================
int zjint = compService.getzjint();
resultMap.put("num04",zjint);
//专家总数=============================结束====================
//正在进行的项目=============================开始====================
List<AnnualCompPoint> annualCompPointList1 = annualCompPointService.getAnnualCompbet(currentDate);
resultMap.put("num05",annualCompPointList1.size());
//正在进行的项目=============================结束====================
//已完成的项目数=============================开始====================
List<AnnualCompPoint> annualCompPointList2 = annualCompPointService.getAnnualCompbet1(currentDate);
resultMap.put("num06",annualCompPointList2.size());
//已完成的项目数=============================结束====================
//比赛列表=============================开始====================
List<Comp> compList1 =compService.list(new LambdaQueryWrapper<Comp>().last("limit 3"));
resultMap.put("data01",compList1);
//比赛列表=============================结束====================
//年度比赛列表=============================开始====================
List<AnnualComp> AnnualComplist1 =annualCompService.list(new LambdaQueryWrapper<AnnualComp>().last("limit 3"));
resultMap.put("data02",AnnualComplist1);
//年度比赛列表=============================结束====================
//年度比赛列表=============================开始====================
List<AnnualCompPoint> AnnualComppointlist1 =annualCompPointService.list(new LambdaQueryWrapper<AnnualCompPoint>().last("limit 3"));
resultMap.put("data03",AnnualComppointlist1);
//年度比赛列表=============================结束====================
return resultMap;
}
}

@ -1,8 +1,10 @@
package org.jeecg.modules.demo.annualCompPoint.mapper;
import java.time.LocalDate;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.jeecg.modules.demo.annualCompPoint.entity.AnnualCompPoint;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -14,4 +16,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface AnnualCompPointMapper extends BaseMapper<AnnualCompPoint> {
@Select("select * from annual_comp_point where starttime < #{currentDate} and endtime > #{currentDate}")
List<AnnualCompPoint> getAnnualCompbet(LocalDate currentDate);
@Select("select * from annual_comp_point where starttime > #{currentDate} or endtime < #{currentDate}")
List<AnnualCompPoint> getAnnualCompbet1(LocalDate currentDate);
}

@ -6,6 +6,8 @@ import org.jeecg.modules.demo.annualCompPoint.entity.AnnualCompPoint;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.util.List;
/**
* @Description: 年度比赛项目管理
@ -20,4 +22,8 @@ public interface IAnnualCompPointService extends IService<AnnualCompPoint> {
Result<IPage<AnnualCompPoint>> pageList(AnnualCompPoint annualCompPoint, Integer pageNo, Integer pageSize, HttpServletRequest req);
Result<?> updateApply(String id,String annualCompState);
List<AnnualCompPoint> getAnnualCompbet(LocalDate currentDate);
List<AnnualCompPoint> getAnnualCompbet1(LocalDate currentDate);
}

@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
import java.util.function.Function;
@ -37,6 +38,8 @@ public class AnnualCompPointServiceImpl extends ServiceImpl<AnnualCompPointMappe
private ObjLevelServiceImpl objLevelService;
@Autowired
private AnnualCompServiceImpl annualCompService;
@Autowired
private AnnualCompPointMapper annualCompPointMapper;
/**
* 年度比赛项目 添加
@ -285,4 +288,14 @@ public class AnnualCompPointServiceImpl extends ServiceImpl<AnnualCompPointMappe
return Result.OK("发送请求成功");
}
@Override
public List<AnnualCompPoint> getAnnualCompbet(LocalDate currentDate) {
return annualCompPointMapper.getAnnualCompbet(currentDate);
}
@Override
public List<AnnualCompPoint> getAnnualCompbet1(LocalDate currentDate) {
return annualCompPointMapper.getAnnualCompbet1(currentDate);
}
}

@ -3,6 +3,7 @@ package org.jeecg.modules.demo.comp.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.jeecg.modules.demo.comp.entity.Comp;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -14,4 +15,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface CompMapper extends BaseMapper<Comp> {
@Select("select * from comp where comp_admin = #{username}")
List<Comp> getbyAdmin(String username);
@Select("SELECT COUNT(*) FROM sys_user_role WHERE role_id ='1731948288626339841'")
int getzjint();
}

@ -3,6 +3,8 @@ package org.jeecg.modules.demo.comp.service;
import org.jeecg.modules.demo.comp.entity.Comp;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 比赛
* @Author: jeecg-boot
@ -11,4 +13,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface ICompService extends IService<Comp> {
List<Comp> getbyAdmin(String username);
int getzjint();
}

@ -3,10 +3,13 @@ package org.jeecg.modules.demo.comp.service.impl;
import org.jeecg.modules.demo.comp.entity.Comp;
import org.jeecg.modules.demo.comp.mapper.CompMapper;
import org.jeecg.modules.demo.comp.service.ICompService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
/**
* @Description: 比赛
* @Author: jeecg-boot
@ -16,4 +19,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class CompServiceImpl extends ServiceImpl<CompMapper, Comp> implements ICompService {
@Autowired
private CompMapper compMapper;
@Override
public List<Comp> getbyAdmin(String username) {
return compMapper.getbyAdmin(username);
}
@Override
public int getzjint() {
return compMapper.getzjint();
}
}

@ -4,7 +4,7 @@
<a-row :gutter="[32,16]" type="flex" justify="space-between" class="firstDiv">
<a-col :xs="12" :xl="4">
<div class="commonDiv">
<p class="title">本年度已展开比赛数</p>
<p class="title">本年度已展开年度比赛数</p>
<p class="subtitle">annual competitions</p>
<p class="num">
<span>{{num01}}</span>
@ -16,7 +16,7 @@
</a-col>
<a-col :xs="12" :xl="4">
<div class="commonDiv">
<p class="title">本年度参加比赛学校</p>
<p class="title">本年度参加比赛队伍</p>
<p class="subtitle">Participating schools</p>
<p class="num">
<span>{{num02}}</span>
@ -40,7 +40,7 @@
</a-col>
<a-col :xs="12" :xl="4">
<div class="commonDiv">
<p class="title">管理学校</p>
<p class="title">专家总</p>
<p class="subtitle">School management</p>
<p class="num">
<span>{{num04}}</span>
@ -52,7 +52,7 @@
</a-col>
<a-col :xs="12" :xl="4">
<div class="commonDiv">
<p class="title">正在进行数</p>
<p class="title">正在进行的项目</p>
<p class="subtitle">Ongoing competition</p>
<p class="num">
<span>{{num05}}</span>
@ -64,7 +64,7 @@
</a-col>
<a-col :xs="12" :xl="4">
<div class="commonDiv">
<p class="title">已完成数</p>
<p class="title">已完成的项目</p>
<p class="subtitle">Completed competitions</p>
<p class="num">
<span>{{num06}}</span>
@ -88,21 +88,21 @@
<a-row :gutter="[32,16]" type="flex" justify="space-between" class="commonDiv" style="margin: 0">
<a-col :span="20">
<div id="histogram" style="width: 100%;height: 100%">
<!-- <div class="item" v-for="(item,index) in multipleScore" :key="index">-->
<!-- <div class="topDiv">-->
<!-- <div class="red color" :style="{height:item.target1*2+'px'}"></div>-->
<!-- <div class="yellow color" :style="{height:item.target2*2+'px'}"></div>-->
<!-- <div class="green color" :style="{height:item.target3*2+'px'}"></div>-->
<!-- </div>-->
<!-- <div class="bottomDiv">-->
<!-- {{item.name}}-->
<!-- </div>-->
<!-- </div>-->
<div class="item" v-for="(item,index) in multipleScore" :key="index">
<div class="topDiv">
<div class="red color" :style="{height:item.target1*2+'px'}"></div>
<div class="yellow color" :style="{height:item.target2*2+'px'}"></div>
<div class="green color" :style="{height:item.target3*2+'px'}"></div>
</div>
<div class="bottomDiv">
{{item.name}}
</div>
</div>
</div>
</a-col>
<a-col :span="4">
<div class="colorDiv">
<div class="color">
<!-- <div class="color">
<div class="green"></div>
<p>指标一</p>
</div>
@ -113,7 +113,7 @@
<div class="color">
<div class="yellow"></div>
<p>指标三</p>
</div>
</div>-->
</div>
</a-col>
</a-row>
@ -135,12 +135,12 @@
<a-col :span="4">审核状态</a-col>
</a-row>
<div class="none" v-if="false">暂无数据</div>
<a-row :gutter="[32,16]" type="flex" justify="space-between" v-for="(item,index) in data02"
:key="index" class="tableCoin" v-if="index<3">
<a-row :gutter="[32,16]" type="flex" justify="space-between" v-for="(item,index) in data01"
:key="index" class="tableCoin">
<a-col :span="2">{{index+1}}</a-col>
<a-col :span="12">{{item.compname}}</a-col>
<a-col :span="6">{{item.startTime}}</a-col>
<a-col :span="4">{{item.status_dictText}}</a-col>
<a-col :span="12">{{item.compName}}</a-col>
<a-col :span="6">{{item.createTime}}</a-col>
<a-col :span="4">已审核</a-col>
</a-row>
</div>
@ -164,19 +164,19 @@
<a-col :span="4">审核状态</a-col>
</a-row>
<div class="none" v-if="false">暂无数据</div>
<a-row :gutter="[32,16]" type="flex" justify="space-between" v-for="(item,index) in data03"
:key="index" class="tableCoin" v-if="index<3">
<a-row :gutter="[32,16]" type="flex" justify="space-between" v-for="(item,index) in data02"
:key="index" class="tableCoin">
<a-col :span="2">{{index+1}}</a-col>
<a-col :span="12">{{item.compname}}</a-col>
<a-col :span="6">{{item.startTime}}</a-col>
<a-col :span="4">{{item.status_dictText}}</a-col>
<a-col :span="12">{{item.name}}</a-col>
<a-col :span="6">{{item.starttime}}</a-col>
<a-col :span="4">已审核</a-col>
</a-row>
</div>
</a-col>
<a-col :xs="24" :xl="12">
<a-row type="flex" justify="space-between" class="titleDiv">
<a-col :span="12" >
<span class="name">高校列表</span>
<span class="name">年度比赛项目列表</span>
</a-col>
<a-col :span="12" class="more">
<span>More<a-icon type="right" /></span>
@ -190,83 +190,41 @@
<a-col :span="4">审核状态</a-col>
</a-row>
<div class="none" v-if="false">暂无数据</div>
<a-row :gutter="[32,16]" type="flex" justify="space-between" v-for="(item,index) in data04"
:key="index" class="tableCoin" v-if="index<3">
<a-row :gutter="[32,16]" type="flex" justify="space-between" v-for="(item,index) in data03"
:key="index" class="tableCoin">
<a-col :span="2">{{index+1}}</a-col>
<a-col :span="12">{{item.compname}}</a-col>
<a-col :span="6">{{item.startTime}}</a-col>
<a-col :span="4">{{item.status_dictText}}</a-col>
<a-col :span="12">{{item.objName}}</a-col>
<a-col :span="6">{{item.starttime}}</a-col>
<a-col :span="4">已审核</a-col>
</a-row>
</div>
</a-col>
</a-row>
</a-spin></div>
</template>
<script >
<script>
import axios from "axios";
import * as echarts from 'echarts';
import * as url from "url";
export default {
name: "index1",
data() {
return {loading:false,
return {
urlList: "http://10.115.112.52:18082/jeecg-boot/admin/inde/inde",
loading:false,
num01:'',//
num02:'20',//
num03:'20',//
num04:'20',//
num05:'5',//
num06:'5',//
num02:'',//
num03:'',//
num04:'',//
num05:'',//
num06:'',//
//
data02:[],
//
data01:[
{
id:'1',
compname:'名称1',//
startTime:"2023-08",//
status_dictText:"已审核",//
},
{
id:'2',
compname:'名称2',//
startTime:"2023-09",//
status_dictText:"未审核",//
}
],
data01:[],
//
data03:[
{
id:'1',
compname:'名称1',//
startTime:"2023-08",//
status_dictText:"已审核",//
},
{
id:'2',
compname:'名称2',//
startTime:"2023-09",//
status_dictText:"未审核",//
}
],
data03:[],
//
data04:[
{
id:'1',
compname:'名称1',//
startTime:"2023-08",//
status_dictText:"已审核",//
},
{
id:'2',
compname:'名称2',//
startTime:"2023-09",//
status_dictText:"未审核",//
}
],
},
url: {
//
getnumanncom : "/annualcomp/annualComp/getnumanncom";
data04:[],
}
},
@ -278,24 +236,56 @@ export default {
series: [
{
type: 'pie',
data: [35,234,1548],
data: [35,234,1548,62],
labelLine:false
}
]
});
axios.get(this.urlList).then((response) => {
this.num01 = response.data.result.num01;
this.num02 = response.data.result.num02;
this.num03 = response.data.result.num03;
this.num04 = response.data.result.num04;
this.num05 = response.data.result.num05;
this.num06 = response.data.result.num06;
this.data01 = response.data.result.data01;
this.data02 = response.data.result.data02;
this.data03 = response.data.result.data03;
/* this.awardList = response.data.result.awardList;
this.studentScore = response.data.result.studentScore;
this.compCounts = response.data.result.compCounts;
this.departAbilityEvaluation =
response.data.result.departAbilityEvaluation;*/
/* this.labelList = this.departAbilityEvaluation.map((item) => {
return {
name: item.capacityName,
max: 100,
};
});*/
/* this.dataList = this.departAbilityEvaluation.map((item) => {
return item.value;
});*/
/* console.log(this.dataList);
this.last5YearData = response.data.result.last5YearData;*/
/* this.last5YearData01 = this.last5YearData.map((item) => {
return item.compCount;
});*/
/* this.last5YearData02 = this.last5YearData.map((item) => {
return item.personCount;
});*/
})
.catch((error) => {
console.error("Error:", error);
});
},
methods:{
getnumanncom(){
getAction(this.url.getnumanncom).then((res) => {
if(res.success) {
this.num01 = res.result;
console.log("===========")
console.log(res.message)
} else {
console.log("-----------")
}
});
},
}
}

Loading…
Cancel
Save