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

Django+Vue基于强化学习和大模型的船舶避碰系统源码+论文

代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹
分享万套开题报告+任务书+答辩PPT模板
作者完整代码目录供你选择:
《SpringBoot网站项目》1800套
《SSM网站项目》1500套
《小程序项目》1600套
《APP项目》1500套
《Python网站项目》1300套
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

采用技术:

编程语言:Python
后端框架:Django
前端框架:Vue
数据库:MySQL
数据表数量:7张表
运行软件:PyCharm、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;@RestController@Controller@RequestMapping("/yonghu")publicclassYonghuController{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(YonghuController.class);@AutowiredprivateYonghuServiceyonghuService;@AutowiredprivateTokenServicetokenService;@AutowiredprivateDictionaryServicedictionaryService;//级联表service/** * 后端列表 */@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,HttpServletRequestrequest){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));params.put("orderBy","id");PageUtilspage=yonghuService.queryPage(params);//字典表数据转换List<YonghuView>list=(List<YonghuView>)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);YonghuEntityyonghu=yonghuService.selectById(id);if(yonghu!=null){//entity转viewYonghuViewview=newYonghuView();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());Wrapper<YonghuEntity>queryWrapper=newEntityWrapper<YonghuEntity>().eq("username",yonghu.getUsername()).or().eq("yonghu_phone",yonghu.getYonghuPhone()).or().eq("yonghu_id_number",yonghu.getYonghuIdNumber());;logger.info("sql语句:"+queryWrapper.getSqlSegment());YonghuEntityyonghuEntity=yonghuService.selectOne(queryWrapper);if(yonghuEntity==null){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());//根据字段查询是否有相同数据Wrapper<YonghuEntity>queryWrapper=newEntityWrapper<YonghuEntity>().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());YonghuEntityyonghuEntity=yonghuService.selectOne(queryWrapper);if("".equals(yonghu.getYonghuPhoto())||"null".equals(yonghu.getYonghuPhoto())){yonghu.setYonghuPhoto(null);}if(yonghuEntity==null){// 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();}/** * 登录 */@IgnoreAuth@RequestMapping(value="/login")publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){YonghuEntityyonghu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("username",username));if(yonghu==null||!yonghu.getPassword().equals(password)){returnR.error("账号或密码不正确");}Stringtoken=tokenService.generateToken(yonghu.getId(),username,"yonghu","用户");Rr=R.ok();r.put("token",token);r.put("role","用户");r.put("username",yonghu.getYonghuName());r.put("tableName","yonghu");r.put("userId",yonghu.getId());returnr;}/** * 注册 */@IgnoreAuth@PostMapping(value="/register")publicRregister(@RequestBodyYonghuEntityyonghu){// ValidatorUtils.validateEntity(user);if(yonghuService.selectOne(newEntityWrapper<YonghuEntity>().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){YonghuEntityyonghu=newYonghuEntity();yonghu.setPassword("123456");yonghu.setId(id);yonghuService.updateById(yonghu);returnR.ok();}/** * 获取用户的session用户信息 */@RequestMapping("/session")publicRgetCurrYonghu(HttpServletRequestrequest){Integerid=(Integer)request.getSession().getAttribute("userId");YonghuEntityyonghu=yonghuService.selectById(id);returnR.ok().put("data",yonghu);}/** * 退出 */@GetMapping(value="logout")publicRlogout(HttpServletRequestrequest){request.getSession().invalidate();returnR.ok("退出成功");}}t("data",yonghu);}/** * 退出 */@GetMapping(value="logout")publicRlogout(HttpServletRequestrequest){request.getSession().invalidate();returnR.ok("退出成功");}}request.getSession().invalidate();returnR.ok("退出成功");}}t("data",yonghu);}/** * 退出 */@GetMapping(value="logout")publicRlogout(HttpServletRequestrequest){request.getSession().invalidate();returnR.ok("退出成功");}}
http://www.rkmt.cn/news/1447333.html

相关文章:

  • Haven系统解析:基于SGX与库操作系统的云数据机密计算实践
  • 2026年昌吉市汽车修理大揭秘:哪家技术好值得一探究竟! 小田补胎救援 联系电话:13565609729 地址:昌吉市124县道 - 企业推荐官【官方】
  • Arduino红外遥控解码实战:旧遥控器变智能无线控制器
  • Unity URP实战:用ShaderGraph给模型画个“发光边框”,附完整节点图与避坑点
  • 从PEM到坐标点:一份给嵌入式开发者的ECC公钥‘瘦身’与转换指南
  • 2026 年南宁装修公司深度解析:市场趋势、本土头部装企实力对比与选择指南 - GrowthUME
  • 谷歌收录数量在哪里看?site指令漏掉的30%都在这里
  • Windows驱动管理终极指南:使用Driver Store Explorer轻松清理和备份驱动
  • 一屏透明化三维立体重构安全信息哪个公司好
  • 从继电器到PCB:构建USB/电池自动切换的夜灯电源系统
  • LangChain + 向量数据库:Chroma、FAISS、Milvus 怎么选
  • Windows系统优化终极指南:5分钟用WinUtil让你的电脑快如闪电
  • PyTorch-NPU/baichuan2_7b_base性能基准测试:在C-Eval、MMLU等权威榜单的惊艳表现
  • 基于Arduino与PVC管道的复古智能RGB夜灯DIY全攻略
  • 保定白沟新城26年最新专业手表包包回收权威店铺推荐,TOP排行榜 - 莘州文化
  • 2026年宜昌汽车贴膜门店合规资质横向深度测评:4家主流品牌真实对比,避坑指南与选型推荐 - GrowthUME
  • 洛阳市老城区 适老化改造上门|维小达 适老厨房、适老卫生间、全屋适老化、适老化定制等一站式适老化改造服务 - 维小达科技
  • 2026年宁波高端授权旗舰类汽车贴膜门店横向深度测评 - GrowthUME
  • AWK实战:从文本数据中快速统计分组数量
  • Codex 完整介绍:OpenAI AI 编程代理的三种入口与核心能力
  • 网盘下载速度慢?8大平台直链解析工具帮你轻松提速
  • ​2026年石家庄保定唐山邯郸秦皇岛衡水邢台承德奢侈品回收(名表名包珠宝首饰)怎么选?赵掌柜二奢参考指南(185-3117-2838) - GrowthUME
  • 深度解析OptiScaler:多GPU超分辨率技术的跨平台融合革命
  • 睿港国际移民:圣基茨护照申请如何选择专业机构? - 博客万
  • Arduino TFT扩展板设计:从电平转换到PCB布局的完整实战指南
  • 暗黑破坏神3智能助手:5分钟解放双手,游戏效率提升200%
  • 基于Arduino与离线语音模块的智能小车DIY:从硬件搭建到代码实现
  • Hermes WebUI SSE流式引擎:实时聊天响应的终极指南
  • 免费开源乐谱识别神器Audiveris:5分钟将纸质乐谱转为数字格式的完整指南
  • 项目管理中如何进行项目干系人管理?