refactor: 合并 biz_support_unit/biz_execution_unit/biz_service_org 为 biz_org, 删除 2 张孤儿表, 改 biz_person.work_unit → org_id FK
主要改动: - SQL: biz_support_unit → biz_org, 加 org_type, 加 business_nature; 删 biz_execution_unit, biz_service_org - SQL: biz_project.support_unit_id/name + service_org_id/name → org_id/name/type - SQL: biz_meeting.support_unit_name → org_name - SQL: biz_person.work_unit → org_id (FK) - 后端: 新 BizOrg entity/mapper/service/controller - 后端: BizProject/BizMeeting 字段重命名 - 后端: 删 12 个 BizSupportUnit/BizExecutionUnit/BizServiceOrg Java 文件 - 后端: BizPersonImportVO.workUnit → orgName (导入时查 biz_org 取 org_id) - 后端: BizAuthController.registerExecutor 完整实现 (原 registerSupplier stub) - 前端: 新 admin/Orgs.vue + manager/Orgs.vue (原 SupportUnits) - 前端: RegisterExecutor.vue (原 RegisterSupplier, 单页 2 步) - 前端: sponsor/executor/manager 多个文件 workUnit → orgId/orgName 重命名 - 前端: 统一 supplier → executor, 业务命名 sponsor(赞助方) / executor(执行方=供应商) - 前端: 全工程 execution → executor (company type / role / person unit_type)
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.org/POM/4.0.0 http://maven.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>ruoyi</artifactId>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<version>3.9.2</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>ruoyi-business</artifactId>
|
||||
|
||||
<description>
|
||||
业务模块 - 北京整合医学学会项目管理系统
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ruoyi</groupId>
|
||||
<artifactId>ruoyi-system</artifactId>
|
||||
</dependency>
|
||||
<!-- 阿里云短信 SMS SDK -->
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
|
||||
<version>2.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>aliyun-java-sdk-core</artifactId>
|
||||
<version>4.6.4</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.Map;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.business.domain.BizOrg;
|
||||
import com.ruoyi.business.dto.SmsValidForm;
|
||||
import com.ruoyi.business.service.IBizOrgService;
|
||||
import com.ruoyi.business.service.SysSmsService;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
|
||||
/**
|
||||
* 业务登录 - 角色选择
|
||||
* registerExecutor 完整实现 (2026-08-15 重构, 原 registerSupplier):
|
||||
* 1. 校验短信验证码
|
||||
* 2. 检查手机号/用户名是否已注册
|
||||
* 3. 加密密码
|
||||
* 4. 插入 sys_user (用户名=前端传入, role_type=executor, 主账号)
|
||||
* 5. 插入 biz_org (executor 类型, business_nature/contact_phone 从表单)
|
||||
* 注: 主账号不建 biz_person, 跟 sponsor 主账号保持一致
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/auth")
|
||||
public class BizAuthController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private SysSmsService smsService;
|
||||
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
|
||||
@Autowired
|
||||
private IBizOrgService bizOrgService;
|
||||
|
||||
@Autowired
|
||||
private BCryptPasswordEncoder passwordEncoder;
|
||||
|
||||
@PostMapping("/login")
|
||||
public AjaxResult login(@RequestBody Map<String, Object> body) {
|
||||
String username = (String) body.get("username");
|
||||
String password = (String) body.get("password");
|
||||
String roleType = (String) body.get("roleType");
|
||||
return success().put("roleType", roleType).put("token", "mock-token");
|
||||
}
|
||||
|
||||
@PostMapping("/registerExecutor")
|
||||
public AjaxResult registerExecutor(@RequestBody Map<String, Object> body) {
|
||||
String username = (String) body.get("username");
|
||||
String unitName = (String) body.get("unitName");
|
||||
String businessNature = (String) body.get("businessNature");
|
||||
String phone = (String) body.get("phone");
|
||||
String code = (String) body.get("smsCode");
|
||||
String password = (String) body.get("password");
|
||||
String confirmPassword = (String) body.get("confirmPassword");
|
||||
String uuid = (String) body.get("uuid");
|
||||
|
||||
// 1. 基础校验
|
||||
if (username == null || username.length() < 4 || username.length() > 20) return error("用户名长度 4-20 位");
|
||||
if (!username.matches("^[A-Za-z0-9_]+$")) return error("用户名只能包含字母/数字/下划线");
|
||||
if (unitName == null || unitName.isEmpty()) return error("企业名称不能为空");
|
||||
if (businessNature == null || businessNature.isEmpty()) return error("企业性质不能为空");
|
||||
if (phone == null || !phone.matches("^1\\d{10}$")) return error("手机号格式错误");
|
||||
if (code == null || code.isEmpty()) return error("请输入短信验证码");
|
||||
if (password == null || password.length() < 6 || password.length() > 20) return error("密码长度 6-20 位");
|
||||
if (!password.equals(confirmPassword)) return error("两次密码输入不一致");
|
||||
|
||||
// 2. 校验短信验证码
|
||||
SmsValidForm smsForm = new SmsValidForm();
|
||||
smsForm.setPhone(phone);
|
||||
smsForm.setSmsCode(code);
|
||||
smsForm.setUuid(uuid);
|
||||
try {
|
||||
smsService.verifyCode(smsForm);
|
||||
} catch (RuntimeException e) {
|
||||
return error("验证码错误或已过期: " + e.getMessage());
|
||||
}
|
||||
|
||||
// 3. 检查手机号/用户名是否已注册
|
||||
if (userService.isPhoneRegistered(phone)) {
|
||||
return error("该手机号已注册, 请直接登录");
|
||||
}
|
||||
SysUser nameCheck = new SysUser();
|
||||
nameCheck.setUserName(username);
|
||||
if (!userService.checkUserNameUnique(nameCheck)) {
|
||||
return error("用户名已被占用: " + username);
|
||||
}
|
||||
|
||||
// 4. 加密密码 + 插入 sys_user (用户名=userName 字段, 主账号)
|
||||
SysUser user = new SysUser();
|
||||
user.setUserName(username);
|
||||
user.setNickName(unitName); // 默认昵称用公司名, 用户后续可在账号页改
|
||||
user.setPhonenumber(phone);
|
||||
user.setPassword(passwordEncoder.encode(password));
|
||||
user.setStatus("0");
|
||||
userService.insertUser(user);
|
||||
Long userId = user.getUserId();
|
||||
// sys_user.role_type 字段需 = executor
|
||||
userService.updateRoleType(userId, "executor");
|
||||
|
||||
// 5. 插入 biz_org (executor 类型, 主账号自己当 contact)
|
||||
BizOrg org = new BizOrg();
|
||||
org.setOrgId(null);
|
||||
org.setOrgName(unitName);
|
||||
org.setOrgType("executor");
|
||||
org.setBusinessNature(businessNature);
|
||||
org.setContactPhone(phone);
|
||||
org.setContactName(unitName); // 联系人默认 = 公司名
|
||||
org.setStatus("0");
|
||||
bizOrgService.insert(org);
|
||||
Long orgId = org.getOrgId();
|
||||
|
||||
// 注: 主账号不建 biz_person (与 sponsor 主账号保持一致, 见 sponsor/Account.vue)
|
||||
// 后续主账号在 [账号信息] 看到 [所属公司] 时, 后端可通过 sys_user.role_type 关联 biz_org 取 org_name
|
||||
// 子账号 (biz_person.unit_type='sponsor' + user_id 关联 sys_user.parent_user_id) 由 [人员管理] 创建
|
||||
|
||||
return success("注册成功, 请等待审核").put("userId", userId).put("orgId", orgId);
|
||||
}
|
||||
|
||||
@PostMapping("/registerSponsor")
|
||||
public AjaxResult registerSponsor(@RequestBody Map<String, Object> body) {
|
||||
return success();
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.business.domain.BizProject;
|
||||
import com.ruoyi.business.domain.BizMeeting;
|
||||
import com.ruoyi.business.domain.BizExpert;
|
||||
import com.ruoyi.business.service.IBizProjectService;
|
||||
import com.ruoyi.business.service.IBizMeetingService;
|
||||
import com.ruoyi.business.service.IBizExpertService;
|
||||
|
||||
/**
|
||||
* 工作台统计
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/dashboard")
|
||||
public class BizDashboardController extends BaseController {
|
||||
|
||||
@Autowired private IBizProjectService bizProjectService;
|
||||
@Autowired private IBizMeetingService bizMeetingService;
|
||||
@Autowired private IBizExpertService bizExpertService;
|
||||
|
||||
@GetMapping("/manager")
|
||||
public AjaxResult managerDashboard() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
List<BizProject> projects = bizProjectService.selectList(new BizProject());
|
||||
List<BizMeeting> meetings = bizMeetingService.selectList(new BizMeeting());
|
||||
List<BizExpert> experts = bizExpertService.selectList(new BizExpert());
|
||||
map.put("totalProjects", projects.size());
|
||||
map.put("totalMeetings", meetings.size());
|
||||
map.put("totalExperts", experts.size());
|
||||
map.put("todoMeetings", meetings.stream().filter(m -> "未执行".equals(m.getCurrentStage())).count());
|
||||
map.put("doingMeetings", meetings.stream().filter(m -> "待监管".equals(m.getCurrentStage()) || "待整改".equals(m.getCurrentStage())).count());
|
||||
map.put("doneMeetings", meetings.stream().filter(m -> "已结算".equals(m.getCurrentStage()) || "已结题".equals(m.getCurrentStage())).count());
|
||||
return success(map);
|
||||
}
|
||||
|
||||
@GetMapping("/leader")
|
||||
public AjaxResult leaderDashboard() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
List<BizProject> projects = bizProjectService.selectList(new BizProject());
|
||||
List<BizMeeting> meetings = bizMeetingService.selectList(new BizMeeting());
|
||||
map.put("totalProjects", projects.size());
|
||||
map.put("totalMeetings", meetings.size());
|
||||
map.put("finishedProjects", projects.stream().filter(p -> "1".equals(p.getIsFinished())).count());
|
||||
map.put("finishedMeetings", meetings.stream().filter(m -> "已结题".equals(m.getCurrentStage())).count());
|
||||
return success(map);
|
||||
}
|
||||
}
|
||||
+142
@@ -0,0 +1,142 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.business.domain.BizDepartment;
|
||||
import com.ruoyi.business.domain.BizDoctorTitle;
|
||||
import com.ruoyi.business.service.IBizDepartmentService;
|
||||
import com.ruoyi.business.service.IBizDoctorTitleService;
|
||||
|
||||
/**
|
||||
* 业务字典管理 (科室 + 医生职称)
|
||||
* 仅管理员可维护; 其它角色可访问 /active 接口拉启用的列表
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/dict")
|
||||
public class BizDictController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizDepartmentService departmentService;
|
||||
@Autowired
|
||||
private IBizDoctorTitleService doctorTitleService;
|
||||
|
||||
// ============== 科室 ==============
|
||||
|
||||
@PreAuthorize("@ss.hasRole('admin')")
|
||||
@GetMapping("/department/list")
|
||||
public TableDataInfo listDept(BizDepartment entity)
|
||||
{
|
||||
startPage();
|
||||
return getDataTable(departmentService.selectList(entity));
|
||||
}
|
||||
|
||||
@GetMapping("/department/active")
|
||||
public AjaxResult activeDept()
|
||||
{
|
||||
return success(departmentService.selectActive());
|
||||
}
|
||||
|
||||
@GetMapping("/department/{deptId}")
|
||||
public AjaxResult getDept(@PathVariable Long deptId)
|
||||
{
|
||||
return success(departmentService.getById(deptId));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasRole('admin')")
|
||||
@Log(title = "科室字典", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/department")
|
||||
public AjaxResult addDept(@RequestBody BizDepartment entity)
|
||||
{
|
||||
if (entity.getName() == null || entity.getName().trim().isEmpty()) {
|
||||
return error("科室名称不能为空");
|
||||
}
|
||||
if (entity.getStatus() == null || entity.getStatus().isEmpty()) entity.setStatus("0");
|
||||
entity.setCreateBy(SecurityUtils.getUsername());
|
||||
return toAjax(departmentService.insert(entity));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasRole('admin')")
|
||||
@Log(title = "科室字典", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/department")
|
||||
public AjaxResult editDept(@RequestBody BizDepartment entity)
|
||||
{
|
||||
if (entity.getDeptId() == null) return error("ID 不能为空");
|
||||
if (entity.getName() == null || entity.getName().trim().isEmpty()) {
|
||||
return error("科室名称不能为空");
|
||||
}
|
||||
entity.setUpdateBy(SecurityUtils.getUsername());
|
||||
return toAjax(departmentService.updateByPrimaryKey(entity));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasRole('admin')")
|
||||
@Log(title = "科室字典", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/department/{ids}")
|
||||
public AjaxResult removeDept(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(departmentService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
|
||||
// ============== 医生职称 ==============
|
||||
|
||||
@PreAuthorize("@ss.hasRole('admin')")
|
||||
@GetMapping("/title/list")
|
||||
public TableDataInfo listTitle(BizDoctorTitle entity)
|
||||
{
|
||||
startPage();
|
||||
return getDataTable(doctorTitleService.selectList(entity));
|
||||
}
|
||||
|
||||
@GetMapping("/title/active")
|
||||
public AjaxResult activeTitle()
|
||||
{
|
||||
return success(doctorTitleService.selectActive());
|
||||
}
|
||||
|
||||
@GetMapping("/title/{titleId}")
|
||||
public AjaxResult getTitle(@PathVariable Long titleId)
|
||||
{
|
||||
return success(doctorTitleService.getById(titleId));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasRole('admin')")
|
||||
@Log(title = "医生职称字典", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/title")
|
||||
public AjaxResult addTitle(@RequestBody BizDoctorTitle entity)
|
||||
{
|
||||
if (entity.getName() == null || entity.getName().trim().isEmpty()) {
|
||||
return error("职称名称不能为空");
|
||||
}
|
||||
if (entity.getStatus() == null || entity.getStatus().isEmpty()) entity.setStatus("0");
|
||||
entity.setCreateBy(SecurityUtils.getUsername());
|
||||
return toAjax(doctorTitleService.insert(entity));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasRole('admin')")
|
||||
@Log(title = "医生职称字典", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/title")
|
||||
public AjaxResult editTitle(@RequestBody BizDoctorTitle entity)
|
||||
{
|
||||
if (entity.getTitleId() == null) return error("ID 不能为空");
|
||||
if (entity.getName() == null || entity.getName().trim().isEmpty()) {
|
||||
return error("职称名称不能为空");
|
||||
}
|
||||
entity.setUpdateBy(SecurityUtils.getUsername());
|
||||
return toAjax(doctorTitleService.updateByPrimaryKey(entity));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasRole('admin')")
|
||||
@Log(title = "医生职称字典", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/title/{ids}")
|
||||
public AjaxResult removeTitle(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(doctorTitleService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+122
@@ -0,0 +1,122 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.system.mapper.SysUserMapper;
|
||||
import com.ruoyi.business.domain.BizExecutionIntent;
|
||||
import com.ruoyi.business.domain.BizProject;
|
||||
import com.ruoyi.business.service.IBizExecutionIntentService;
|
||||
import com.ruoyi.business.service.IBizProjectService;
|
||||
|
||||
/**
|
||||
* 执行意向Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/executionIntent")
|
||||
public class BizExecutionIntentController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private SysUserMapper sysUserMapper;
|
||||
@Autowired
|
||||
private IBizExecutionIntentService bizExecutionIntentService;
|
||||
@Autowired
|
||||
private IBizProjectService bizProjectService;
|
||||
|
||||
/**
|
||||
* 公开门户点击"立即报名" — 写入意向 (user_id = 当前登录用户)
|
||||
* POST /business/executionIntent/signup
|
||||
* body: { projectId } (后端按 id 查项目回填 no/name)
|
||||
* 返回 { intentId, projectNo, projectName, onboardStatus }
|
||||
*/
|
||||
@Log(title = "执行意向", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/signup")
|
||||
public AjaxResult signup(@RequestBody BizExecutionIntent bizExecutionIntent)
|
||||
{
|
||||
// 入参只接受 projectId (项目主键)
|
||||
// BizExecutionIntent 没有 projectId 字段, 用 params 暂存
|
||||
Object pidRaw = bizExecutionIntent.getParams().get("projectId");
|
||||
Long projectId = null;
|
||||
if (pidRaw != null) {
|
||||
try { projectId = Long.parseLong(String.valueOf(pidRaw)); } catch (Exception e) { return error("项目ID格式错误"); }
|
||||
}
|
||||
if (projectId == null) return error("项目ID不能为空");
|
||||
BizProject proj = bizProjectService.getById(String.valueOf(projectId));
|
||||
if (proj == null) return error("项目不存在");
|
||||
// 查重: 当前用户是否已报过这个项目
|
||||
BizExecutionIntent q = new BizExecutionIntent();
|
||||
q.setUserId(SecurityUtils.getUserId());
|
||||
q.setProjectNo(proj.getProjectNo());
|
||||
List<BizExecutionIntent> exists = bizExecutionIntentService.selectList(q);
|
||||
if (exists != null && !exists.isEmpty()) return error("您已报名过该项目,无需重复报名");
|
||||
bizExecutionIntent.setProjectNo(proj.getProjectNo());
|
||||
bizExecutionIntent.setProjectName(proj.getProjectName());
|
||||
Long uid = SecurityUtils.getUserId();
|
||||
bizExecutionIntent.setUserId(uid);
|
||||
// 默认按用户表信息补全 name/phone (意向表历史字段, 方便后续审核流使用)
|
||||
SysUser u = sysUserMapper.selectUserById(uid);
|
||||
if (u != null) {
|
||||
if (bizExecutionIntent.getName() == null || bizExecutionIntent.getName().isEmpty())
|
||||
bizExecutionIntent.setName(u.getUserName());
|
||||
if (bizExecutionIntent.getPhone() == null || bizExecutionIntent.getPhone().isEmpty())
|
||||
bizExecutionIntent.setPhone(u.getPhonenumber());
|
||||
}
|
||||
if (bizExecutionIntent.getOnboardStatus() == null) bizExecutionIntent.setOnboardStatus("未入库");
|
||||
bizExecutionIntent.setCreateBy(SecurityUtils.getUsername());
|
||||
int n = bizExecutionIntentService.insert(bizExecutionIntent);
|
||||
if (n == 0) return error("报名失败");
|
||||
return success(bizExecutionIntent);
|
||||
}
|
||||
|
||||
/** 当前用户是否已报过该项目 */
|
||||
@GetMapping("/hasSigned")
|
||||
public AjaxResult hasSigned(@RequestParam("projectId") Long projectId)
|
||||
{
|
||||
if (projectId == null) return success(false);
|
||||
BizProject proj = bizProjectService.getById(String.valueOf(projectId));
|
||||
if (proj == null) return success(false);
|
||||
BizExecutionIntent q = new BizExecutionIntent();
|
||||
q.setUserId(SecurityUtils.getUserId());
|
||||
q.setProjectNo(proj.getProjectNo());
|
||||
List<BizExecutionIntent> exists = bizExecutionIntentService.selectList(q);
|
||||
return success(exists != null && !exists.isEmpty());
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizExecutionIntent bizExecutionIntent)
|
||||
{
|
||||
startPage();
|
||||
List<BizExecutionIntent> list = bizExecutionIntentService.selectList(bizExecutionIntent);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{intentId}")
|
||||
public AjaxResult getInfo(@PathVariable("intentId") String intentId)
|
||||
{
|
||||
return success(bizExecutionIntentService.getById(intentId));
|
||||
}
|
||||
@Log(title = "执行意向", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizExecutionIntent bizExecutionIntent)
|
||||
{
|
||||
return toAjax(bizExecutionIntentService.insert(bizExecutionIntent));
|
||||
}
|
||||
@Log(title = "执行意向", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizExecutionIntent bizExecutionIntent)
|
||||
{
|
||||
return toAjax(bizExecutionIntentService.updateByPrimaryKey(bizExecutionIntent));
|
||||
}
|
||||
@Log(title = "执行意向", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizExecutionIntentService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
|
||||
/**
|
||||
* 执行方用户查询 Controller
|
||||
* 绕开 RuoYi 的 sys_user:list 权限(manager01 等普通用户被 data_scope 过滤看不到)。
|
||||
* 按 sys_user.role_type = 'executor' 过滤真正的执行方用户。
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/executor")
|
||||
public class BizExecutorController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
|
||||
/**
|
||||
* 查询指定角色用户列表 (支持 executor / sponsor / manager / leader / doctor / admin)
|
||||
* @param roleType 角色类型 (默认 'executor')
|
||||
* @param userName 用户名模糊搜索 (可选)
|
||||
* @param userId 精确匹配 (可选)
|
||||
* @param pageSize 限制返回行数 (默认 50)
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public AjaxResult list(@RequestParam(required = false, defaultValue = "executor") String roleType,
|
||||
@RequestParam(required = false) String userName,
|
||||
@RequestParam(required = false) Long userId,
|
||||
@RequestParam(required = false, defaultValue = "50") Integer pageSize)
|
||||
{
|
||||
StringBuilder sql = new StringBuilder()
|
||||
.append("SELECT user_id, dept_id, user_name, nick_name, email, phonenumber, role_type, status, create_time ")
|
||||
.append("FROM sys_user WHERE del_flag = '0' AND status = '0' AND role_type = ?");
|
||||
List<Object> args = new ArrayList<>();
|
||||
args.add(roleType);
|
||||
if (userId != null) {
|
||||
sql.append(" AND user_id = ?");
|
||||
args.add(userId);
|
||||
}
|
||||
if (userName != null && !userName.isEmpty()) {
|
||||
sql.append(" AND user_name LIKE ?");
|
||||
args.add("%" + userName + "%");
|
||||
}
|
||||
sql.append(" ORDER BY user_id ASC LIMIT ?");
|
||||
args.add(pageSize);
|
||||
|
||||
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql.toString(), args.toArray());
|
||||
// 标准化为前端 el-select 友好的字段
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
for (Map<String, Object> r : rows) {
|
||||
Map<String, Object> u = new HashMap<>();
|
||||
u.put("userId", r.get("user_id"));
|
||||
u.put("deptId", r.get("dept_id"));
|
||||
u.put("userName", r.get("user_name"));
|
||||
u.put("nickName", r.get("nick_name"));
|
||||
u.put("email", r.get("email"));
|
||||
u.put("phonenumber", r.get("phonenumber"));
|
||||
u.put("roleType", r.get("role_type"));
|
||||
u.put("status", r.get("status"));
|
||||
result.add(u);
|
||||
}
|
||||
return success(result);
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.business.domain.BizExpert;
|
||||
import com.ruoyi.business.service.IBizExpertService;
|
||||
|
||||
/**
|
||||
* 专家Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/expert")
|
||||
public class BizExpertController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizExpertService bizExpertService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizExpert bizExpert)
|
||||
{
|
||||
startPage();
|
||||
List<BizExpert> list = bizExpertService.selectList(bizExpert);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{expertId}")
|
||||
public AjaxResult getInfo(@PathVariable("expertId") String expertId)
|
||||
{
|
||||
return success(bizExpertService.getById(expertId));
|
||||
}
|
||||
/**
|
||||
* 查当前登录用户的专家信息 (按 userId 路由)
|
||||
*/
|
||||
@GetMapping("/profile")
|
||||
public AjaxResult getProfile()
|
||||
{
|
||||
return success(bizExpertService.getByUserId(SecurityUtils.getUserId()));
|
||||
}
|
||||
@Log(title = "专家", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizExpert bizExpert)
|
||||
{
|
||||
return toAjax(bizExpertService.insert(bizExpert));
|
||||
}
|
||||
@Log(title = "专家", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizExpert bizExpert)
|
||||
{
|
||||
return toAjax(bizExpertService.updateByPrimaryKey(bizExpert));
|
||||
}
|
||||
/**
|
||||
* 个人专家信息更新 (走 userId 路由, 后端强制注入当前登录用户)
|
||||
* 不依赖前端传 expertId; 找不到 expert 行时自动 insert
|
||||
*/
|
||||
@Log(title = "专家个人信息", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/profile")
|
||||
public AjaxResult updateProfile(@RequestBody BizExpert bizExpert)
|
||||
{
|
||||
bizExpert.setUserId(SecurityUtils.getUserId());
|
||||
bizExpert.setCreateBy(SecurityUtils.getUsername());
|
||||
return toAjax(bizExpertService.updateProfileByUserId(bizExpert));
|
||||
}
|
||||
@Log(title = "专家", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizExpertService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizInvitation;
|
||||
import com.ruoyi.business.service.IBizInvitationService;
|
||||
|
||||
/**
|
||||
* 邀请函Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/invitation")
|
||||
public class BizInvitationController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizInvitationService bizInvitationService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizInvitation bizInvitation)
|
||||
{
|
||||
startPage();
|
||||
List<BizInvitation> list = bizInvitationService.selectList(bizInvitation);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{invitationId}")
|
||||
public AjaxResult getInfo(@PathVariable("invitationId") String invitationId)
|
||||
{
|
||||
return success(bizInvitationService.getById(invitationId));
|
||||
}
|
||||
@Log(title = "邀请函", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizInvitation bizInvitation)
|
||||
{
|
||||
return toAjax(bizInvitationService.insert(bizInvitation));
|
||||
}
|
||||
@Log(title = "邀请函", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizInvitation bizInvitation)
|
||||
{
|
||||
return toAjax(bizInvitationService.updateByPrimaryKey(bizInvitation));
|
||||
}
|
||||
@Log(title = "邀请函", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizInvitationService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizLaborVoucher;
|
||||
import com.ruoyi.business.service.IBizLaborVoucherService;
|
||||
|
||||
/**
|
||||
* 劳务凭证Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/laborVoucher")
|
||||
public class BizLaborVoucherController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizLaborVoucherService bizLaborVoucherService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizLaborVoucher bizLaborVoucher)
|
||||
{
|
||||
startPage();
|
||||
List<BizLaborVoucher> list = bizLaborVoucherService.selectList(bizLaborVoucher);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{voucherId}")
|
||||
public AjaxResult getInfo(@PathVariable("voucherId") String voucherId)
|
||||
{
|
||||
return success(bizLaborVoucherService.getById(voucherId));
|
||||
}
|
||||
@Log(title = "劳务凭证", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizLaborVoucher bizLaborVoucher)
|
||||
{
|
||||
return toAjax(bizLaborVoucherService.insert(bizLaborVoucher));
|
||||
}
|
||||
@Log(title = "劳务凭证", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizLaborVoucher bizLaborVoucher)
|
||||
{
|
||||
return toAjax(bizLaborVoucherService.updateByPrimaryKey(bizLaborVoucher));
|
||||
}
|
||||
@Log(title = "劳务凭证", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizLaborVoucherService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizMeeting;
|
||||
import com.ruoyi.business.service.IBizMeetingService;
|
||||
|
||||
/**
|
||||
* 会议Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/meeting")
|
||||
public class BizMeetingController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizMeetingService bizMeetingService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizMeeting bizMeeting)
|
||||
{
|
||||
startPage();
|
||||
List<BizMeeting> list = bizMeetingService.selectList(bizMeeting);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{meetingId}")
|
||||
public AjaxResult getInfo(@PathVariable("meetingId") String meetingId)
|
||||
{
|
||||
return success(bizMeetingService.getById(meetingId));
|
||||
}
|
||||
@Log(title = "会议", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizMeeting bizMeeting)
|
||||
{
|
||||
return toAjax(bizMeetingService.insert(bizMeeting));
|
||||
}
|
||||
@Log(title = "会议", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizMeeting bizMeeting)
|
||||
{
|
||||
return toAjax(bizMeetingService.updateByPrimaryKey(bizMeeting));
|
||||
}
|
||||
@Log(title = "会议", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizMeetingService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizMeetingSettlement;
|
||||
import com.ruoyi.business.service.IBizMeetingSettlementService;
|
||||
|
||||
/**
|
||||
* 会议结算Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/meetingSettlement")
|
||||
public class BizMeetingSettlementController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizMeetingSettlementService bizMeetingSettlementService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizMeetingSettlement bizMeetingSettlement)
|
||||
{
|
||||
startPage();
|
||||
List<BizMeetingSettlement> list = bizMeetingSettlementService.selectList(bizMeetingSettlement);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{settlementId}")
|
||||
public AjaxResult getInfo(@PathVariable("settlementId") String settlementId)
|
||||
{
|
||||
return success(bizMeetingSettlementService.getById(settlementId));
|
||||
}
|
||||
@Log(title = "会议结算", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizMeetingSettlement bizMeetingSettlement)
|
||||
{
|
||||
return toAjax(bizMeetingSettlementService.insert(bizMeetingSettlement));
|
||||
}
|
||||
@Log(title = "会议结算", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizMeetingSettlement bizMeetingSettlement)
|
||||
{
|
||||
return toAjax(bizMeetingSettlementService.updateByPrimaryKey(bizMeetingSettlement));
|
||||
}
|
||||
@Log(title = "会议结算", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizMeetingSettlementService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.business.domain.BizMessage;
|
||||
import com.ruoyi.business.service.IBizMessageService;
|
||||
|
||||
/**
|
||||
* 个人消息Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/message")
|
||||
public class BizMessageController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizMessageService bizMessageService;
|
||||
|
||||
/**
|
||||
* 列表 (管理员视角: 全量 + 过滤)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('business:message:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizMessage bizMessage)
|
||||
{
|
||||
startPage();
|
||||
List<BizMessage> list = bizMessageService.selectList(bizMessage);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 当前登录用户的最近消息 (含未读统计)
|
||||
* GET /business/message/my?limit=50
|
||||
* 返回 {rows: [...], unread: 12}
|
||||
*/
|
||||
@GetMapping("/my")
|
||||
public AjaxResult my(@RequestParam(value = "limit", required = false, defaultValue = "50") Integer limit)
|
||||
{
|
||||
Long uid = SecurityUtils.getUserId();
|
||||
List<BizMessage> rows = bizMessageService.selectMyRecent(uid, limit);
|
||||
int unread = 0;
|
||||
for (BizMessage m : rows) {
|
||||
if ("0".equals(m.getIsRead())) unread++;
|
||||
}
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
data.put("rows", rows);
|
||||
data.put("unread", unread);
|
||||
data.put("total", rows.size());
|
||||
return success(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 标记单条已读 (校验归属)
|
||||
*/
|
||||
@PutMapping("/read/{msgId}")
|
||||
public AjaxResult markRead(@PathVariable Long msgId)
|
||||
{
|
||||
Long uid = SecurityUtils.getUserId();
|
||||
int n = bizMessageService.markRead(msgId, uid);
|
||||
return n > 0 ? success() : error("消息不存在或无权操作");
|
||||
}
|
||||
|
||||
/**
|
||||
* 当前用户全部标记已读
|
||||
*/
|
||||
@PutMapping("/readAll")
|
||||
public AjaxResult markAllRead()
|
||||
{
|
||||
Long uid = SecurityUtils.getUserId();
|
||||
int n = bizMessageService.markAllRead(uid);
|
||||
return success(n);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情 (校验归属)
|
||||
*/
|
||||
@GetMapping("/{msgId}")
|
||||
public AjaxResult getInfo(@PathVariable Long msgId)
|
||||
{
|
||||
BizMessage m = bizMessageService.getById(msgId);
|
||||
if (m == null) return error("消息不存在");
|
||||
// 非管理员只能看自己的
|
||||
if (!SecurityUtils.isAdmin() && !m.getReceiverUserId().equals(SecurityUtils.getUserId())) {
|
||||
return error("无权查看");
|
||||
}
|
||||
// 自动标记已读
|
||||
if ("0".equals(m.getIsRead()) && m.getReceiverUserId().equals(SecurityUtils.getUserId())) {
|
||||
bizMessageService.markRead(msgId, SecurityUtils.getUserId());
|
||||
m.setIsRead("1");
|
||||
}
|
||||
return success(m);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送消息给某用户 (管理员)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('business:message:add')")
|
||||
@Log(title = "个人消息", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizMessage bizMessage)
|
||||
{
|
||||
if (bizMessage.getReceiverUserId() == null) return error("接收人不能为空");
|
||||
if (bizMessage.getTitle() == null || bizMessage.getTitle().isEmpty()) return error("标题不能为空");
|
||||
bizMessage.setCreateBy(SecurityUtils.getUsername());
|
||||
return toAjax(bizMessageService.insert(bizMessage));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除 (管理员)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('business:message:remove')")
|
||||
@Log(title = "个人消息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(bizMessageService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizOrg;
|
||||
import com.ruoyi.business.service.IBizOrgService;
|
||||
|
||||
/**
|
||||
* 公司Controller (赞助方 + 执行方 共用)
|
||||
* GET /business/org/list?orgType=sponsor|execution
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/org")
|
||||
public class BizOrgController extends BaseController {
|
||||
@Autowired
|
||||
private IBizOrgService bizOrgService;
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizOrg bizOrg) {
|
||||
startPage();
|
||||
List<BizOrg> list = bizOrgService.selectList(bizOrg);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@GetMapping("/{orgId}")
|
||||
public AjaxResult getInfo(@PathVariable("orgId") Long orgId) {
|
||||
return success(bizOrgService.getById(orgId));
|
||||
}
|
||||
|
||||
@Log(title = "公司管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizOrg bizOrg) {
|
||||
return toAjax(bizOrgService.insert(bizOrg));
|
||||
}
|
||||
|
||||
@Log(title = "公司管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizOrg bizOrg) {
|
||||
return toAjax(bizOrgService.updateByPrimaryKey(bizOrg));
|
||||
}
|
||||
|
||||
@Log(title = "公司管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{orgIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] orgIds) {
|
||||
return toAjax(bizOrgService.deleteByPrimaryKeys(orgIds));
|
||||
}
|
||||
}
|
||||
+172
@@ -0,0 +1,172 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.business.domain.BizOrg;
|
||||
import com.ruoyi.business.domain.BizPerson;
|
||||
import com.ruoyi.business.domain.BizPersonImportVO;
|
||||
import com.ruoyi.business.mapper.BizOrgMapper;
|
||||
import com.ruoyi.business.service.IBizPersonService;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
|
||||
/**
|
||||
* 人员Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/person")
|
||||
public class BizPersonController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizPersonService bizPersonService;
|
||||
|
||||
@Autowired
|
||||
private BizOrgMapper bizOrgMapper;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizPerson bizPerson)
|
||||
{
|
||||
startPage();
|
||||
List<BizPerson> list = bizPersonService.selectList(bizPerson);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* sponsor 端专属人员列表 (走专属 mapper, 利用 biz_person.user_id -> sys_user.parent_user_id 做归属过滤)
|
||||
* 公共 /list 方法不被 sponsor 专属逻辑污染
|
||||
*/
|
||||
@GetMapping("/sponsorList")
|
||||
public TableDataInfo sponsorList(BizPerson bizPerson)
|
||||
{
|
||||
Long mainUid = getUserId();
|
||||
bizPerson.getParams().put("sponsorOwnerUid", mainUid);
|
||||
startPage();
|
||||
List<BizPerson> list = bizPersonService.selectSponsorList(bizPerson);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{personId}")
|
||||
public AjaxResult getInfo(@PathVariable("personId") String personId)
|
||||
{
|
||||
return success(bizPersonService.getById(personId));
|
||||
}
|
||||
@Log(title = "人员", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizPerson bizPerson)
|
||||
{
|
||||
bizPerson.setCreateBy(getUsername());
|
||||
bizPerson.setUpdateBy(getUsername());
|
||||
// sponsor 端新建人员 = 创建 sys_user 子账号 (SUB, parent=当前登录主账号)
|
||||
// service 内: 创建 sys_user + 创建 biz_person + 把 sys_user.user_id 绑到 biz_person.user_id
|
||||
SysUser created = bizPersonService.insert(bizPerson, getUserId());
|
||||
AjaxResult ajax = success(created);
|
||||
// SysUser.password 是 @JsonProperty WRITE_ONLY 不会序列化,这里额外 put 明文密码给前端 toast
|
||||
ajax.put("password", bizPerson.getLoginPassword());
|
||||
return ajax;
|
||||
}
|
||||
@Log(title = "人员", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizPerson bizPerson)
|
||||
{
|
||||
bizPerson.setUpdateBy(getUsername());
|
||||
return toAjax(bizPersonService.updateByPrimaryKey(bizPerson));
|
||||
}
|
||||
@Log(title = "人员", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizPersonService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
|
||||
// ========== sponsor 端 Excel 批量导入 ==========
|
||||
|
||||
/**
|
||||
* 下载 sponsor 端人员导入模板 (.xlsx)
|
||||
* 模板列头按 BizPersonImportVO @Excel 注解自动生成 (中文: 姓名/手机号/工作单位/部门/职务/角色/状态)
|
||||
*/
|
||||
@GetMapping("/sponsorImportTemplate")
|
||||
public void sponsorImportTemplate(HttpServletResponse response)
|
||||
{
|
||||
ExcelUtil<BizPersonImportVO> util = new ExcelUtil<>(BizPersonImportVO.class);
|
||||
util.importTemplateExcel(response, "人员导入");
|
||||
}
|
||||
|
||||
/**
|
||||
* sponsor 端批量导入人员 (上传 .xlsx)
|
||||
* 每行创建一个 biz_person + 一个 sys_user 子账号 (parent_user_id=当前主账号, loginUsername=手机号, 默认密码 123456)
|
||||
* 失败行记录在返回结果的 errorRows 字段, 不影响其他行
|
||||
*/
|
||||
@Log(title = "人员批量导入", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/sponsorImport")
|
||||
public AjaxResult sponsorImport(@RequestParam("file") MultipartFile file) throws Exception
|
||||
{
|
||||
if (file == null || file.isEmpty()) {
|
||||
throw new ServiceException("请选择要上传的文件");
|
||||
}
|
||||
ExcelUtil<BizPersonImportVO> util = new ExcelUtil<>(BizPersonImportVO.class);
|
||||
List<BizPersonImportVO> rows = util.importExcel(file.getInputStream(), 0);
|
||||
if (rows == null || rows.isEmpty()) {
|
||||
throw new ServiceException("导入文件无有效数据");
|
||||
}
|
||||
Long mainUid = getUserId();
|
||||
List<java.util.Map<String, Object>> results = new ArrayList<>();
|
||||
int ok = 0;
|
||||
for (int i = 0; i < rows.size(); i++) {
|
||||
BizPersonImportVO row = rows.get(i);
|
||||
java.util.Map<String, Object> r = new java.util.LinkedHashMap<>();
|
||||
r.put("rowNo", i + 2); // Excel 行号 (含标题行)
|
||||
r.put("name", row.getName());
|
||||
r.put("phone", row.getPhone());
|
||||
try {
|
||||
// 1. orgName → orgId (按 orgType='sponsor' 精确匹配, 查不到就报错)
|
||||
String orgName = row.getOrgName();
|
||||
if (orgName == null || orgName.trim().isEmpty()) {
|
||||
throw new ServiceException("所属公司不能为空");
|
||||
}
|
||||
BizOrg orgQuery = new BizOrg();
|
||||
orgQuery.setOrgName(orgName.trim());
|
||||
orgQuery.setOrgType("sponsor");
|
||||
List<BizOrg> matched = bizOrgMapper.selectList(orgQuery);
|
||||
if (matched == null || matched.isEmpty()) {
|
||||
throw new ServiceException("找不到所属公司: " + orgName + " (需先在 [公司管理] 录入 orgType=sponsor 的公司)");
|
||||
}
|
||||
Long orgId = matched.get(0).getOrgId();
|
||||
|
||||
BizPerson p = new BizPerson();
|
||||
p.setName(row.getName());
|
||||
p.setPhone(row.getPhone());
|
||||
p.setOrgId(orgId);
|
||||
p.setDepartment(row.getDepartment());
|
||||
p.setPosition(row.getPosition());
|
||||
p.setRole(row.getRole());
|
||||
p.setStatus("0"); // 默认正常
|
||||
p.setUnitType("sponsor");
|
||||
p.setLoginUsername(row.getPhone()); // 用户名 = 手机号 (要求唯一)
|
||||
p.setLoginPassword("123456"); // 默认密码
|
||||
p.setCreateBy(getUsername());
|
||||
p.setUpdateBy(getUsername());
|
||||
bizPersonService.insert(p, mainUid);
|
||||
ok++;
|
||||
r.put("ok", true);
|
||||
r.put("message", "成功");
|
||||
} catch (Exception e) {
|
||||
r.put("ok", false);
|
||||
r.put("message", e.getMessage());
|
||||
}
|
||||
results.add(r);
|
||||
}
|
||||
AjaxResult ajax = success();
|
||||
ajax.put("total", rows.size());
|
||||
ajax.put("ok", ok);
|
||||
ajax.put("results", results);
|
||||
return ajax;
|
||||
}
|
||||
}
|
||||
+214
@@ -0,0 +1,214 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.business.domain.BizExecutionIntent;
|
||||
import com.ruoyi.business.domain.BizProject;
|
||||
import com.ruoyi.business.domain.BizProjectAssign;
|
||||
import com.ruoyi.business.domain.BizProjectRating;
|
||||
import com.ruoyi.business.service.IBizProjectService;
|
||||
import com.ruoyi.business.service.IBizExecutionIntentService;
|
||||
import com.ruoyi.business.domain.BizProjectSponsorAssign;
|
||||
import com.ruoyi.business.service.IBizProjectAssignService;
|
||||
import com.ruoyi.business.service.IBizProjectRatingService;
|
||||
import com.ruoyi.business.service.IBizProjectSponsorAssignService;
|
||||
|
||||
/**
|
||||
* 项目Controller
|
||||
*
|
||||
* 评分说明: 评分公开 (无可见性), 由 rater_role 字段区分角色 (sponsor/executor/compliance)
|
||||
* 一律走 biz_project_rating 中间表 (BizProjectRatingController 已提供完整 CRUD)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/project")
|
||||
public class BizProjectController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizProjectService bizProjectService;
|
||||
@Autowired
|
||||
private IBizExecutionIntentService bizExecutionIntentService;
|
||||
@Autowired
|
||||
private IBizProjectAssignService bizProjectAssignService;
|
||||
@Autowired
|
||||
private IBizProjectRatingService bizProjectRatingService;
|
||||
@Autowired
|
||||
private IBizProjectSponsorAssignService bizProjectSponsorAssignService;
|
||||
|
||||
/**
|
||||
* 我报名的项目 (当前用户在 biz_execution_intent 里有意向的项目)
|
||||
* GET /business/project/myProjects
|
||||
*/
|
||||
@GetMapping("/myProjects")
|
||||
public TableDataInfo myProjects(BizProject bizProject)
|
||||
{
|
||||
Long uid = SecurityUtils.getUserId();
|
||||
BizExecutionIntent q = new BizExecutionIntent();
|
||||
q.setUserId(uid);
|
||||
List<BizExecutionIntent> intents = bizExecutionIntentService.selectList(q);
|
||||
if (intents == null || intents.isEmpty()) {
|
||||
TableDataInfo r = new TableDataInfo();
|
||||
r.setRows(new ArrayList<>());
|
||||
r.setTotal(0);
|
||||
return r;
|
||||
}
|
||||
java.util.Set<String> noSet = new java.util.LinkedHashSet<>();
|
||||
for (BizExecutionIntent it : intents) {
|
||||
if (it.getProjectNo() != null && !it.getProjectNo().isEmpty()) noSet.add(it.getProjectNo());
|
||||
}
|
||||
startPage();
|
||||
BizProject bp = new BizProject();
|
||||
bp.getParams().put("projectNos", new ArrayList<>(noSet));
|
||||
if (bizProject.getProjectNo() != null) bp.setProjectNo(bizProject.getProjectNo());
|
||||
if (bizProject.getProjectName() != null) bp.setProjectName(bizProject.getProjectName());
|
||||
List<BizProject> list = bizProjectService.selectList(bp);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizProject bizProject)
|
||||
{
|
||||
startPage();
|
||||
List<BizProject> list = bizProjectService.selectList(bizProject);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{projectId}")
|
||||
public AjaxResult getInfo(@PathVariable("projectId") String projectId)
|
||||
{
|
||||
return success(bizProjectService.getById(projectId));
|
||||
}
|
||||
@Log(title = "项目", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizProject bizProject)
|
||||
{
|
||||
return toAjax(bizProjectService.insert(bizProject));
|
||||
}
|
||||
@Log(title = "项目", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizProject bizProject)
|
||||
{
|
||||
return toAjax(bizProjectService.updateByPrimaryKey(bizProject));
|
||||
}
|
||||
@Log(title = "项目", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizProjectService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
|
||||
// ========== 项目执行方分配 sub-resource ==========
|
||||
@GetMapping("/{projectId}/assigns")
|
||||
public AjaxResult getAssigns(@PathVariable("projectId") Long projectId)
|
||||
{
|
||||
return success(bizProjectAssignService.selectByProjectId(projectId));
|
||||
}
|
||||
|
||||
@Log(title = "项目执行方分配", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/{projectId}/assigns")
|
||||
public AjaxResult saveAssigns(@PathVariable("projectId") Long projectId, @RequestBody List<BizProjectAssign> assigns)
|
||||
{
|
||||
if (assigns == null) assigns = new ArrayList<>();
|
||||
bizProjectAssignService.deleteByProjectId(projectId);
|
||||
for (BizProjectAssign a : assigns) {
|
||||
a.setProjectId(projectId);
|
||||
if (a.getStatus() == null) a.setStatus("0");
|
||||
bizProjectAssignService.insert(a);
|
||||
}
|
||||
return success();
|
||||
}
|
||||
|
||||
@Log(title = "项目执行方分配", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{projectId}/assigns")
|
||||
public AjaxResult clearAssigns(@PathVariable("projectId") Long projectId)
|
||||
{
|
||||
return toAjax(bizProjectAssignService.deleteByProjectId(projectId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用评分 upsert (任何角色: sponsor / executor / compliance)
|
||||
* POST /business/project/rate
|
||||
* 不做可见性校验 — 评分公开
|
||||
*/
|
||||
@Log(title = "项目评分", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/rate")
|
||||
public AjaxResult rate(@RequestBody BizProjectRating body)
|
||||
{
|
||||
if (body.getProjectId() == null || body.getRaterId() == null || body.getRaterRole() == null) {
|
||||
return error("projectId / raterId / raterRole 必填");
|
||||
}
|
||||
body.setCreateBy(SecurityUtils.getUsername());
|
||||
body.setUpdateBy(SecurityUtils.getUsername());
|
||||
int rows = bizProjectRatingService.upsertRating(body);
|
||||
return toAjax(rows);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查某项目的所有评分 (公开, 任何角色可读)
|
||||
* GET /business/project/ratings?projectId=X
|
||||
*/
|
||||
@GetMapping("/ratings")
|
||||
public AjaxResult ratings(@RequestParam("projectId") Long projectId)
|
||||
{
|
||||
BizProjectRating q = new BizProjectRating();
|
||||
q.setProjectId(projectId);
|
||||
return success(bizProjectRatingService.selectList(q));
|
||||
}
|
||||
|
||||
/**
|
||||
* 赞助方分配监察员 (写 biz_project_sponsor_assign)
|
||||
* POST /business/project/sponsorAssign
|
||||
*/
|
||||
@Log(title = "赞助方分配监察员", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/sponsorAssign")
|
||||
public AjaxResult sponsorAssign(@RequestBody BizProjectSponsorAssign body)
|
||||
{
|
||||
body.setCreateBy(SecurityUtils.getUsername());
|
||||
body.setSponsorUserId(SecurityUtils.getUserId());
|
||||
int rows = bizProjectSponsorAssignService.insertAssign(body);
|
||||
return toAjax(rows);
|
||||
}
|
||||
|
||||
/**
|
||||
* 赞助方批量分配监察员 (多个项目, 同一个监察员 + 同一份说明)
|
||||
* POST /business/project/sponsorAssignBatch
|
||||
* body: List<BizProjectSponsorAssign> (每个 item.projectId / monitorUserId / assignDesc / assignPoints)
|
||||
*/
|
||||
@Log(title = "赞助方批量分配监察员", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/sponsorAssignBatch")
|
||||
public AjaxResult sponsorAssignBatch(@RequestBody List<BizProjectSponsorAssign> bodies)
|
||||
{
|
||||
if (bodies == null || bodies.isEmpty()) {
|
||||
return error("请提供至少一个分配记录");
|
||||
}
|
||||
String loginName = SecurityUtils.getUsername();
|
||||
Long loginUid = SecurityUtils.getUserId();
|
||||
int ok = 0;
|
||||
List<String> errors = new ArrayList<>();
|
||||
for (int i = 0; i < bodies.size(); i++) {
|
||||
BizProjectSponsorAssign body = bodies.get(i);
|
||||
try {
|
||||
if (body.getProjectId() == null || body.getMonitorUserId() == null) {
|
||||
throw new IllegalArgumentException("projectId / monitorUserId 必填");
|
||||
}
|
||||
body.setCreateBy(loginName);
|
||||
body.setSponsorUserId(loginUid);
|
||||
bizProjectSponsorAssignService.insertAssign(body);
|
||||
ok++;
|
||||
} catch (Exception e) {
|
||||
errors.add("第" + (i + 1) + "条 (projectId=" + body.getProjectId() + "): " + e.getMessage());
|
||||
}
|
||||
}
|
||||
AjaxResult ajax = success();
|
||||
ajax.put("total", bodies.size());
|
||||
ajax.put("ok", ok);
|
||||
ajax.put("errors", errors);
|
||||
return ajax;
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizProjectPlan;
|
||||
import com.ruoyi.business.service.IBizProjectPlanService;
|
||||
|
||||
/**
|
||||
* 项目策划方案Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/projectPlan")
|
||||
public class BizProjectPlanController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizProjectPlanService BizProjectPlanService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizProjectPlan BizProjectPlan)
|
||||
{
|
||||
startPage();
|
||||
List<BizProjectPlan> list = BizProjectPlanService.selectList(BizProjectPlan);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{planId}")
|
||||
public AjaxResult getInfo(@PathVariable("planId") String planId)
|
||||
{
|
||||
return success(BizProjectPlanService.getById(planId));
|
||||
}
|
||||
@Log(title = "项目策划方案", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizProjectPlan BizProjectPlan)
|
||||
{
|
||||
return toAjax(BizProjectPlanService.insert(BizProjectPlan));
|
||||
}
|
||||
@Log(title = "项目策划方案", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizProjectPlan BizProjectPlan)
|
||||
{
|
||||
return toAjax(BizProjectPlanService.updateByPrimaryKey(BizProjectPlan));
|
||||
}
|
||||
@Log(title = "项目策划方案", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(BizProjectPlanService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizProjectRating;
|
||||
import com.ruoyi.business.service.IBizProjectRatingService;
|
||||
|
||||
/**
|
||||
* 项目评分Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/projectRating")
|
||||
public class BizProjectRatingController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizProjectRatingService bizProjectRatingService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizProjectRating bizProjectRating)
|
||||
{
|
||||
startPage();
|
||||
List<BizProjectRating> list = bizProjectRatingService.selectList(bizProjectRating);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{ratingId}")
|
||||
public AjaxResult getInfo(@PathVariable("ratingId") String ratingId)
|
||||
{
|
||||
return success(bizProjectRatingService.getById(ratingId));
|
||||
}
|
||||
@Log(title = "项目评分", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizProjectRating bizProjectRating)
|
||||
{
|
||||
return toAjax(bizProjectRatingService.insert(bizProjectRating));
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行单位评分 upsert (按 project_id + rater_id + rater_role 唯一)
|
||||
* POST /business/projectRating/rate
|
||||
*/
|
||||
@Log(title = "执行单位评分", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/rate")
|
||||
public AjaxResult rate(@RequestBody BizProjectRating body)
|
||||
{
|
||||
if (body.getProjectId() == null || body.getRaterId() == null || body.getRaterRole() == null) {
|
||||
return error("projectId / raterId / raterRole 必填");
|
||||
}
|
||||
body.setCreateBy(getUsername());
|
||||
body.setUpdateBy(getUsername());
|
||||
int rows = bizProjectRatingService.upsertRating(body);
|
||||
return toAjax(rows);
|
||||
}
|
||||
|
||||
@Log(title = "项目评分", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizProjectRating bizProjectRating)
|
||||
{
|
||||
return toAjax(bizProjectRatingService.updateByPrimaryKey(bizProjectRating));
|
||||
}
|
||||
@Log(title = "项目评分", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizProjectRatingService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.business.domain.BizProject;
|
||||
import com.ruoyi.business.domain.BizSupportLetter;
|
||||
import com.ruoyi.business.domain.BizInvitation;
|
||||
import com.ruoyi.business.domain.BizProjectPlan;
|
||||
import com.ruoyi.business.service.IBizProjectService;
|
||||
import com.ruoyi.business.service.IBizSupportLetterService;
|
||||
import com.ruoyi.business.service.IBizInvitationService;
|
||||
import com.ruoyi.business.service.IBizProjectPlanService;
|
||||
|
||||
/**
|
||||
* 公开门户接口(无需登录)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/public")
|
||||
public class BizPublicController extends BaseController {
|
||||
|
||||
@Autowired private IBizProjectService projectService;
|
||||
@Autowired private IBizSupportLetterService supportLetterService;
|
||||
@Autowired private IBizInvitationService invitationService;
|
||||
@Autowired private IBizProjectPlanService projectPlanService;
|
||||
|
||||
@GetMapping("/index")
|
||||
public AjaxResult index() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
BizProject publishedQuery = new BizProject();
|
||||
publishedQuery.setIsPublished("1");
|
||||
List<BizProject> announcements = projectService.selectList(publishedQuery);
|
||||
List<BizProjectPlan> plans = projectPlanService.selectList(new BizProjectPlan());
|
||||
map.put("announcements", announcements);
|
||||
map.put("plans", plans);
|
||||
map.put("about", "北京整合医学学会(BAHIM)是一家专注于整合医学学术研究、项目合作与人才培养的省级学术组织。");
|
||||
return success(map);
|
||||
}
|
||||
|
||||
@GetMapping("/announcements")
|
||||
public AjaxResult announcements() {
|
||||
BizProject query = new BizProject();
|
||||
query.setIsPublished("1");
|
||||
List<BizProject> list = projectService.selectList(query);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
@GetMapping("/project/{projectId}")
|
||||
public AjaxResult projectDetail(@PathVariable String projectId) {
|
||||
return success(projectService.getById(projectId));
|
||||
}
|
||||
|
||||
@GetMapping("/supportLetter/{annId}")
|
||||
public AjaxResult supportLetterDetail(@PathVariable String annId) {
|
||||
return success(supportLetterService.getById(annId));
|
||||
}
|
||||
|
||||
@GetMapping("/invitation/{annId}")
|
||||
public AjaxResult invitationDetail(@PathVariable String annId) {
|
||||
return success(invitationService.getById(annId));
|
||||
}
|
||||
|
||||
@GetMapping("/apply")
|
||||
public AjaxResult apply(String annId) {
|
||||
return success();
|
||||
}
|
||||
}
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizPublicity;
|
||||
import com.ruoyi.business.service.IBizPublicityService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
|
||||
/**
|
||||
* 项目公告Controller (与前端 bizList('publicity', ...) 对接)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/publicity")
|
||||
public class BizPublicityController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizPublicityService bizPublicityService;
|
||||
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizPublicity entity)
|
||||
{
|
||||
startPage();
|
||||
// 按 project_id 过滤
|
||||
entity.setStatus(null);
|
||||
List<BizPublicity> list = bizPublicityService.selectList(entity);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return success(bizPublicityService.getById(id));
|
||||
}
|
||||
|
||||
@Log(title = "项目公告", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizPublicity entity)
|
||||
{
|
||||
entity.setCreateBy(SecurityUtils.getUsername());
|
||||
entity.setUpdateBy(SecurityUtils.getUsername());
|
||||
if (entity.getStatus() == null) entity.setStatus("1");
|
||||
int rows = bizPublicityService.insert(entity);
|
||||
return toAjax(rows);
|
||||
}
|
||||
|
||||
@Log(title = "项目公告", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizPublicity entity)
|
||||
{
|
||||
entity.setUpdateBy(SecurityUtils.getUsername());
|
||||
return toAjax(bizPublicityService.updateByPrimaryKey(entity));
|
||||
}
|
||||
|
||||
@Log(title = "项目公告", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(bizPublicityService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.Map;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.business.domain.BizExpert;
|
||||
import com.ruoyi.business.dto.SmsValidForm;
|
||||
import com.ruoyi.business.service.IBizExpertService;
|
||||
import com.ruoyi.business.service.SysSmsService;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.uuid.UUID;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
|
||||
/**
|
||||
* 专家注册 (完整实现)
|
||||
* 流程:
|
||||
* 1. 校验短信验证码
|
||||
* 2. 检查用户名(=手机号)是否已注册
|
||||
* 3. 加密密码
|
||||
* 4. 插入 sys_user (role_type=doctor, user_type=01)
|
||||
* 5. 插入 biz_expert (user_id 关联)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/auth")
|
||||
public class BizRegisterController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private SysSmsService smsService;
|
||||
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
|
||||
@Autowired
|
||||
private IBizExpertService expertService;
|
||||
|
||||
@Autowired
|
||||
private BCryptPasswordEncoder passwordEncoder;
|
||||
|
||||
@PostMapping("/registerExpert")
|
||||
public AjaxResult registerExpert(@RequestBody Map<String, Object> body) {
|
||||
String realName = (String) body.get("realName");
|
||||
String workUnit = (String) body.get("workUnit");
|
||||
String department = (String) body.get("department");
|
||||
String doctorTitle = (String) body.get("doctorTitle");
|
||||
String phone = (String) body.get("phone");
|
||||
String code = (String) body.get("code");
|
||||
String password = (String) body.get("password");
|
||||
String uuid = (String) body.get("uuid");
|
||||
String licenseCertUrl = (String) body.get("licenseCertUrl");
|
||||
String titleCertUrl = (String) body.get("titleCertUrl");
|
||||
|
||||
if (realName == null || realName.isEmpty()) return error("姓名不能为空");
|
||||
if (workUnit == null || workUnit.isEmpty()) return error("工作单位不能为空");
|
||||
if (phone == null || !phone.matches("^1\\d{10}$")) return error("手机号格式错误");
|
||||
if (code == null || code.isEmpty()) return error("请输入短信验证码");
|
||||
if (password == null || password.length() < 6 || password.length() > 20) return error("密码长度 6-20 位");
|
||||
|
||||
// 1. 校验短信验证码
|
||||
SmsValidForm smsForm = new SmsValidForm();
|
||||
smsForm.setPhone(phone);
|
||||
smsForm.setSmsCode(code);
|
||||
smsForm.setUuid(uuid);
|
||||
try {
|
||||
smsService.verifyCode(smsForm);
|
||||
} catch (RuntimeException e) {
|
||||
return error("验证码错误或已过期: " + e.getMessage());
|
||||
}
|
||||
|
||||
// 2. 用户名=手机号, 检查是否已注册
|
||||
if (userService.isPhoneRegistered(phone)) {
|
||||
return error("该手机号已注册, 请直接登录");
|
||||
}
|
||||
|
||||
// 3. 加密密码 + 4. 插入 sys_user (用户名=phone)
|
||||
SysUser user = new SysUser();
|
||||
user.setUserName(phone);
|
||||
user.setNickName(realName);
|
||||
user.setPhonenumber(phone);
|
||||
user.setPassword(passwordEncoder.encode(password));
|
||||
user.setStatus("0");
|
||||
userService.insertUser(user);
|
||||
Long userId = user.getUserId();
|
||||
// sys_user.role_type 表字段 (DB 默认 executor, 专家需 = doctor), 用 mapper 更新
|
||||
userService.updateRoleType(userId, "doctor");
|
||||
|
||||
// 5. 插入 biz_expert
|
||||
BizExpert expert = new BizExpert();
|
||||
expert.setExpertId(UUID.fastUUID().toString());
|
||||
expert.setUserId(userId);
|
||||
expert.setName(realName);
|
||||
expert.setPhone(phone);
|
||||
expert.setWorkUnit(workUnit);
|
||||
expert.setDepartment(department);
|
||||
expert.setTitle(doctorTitle);
|
||||
expert.setPracticeCertUrl(licenseCertUrl);
|
||||
expert.setTitleCertUrl(titleCertUrl);
|
||||
expert.setAuditStatus("0");
|
||||
expert.setStatus("0");
|
||||
expertService.insert(expert);
|
||||
|
||||
return success("注册成功, 请等待审核").put("userId", userId);
|
||||
}
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import com.ruoyi.business.service.SysSmsService;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 注册专用 - 发送短信验证码
|
||||
* 校验: 手机号未被注册过, 否则报错
|
||||
* 匿名访问 (前端 register-* 页面调用, 登录前)
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/auth")
|
||||
public class BizRegisterSmsController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private SysSmsService smsService;
|
||||
|
||||
@Autowired
|
||||
private com.ruoyi.system.service.ISysUserService userService;
|
||||
|
||||
@PostMapping("/registerSendSms")
|
||||
public AjaxResult registerSendSms(@RequestBody Map<String, String> body) {
|
||||
String phone = body == null ? null : body.get("phone");
|
||||
if (phone == null || !phone.matches("^1\\d{10}$")) {
|
||||
return error("请输入正确的手机号");
|
||||
}
|
||||
// 手机号已注册则报错
|
||||
if (userService.isPhoneRegistered(phone)) {
|
||||
return error("该手机号已注册, 请直接登录");
|
||||
}
|
||||
String uuid = smsService.sendCode(phone);
|
||||
return AjaxResult.success("验证码已发送", uuid);
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizResource;
|
||||
import com.ruoyi.business.service.IBizResourceService;
|
||||
|
||||
/**
|
||||
* 资源Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/resource")
|
||||
public class BizResourceController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizResourceService bizResourceService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizResource bizResource)
|
||||
{
|
||||
startPage();
|
||||
List<BizResource> list = bizResourceService.selectList(bizResource);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{resourceId}")
|
||||
public AjaxResult getInfo(@PathVariable("resourceId") String resourceId)
|
||||
{
|
||||
return success(bizResourceService.getById(resourceId));
|
||||
}
|
||||
@Log(title = "资源", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizResource bizResource)
|
||||
{
|
||||
return toAjax(bizResourceService.insert(bizResource));
|
||||
}
|
||||
@Log(title = "资源", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizResource bizResource)
|
||||
{
|
||||
return toAjax(bizResourceService.updateByPrimaryKey(bizResource));
|
||||
}
|
||||
@Log(title = "资源", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizResourceService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.business.domain.BizSubmission;
|
||||
import com.ruoyi.business.enums.SubmissionStatus;
|
||||
import com.ruoyi.business.service.IBizSubmissionService;
|
||||
|
||||
/**
|
||||
* 投稿Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/submission")
|
||||
public class BizSubmissionController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizSubmissionService bizSubmissionService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizSubmission bizSubmission)
|
||||
{
|
||||
// 后端兜底: 只查当前登录用户提交的; admin 跳过此限制
|
||||
if (!SecurityUtils.isAdmin()) {
|
||||
bizSubmission.setSubmitterId(SecurityUtils.getUserId());
|
||||
}
|
||||
startPage();
|
||||
List<BizSubmission> list = bizSubmissionService.selectList(bizSubmission);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{submissionId}")
|
||||
public AjaxResult getInfo(@PathVariable("submissionId") String submissionId)
|
||||
{
|
||||
return success(bizSubmissionService.getById(submissionId));
|
||||
}
|
||||
@Log(title = "投稿", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizSubmission bizSubmission)
|
||||
{
|
||||
// 后端兜底: 强制写入当前登录用户, 防止前端漏传/绕过导致列表过滤查不到
|
||||
bizSubmission.setSubmitterId(SecurityUtils.getUserId());
|
||||
bizSubmission.setSubmitterName(SecurityUtils.getUsername());
|
||||
bizSubmission.setCreateBy(getUsername());
|
||||
bizSubmission.setUpdateBy(getUsername());
|
||||
// 状态: 新建默认 DRAFT(待提交); 校验必须是英文 code 之一
|
||||
if (bizSubmission.getStatus() == null || bizSubmission.getStatus().isEmpty()) {
|
||||
bizSubmission.setStatus(SubmissionStatus.DRAFT.getCode());
|
||||
} else if (!SubmissionStatus.isValid(bizSubmission.getStatus())) {
|
||||
return AjaxResult.error("状态值非法: " + bizSubmission.getStatus());
|
||||
}
|
||||
return toAjax(bizSubmissionService.insert(bizSubmission));
|
||||
}
|
||||
@Log(title = "投稿", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizSubmission bizSubmission)
|
||||
{
|
||||
// 修改时也强制覆盖 submitterId/submitterName, 防止越权篡改为他人
|
||||
bizSubmission.setSubmitterId(SecurityUtils.getUserId());
|
||||
bizSubmission.setSubmitterName(SecurityUtils.getUsername());
|
||||
bizSubmission.setUpdateBy(getUsername());
|
||||
// 状态校验 (英文 code)
|
||||
if (bizSubmission.getStatus() != null && !bizSubmission.getStatus().isEmpty()
|
||||
&& !SubmissionStatus.isValid(bizSubmission.getStatus())) {
|
||||
return AjaxResult.error("状态值非法: " + bizSubmission.getStatus());
|
||||
}
|
||||
return toAjax(bizSubmissionService.updateByPrimaryKey(bizSubmission));
|
||||
}
|
||||
@Log(title = "投稿", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizSubmissionService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizSupportIntent;
|
||||
import com.ruoyi.business.service.IBizSupportIntentService;
|
||||
|
||||
/**
|
||||
* 支持意向Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/supportIntent")
|
||||
public class BizSupportIntentController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizSupportIntentService bizSupportIntentService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizSupportIntent bizSupportIntent)
|
||||
{
|
||||
startPage();
|
||||
List<BizSupportIntent> list = bizSupportIntentService.selectList(bizSupportIntent);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{intentId}")
|
||||
public AjaxResult getInfo(@PathVariable("intentId") String intentId)
|
||||
{
|
||||
return success(bizSupportIntentService.getById(intentId));
|
||||
}
|
||||
@Log(title = "支持意向", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizSupportIntent bizSupportIntent)
|
||||
{
|
||||
return toAjax(bizSupportIntentService.insert(bizSupportIntent));
|
||||
}
|
||||
@Log(title = "支持意向", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizSupportIntent bizSupportIntent)
|
||||
{
|
||||
return toAjax(bizSupportIntentService.updateByPrimaryKey(bizSupportIntent));
|
||||
}
|
||||
@Log(title = "支持意向", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizSupportIntentService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.business.domain.BizSupportLetter;
|
||||
import com.ruoyi.business.service.IBizSupportLetterService;
|
||||
|
||||
/**
|
||||
* 支持函Controller
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/supportLetter")
|
||||
public class BizSupportLetterController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizSupportLetterService bizSupportLetterService;
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizSupportLetter bizSupportLetter)
|
||||
{
|
||||
startPage();
|
||||
List<BizSupportLetter> list = bizSupportLetterService.selectList(bizSupportLetter);
|
||||
return getDataTable(list);
|
||||
}
|
||||
@GetMapping("/{letterId}")
|
||||
public AjaxResult getInfo(@PathVariable("letterId") String letterId)
|
||||
{
|
||||
return success(bizSupportLetterService.getById(letterId));
|
||||
}
|
||||
@Log(title = "支持函", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizSupportLetter bizSupportLetter)
|
||||
{
|
||||
return toAjax(bizSupportLetterService.insert(bizSupportLetter));
|
||||
}
|
||||
@Log(title = "支持函", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizSupportLetter bizSupportLetter)
|
||||
{
|
||||
return toAjax(bizSupportLetterService.updateByPrimaryKey(bizSupportLetter));
|
||||
}
|
||||
@Log(title = "支持函", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable String[] ids)
|
||||
{
|
||||
return toAjax(bizSupportLetterService.deleteByPrimaryKeys(ids));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.ruoyi.business.controller;
|
||||
|
||||
import com.ruoyi.business.dto.SmsValidForm;
|
||||
import com.ruoyi.business.service.SysSmsService;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 短信验证码接口
|
||||
* 参考 hwt-code BizAuthApi.sendSmsOnLogin 模式
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/sms")
|
||||
public class SmsController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private SysSmsService smsService;
|
||||
|
||||
/** 发送验证码, 返回 uuid (前端 form 校验时回传) */
|
||||
@GetMapping("/send")
|
||||
public AjaxResult send(@RequestParam(required = false) String phone) {
|
||||
if (phone == null || phone.trim().isEmpty()) {
|
||||
return error("手机号码不能为空");
|
||||
}
|
||||
String uuid = smsService.sendCode(phone);
|
||||
return AjaxResult.success("ok", uuid);
|
||||
}
|
||||
|
||||
/** 校验验证码 */
|
||||
@PostMapping("/verify")
|
||||
public AjaxResult verify(@RequestBody SmsValidForm form) {
|
||||
try {
|
||||
smsService.verifyCode(form);
|
||||
} catch (RuntimeException e) {
|
||||
return error(e.getMessage());
|
||||
}
|
||||
return success("ok");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 科室字典 */
|
||||
public class BizDepartment extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Excel(name = "ID")
|
||||
private Long deptId;
|
||||
|
||||
@Excel(name = "科室名称")
|
||||
private String name;
|
||||
|
||||
@Excel(name = "排序")
|
||||
private Integer sort;
|
||||
|
||||
/** 0=启用 1=停用 */
|
||||
@Excel(name = "状态", readConverterExp = "0=启用,1=停用")
|
||||
private String status;
|
||||
|
||||
public Long getDeptId() { return deptId; }
|
||||
public void setDeptId(Long deptId) { this.deptId = deptId; }
|
||||
|
||||
public String getName() { return name; }
|
||||
public void setName(String name) { this.name = name; }
|
||||
|
||||
public Integer getSort() { return sort; }
|
||||
public void setSort(Integer sort) { this.sort = sort; }
|
||||
|
||||
public String getStatus() { return status; }
|
||||
public void setStatus(String status) { this.status = status; }
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 医生职称字典 */
|
||||
public class BizDoctorTitle extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Excel(name = "ID")
|
||||
private Long titleId;
|
||||
|
||||
@Excel(name = "职称名称")
|
||||
private String name;
|
||||
|
||||
@Excel(name = "排序")
|
||||
private Integer sort;
|
||||
|
||||
/** 0=启用 1=停用 */
|
||||
@Excel(name = "状态", readConverterExp = "0=启用,1=停用")
|
||||
private String status;
|
||||
|
||||
public Long getTitleId() { return titleId; }
|
||||
public void setTitleId(Long titleId) { this.titleId = titleId; }
|
||||
|
||||
public String getName() { return name; }
|
||||
public void setName(String name) { this.name = name; }
|
||||
|
||||
public Integer getSort() { return sort; }
|
||||
public void setSort(Integer sort) { this.sort = sort; }
|
||||
|
||||
public String getStatus() { return status; }
|
||||
public void setStatus(String status) { this.status = status; }
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 执行意向对象 BizExecutionIntent */
|
||||
public class BizExecutionIntent extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** intentId */
|
||||
private String intentId;
|
||||
/** 用户ID (关联 sys_user.user_id) */
|
||||
private Long userId;
|
||||
/** project_no */
|
||||
@Excel(name = "project_no")
|
||||
private String projectNo;
|
||||
/** project_name */
|
||||
@Excel(name = "project_name")
|
||||
private String projectName;
|
||||
/** name */
|
||||
@Excel(name = "name")
|
||||
private String name;
|
||||
/** work_unit */
|
||||
@Excel(name = "work_unit")
|
||||
private String workUnit;
|
||||
/** department */
|
||||
@Excel(name = "department")
|
||||
private String department;
|
||||
/** position */
|
||||
@Excel(name = "position")
|
||||
private String position;
|
||||
/** phone */
|
||||
@Excel(name = "phone")
|
||||
private String phone;
|
||||
/** onboard_status */
|
||||
@Excel(name = "onboard_status")
|
||||
private String onboardStatus;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
public String getIntentId() { return intentId; }
|
||||
public void setIntentId(String intentId) { this.intentId = intentId; }
|
||||
public Long getUserId() { return userId; }
|
||||
public void setUserId(Long userId) { this.userId = userId; }
|
||||
public String getProjectNo() { return projectNo; }
|
||||
public void setProjectNo(String projectNo) { this.projectNo = projectNo; }
|
||||
public String getProjectName() { return projectName; }
|
||||
public void setProjectName(String projectName) { this.projectName = projectName; }
|
||||
public String getName() { return name; }
|
||||
public void setName(String name) { this.name = name; }
|
||||
public String getWorkUnit() { return workUnit; }
|
||||
public void setWorkUnit(String workUnit) { this.workUnit = workUnit; }
|
||||
public String getDepartment() { return department; }
|
||||
public void setDepartment(String department) { this.department = department; }
|
||||
public String getPosition() { return position; }
|
||||
public void setPosition(String position) { this.position = position; }
|
||||
public String getPhone() { return phone; }
|
||||
public void setPhone(String phone) { this.phone = phone; }
|
||||
public String getOnboardStatus() { return onboardStatus; }
|
||||
public void setOnboardStatus(String onboardStatus) { this.onboardStatus = onboardStatus; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 专家对象 BizExpert */
|
||||
public class BizExpert extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** expertId */
|
||||
private String expertId;
|
||||
/** name */
|
||||
@Excel(name = "name")
|
||||
private String name;
|
||||
/** phone */
|
||||
@Excel(name = "phone")
|
||||
private String phone;
|
||||
/** work_unit */
|
||||
@Excel(name = "work_unit")
|
||||
private String workUnit;
|
||||
/** department */
|
||||
@Excel(name = "department")
|
||||
private String department;
|
||||
/** title */
|
||||
@Excel(name = "title")
|
||||
private String title;
|
||||
/** practice_cert_url */
|
||||
@Excel(name = "practice_cert_url")
|
||||
private String practiceCertUrl;
|
||||
/** title_cert_url */
|
||||
@Excel(name = "title_cert_url")
|
||||
private String titleCertUrl;
|
||||
/** audit_status */
|
||||
@Excel(name = "audit_status")
|
||||
private String auditStatus;
|
||||
/** audit_by */
|
||||
@Excel(name = "audit_by")
|
||||
private String auditBy;
|
||||
/** audit_time */
|
||||
@Excel(name = "audit_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date auditTime;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 关联系统用户ID */
|
||||
private Long userId;
|
||||
/** 地区 */
|
||||
private String region;
|
||||
/** 证件号码 */
|
||||
private String idCard;
|
||||
/** 银行卡号 */
|
||||
private String bankCard;
|
||||
/** 银行名称 */
|
||||
private String bankName;
|
||||
/** 开户行省份 */
|
||||
private String bankProvince;
|
||||
/** 开户行城市 */
|
||||
private String bankCity;
|
||||
/** 开户行地址 */
|
||||
private String bankAddress;
|
||||
/** 身份证正面URL */
|
||||
private String idCardFrontUrl;
|
||||
/** 身份证反面URL */
|
||||
private String idCardBackUrl;
|
||||
/** 审核意见 */
|
||||
private String auditOpinion;
|
||||
/** 状态 0正常 1禁用 */
|
||||
private String status;
|
||||
public String getExpertId() { return expertId; }
|
||||
public void setExpertId(String expertId) { this.expertId = expertId; }
|
||||
public String getName() { return name; }
|
||||
public void setName(String name) { this.name = name; }
|
||||
public String getPhone() { return phone; }
|
||||
public void setPhone(String phone) { this.phone = phone; }
|
||||
public String getWorkUnit() { return workUnit; }
|
||||
public void setWorkUnit(String workUnit) { this.workUnit = workUnit; }
|
||||
public String getDepartment() { return department; }
|
||||
public void setDepartment(String department) { this.department = department; }
|
||||
public String getTitle() { return title; }
|
||||
public void setTitle(String title) { this.title = title; }
|
||||
public String getPracticeCertUrl() { return practiceCertUrl; }
|
||||
public void setPracticeCertUrl(String practiceCertUrl) { this.practiceCertUrl = practiceCertUrl; }
|
||||
public String getTitleCertUrl() { return titleCertUrl; }
|
||||
public void setTitleCertUrl(String titleCertUrl) { this.titleCertUrl = titleCertUrl; }
|
||||
public String getAuditStatus() { return auditStatus; }
|
||||
public void setAuditStatus(String auditStatus) { this.auditStatus = auditStatus; }
|
||||
public String getAuditBy() { return auditBy; }
|
||||
public void setAuditBy(String auditBy) { this.auditBy = auditBy; }
|
||||
public Date getAuditTime() { return auditTime; }
|
||||
public void setAuditTime(Date auditTime) { this.auditTime = auditTime; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
public Long getUserId() { return userId; }
|
||||
public void setUserId(Long userId) { this.userId = userId; }
|
||||
public String getStatus() { return status; }
|
||||
public void setStatus(String status) { this.status = status; }
|
||||
public String getAuditOpinion() { return auditOpinion; }
|
||||
public void setAuditOpinion(String auditOpinion) { this.auditOpinion = auditOpinion; }
|
||||
public String getRegion() { return region; }
|
||||
public void setRegion(String region) { this.region = region; }
|
||||
public String getIdCard() { return idCard; }
|
||||
public void setIdCard(String idCard) { this.idCard = idCard; }
|
||||
public String getBankCard() { return bankCard; }
|
||||
public void setBankCard(String bankCard) { this.bankCard = bankCard; }
|
||||
public String getBankName() { return bankName; }
|
||||
public void setBankName(String bankName) { this.bankName = bankName; }
|
||||
public String getBankProvince() { return bankProvince; }
|
||||
public void setBankProvince(String bankProvince) { this.bankProvince = bankProvince; }
|
||||
public String getBankCity() { return bankCity; }
|
||||
public void setBankCity(String bankCity) { this.bankCity = bankCity; }
|
||||
public String getBankAddress() { return bankAddress; }
|
||||
public void setBankAddress(String bankAddress) { this.bankAddress = bankAddress; }
|
||||
public String getIdCardFrontUrl() { return idCardFrontUrl; }
|
||||
public void setIdCardFrontUrl(String idCardFrontUrl) { this.idCardFrontUrl = idCardFrontUrl; }
|
||||
public String getIdCardBackUrl() { return idCardBackUrl; }
|
||||
public void setIdCardBackUrl(String idCardBackUrl) { this.idCardBackUrl = idCardBackUrl; }
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 邀请函对象 BizInvitation */
|
||||
public class BizInvitation extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** annId */
|
||||
private String annId;
|
||||
/** title */
|
||||
@Excel(name = "title")
|
||||
private String title;
|
||||
/** meeting_name */
|
||||
@Excel(name = "meeting_name")
|
||||
private String meetingName;
|
||||
/** expert_name */
|
||||
@Excel(name = "expert_name")
|
||||
private String expertName;
|
||||
/** content */
|
||||
@Excel(name = "content")
|
||||
private String content;
|
||||
/** issue_date */
|
||||
@Excel(name = "issue_date")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date issueDate;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 邀请函ID */
|
||||
private Long inviteId;
|
||||
/** 项目ID */
|
||||
private Long projectId;
|
||||
/** 项目编号 */
|
||||
private String projectNo;
|
||||
/** 邀请函模板URL */
|
||||
private String templateUrl;
|
||||
/** 二维码URL */
|
||||
private String qrCodeUrl;
|
||||
/** 分享URL */
|
||||
private String shareUrl;
|
||||
/** 发布时间 */
|
||||
private String publishTime;
|
||||
public String getAnnId() { return annId; }
|
||||
public void setAnnId(String annId) { this.annId = annId; }
|
||||
public String getTitle() { return title; }
|
||||
public void setTitle(String title) { this.title = title; }
|
||||
public String getMeetingName() { return meetingName; }
|
||||
public void setMeetingName(String meetingName) { this.meetingName = meetingName; }
|
||||
public String getExpertName() { return expertName; }
|
||||
public void setExpertName(String expertName) { this.expertName = expertName; }
|
||||
public String getContent() { return content; }
|
||||
public void setContent(String content) { this.content = content; }
|
||||
public Date getIssueDate() { return issueDate; }
|
||||
public void setIssueDate(Date issueDate) { this.issueDate = issueDate; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 劳务凭证对象 BizLaborVoucher */
|
||||
public class BizLaborVoucher extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** voucherId */
|
||||
private String voucherId;
|
||||
/** voucher_no */
|
||||
@Excel(name = "voucher_no")
|
||||
private String voucherNo;
|
||||
/** meeting_name */
|
||||
@Excel(name = "meeting_name")
|
||||
private String meetingName;
|
||||
/** expert_name */
|
||||
@Excel(name = "expert_name")
|
||||
private String expertName;
|
||||
/** id_card */
|
||||
@Excel(name = "id_card")
|
||||
private String idCard;
|
||||
/** bank_account */
|
||||
@Excel(name = "bank_account")
|
||||
private String bankAccount;
|
||||
/** amount */
|
||||
@Excel(name = "amount")
|
||||
private BigDecimal amount;
|
||||
/** submit_date */
|
||||
@Excel(name = "submit_date")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date submitDate;
|
||||
/** audit_status */
|
||||
@Excel(name = "audit_status")
|
||||
private String auditStatus;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 会议ID */
|
||||
private Long meetingId;
|
||||
/** 审核意见 */
|
||||
private String auditOpinion;
|
||||
/** 审核人 */
|
||||
private String auditBy;
|
||||
/** 审核时间 */
|
||||
private String auditTime;
|
||||
public String getVoucherId() { return voucherId; }
|
||||
public void setVoucherId(String voucherId) { this.voucherId = voucherId; }
|
||||
public String getVoucherNo() { return voucherNo; }
|
||||
public void setVoucherNo(String voucherNo) { this.voucherNo = voucherNo; }
|
||||
public String getMeetingName() { return meetingName; }
|
||||
public void setMeetingName(String meetingName) { this.meetingName = meetingName; }
|
||||
public String getExpertName() { return expertName; }
|
||||
public void setExpertName(String expertName) { this.expertName = expertName; }
|
||||
public String getIdCard() { return idCard; }
|
||||
public void setIdCard(String idCard) { this.idCard = idCard; }
|
||||
public String getBankAccount() { return bankAccount; }
|
||||
public void setBankAccount(String bankAccount) { this.bankAccount = bankAccount; }
|
||||
public BigDecimal getAmount() { return amount; }
|
||||
public void setAmount(BigDecimal amount) { this.amount = amount; }
|
||||
public Date getSubmitDate() { return submitDate; }
|
||||
public void setSubmitDate(Date submitDate) { this.submitDate = submitDate; }
|
||||
public String getAuditStatus() { return auditStatus; }
|
||||
public void setAuditStatus(String auditStatus) { this.auditStatus = auditStatus; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 会议对象 BizMeeting */
|
||||
public class BizMeeting extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** meetingId */
|
||||
private String meetingId;
|
||||
/** project_no */
|
||||
@Excel(name = "project_no")
|
||||
private String projectNo;
|
||||
/** business_id */
|
||||
@Excel(name = "business_id")
|
||||
private String businessId;
|
||||
/** project_form */
|
||||
@Excel(name = "project_form")
|
||||
private String projectForm;
|
||||
/** meeting_name */
|
||||
@Excel(name = "meeting_name")
|
||||
private String meetingName;
|
||||
/** start_time */
|
||||
@Excel(name = "start_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date startTime;
|
||||
/** end_time */
|
||||
@Excel(name = "end_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date endTime;
|
||||
/** total_periods */
|
||||
@Excel(name = "total_periods")
|
||||
private Long totalPeriods;
|
||||
/** period_no */
|
||||
@Excel(name = "period_no")
|
||||
private Long periodNo;
|
||||
/** current_stage */
|
||||
@Excel(name = "current_stage")
|
||||
private String currentStage;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 所属项目ID */
|
||||
private Long projectId;
|
||||
/** 项目名称 */
|
||||
private String projectName;
|
||||
/** 所属公司名称 (冗余字段, 由 biz_project.org_name 同步) */
|
||||
private String orgName;
|
||||
/** 监察意见 */
|
||||
private String supervisionOpinion;
|
||||
/** 监察人 */
|
||||
private String supervisionBy;
|
||||
/** 监察时间 */
|
||||
private String supervisionTime;
|
||||
/** 邀请函URL */
|
||||
private String invitationUrl;
|
||||
/** 日程海报URL */
|
||||
private String scheduleUrl;
|
||||
/** 签署劳务 0未签 1已签 */
|
||||
private String laborSigned;
|
||||
public String getMeetingId() { return meetingId; }
|
||||
public void setMeetingId(String meetingId) { this.meetingId = meetingId; }
|
||||
public String getProjectNo() { return projectNo; }
|
||||
public void setProjectNo(String projectNo) { this.projectNo = projectNo; }
|
||||
public String getBusinessId() { return businessId; }
|
||||
public void setBusinessId(String businessId) { this.businessId = businessId; }
|
||||
public String getProjectForm() { return projectForm; }
|
||||
public void setProjectForm(String projectForm) { this.projectForm = projectForm; }
|
||||
public String getMeetingName() { return meetingName; }
|
||||
public void setMeetingName(String meetingName) { this.meetingName = meetingName; }
|
||||
public Date getStartTime() { return startTime; }
|
||||
public void setStartTime(Date startTime) { this.startTime = startTime; }
|
||||
public Date getEndTime() { return endTime; }
|
||||
public void setEndTime(Date endTime) { this.endTime = endTime; }
|
||||
public Long getTotalPeriods() { return totalPeriods; }
|
||||
public void setTotalPeriods(Long totalPeriods) { this.totalPeriods = totalPeriods; }
|
||||
public Long getPeriodNo() { return periodNo; }
|
||||
public void setPeriodNo(Long periodNo) { this.periodNo = periodNo; }
|
||||
public String getCurrentStage() { return currentStage; }
|
||||
public void setCurrentStage(String currentStage) { this.currentStage = currentStage; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 会议结算明细对象 BizMeetingSettlement */
|
||||
public class BizMeetingSettlement extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** id */
|
||||
private String id;
|
||||
/** project_no */
|
||||
@Excel(name = "project_no")
|
||||
private String projectNo;
|
||||
/** meeting_id */
|
||||
@Excel(name = "meeting_id")
|
||||
private Long meetingId;
|
||||
/** fee_type */
|
||||
@Excel(name = "fee_type")
|
||||
private String feeType;
|
||||
/** unit_price */
|
||||
@Excel(name = "unit_price")
|
||||
private BigDecimal unitPrice;
|
||||
/** qty */
|
||||
@Excel(name = "qty")
|
||||
private Long qty;
|
||||
/** subtotal */
|
||||
@Excel(name = "subtotal")
|
||||
private BigDecimal subtotal;
|
||||
/** remark */
|
||||
@Excel(name = "remark")
|
||||
private String remark;
|
||||
/** audit_status */
|
||||
@Excel(name = "audit_status")
|
||||
private String auditStatus;
|
||||
/** settlement_type */
|
||||
@Excel(name = "settlement_type")
|
||||
private String settlementType;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 会议名称 */
|
||||
private String projectName;
|
||||
/** 执行单位 */
|
||||
private String execUnit;
|
||||
public String getId() { return id; }
|
||||
public void setId(String id) { this.id = id; }
|
||||
public String getProjectNo() { return projectNo; }
|
||||
public void setProjectNo(String projectNo) { this.projectNo = projectNo; }
|
||||
public Long getMeetingId() { return meetingId; }
|
||||
public void setMeetingId(Long meetingId) { this.meetingId = meetingId; }
|
||||
public String getFeeType() { return feeType; }
|
||||
public void setFeeType(String feeType) { this.feeType = feeType; }
|
||||
public BigDecimal getUnitPrice() { return unitPrice; }
|
||||
public void setUnitPrice(BigDecimal unitPrice) { this.unitPrice = unitPrice; }
|
||||
public Long getQty() { return qty; }
|
||||
public void setQty(Long qty) { this.qty = qty; }
|
||||
public BigDecimal getSubtotal() { return subtotal; }
|
||||
public void setSubtotal(BigDecimal subtotal) { this.subtotal = subtotal; }
|
||||
public String getRemark() { return remark; }
|
||||
public void setRemark(String remark) { this.remark = remark; }
|
||||
public String getAuditStatus() { return auditStatus; }
|
||||
public void setAuditStatus(String auditStatus) { this.auditStatus = auditStatus; }
|
||||
public String getSettlementType() { return settlementType; }
|
||||
public void setSettlementType(String settlementType) { this.settlementType = settlementType; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 个人通知消息对象 biz_message */
|
||||
public class BizMessage extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** msg_id */
|
||||
private Long msgId;
|
||||
|
||||
/** 接收人 user_id */
|
||||
@Excel(name = "接收人")
|
||||
private Long receiverUserId;
|
||||
|
||||
/** 接收人姓名 (联表显示) */
|
||||
@Excel(name = "接收人")
|
||||
private String receiverName;
|
||||
|
||||
/** 消息类型 1通知 2待办 3系统 */
|
||||
@Excel(name = "类型")
|
||||
private String msgType;
|
||||
|
||||
/** 标题 */
|
||||
@Excel(name = "标题")
|
||||
private String title;
|
||||
|
||||
/** 内容 */
|
||||
private String content;
|
||||
|
||||
/** 业务类型 auth/project/meeting/agreement */
|
||||
private String bizType;
|
||||
|
||||
/** 关联业务ID */
|
||||
private Long bizId;
|
||||
|
||||
/** 已读 0否 1是 */
|
||||
@Excel(name = "已读")
|
||||
private String isRead;
|
||||
|
||||
/** 已读时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date readTime;
|
||||
|
||||
public Long getMsgId() { return msgId; }
|
||||
public void setMsgId(Long msgId) { this.msgId = msgId; }
|
||||
|
||||
public Long getReceiverUserId() { return receiverUserId; }
|
||||
public void setReceiverUserId(Long receiverUserId) { this.receiverUserId = receiverUserId; }
|
||||
|
||||
public String getReceiverName() { return receiverName; }
|
||||
public void setReceiverName(String receiverName) { this.receiverName = receiverName; }
|
||||
|
||||
public String getMsgType() { return msgType; }
|
||||
public void setMsgType(String msgType) { this.msgType = msgType; }
|
||||
|
||||
public String getTitle() { return title; }
|
||||
public void setTitle(String title) { this.title = title; }
|
||||
|
||||
public String getContent() { return content; }
|
||||
public void setContent(String content) { this.content = content; }
|
||||
|
||||
public String getBizType() { return bizType; }
|
||||
public void setBizType(String bizType) { this.bizType = bizType; }
|
||||
|
||||
public Long getBizId() { return bizId; }
|
||||
public void setBizId(Long bizId) { this.bizId = bizId; }
|
||||
|
||||
public String getIsRead() { return isRead; }
|
||||
public void setIsRead(String isRead) { this.isRead = isRead; }
|
||||
|
||||
public Date getReadTime() { return readTime; }
|
||||
public void setReadTime(Date readTime) { this.readTime = readTime; }
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 公司对象 biz_org
|
||||
* 用途: 赞助方(sponsor) + 执行方(execution) 共用
|
||||
* 重构说明: 原 biz_support_unit + biz_execution_unit 合并, 通过 org_type 区分
|
||||
*/
|
||||
public class BizOrg extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** org_id */
|
||||
private Long orgId;
|
||||
/** org_name */
|
||||
@Excel(name = "org_name")
|
||||
private String orgName;
|
||||
/** org_type: sponsor赞助方 / execution执行方 */
|
||||
@Excel(name = "org_type")
|
||||
private String orgType;
|
||||
/** 企业性质 私营/国营/中外合资/外资/其他 */
|
||||
@Excel(name = "business_nature")
|
||||
private String businessNature;
|
||||
/** address */
|
||||
@Excel(name = "address")
|
||||
private String address;
|
||||
/** tax_no */
|
||||
@Excel(name = "tax_no")
|
||||
private String taxNo;
|
||||
/** contact_name */
|
||||
@Excel(name = "contact_name")
|
||||
private String contactName;
|
||||
/** contact_phone */
|
||||
@Excel(name = "contact_phone")
|
||||
private String contactPhone;
|
||||
/** intent_count (仅赞助方用) */
|
||||
@Excel(name = "intent_count")
|
||||
private Integer intentCount;
|
||||
/** status */
|
||||
@Excel(name = "status")
|
||||
private String status;
|
||||
/** create_time */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_time */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
|
||||
public Long getOrgId() { return orgId; }
|
||||
public void setOrgId(Long orgId) { this.orgId = orgId; }
|
||||
public String getOrgName() { return orgName; }
|
||||
public void setOrgName(String orgName) { this.orgName = orgName; }
|
||||
public String getOrgType() { return orgType; }
|
||||
public void setOrgType(String orgType) { this.orgType = orgType; }
|
||||
public String getBusinessNature() { return businessNature; }
|
||||
public void setBusinessNature(String businessNature) { this.businessNature = businessNature; }
|
||||
public String getAddress() { return address; }
|
||||
public void setAddress(String address) { this.address = address; }
|
||||
public String getTaxNo() { return taxNo; }
|
||||
public void setTaxNo(String taxNo) { this.taxNo = taxNo; }
|
||||
public String getContactName() { return contactName; }
|
||||
public void setContactName(String contactName) { this.contactName = contactName; }
|
||||
public String getContactPhone() { return contactPhone; }
|
||||
public void setContactPhone(String contactPhone) { this.contactPhone = contactPhone; }
|
||||
public Integer getIntentCount() { return intentCount; }
|
||||
public void setIntentCount(Integer intentCount) { this.intentCount = intentCount; }
|
||||
public String getStatus() { return status; }
|
||||
public void setStatus(String status) { this.status = status; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 人员对象 BizPerson */
|
||||
public class BizPerson extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** personId */
|
||||
private String personId;
|
||||
/** name */
|
||||
@Excel(name = "name")
|
||||
private String name;
|
||||
/** phone */
|
||||
@Excel(name = "phone")
|
||||
private String phone;
|
||||
/** 所属公司ID (FK: biz_org.org_id) */
|
||||
private Long orgId;
|
||||
/** 所属公司名 (LEFT JOIN biz_org, 仅展示, 不入库) */
|
||||
private String orgName;
|
||||
/** 所属公司类型 (LEFT JOIN biz_org, 仅展示, 不入库) */
|
||||
private String orgType;
|
||||
/** department */
|
||||
@Excel(name = "department")
|
||||
private String department;
|
||||
/** position */
|
||||
@Excel(name = "position")
|
||||
private String position;
|
||||
/** role */
|
||||
@Excel(name = "role")
|
||||
private String role;
|
||||
/** status */
|
||||
@Excel(name = "status")
|
||||
private String status;
|
||||
/** 逻辑删除 0正常 1已删 */
|
||||
private String delFlag;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 关联系统用户ID */
|
||||
private Long userId;
|
||||
/** 所属单位类型 execution执行/sponsor支持 */
|
||||
private String unitType;
|
||||
/** 账号类型 (来自 sys_user.account_type, MAIN=主账号 / SUB=子账号) - 仅展示用,不入库 */
|
||||
private String accountType;
|
||||
/** 主账号ID (来自 sys_user.parent_user_id, 子账号指向其主账号) - 仅展示用 */
|
||||
private Long parentUserId;
|
||||
/** 子账号登录账号 (前端传入, 用于创建 sys_user 子账号) - 非持久化字段 */
|
||||
private transient String loginUsername;
|
||||
/** 子账号初始密码 (前端传入, 明文, 创建后不存储明文) - 非持久化字段 */
|
||||
private transient String loginPassword;
|
||||
public String getPersonId() { return personId; }
|
||||
public void setPersonId(String personId) { this.personId = personId; }
|
||||
public String getName() { return name; }
|
||||
public void setName(String name) { this.name = name; }
|
||||
public String getPhone() { return phone; }
|
||||
public void setPhone(String phone) { this.phone = phone; }
|
||||
public Long getOrgId() { return orgId; }
|
||||
public void setOrgId(Long orgId) { this.orgId = orgId; }
|
||||
public String getOrgName() { return orgName; }
|
||||
public void setOrgName(String orgName) { this.orgName = orgName; }
|
||||
public String getOrgType() { return orgType; }
|
||||
public void setOrgType(String orgType) { this.orgType = orgType; }
|
||||
public String getDepartment() { return department; }
|
||||
public void setDepartment(String department) { this.department = department; }
|
||||
public String getPosition() { return position; }
|
||||
public void setPosition(String position) { this.position = position; }
|
||||
public String getRole() { return role; }
|
||||
public void setRole(String role) { this.role = role; }
|
||||
public String getStatus() { return status; }
|
||||
public void setStatus(String status) { this.status = status; }
|
||||
public String getDelFlag() { return delFlag; }
|
||||
public void setDelFlag(String delFlag) { this.delFlag = delFlag; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
public Long getUserId() { return userId; }
|
||||
public void setUserId(Long userId) { this.userId = userId; }
|
||||
public String getUnitType() { return unitType; }
|
||||
public void setUnitType(String unitType) { this.unitType = unitType; }
|
||||
public String getAccountType() { return accountType; }
|
||||
public void setAccountType(String accountType) { this.accountType = accountType; }
|
||||
public Long getParentUserId() { return parentUserId; }
|
||||
public void setParentUserId(Long parentUserId) { this.parentUserId = parentUserId; }
|
||||
public String getLoginUsername() { return loginUsername; }
|
||||
public void setLoginUsername(String loginUsername) { this.loginUsername = loginUsername; }
|
||||
public String getLoginPassword() { return loginPassword; }
|
||||
public void setLoginPassword(String loginPassword) { this.loginPassword = loginPassword; }
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
|
||||
/**
|
||||
* sponsor 端人员批量导入 VO (中文列头, 用 ruoyi ExcelUtil 解析)
|
||||
*
|
||||
* <p>区别于 BizPerson 实体: 这里只暴露用户能填写的业务字段, 不包含内部 id/审计字段,
|
||||
* 列头按原型 sponsor-new-person.html: 姓名/手机号/所属公司/部门/职务/角色/状态.
|
||||
*
|
||||
* <p>导入后端会按以下规则创建 sys_user 子账号 (parent_user_id=当前登录主账号):
|
||||
* <ul>
|
||||
* <li>loginUsername = 手机号 (要求唯一)</li>
|
||||
* <li>loginPassword = "123456" (默认密码, 前端 toast 提示用户)</li>
|
||||
* <li>unitType = "sponsor"</li>
|
||||
* <li>orgId = 业务层按 orgName 查 biz_org 取 org_id (TODO: SponsorPeople 那边 import 接口需补这步)</li>
|
||||
* </ul>
|
||||
*/
|
||||
public class BizPersonImportVO
|
||||
{
|
||||
@Excel(name = "姓名", sort = 1)
|
||||
private String name;
|
||||
|
||||
@Excel(name = "手机号", sort = 2)
|
||||
private String phone;
|
||||
|
||||
@Excel(name = "所属公司", sort = 3)
|
||||
private String orgName;
|
||||
|
||||
@Excel(name = "部门", sort = 4)
|
||||
private String department;
|
||||
|
||||
@Excel(name = "职务", sort = 5)
|
||||
private String position;
|
||||
|
||||
@Excel(name = "角色", sort = 6)
|
||||
private String role;
|
||||
|
||||
public String getName() { return name; }
|
||||
public void setName(String name) { this.name = name; }
|
||||
public String getPhone() { return phone; }
|
||||
public void setPhone(String phone) { this.phone = phone; }
|
||||
public String getOrgName() { return orgName; }
|
||||
public void setOrgName(String orgName) { this.orgName = orgName; }
|
||||
public String getDepartment() { return department; }
|
||||
public void setDepartment(String department) { this.department = department; }
|
||||
public String getPosition() { return position; }
|
||||
public void setPosition(String position) { this.position = position; }
|
||||
public String getRole() { return role; }
|
||||
public void setRole(String role) { this.role = role; }
|
||||
}
|
||||
@@ -0,0 +1,212 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 项目对象 BizProject */
|
||||
public class BizProject extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** projectId */
|
||||
private String projectId;
|
||||
/** project_no */
|
||||
@Excel(name = "project_no")
|
||||
private String projectNo;
|
||||
/** project_name */
|
||||
@Excel(name = "project_name")
|
||||
private String projectName;
|
||||
/** total_sessions */
|
||||
@Excel(name = "total_sessions")
|
||||
private Long totalSessions;
|
||||
/** done_sessions */
|
||||
@Excel(name = "done_sessions")
|
||||
private Long doneSessions;
|
||||
/** todo_sessions */
|
||||
@Excel(name = "todo_sessions")
|
||||
private Long todoSessions;
|
||||
/** total_amount */
|
||||
@Excel(name = "total_amount")
|
||||
private BigDecimal totalAmount;
|
||||
/** available_amount */
|
||||
@Excel(name = "available_amount")
|
||||
private BigDecimal availableAmount;
|
||||
/** paid_labor_amount */
|
||||
@Excel(name = "paid_labor_amount")
|
||||
private BigDecimal paidLaborAmount;
|
||||
/** paid_meeting_amount */
|
||||
@Excel(name = "paid_meeting_amount")
|
||||
private BigDecimal paidMeetingAmount;
|
||||
/** rating_score (平均分) */
|
||||
@Excel(name = "rating_score")
|
||||
private BigDecimal ratingScore;
|
||||
/** 评分维度: 履约质量 */
|
||||
private BigDecimal ratingQ1;
|
||||
/** 评分维度: 时效响应 */
|
||||
private BigDecimal ratingQ2;
|
||||
/** 评分维度: 配合度 */
|
||||
private BigDecimal ratingQ3;
|
||||
/** 评分维度: 合规安全 */
|
||||
private BigDecimal ratingQ4;
|
||||
/** org_name (赞助方/执行方, 由 org_type 区分) */
|
||||
@Excel(name = "org_name")
|
||||
private String orgName;
|
||||
/** org_type: sponsor 赞助方 / execution 执行方 */
|
||||
@Excel(name = "org_type")
|
||||
private String orgType;
|
||||
/** project_form */
|
||||
@Excel(name = "project_form")
|
||||
private String projectForm;
|
||||
/** is_finished */
|
||||
@Excel(name = "is_finished")
|
||||
private String isFinished;
|
||||
/** is_settled */
|
||||
@Excel(name = "is_settled")
|
||||
private String isSettled;
|
||||
/** org_id (赞助方/执行方, 由 org_type 区分) */
|
||||
@Excel(name = "org_id")
|
||||
private Long orgId;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 管理费及税金 */
|
||||
private BigDecimal manageFee;
|
||||
/** 项目开始时间 */
|
||||
private String startTime;
|
||||
/** 项目结束时间 */
|
||||
private String endTime;
|
||||
/** 提交材料截止天数 */
|
||||
private Integer submitDeadlineDays;
|
||||
/** 支持合同文件URL */
|
||||
private String supportContractUrl;
|
||||
/** 执行合同文件URL */
|
||||
private String executeContractUrl;
|
||||
/** 邀请函文件URL */
|
||||
private String invitationUrl;
|
||||
/** 支持函文件URL */
|
||||
private String supportLetterUrl;
|
||||
/** 已发布公告URL */
|
||||
private String publishUrl;
|
||||
/** 通知文件URL */
|
||||
private String noticeUrl;
|
||||
/** 日程文件URL */
|
||||
private String scheduleUrl;
|
||||
/** 是否已发布公示 0否 1是 */
|
||||
private String isPublished;
|
||||
/** 发布时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date publishTime;
|
||||
/** 公告类型 (邀请函/支持函/通知/日程/公示) */
|
||||
private String announcementType;
|
||||
|
||||
/* ============ 赞助方评分字段 (来自 biz_project_sponsor 中间表, 仅展示用) ============ */
|
||||
/** 当前 login 用户对该项目的平均分 */
|
||||
private BigDecimal sponsorRating;
|
||||
private Integer sponsorQ1;
|
||||
private Integer sponsorQ2;
|
||||
private Integer sponsorQ3;
|
||||
private Integer sponsorQ4;
|
||||
private String sponsorRemark;
|
||||
public String getProjectId() { return projectId; }
|
||||
public void setProjectId(String projectId) { this.projectId = projectId; }
|
||||
public String getProjectNo() { return projectNo; }
|
||||
public void setProjectNo(String projectNo) { this.projectNo = projectNo; }
|
||||
public String getProjectName() { return projectName; }
|
||||
public void setProjectName(String projectName) { this.projectName = projectName; }
|
||||
public Long getTotalSessions() { return totalSessions; }
|
||||
public void setTotalSessions(Long totalSessions) { this.totalSessions = totalSessions; }
|
||||
public Long getDoneSessions() { return doneSessions; }
|
||||
public void setDoneSessions(Long doneSessions) { this.doneSessions = doneSessions; }
|
||||
public Long getTodoSessions() { return todoSessions; }
|
||||
public void setTodoSessions(Long todoSessions) { this.todoSessions = todoSessions; }
|
||||
public BigDecimal getTotalAmount() { return totalAmount; }
|
||||
public void setTotalAmount(BigDecimal totalAmount) { this.totalAmount = totalAmount; }
|
||||
public BigDecimal getAvailableAmount() { return availableAmount; }
|
||||
public void setAvailableAmount(BigDecimal availableAmount) { this.availableAmount = availableAmount; }
|
||||
public BigDecimal getPaidLaborAmount() { return paidLaborAmount; }
|
||||
public void setPaidLaborAmount(BigDecimal paidLaborAmount) { this.paidLaborAmount = paidLaborAmount; }
|
||||
public BigDecimal getPaidMeetingAmount() { return paidMeetingAmount; }
|
||||
public void setPaidMeetingAmount(BigDecimal paidMeetingAmount) { this.paidMeetingAmount = paidMeetingAmount; }
|
||||
public BigDecimal getRatingScore() { return ratingScore; }
|
||||
public void setRatingScore(BigDecimal ratingScore) { this.ratingScore = ratingScore; }
|
||||
public BigDecimal getRatingQ1() { return ratingQ1; }
|
||||
public void setRatingQ1(BigDecimal ratingQ1) { this.ratingQ1 = ratingQ1; }
|
||||
public BigDecimal getRatingQ2() { return ratingQ2; }
|
||||
public void setRatingQ2(BigDecimal ratingQ2) { this.ratingQ2 = ratingQ2; }
|
||||
public BigDecimal getRatingQ3() { return ratingQ3; }
|
||||
public void setRatingQ3(BigDecimal ratingQ3) { this.ratingQ3 = ratingQ3; }
|
||||
public BigDecimal getRatingQ4() { return ratingQ4; }
|
||||
public void setRatingQ4(BigDecimal ratingQ4) { this.ratingQ4 = ratingQ4; }
|
||||
public String getOrgName() { return orgName; }
|
||||
public void setOrgName(String orgName) { this.orgName = orgName; }
|
||||
public String getOrgType() { return orgType; }
|
||||
public void setOrgType(String orgType) { this.orgType = orgType; }
|
||||
public String getProjectForm() { return projectForm; }
|
||||
public void setProjectForm(String projectForm) { this.projectForm = projectForm; }
|
||||
public String getIsFinished() { return isFinished; }
|
||||
public void setIsFinished(String isFinished) { this.isFinished = isFinished; }
|
||||
public String getIsSettled() { return isSettled; }
|
||||
public void setIsSettled(String isSettled) { this.isSettled = isSettled; }
|
||||
public Long getOrgId() { return orgId; }
|
||||
public void setOrgId(Long orgId) { this.orgId = orgId; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
public BigDecimal getManageFee() { return manageFee; }
|
||||
public void setManageFee(BigDecimal manageFee) { this.manageFee = manageFee; }
|
||||
public String getStartTime() { return startTime; }
|
||||
public void setStartTime(String startTime) { this.startTime = startTime; }
|
||||
public String getEndTime() { return endTime; }
|
||||
public void setEndTime(String endTime) { this.endTime = endTime; }
|
||||
public Integer getSubmitDeadlineDays() { return submitDeadlineDays; }
|
||||
public void setSubmitDeadlineDays(Integer submitDeadlineDays) { this.submitDeadlineDays = submitDeadlineDays; }
|
||||
public String getSupportContractUrl() { return supportContractUrl; }
|
||||
public void setSupportContractUrl(String supportContractUrl) { this.supportContractUrl = supportContractUrl; }
|
||||
public String getExecuteContractUrl() { return executeContractUrl; }
|
||||
public void setExecuteContractUrl(String executeContractUrl) { this.executeContractUrl = executeContractUrl; }
|
||||
public String getInvitationUrl() { return invitationUrl; }
|
||||
public void setInvitationUrl(String invitationUrl) { this.invitationUrl = invitationUrl; }
|
||||
public String getSupportLetterUrl() { return supportLetterUrl; }
|
||||
public void setSupportLetterUrl(String supportLetterUrl) { this.supportLetterUrl = supportLetterUrl; }
|
||||
public String getPublishUrl() { return publishUrl; }
|
||||
public void setPublishUrl(String publishUrl) { this.publishUrl = publishUrl; }
|
||||
public String getNoticeUrl() { return noticeUrl; }
|
||||
public void setNoticeUrl(String noticeUrl) { this.noticeUrl = noticeUrl; }
|
||||
public String getScheduleUrl() { return scheduleUrl; }
|
||||
public void setScheduleUrl(String scheduleUrl) { this.scheduleUrl = scheduleUrl; }
|
||||
public String getIsPublished() { return isPublished; }
|
||||
public void setIsPublished(String isPublished) { this.isPublished = isPublished; }
|
||||
public Date getPublishTime() { return publishTime; }
|
||||
public void setPublishTime(Date publishTime) { this.publishTime = publishTime; }
|
||||
public String getAnnouncementType() { return announcementType; }
|
||||
public void setAnnouncementType(String announcementType) { this.announcementType = announcementType; }
|
||||
public BigDecimal getSponsorRating() { return sponsorRating; }
|
||||
public void setSponsorRating(BigDecimal sponsorRating) { this.sponsorRating = sponsorRating; }
|
||||
public Integer getSponsorQ1() { return sponsorQ1; }
|
||||
public void setSponsorQ1(Integer sponsorQ1) { this.sponsorQ1 = sponsorQ1; }
|
||||
public Integer getSponsorQ2() { return sponsorQ2; }
|
||||
public void setSponsorQ2(Integer sponsorQ2) { this.sponsorQ2 = sponsorQ2; }
|
||||
public Integer getSponsorQ3() { return sponsorQ3; }
|
||||
public void setSponsorQ3(Integer sponsorQ3) { this.sponsorQ3 = sponsorQ3; }
|
||||
public Integer getSponsorQ4() { return sponsorQ4; }
|
||||
public void setSponsorQ4(Integer sponsorQ4) { this.sponsorQ4 = sponsorQ4; }
|
||||
public String getSponsorRemark() { return sponsorRemark; }
|
||||
public void setSponsorRemark(String sponsorRemark) { this.sponsorRemark = sponsorRemark; }
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 项目执行方分配对象 BizProjectAssign */
|
||||
public class BizProjectAssign extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** assign_id */
|
||||
private String assignId;
|
||||
/** project_id */
|
||||
private Long projectId;
|
||||
/** 执行方用户ID (sys_user.user_id) */
|
||||
private Long execUserId;
|
||||
/** 执行方用户名 (denormalized) */
|
||||
private String execUserName;
|
||||
/** 执行方昵称 (denormalized) */
|
||||
private String execNickName;
|
||||
/** 执行方所属机构 (denormalized) */
|
||||
private String execOrg;
|
||||
/** 分配场次 */
|
||||
private Integer sessions;
|
||||
/** 分配金额 */
|
||||
private BigDecimal amount;
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
/** 状态 0正常 1已撤销 */
|
||||
private String status;
|
||||
|
||||
public String getAssignId() { return assignId; }
|
||||
public void setAssignId(String assignId) { this.assignId = assignId; }
|
||||
public Long getProjectId() { return projectId; }
|
||||
public void setProjectId(Long projectId) { this.projectId = projectId; }
|
||||
public Long getExecUserId() { return execUserId; }
|
||||
public void setExecUserId(Long execUserId) { this.execUserId = execUserId; }
|
||||
public String getExecUserName() { return execUserName; }
|
||||
public void setExecUserName(String execUserName) { this.execUserName = execUserName; }
|
||||
public String getExecNickName() { return execNickName; }
|
||||
public void setExecNickName(String execNickName) { this.execNickName = execNickName; }
|
||||
public String getExecOrg() { return execOrg; }
|
||||
public void setExecOrg(String execOrg) { this.execOrg = execOrg; }
|
||||
public Integer getSessions() { return sessions; }
|
||||
public void setSessions(Integer sessions) { this.sessions = sessions; }
|
||||
public BigDecimal getAmount() { return amount; }
|
||||
public void setAmount(BigDecimal amount) { this.amount = amount; }
|
||||
public String getRemark() { return remark; }
|
||||
public void setRemark(String remark) { this.remark = remark; }
|
||||
public String getStatus() { return status; }
|
||||
public void setStatus(String status) { this.status = status; }
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 项目策划方案对象 BizProjectPlan */
|
||||
public class BizProjectPlan extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** planId */
|
||||
private String planId;
|
||||
/** plan_name */
|
||||
@Excel(name = "plan_name")
|
||||
private String planName;
|
||||
/** plan_direction */
|
||||
@Excel(name = "plan_direction")
|
||||
private String planDirection;
|
||||
/** plan_category */
|
||||
@Excel(name = "plan_category")
|
||||
private String planCategory;
|
||||
/** project_form */
|
||||
@Excel(name = "project_form")
|
||||
private String projectForm;
|
||||
/** design_file_url */
|
||||
@Excel(name = "design_file_url")
|
||||
private String designFileUrl;
|
||||
/** status */
|
||||
@Excel(name = "status")
|
||||
private String status;
|
||||
/** is_settled */
|
||||
@Excel(name = "is_settled")
|
||||
private String isSettled;
|
||||
/** project_no */
|
||||
@Excel(name = "project_no")
|
||||
private String projectNo;
|
||||
/** remark */
|
||||
@Excel(name = "remark")
|
||||
private String remark;
|
||||
/** is_finished */
|
||||
@Excel(name = "is_finished")
|
||||
private String isFinished;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 审核意见 */
|
||||
private String auditOpinion;
|
||||
/** 审核人 */
|
||||
private String auditBy;
|
||||
/** 审核时间 */
|
||||
private String auditTime;
|
||||
public String getPlanId() { return planId; }
|
||||
public void setPlanId(String planId) { this.planId = planId; }
|
||||
public String getPlanName() { return planName; }
|
||||
public void setPlanName(String planName) { this.planName = planName; }
|
||||
public String getPlanDirection() { return planDirection; }
|
||||
public void setPlanDirection(String planDirection) { this.planDirection = planDirection; }
|
||||
public String getPlanCategory() { return planCategory; }
|
||||
public void setPlanCategory(String planCategory) { this.planCategory = planCategory; }
|
||||
public String getProjectForm() { return projectForm; }
|
||||
public void setProjectForm(String projectForm) { this.projectForm = projectForm; }
|
||||
public String getDesignFileUrl() { return designFileUrl; }
|
||||
public void setDesignFileUrl(String designFileUrl) { this.designFileUrl = designFileUrl; }
|
||||
public String getStatus() { return status; }
|
||||
public void setStatus(String status) { this.status = status; }
|
||||
public String getIsSettled() { return isSettled; }
|
||||
public void setIsSettled(String isSettled) { this.isSettled = isSettled; }
|
||||
public String getProjectNo() { return projectNo; }
|
||||
public void setProjectNo(String projectNo) { this.projectNo = projectNo; }
|
||||
public String getRemark() { return remark; }
|
||||
public void setRemark(String remark) { this.remark = remark; }
|
||||
public String getIsFinished() { return isFinished; }
|
||||
public void setIsFinished(String isFinished) { this.isFinished = isFinished; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 项目评分对象 BizProjectRating */
|
||||
public class BizProjectRating extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** ratingId */
|
||||
private String ratingId;
|
||||
/** project_no */
|
||||
@Excel(name = "project_no")
|
||||
private String projectNo;
|
||||
/** project_name */
|
||||
@Excel(name = "project_name")
|
||||
private String projectName;
|
||||
/** rater_name */
|
||||
@Excel(name = "rater_name")
|
||||
private String raterName;
|
||||
/** rater_role */
|
||||
@Excel(name = "rater_role")
|
||||
private String raterRole;
|
||||
/** quality_score */
|
||||
@Excel(name = "quality_score")
|
||||
private String qualityScore;
|
||||
/** response_score */
|
||||
@Excel(name = "response_score")
|
||||
private Long responseScore;
|
||||
/** cooperation_score */
|
||||
@Excel(name = "cooperation_score")
|
||||
private Long cooperationScore;
|
||||
/** compliance_score */
|
||||
@Excel(name = "compliance_score")
|
||||
private Long complianceScore;
|
||||
/** total_score */
|
||||
@Excel(name = "total_score")
|
||||
private BigDecimal totalScore;
|
||||
/** remark */
|
||||
@Excel(name = "remark")
|
||||
private String remark;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 项目ID */
|
||||
private Long projectId;
|
||||
/** 评分人ID */
|
||||
private Long raterId;
|
||||
/** 评分时间 */
|
||||
private String ratingTime;
|
||||
public String getRatingId() { return ratingId; }
|
||||
public void setRatingId(String ratingId) { this.ratingId = ratingId; }
|
||||
public String getProjectNo() { return projectNo; }
|
||||
public void setProjectNo(String projectNo) { this.projectNo = projectNo; }
|
||||
public String getProjectName() { return projectName; }
|
||||
public void setProjectName(String projectName) { this.projectName = projectName; }
|
||||
public String getRaterName() { return raterName; }
|
||||
public void setRaterName(String raterName) { this.raterName = raterName; }
|
||||
public String getRaterRole() { return raterRole; }
|
||||
public void setRaterRole(String raterRole) { this.raterRole = raterRole; }
|
||||
public String getQualityScore() { return qualityScore; }
|
||||
public void setQualityScore(String qualityScore) { this.qualityScore = qualityScore; }
|
||||
public Long getResponseScore() { return responseScore; }
|
||||
public void setResponseScore(Long responseScore) { this.responseScore = responseScore; }
|
||||
public Long getCooperationScore() { return cooperationScore; }
|
||||
public void setCooperationScore(Long cooperationScore) { this.cooperationScore = cooperationScore; }
|
||||
public Long getComplianceScore() { return complianceScore; }
|
||||
public void setComplianceScore(Long complianceScore) { this.complianceScore = complianceScore; }
|
||||
public BigDecimal getTotalScore() { return totalScore; }
|
||||
public void setTotalScore(BigDecimal totalScore) { this.totalScore = totalScore; }
|
||||
public String getRemark() { return remark; }
|
||||
public void setRemark(String remark) { this.remark = remark; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
public Long getProjectId() { return projectId; }
|
||||
public void setProjectId(Long projectId) { this.projectId = projectId; }
|
||||
public Long getRaterId() { return raterId; }
|
||||
public void setRaterId(Long raterId) { this.raterId = raterId; }
|
||||
public String getRatingTime() { return ratingTime; }
|
||||
public void setRatingTime(String ratingTime) { this.ratingTime = ratingTime; }
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 项目-赞助方-监察员分配记录 (biz_project_sponsor_assign) */
|
||||
public class BizProjectSponsorAssign extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private Long id;
|
||||
private String projectId;
|
||||
private Long sponsorUserId;
|
||||
private Long monitorUserId;
|
||||
private String assignDesc;
|
||||
private String assignPoints;
|
||||
|
||||
/** 关联展示字段 (非持久化) */
|
||||
private String sponsorUserName;
|
||||
private String monitorUserName;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
|
||||
public Long getId() { return id; }
|
||||
public void setId(Long id) { this.id = id; }
|
||||
public String getProjectId() { return projectId; }
|
||||
public void setProjectId(String projectId) { this.projectId = projectId; }
|
||||
public Long getSponsorUserId() { return sponsorUserId; }
|
||||
public void setSponsorUserId(Long sponsorUserId) { this.sponsorUserId = sponsorUserId; }
|
||||
public Long getMonitorUserId() { return monitorUserId; }
|
||||
public void setMonitorUserId(Long monitorUserId) { this.monitorUserId = monitorUserId; }
|
||||
public String getAssignDesc() { return assignDesc; }
|
||||
public void setAssignDesc(String assignDesc) { this.assignDesc = assignDesc; }
|
||||
public String getAssignPoints() { return assignPoints; }
|
||||
public void setAssignPoints(String assignPoints) { this.assignPoints = assignPoints; }
|
||||
public String getSponsorUserName() { return sponsorUserName; }
|
||||
public void setSponsorUserName(String sponsorUserName) { this.sponsorUserName = sponsorUserName; }
|
||||
public String getMonitorUserName() { return monitorUserName; }
|
||||
public void setMonitorUserName(String monitorUserName) { this.monitorUserName = monitorUserName; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 项目公告对象 BizPublicity */
|
||||
public class BizPublicity extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** PK */
|
||||
private Long id;
|
||||
/** 项目ID */
|
||||
@Excel(name = "project_id")
|
||||
private Long projectId;
|
||||
/** 项目编号 */
|
||||
@Excel(name = "project_no")
|
||||
private String projectNo;
|
||||
/** 项目名称 */
|
||||
@Excel(name = "project_name")
|
||||
private String projectName;
|
||||
/** 公告类型 (invitation/support/notice/agenda) */
|
||||
@Excel(name = "announce_type")
|
||||
private String announceType;
|
||||
/** 公告标题 */
|
||||
@Excel(name = "title")
|
||||
private String title;
|
||||
/** 公告文件URL */
|
||||
@Excel(name = "file_url")
|
||||
private String fileUrl;
|
||||
/** 备注 */
|
||||
@Excel(name = "remark")
|
||||
private String remark;
|
||||
/** 状态 0保存 1发布 */
|
||||
@Excel(name = "status")
|
||||
private String status;
|
||||
/** 发布时间 */
|
||||
@Excel(name = "rating_time")
|
||||
private Date ratingTime;
|
||||
|
||||
public Long getId() { return id; }
|
||||
public void setId(Long id) { this.id = id; }
|
||||
public Long getProjectId() { return projectId; }
|
||||
public void setProjectId(Long projectId) { this.projectId = projectId; }
|
||||
public String getProjectNo() { return projectNo; }
|
||||
public void setProjectNo(String projectNo) { this.projectNo = projectNo; }
|
||||
public String getProjectName() { return projectName; }
|
||||
public void setProjectName(String projectName) { this.projectName = projectName; }
|
||||
public String getAnnounceType() { return announceType; }
|
||||
public void setAnnounceType(String announceType) { this.announceType = announceType; }
|
||||
public String getTitle() { return title; }
|
||||
public void setTitle(String title) { this.title = title; }
|
||||
public String getFileUrl() { return fileUrl; }
|
||||
public void setFileUrl(String fileUrl) { this.fileUrl = fileUrl; }
|
||||
public String getRemark() { return remark; }
|
||||
public void setRemark(String remark) { this.remark = remark; }
|
||||
public String getStatus() { return status; }
|
||||
public void setStatus(String status) { this.status = status; }
|
||||
public Date getRatingTime() { return ratingTime; }
|
||||
public void setRatingTime(Date ratingTime) { this.ratingTime = ratingTime; }
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 资料对象 BizResource */
|
||||
public class BizResource extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** resourceId */
|
||||
private String resourceId;
|
||||
/** name */
|
||||
@Excel(name = "name")
|
||||
private String name;
|
||||
/** category */
|
||||
@Excel(name = "category")
|
||||
private String category;
|
||||
/** file_size */
|
||||
@Excel(name = "file_size")
|
||||
private String fileSize;
|
||||
/** uploader_name */
|
||||
@Excel(name = "uploader_name")
|
||||
private String uploaderName;
|
||||
/** upload_time */
|
||||
@Excel(name = "upload_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date uploadTime;
|
||||
/** status */
|
||||
@Excel(name = "status")
|
||||
private String status;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
public String getResourceId() { return resourceId; }
|
||||
public void setResourceId(String resourceId) { this.resourceId = resourceId; }
|
||||
public String getName() { return name; }
|
||||
public void setName(String name) { this.name = name; }
|
||||
public String getCategory() { return category; }
|
||||
public void setCategory(String category) { this.category = category; }
|
||||
public String getFileSize() { return fileSize; }
|
||||
public void setFileSize(String fileSize) { this.fileSize = fileSize; }
|
||||
public String getUploaderName() { return uploaderName; }
|
||||
public void setUploaderName(String uploaderName) { this.uploaderName = uploaderName; }
|
||||
public Date getUploadTime() { return uploadTime; }
|
||||
public void setUploadTime(Date uploadTime) { this.uploadTime = uploadTime; }
|
||||
public String getStatus() { return status; }
|
||||
public void setStatus(String status) { this.status = status; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 投稿对象 BizSubmission */
|
||||
public class BizSubmission extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** subId */
|
||||
private String subId;
|
||||
/** title */
|
||||
@Excel(name = "title")
|
||||
private String title;
|
||||
/** direction */
|
||||
@Excel(name = "direction")
|
||||
private String direction;
|
||||
/** project_form */
|
||||
@Excel(name = "project_form")
|
||||
private String projectForm;
|
||||
/** design_file_url */
|
||||
@Excel(name = "design_file_url")
|
||||
private String designFileUrl;
|
||||
/** status */
|
||||
@Excel(name = "status")
|
||||
private String status;
|
||||
/** remark */
|
||||
@Excel(name = "remark")
|
||||
private String remark;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 投稿人用户ID */
|
||||
private Long submitterId;
|
||||
/** 投稿人姓名 */
|
||||
private String submitterName;
|
||||
/** 项目类别 学术会议类/专项科研类/调研征集类/慈善帮扶类/标准制定类/患者援助类/专业培训类 */
|
||||
private String projectCategory;
|
||||
/** 审核意见 */
|
||||
private String auditOpinion;
|
||||
/** 审核人 */
|
||||
private String auditBy;
|
||||
/** 审核时间 */
|
||||
private String auditTime;
|
||||
public String getSubId() { return subId; }
|
||||
public void setSubId(String subId) { this.subId = subId; }
|
||||
public String getTitle() { return title; }
|
||||
public void setTitle(String title) { this.title = title; }
|
||||
public String getDirection() { return direction; }
|
||||
public void setDirection(String direction) { this.direction = direction; }
|
||||
public String getProjectForm() { return projectForm; }
|
||||
public void setProjectForm(String projectForm) { this.projectForm = projectForm; }
|
||||
public String getProjectCategory() { return projectCategory; }
|
||||
public void setProjectCategory(String projectCategory) { this.projectCategory = projectCategory; }
|
||||
public String getDesignFileUrl() { return designFileUrl; }
|
||||
public void setDesignFileUrl(String designFileUrl) { this.designFileUrl = designFileUrl; }
|
||||
public String getStatus() { return status; }
|
||||
public void setStatus(String status) { this.status = status; }
|
||||
public String getRemark() { return remark; }
|
||||
public void setRemark(String remark) { this.remark = remark; }
|
||||
public Long getSubmitterId() { return submitterId; }
|
||||
public void setSubmitterId(Long submitterId) { this.submitterId = submitterId; }
|
||||
public String getSubmitterName() { return submitterName; }
|
||||
public void setSubmitterName(String submitterName) { this.submitterName = submitterName; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 支持意向对象 BizSupportIntent */
|
||||
public class BizSupportIntent extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** intentId */
|
||||
private String intentId;
|
||||
/** project_no */
|
||||
@Excel(name = "project_no")
|
||||
private String projectNo;
|
||||
/** project_name */
|
||||
@Excel(name = "project_name")
|
||||
private String projectName;
|
||||
/** name */
|
||||
@Excel(name = "name")
|
||||
private String name;
|
||||
/** work_unit */
|
||||
@Excel(name = "work_unit")
|
||||
private String workUnit;
|
||||
/** department */
|
||||
@Excel(name = "department")
|
||||
private String department;
|
||||
/** position */
|
||||
@Excel(name = "position")
|
||||
private String position;
|
||||
/** phone */
|
||||
@Excel(name = "phone")
|
||||
private String phone;
|
||||
/** account_status */
|
||||
@Excel(name = "account_status")
|
||||
private String accountStatus;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
public String getIntentId() { return intentId; }
|
||||
public void setIntentId(String intentId) { this.intentId = intentId; }
|
||||
public String getProjectNo() { return projectNo; }
|
||||
public void setProjectNo(String projectNo) { this.projectNo = projectNo; }
|
||||
public String getProjectName() { return projectName; }
|
||||
public void setProjectName(String projectName) { this.projectName = projectName; }
|
||||
public String getName() { return name; }
|
||||
public void setName(String name) { this.name = name; }
|
||||
public String getWorkUnit() { return workUnit; }
|
||||
public void setWorkUnit(String workUnit) { this.workUnit = workUnit; }
|
||||
public String getDepartment() { return department; }
|
||||
public void setDepartment(String department) { this.department = department; }
|
||||
public String getPosition() { return position; }
|
||||
public void setPosition(String position) { this.position = position; }
|
||||
public String getPhone() { return phone; }
|
||||
public void setPhone(String phone) { this.phone = phone; }
|
||||
public String getAccountStatus() { return accountStatus; }
|
||||
public void setAccountStatus(String accountStatus) { this.accountStatus = accountStatus; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.ruoyi.business.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/** 支持函对象 BizSupportLetter */
|
||||
public class BizSupportLetter extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** annId */
|
||||
private String annId;
|
||||
/** title */
|
||||
@Excel(name = "title")
|
||||
private String title;
|
||||
/** content */
|
||||
@Excel(name = "content")
|
||||
private String content;
|
||||
/** unit_name */
|
||||
@Excel(name = "unit_name")
|
||||
private String unitName;
|
||||
/** amount */
|
||||
@Excel(name = "amount")
|
||||
private BigDecimal amount;
|
||||
/** issue_date */
|
||||
@Excel(name = "issue_date")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date issueDate;
|
||||
/** create_by */
|
||||
@Excel(name = "create_by")
|
||||
private String createBy;
|
||||
/** create_time */
|
||||
@Excel(name = "create_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
/** update_by */
|
||||
@Excel(name = "update_by")
|
||||
private String updateBy;
|
||||
/** update_time */
|
||||
@Excel(name = "update_time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
/** 支持函ID */
|
||||
private Long letterId;
|
||||
/** 项目ID */
|
||||
private Long projectId;
|
||||
/** 项目编号 */
|
||||
private String projectNo;
|
||||
/** 支持函图片URL */
|
||||
private String fileUrl;
|
||||
/** 发布时间 */
|
||||
private String publishTime;
|
||||
/** 支持次数 */
|
||||
private Integer supportCount;
|
||||
public String getAnnId() { return annId; }
|
||||
public void setAnnId(String annId) { this.annId = annId; }
|
||||
public String getTitle() { return title; }
|
||||
public void setTitle(String title) { this.title = title; }
|
||||
public String getContent() { return content; }
|
||||
public void setContent(String content) { this.content = content; }
|
||||
public String getUnitName() { return unitName; }
|
||||
public void setUnitName(String unitName) { this.unitName = unitName; }
|
||||
public BigDecimal getAmount() { return amount; }
|
||||
public void setAmount(BigDecimal amount) { this.amount = amount; }
|
||||
public Date getIssueDate() { return issueDate; }
|
||||
public void setIssueDate(Date issueDate) { this.issueDate = issueDate; }
|
||||
public String getCreateBy() { return createBy; }
|
||||
public void setCreateBy(String createBy) { this.createBy = createBy; }
|
||||
public Date getCreateTime() { return createTime; }
|
||||
public void setCreateTime(Date createTime) { this.createTime = createTime; }
|
||||
public String getUpdateBy() { return updateBy; }
|
||||
public void setUpdateBy(String updateBy) { this.updateBy = updateBy; }
|
||||
public Date getUpdateTime() { return updateTime; }
|
||||
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.business.dto;
|
||||
|
||||
/**
|
||||
* 短信验证码校验表单
|
||||
* 参考 hwt-code SmsValidForm: phone + smsCode + uuid
|
||||
*/
|
||||
public class SmsValidForm {
|
||||
private String phone;
|
||||
private String smsCode;
|
||||
private String uuid;
|
||||
/** 是否免校验(预留, 默认 false) */
|
||||
private boolean free;
|
||||
|
||||
public String getPhone() { return phone; }
|
||||
public void setPhone(String phone) { this.phone = phone; }
|
||||
public String getSmsCode() { return smsCode; }
|
||||
public void setSmsCode(String smsCode) { this.smsCode = smsCode; }
|
||||
public String getUuid() { return uuid; }
|
||||
public void setUuid(String uuid) { this.uuid = uuid; }
|
||||
public boolean isFree() { return free; }
|
||||
public void setFree(boolean free) { this.free = free; }
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.ruoyi.business.enums;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 投稿状态枚举
|
||||
*
|
||||
* 数据库存储英文 code (PENDING/APPROVED/REJECTED/DRAFT), 不存中文也不存数字.
|
||||
* 字典映射集中在这里避免散落. 前端 utils/submissionStatus.js 同步这份字典.
|
||||
*/
|
||||
public enum SubmissionStatus
|
||||
{
|
||||
PENDING("PENDING", "待审核"),
|
||||
APPROVED("APPROVED", "审核通过"),
|
||||
REJECTED("REJECTED", "已退回"),
|
||||
DRAFT("DRAFT", "待提交");
|
||||
|
||||
private final String code;
|
||||
private final String label;
|
||||
|
||||
SubmissionStatus(String code, String label) {
|
||||
this.code = code;
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public String getCode() { return code; }
|
||||
public String getLabel() { return label; }
|
||||
|
||||
private static final Map<String, SubmissionStatus> BY_CODE = new HashMap<>();
|
||||
static {
|
||||
for (SubmissionStatus s : values()) BY_CODE.put(s.code, s);
|
||||
}
|
||||
|
||||
public static SubmissionStatus fromCode(String val) {
|
||||
if (val == null) return null;
|
||||
return BY_CODE.get(val.trim().toUpperCase());
|
||||
}
|
||||
|
||||
public static boolean isValid(String val) {
|
||||
return fromCode(val) != null;
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizDepartment;
|
||||
|
||||
public interface BizDepartmentMapper
|
||||
{
|
||||
BizDepartment selectByPrimaryKey(Long deptId);
|
||||
|
||||
List<BizDepartment> selectList(BizDepartment entity);
|
||||
|
||||
/** 全部启用的字典 (给前端下拉用) */
|
||||
List<BizDepartment> selectActive();
|
||||
|
||||
int insert(BizDepartment entity);
|
||||
|
||||
int updateByPrimaryKey(BizDepartment entity);
|
||||
|
||||
int deleteByPrimaryKey(Long deptId);
|
||||
|
||||
int deleteByPrimaryKeys(Long[] deptIds);
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizDoctorTitle;
|
||||
|
||||
public interface BizDoctorTitleMapper
|
||||
{
|
||||
BizDoctorTitle selectByPrimaryKey(Long titleId);
|
||||
|
||||
List<BizDoctorTitle> selectList(BizDoctorTitle entity);
|
||||
|
||||
/** 全部启用的字典 */
|
||||
List<BizDoctorTitle> selectActive();
|
||||
|
||||
int insert(BizDoctorTitle entity);
|
||||
|
||||
int updateByPrimaryKey(BizDoctorTitle entity);
|
||||
|
||||
int deleteByPrimaryKey(Long titleId);
|
||||
|
||||
int deleteByPrimaryKeys(Long[] titleIds);
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizExecutionIntent;
|
||||
|
||||
/**
|
||||
* 执行意向Mapper接口
|
||||
*/
|
||||
public interface BizExecutionIntentMapper
|
||||
{
|
||||
BizExecutionIntent selectByPrimaryKey(String intentId);
|
||||
List<BizExecutionIntent> selectList(BizExecutionIntent entity);
|
||||
int insert(BizExecutionIntent entity);
|
||||
int updateByPrimaryKey(BizExecutionIntent entity);
|
||||
int deleteByPrimaryKey(String intentId);
|
||||
int deleteByPrimaryKeys(String[] intentIds);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizExpert;
|
||||
|
||||
/**
|
||||
* 专家Mapper接口
|
||||
*/
|
||||
public interface BizExpertMapper
|
||||
{
|
||||
BizExpert selectByPrimaryKey(String expertId);
|
||||
BizExpert selectByUserId(Long userId);
|
||||
List<BizExpert> selectList(BizExpert entity);
|
||||
int insert(BizExpert entity);
|
||||
int insertWithUserId(BizExpert entity);
|
||||
int updateByPrimaryKey(BizExpert entity);
|
||||
int updateByUserId(BizExpert entity);
|
||||
int deleteByPrimaryKey(String expertId);
|
||||
int deleteByPrimaryKeys(String[] expertIds);
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizInvitation;
|
||||
public interface BizInvitationMapper {
|
||||
BizInvitation selectByPrimaryKey(String annId);
|
||||
List<BizInvitation> selectList(BizInvitation entity);
|
||||
int insert(BizInvitation entity);
|
||||
int updateByPrimaryKey(BizInvitation entity);
|
||||
int deleteByPrimaryKey(String annId);
|
||||
int deleteByPrimaryKeys(String[] annIds);
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizLaborVoucher;
|
||||
|
||||
/**
|
||||
* 劳务凭证Mapper接口
|
||||
*/
|
||||
public interface BizLaborVoucherMapper
|
||||
{
|
||||
BizLaborVoucher selectByPrimaryKey(String voucherId);
|
||||
List<BizLaborVoucher> selectList(BizLaborVoucher entity);
|
||||
int insert(BizLaborVoucher entity);
|
||||
int updateByPrimaryKey(BizLaborVoucher entity);
|
||||
int deleteByPrimaryKey(String voucherId);
|
||||
int deleteByPrimaryKeys(String[] voucherIds);
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizMeeting;
|
||||
|
||||
/**
|
||||
* 会议Mapper接口
|
||||
*/
|
||||
public interface BizMeetingMapper
|
||||
{
|
||||
BizMeeting selectByPrimaryKey(String meetingId);
|
||||
List<BizMeeting> selectList(BizMeeting entity);
|
||||
int insert(BizMeeting entity);
|
||||
int updateByPrimaryKey(BizMeeting entity);
|
||||
int deleteByPrimaryKey(String meetingId);
|
||||
int deleteByPrimaryKeys(String[] meetingIds);
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizMeetingSettlement;
|
||||
|
||||
/**
|
||||
* 会议结算明细Mapper接口
|
||||
*/
|
||||
public interface BizMeetingSettlementMapper
|
||||
{
|
||||
BizMeetingSettlement selectByPrimaryKey(String id);
|
||||
List<BizMeetingSettlement> selectList(BizMeetingSettlement entity);
|
||||
int insert(BizMeetingSettlement entity);
|
||||
int updateByPrimaryKey(BizMeetingSettlement entity);
|
||||
int deleteByPrimaryKey(String id);
|
||||
int deleteByPrimaryKeys(String[] ids);
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizMessage;
|
||||
|
||||
/**
|
||||
* 个人消息Mapper接口
|
||||
*/
|
||||
public interface BizMessageMapper
|
||||
{
|
||||
BizMessage selectByPrimaryKey(Long msgId);
|
||||
|
||||
List<BizMessage> selectList(BizMessage entity);
|
||||
|
||||
/** 某人的未读 + 最近消息 (按时间倒序, limit 由调用方控制) */
|
||||
List<BizMessage> selectMyRecent(BizMessage entity);
|
||||
|
||||
int insert(BizMessage entity);
|
||||
|
||||
int updateByPrimaryKey(BizMessage entity);
|
||||
|
||||
/** 单条标记已读 */
|
||||
int markRead(BizMessage entity);
|
||||
|
||||
/** 全部标记已读 (按接收人) */
|
||||
int markAllRead(Long receiverUserId);
|
||||
|
||||
int deleteByPrimaryKey(Long msgId);
|
||||
|
||||
int deleteByPrimaryKeys(Long[] msgIds);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizOrg;
|
||||
|
||||
public interface BizOrgMapper {
|
||||
BizOrg selectByPrimaryKey(Long orgId);
|
||||
List<BizOrg> selectList(BizOrg entity);
|
||||
int insert(BizOrg entity);
|
||||
int updateByPrimaryKey(BizOrg entity);
|
||||
int deleteByPrimaryKeys(Long[] orgIds);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizPerson;
|
||||
|
||||
/**
|
||||
* 人员Mapper接口
|
||||
*/
|
||||
public interface BizPersonMapper
|
||||
{
|
||||
BizPerson selectByPrimaryKey(String personId);
|
||||
List<BizPerson> selectList(BizPerson entity);
|
||||
/** sponsor 专属: 通过 sys_user.parent_user_id 过滤主账号归属, INNER JOIN 自然排除游离 person */
|
||||
List<BizPerson> selectSponsorList(BizPerson entity);
|
||||
int insert(BizPerson entity);
|
||||
int updateByPrimaryKey(BizPerson entity);
|
||||
int deleteByPrimaryKey(String personId);
|
||||
int deleteByPrimaryKeys(String[] personIds);
|
||||
/** 联动: person 逻辑删除后, 把对应 sys_user 子账号也逻辑删除 */
|
||||
int softDeleteSysUserByPersonIds(String[] personIds);
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizProjectAssign;
|
||||
|
||||
/**
|
||||
* 项目执行方分配Mapper接口
|
||||
*/
|
||||
public interface BizProjectAssignMapper
|
||||
{
|
||||
BizProjectAssign selectByPrimaryKey(String assignId);
|
||||
List<BizProjectAssign> selectByProjectId(Long projectId);
|
||||
List<BizProjectAssign> selectList(BizProjectAssign entity);
|
||||
int insert(BizProjectAssign entity);
|
||||
int updateByPrimaryKey(BizProjectAssign entity);
|
||||
int deleteByPrimaryKey(String assignId);
|
||||
int deleteByProjectId(Long projectId);
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizProject;
|
||||
|
||||
/**
|
||||
* 项目Mapper接口
|
||||
*/
|
||||
public interface BizProjectMapper
|
||||
{
|
||||
BizProject selectByPrimaryKey(String projectId);
|
||||
List<BizProject> selectList(BizProject entity);
|
||||
/** sponsor 端专属: projectIds + LEFT JOIN 当前 login 用户评分, 用于评分回显 */
|
||||
List<BizProject> selectSponsorList(BizProject entity);
|
||||
int insert(BizProject entity);
|
||||
int updateByPrimaryKey(BizProject entity);
|
||||
int deleteByPrimaryKey(String projectId);
|
||||
int deleteByPrimaryKeys(String[] projectIds);
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizProjectPlan;
|
||||
|
||||
/**
|
||||
* 项目策划方案Mapper接口
|
||||
*/
|
||||
public interface BizProjectPlanMapper
|
||||
{
|
||||
BizProjectPlan selectByPrimaryKey(String planId);
|
||||
List<BizProjectPlan> selectList(BizProjectPlan entity);
|
||||
int insert(BizProjectPlan entity);
|
||||
int updateByPrimaryKey(BizProjectPlan entity);
|
||||
int deleteByPrimaryKey(String planId);
|
||||
int deleteByPrimaryKeys(String[] planIds);
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizProjectRating;
|
||||
|
||||
/**
|
||||
* 项目评分Mapper接口
|
||||
*/
|
||||
public interface BizProjectRatingMapper
|
||||
{
|
||||
BizProjectRating selectByPrimaryKey(String ratingId);
|
||||
List<BizProjectRating> selectList(BizProjectRating entity);
|
||||
int insert(BizProjectRating entity);
|
||||
int updateByPrimaryKey(BizProjectRating entity);
|
||||
/** 按 (project_id + rater_id + rater_role) upsert 评分 */
|
||||
int upsertRating(BizProjectRating entity);
|
||||
int deleteByPrimaryKey(String ratingId);
|
||||
int deleteByPrimaryKeys(String[] ratingIds);
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizProjectSponsorAssign;
|
||||
|
||||
public interface BizProjectSponsorAssignMapper {
|
||||
int insertAssign(BizProjectSponsorAssign entity);
|
||||
List<BizProjectSponsorAssign> selectByProjectId(String projectId);
|
||||
/** 按 project_id 全删 (赞助方分配: 先删后插策略) */
|
||||
int deleteByProjectId(String projectId);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizPublicity;
|
||||
|
||||
public interface BizPublicityMapper
|
||||
{
|
||||
BizPublicity selectByPrimaryKey(Long id);
|
||||
List<BizPublicity> selectList(BizPublicity entity);
|
||||
List<BizPublicity> selectByProjectId(Long projectId);
|
||||
int insert(BizPublicity entity);
|
||||
int updateByPrimaryKey(BizPublicity entity);
|
||||
int deleteByPrimaryKey(Long id);
|
||||
int deleteByPrimaryKeys(Long[] ids);
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizResource;
|
||||
|
||||
/**
|
||||
* 资料Mapper接口
|
||||
*/
|
||||
public interface BizResourceMapper
|
||||
{
|
||||
BizResource selectByPrimaryKey(String resourceId);
|
||||
List<BizResource> selectList(BizResource entity);
|
||||
int insert(BizResource entity);
|
||||
int updateByPrimaryKey(BizResource entity);
|
||||
int deleteByPrimaryKey(String resourceId);
|
||||
int deleteByPrimaryKeys(String[] resourceIds);
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizSubmission;
|
||||
|
||||
/**
|
||||
* 投稿Mapper接口
|
||||
*/
|
||||
public interface BizSubmissionMapper
|
||||
{
|
||||
BizSubmission selectByPrimaryKey(String subId);
|
||||
List<BizSubmission> selectList(BizSubmission entity);
|
||||
int insert(BizSubmission entity);
|
||||
int updateByPrimaryKey(BizSubmission entity);
|
||||
int deleteByPrimaryKey(String subId);
|
||||
int deleteByPrimaryKeys(String[] subIds);
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizSupportIntent;
|
||||
|
||||
/**
|
||||
* 支持意向Mapper接口
|
||||
*/
|
||||
public interface BizSupportIntentMapper
|
||||
{
|
||||
BizSupportIntent selectByPrimaryKey(String intentId);
|
||||
List<BizSupportIntent> selectList(BizSupportIntent entity);
|
||||
int insert(BizSupportIntent entity);
|
||||
int updateByPrimaryKey(BizSupportIntent entity);
|
||||
int deleteByPrimaryKey(String intentId);
|
||||
int deleteByPrimaryKeys(String[] intentIds);
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.business.mapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizSupportLetter;
|
||||
public interface BizSupportLetterMapper {
|
||||
BizSupportLetter selectByPrimaryKey(String annId);
|
||||
List<BizSupportLetter> selectList(BizSupportLetter entity);
|
||||
int insert(BizSupportLetter entity);
|
||||
int updateByPrimaryKey(BizSupportLetter entity);
|
||||
int deleteByPrimaryKey(String annId);
|
||||
int deleteByPrimaryKeys(String[] annIds);
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizDepartment;
|
||||
|
||||
public interface IBizDepartmentService
|
||||
{
|
||||
BizDepartment getById(Long deptId);
|
||||
|
||||
List<BizDepartment> selectList(BizDepartment entity);
|
||||
|
||||
List<BizDepartment> selectActive();
|
||||
|
||||
int insert(BizDepartment entity);
|
||||
|
||||
int updateByPrimaryKey(BizDepartment entity);
|
||||
|
||||
int deleteByPrimaryKey(Long deptId);
|
||||
|
||||
int deleteByPrimaryKeys(Long[] deptIds);
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizDoctorTitle;
|
||||
|
||||
public interface IBizDoctorTitleService
|
||||
{
|
||||
BizDoctorTitle getById(Long titleId);
|
||||
|
||||
List<BizDoctorTitle> selectList(BizDoctorTitle entity);
|
||||
|
||||
List<BizDoctorTitle> selectActive();
|
||||
|
||||
int insert(BizDoctorTitle entity);
|
||||
|
||||
int updateByPrimaryKey(BizDoctorTitle entity);
|
||||
|
||||
int deleteByPrimaryKey(Long titleId);
|
||||
|
||||
int deleteByPrimaryKeys(Long[] titleIds);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizExecutionIntent;
|
||||
|
||||
/**
|
||||
* 执行意向Service接口
|
||||
*/
|
||||
public interface IBizExecutionIntentService
|
||||
{
|
||||
BizExecutionIntent getById(String intentId);
|
||||
List<BizExecutionIntent> selectList(BizExecutionIntent entity);
|
||||
int insert(BizExecutionIntent entity);
|
||||
int updateByPrimaryKey(BizExecutionIntent entity);
|
||||
int deleteByPrimaryKey(String intentId);
|
||||
int deleteByPrimaryKeys(String[] intentId);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizExpert;
|
||||
|
||||
/**
|
||||
* 专家Service接口
|
||||
*/
|
||||
public interface IBizExpertService
|
||||
{
|
||||
BizExpert getById(String expertId);
|
||||
BizExpert getByUserId(Long userId);
|
||||
List<BizExpert> selectList(BizExpert entity);
|
||||
int insert(BizExpert entity);
|
||||
int updateByPrimaryKey(BizExpert entity);
|
||||
/** 按 userId 更新或新建 (upsert) */
|
||||
int updateProfileByUserId(BizExpert entity);
|
||||
int deleteByPrimaryKey(String expertId);
|
||||
int deleteByPrimaryKeys(String[] expertId);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizInvitation;
|
||||
|
||||
/**
|
||||
* 邀请函Service接口
|
||||
*/
|
||||
public interface IBizInvitationService
|
||||
{
|
||||
BizInvitation getById(String invitationId);
|
||||
List<BizInvitation> selectList(BizInvitation entity);
|
||||
int insert(BizInvitation entity);
|
||||
int updateByPrimaryKey(BizInvitation entity);
|
||||
int deleteByPrimaryKey(String invitationId);
|
||||
int deleteByPrimaryKeys(String[] invitationId);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizLaborVoucher;
|
||||
|
||||
/**
|
||||
* 劳务凭证Service接口
|
||||
*/
|
||||
public interface IBizLaborVoucherService
|
||||
{
|
||||
BizLaborVoucher getById(String voucherId);
|
||||
List<BizLaborVoucher> selectList(BizLaborVoucher entity);
|
||||
int insert(BizLaborVoucher entity);
|
||||
int updateByPrimaryKey(BizLaborVoucher entity);
|
||||
int deleteByPrimaryKey(String voucherId);
|
||||
int deleteByPrimaryKeys(String[] voucherId);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizMeeting;
|
||||
|
||||
/**
|
||||
* 会议Service接口
|
||||
*/
|
||||
public interface IBizMeetingService
|
||||
{
|
||||
BizMeeting getById(String meetingId);
|
||||
List<BizMeeting> selectList(BizMeeting entity);
|
||||
int insert(BizMeeting entity);
|
||||
int updateByPrimaryKey(BizMeeting entity);
|
||||
int deleteByPrimaryKey(String meetingId);
|
||||
int deleteByPrimaryKeys(String[] meetingId);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizMeetingSettlement;
|
||||
|
||||
/**
|
||||
* 会议结算Service接口
|
||||
*/
|
||||
public interface IBizMeetingSettlementService
|
||||
{
|
||||
BizMeetingSettlement getById(String settlementId);
|
||||
List<BizMeetingSettlement> selectList(BizMeetingSettlement entity);
|
||||
int insert(BizMeetingSettlement entity);
|
||||
int updateByPrimaryKey(BizMeetingSettlement entity);
|
||||
int deleteByPrimaryKey(String settlementId);
|
||||
int deleteByPrimaryKeys(String[] settlementId);
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizMessage;
|
||||
|
||||
/**
|
||||
* 个人消息Service接口
|
||||
*/
|
||||
public interface IBizMessageService
|
||||
{
|
||||
BizMessage getById(Long msgId);
|
||||
|
||||
List<BizMessage> selectList(BizMessage entity);
|
||||
|
||||
/** 收件人的最近消息 (含未读) */
|
||||
List<BizMessage> selectMyRecent(Long receiverUserId, Integer limit);
|
||||
|
||||
int insert(BizMessage entity);
|
||||
|
||||
int updateByPrimaryKey(BizMessage entity);
|
||||
|
||||
/** 收件人标记单条已读 (会校验归属) */
|
||||
int markRead(Long msgId, Long receiverUserId);
|
||||
|
||||
/** 收件人标记全部已读 */
|
||||
int markAllRead(Long receiverUserId);
|
||||
|
||||
int deleteByPrimaryKey(Long msgId);
|
||||
|
||||
int deleteByPrimaryKeys(Long[] msgIds);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizOrg;
|
||||
|
||||
public interface IBizOrgService {
|
||||
BizOrg getById(Long orgId);
|
||||
List<BizOrg> selectList(BizOrg entity);
|
||||
int insert(BizOrg entity);
|
||||
int updateByPrimaryKey(BizOrg entity);
|
||||
int deleteByPrimaryKeys(Long[] orgIds);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizPerson;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
|
||||
/**
|
||||
* 人员Service接口
|
||||
*
|
||||
* insert(entity, mainUserId):
|
||||
* - 新建 biz_person 同时创建 sys_user 子账号 (account_type='SUB', parent_user_id=mainUserId)
|
||||
* - 返回新 sys_user 信息 (含 username + 明文 password, 仅创建时一次性回传给前端 toast 显示)
|
||||
*/
|
||||
public interface IBizPersonService
|
||||
{
|
||||
BizPerson getById(String personId);
|
||||
List<BizPerson> selectList(BizPerson entity);
|
||||
/** sponsor 专属: 走 BizPersonMapper.selectSponsorList, 用 sys_user.parent_user_id 做归属过滤 */
|
||||
List<BizPerson> selectSponsorList(BizPerson entity);
|
||||
SysUser insert(BizPerson entity, Long mainUserId);
|
||||
int updateByPrimaryKey(BizPerson entity);
|
||||
int deleteByPrimaryKey(String personId);
|
||||
int deleteByPrimaryKeys(String[] personId);
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizProjectAssign;
|
||||
|
||||
/**
|
||||
* 项目执行方分配 Service 接口
|
||||
*/
|
||||
public interface IBizProjectAssignService
|
||||
{
|
||||
BizProjectAssign getById(String assignId);
|
||||
List<BizProjectAssign> selectByProjectId(Long projectId);
|
||||
List<BizProjectAssign> selectList(BizProjectAssign entity);
|
||||
int insert(BizProjectAssign entity);
|
||||
int updateByPrimaryKey(BizProjectAssign entity);
|
||||
int deleteByPrimaryKey(String assignId);
|
||||
int deleteByProjectId(Long projectId);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizProjectPlan;
|
||||
|
||||
/**
|
||||
* 项目策划方案Service接口
|
||||
*/
|
||||
public interface IBizProjectPlanService
|
||||
{
|
||||
BizProjectPlan getById(String planId);
|
||||
List<BizProjectPlan> selectList(BizProjectPlan entity);
|
||||
int insert(BizProjectPlan entity);
|
||||
int updateByPrimaryKey(BizProjectPlan entity);
|
||||
int deleteByPrimaryKey(String planId);
|
||||
int deleteByPrimaryKeys(String[] planId);
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizProjectRating;
|
||||
|
||||
/**
|
||||
* 项目评分Service接口
|
||||
*/
|
||||
public interface IBizProjectRatingService
|
||||
{
|
||||
BizProjectRating getById(String ratingId);
|
||||
List<BizProjectRating> selectList(BizProjectRating entity);
|
||||
/** 按 projectId + raterId + raterRole upsert 评分 */
|
||||
int upsertRating(BizProjectRating entity);
|
||||
int insert(BizProjectRating entity);
|
||||
int updateByPrimaryKey(BizProjectRating entity);
|
||||
int deleteByPrimaryKey(String ratingId);
|
||||
int deleteByPrimaryKeys(String[] ratingId);
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizProject;
|
||||
|
||||
/**
|
||||
* 项目Service接口
|
||||
*/
|
||||
public interface IBizProjectService
|
||||
{
|
||||
BizProject getById(String projectId);
|
||||
List<BizProject> selectList(BizProject entity);
|
||||
/** sponsor 端专属: LEFT JOIN 当前 login 用户评分回显 */
|
||||
List<BizProject> selectSponsorList(BizProject entity);
|
||||
int insert(BizProject entity);
|
||||
int updateByPrimaryKey(BizProject entity);
|
||||
int deleteByPrimaryKey(String projectId);
|
||||
int deleteByPrimaryKeys(String[] projectId);
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizProjectSponsorAssign;
|
||||
|
||||
public interface IBizProjectSponsorAssignService {
|
||||
/** 赞助方分配 (策略: 按 project_id 先删后插, 一个项目只分配一个 sponsor) */
|
||||
int insertAssign(BizProjectSponsorAssign entity);
|
||||
List<BizProjectSponsorAssign> listByProjectId(String projectId);
|
||||
int deleteByProjectId(String projectId);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizPublicity;
|
||||
|
||||
/**
|
||||
* 项目公告Service接口
|
||||
*/
|
||||
public interface IBizPublicityService
|
||||
{
|
||||
BizPublicity getById(Long id);
|
||||
List<BizPublicity> selectList(BizPublicity entity);
|
||||
int insert(BizPublicity entity);
|
||||
int updateByPrimaryKey(BizPublicity entity);
|
||||
int deleteByPrimaryKey(Long id);
|
||||
int deleteByPrimaryKeys(Long[] ids);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizResource;
|
||||
|
||||
/**
|
||||
* 资源Service接口
|
||||
*/
|
||||
public interface IBizResourceService
|
||||
{
|
||||
BizResource getById(String resourceId);
|
||||
List<BizResource> selectList(BizResource entity);
|
||||
int insert(BizResource entity);
|
||||
int updateByPrimaryKey(BizResource entity);
|
||||
int deleteByPrimaryKey(String resourceId);
|
||||
int deleteByPrimaryKeys(String[] resourceId);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizSubmission;
|
||||
|
||||
/**
|
||||
* 投稿Service接口
|
||||
*/
|
||||
public interface IBizSubmissionService
|
||||
{
|
||||
BizSubmission getById(String submissionId);
|
||||
List<BizSubmission> selectList(BizSubmission entity);
|
||||
int insert(BizSubmission entity);
|
||||
int updateByPrimaryKey(BizSubmission entity);
|
||||
int deleteByPrimaryKey(String submissionId);
|
||||
int deleteByPrimaryKeys(String[] submissionId);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizSupportIntent;
|
||||
|
||||
/**
|
||||
* 支持意向Service接口
|
||||
*/
|
||||
public interface IBizSupportIntentService
|
||||
{
|
||||
BizSupportIntent getById(String intentId);
|
||||
List<BizSupportIntent> selectList(BizSupportIntent entity);
|
||||
int insert(BizSupportIntent entity);
|
||||
int updateByPrimaryKey(BizSupportIntent entity);
|
||||
int deleteByPrimaryKey(String intentId);
|
||||
int deleteByPrimaryKeys(String[] intentId);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.business.domain.BizSupportLetter;
|
||||
|
||||
/**
|
||||
* 支持函Service接口
|
||||
*/
|
||||
public interface IBizSupportLetterService
|
||||
{
|
||||
BizSupportLetter getById(String letterId);
|
||||
List<BizSupportLetter> selectList(BizSupportLetter entity);
|
||||
int insert(BizSupportLetter entity);
|
||||
int updateByPrimaryKey(BizSupportLetter entity);
|
||||
int deleteByPrimaryKey(String letterId);
|
||||
int deleteByPrimaryKeys(String[] letterId);
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
package com.ruoyi.business.service;
|
||||
|
||||
import com.ruoyi.business.dto.SmsValidForm;
|
||||
import com.ruoyi.business.sms.AliyunSmsSender;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 短信验证码服务
|
||||
*
|
||||
* 参考 hwt-code SysSmsService 模式:
|
||||
* - 验证码存 Redis 10 分钟 (SMSCODE:uuid -> phone+code)
|
||||
* - dev 模式不真发短信, 仅 log + 返回固定 1234 (开发期用户测试用)
|
||||
* - 同一 IP 1 分钟内不可重复发送 (SMS:ip)
|
||||
*
|
||||
* 当前 sys0808 不接入阿里云, dev 模式 = 固定码 1234, 实际部署时接入 aliyun dysmsapi
|
||||
*/
|
||||
@Service
|
||||
public class SysSmsService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(SysSmsService.class);
|
||||
|
||||
/** 用于验证SMS是否频繁发送, 1 分钟有效 */
|
||||
public static final String SMS_PREFIX = "SMS:";
|
||||
|
||||
/** 用于验证手机号+验证码, 10 分钟有效 */
|
||||
public static final String SMS_CAPTCHA_CODE_KEY = "SMSCODE:";
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Autowired
|
||||
private AliyunSmsSender aliyunSmsSender;
|
||||
|
||||
/**
|
||||
* dev 模式判断: 手机号以 "10" 开头视为开发测试 (固定码 1234), 其它走 aliyun 真发
|
||||
* 该逻辑不依赖 application.yml 配置, 确保开发/生产两种手机号能并存
|
||||
*/
|
||||
private boolean isDev(String phone) {
|
||||
return phone.startsWith("10");
|
||||
}
|
||||
|
||||
/** 发送短信验证码, 返回 uuid (前端提交验证时回传) */
|
||||
public String sendCode(String phone) {
|
||||
if (phone == null || phone.trim().isEmpty()) {
|
||||
throw new RuntimeException("手机号码不能为空");
|
||||
}
|
||||
if (phone.startsWith(" ")) {
|
||||
throw new RuntimeException("手机号不能以空格开头");
|
||||
}
|
||||
|
||||
String code;
|
||||
if (isDev(phone)) {
|
||||
// dev 模式 (10 开头): 固定码 1234 (供内部测试)
|
||||
code = "1234";
|
||||
log.info("[SMS][DEV][phone-prefix=10] 向 {} 发送验证码: {}", phone, code);
|
||||
} else {
|
||||
// prod 模式: aliyun 真发
|
||||
code = generateCode(4);
|
||||
log.info("[SMS][PROD] 向 {} 发送验证码: {}", phone, code);
|
||||
boolean ok = aliyunSmsSender.sendCode(phone, code);
|
||||
if (!ok) {
|
||||
throw new RuntimeException("短信发送失败, 请稍后再试");
|
||||
}
|
||||
}
|
||||
|
||||
// 存 redis: SMSCODE:<uuid> -> phone+code, 10 分钟有效
|
||||
String uuid = UUID.randomUUID().toString();
|
||||
redisCache.setCacheObject(SMS_CAPTCHA_CODE_KEY + uuid, phone + code, 10, TimeUnit.MINUTES);
|
||||
log.info("[SMS] 已存入 redis, uuid={}, ttl=10min", uuid);
|
||||
return uuid;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成 4 位数字验证码
|
||||
*/
|
||||
private String generateCode(int length) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
java.util.Random random = new java.util.Random();
|
||||
for (int i = 0; i < length; i++) {
|
||||
sb.append(random.nextInt(10));
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验验证码, 失败抛出 RuntimeException
|
||||
*/
|
||||
public void verifyCode(SmsValidForm form) {
|
||||
if (form == null || form.getPhone() == null || form.getSmsCode() == null || form.getUuid() == null) {
|
||||
throw new RuntimeException("校验参数不完整");
|
||||
}
|
||||
String key = SMS_CAPTCHA_CODE_KEY + form.getUuid();
|
||||
String value = redisCache.getCacheObject(key);
|
||||
if (value == null) {
|
||||
if (form.isFree()) return;
|
||||
throw new RuntimeException("验证码已过期");
|
||||
}
|
||||
if (!value.equals(form.getPhone() + form.getSmsCode())) {
|
||||
throw new RuntimeException("验证码错误");
|
||||
}
|
||||
// 校验成功后删除 (防止重用)
|
||||
redisCache.deleteObject(key);
|
||||
}
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
package com.ruoyi.business.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.business.domain.BizDepartment;
|
||||
import com.ruoyi.business.mapper.BizDepartmentMapper;
|
||||
import com.ruoyi.business.service.IBizDepartmentService;
|
||||
|
||||
@Service
|
||||
public class BizDepartmentServiceImpl implements IBizDepartmentService
|
||||
{
|
||||
@Autowired
|
||||
private BizDepartmentMapper bizDepartmentMapper;
|
||||
|
||||
@Override
|
||||
public BizDepartment getById(Long deptId)
|
||||
{ return bizDepartmentMapper.selectByPrimaryKey(deptId); }
|
||||
|
||||
@Override
|
||||
public List<BizDepartment> selectList(BizDepartment entity)
|
||||
{ return bizDepartmentMapper.selectList(entity); }
|
||||
|
||||
@Override
|
||||
public List<BizDepartment> selectActive()
|
||||
{ return bizDepartmentMapper.selectActive(); }
|
||||
|
||||
@Override
|
||||
public int insert(BizDepartment entity)
|
||||
{ return bizDepartmentMapper.insert(entity); }
|
||||
|
||||
@Override
|
||||
public int updateByPrimaryKey(BizDepartment entity)
|
||||
{ return bizDepartmentMapper.updateByPrimaryKey(entity); }
|
||||
|
||||
@Override
|
||||
public int deleteByPrimaryKey(Long deptId)
|
||||
{ return bizDepartmentMapper.deleteByPrimaryKey(deptId); }
|
||||
|
||||
@Override
|
||||
public int deleteByPrimaryKeys(Long[] deptIds)
|
||||
{ return bizDepartmentMapper.deleteByPrimaryKeys(deptIds); }
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
package com.ruoyi.business.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.business.domain.BizDoctorTitle;
|
||||
import com.ruoyi.business.mapper.BizDoctorTitleMapper;
|
||||
import com.ruoyi.business.service.IBizDoctorTitleService;
|
||||
|
||||
@Service
|
||||
public class BizDoctorTitleServiceImpl implements IBizDoctorTitleService
|
||||
{
|
||||
@Autowired
|
||||
private BizDoctorTitleMapper bizDoctorTitleMapper;
|
||||
|
||||
@Override
|
||||
public BizDoctorTitle getById(Long titleId)
|
||||
{ return bizDoctorTitleMapper.selectByPrimaryKey(titleId); }
|
||||
|
||||
@Override
|
||||
public List<BizDoctorTitle> selectList(BizDoctorTitle entity)
|
||||
{ return bizDoctorTitleMapper.selectList(entity); }
|
||||
|
||||
@Override
|
||||
public List<BizDoctorTitle> selectActive()
|
||||
{ return bizDoctorTitleMapper.selectActive(); }
|
||||
|
||||
@Override
|
||||
public int insert(BizDoctorTitle entity)
|
||||
{ return bizDoctorTitleMapper.insert(entity); }
|
||||
|
||||
@Override
|
||||
public int updateByPrimaryKey(BizDoctorTitle entity)
|
||||
{ return bizDoctorTitleMapper.updateByPrimaryKey(entity); }
|
||||
|
||||
@Override
|
||||
public int deleteByPrimaryKey(Long titleId)
|
||||
{ return bizDoctorTitleMapper.deleteByPrimaryKey(titleId); }
|
||||
|
||||
@Override
|
||||
public int deleteByPrimaryKeys(Long[] titleIds)
|
||||
{ return bizDoctorTitleMapper.deleteByPrimaryKeys(titleIds); }
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.ruoyi.business.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.business.domain.BizExecutionIntent;
|
||||
import com.ruoyi.business.mapper.BizExecutionIntentMapper;
|
||||
import com.ruoyi.business.service.IBizExecutionIntentService;
|
||||
|
||||
@Service
|
||||
public class BizExecutionIntentServiceImpl implements IBizExecutionIntentService
|
||||
{
|
||||
@Autowired
|
||||
private BizExecutionIntentMapper bizExecutionIntentMapper;
|
||||
|
||||
@Override
|
||||
public BizExecutionIntent getById(String intentId)
|
||||
{ return bizExecutionIntentMapper.selectByPrimaryKey(intentId); }
|
||||
@Override
|
||||
public List<BizExecutionIntent> selectList(BizExecutionIntent entity)
|
||||
{ return bizExecutionIntentMapper.selectList(entity); }
|
||||
@Override
|
||||
public int insert(BizExecutionIntent entity) { com.ruoyi.common.utils.id.SnowflakeId.injectIfEmpty(entity, "intentId"); return bizExecutionIntentMapper.insert(entity); }
|
||||
@Override
|
||||
public int updateByPrimaryKey(BizExecutionIntent entity)
|
||||
{ return bizExecutionIntentMapper.updateByPrimaryKey(entity); }
|
||||
@Override
|
||||
public int deleteByPrimaryKey(String intentId)
|
||||
{ return bizExecutionIntentMapper.deleteByPrimaryKey(intentId); }
|
||||
@Override
|
||||
public int deleteByPrimaryKeys(String[] intentId)
|
||||
{ return bizExecutionIntentMapper.deleteByPrimaryKeys(intentId); }
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package com.ruoyi.business.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.business.domain.BizExpert;
|
||||
import com.ruoyi.business.mapper.BizExpertMapper;
|
||||
import com.ruoyi.business.service.IBizExpertService;
|
||||
|
||||
@Service
|
||||
public class BizExpertServiceImpl implements IBizExpertService
|
||||
{
|
||||
@Autowired
|
||||
private BizExpertMapper bizExpertMapper;
|
||||
|
||||
@Override
|
||||
public BizExpert getById(String expertId)
|
||||
{ return bizExpertMapper.selectByPrimaryKey(expertId); }
|
||||
@Override
|
||||
public BizExpert getByUserId(Long userId)
|
||||
{ return bizExpertMapper.selectByUserId(userId); }
|
||||
@Override
|
||||
public List<BizExpert> selectList(BizExpert entity)
|
||||
{ return bizExpertMapper.selectList(entity); }
|
||||
@Override
|
||||
public int insert(BizExpert entity) { com.ruoyi.common.utils.id.SnowflakeId.injectIfEmpty(entity, "expertId"); return bizExpertMapper.insert(entity); }
|
||||
@Override
|
||||
public int updateByPrimaryKey(BizExpert entity)
|
||||
{ return bizExpertMapper.updateByPrimaryKey(entity); }
|
||||
@Override
|
||||
public int updateProfileByUserId(BizExpert entity)
|
||||
{
|
||||
BizExpert existed = bizExpertMapper.selectByUserId(entity.getUserId());
|
||||
if (existed == null) {
|
||||
return bizExpertMapper.insertWithUserId(entity);
|
||||
}
|
||||
return bizExpertMapper.updateByUserId(entity);
|
||||
}
|
||||
@Override
|
||||
public int deleteByPrimaryKey(String expertId)
|
||||
{ return bizExpertMapper.deleteByPrimaryKey(expertId); }
|
||||
@Override
|
||||
public int deleteByPrimaryKeys(String[] expertId)
|
||||
{ return bizExpertMapper.deleteByPrimaryKeys(expertId); }
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.ruoyi.business.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.business.domain.BizInvitation;
|
||||
import com.ruoyi.business.mapper.BizInvitationMapper;
|
||||
import com.ruoyi.business.service.IBizInvitationService;
|
||||
|
||||
@Service
|
||||
public class BizInvitationServiceImpl implements IBizInvitationService
|
||||
{
|
||||
@Autowired
|
||||
private BizInvitationMapper bizInvitationMapper;
|
||||
|
||||
@Override
|
||||
public BizInvitation getById(String invitationId)
|
||||
{ return bizInvitationMapper.selectByPrimaryKey(invitationId); }
|
||||
@Override
|
||||
public List<BizInvitation> selectList(BizInvitation entity)
|
||||
{ return bizInvitationMapper.selectList(entity); }
|
||||
@Override
|
||||
public int insert(BizInvitation entity) { com.ruoyi.common.utils.id.SnowflakeId.injectIfEmpty(entity, "annId"); return bizInvitationMapper.insert(entity); }
|
||||
@Override
|
||||
public int updateByPrimaryKey(BizInvitation entity)
|
||||
{ return bizInvitationMapper.updateByPrimaryKey(entity); }
|
||||
@Override
|
||||
public int deleteByPrimaryKey(String invitationId)
|
||||
{ return bizInvitationMapper.deleteByPrimaryKey(invitationId); }
|
||||
@Override
|
||||
public int deleteByPrimaryKeys(String[] invitationId)
|
||||
{ return bizInvitationMapper.deleteByPrimaryKeys(invitationId); }
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.ruoyi.business.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.business.domain.BizLaborVoucher;
|
||||
import com.ruoyi.business.mapper.BizLaborVoucherMapper;
|
||||
import com.ruoyi.business.service.IBizLaborVoucherService;
|
||||
|
||||
@Service
|
||||
public class BizLaborVoucherServiceImpl implements IBizLaborVoucherService
|
||||
{
|
||||
@Autowired
|
||||
private BizLaborVoucherMapper bizLaborVoucherMapper;
|
||||
|
||||
@Override
|
||||
public BizLaborVoucher getById(String voucherId)
|
||||
{ return bizLaborVoucherMapper.selectByPrimaryKey(voucherId); }
|
||||
@Override
|
||||
public List<BizLaborVoucher> selectList(BizLaborVoucher entity)
|
||||
{ return bizLaborVoucherMapper.selectList(entity); }
|
||||
@Override
|
||||
public int insert(BizLaborVoucher entity) { com.ruoyi.common.utils.id.SnowflakeId.injectIfEmpty(entity, "voucherId"); return bizLaborVoucherMapper.insert(entity); }
|
||||
@Override
|
||||
public int updateByPrimaryKey(BizLaborVoucher entity)
|
||||
{ return bizLaborVoucherMapper.updateByPrimaryKey(entity); }
|
||||
@Override
|
||||
public int deleteByPrimaryKey(String voucherId)
|
||||
{ return bizLaborVoucherMapper.deleteByPrimaryKey(voucherId); }
|
||||
@Override
|
||||
public int deleteByPrimaryKeys(String[] voucherId)
|
||||
{ return bizLaborVoucherMapper.deleteByPrimaryKeys(voucherId); }
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.ruoyi.business.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.business.domain.BizMeeting;
|
||||
import com.ruoyi.business.mapper.BizMeetingMapper;
|
||||
import com.ruoyi.business.service.IBizMeetingService;
|
||||
|
||||
@Service
|
||||
public class BizMeetingServiceImpl implements IBizMeetingService
|
||||
{
|
||||
@Autowired
|
||||
private BizMeetingMapper bizMeetingMapper;
|
||||
|
||||
@Override
|
||||
public BizMeeting getById(String meetingId)
|
||||
{ return bizMeetingMapper.selectByPrimaryKey(meetingId); }
|
||||
@Override
|
||||
public List<BizMeeting> selectList(BizMeeting entity)
|
||||
{ return bizMeetingMapper.selectList(entity); }
|
||||
@Override
|
||||
public int insert(BizMeeting entity) { com.ruoyi.common.utils.id.SnowflakeId.injectIfEmpty(entity, "meetingId"); return bizMeetingMapper.insert(entity); }
|
||||
@Override
|
||||
public int updateByPrimaryKey(BizMeeting entity)
|
||||
{ return bizMeetingMapper.updateByPrimaryKey(entity); }
|
||||
@Override
|
||||
public int deleteByPrimaryKey(String meetingId)
|
||||
{ return bizMeetingMapper.deleteByPrimaryKey(meetingId); }
|
||||
@Override
|
||||
public int deleteByPrimaryKeys(String[] meetingId)
|
||||
{ return bizMeetingMapper.deleteByPrimaryKeys(meetingId); }
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user