Java项目:实习管理系统(java+SpringBoot+Vue+ElementUI+Layui+Mysql)

 源码获取:俺的博客首页 "资源" 里下载!

项目介绍

基于SpringBoot Vue的实习管理系统

角色:管理员、教师、学生

管理员:管理员登录进入实习管理系统可以查看首页,个人中心,班级管理,学生管理,教师管理,实习单位管理,实习作业管理,教师评分管理,单位成绩管理,系统管理等功能

教师:教师登录进入实习管理系统可以查看首页,个人中心,实习作业管理,教师评分管理等功能

学生:学生登录进入实习管理系统可以查看首页,个人中心,实习作业管理,教师评分管理单位成绩管理等功能进行详细操作

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7/8.0版本均可;
5.是否Maven项目:是;


技术栈

后端:SpringBoot+Mybaits

前端:Vue+ElementUI+Layui+HTML+CSS+JS


使用说明

项目运行:
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,控制台提示运行成功后再去运行前端项目;
5. 管理员用户名密码:admin/admin
普通用户名密码:user/123456

 

 

学生端我的生产实习控制层:

@Controller()
@Api("学生端我的生产实习")
@RequestMapping("/sau/myprod")
public class MyProdController extends BaseController {

    private String prefix = "sau/production";

    @Autowired
    private MyProdService myProdService;


    @RequiresPermissions("system:myprod:view")
    @GetMapping()
    public String myProd(){
        return prefix + "/myProd";
    }

    /**
     * 修改生产实习信息
     */
    @GetMapping("/edit/{worklyId}")
    public String edit(@PathVariable("worklyId") long worklyId, ModelMap mmap)
    {
        mmap.put("workly", myProdService.selectWeekById(worklyId));
        return prefix + "/weekEdit";
    }

    @PostMapping("/updateWeekly")
    @RequiresPermissions("system:myprod:edit")
    @ApiOperation(value = "修改周报内容")
    @Transactional
    @ResponseBody
    public AjaxResult updateWeekly(@RequestParam HashMap<String,Object> map){
        return myProdService.updateWeekly(map);
    }


    @PostMapping("/selectWeekBystuId")
    @RequiresPermissions("system:myprod:list")
    @ApiOperation(value = "根据学生ID查找该生生产实习周报")
    @ResponseBody
    public TableDataInfo selectWeekBystuId(@RequestParam(value = "worklyId",defaultValue = "0") long worklyId,
                                           @RequestParam(value = "productionId",defaultValue = "0") long productionId,
                                           @RequestParam(value = "worklyCategory",defaultValue = "") String worklyCategory){
        startPage();
        long stuId = ShiroUtils.getUserId();
        List<Map<String,Object>> list = myProdService.selectWeekBystuId(stuId,worklyId,productionId,worklyCategory);
        return getDataTable(list);
    }
}

 生产实习信息管理控制层:

@Controller()
@Api("生产实习信息管理")
@RequestMapping("/sau/production")
public class ProductionController extends BaseController {

    private String prefix = "sau/production";

    @Autowired
    private ProductionService productionService;


    @RequiresPermissions("system:production:view")
    @GetMapping()
    public String production(){
        return prefix + "/production";
    }

    /**
     * 发布生产实习信息
     */
    @GetMapping("/add")
    public String add()
    {
        return prefix + "/add";
    }

    /**
     * 发布生产实习信息
     * @return
     */
    @PostMapping("/addProduction")
    @Transactional
    @RequiresPermissions("system:production:add")
    @ApiOperation(value = "发布生产实习信息")
    @ResponseBody
    public AjaxResult addProduction(Production production) {
        if(!production.getProductionWeeks().matches("-?[0-9]+")){
            return AjaxResult.warn("输入的周报数量不是整数或不是数字");
        }
        if(!production.getPacific().matches("-?[0-9]+.?[0-9]*")){
            return AjaxResult.warn("输入的周报成绩占比不是数字");
        }
        if(!production.getExam().matches("-?[0-9]+.?[0-9]*")){
            return AjaxResult.warn("输入的总结成绩占比不是数字");
        }
        double pacific = Double.parseDouble(production.getPacific());
        double exam = Double.parseDouble(production.getExam());
        if(pacific< 0 || pacific > 100){
            return AjaxResult.warn("请输入的周报成绩占比在(0~100)之间");
        }
        if(exam < 0 || exam > 100){
            return AjaxResult.warn("请输入的总结成绩占比在(0~100)之间");
        }
        if(pacific + exam != 100){
            return AjaxResult.warn("周报成绩+总结成绩占比不等于100%");
        }
        int Count = productionService.addProduction(production);
        if(Count > 0){
            return AjaxResult.success("发布生产实习信息成功");
        }
        return AjaxResult.warn("发布生产实习信息失败");
    }

    /**
     * 修改生产实习信息
     */
    @GetMapping("/edit/{productionId}")
    public String edit(@PathVariable("productionId") long productionId, ModelMap mmap)
    {
        mmap.put("production", productionService.selectProductionById(productionId));
        return prefix + "/edit";
    }

    @PostMapping("/updateProduction")
    @RequiresPermissions("system:production:edit")
    @ApiOperation(value = "修改生产实习信息")
    @Transactional
    @ResponseBody
    public AjaxResult updateProduction(@RequestParam HashMap<String,Object> map){
        if(!map.get("productionWeeks").toString().matches("-?[0-9]+")){
            return AjaxResult.warn("输入的周报数量不是整数或不是数字");
        }
        if(!map.get("pacific").toString().matches("-?[0-9]+.?[0-9]*")){
            return AjaxResult.warn("输入的周报成绩占比不是数字");
        }
        if(!map.get("exam").toString().matches("-?[0-9]+.?[0-9]*")){
            return AjaxResult.warn("输入的总结成绩占比不是数字");
        }
        double pacific = Double.parseDouble(map.get("pacific").toString());
        double exam = Double.parseDouble(map.get("exam").toString());
        if(pacific< 0 || pacific > 100){
            return AjaxResult.warn("请输入的周报成绩占比在(0~100)之间");
        }
        if(exam < 0 || exam > 100){
            return AjaxResult.warn("请输入的总结成绩占比在(0~100)之间");
        }
        if(pacific + exam != 100){
            return AjaxResult.warn("周报成绩+总结成绩占比不等于100%");
        }
        int Count = productionService.updateProduction(map);
        if(Count > 0){
            return AjaxResult.success("修改生产实习信息成功");
        }
        return AjaxResult.warn("修改生产实习信息失败");
    }

    @PostMapping("/selectProduction")
    @RequiresPermissions("system:production:list")
    @ApiOperation(value = "查找生产实习信息")
    @Transactional
    @ResponseBody
    public TableDataInfo selectProduction(@RequestParam(value = "productionId",defaultValue = "0") long productionId,
                                          @RequestParam(value = "productionName",defaultValue = "") String productionName,
                                          @RequestParam(value = "productionCompany",defaultValue = "") String productionCompany){
        startPage();
        List<Map<String,Object>> list = productionService.selectProduction(productionId,productionName,productionCompany);
        return getDataTable(list);
    }

    @PostMapping("/deleteProduction")
    @RequiresPermissions("system:production:remove")
    @ApiOperation(value = "删除生产实习信息")
    @Transactional
    @ResponseBody
    public AjaxResult deleteProduction(@RequestParam(value = "ids") String productionId){

        productionService.deleteProduction(productionId);
        return AjaxResult.success("删除生产实习信息成功");
    }
}

顶岗实习信息管理控制层: 

@Controller()
@Api("顶岗实习信息管理")
@RequestMapping("/sau/work")
public class WorkController extends BaseController {

    private String prefix = "sau/work";

    @Autowired
    private WorkService workService;

    @RequiresPermissions("system:work:view")
    @GetMapping()
    public String production(){
        return prefix + "/work";
    }

    @PostMapping("/selectWork")
    @RequiresPermissions("system:work:list")
    @ApiOperation(value = "查找顶岗实习信息")
    @Transactional
    @ResponseBody
    public TableDataInfo selectWork(@RequestParam(value = "workId",defaultValue = "0")long workId,
                                    @RequestParam(value = "workName",defaultValue = "")String workName){
        startPage();
        List<Map<String,Object>> list = workService.selectWork(workId,workName);
        return getDataTable(list);
    }

    /**
     * 发布顶岗实习信息
     */
    @GetMapping("/add")
    public String add()
    {
        return prefix + "/add";
    }

    /**
     * 发布顶岗实习信息
     * @return
     */
    @PostMapping("/addWork")
    @Transactional
    @RequiresPermissions("system:work:add")
    @ApiOperation(value = "发布顶岗实习信息")
    @ResponseBody
    public AjaxResult addWork(Work work) {
        if(!work.getWorkWeeks().matches("-?[0-9]+")){
            return AjaxResult.warn("输入的周报数量不是整数或不是数字");
        }
        if(!work.getPacific().matches("-?[0-9]+.?[0-9]*")){
            return AjaxResult.warn("输入的周报成绩占比不是数字");
        }
        if(!work.getExam().matches("-?[0-9]+.?[0-9]*")){
            return AjaxResult.warn("输入的总结成绩占比不是数字");
        }
        double pacific = Double.parseDouble(work.getPacific());
        double exam = Double.parseDouble(work.getExam());
        if(pacific< 0 || pacific > 100){
            return AjaxResult.warn("请输入的周报成绩占比在(0~100)之间");
        }
        if(exam < 0 || exam > 100){
            return AjaxResult.warn("请输入的总结成绩占比在(0~100)之间");
        }
        if(pacific + exam != 100){
            return AjaxResult.warn("周报成绩+总结成绩占比不等于100%");
        }
        int Count = workService.addWork(work);
        if(Count > 0){
            return AjaxResult.success("发布顶岗实习信息成功");
        }
        return AjaxResult.warn("发布顶岗实习信息失败");
    }

    /**
     * 修改顶岗实习信息
     */
    @GetMapping("/edit/{workId}")
    public String edit(@PathVariable("workId") long workId, ModelMap mmap)
    {
        mmap.put("work", workService.selectWorkById(workId));
        return prefix + "/edit";
    }

    @PostMapping("/updateWork")
    @RequiresPermissions("system:work:edit")
    @ApiOperation(value = "修改顶岗实习信息")
    @Transactional
    @ResponseBody
    public AjaxResult updateWork(@RequestParam HashMap<String,Object> map){
        if(!map.get("workWeeks").toString().matches("-?[0-9]+")){
            return AjaxResult.warn("输入的周报数量不是整数或不是数字");
        }
        if(!map.get("pacific").toString().matches("-?[0-9]+.?[0-9]*")){
            return AjaxResult.warn("输入的周报成绩占比不是数字");
        }
        if(!map.get("exam").toString().matches("-?[0-9]+.?[0-9]*")){
            return AjaxResult.warn("输入的总结成绩占比不是数字");
        }
        double pacific = Double.parseDouble(map.get("pacific").toString());
        double exam = Double.parseDouble(map.get("exam").toString());
        if(pacific< 0 || pacific > 100){
            return AjaxResult.warn("请输入的周报成绩占比在(0~100)之间");
        }
        if(exam < 0 || exam > 100){
            return AjaxResult.warn("请输入的总结成绩占比在(0~100)之间");
        }
        if(pacific + exam != 100){
            return AjaxResult.warn("周报成绩+总结成绩占比不等于100%");
        }
        int Count = workService.updateWork(map);
        if(Count > 0){
            return AjaxResult.success("修改顶岗实习信息成功");
        }
        return AjaxResult.warn("修改顶岗实习信息失败");
    }

    @PostMapping("/deleteWork")
    @RequiresPermissions("system:work:remove")
    @ApiOperation(value = "删除顶岗实习信息")
    @Transactional
    @ResponseBody
    public AjaxResult deleteWork(@RequestParam(value = "ids") String workId){

        workService.deleteWork(workId);
        return AjaxResult.success("删除顶岗实习信息成功");
    }
}

源码获取:俺的博客首页 "资源" 里下载!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq1334611189

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值