背景及意義
目前許多人仍將傳統(tǒng)的紙質(zhì)工具作為信息管理的主要工具,而網(wǎng)絡(luò)技術(shù)的應(yīng)用只是起到輔助作用。在對網(wǎng)絡(luò)工具的認(rèn)知程度上,較為傳統(tǒng)的office軟件等仍是人們使用的主要工具,而相對全面且專業(yè)的信息管理軟件仍沒有得到大多數(shù)人的了解或認(rèn)可。本選題則旨在通過標(biāo)簽分類管理等方式,實現(xiàn)教研的各種功能,從而達(dá)到對科研管理系統(tǒng)的管理。
項目環(huán)境
> 前端:html, css, js, vue, jquery等;
> 后端:java, spring,maven,SSM,Springboot等 ;
> 開發(fā)工具:支持eclipse或idea
> 數(shù)據(jù)庫:mysql7
> 更多內(nèi)容可查看:http://projecthelp.top
設(shè)計
以院系申報科技項目為例:科研管理系統(tǒng)的實現(xiàn)主要包括教師、科研管理人員和系統(tǒng)管理員三個用戶角色,由于系統(tǒng)用戶角色不同所使用的功能模塊相應(yīng)不同,管理員根據(jù)需求對系統(tǒng)功能模塊進(jìn)行維護管理操作。
部分核心代碼
import org.springframework.stereotype.Service;
import xyz.shiguangliang.mybatis.dao.UserMapper;
import xyz.shiguangliang.mybatis.domain.User;
import xyz.shiguangliang.service.UserService;
import xyz.shiguangliang.util.query.QueryInfo;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserMapper userMapper;
//登錄
@Override
public User login(String username, String password) {
User user = userMapper.selectLogin(username,password);
if (user != null) {
//登錄次數(shù)加一
if (user.getIntimes() != null) {
user.setIntimes(user.getIntimes() + 1);
}else {
user.setIntimes(1);
}
//更新登錄時間
user.setLastlogin(new Date());
return user;
}
return null;
}
//注冊
@Override
public boolean register(User user) {
int i = 0;
//檢測用戶是否存在
User user1 = userMapper.selectUsername(user.getUsername());
if (user1 == null) {
i = userMapper.insert(user);
}
return i > 0;
}
//用戶列表
@Override
public QueryInfo getUserList(String query, Integer pagenum,Integer pagesize) {
QueryInfo queryInfo = new QueryInfo();
int start;
int end;
if (pagenum == null||pagesize == null){
pagenum =0;
pagesize = 3;
}
start = (pagenum-1)*pagesize;
end = pagesize;
int userSize = userMapper.selectUserListLimitSize(query,start,end);
List<User> users = userMapper.selectUserListLimit(query,start,end);
queryInfo.setList(users);
queryInfo.setTotal(userSize);
return queryInfo;
}
//刪除用戶
@Override
public int deleteUser(Integer tid) {
return userMapper.deleteByPrimaryKey(tid);
}
//通過id查找用戶
@Override
public User findById(Integer tid) {
return userMapper.selectByPrimaryKey(tid);
}
//更新用戶
@Override
public int updateUser(User user) {
if (user.getPassword()==null|| Objects.equals(user.getPassword(), "")){
user.setPassword(userMapper.selectByPrimaryKey(user.getTid()).getPassword());
}
return userMapper.updateByPrimaryKey(user);
}
//通過用戶名查找用戶
@Override
public User findByUsername(String username) {
return userMapper.selectUsername(username);
}
//獲取用戶權(quán)限
@Override
public int getPower(String username) {
return userMapper.selectUsername(username).getPower();
}
}
useMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="xyz.shiguangliang.mybatis.dao.UserMapper">
<resultMap id="BaseResultMap" type="xyz.shiguangliang.mybatis.domain.User">
<id column="tid" jdbcType="INTEGER" property="tid" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="password" jdbcType="VARCHAR" property="password" />
<result column="teachername" jdbcType="VARCHAR" property="teachername" />
<result column="dno" jdbcType="INTEGER" property="dno" />
<result column="power" jdbcType="INTEGER" property="power" />
<result column="intimes" jdbcType="INTEGER" property="intimes" />
<result column="lastlogin" jdbcType="TIMESTAMP" property="lastlogin" />
</resultMap>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from teacher
where tid = #{tid,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="xyz.shiguangliang.mybatis.domain.User">
insert into teacher (tid, username, password,
teachername, dno, power,
intimes, lastlogin)
values (#{tid,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{teachername,jdbcType=VARCHAR}, #{dno,jdbcType=INTEGER}, #{power,jdbcType=INTEGER},
#{intimes,jdbcType=INTEGER}, #{lastlogin,jdbcType=TIMESTAMP})
</insert>
<update id="updateByPrimaryKey" parameterType="xyz.shiguangliang.mybatis.domain.User">
update teacher
set username = #{username,jdbcType=VARCHAR},
password = #{password,jdbcType=VARCHAR},
teachername = #{teachername,jdbcType=VARCHAR},
dno = #{dno,jdbcType=INTEGER},
power = #{power,jdbcType=INTEGER},
intimes = #{intimes,jdbcType=INTEGER},
lastlogin = #{lastlogin,jdbcType=TIMESTAMP}
where tid = #{tid,jdbcType=INTEGER}
</update>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select tid, username, password, teachername, dno, power, intimes, lastlogin
from teacher
where tid = #{tid,jdbcType=INTEGER}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select tid, username, password, teachername, dno, power, intimes, lastlogin
from teacher
</select>
<select id="selectLogin" resultType="xyz.shiguangliang.mybatis.domain.User">
select tid, username, password, teachername, dno, power, intimes, lastlogin
from teacher
where username = #{username} and password = #{password}
</select>
<select id="selectUsername" resultType="xyz.shiguangliang.mybatis.domain.User">
select tid, username, password, teachername, dno, power, intimes, lastlogin
from teacher
where username = #{username}
</select>
<select id="selectUserListLimit" resultType="xyz.shiguangliang.mybatis.domain.User">
select tid, username, password, teachername, dno, power, intimes, lastlogin
from teacher
where
/*條件判斷*/
<if test="#{query} != null and #{query} != ''">
/*模糊查詢*/
<bind name="query2" value="'%' + query + '%'"/>
username like #{query2}
</if>
LIMIT #{start},#{end}
</select>
<select id="selectUserListLimitSize" resultType="java.lang.Integer">
select count(*)
from teacher
where
/*條件判斷*/
<if test="#{query} != null and #{query} != ''">
/*模糊查詢*/
<bind name="query2" value="'%' + query + '%'"/>
username like #{query2}
</if>
</select>
</mapper>
系統(tǒng)模塊劃分和部分截圖
學(xué)生角色
-
首頁
展示當(dāng)前所有項目的信息,還包括當(dāng)前科技項目的時間階段,包括項目申報階段,中期檢查階段和項目結(jié)題階段 -
學(xué)生項目申報
學(xué)生根據(jù)項目情況,可以進(jìn)行項目的申報,填寫對應(yīng)的信息和上傳對應(yīng)的文件和附件,提供即可申報一次項目,學(xué)生還可以查看自己所有的申報的項目列表: -
學(xué)生項目中期檢查
待剛剛申報的項目完成之后,由教師角色進(jìn)行審核通過之后,等到項目中期階段,學(xué)生就可以登錄到項目進(jìn)行填寫中期項目檢查申請,同時還可以查看到自己所有項目的中期檢查列表: -
項目結(jié)題
待教師登錄系統(tǒng)進(jìn)行中期檢查通過之后,學(xué)生完成項目設(shè)計,待結(jié)題時間階段,學(xué)生可以進(jìn)行項目結(jié)題的申請,學(xué)生提交項目結(jié)題的材料信息,進(jìn)行項目結(jié)題申報: -
用戶基本設(shè)置
學(xué)生可以對自己的個人的基本信息進(jìn)行修改和密碼修改等:
教師角色
教師角色登錄到系統(tǒng)中,首頁展示項目的所有信息,同時可以對項目的監(jiān)控,若學(xué)生提交項目信息,會有消息提醒代辦業(yè)務(wù):
-
項目審核
教師可以對項目的申報,中期和結(jié)題的不同階段進(jìn)行審核,不同階段的項目會在不同的列表中顯示進(jìn)行審核,對不同項目的審核,需要提交不同的審核意見,比如對項目審報的審核,會有下面的審核意見: -
項目設(shè)置
教師可以對此次科研項目時間不同階段進(jìn)行設(shè)置 -
管理員模塊
管理員角色就是對教師模塊增加用戶(包括學(xué)生和教師)管理,可以實現(xiàn)增加用戶和修改用戶文章來源:http://www.zghlxwxcb.cn/news/detail-434312.html
適用場景
文章來源地址http://www.zghlxwxcb.cn/news/detail-434312.html
到了這里,關(guān)于23基于java教師科研項目管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!