计算机毕业设计 SpringBoot的一站式家装服务管理系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

本文主要是介绍计算机毕业设计 SpringBoot的一站式家装服务管理系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系

👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
Java毕业设计项目~热门选题推荐《1000套》

目录

1.技术选型

2.数据库表结构

3.开发工具

4.功能

4.1【角色】

4.2【前台功能模块】

4.3【后台功能模块】

5.项目演示截图

5.1 首页

5.2 装修风格

5.3 主材

5.4 个人中心

5.5 预算

5.6 合同

5.7 工程安排

5.8 装修风格收藏

5.9 装修风格管理

5.10 预算管理

6.数据库文件设计

7.核心代码 

7.1 工程安排Controller

7.2 工程安排Service

7.3 工程安排ServiceImpl

7.4 工程安排DAO

8.参考文档


1.技术选型

springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8

2.数据库表结构

15张 

3.开发工具

idea、navicat

4.功能

4.1【角色】

管理员、用户

4.2【前台功能模块】

  • 登录注册
  • 首页
  • 装修风格
  • 主材
  • 个人中心(个人中心、预约、合同、工程安排、售后服务、装修风格收藏、主材收藏)

4.3【后台功能模块】

  • 登录
  • 首页
  • 个人中心
  • 管理员管理
  • 基础数据管理
  • 装修风格管理
  • 主材管理
  • 用户管理
  • 装修管理
  • 轮播图管理

5.项目演示截图


5.1 首页

5.2 装修风格

 

5.3 主材

 

5.4 个人中心

 

5.5 预算

 

5.6 合同

 

5.7 工程安排

 

5.8 装修风格收藏

 

5.9 装修风格管理

 

5.10 预算管理

 

6.数据库文件设计

CREATE TABLE `config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(100) DEFAULT NULL COMMENT '配置参数名称',`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';CREATE TABLE `dictionary` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`dic_code` varchar(200) DEFAULT NULL COMMENT '字段',`dic_name` varchar(200) DEFAULT NULL COMMENT '字段名',`code_index` int(11) DEFAULT NULL COMMENT '编码',`index_name` varchar(200) DEFAULT NULL COMMENT '编码名字  Search111 ',`super_id` int(11) DEFAULT NULL COMMENT '父字段id',`beizhu` varchar(200) DEFAULT NULL COMMENT '备注',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COMMENT='字典';CREATE TABLE `hetong` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`hetong_uuid_number` varchar(200) DEFAULT NULL COMMENT '合同编号',`hetong_name` varchar(200) DEFAULT NULL COMMENT '合同名称  Search111 ',`hetong_file` varchar(200) DEFAULT NULL COMMENT '合同文件',`hetong_types` int(11) DEFAULT NULL COMMENT '合同状态 Search111',`hetong_huafei` decimal(10,2) DEFAULT NULL COMMENT '合同金额',`hetong_weiyuejin` decimal(10,2) DEFAULT NULL COMMENT '违约金',`hetong_content` text COMMENT '合同内容',`insert_time` timestamp NULL DEFAULT NULL COMMENT '开具时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show3 listShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='合同';CREATE TABLE `shouhou` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`hetong_id` int(11) DEFAULT NULL COMMENT '合同',`shouhou_name` varchar(200) DEFAULT NULL COMMENT '售后服务名称  Search111 ',`shouhou_uuid_number` varchar(200) DEFAULT NULL COMMENT '售后服务编号',`shouhou_file` varchar(200) DEFAULT NULL COMMENT '售后服务附件',`shouhou_types` int(11) DEFAULT NULL COMMENT '服务类型 Search111',`fuwu_time` timestamp NULL DEFAULT NULL COMMENT '服务时间',`shouhou_content` text COMMENT '售后服务内容',`insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show3 listShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='售后服务';CREATE TABLE `token` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`userid` bigint(20) NOT NULL COMMENT '学生id',`username` varchar(100) NOT NULL COMMENT '学生名',`tablename` varchar(100) DEFAULT NULL COMMENT '表名',`role` varchar(100) DEFAULT NULL COMMENT '角色',`token` varchar(200) NOT NULL COMMENT '密码',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',`expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='token表';CREATE TABLE `users` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(100) NOT NULL COMMENT '学生名',`password` varchar(100) NOT NULL COMMENT '密码',`role` varchar(100) DEFAULT '管理员' COMMENT '角色',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员';CREATE TABLE `yonghu` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(200) DEFAULT NULL COMMENT '账户',`password` varchar(200) DEFAULT NULL COMMENT '密码',`yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户姓名 Search111 ',`yonghu_phone` varchar(200) DEFAULT NULL COMMENT '用户手机号',`yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '用户身份证号',`yonghu_photo` varchar(200) DEFAULT NULL COMMENT '用户头像',`sex_types` int(11) DEFAULT NULL COMMENT '性别',`fangyuan_types` int(11) DEFAULT NULL COMMENT '房源 Search111 ',`huxing_types` int(11) DEFAULT NULL COMMENT '户型 Search111 ',`yonghu_email` varchar(200) DEFAULT NULL COMMENT '用户邮箱',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='用户';CREATE TABLE `zhuangxiufengge_collection` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`zhuangxiufengge_id` int(11) DEFAULT NULL COMMENT '装修风格',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`zhuangxiufengge_collection_types` int(11) DEFAULT NULL COMMENT '类型',`insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='装修风格收藏';CREATE TABLE `zhuangxiufengge_liuyan` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`zhuangxiufengge_id` int(11) DEFAULT NULL COMMENT '装修风格',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`zhuangxiufengge_liuyan_text` text COMMENT '留言内容',`insert_time` timestamp NULL DEFAULT NULL COMMENT '留言时间',`reply_text` text COMMENT '回复内容',`update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='装修风格留言';CREATE TABLE `zhucai` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`zhucai_name` varchar(200) DEFAULT NULL COMMENT '主材名称  Search111 ',`zhucai_uuid_number` varchar(200) DEFAULT NULL COMMENT '主材编号',`zhucai_photo` varchar(200) DEFAULT NULL COMMENT '主材照片',`zhucai_danwei` varchar(200) DEFAULT NULL COMMENT '单位',`zhucai_shengchanchangjia` varchar(200) DEFAULT NULL COMMENT '生产厂家',`zhucai_types` int(11) DEFAULT NULL COMMENT '主材类型 Search111',`pinpai_types` int(11) DEFAULT NULL COMMENT '品牌 Search111 ',`zhucai_jiage` decimal(10,2) DEFAULT NULL COMMENT '主材价格',`zhucai_clicknum` int(11) DEFAULT NULL COMMENT '主材热度',`zhucai_content` text COMMENT '主材详情',`shangxia_types` int(11) DEFAULT NULL COMMENT '是否上架 ',`zhucai_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',`insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show1 show2 photoShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='主材';CREATE TABLE `zhucai_collection` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`zhucai_id` int(11) DEFAULT NULL COMMENT '主材',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`zhucai_collection_types` int(11) DEFAULT NULL COMMENT '类型',`insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='主材收藏';CREATE TABLE `zhucai_liuyan` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`zhucai_id` int(11) DEFAULT NULL COMMENT '主材',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`zhucai_liuyan_text` text COMMENT '留言内容',`insert_time` timestamp NULL DEFAULT NULL COMMENT '留言时间',`reply_text` text COMMENT '回复内容',`update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='主材留言';

7.核心代码 

7.1 工程安排Controller


package com.controller;/*** 工程安排* 后端接口* @author 计算机编程-吉哥* @email
*/
@RestController
@Controller
@RequestMapping("/gongchenganpai")
public class GongchenganpaiController {private static final Logger logger = LoggerFactory.getLogger(GongchenganpaiController.class);private static final String TABLE_NAME = "gongchenganpai";@Autowiredprivate GongchenganpaiService gongchenganpaiService;@Autowiredprivate TokenService tokenService;@Autowiredprivate DictionaryService dictionaryService;//字典@Autowiredprivate HetongService hetongService;//合同@Autowiredprivate ShouhouService shouhouService;//售后服务@Autowiredprivate YonghuService yonghuService;//用户@Autowiredprivate YusuanService yusuanService;//预算@Autowiredprivate ZhuangxiufenggeService zhuangxiufenggeService;//装修风格@Autowiredprivate ZhuangxiufenggeCollectionService zhuangxiufenggeCollectionService;//装修风格收藏@Autowiredprivate ZhuangxiufenggeLiuyanService zhuangxiufenggeLiuyanService;//装修风格留言@Autowiredprivate ZhucaiService zhucaiService;//主材@Autowiredprivate ZhucaiCollectionService zhucaiCollectionService;//主材收藏@Autowiredprivate ZhucaiLiuyanService zhucaiLiuyanService;//主材留言@Autowiredprivate UsersService usersService;//管理员/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永不会进入");else if("用户".equals(role))params.put("yonghuId",request.getSession().getAttribute("userId"));CommonUtil.checkMap(params);PageUtils page = gongchenganpaiService.queryPage(params);//字典表数据转换List<GongchenganpaiView> list =(List<GongchenganpaiView>)page.getList();for(GongchenganpaiView 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);GongchenganpaiEntity gongchenganpai = gongchenganpaiService.selectById(id);if(gongchenganpai !=null){//entity转viewGongchenganpaiView view = new GongchenganpaiView();BeanUtils.copyProperties( gongchenganpai , view );//把实体数据重构到view中//级联表 用户//级联表YonghuEntity yonghu = yonghuService.selectById(gongchenganpai.getYonghuId());if(yonghu != null){BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表view.setYonghuId(yonghu.getId());}//级联表 合同//级联表HetongEntity hetong = hetongService.selectById(gongchenganpai.getHetongId());if(hetong != null){BeanUtils.copyProperties( hetong , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表view.setHetongId(hetong.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody GongchenganpaiEntity gongchenganpai, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,gongchenganpai:{}",this.getClass().getName(),gongchenganpai.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永远不会进入");else if("用户".equals(role))gongchenganpai.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));Wrapper<GongchenganpaiEntity> queryWrapper = new EntityWrapper<GongchenganpaiEntity>().eq("yonghu_id", gongchenganpai.getYonghuId()).eq("hetong_id", gongchenganpai.getHetongId()).eq("gongchenganpai_name", gongchenganpai.getGongchenganpaiName()).eq("gongchenganpai_fuzeren", gongchenganpai.getGongchenganpaiFuzeren()).eq("gongchenganpai_lianxifangshi", gongchenganpai.getGongchenganpaiLianxifangshi()).eq("gongchenganpai_types", gongchenganpai.getGongchenganpaiTypes());logger.info("sql语句:"+queryWrapper.getSqlSegment());GongchenganpaiEntity gongchenganpaiEntity = gongchenganpaiService.selectOne(queryWrapper);if(gongchenganpaiEntity==null){gongchenganpai.setGongchenganpaiTypes(1);gongchenganpai.setInsertTime(new Date());gongchenganpai.setCreateTime(new Date());gongchenganpaiService.insert(gongchenganpai);return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody GongchenganpaiEntity gongchenganpai, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {logger.debug("update方法:,,Controller:{},,gongchenganpai:{}",this.getClass().getName(),gongchenganpai.toString());GongchenganpaiEntity oldGongchenganpaiEntity = gongchenganpaiService.selectById(gongchenganpai.getId());//查询原先数据String role = String.valueOf(request.getSession().getAttribute("role"));
gongchenganpai.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));if("".equals(gongchenganpai.getGongchenganpaiFile()) || "null".equals(gongchenganpai.getGongchenganpaiFile())){gongchenganpai.setGongchenganpaiFile(null);}gongchenganpaiService.updateById(gongchenganpai);//根据id更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids, HttpServletRequest request){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());List<GongchenganpaiEntity> oldGongchenganpaiList =gongchenganpaiService.selectBatchIds(Arrays.asList(ids));//要删除的数据gongchenganpaiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 批量上传*/@RequestMapping("/batchInsert")public R save( String fileName, HttpServletRequest request){logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try {List<GongchenganpaiEntity> gongchenganpaiList = 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){//循环GongchenganpaiEntity gongchenganpaiEntity = new GongchenganpaiEntity();gongchenganpaiList.add(gongchenganpaiEntity);//把要查询是否重复的字段放入map中//工程安排编号if(seachFields.containsKey("gongchenganpaiUuidNumber")){List<String> gongchenganpaiUuidNumber = seachFields.get("gongchenganpaiUuidNumber");gongchenganpaiUuidNumber.add(data.get(0));//要改的}else{List<String> gongchenganpaiUuidNumber = new ArrayList<>();gongchenganpaiUuidNumber.add(data.get(0));//要改的seachFields.put("gongchenganpaiUuidNumber",gongchenganpaiUuidNumber);}}//查询是否重复//工程安排编号List<GongchenganpaiEntity> gongchenganpaiEntities_gongchenganpaiUuidNumber = gongchenganpaiService.selectList(new EntityWrapper<GongchenganpaiEntity>().in("gongchenganpai_uuid_number", seachFields.get("gongchenganpaiUuidNumber")));if(gongchenganpaiEntities_gongchenganpaiUuidNumber.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(GongchenganpaiEntity s:gongchenganpaiEntities_gongchenganpaiUuidNumber){repeatFields.add(s.getGongchenganpaiUuidNumber());}return R.error(511,"数据库的该表中的 [工程安排编号] 字段已经存在 存在数据为:"+repeatFields.toString());}gongchenganpaiService.insertBatch(gongchenganpaiList);return R.ok();}}}}catch (Exception e){e.printStackTrace();return R.error(511,"批量插入数据异常,请联系管理员");}}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);PageUtils page = gongchenganpaiService.queryPage(params);//字典表数据转换List<GongchenganpaiView> list =(List<GongchenganpaiView>)page.getList();for(GongchenganpaiView c:list)dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段return R.ok().put("data", page);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);GongchenganpaiEntity gongchenganpai = gongchenganpaiService.selectById(id);if(gongchenganpai !=null){//entity转viewGongchenganpaiView view = new GongchenganpaiView();BeanUtils.copyProperties( gongchenganpai , view );//把实体数据重构到view中//级联表YonghuEntity yonghu = yonghuService.selectById(gongchenganpai.getYonghuId());if(yonghu != null){BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段view.setYonghuId(yonghu.getId());}//级联表HetongEntity hetong = hetongService.selectById(gongchenganpai.getHetongId());if(hetong != null){BeanUtils.copyProperties( hetong , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段view.setHetongId(hetong.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody GongchenganpaiEntity gongchenganpai, HttpServletRequest request){logger.debug("add方法:,,Controller:{},,gongchenganpai:{}",this.getClass().getName(),gongchenganpai.toString());Wrapper<GongchenganpaiEntity> queryWrapper = new EntityWrapper<GongchenganpaiEntity>().eq("yonghu_id", gongchenganpai.getYonghuId()).eq("hetong_id", gongchenganpai.getHetongId()).eq("gongchenganpai_uuid_number", gongchenganpai.getGongchenganpaiUuidNumber()).eq("gongchenganpai_name", gongchenganpai.getGongchenganpaiName()).eq("gongchenganpai_fuzeren", gongchenganpai.getGongchenganpaiFuzeren()).eq("gongchenganpai_lianxifangshi", gongchenganpai.getGongchenganpaiLianxifangshi()).eq("gongchenganpai_types", gongchenganpai.getGongchenganpaiTypes())
//            .notIn("gongchenganpai_types", new Integer[]{102});logger.info("sql语句:"+queryWrapper.getSqlSegment());GongchenganpaiEntity gongchenganpaiEntity = gongchenganpaiService.selectOne(queryWrapper);if(gongchenganpaiEntity==null){gongchenganpai.setInsertTime(new Date());gongchenganpai.setCreateTime(new Date());gongchenganpaiService.insert(gongchenganpai);return R.ok();}else {return R.error(511,"表中有相同数据");}}}

7.2 工程安排Service

package com.service;
/*** 工程安排 服务类* author 计算机编程-吉哥*/
public interface GongchenganpaiService extends IService<GongchenganpaiEntity> {/*** @param params 查询参数* @return 带分页的查询出来的数据*/PageUtils queryPage(Map<String, Object> params);}

7.3 工程安排ServiceImpl

package com.service.impl;/*** 工程安排 服务实现类* author 计算机编程-吉哥*/
@Service("gongchenganpaiService")
@Transactional
public class GongchenganpaiServiceImpl extends ServiceImpl<GongchenganpaiDao, GongchenganpaiEntity> implements GongchenganpaiService {@Overridepublic PageUtils queryPage(Map<String,Object> params) {Page<GongchenganpaiView> page =new Query<GongchenganpaiView>(params).getPage();page.setRecords(baseMapper.selectListView(page,params));return new PageUtils(page);}}

7.4 工程安排DAO

package com.dao;/*** 工程安排 Dao 接口** @author 计算机编程-吉哥*/
public interface GongchenganpaiDao extends BaseMapper<GongchenganpaiEntity> {List<GongchenganpaiView> selectListView(Pagination page,@Param("params")Map<String,Object> params);}

8.参考文档

 

你可能还有感兴趣的项目👇🏻👇🏻👇🏻

更多项目推荐:计算机毕业设计项目

如果大家有任何疑虑,请在下方咨询或评论

这篇关于计算机毕业设计 SpringBoot的一站式家装服务管理系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/579555

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1