SSM+Vue在线OA办公系统

         在线办公分三个用户登录,管理员,经理,员工。   SSM架构,maven管理工具,数据库Mysql,系统有文档,可有偿安装调试及讲解,项目保证质量。需要划到 最底 下可以联系到我。
 
功能如下:
1.个人信息修改
2.部门管理
3.财务报账类型管理
4.帖子类管理
5.公文类型管理
6.新闻类型管理
8.请假类型管理
9.日程类型管理
10邮件类型管理
11.职位管理
12.部门任命管理
13.考勤管理
14.论坛管理
15.公文管理
16.新闻管理
17.请假管理
18日程管理
19.薪资管理
20.邮件管理
21.经理管理
22.员工管理

部分实体设计:

部分表设计

服务表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

yuangong_id

Integer

员工

3

fuwu_uuid_number

String

服务唯一编号

4

fuwu_name

String

服务名称

5

fuwu_types

Integer

服务类型

6

fuwu_content

String

服务详情

7

chuli_types

Integer

是否处理

8

insert_time

Date

添加时间

9

create_time

Date

创建时间

公告信息表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

gonggao_name

String

公告名称

3

gonggao_photo

String

公告图片

4

gonggao_types

Integer

公告类型

5

insert_time

Date

公告发布时间

6

gonggao_content

String

公告详情

7

create_time

Date

创建时间

代码示例:
出业务接口

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.ChuqinEntity;
import com.entity.YonghuEntity;
import com.entity.view.ChuqinView;
import com.service.ChuqinService;
import com.service.DictionaryService;
import com.service.YonghuService;
import com.utils.PageUtils;
import com.utils.PoiUtil;
import com.utils.R;
import com.utils.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.net.URL;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 考勤
 * 后端接口
 */
@RestController
@Controller
@RequestMapping("/chuqin")
public class ChuqinController {
    private static final Logger logger = LoggerFactory.getLogger(ChuqinController.class);
    @Autowired
    private ChuqinService chuqinService;
    @Autowired
    private DictionaryService dictionaryService;

    //级联表service
    @Autowired
    private YonghuService yonghuService;


    /**
     * 后端列表
     */
    @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("weixiurenyuanId", request.getSession().getAttribute("userId"));
        else if ("员工".equals(role))
            params.put("yonghuId", request.getSession().getAttribute("userId"));
        if (params.get("orderBy") == null || params.get("orderBy") == "") {
            params.put("orderBy", "id");
        }
        PageUtils page = chuqinService.queryPage(params);

        //字典表数据转换
        List<ChuqinView> list = (List<ChuqinView>) page.getList();
        for (ChuqinView 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);
        ChuqinEntity chuqin = chuqinService.selectById(id);
        if (chuqin != null) {
            //entity转view
            ChuqinView view = new ChuqinView();
            BeanUtils.copyProperties(chuqin, view);//把实体数据重构到view中

            //级联表
            YonghuEntity yonghu = yonghuService.selectById(chuqin.getYonghuId());
            if (yonghu != null) {
                BeanUtils.copyProperties(yonghu, view, new String[]{"id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
                view.setYonghuId(yonghu.getId());
            }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        } else {
            return R.error(511, "查不到数据");
        }

    }

    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody ChuqinEntity chuqin, HttpServletRequest request) {
        logger.debug("save方法:,,Controller:{},,chuqin:{}", this.getClass().getName(), chuqin.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if (false)
            return R.error(511, "永远不会进入");
        else if ("员工".equals(role))
            chuqin.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<ChuqinEntity> queryWrapper = new EntityWrapper<ChuqinEntity>()
                .eq("yonghu_id", chuqin.getYonghuId())
                .eq("chuqin_types", chuqin.getChuqinTypes())
                .eq("overtimeNumber", chuqin.getOvertimeNumber())
                .eq("insert_time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()));

        logger.info("sql语句:" + queryWrapper.getSqlSegment());
        ChuqinEntity chuqinEntity = chuqinService.selectOne(queryWrapper);
        if (chuqinEntity == null) {
            chuqin.setInsertTime(new Date());
            chuqin.setCreateTime(new Date());
            chuqinService.insert(chuqin);
            return R.ok();
        } else {
            return R.error(511, "表中有相同数据");
        }
    }

    /**
     * 后端修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ChuqinEntity chuqin, HttpServletRequest request) {
        logger.debug("update方法:,,Controller:{},,chuqin:{}", this.getClass().getName(), chuqin.toString());
        //根据字段查询是否有相同数据
        Wrapper<ChuqinEntity> queryWrapper = new EntityWrapper<ChuqinEntity>()
                .notIn("id", chuqin.getId())
                .andNew()
                .eq("yonghu_id", chuqin.getYonghuId())
                .eq("chuqin_types", chuqin.getChuqinTypes())
                .eq("overtimeNumber", chuqin.getOvertimeNumber())
                .eq("insert_time", new SimpleDateFormat("yyyy-MM-dd").format(chuqin.getInsertTime()));

        logger.info("sql语句:" + queryWrapper.getSqlSegment());
        ChuqinEntity chuqinEntity = chuqinService.selectOne(queryWrapper);
        if (chuqinEntity == null) {
            chuqinService.updateById(chuqin);//根据id更新
            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());
        chuqinService.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);
        try {
            List<ChuqinEntity> chuqinList = 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("../../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) {
                            //循环
                            ChuqinEntity chuqinEntity = new ChuqinEntity();
                            chuqinList.add(chuqinEntity);
                            //把要查询是否重复的字段放入map中
                        }
                        //查询是否重复
                        chuqinService.insertBatch(chuqinList);
                        return R.ok();
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            return R.error(511, "批量插入数据异常,请联系管理员");
        }
    }

    /**
     * 打卡
     */
    @RequestMapping("/clockIn")
    public R clockIn(String flag, HttpServletRequest request) {
        logger.debug("clockIn方法:,,Controller:{},,flag:{}", this.getClass().getName(), flag);
        try {
            Integer id = (Integer) request.getSession().getAttribute("userId");
            String role = String.valueOf(request.getSession().getAttribute("role"));
            if (StringUtil.isEmpty(role) || "管理员".equals(role)) {
                return R.error(511, "没有打卡权限");
            }
            Date d = new Date();
            SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
            String date = format1.format(d);
            List<ChuqinEntity> chuqinList = new ArrayList<ChuqinEntity>();//要生成的list数据
            List<String> s = new ArrayList<>();
            s.add("yonghu_id+0");
            Wrapper<ChuqinEntity> queryWrapper3 = new EntityWrapper<ChuqinEntity>().eq("yonghu_id", id).orderDesc(s);
            List<ChuqinEntity> oldChuqinList = chuqinService.selectList(queryWrapper3);
            if ("1".equals(flag)) {
                //上班卡
                Date date1 = new Date();
                date1.setHours(8);
                date1.setMinutes(0);
                date1.setSeconds(0);
                
                //上班打卡
                //新增前先查看当前用户最大打卡时间
                if (oldChuqinList != null && oldChuqinList.size() > 0) {
                    ChuqinEntity entity = oldChuqinList.get(0);
                    Date todayTime = entity.getInsertTime();//获取出勤表最大出勤
                    String today = format1.format(todayTime);
                    //把日期加一天
                    Calendar calendar = new GregorianCalendar();
                    calendar.setTime(todayTime);
                    calendar.add(calendar.DATE, 1);
                    String newToday = format1.format(calendar.getTime());
                    if (date.equals(today)) {
                        return R.error(511, "已经打过上班卡了");
                    } else if (!date.equals(newToday)) {//当天日期 不是出勤最大日期加一天的话   就是补充缺勤日期
                        chuqinList = this.getQueQin(d, format1, today, id);
                    }
                    if (chuqinList != null && chuqinList.size() > 0) {
                        chuqinService.insertBatch(chuqinList);
                    }

                    //插入当天的上班卡
                    ChuqinEntity chuqin = new ChuqinEntity();
                    chuqin.setOnTime(d);
                    if (d.compareTo(date1) > 0) {//当前时间d 大于规定时间date1
                        chuqin.setChuqinTypes(6);//设置为迟到
                    } else if (d.compareTo(date1) <= 0) {//当前时间d 小于等于规定时间date1
                        chuqin.setChuqinTypes(3);//设置为未打下班卡
                    }
                    chuqin.setCreateTime(d);
                    chuqin.setInsertTime(format1.parse(date));
                    chuqin.setYonghuId(id);
                    chuqinService.insert(chuqin);
                } else {
                    //第一次打卡
                    ChuqinEntity chuqin = new ChuqinEntity();
                    chuqin.setOnTime(d);
                    if (d.compareTo(date1) > 0) {//当前时间d 大于规定时间date1
                        chuqin.setChuqinTypes(6);//设置为迟到
                    } else if (d.compareTo(date1) <= 0) {//当前时间d 小于等于规定时间date1
                        chuqin.setChuqinTypes(3);//设置为未打下班卡
                    }
                    chuqin.setCreateTime(d);
                    chuqin.setInsertTime(format1.parse(date));
                    chuqin.setYonghuId(id);
                    chuqinService.insert(chuqin);
                }

            } else if ("2".equals(flag)) {
                //下班打卡的地方
                Date date1 = new Date();
                date1.setHours(19);
                date1.setMinutes(00);
                date1.setSeconds(0);
                Date date2 = new Date();
                date2.setHours(18);
                date2.setMinutes(00);
                date2.setSeconds(0);
                //下班打卡
                if (oldChuqinList != null) {//不是第一次打卡
                    //查询当前用户是否生成了上班打卡
                    Wrapper<ChuqinEntity> queryWrapper = new EntityWrapper<ChuqinEntity>().eq("yonghu_id", id).eq("insert_time", date).orderDesc(s);
                    ChuqinEntity chuqinEntity = chuqinService.selectOne(queryWrapper);
                    if (chuqinEntity != null) {//生成了上班打卡
                        chuqinEntity.setDownTime(d);
                        if ("6".equals(String.valueOf(chuqinEntity.getChuqinTypes()))) {
                        } else if (d.compareTo(date1) > 0) {//当前时间d 大于规定时间   加班
                            int hours = d.getHours();
                            int i = hours - 19 + 1;
                            if (i > 0) {
                                chuqinEntity.setOvertimeNumber(i);
                            }
                            chuqinEntity.setChuqinTypes(5);//设置为迟到
                        } else if (d.compareTo(date2) < 0) {//当前时间d 小于等于规定时间 早退
                            chuqinEntity.setChuqinTypes(7);//设置为未打下班卡
                        } else {
                            chuqinEntity.setChuqinTypes(1);
                        }
                        chuqinService.updateById(chuqinEntity);
                    } else {
                        //当天上午没有生成上班打卡,要防止用户昨天及之前没有生成打卡记录
                        Wrapper<ChuqinEntity> queryWrapper1 = new EntityWrapper<ChuqinEntity>().eq("yonghu_id", id).orderDesc(s);
                        List<ChuqinEntity> list = chuqinService.selectList(queryWrapper1);
                        if (list != null && list.size() > 0) {
                            ChuqinEntity entity = list.get(0);
                            Date todayTime = entity.getInsertTime();//获取出勤表最大出勤
                            String today = format1.format(todayTime);
                            Calendar calendar = new GregorianCalendar();
                            calendar.setTime(todayTime);
                            calendar.add(calendar.DATE, 1);
                            String newToday = format1.format(calendar.getTime());
                            if (date.equals(today)) {
                                //昨天id+1  等于今天的话  就是直接新增下午打卡
                                ChuqinEntity chuqin = new ChuqinEntity();
                                chuqin.setDownTime(d);
                                chuqin.setChuqinTypes(2);
                                chuqinService.insert(chuqin);
                            } else if (!date.equals(newToday)) {//当天日期 不是出勤最大日期加一天的话   就是补充缺勤日期
                                chuqinList = this.getQueQin(d, format1, today, id);
                            }

                            if (chuqinList != null && chuqinList.size() > 0) {
                                chuqinService.insertBatch(chuqinList);
                            }
                        }
                    }
                } else {
                    //第一次打卡
                    ChuqinEntity chuqin = new ChuqinEntity();
                    chuqin.setDownTime(d);
                    chuqin.setChuqinTypes(2);
                    chuqinService.insert(chuqin);
                }
            } else {
                return R.error(511, "未知错误");
            }
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return R.ok();
    }

    /**
     * 补充缺勤和未打的情况
     *
     * @param d        当前日期
     * @param format1  "yyyy-MM-dd"
     * @param newToday 数据库存的最大打卡日期 加一天
     * @param id       打卡人id
     * @return
     * @throws ParseException
     */
    public static List<ChuqinEntity> getQueQin(Date d, SimpleDateFormat format1, String newToday, Integer id) throws ParseException {
        List<ChuqinEntity> list = new ArrayList<>();
        // 返回的日期集合
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date start = dateFormat.parse(newToday);//缺勤那天
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(d);
        calendar.add(calendar.DATE, -1); //当前时间减去一天,即一天前的时间
        Date end = dateFormat.parse(format1.format(calendar.getTime()));

        Calendar tempStart = Calendar.getInstance();
        tempStart.setTime(start);

        Calendar tempEnd = Calendar.getInstance();
        tempEnd.setTime(end);
        tempEnd.add(Calendar.DATE, +1);// 日期加1(包含结束)
        while (tempStart.before(tempEnd)) {
            ChuqinEntity chuqinEntity = new ChuqinEntity();
            chuqinEntity.setYonghuId(id);
            chuqinEntity.setInsertTime(tempStart.getTime());
            chuqinEntity.setCreateTime(d);
            chuqinEntity.setChuqinTypes(4);
            list.add(chuqinEntity);
            tempStart.add(Calendar.DAY_OF_YEAR, 1);
        }
        return list;
    }
}

出勤实体类

import com.entity.ChuqinEntity;
import com.baomidou.mybatisplus.annotations.TableName;
import org.apache.commons.beanutils.BeanUtils;

import java.lang.reflect.InvocationTargetException;

import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 考勤
 * 后端返回视图实体辅助类
 * (通常后端关联的表或者自定义的字段需要返回使用)
 */
@TableName("chuqin")
@Date
public class ChuqinView extends ChuqinEntity {
    /**
     * 打卡类型的值
     */
    private String chuqinValue;
	
    //级联表 yonghu
    /**
     * 员工编号
     */
    private String yonghuUuidNumber;
    /**
     * 员工姓名
     */
    private String yonghuName;
    /**
     * 员工手机号
     */
    private String yonghuPhone;
    /**
     * 员工身份证号
     */
    private String yonghuIdNumber;
    /**
     * 员工头像
     */
    private String yonghuPhoto;
    /**
     * 电子邮箱
     */
    private String yonghuEmail;
    /**
     * 部门
     */
    private Integer bumenTypes;
    /**
     * 部门的值
     */
    private String bumenValue;
    /**
     * 职位
     */
    private Integer zhiweiTypes;
    /**
     * 职位的值
     */
    private String zhiweiValue;
}

需要加我私聊即可:

                               

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/589378.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

免安装SQL管理工具HeidiSQL建库如何选Collation字符校对

免安装SQL管理工具HeidiSQL 文章目录 免安装SQL管理工具HeidiSQL一、安装二、建库因此&#xff0c;通常我们选择&#xff1a; 一、安装 到官方网址&#xff1a;https://www.heidisql.com/ 下载后按不同版本安装或解压&#xff0c;运行目录中的heidisql应用程序。 该工具可以对…

万界星空科技商业开源MES+项目合作+商业开源低代码平台

今天我想和大家分享的是一套商业开源的 MES制造执行管理系统带源码。对于制造业而言&#xff0c;MES 是一个至关重要的系统&#xff0c;它可以帮助企业提高生产效率、优化资源利用、提高产品质量&#xff0c;从而增强市场竞争力。 什么是 MES&#xff1f; MES 是指通过计算机技…

Luminar开始为沃尔沃生产下一代激光雷达传感器

在自动驾驶技术的浪潮中&#xff0c;激光雷达&#xff08;LiDAR&#xff09;传感器以其高精度和强大的环境感知能力&#xff0c;逐渐成为了该领域的技术之星。Luminar&#xff08;路安达&#xff09;公司作为自动驾驶技术的领军企业&#xff0c;近日宣布已开始为沃尔沃汽车生产…

Git使用指北

目录 创建一个Git仓库本地仓库添加文件文件提交到本地仓库缓冲区添加远程仓库地址本地仓库推送到远程仓库创建新的分支拉取代码同步删除缓冲区的文件&#xff0c;远程仓库的文件.gitignore文件 创建一个Git仓库 Git仓库分为远程和本地两种&#xff0c;远程仓库如Githu上创建的…

Themis新篇章:老牌衍生品协议登陆Blast L2,探索全新经济模型

本文将深入分析 Themis 的最新经济模型&#xff0c;探讨其核心概念和机制、优势与创新之处、风险与挑战。 一、引言 随着区块链技术的不断发展&#xff0c;DeFi 衍生品项目逐渐成为市场的焦点。而用户体验的革新&#xff0c;进一步的金融创新&#xff0c;去中心化治理方案的优…

Golang | Leetcode Golang题解之第63题不同路径II

题目&#xff1a; 题解&#xff1a; func uniquePathsWithObstacles(obstacleGrid [][]int) int {n, m : len(obstacleGrid), len(obstacleGrid[0])f : make([]int, m)if obstacleGrid[0][0] 0 {f[0] 1}for i : 0; i < n; i {for j : 0; j < m; j {if obstacleGrid[i]…

Java中使用Redis实现分布式锁的三种方式

1. 导语 随着软件开发领域的不断演进,并发性已经成为一个至关重要的方面,特别是在资源跨多个进程共享的分布式系统中。 在Java中,管理并发性对于确保数据一致性和防止竞态条件至关重要。 Redis作为一个强大的内存数据存储,为在Java应用程序中实现分布式锁提供了一种高效的…

go-mysql-transfer 同步数据到es

同步数据需要注意的事项 前提条件 1 要同步的mysql 表必须包含主键 2 mysql binlog 必须是row 模式 3 不支持程序运行过程中修改表结构 4 要赋予连接mysql 账号的权限 reload, replication super 权限 如果是root 权限则不需要 安装 go-mysql-transfer ​ git clone…

和丰多媒体信息发布系统 QH.aspx 文件上传漏洞复现

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

《十二》Qt各种对话框之FileDialog文件对话框及QMessageBox 消息对话框

QFileDialog 对话框 选择打开一个文件 若要打开一个文件&#xff0c;可调用静态函数 QFileDialog::getOpenFileName()&#xff0c;“打开一个文件”按钮的响应代码如下&#xff1a; void Dialog::on_btnOpen_clicked() { //选择单个文件QString curPathQDir::currentPath()…

【Docker】如何注册Hub账号并上传镜像到Hub仓库

一、创建Hub账户 浏览器访问&#xff1a;hub.docker.com 点击【Sign up】注册账号 输入【邮箱】【用户名】【密码】 ps&#xff1a;用户名要有字母数字&#xff1b;订阅不用勾选 点击【Sign up】注册即可 点击【Sign in】登录账号 输入【邮箱】【密码】 点击【Continue】登录 二…

大数据之数据仓库技术:ETL工具和Kettle简介

大数据之数据仓库技术&#xff1a;ETL工具和Kettle简介 ETL简介ETL工具和KettleKettle家族 Kettle资源KettlePack 任务调度工具 ETL简介 ETL(Extract-Transform-Load): 在大数据技术领域内&#xff0c;用来描述将数据从 来源端 经过 抽取(extract), 转换(transform), 加载(loa…

cefsharp实现资源替换如网页背景、移除替换标签、html标识、执行javascript脚本学习笔记(含源码说明)

(一)实现测试(仅供学习参考) 1.1 目标系统页面(登录页)和登录后首页面中2处(一个替换一个移除) 1.2 实现后效果(使用cefsharp自定义浏览器实现以上功能) 1.3 登录后页面替换和移除 系统名称和一个功能菜单li (二)通过分析代码实现脚本编写 2.1 分开处理,设置了…

C语言/数据结构——每日一题(反转链表)

一.前言 大家好&#xff01;今天又是每日一题环节。今天我为大家分享了一道单链表题——反转链表。 废话不多说&#xff0c;让我们直接进入正题吧。 二.正文 1.1题目信息 这是一道leetCode上面的一道题&#xff1a;https://leetcode.cn/problems/reverse-linked-list 1.2解…

Linux 第十八章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

一周零碎时间练习微服务(nacos,rq,springcloud,es等)内容

目录 1 总览1.1 技术架构1.2 其他1.2.1 数据库1.2.2 后端部分1.2.2.1 复习feign1.2.2.2 复习下网关网关的核心功能特性&#xff1a;网关路由的流程断言工厂过滤器工厂全局过滤器 过滤器执行顺序解决跨域问题 1.2.2.3 es部分复习 1.2.3 前端部分 2 day1 配置网关2.1 任务2.2 网关…

UI-Diffuser——使用生成性人工智能的UI原型设计

概述。 移动UI是影响参与度的一个重要因素&#xff0c;例如用户对应用的熟悉程度和使用的便利性。如果你有一个类似的应用程序&#xff0c;你可能会选择一个具有现代、好看的设计的应用程序&#xff0c;而不是一个旧的设计。然而&#xff0c;要从头开始研究什么样的UI最适合应…

JavaEE >> Spring MVC(1)

MVC MVC&#xff1a;Model View Controller 的缩写&#xff0c;是一种软件架构模式&#xff0c;将软件系统分为模型、视图和控制器三个部分。 Mode&#xff08;模型&#xff09;&#xff1a;是应⽤程序中⽤于处理应⽤程序数据逻辑的部分。通常模型对象负责在数据库中存取数据…

【通信中间件】Fdbus HelloWorld实例

Fdbus实例教程 Fdbus简介 Fdbus 全称 Fast Distributed Bus&#xff08;高速分布式总线&#xff09;&#xff0c;提供IPCRPC功能。适用于多种OS&#xff1a; LinuxQNXAnroidOSWindow Fdbus本质是Socket&#xff0c;IPC基于Unix domain socket&#xff0c;RPC基于TCP。使用G…

CAMEL:大型语言模型社会的“心智”探索沟通代理

英文名称: CAMEL: Communicative Agents for “Mind” Exploration of Large Language Model Society 中文名称: CAMEL&#xff1a;大型语言模型社会的“心智”探索沟通代理 链接: https://arxiv.org/pdf/2303.17760.pdf 代码: https://github.com/camel-ai/camel 4.4K Star 作…