当前位置: 首页 > news >正文

SSM+Vue建筑工程项目管理系统源码+论文

代码可以查看文章末尾⬇️联系方式获取记得注明来意哦~分享万套开题报告任务书答辩PPT模板作者完整代码目录供你选择《SpringBoot网站项目》1800套《SSM网站项目》1500套《小程序项目》1600套《APP项目》1500套《Python网站项目》1300套⬇️文章末尾可以获取联系方式需要源码或者演示视频可以联系⬇️⚡感兴趣大家可以点点关注收藏后续更新更多项目资料。⚡采用技术编程语言Java后端框架SSM前端框架Vue数据库MySQL数据表数量15张表运行软件IDEA、Eclipse、VS Code都可以系统功能本系统实现管理员、员工、项目经理模块。管理员模块功能员工、项目经理、管理员、发展历程、新闻资讯、任务分配、成本预算、项目信息、项目进度、项目沟通、沟通回复、员工绩效等。员工模块功能任务分配、项目进度、员工绩效、新闻资讯等。项目经理模块功能任务分配、成本预算、项目信息、项目进度、项目沟通、沟通回复、新闻资讯等。运行截图论文目录核心代码packagecom.controller;importjava.text.SimpleDateFormat;importcom.alibaba.fastjson.JSONObject;importjava.util.*;importorg.springframework.beans.BeanUtils;importjavax.servlet.http.HttpServletRequest;importorg.springframework.web.context.ContextLoader;importjavax.servlet.ServletContext;importcom.service.TokenService;importcom.utils.StringUtil;importjava.lang.reflect.InvocationTargetException;importcom.service.DictionaryService;importorg.apache.commons.lang3.StringUtils;importcom.annotation.IgnoreAuth;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.*;importcom.baomidou.mybatisplus.mapper.EntityWrapper;importcom.baomidou.mybatisplus.mapper.Wrapper;importcom.entity.YonghuEntity;importcom.service.YonghuService;importcom.entity.view.YonghuView;importcom.utils.PageUtils;importcom.utils.R;RestControllerControllerRequestMapping(/yonghu)publicclassYonghuController{privatestaticfinalLoggerloggerLoggerFactory.getLogger(YonghuController.class);AutowiredprivateYonghuServiceyonghuService;AutowiredprivateTokenServicetokenService;AutowiredprivateDictionaryServicedictionaryService;//级联表service/** * 后端列表 */RequestMapping(/page)publicRpage(RequestParamMapString,Objectparams,HttpServletRequestrequest){logger.debug(page方法:,,Controller:{},,params:{},this.getClass().getName(),JSONObject.toJSONString(params));params.put(orderBy,id);PageUtilspageyonghuService.queryPage(params);//字典表数据转换ListYonghuViewlist(ListYonghuView)page.getList();for(YonghuViewc:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c);}returnR.ok().put(data,page);}/** * 后端详情 */RequestMapping(/info/{id})publicRinfo(PathVariable(id)Longid){logger.debug(info方法:,,Controller:{},,id:{},this.getClass().getName(),id);YonghuEntityyonghuyonghuService.selectById(id);if(yonghu!null){//entity转viewYonghuViewviewnewYonghuView();BeanUtils.copyProperties(yonghu,view);//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view);returnR.ok().put(data,view);}else{returnR.error(511,查不到数据);}}/** * 后端保存 */RequestMapping(/save)publicRsave(RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){logger.debug(save方法:,,Controller:{},,yonghu:{},this.getClass().getName(),yonghu.toString());WrapperYonghuEntityqueryWrappernewEntityWrapperYonghuEntity().eq(username,yonghu.getUsername()).or().eq(yonghu_phone,yonghu.getYonghuPhone()).or().eq(yonghu_id_number,yonghu.getYonghuIdNumber());;logger.info(sql语句:queryWrapper.getSqlSegment());YonghuEntityyonghuEntityyonghuService.selectOne(queryWrapper);if(yonghuEntitynull){yonghu.setCreateTime(newDate());yonghu.setPassword(123456);// String role String.valueOf(request.getSession().getAttribute(role));// if(.equals(role)){// yonghu.set// }yonghuService.insert(yonghu);returnR.ok();}else{returnR.error(511,账户或者身份证号或者手机号已经被使用);}}/** * 后端修改 */RequestMapping(/update)publicRupdate(RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){logger.debug(update方法:,,Controller:{},,yonghu:{},this.getClass().getName(),yonghu.toString());//根据字段查询是否有相同数据WrapperYonghuEntityqueryWrappernewEntityWrapperYonghuEntity().notIn(id,yonghu.getId()).andNew().eq(username,yonghu.getUsername()).or().eq(yonghu_phone,yonghu.getYonghuPhone()).or().eq(yonghu_id_number,yonghu.getYonghuIdNumber());;logger.info(sql语句:queryWrapper.getSqlSegment());YonghuEntityyonghuEntityyonghuService.selectOne(queryWrapper);if(.equals(yonghu.getYonghuPhoto())||null.equals(yonghu.getYonghuPhoto())){yonghu.setYonghuPhoto(null);}if(yonghuEntitynull){// String role String.valueOf(request.getSession().getAttribute(role));// if(.equals(role)){// yonghu.set// }yonghuService.updateById(yonghu);//根据id更新returnR.ok();}else{returnR.error(511,账户或者身份证号或者手机号已经被使用);}}/** * 删除 */RequestMapping(/delete)publicRdelete(RequestBodyInteger[]ids){logger.debug(delete:,,Controller:{},,ids:{},this.getClass().getName(),ids.toString());yonghuService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}/** * 登录 */IgnoreAuthRequestMapping(value/login)publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){YonghuEntityyonghuyonghuService.selectOne(newEntityWrapperYonghuEntity().eq(username,username));if(yonghunull||!yonghu.getPassword().equals(password)){returnR.error(账号或密码不正确);}StringtokentokenService.generateToken(yonghu.getId(),username,yonghu,用户);RrR.ok();r.put(token,token);r.put(role,用户);r.put(username,yonghu.getYonghuName());r.put(tableName,yonghu);r.put(userId,yonghu.getId());returnr;}/** * 注册 */IgnoreAuthPostMapping(value/register)publicRregister(RequestBodyYonghuEntityyonghu){// ValidatorUtils.validateEntity(user);if(yonghuService.selectOne(newEntityWrapperYonghuEntity().eq(username,yonghu.getUsername()).orNew().eq(yonghu_phone,yonghu.getYonghuPhone()).orNew().eq(yonghu_id_number,yonghu.getYonghuIdNumber()))!null){returnR.error(账户已存在或手机号或身份证号已经被使用);}yonghuService.insert(yonghu);returnR.ok();}/** * 重置密码 */GetMapping(value/resetPassword)publicRresetPassword(Integerid){YonghuEntityyonghunewYonghuEntity();yonghu.setPassword(123456);yonghu.setId(id);yonghuService.updateById(yonghu);returnR.ok();}/** * 获取用户的session用户信息 */RequestMapping(/session)publicRgetCurrYonghu(HttpServletRequestrequest){Integerid(Integer)request.getSession().getAttribute(userId);YonghuEntityyonghuyonghuService.selectById(id);returnR.ok().put(data,yonghu);}/** * 退出 */GetMapping(valuelogout)publicRlogout(HttpServletRequestrequest){request.getSession().invalidate();returnR.ok(退出成功);}}t(data,yonghu);}/** * 退出 */GetMapping(valuelogout)publicRlogout(HttpServletRequestrequest){request.getSession().invalidate();returnR.ok(退出成功);}}on().invalidate();returnR.ok(退出成功);}}t(data,yonghu);}/** * 退出 */GetMapping(valuelogout)publicRlogout(HttpServletRequestrequest){request.getSession().invalidate();returnR.ok(退出成功);}}
http://www.gsyq.cn/news/1369591.html

相关文章:

  • 深圳华为云代理大宇云 优质华为云合作伙伴助力企业解锁上云优惠 - 资讯纵览
  • 网盘直链下载助手:9大主流网盘一键解析下载指南
  • AI写作辅助平台8款一键生成论文工具排行榜,毕业论文轻松搞定!
  • 2026年便携式溶解氧仪国产品牌综合实力排行榜与技术选型指南 - 仪表品牌排行榜
  • AI代理实战能力评估:MLE-Bench基准测试深度解析与工程启示
  • 多重插补与MICE:量化ESG评分不确定性的工程实践
  • 基于IoT、DRL与3DCNN的智能森林火灾监测系统设计与实践
  • 【紧急预警】Log4j2漏洞复现率上升300%!DeepSeek日志分析方案内置CVE-2021-44228实时捕获模块(含POC日志特征指纹库v3.1)
  • 3个简单步骤:如何用SRWE突破Windows窗口限制,实现专业级应用窗口管理?
  • DeepSeek认证失败率骤升40%?揭秘2024Q2新增的3类动态监管要求与5种零代码整改方案
  • 【DeepSeek生产环境告警零漏报标准】:基于137个真实故障复盘提炼的4层校验机制与SLI/SLO对齐法
  • 5分钟搞定!NVIDIA显卡广色域显示器色彩校准终极指南
  • 量子机器学习泛化难题:局部打乱理论与对称性陷阱解析
  • 艾尔登法环存档救星:如何快速拯救你的游戏进度
  • 从零搭建DeepSeek级训练数据流水线:Docker+Ray+Customized Dedup(支持跨文档语义去重),72小时交付可用数据集
  • 体验Taotoken多模型路由能力在不同负载下的稳定性表现
  • 高效智能的Chrome全页截图插件:完整网页保存的终极解决方案
  • 如何快速将B站m4s缓存转换为MP4:3步搞定视频格式转换难题
  • AD8232开源心电监测系统:从实验室到日常生活的医疗民主化革命
  • Sketch MeaXure TypeScript架构解析:现代化设计标注插件的技术实现
  • 终极指南:如何使用BooruDatasetTagManager将AI训练数据标注效率提升10倍
  • 我开源了一个 AI Agent 投资研究 Skill 项目:Biga,让投资框架变成可复用的 Agent 能力
  • 惠普OMEN游戏本性能控制终极指南:5分钟解锁风扇调速与功耗限制
  • 3大绝技:Gifsicle如何让命令行成为GIF动画的终极编辑器?
  • 10分钟掌握QModMaster:开源ModBus调试工具终极解决方案
  • 终极解决方案:如何一键修复Windows系统DLL缺失和软件兼容性问题
  • Windows Cleaner架构解析:智能磁盘空间管理与系统性能优化方案
  • NVIDIA Profile Inspector深度解析:解锁显卡驱动的隐藏配置层
  • JMeter并发与持续压测的本质区别与工程实践
  • Wonder3D:如何用一张照片在3分钟内创建专业3D模型?