• Java项目:94 springboot大学城水电管理系统


    作者主页:源码空间codegym

    简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文中获取源码

    项目介绍

    管理系统有管理员和用户。

    本大学城水电管理系统管理员功能有个人中心,用户管理,领用设备管理,消耗设备管理,设备申请管理,设备派发管理,状体汇报管理,领用报表管理,消耗报表管理,班组报表管理,个人报表管理,用户反馈管理,维护保养管理,设备检测管理,设备维修管理,报修信息管理,定期修复管理,修理计划管理。

    用户功能有个人中心,领用设备管理,消耗设备管理,设备申请管理,设备派发管理,状态汇报管理,用户反馈管理,报修信息管理。因而具有一定的实用性。

    环境要求

    1.运行环境:最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。

    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

    3.tomcat环境:Tomcat7.x,8.X,9.x版本均可

    4.硬件环境:windows7/8/10 4G内存以上;或者Mac OS;

    5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven.项目

    6.数据库:MySql5.7/8.0等版本均可;

    技术栈

    运行环境:jdk8 + tomcat9 + mysql5.7 + windows10

    服务端技术:SpringBoot + MyBatis + Vue + Bootstrap + jQuery

    使用说明

    1.使用Navicati或者其它工具,在mysql中创建对应sq文件名称的数据库,并导入项目的sql文件;

    2.使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

    3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置,然后运行;

    运行指导

    idea导入源码空间站顶目教程说明(Vindows版)-ssm篇:

    http://mtw.so/5MHvZq

    源码看好后直接在网站付款下单即可,付款成功会自动弹出百度网盘链接,网站地址:http://codegym.top

    其它问题请关注公众号:IT小舟,关注后发送消息即可,都会给您回复的。若没有及时回复请耐心等待,通常当天会有回复

    运行截图

    文档截图

    springboot106大学城水电管理系统9

    springboot106大学城水电管理系统10

    springboot106大学城水电管理系统11

    springboot106大学城水电管理系统12

    springboot106大学城水电管理系统13

    springboot106大学城水电管理系统14

    后台

    springboot106大学城水电管理系统0

    springboot106大学城水电管理系统1

    springboot106大学城水电管理系统2

    springboot106大学城水电管理系统3

    springboot106大学城水电管理系统4

    springboot106大学城水电管理系统5

    springboot106大学城水电管理系统6

    springboot106大学城水电管理系统7

    springboot106大学城水电管理系统8

    
    package com.controller;
    
    import java.io.File;
    import java.math.BigDecimal;
    import java.net.URL;
    import java.text.SimpleDateFormat;
    import com.alibaba.fastjson.JSONObject;
    import java.util.*;
    import org.springframework.beans.BeanUtils;
    import javax.servlet.http.HttpServletRequest;
    import org.springframework.web.context.ContextLoader;
    import javax.servlet.ServletContext;
    import com.service.TokenService;
    import com.utils.*;
    import java.lang.reflect.InvocationTargetException;
    
    import com.service.DictionaryService;
    import org.apache.commons.lang3.StringUtils;
    import com.annotation.IgnoreAuth;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.*;
    import com.baomidou.mybatisplus.mapper.EntityWrapper;
    import com.baomidou.mybatisplus.mapper.Wrapper;
    import com.entity.*;
    import com.entity.view.*;
    import com.service.*;
    import com.utils.PageUtils;
    import com.utils.R;
    import com.alibaba.fastjson.*;
    
    /**
     * 字典表
     * 后端接口
     * @author
     * @email
    */
    @RestController
    @Controller
    @RequestMapping("/dictionary")
    public class DictionaryController {
        private static final Logger logger = LoggerFactory.getLogger(DictionaryController.class);
    
        @Autowired
        private DictionaryService dictionaryService;
    
    
        @Autowired
        private TokenService tokenService;
    
        //级联表service
    
        @Autowired
        private YonghuService yonghuService;
        @Autowired
        private YishengService yishengService;
    
    
        /**
        * 后端列表
        */
        @RequestMapping("/page")
        @IgnoreAuth
        public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
            logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
            if(params.get("orderBy")==null || params.get("orderBy")==""){
                params.put("orderBy","id");
            }
            PageUtils page = dictionaryService.queryPage(params);
    
            //字典表数据转换
            List<DictionaryView> list =(List<DictionaryView>)page.getList();
            for(DictionaryView c:list){
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(c, request);
            }
            return R.ok().put("data", page);
        }
    
        /**
        * 后端详情
        */
        @RequestMapping("/info/{id}")
        public R info(@PathVariable("id") Long id, HttpServletRequest request){
            logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
            DictionaryEntity dictionary = dictionaryService.selectById(id);
            if(dictionary !=null){
                //entity转view
                DictionaryView view = new DictionaryView();
                BeanUtils.copyProperties( dictionary , view );//把实体数据重构到view中
    
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(view, request);
                return R.ok().put("data", view);
            }else {
                return R.error(511,"查不到数据");
            }
    
        }
    
        /**
        * 后端保存
        */
        @RequestMapping("/save")
        public R save(@RequestBody DictionaryEntity dictionary, HttpServletRequest request){
            logger.debug("save方法:,,Controller:{},,dictionary:{}",this.getClass().getName(),dictionary.toString());
    
            String role = String.valueOf(request.getSession().getAttribute("role"));
            if(false)
                return R.error(511,"永远不会进入");
    
            Wrapper<DictionaryEntity> queryWrapper = new EntityWrapper<DictionaryEntity>()
                .eq("dic_code", dictionary.getDicCode())
                .eq("index_name", dictionary.getIndexName())
                ;
            if(dictionary.getDicCode().contains("_erji_types")){
                queryWrapper.eq("super_id",dictionary.getSuperId());
            }
    
            logger.info("sql语句:"+queryWrapper.getSqlSegment());
            DictionaryEntity dictionaryEntity = dictionaryService.selectOne(queryWrapper);
            if(dictionaryEntity==null){
                dictionary.setCreateTime(new Date());
                dictionaryService.insert(dictionary);
                //字典表新增数据,把数据再重新查出,放入监听器中
                List<DictionaryEntity> dictionaryEntities = dictionaryService.selectList(new EntityWrapper<DictionaryEntity>());
                ServletContext servletContext = request.getServletContext();
                Map<String, Map<Integer,String>> map = new HashMap<>();
                for(DictionaryEntity d :dictionaryEntities){
                    Map<Integer, String> m = map.get(d.getDicCode());
                    if(m ==null || m.isEmpty()){
                        m = new HashMap<>();
                    }
                    m.put(d.getCodeIndex(),d.getIndexName());
                    map.put(d.getDicCode(),m);
                }
                servletContext.setAttribute("dictionaryMap",map);
                return R.ok();
            }else {
                return R.error(511,"表中有相同数据");
            }
        }
    
        /**
        * 后端修改
        */
        @RequestMapping("/update")
        public R update(@RequestBody DictionaryEntity dictionary, HttpServletRequest request){
            logger.debug("update方法:,,Controller:{},,dictionary:{}",this.getClass().getName(),dictionary.toString());
    
            String role = String.valueOf(request.getSession().getAttribute("role"));
    //        if(false)
    //            return R.error(511,"永远不会进入");
            //根据字段查询是否有相同数据
            Wrapper<DictionaryEntity> queryWrapper = new EntityWrapper<DictionaryEntity>()
                .notIn("id",dictionary.getId())
                .eq("dic_code", dictionary.getDicCode())
                .eq("index_name", dictionary.getIndexName())
                ;
    
            if(dictionary.getDicCode().contains("_erji_types")){
                queryWrapper.eq("super_id",dictionary.getSuperId());
            }
            logger.info("sql语句:"+queryWrapper.getSqlSegment());
            DictionaryEntity dictionaryEntity = dictionaryService.selectOne(queryWrapper);
            if(dictionaryEntity==null){
                dictionaryService.updateById(dictionary);//根据id更新
                //如果字典表修改数据的话,把数据再重新查出,放入监听器中
                List<DictionaryEntity> dictionaryEntities = dictionaryService.selectList(new EntityWrapper<DictionaryEntity>());
                ServletContext servletContext = request.getServletContext();
                Map<String, Map<Integer,String>> map = new HashMap<>();
                for(DictionaryEntity d :dictionaryEntities){
                    Map<Integer, String> m = map.get(d.getDicCode());
                    if(m ==null || m.isEmpty()){
                        m = new HashMap<>();
                    }
                    m.put(d.getCodeIndex(),d.getIndexName());
                    map.put(d.getDicCode(),m);
                }
                servletContext.setAttribute("dictionaryMap",map);
                return R.ok();
            }else {
                return R.error(511,"表中有相同数据");
            }
        }
    
        /**
        * 删除
        */
        @RequestMapping("/delete")
        public R delete(@RequestBody Integer[] ids){
            logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
            dictionaryService.deleteBatchIds(Arrays.asList(ids));
            return R.ok();
        }
    
        /**
         * 最大值
         */
        @RequestMapping("/maxCodeIndex")
        public R maxCodeIndex(@RequestBody DictionaryEntity dictionary){
            logger.debug("maxCodeIndex:,,Controller:{},,dictionary:{}",this.getClass().getName(),dictionary.toString());
            List<String> descs = new ArrayList<>();
            descs.add("code_index");
            Wrapper<DictionaryEntity> queryWrapper = new EntityWrapper<DictionaryEntity>()
                    .eq("dic_code", dictionary.getDicCode())
                    .orderDesc(descs);
            logger.info("sql语句:"+queryWrapper.getSqlSegment());
            List<DictionaryEntity> dictionaryEntityList = dictionaryService.selectList(queryWrapper);
            if(dictionaryEntityList != null ){
                return R.ok().put("maxCodeIndex",dictionaryEntityList.get(0).getCodeIndex()+1);
            }else{
                return R.ok().put("maxCodeIndex",1);
            }
        }
    
        /**
         * 批量上传
         */
        @RequestMapping("/batchInsert")
        public R save( String fileName){
            logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
            try {
                List<DictionaryEntity> dictionaryList = new ArrayList<>();//上传的东西
                Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
                Date date = new Date();
                int lastIndexOf = fileName.lastIndexOf(".");
                if(lastIndexOf == -1){
                    return R.error(511,"该文件没有后缀");
                }else{
                    String suffix = fileName.substring(lastIndexOf);
                    if(!".xls".equals(suffix)){
                        return R.error(511,"只支持后缀为xls的excel文件");
                    }else{
                        URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
                        File file = new File(resource.getFile());
                        if(!file.exists()){
                            return R.error(511,"找不到上传文件,请联系管理员");
                        }else{
                            List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
                            dataList.remove(0);//删除第一行,因为第一行是提示
                            for(List<String> data:dataList){
                                //循环
                                DictionaryEntity dictionaryEntity = new DictionaryEntity();
    //                            dictionaryEntity.setDicCode(data.get(0));                    //字段 要改的
    //                            dictionaryEntity.setDicName(data.get(0));                    //字段名 要改的
    //                            dictionaryEntity.setCodeIndex(Integer.valueOf(data.get(0)));   //编码 要改的
    //                            dictionaryEntity.setIndexName(data.get(0));                    //编码名字 要改的
    //                            dictionaryEntity.setSuperId(Integer.valueOf(data.get(0)));   //父字段id 要改的
    //                            dictionaryEntity.setBeizhu(data.get(0));                    //备注 要改的
    //                            dictionaryEntity.setCreateTime(date);//时间
                                dictionaryList.add(dictionaryEntity);
    
    
                                //把要查询是否重复的字段放入map中
                            }
    
                            //查询是否重复
                            dictionaryService.insertBatch(dictionaryList);
                            return R.ok();
                        }
                    }
                }
            }catch (Exception e){
                return R.error(511,"批量插入数据异常,请联系管理员");
            }
        }
    
    
    
    
    
    
    }
    
    
  • 相关阅读:
    EPLAN_006#部件库快速导入、树结构、部件导航器、材料表导航器
    MD5加密——原理介绍
    Python中的逻辑表达式
    平平淡淡、坚守初心、砥砺前行
    简单理解Vue2的响应式原理
    Packet Tracer - 在 VTY 线路上配置 ACL
    04.封装
    foo 是什么意思
    Mac M1编译 swift 5.8.1源码
    Centos7 部署 RocketMQ 高可用集群
  • 原文地址:https://blog.csdn.net/2301_78300054/article/details/139390899