OA项目值用户登入首页展示

news2024/12/23 3:57:48

1.什么是OA

办公自动化(Office Automation,简称OA)是将现代化办公和计算机技术结合起来的一种新型的办公方式。办公自动化没有统一的定义,凡是在传统的办公室中采用各种新技术、新机器、新设备从事办公业务,都属于办公自动化的领域。通过实现办公自动化,或者说实现数字化办公,可以优化现有的管理组织结构,调整管理体制,在提高效率的基础上,增加协同办公能力,强化决策的一致性 。

OA软件的核心应用是:流程审批、协同工作、公文管理(国企和政府机关)、沟通工具、文档管理、信息中心、电子论坛、计划管理、项目管理、任务管理、会议管理、关联人员、系统集成、门户定制、通讯录、工作便签、问卷调查、常用工具(计算器、万年历等)。

2.初始化数据库及数据

表名 说明
t_oa_meeting_info 会议信息表
t_oa_meeting_feedback 会议通知反馈表
t_oa_meeting_audit 会议审批信息表
t_oa_meeting_option 会议投票标题选项表
t_oa_meeting_room 会议室信息表
t_oa_permission 权限信息表
t_oa_role_permission 角色权限表
t_oa_user 用户信息表

 下面是创建数据库所有的数据库脚本:

/*
 Navicat Premium Data Transfer

 Source Server         : localhost
 Source Server Type    : MySQL
 Source Server Version : 50723
 Source Host           : localhost:3306
 Source Schema         : oa

 Target Server Type    : MySQL
 Target Server Version : 50723
 File Encoding         : 65001

 Date: 25/02/2022 10:41:07
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_oa_meeting_audit
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_meeting_audit`;
CREATE TABLE `t_oa_meeting_audit`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',
  `meetingId` bigint(11) NOT NULL COMMENT '外键,会议编号',
  `auditor` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '审批人',
  `sign` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '审批签字',
  `createdate` timestamp(0) null DEFAULT NULL COMMENT '审批时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会议审批信息表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_oa_meeting_feedback
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_meeting_feedback`;
CREATE TABLE `t_oa_meeting_feedback`  (
  `id` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键,唯一标识',
  `meetingId` bigint(11) NOT NULL COMMENT '外键,会议编号',
  `personType` int(2) NOT NULL COMMENT '人员类别:1参会2列席',
  `personId` bigint(11) NOT NULL COMMENT '人员ID',
  `result` int(2) NOT NULL COMMENT '反馈结果:1参加0不参加',
  `reason` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '不参与会议的原因',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会议通知反馈表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_oa_meeting_info
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_meeting_info`;
CREATE TABLE `t_oa_meeting_info`  (
  `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键,唯一标识',
  `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会议标题',
  `content` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会议内容',
  `canyuze` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '参与人员',
  `liexize` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '列席人员',
  `zhuchiren` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主持人',
  `location` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会议地点',
  `startTime` datetime(0) NOT NULL COMMENT '开始时间',
  `endTime` datetime(0) NOT NULL COMMENT '结束时间',
  `fujian` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '附件',
  `state` int(2) NOT NULL DEFAULT 1 COMMENT '状态:0取消会议1待审核2驳回3待开4进行中5开启投票6结束会议,默认值为1',
  `seatPic` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '会议排座图片地址',
  `remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注',
  `auditor` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '审批人',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会议信息表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_oa_meeting_option
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_meeting_option`;
CREATE TABLE `t_oa_meeting_option`  (
  `id` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键,唯一标识',
  `meetingId` bigint(11) NOT NULL COMMENT '会议ID',
  `optionValue` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '选项标识(A/B/C/D)',
  `optionText` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '选项描述',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会议投票标题选项表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_oa_meeting_room
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_meeting_room`;
CREATE TABLE `t_oa_meeting_room`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会议室名称',
  `equipment` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '会议设备',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会议室信息表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_oa_permission
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_permission`;
CREATE TABLE `t_oa_permission`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,标识列',
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '权限名称',
  `description` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '权限描述',
  `url` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单路径',
  `pid` bigint(20) DEFAULT NULL COMMENT '父权限',
  `ismenu` int(11) DEFAULT NULL COMMENT '是否为菜单 1、菜单  2、按钮',
  `displayno` bigint(20) DEFAULT NULL COMMENT '展现顺序',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1305 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '权限信息表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_oa_permission
-- ----------------------------
INSERT INTO `t_oa_permission` VALUES (10, '会议管理', NULL, NULL, -1, 1, 1);
INSERT INTO `t_oa_permission` VALUES (11, '投票管理', NULL, NULL, -1, 1, 9);
INSERT INTO `t_oa_permission` VALUES (12, '会议室管理', NULL, 'jsp/meeting/meetingRoom.jsp', -1, 1, 14);
INSERT INTO `t_oa_permission` VALUES (13, '系统管理', NULL, NULL, -1, 1, 15);
INSERT INTO `t_oa_permission` VALUES (1001, '会议发布', '发起会议', 'jsp/meeting/addMeeting.jsp', 10, 1, 2);
INSERT INTO `t_oa_permission` VALUES (1002, '会议通知', '别人发起的会议,需要你确认是否参加', 'jsp/meeting/meetingNotify.jsp', 10, 1, 3);
INSERT INTO `t_oa_permission` VALUES (1003, '我的会议', '我发起的,未审核->已审核', 'jsp/meeting/myMeeting.jsp', 10, 1, 4);
INSERT INTO `t_oa_permission` VALUES (1004, '我的审批', '我审批的会议', 'jsp/meeting/myAudit.jsp', 10, 1, 5);
INSERT INTO `t_oa_permission` VALUES (1005, '待开会议', '我参与的,但是还未开始的', 'jsp/meeting/meetingWaiting.jsp', 10, 1, 6);
INSERT INTO `t_oa_permission` VALUES (1006, '历史会议', '已经参与的', 'jsp/meeting/meetingHistory.jsp', 10, 1, 7);
INSERT INTO `t_oa_permission` VALUES (1007, '所有会议', '对所有会议进行汇总', 'jsp/meeting/meetingAll.jsp', 10, 1, 8);
INSERT INTO `t_oa_permission` VALUES (1101, '投票标题', '需要关联到会议标题(议题)', NULL, 11, 1, 10);
INSERT INTO `t_oa_permission` VALUES (1102, '投票选项', '需要关联到投票标题', NULL, 11, 1, 11);
INSERT INTO `t_oa_permission` VALUES (1103, '投票结果', '需要保留数据,可以看到谁投了什么票', NULL, 11, 1, 12);
INSERT INTO `t_oa_permission` VALUES (1104, '投票报表', '哪标题的哪个选项共投了多少票', NULL, 11, 1, 13);
INSERT INTO `t_oa_permission` VALUES (1301, '用户管理', NULL, 'jsp/system/userManage.jsp', 13, 1, 16);
INSERT INTO `t_oa_permission` VALUES (1302, '角色管理', NULL, NULL, 13, 1, 17);
INSERT INTO `t_oa_permission` VALUES (1303, '权限管理', NULL, NULL, 13, 1, 18);
INSERT INTO `t_oa_permission` VALUES (1304, '数据字典', NULL, NULL, 13, 1, 19);

-- ----------------------------
-- Table structure for t_oa_role_permission
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_role_permission`;
CREATE TABLE `t_oa_role_permission`  (
  `rid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,标识列',
  `pid` bigint(20) NOT NULL COMMENT '权限ID',
  PRIMARY KEY (`rid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色权限表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for t_oa_user
-- ----------------------------
DROP TABLE IF EXISTS `t_oa_user`;
CREATE TABLE `t_oa_user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,标识列',
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名: 唯一键 登陆时使用 禁止修改',
  `loginName` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '登录名',
  `pwd` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
  `rid` bigint(11) DEFAULT NULL COMMENT '用户角色:1 管理员 2 发起者 3 审批者 4 参与者 5 会议室管理员',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_oa_user
-- ----------------------------
INSERT INTO `t_oa_user` VALUES (1, '张三', 'zhangsan', '1234', 4);
INSERT INTO `t_oa_user` VALUES (2, '李四', 'lisi', '1234', 4);
INSERT INTO `t_oa_user` VALUES (3, '王五', 'wangwu', '1234', 4);
INSERT INTO `t_oa_user` VALUES (4, '赵六', 'zhaoliu', '1234', 4);
INSERT INTO `t_oa_user` VALUES (5, '管理员', 'admin', '1234', 1);

SET FOREIGN_KEY_CHECKS = 1;

3.项目OA功能需求流程及说明

  • 用户登录:后台采用MD5密码加密,前端采用ajax无刷新及json交互

  • 左侧菜单:登录成功后跳转到会议OA后台页面并完成左侧菜单初始化及动态选项卡绑定操作

  • 系统管理:用户管理模块增删改查实现

  • 会议发布:新增OA会议信息

  • 我的会议:完成我的会议信息展示、会议排座、送审、反馈详情及召开会议等功能

  • 我的审批:完成会议审批操作:审批通过和审批驳回

  • 会议通知:展示我需要参与的会议信息,并实现参会与不参会功能

  • 待开会议:展示会议状态为待开的所有会议信息

  • 历史会议:展示会议状态为已结束的所有会议信息

  • 所有会议:展示所有的会议信息

4.项目搭建

1、基于idea创建OA Web Project工程完成OA会议系统项目搭建

2、创建实体类

 3、创建UserDao,编写userLogin用户登入方法

 /**
     * 用户登入
     * @param t_oa_user
     * @return
     */
    public T_oa_user userLogin(T_oa_user t_oa_user){
        String sql="select * from t_oa_user where loginName='"+t_oa_user.getLoginName()+"'";
        System.out.println(sql);
        List<T_oa_user> t = super.executeQuery(sql, null, new CallBack<T_oa_user>() {
            @Override
            public List<T_oa_user> forEach(ResultSet rs) throws SQLException {
                return CommonUtils.toList(rs, T_oa_user.class);
            }
        });
        if(null!=t&&t.size()>0)
            return t.get(0);
        else
            return null;
    }

4、创建UserAction并登录实现,使用MD5对用户密码进行加密处理

 1、MD5

package com.zking.oa.util;

/**
 * 使用MD5算法对字符串进行加密的工具类。 MD5即Message-Digest
 * Algorithm5(信息-摘要算法5),是一种用于产生数字签名的单项散列算法, 这个算法是不可逆的,
 * 也就是说即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串
 * 
 */
public class MD5 {
	/*
	 * 下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define 实现的, 这里把它们实现成为static
	 * final是表示了只读,切能在同一个进程空间内的多个 Instance间共享
	 */
	private static final int S11 = 7;

	private static final int S12 = 12;

	private static final int S13 = 17;

	private static final int S14 = 22;

	private static final int S21 = 5;

	private static final int S22 = 9;

	private static final int S23 = 14;

	private static final int S24 = 20;

	private static final int S31 = 4;

	private static final int S32 = 11;

	private static final int S33 = 16;

	private static final int S34 = 23;

	private static final int S41 = 6;

	private static final int S42 = 10;

	private static final int S43 = 15;

	private static final int S44 = 21;

	private static final byte[] PADDING = { -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
			0, 0, 0, 0, 0, 0, 0, 0, 0 };

	/*
	 * 下面的三个成员是MD5计算过程中用到的3个核心数据,在原始的C实现中 被定义到MD5_CTX结构中
	 * 
	 */
	private long[] state = new long[4]; // state (ABCD)

	private long[] count = new long[2];// number of bits, modulo 2^64(lsbfirst)

	private byte[] buffer = new byte[64]; // input buffer

	/*
	 * digest,是最新一次计算结果的2进制内部表示,表示128bit的MD5值.
	 */
	private byte[] digest = new byte[16];

	public MD5() {
		md5Init();
	}

	/*
	 * getMD5ofStr是类MD5最主要的公共方法,入口参数是你想要进行MD5变换的字符串
	 * 返回的是变换完的结果,这个结果是从公共成员digestHexStr取得的.
	 */
	public String getMD5ofStr(String inbuf) {
		md5Init();
		md5Update(inbuf.getBytes(), inbuf.length());
		md5Final();
		String digestHexStr = "";
		for (int i = 0; i < 16; i++) {
			digestHexStr += byteHEX(digest[i]);
		}
		return digestHexStr;

	}

	/* md5Init是一个初始化函数,初始化核心变量,装入标准的幻数 */
	private void md5Init() {
		count[0] = 0L;
		count[1] = 0L;
		// /* Load magic initialization constants.

		state[0] = 0x67452301L;
		state[1] = 0xefcdab

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序开发——比较两个数字大小

在这里我们使用的工具是 需要自行安装和配置。 在微信小程序中比较两个数字大小有以下几种方式&#xff1a; 一、普通条件判断 在小程序的.js 文件中&#xff0c;先定义两个数字&#xff0c;如let num1 5; let num2 3;。通过if - else if - else语句&#xff0c;根据num1与…

在VB.net中,DateTime类使用,举例说明

标题 在VB.net中&#xff0c;DateTime类使用&#xff0c;举例说明 前面学习相关 1.在VB.net中&#xff0c;如何把"20240906"转化成日期格式 2.在VB.net中 DateTime有什么属性与方法 3.在VB.net中&#xff0c;Stopwatch有什么属性与方法 正文 在VB.NET中&#xff0c;D…

vite + vue3 + ts 移动端开箱即用现代开发模板

中文 | English SouthernWind https://blog.csdn.net/nanchen_J?typeblog sw-template vite vue3 ts 移动端开箱即用现代开发模板 特点 &#x1f436; Vite 的Vue3 的文件路由布局系统Mock 后续支持Api 自动引入组件自动引入VueUse 支持TypeScript 的Tailwind css 的暗…

优化算法(二)—粒子群优化算法(附MATLAB程序)

粒子群优化算法&#xff08;Particle Swarm Optimization, PSO&#xff09;是一种基于群体智能的优化算法&#xff0c;由James Kennedy和Russ Eberhart于1995年提出。它模仿鸟群觅食的行为&#xff0c;利用一组“粒子”在搜索空间中进行探索&#xff0c;以寻找最优解。每个粒子…

AI大模型知识点大梳理_ai大模型知识学习,零基础入门到精通,收藏这一篇就够了

文章目录 AI大模型是什么AI大模型发展历程AI大模型的底层原理AI大模型解决的问题大模型的优点和不足影响个人观点 AI大模型是什么 AI大模型是指具有巨大参数量的深度学习模型&#xff0c;通常包含数十亿甚至数万亿个参数。这些模型可以通过学习大量的数据来提高预测能力&…

尝试解决ubuntu中安装应用时出现依赖不满足的问题

在ubuntu或者其他linux环境中安装应用时&#xff0c;我们有时候会遇到以来不满足的问题&#xff0c;这时候就会导致目标应用无法被安装&#xff0c;比如&#xff1a; 怎么办呢&#xff1f; 第一种方式&#xff1a; 首先&#xff0c;尝试更新软件库。 先后执行以下两个命令 sudo…

输电线路在线监测摄像头:规格(一)

输电线路在线监测摄像头&#xff1a;规格&#xff08;一&#xff09; 1、设备具备前视高清变焦镜头&#xff0c;后视日夜一体高清镜头&#xff0c;整机一体化设计&#xff0c;不拆分。 2、采用工业级高清摄像头&#xff0c;像素≥1600万&#xff0c;可按现场需求设置。 3、支持…

【机器学习】--- 生成对抗网络 (GANs)

生成对抗网络 (GANs) —— 机器学习中的一个热点 生成对抗网络&#xff08;GANs, Generative Adversarial Networks&#xff09;近年来在机器学习领域成为一个热点话题。自从Ian Goodfellow及其团队在2014年提出这一模型架构以来&#xff0c;GANs 在图像生成、数据增强、风格转…

duilib 直接可编译运行的 实例DEMO

陆陆续续花时间精力做了几个DEMO,VS2013以上,编译即可运行,资源样式都带着。如果学习使用,或类似需求的话,可以参考下,有需要的,可以私信联系。 目录 1、duiliib 基本控件使用示例 2、文件选择对话框 3、登录界面例子 4、各种消息框的示例 5、时间工具条示例 6、透…

Web大学生网页作业成品——在线购物商城网页设计与实现(HTML+CSS+JS)(4个页面)

&#x1f389;&#x1f389;&#x1f389; 常见网页设计作业题材有**汽车、环保、明星、文化、国家、抗疫、景点、人物、体育、植物、公益、图书、节日、游戏、商城、旅游、家乡、学校、电影、动漫、非遗、动物、个人、企业、美食、婚纱、其他**等网页设计题目, 可满足大学生网…

重塑在线软件开发新纪元:集成高效安全特性,深度解析与评估支持浏览器在线编程的系统架构设计

目录 案例 【题目】 【问题 1】(13 分) 【问题 2】(12 分) 【答案】 【问题 1】解析 【问题 2】解析 相关推荐 案例 阅读以下关于软件架构设计与评估的叙述&#xff0c;回答问题1和问题2。 【题目】 某公司拟开发一套在线软件开发系统&#xff0c;支持用户通过浏览器…

Qt_自定义信号

目录 1、自定义信号的规定 2、创建自定义信号 3、带参数的信号与槽 4、一个信号连接多个槽 5、信号与槽的断开 结语 前言&#xff1a; 虽然Qt已经内置了大量的信号&#xff0c;并且这些信号能够满足大部分的开发场景&#xff0c;但是Qt仍然允许开发者自定义信号&#…

【Unity精品插件】NGUI:UI设计传奇工具

&#x1f4c2; Unity 开发资源汇总 | 插件 | 模型 | 源码 &#x1f493; 欢迎访问 Unity 打怪升级大本营 在Unity3D的世界中&#xff0c;用户界面&#xff08;UI&#xff09;是玩家与游戏互动的重要桥梁。随着游戏和应用的复杂性不断增加&#xff0c;传统的UI解决方案已经难以满…

AgentRE:用智能体框架提升知识图谱构建效果,重点是开源!

发布时间&#xff1a;2024 年 09 月 13 日 Agent应用 AgentRE: An Agent-Based Framework for Navigating Complex Information Landscapes in Relation Extraction 在复杂场景中&#xff0c;关系抽取 (RE) 因关系类型多样和实体间关系模糊而挑战重重&#xff0c;影响了传统 “…

一种没有注释的语言

原文&#xff1a;Breck Yunits - 2024.09.05 JSON 是 PLDB&#xff08;A Programming Language Database&#xff09;中唯一不支持注释的流行语言。JSON 既不支持单行注释&#xff0c;也不支持多行注释。 JSON 最初是有注释的 Douglas Crockford 在 2012 年解释了他独特的设计…

稀有 Punk 10E 到手?「捡漏」的背后是一个已停止运营的 NFT 碎片化协议

撰文&#xff1a;Yangz&#xff0c;Techub News 今日凌晨&#xff0c;作为 24 个 Ape Punk 之一的 CryptoPunk #2386 以 10 ETH 的价格被 0x282 开头的地址购入。一时间&#xff0c;NFT 圈内尽是「羡慕」与「质疑」。 的确&#xff0c;即使是在如今尽显颓势的 NFT 市场&#xf…

(十三)、将一个 SpringCloud 微服务运行 以 jar 方式运行

文章目录 1、总体思路2、操作2.1、把 SpringCloud 打包为 jar生成 jar运行 jar 1、总体思路 把 SpringCloud 项目打包获得 jar &#xff0c;然后使用指定版本的jdk 运行 jar 2、操作 2.1、把 SpringCloud 打包为 jar 生成 jar 具体被打包的子 pom 文件声明为 jar 类型 <…

开源PHP免费家谱应用Webtrees简介

1. 介绍 Webtrees是一个开源的在线家谱管理系统&#xff0c;支持 GEDCOM 格式&#xff0c;允许用户协作管理家谱数据。它是免费的&#xff0c;并且功能强大。Webtrees有大量活跃用户参与的交流社区&#xff0c;在全世界约有6800个服务器。这是一个服务器应用&#xff0c;可以多…

抖音豆包大模型SFT-监督微调最佳实践

目录 一、SFT&#xff08;Supervised Finetune&#xff09;简介 二、SFT 的意义和时机 三、数据准备 3.1、数据格式 3.1.1、参考问答 3.1.2、角色扮演 3.1.3、文本分类 3.1.4、文案生成 3.2、数据量级 3.3、是否混入预置数据 3.4、如何扩充SFT数据 三、训练配置 3.…

Leetcode面试经典150题-349.两个数组的交集

题目比较简单&#xff0c;散散心吧 解法都在代码里&#xff0c;不懂就留言或者私信 class Solution {public int[] intersection(int[] nums1, int[] nums2) {/**先排个序 */Arrays.sort(nums1);Arrays.sort(nums2);int curIndex1 0;int curIndex2 0;/**先把数组的大小设置…