首页 > 其他分享 >软件开发 --- 若依框架的请假与审批

软件开发 --- 若依框架的请假与审批

时间:2024-10-12 21:21:20浏览次数:1  
标签:请假 若依 软件开发 leave system --- 审批 import com

其实审批的本质就是两张表,一个审批状态表,一个审批表本身,审批流程的过程就是状态管理的过程。

为实现完整的请假申请流程,需要引入审批流的概念。这个流程不仅包括申请人提交申请,还包括选择审批人、审批操作(同意/驳回)以及状态的变更等功能。下面将详细介绍如何通过若依框架的 MVC 模式来实现请假申请和审批流程。

### 1. 需求分析

完整的业务流程包含以下步骤:

1. 用户填写请假申请。
2. 用户选择审批人,并提交申请。
3. 审批人查看待审批的申请,并决定批准或驳回。
4. 若审批通过,申请状态变为“已通过”;若驳回,状态变为“已驳回”。

### 2. 数据库表设计

为了支持审批功能,除了基本的请假申请数据表,还需要一个审批记录表来跟踪每个审批过程的状态。

**表1:`sys_leave_request`** (请假申请表)
```sql
CREATE TABLE sys_leave_request (
    request_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    leave_type VARCHAR(50),       -- 请假类型
    start_time DATETIME,          -- 开始时间
    end_time DATETIME,            -- 结束时间
    reason TEXT,                  -- 请假原因
    applicant VARCHAR(50),        -- 申请人
    status VARCHAR(20),           -- 状态(待审批、已通过、已驳回)
    approver VARCHAR(50),         -- 审批人
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
```

**表2:`sys_leave_approval`** (审批记录表)
```sql
CREATE TABLE sys_leave_approval (
    approval_id BIGINT PRIMARY KEY AUTO_INCREMENT,
    request_id BIGINT,            -- 对应的请假申请ID
    approver VARCHAR(50),         -- 审批人
    approval_status VARCHAR(20),  -- 审批状态(同意、驳回)
    approval_time DATETIME,       -- 审批时间
    comments TEXT                 -- 审批意见
);
```

### 3. 数据模型(Model)

**请假申请实体类:`LeaveRequest`**
```java
package com.ruoyi.project.system.leave.domain;

import java.util.Date;

public class LeaveRequest {
    private Long requestId;
    private String leaveType;
    private Date startTime;
    private Date endTime;
    private String reason;
    private String applicant;
    private String status;
    private String approver;

    // Getters 和 Setters 略
}
```

**审批记录实体类:`LeaveApproval`**
```java
package com.ruoyi.project.system.leave.domain;

import java.util.Date;

public class LeaveApproval {
    private Long approvalId;
    private Long requestId;
    private String approver;
    private String approvalStatus;
    private Date approvalTime;
    private String comments;

    // Getters 和 Setters 略
}
```

### 4. 数据库操作(Mapper)

#### 4.1 请假申请 Mapper

```java
package com.ruoyi.project.system.leave.mapper;

import com.ruoyi.project.system.leave.domain.LeaveRequest;
import java.util.List;

public interface LeaveRequestMapper {
    List<LeaveRequest> selectAllRequests();
    
    LeaveRequest selectRequestById(Long requestId);
    
    int insertLeaveRequest(LeaveRequest leaveRequest);
    
    int updateLeaveRequest(LeaveRequest leaveRequest);
    
    int deleteLeaveRequestById(Long requestId);
    
    // 查询待审批的申请
    List<LeaveRequest> selectPendingRequests(String approver);
}
```

#### 4.2 审批记录 Mapper

```java
package com.ruoyi.project.system.leave.mapper;

import com.ruoyi.project.system.leave.domain.LeaveApproval;
import java.util.List;

public interface LeaveApprovalMapper {
    List<LeaveApproval> selectApprovalsByRequestId(Long requestId);
    
    int insertLeaveApproval(LeaveApproval leaveApproval);
}
```

### 5. 服务层(Service)

#### 5.1 请假申请服务接口

```java
package com.ruoyi.project.system.leave.service;

import com.ruoyi.project.system.leave.domain.LeaveRequest;
import java.util.List;

public interface ILeaveRequestService {
    List<LeaveRequest> selectAllRequests();
    
    LeaveRequest selectRequestById(Long requestId);
    
    int insertLeaveRequest(LeaveRequest leaveRequest);
    
    int updateLeaveRequest(LeaveRequest leaveRequest);
    
    int deleteLeaveRequestById(Long requestId);
    
    List<LeaveRequest> selectPendingRequests(String approver);
}
```

#### 5.2 审批记录服务接口

```java
package com.ruoyi.project.system.leave.service;

import com.ruoyi.project.system.leave.domain.LeaveApproval;
import java.util.List;

public interface ILeaveApprovalService {
    List<LeaveApproval> selectApprovalsByRequestId(Long requestId);
    
    int insertLeaveApproval(LeaveApproval leaveApproval);
}
```

### 6. 控制器(Controller)

#### 6.1 请假申请控制器

```java
package com.ruoyi.project.system.leave.controller;

import com.ruoyi.project.system.leave.domain.LeaveRequest;
import com.ruoyi.project.system.leave.service.ILeaveRequestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/system/leave")
public class LeaveRequestController {
    @Autowired
    private ILeaveRequestService leaveRequestService;

    // 获取所有请假申请
    @GetMapping("/list")
    public List<LeaveRequest> list() {
        return leaveRequestService.selectAllRequests();
    }

    // 根据ID查询请假申请
    @GetMapping("/{requestId}")
    public LeaveRequest getInfo(@PathVariable Long requestId) {
        return leaveRequestService.selectRequestById(requestId);
    }

    // 提交请假申请
    @PostMapping
    public int add(@RequestBody LeaveRequest leaveRequest) {
        leaveRequest.setStatus("待审批");
        return leaveRequestService.insertLeaveRequest(leaveRequest);
    }

    // 获取待审批的申请列表
    @GetMapping("/pending/{approver}")
    public List<LeaveRequest> pending(@PathVariable String approver) {
        return leaveRequestService.selectPendingRequests(approver);
    }

    // 删除请假申请
    @DeleteMapping("/{requestId}")
    public int remove(@PathVariable Long requestId) {
        return leaveRequestService.deleteLeaveRequestById(requestId);
    }
}
```

#### 6.2 审批记录控制器

```java
package com.ruoyi.project.system.leave.controller;

import com.ruoyi.project.system.leave.domain.LeaveApproval;
import com.ruoyi.project.system.leave.domain.LeaveRequest;
import com.ruoyi.project.system.leave.service.ILeaveApprovalService;
import com.ruoyi.project.system.leave.service.ILeaveRequestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/system/leave/approval")
public class LeaveApprovalController {
    @Autowired
    private ILeaveApprovalService leaveApprovalService;

    @Autowired
    private ILeaveRequestService leaveRequestService;

    // 审批请假申请
    @PostMapping
    public int approve(@RequestBody LeaveApproval leaveApproval) {
        LeaveRequest leaveRequest = leaveRequestService.selectRequestById(leaveApproval.getRequestId());

        // 更新审批状态
        leaveApproval.setApprovalTime(new Date());
        leaveApprovalService.insertLeaveApproval(leaveApproval);

        // 更新请假申请状态
        if ("同意".equals(leaveApproval.getApprovalStatus())) {
            leaveRequest.setStatus("已通过");
        } else {
            leaveRequest.setStatus("已驳回");
        }

        return leaveRequestService.updateLeaveRequest(leaveRequest);
    }
}
```

### 7. 前端页面开发(Vue.js)

#### 7.1 请假申请页面

```html
<template>
  <div>
    <a-form @submit="submitForm">
      <a-form-item label="请假类型">
        <a-select v-model="form.leaveType">
          <a-select-option value="事假">事假</a-select-option>
          <a-select-option value="病假">病假</a-select-option>
          <a-select-option value="年假">年假</a-select-option>
          <a-select-option value="调休假">调休假</a-select-option>
        </a-select>
      </a-form-item>

      <a-form-item label="请假时间">
        <a-date-picker v-model="form.startTime" />
        至
        <a-date-picker v-model="form.endTime" />
      </a-form-item>

      <a-form-item label="请假原因">
        <a-textarea v-model="form.reason" />
      </a-form-item>

      <a-form-item label="审批人">
        <a-input v-model="form.approver" />
      </a-form-item>

      <a-form-item>
        <a-button type="primary" @click="submitForm">提交</a-button>
      </a-form-item>
    </a-form>
  </div>
</template>

<script>
import { submitLeaveRequest } from '@/api/system/leave';

export default {
  data() {
    return {
      form: {
        leaveType: '',
        startTime: '',
        endTime: '',
        reason: '',
        approver: '',
      },
    };
  },
  methods: {
    submitForm() {
      submitLeaveRequest(this.form).then(() => {
        this.$message.success('提交成功');
      });
    },
  },
};
</

script>
```

#### 7.2 审批页面

```html
<template>
  <div>
    <a-table :columns="columns" :dataSource="pendingList" rowKey="requestId">
      <template slot="action" slot-scope="text, record">
        <a-button type="link" @click="approveRequest(record, '同意')">同意</a-button>
        <a-button type="link" @click="approveRequest(record, '驳回')">驳回</a-button>
      </template>
    </a-table>
  </div>
</template>

<script>
import { getPendingRequests, approveLeaveRequest } from '@/api/system/leave';

export default {
  data() {
    return {
      pendingList: [],
      columns: [
        { title: '请假类型', dataIndex: 'leaveType' },
        { title: '申请人', dataIndex: 'applicant' },
        { title: '状态', dataIndex: 'status' },
        { title: '操作', key: 'action', scopedSlots: { customRender: 'action' } },
      ],
    };
  },
  mounted() {
    this.loadPendingRequests();
  },
  methods: {
    loadPendingRequests() {
      getPendingRequests().then((response) => {
        this.pendingList = response;
      });
    },
    approveRequest(record, status) {
      approveLeaveRequest({
        requestId: record.requestId,
        approver: this.$store.state.user.name,
        approvalStatus: status,
        comments: '审批意见',
      }).then(() => {
        this.$message.success(`${status}成功`);
        this.loadPendingRequests();
      });
    },
  },
};
</script>
```

### 8. 接口对接

```javascript
import request from '@/utils/request';

// 提交请假申请
export function submitLeaveRequest(data) {
  return request({
    url: '/system/leave',
    method: 'post',
    data,
  });
}

// 获取待审批的申请
export function getPendingRequests(approver) {
  return request({
    url: `/system/leave/pending/${approver}`,
    method: 'get',
  });
}

// 审批请假申请
export function approveLeaveRequest(data) {
  return request({
    url: '/system/leave/approval',
    method: 'post',
    data,
  });
}
```

### 总结

这个版本实现了完整的请假申请与审批流程,包括提交请假申请、选择审批人、审批操作以及通过/驳回状态的处理。审批人与申请人之间的互动通过数据库的请假申请和审批记录表进行管理,前端用户界面提供了申请提交和审批功能。

 

为实现完整的请假申请流程,需要引入审批流的概念。这个流程不仅包括申请人提交申请,还包括选择审批人、审批操作(同意/驳回)以及状态的变更等功能。下面将详细介绍如何通过若依框架的 MVC 模式来实现请假申请和审批流程。
### 1. 需求分析
完整的业务流程包含以下步骤:
1. 用户填写请假申请。2. 用户选择审批人,并提交申请。3. 审批人查看待审批的申请,并决定批准或驳回。4. 若审批通过,申请状态变为“已通过”;若驳回,状态变为“已驳回”。
### 2. 数据库表设计
为了支持审批功能,除了基本的请假申请数据表,还需要一个审批记录表来跟踪每个审批过程的状态。
**表1:`sys_leave_request`** (请假申请表)```sqlCREATE TABLE sys_leave_request (    request_id BIGINT PRIMARY KEY AUTO_INCREMENT,    leave_type VARCHAR(50),       -- 请假类型    start_time DATETIME,          -- 开始时间    end_time DATETIME,            -- 结束时间    reason TEXT,                  -- 请假原因    applicant VARCHAR(50),        -- 申请人    status VARCHAR(20),           -- 状态(待审批、已通过、已驳回)    approver VARCHAR(50),         -- 审批人    create_time DATETIME DEFAULT CURRENT_TIMESTAMP);```
**表2:`sys_leave_approval`** (审批记录表)```sqlCREATE TABLE sys_leave_approval (    approval_id BIGINT PRIMARY KEY AUTO_INCREMENT,    request_id BIGINT,            -- 对应的请假申请ID    approver VARCHAR(50),         -- 审批人    approval_status VARCHAR(20),  -- 审批状态(同意、驳回)    approval_time DATETIME,       -- 审批时间    comments TEXT                 -- 审批意见);```
### 3. 数据模型(Model)
**请假申请实体类:`LeaveRequest`**```javapackage com.ruoyi.project.system.leave.domain;
import java.util.Date;
public class LeaveRequest {    private Long requestId;    private String leaveType;    private Date startTime;    private Date endTime;    private String reason;    private String applicant;    private String status;    private String approver;
    // Getters 和 Setters 略}```
**审批记录实体类:`LeaveApproval`**```javapackage com.ruoyi.project.system.leave.domain;
import java.util.Date;
public class LeaveApproval {    private Long approvalId;    private Long requestId;    private String approver;    private String approvalStatus;    private Date approvalTime;    private String comments;
    // Getters 和 Setters 略}```
### 4. 数据库操作(Mapper)
#### 4.1 请假申请 Mapper
```javapackage com.ruoyi.project.system.leave.mapper;
import com.ruoyi.project.system.leave.domain.LeaveRequest;import java.util.List;
public interface LeaveRequestMapper {    List<LeaveRequest> selectAllRequests();        LeaveRequest selectRequestById(Long requestId);        int insertLeaveRequest(LeaveRequest leaveRequest);        int updateLeaveRequest(LeaveRequest leaveRequest);        int deleteLeaveRequestById(Long requestId);        // 查询待审批的申请    List<LeaveRequest> selectPendingRequests(String approver);}```
#### 4.2 审批记录 Mapper
```javapackage com.ruoyi.project.system.leave.mapper;
import com.ruoyi.project.system.leave.domain.LeaveApproval;import java.util.List;
public interface LeaveApprovalMapper {    List<LeaveApproval> selectApprovalsByRequestId(Long requestId);        int insertLeaveApproval(LeaveApproval leaveApproval);}```
### 5. 服务层(Service)
#### 5.1 请假申请服务接口
```javapackage com.ruoyi.project.system.leave.service;
import com.ruoyi.project.system.leave.domain.LeaveRequest;import java.util.List;
public interface ILeaveRequestService {    List<LeaveRequest> selectAllRequests();        LeaveRequest selectRequestById(Long requestId);        int insertLeaveRequest(LeaveRequest leaveRequest);        int updateLeaveRequest(LeaveRequest leaveRequest);        int deleteLeaveRequestById(Long requestId);        List<LeaveRequest> selectPendingRequests(String approver);}```
#### 5.2 审批记录服务接口
```javapackage com.ruoyi.project.system.leave.service;
import com.ruoyi.project.system.leave.domain.LeaveApproval;import java.util.List;
public interface ILeaveApprovalService {    List<LeaveApproval> selectApprovalsByRequestId(Long requestId);        int insertLeaveApproval(LeaveApproval leaveApproval);}```
### 6. 控制器(Controller)
#### 6.1 请假申请控制器
```javapackage com.ruoyi.project.system.leave.controller;
import com.ruoyi.project.system.leave.domain.LeaveRequest;import com.ruoyi.project.system.leave.service.ILeaveRequestService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController@RequestMapping("/system/leave")public class LeaveRequestController {    @Autowired    private ILeaveRequestService leaveRequestService;
    // 获取所有请假申请    @GetMapping("/list")    public List<LeaveRequest> list() {        return leaveRequestService.selectAllRequests();    }
    // 根据ID查询请假申请    @GetMapping("/{requestId}")    public LeaveRequest getInfo(@PathVariable Long requestId) {        return leaveRequestService.selectRequestById(requestId);    }
    // 提交请假申请    @PostMapping    public int add(@RequestBody LeaveRequest leaveRequest) {        leaveRequest.setStatus("待审批");        return leaveRequestService.insertLeaveRequest(leaveRequest);    }
    // 获取待审批的申请列表    @GetMapping("/pending/{approver}")    public List<LeaveRequest> pending(@PathVariable String approver) {        return leaveRequestService.selectPendingRequests(approver);    }
    // 删除请假申请    @DeleteMapping("/{requestId}")    public int remove(@PathVariable Long requestId) {        return leaveRequestService.deleteLeaveRequestById(requestId);    }}```
#### 6.2 审批记录控制器
```javapackage com.ruoyi.project.system.leave.controller;
import com.ruoyi.project.system.leave.domain.LeaveApproval;import com.ruoyi.project.system.leave.domain.LeaveRequest;import com.ruoyi.project.system.leave.service.ILeaveApprovalService;import com.ruoyi.project.system.leave.service.ILeaveRequestService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;
@RestController@RequestMapping("/system/leave/approval")public class LeaveApprovalController {    @Autowired    private ILeaveApprovalService leaveApprovalService;
    @Autowired    private ILeaveRequestService leaveRequestService;
    // 审批请假申请    @PostMapping    public int approve(@RequestBody LeaveApproval leaveApproval) {        LeaveRequest leaveRequest = leaveRequestService.selectRequestById(leaveApproval.getRequestId());
        // 更新审批状态        leaveApproval.setApprovalTime(new Date());        leaveApprovalService.insertLeaveApproval(leaveApproval);
        // 更新请假申请状态        if ("同意".equals(leaveApproval.getApprovalStatus())) {            leaveRequest.setStatus("已通过");        } else {            leaveRequest.setStatus("已驳回");        }
        return leaveRequestService.updateLeaveRequest(leaveRequest);    }}```
### 7. 前端页面开发(Vue.js)
#### 7.1 请假申请页面
```html<template>  <div>    <a-form @submit="submitForm">      <a-form-item label="请假类型">        <a-select v-model="form.leaveType">          <a-select-option value="事假">事假</a-select-option>          <a-select-option value="病假">病假</a-select-option>          <a-select-option value="年假">年假</a-select-option>          <a-select-option value="调休假">调休假</a-select-option>        </a-select>      </a-form-item>
      <a-form-item label="请假时间">        <a-date-picker v-model="form.startTime" />        至        <a-date-picker v-model="form.endTime" />      </a-form-item>
      <a-form-item label="请假原因">        <a-textarea v-model="form.reason" />      </a-form-item>
      <a-form-item label="审批人">        <a-input v-model="form.approver" />      </a-form-item>
      <a-form-item>        <a-button type="primary" @click="submitForm">提交</a-button>      </a-form-item>    </a-form>  </div></template>
<script>import { submitLeaveRequest } from '@/api/system/leave';
export default {  data() {    return {      form: {        leaveType: '',        startTime: '',        endTime: '',        reason: '',        approver: '',      },    };  },  methods: {    submitForm() {      submitLeaveRequest(this.form).then(() => {        this.$message.success('提交成功');      });    },  },};</
script>```
#### 7.2 审批页面
```html<template>  <div>    <a-table :columns="columns" :dataSource="pendingList" rowKey="requestId">      <template slot="action" slot-scope="text, record">        <a-button type="link" @click="approveRequest(record, '同意')">同意</a-button>        <a-button type="link" @click="approveRequest(record, '驳回')">驳回</a-button>      </template>    </a-table>  </div></template>
<script>import { getPendingRequests, approveLeaveRequest } from '@/api/system/leave';
export default {  data() {    return {      pendingList: [],      columns: [        { title: '请假类型', dataIndex: 'leaveType' },        { title: '申请人', dataIndex: 'applicant' },        { title: '状态', dataIndex: 'status' },        { title: '操作', key: 'action', scopedSlots: { customRender: 'action' } },      ],    };  },  mounted() {    this.loadPendingRequests();  },  methods: {    loadPendingRequests() {      getPendingRequests().then((response) => {        this.pendingList = response;      });    },    approveRequest(record, status) {      approveLeaveRequest({        requestId: record.requestId,        approver: this.$store.state.user.name,        approvalStatus: status,        comments: '审批意见',      }).then(() => {        this.$message.success(`${status}成功`);        this.loadPendingRequests();      });    },  },};</script>```
### 8. 接口对接
```javascriptimport request from '@/utils/request';
// 提交请假申请export function submitLeaveRequest(data) {  return request({    url: '/system/leave',    method: 'post',    data,  });}
// 获取待审批的申请export function getPendingRequests(approver) {  return request({    url: `/system/leave/pending/${approver}`,    method: 'get',  });}
// 审批请假申请export function approveLeaveRequest(data) {  return request({    url: '/system/leave/approval',    method: 'post',    data,  });}```
### 总结
这个版本实现了完整的请假申请与审批流程,包括提交请假申请、选择审批人、审批操作以及通过/驳回状态的处理。审批人与申请人之间的互动通过数据库的请假申请和审批记录表进行管理,前端用户界面提供了申请提交和审批功能。

标签:请假,若依,软件开发,leave,system,---,审批,import,com
From: https://www.cnblogs.com/GKLBB/p/18461518

相关文章

  • pwn-4.ciscn_2019_n_11
    拿到题后我们先checksec一下,发现有NX,但是下面没有开启PIE,但是我还是尝试了一下,万一可以直接连接呢出现的结果如下,Itsvalueshouldbe11.28125这里我们应该备受关注一下,后面可能会遇到,紧接着我们就IDA一下吧出现如下图片,我们shift+F12看一下,出现了cat/flag,这个肯......
  • JavaScript进阶笔记--深入对象-内置构造函数及案例
    深入对象创建对象三种方式利用对象字面量newObject({…})利用构造函数//1.字面量创建对象constobj1={name:'pig',age:18};console.log(obj1);//{name:"pig",age:18}//2.构造函数创建对象functionPig(name,age){......
  • [Paper Reading] TouchInsight: Uncertainty-aware Rapid Touch and Text Input for M
    目录TouchInsight:Uncertainty-awareRapidTouchandTextInputforMixedRealityfromEgocentricVisionTL;DRMethod模型中的数据流touchlocalizationLossProbabilisticcommandpredictExperimentAblation打字速度模型部署效果可视化总结与发散资料查询TouchInsight:Unc......
  • 第103天:权限提升-Linux系统&辅助项目&脏牛&Dirty&内核漏洞&SUID&GUID
    知识点梳理#知识点:1、Linux提权辅助项目-探针&漏扫2、Linux提权-配置SUID&内核CVE#系列内容:内核,数据库,第三方服务,SUID&GUID,定时任务,环境变量,SUDO,权限不当等脏牛漏洞(CVE-2016-5195)DirtyPipe(CVE-2022-0847)SUDO(CVE-2021-3156)Polkit(CVE-2021-4034)案例演示Linux-辅......
  • 【AI论文精读12】RAG论文综述2(微软亚研院 2409)P4-隐性事实查询L2
    AI知识点总结:【AI知识点】AI论文精读、项目、思考:【AI修炼之路】P1,P2,P3四、隐性事实查询(L2)4.1概述ps:P2有四种查询(L1,L2,L3,L4)的举例对比隐性事实查询是指那些依赖于数据中未立即显现的关联,需要通过常识推理或基本逻辑推断才能得出的查询。这类信息可能分散在多个......
  • Web集群服务-Nginx
    1.web服务1. WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站2. WEB中间件:等同于WEB服务3. 中间件:范围更加广泛,指的负载均衡之后的服务4. 数据库中间件:数据库缓存,消息对列2. 极速上手指南nginx官网: nginxdocumentation2.1 配置yum源vim......
  • jsp大学生勤工助学信息管理系统9gisv--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表企业,学生,勤工俭学,留言咨询,应聘信息开题报告内容一、课题背景及意义随着高等教育的成本上升,大学生勤工助学成为缓解经济压力、提升实践能力的重要途径。然......
  • jsp大学生兼职网站5kl80--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,企业,兼职信息,应聘信息,岗位类型开题报告内容一、项目背景随着高等教育的普及和就业市场的竞争加剧,越来越多的大学生选择参与兼职工作,以积累实践经验、......
  • 八、Python基础语法(判断语句-下)
    一、ifelifelse结构应用场景:多个判断条件下,并且这些判断条件存在一定的关联。语法:elif也是python中关键字,后面跟一个判断条件,判断条件后面跟冒号存在冒号,需要换行缩进,处于elif缩进中的代码,是eilf代码块。if和多个elif之间,只要有一个条件成立,后续条件不再执行。需......
  • jsp大学生求职招聘系统86336--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表企业,招聘信息,用户,应聘信息,录取结果开题报告内容一、研究背景与意义随着互联网技术的不断发展,大学生就业招聘系统成为企业与求职者之间的重要桥梁。该系统......