liusheng
2025-12-28 73f5b82df781d2b061ba24d29182f6898b5535d9
代码提交
已修改25个文件
已添加32个文件
3215 ■■■■■ 文件已修改
ruoyi-admin/pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceAttendancerecordsController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoReportController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoReportFileController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatemaintenanceController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMeetingController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMeetingParticipantController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTrainingRecordsController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTransportController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTransportFileController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/VUserOrgController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-srm.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/generator.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseOrganization.java 169 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceAttendancerecords.java 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfoReport.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewinitiate.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMeeting.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMeetingParticipant.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceTrainingRecords.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/VUserOrg.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceAttendancerecordsMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatemaintenanceMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMeetingMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMeetingParticipantMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTrainingRecordsMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/VUserOrgMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceAttendancerecordsService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoReportService.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatemaintenanceService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMeetingParticipantService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMeetingService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceTrainingRecordsService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IVUserOrgService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseOrganizationServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceAttendancerecordsServiceImpl.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoReportServiceImpl.java 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatemaintenanceServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewinitiateServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMeetingParticipantServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMeetingServiceImpl.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTrainingRecordsServiceImpl.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTransportServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/VUserOrgServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/BaseOrganizationMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoReportMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/VUserOrgMapper.xml 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/pom.xml
@@ -10,7 +10,7 @@
    <modelVersion>4.0.0</modelVersion>
    <!--    <packaging>war</packaging>-->
        <packaging>jar</packaging>
    <artifactId>smartor-opo</artifactId>
    <artifactId>smartor-opo-qd</artifactId>
    <description>
        web服务入口
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceAttendancerecordsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,110 @@
package com.ruoyi.web.controller.project;
import java.util.Arrays;
import java.util.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.project.domain.ServiceAttendancerecords;
import com.ruoyi.project.service.IServiceAttendancerecordsService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
 * è€ƒå‹¤è®°å½•Controller
 *
 * @author ls
 * @date 2025-12-28
 */
@Api(description = "考勤记录")
@RestController
@RequestMapping("/project/attendancerecords")
public class ServiceAttendancerecordsController extends BaseController {
    @Autowired
    private IServiceAttendancerecordsService serviceAttendancerecordsService;
    /**
     * æŸ¥è¯¢è€ƒå‹¤è®°å½•列表
     */
    @ApiOperation("查询考勤记录列表")
    // @PreAuthorize("@ss.hasPermi('project:attendancerecords:list')")
    @PostMapping("/list")
    public TableDataInfo list(ServiceAttendancerecords serviceAttendancerecords) {
        startPage();
        List<ServiceAttendancerecords> list = serviceAttendancerecordsService.queryList(serviceAttendancerecords);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºè€ƒå‹¤è®°å½•列表
     */
    @ApiOperation("导出考勤记录列表")
    // @PreAuthorize("@ss.hasPermi('project:attendancerecords:export')")
    @Log(title = "考勤记录", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceAttendancerecords serviceAttendancerecords) {
        List<ServiceAttendancerecords> list = serviceAttendancerecordsService.queryList(serviceAttendancerecords);
        ExcelUtil<ServiceAttendancerecords> util = new ExcelUtil<ServiceAttendancerecords>(ServiceAttendancerecords.class);
        return util.exportExcel(list, "考勤记录数据");
    }
    /**
     * èŽ·å–è€ƒå‹¤è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取考勤记录详细信息")
    // @PreAuthorize("@ss.hasPermi('project:attendancerecords:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return AjaxResult.success(serviceAttendancerecordsService.getById(id));
    }
    /**
     * æ–°å¢žè€ƒå‹¤è®°å½•
     */
    @ApiOperation("新增考勤记录")
    // @PreAuthorize("@ss.hasPermi('project:attendancerecords:add')")
    @Log(title = "考勤记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody ServiceAttendancerecords serviceAttendancerecords) {
        return toAjax(serviceAttendancerecordsService.save(serviceAttendancerecords));
    }
    /**
     * ä¿®æ”¹è€ƒå‹¤è®°å½•
     */
    @ApiOperation("修改考勤记录")
    // @PreAuthorize("@ss.hasPermi('project:attendancerecords:edit')")
    @Log(title = "考勤记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @RepeatSubmit
    public AjaxResult edit(@RequestBody ServiceAttendancerecords serviceAttendancerecords) {
        return toAjax(serviceAttendancerecordsService.updateById(serviceAttendancerecords));
    }
    /**
     * åˆ é™¤è€ƒå‹¤è®°å½•
     */
    @ApiOperation("删除考勤记录")
    // @PreAuthorize("@ss.hasPermi('project:attendancerecords:remove')")
    @Log(title = "考勤记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(serviceAttendancerecordsService.removeByIds(Arrays.asList(ids)));
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoReportController.java
@@ -5,17 +5,25 @@
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.common.IdGeneratorUtils;
import com.ruoyi.project.domain.ServiceDonatebaseinfoReport;
import com.ruoyi.project.domain.ServiceDonatebaseinfoReportFile;
import com.ruoyi.project.domain.VUserOrg;
import com.ruoyi.project.service.IServiceDonatebaseinfoReportFileService;
import com.ruoyi.project.service.IServiceDonatebaseinfoReportService;
import com.ruoyi.project.service.IVUserOrgService;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.service.ISysConfigService;
import com.sun.org.apache.bcel.internal.generic.NEW;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -30,7 +38,7 @@
 */
@Api(description = "捐献上报基础")
@RestController
@RequestMapping("/system/donatebaseinforeport")
@RequestMapping("/project/donatebaseinforeport")
public class ServiceDonatebaseinfoReportController extends BaseController {
    @Autowired
    private IServiceDonatebaseinfoReportService serviceDonatebaseinfoReportService;
@@ -38,6 +46,8 @@
    private IServiceDonatebaseinfoReportFileService serviceDonatebaseinfoReportFileService;
    @Autowired
    private ISysConfigService sysConfigService;
    @Autowired
    private IVUserOrgService vUserOrgService;
    /**
     * æŸ¥è¯¢æçŒ®ä¸ŠæŠ¥åŸºç¡€åˆ—表
@@ -108,6 +118,18 @@
        //生成案例上报ID
        String caseNo = String.valueOf(IdGeneratorUtils.nextId());
        serviceDonatebaseinfoReport.setCaseNo(caseNo);
        //获取协调员信息
        LoginUser loginUser = SecurityUtils.getLoginUser();
        String userName = loginUser.getUser().getUserName();
        VUserOrg vUserOrg= new VUserOrg();
        vUserOrg.setUserName(userName);
        List<VUserOrg> vUserOrgs = vUserOrgService.queryList(vUserOrg);
        if(CollectionUtils.isNotEmpty(vUserOrgs)){
            serviceDonatebaseinfoReport.setCoordinatorNo(vUserOrgs.get(0).getCoordinatorNo());
            serviceDonatebaseinfoReport.setCoordinatorName(vUserOrgs.get(0).getCoordinatorName());
        }
        boolean save = serviceDonatebaseinfoReportService.save(serviceDonatebaseinfoReport);
        //将生成的文件地址存储到数据库中
        if (save)
@@ -123,10 +145,18 @@
    @PostMapping("/edit")
    @RepeatSubmit
    public AjaxResult edit(@RequestBody ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) {
        if (StringUtils.isEmpty(serviceDonatebaseinfoReport.getCaseNo())) {
            throw new BaseException("案例编号为空,请检查后再修改");
        }
        boolean b = serviceDonatebaseinfoReportService.updateById(serviceDonatebaseinfoReport);
        if (b) {
            serviceDonatebaseinfoReportFileService.updateList(serviceDonatebaseinfoReport.getAnnexfilesList(), serviceDonatebaseinfoReport.getId(), serviceDonatebaseinfoReport.getCaseNo(), getNickName());
            if (serviceDonatebaseinfoReport.getReportStatus().equals("3")) {
                //如果同意上报,那就可以建档了(往 ServiceDonatebaseinfo新增)
                serviceDonatebaseinfoReportService.createDocument(serviceDonatebaseinfoReport);
            }
        }
        return toAjax(b);
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoReportFileController.java
@@ -25,7 +25,7 @@
 */
@Api(description = "案例上报附件")
@RestController
@RequestMapping("/system/Donatebaseinfofile")
@RequestMapping("/project/Donatebaseinfofile")
public class ServiceDonatebaseinfoReportFileController extends BaseController {
    @Autowired
    private IServiceDonatebaseinfoReportFileService serviceDonatebaseinfoReportFileService;
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatemaintenanceController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
package com.ruoyi.web.controller.project;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
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.project.domain.ServiceDonatemaintenance;
import com.ruoyi.project.service.IServiceDonatemaintenanceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
/**
 * ä¾›ä½“维护记录Controller
 *
 * @author ruoyi
 * @date 2025-12-27
 */
@Api(description = "供体维护记录")
@RestController
@RequestMapping("/project/donatemaintenance")
public class ServiceDonatemaintenanceController extends BaseController {
    @Autowired
    private IServiceDonatemaintenanceService serviceDonatemaintenanceService;
    /**
     * æŸ¥è¯¢ä¾›ä½“维护记录列表
     */
    @ApiOperation("查询供体维护记录列表")
    // @PreAuthorize("@ss.hasPermi('system:donatemaintenance:list')")
    @PostMapping("/list")
    public TableDataInfo list(ServiceDonatemaintenance serviceDonatemaintenance) {
        startPage();
        List<ServiceDonatemaintenance> list = serviceDonatemaintenanceService.queryList(serviceDonatemaintenance);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºä¾›ä½“维护记录列表
     */
    @ApiOperation("导出供体维护记录列表")
    // @PreAuthorize("@ss.hasPermi('system:donatemaintenance:export')")
    @Log(title = "供体维护记录", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceDonatemaintenance serviceDonatemaintenance) {
        List<ServiceDonatemaintenance> list = serviceDonatemaintenanceService.queryList(serviceDonatemaintenance);
        ExcelUtil<ServiceDonatemaintenance> util = new ExcelUtil<ServiceDonatemaintenance>(ServiceDonatemaintenance.class);
        return util.exportExcel(list, "供体维护记录数据");
    }
    /**
     * èŽ·å–ä¾›ä½“ç»´æŠ¤è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取供体维护记录详细信息")
    // @PreAuthorize("@ss.hasPermi('system:donatemaintenance:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return AjaxResult.success(serviceDonatemaintenanceService.getById(id));
    }
    /**
     * æ–°å¢žä¾›ä½“维护记录
     */
    @ApiOperation("新增供体维护记录")
    // @PreAuthorize("@ss.hasPermi('system:donatemaintenance:add')")
    @Log(title = "供体维护记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody ServiceDonatemaintenance serviceDonatemaintenance) {
        return toAjax(serviceDonatemaintenanceService.save(serviceDonatemaintenance));
    }
    /**
     * ä¿®æ”¹ä¾›ä½“维护记录
     */
    @ApiOperation("修改供体维护记录")
    // @PreAuthorize("@ss.hasPermi('system:donatemaintenance:edit')")
    @Log(title = "供体维护记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @RepeatSubmit
    public AjaxResult edit(@RequestBody ServiceDonatemaintenance serviceDonatemaintenance) {
        return toAjax(serviceDonatemaintenanceService.updateById(serviceDonatemaintenance));
    }
    /**
     * åˆ é™¤ä¾›ä½“维护记录
     */
    @ApiOperation("删除供体维护记录")
    // @PreAuthorize("@ss.hasPermi('system:donatemaintenance:remove')")
    @Log(title = "供体维护记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{id}")
    public AjaxResult remove(@PathVariable Long id) {
        ServiceDonatemaintenance serviceDonatemaintenance = new ServiceDonatemaintenance();
        serviceDonatemaintenance.setId(id);
        serviceDonatemaintenance.setDelFlag(1);
        return toAjax(serviceDonatemaintenanceService.updateById(serviceDonatemaintenance));
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMeetingController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,116 @@
package com.ruoyi.web.controller.project;
import java.util.Arrays;
import java.util.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.project.domain.ServiceMeeting;
import com.ruoyi.project.service.IServiceMeetingService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
 * ä¼šè®®çºªè¦Controller
 *
 * @author ls
 * @date 2025-12-28
 */
@Api(description = "会议纪要")
@RestController
@RequestMapping("/project/meeting")
public class ServiceMeetingController extends BaseController
{
    @Autowired
    private IServiceMeetingService serviceMeetingService;
    /**
     * æŸ¥è¯¢ä¼šè®®çºªè¦åˆ—表
     */
    @ApiOperation("查询会议纪要列表")
    // @PreAuthorize("@ss.hasPermi('project:meeting:list')")
    @PostMapping("/list")
    public TableDataInfo list(ServiceMeeting serviceMeeting)
    {
        startPage();
        List<ServiceMeeting> list = serviceMeetingService.queryList(serviceMeeting);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºä¼šè®®çºªè¦åˆ—表
     */
    @ApiOperation("导出会议纪要列表")
    // @PreAuthorize("@ss.hasPermi('project:meeting:export')")
    @Log(title = "会议纪要", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceMeeting serviceMeeting)
    {
        List<ServiceMeeting> list = serviceMeetingService.queryList(serviceMeeting);
        ExcelUtil<ServiceMeeting> util = new ExcelUtil<ServiceMeeting>(ServiceMeeting.class);
        return util.exportExcel(list, "会议纪要数据");
    }
    /**
     * èŽ·å–ä¼šè®®çºªè¦è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取会议纪要详细信息")
    // @PreAuthorize("@ss.hasPermi('project:meeting:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Integer id)
    {
        return AjaxResult.success(serviceMeetingService.getById(id));
    }
    /**
     * æ–°å¢žä¼šè®®çºªè¦
     */
    @ApiOperation("新增会议纪要")
    // @PreAuthorize("@ss.hasPermi('project:meeting:add')")
    @Log(title = "会议纪要", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody ServiceMeeting serviceMeeting)
    {
        return toAjax(serviceMeetingService.save(serviceMeeting));
    }
    /**
     * ä¿®æ”¹ä¼šè®®çºªè¦
     */
    @ApiOperation("修改会议纪要")
    // @PreAuthorize("@ss.hasPermi('project:meeting:edit')")
    @Log(title = "会议纪要", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @RepeatSubmit
    public AjaxResult edit(@RequestBody ServiceMeeting serviceMeeting)
    {
        return toAjax(serviceMeetingService.updateById(serviceMeeting));
    }
    /**
     * åˆ é™¤ä¼šè®®çºªè¦
     */
    @ApiOperation("删除会议纪要")
    // @PreAuthorize("@ss.hasPermi('project:meeting:remove')")
    @Log(title = "会议纪要", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Integer[] ids)
    {
        return toAjax(serviceMeetingService.removeByIds(Arrays.asList(ids)));
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMeetingParticipantController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,116 @@
package com.ruoyi.web.controller.project;
import java.util.Arrays;
import java.util.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.project.domain.ServiceMeetingParticipant;
import com.ruoyi.project.service.IServiceMeetingParticipantService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
 * å‚会人员Controller
 *
 * @author ls
 * @date 2025-12-28
 */
@Api(description = "参会人员")
@RestController
@RequestMapping("/project/participant")
public class ServiceMeetingParticipantController extends BaseController
{
    @Autowired
    private IServiceMeetingParticipantService serviceMeetingParticipantService;
    /**
     * æŸ¥è¯¢å‚会人员列表
     */
    @ApiOperation("查询参会人员列表")
    // @PreAuthorize("@ss.hasPermi('project:participant:list')")
    @PostMapping("/list")
    public TableDataInfo list(ServiceMeetingParticipant serviceMeetingParticipant)
    {
        startPage();
        List<ServiceMeetingParticipant> list = serviceMeetingParticipantService.queryList(serviceMeetingParticipant);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºå‚会人员列表
     */
    @ApiOperation("导出参会人员列表")
    // @PreAuthorize("@ss.hasPermi('project:participant:export')")
    @Log(title = "参会人员", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceMeetingParticipant serviceMeetingParticipant)
    {
        List<ServiceMeetingParticipant> list = serviceMeetingParticipantService.queryList(serviceMeetingParticipant);
        ExcelUtil<ServiceMeetingParticipant> util = new ExcelUtil<ServiceMeetingParticipant>(ServiceMeetingParticipant.class);
        return util.exportExcel(list, "参会人员数据");
    }
    /**
     * èŽ·å–å‚ä¼šäººå‘˜è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取参会人员详细信息")
    // @PreAuthorize("@ss.hasPermi('project:participant:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Integer id)
    {
        return AjaxResult.success(serviceMeetingParticipantService.getById(id));
    }
    /**
     * æ–°å¢žå‚会人员
     */
    @ApiOperation("新增参会人员")
    // @PreAuthorize("@ss.hasPermi('project:participant:add')")
    @Log(title = "参会人员", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody ServiceMeetingParticipant serviceMeetingParticipant)
    {
        return toAjax(serviceMeetingParticipantService.save(serviceMeetingParticipant));
    }
    /**
     * ä¿®æ”¹å‚会人员
     */
    @ApiOperation("修改参会人员")
    // @PreAuthorize("@ss.hasPermi('project:participant:edit')")
    @Log(title = "参会人员", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @RepeatSubmit
    public AjaxResult edit(@RequestBody ServiceMeetingParticipant serviceMeetingParticipant)
    {
        return toAjax(serviceMeetingParticipantService.updateById(serviceMeetingParticipant));
    }
    /**
     * åˆ é™¤å‚会人员
     */
    @ApiOperation("删除参会人员")
    // @PreAuthorize("@ss.hasPermi('project:participant:remove')")
    @Log(title = "参会人员", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Integer[] ids)
    {
        return toAjax(serviceMeetingParticipantService.removeByIds(Arrays.asList(ids)));
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTrainingRecordsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,116 @@
package com.ruoyi.web.controller.project;
import java.util.Arrays;
import java.util.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.project.domain.ServiceTrainingRecords;
import com.ruoyi.project.service.IServiceTrainingRecordsService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
 * äººå‘˜è¿›ä¿®ç®¡ç†Controller
 *
 * @author ls
 * @date 2025-12-28
 */
@Api(description = "人员进修管理")
@RestController
@RequestMapping("/project/records")
public class ServiceTrainingRecordsController extends BaseController
{
    @Autowired
    private IServiceTrainingRecordsService serviceTrainingRecordsService;
    /**
     * æŸ¥è¯¢äººå‘˜è¿›ä¿®ç®¡ç†åˆ—表
     */
    @ApiOperation("查询人员进修管理列表")
    // @PreAuthorize("@ss.hasPermi('project:records:list')")
    @PostMapping("/list")
    public TableDataInfo list(ServiceTrainingRecords serviceTrainingRecords)
    {
        startPage();
        List<ServiceTrainingRecords> list = serviceTrainingRecordsService.queryList(serviceTrainingRecords);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºäººå‘˜è¿›ä¿®ç®¡ç†åˆ—表
     */
    @ApiOperation("导出人员进修管理列表")
    // @PreAuthorize("@ss.hasPermi('project:records:export')")
    @Log(title = "人员进修管理", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceTrainingRecords serviceTrainingRecords)
    {
        List<ServiceTrainingRecords> list = serviceTrainingRecordsService.queryList(serviceTrainingRecords);
        ExcelUtil<ServiceTrainingRecords> util = new ExcelUtil<ServiceTrainingRecords>(ServiceTrainingRecords.class);
        return util.exportExcel(list, "人员进修管理数据");
    }
    /**
     * èŽ·å–äººå‘˜è¿›ä¿®ç®¡ç†è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取人员进修管理详细信息")
    // @PreAuthorize("@ss.hasPermi('project:records:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return AjaxResult.success(serviceTrainingRecordsService.getById(id));
    }
    /**
     * æ–°å¢žäººå‘˜è¿›ä¿®ç®¡ç†
     */
    @ApiOperation("新增人员进修管理")
    // @PreAuthorize("@ss.hasPermi('project:records:add')")
    @Log(title = "人员进修管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody ServiceTrainingRecords serviceTrainingRecords)
    {
        return toAjax(serviceTrainingRecordsService.save(serviceTrainingRecords));
    }
    /**
     * ä¿®æ”¹äººå‘˜è¿›ä¿®ç®¡ç†
     */
    @ApiOperation("修改人员进修管理")
    // @PreAuthorize("@ss.hasPermi('project:records:edit')")
    @Log(title = "人员进修管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @RepeatSubmit
    public AjaxResult edit(@RequestBody ServiceTrainingRecords serviceTrainingRecords)
    {
        return toAjax(serviceTrainingRecordsService.updateById(serviceTrainingRecords));
    }
    /**
     * åˆ é™¤äººå‘˜è¿›ä¿®ç®¡ç†
     */
    @ApiOperation("删除人员进修管理")
    // @PreAuthorize("@ss.hasPermi('project:records:remove')")
    @Log(title = "人员进修管理", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(serviceTrainingRecordsService.removeByIds(Arrays.asList(ids)));
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTransportController.java
@@ -28,7 +28,7 @@
 */
@Api(description = "供者转运登记")
@RestController
@RequestMapping("/system/transport")
@RequestMapping("/project/transport")
public class ServiceTransportController extends BaseController {
    @Autowired
    private IServiceTransportService serviceTransportService;
@@ -118,8 +118,11 @@
    @ApiOperation("删除供者转运登记")
    // @PreAuthorize("@ss.hasPermi('system:transport:remove')")
    @Log(title = "供者转运登记", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(serviceTransportService.removeByIds(Arrays.asList(ids)));
    @GetMapping("/remove/{id}")
    public AjaxResult remove(@PathVariable Long id) {
        ServiceTransport serviceTransport = new ServiceTransport();
        serviceTransport.setId(id);
        serviceTransport.setDelFlag(1);
        return toAjax(serviceTransportService.updateById(serviceTransport));
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTransportFileController.java
@@ -26,7 +26,7 @@
 */
@Api(description = "供者转运登记附件")
@RestController
@RequestMapping("/system/transportfile")
@RequestMapping("/project/transportfile")
public class ServiceTransportFileController extends BaseController {
    @Autowired
    private IServiceTransportFileService serviceTransportFileService;
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/VUserOrgController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,103 @@
package com.ruoyi.web.controller.project;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
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.project.domain.VUserOrg;
import com.ruoyi.project.service.IVUserOrgService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
/**
 * VIEWController
 *
 * @author ruoyi
 * @date 2025-12-27
 */
@Api(description = "VIEW")
@RestController
@RequestMapping("/project/org")
public class VUserOrgController extends BaseController {
    @Autowired
    private IVUserOrgService vUserOrgService;
    /**
     * æŸ¥è¯¢VIEW列表
     */
    @ApiOperation("查询VIEW列表")
    // @PreAuthorize("@ss.hasPermi('system:org:list')")
    @PostMapping("/list")
    public TableDataInfo list(VUserOrg vUserOrg) {
        startPage();
        List<VUserOrg> list = vUserOrgService.queryList(vUserOrg);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºVIEW列表
     */
    @ApiOperation("导出VIEW列表")
    // @PreAuthorize("@ss.hasPermi('system:org:export')")
    @Log(title = "VIEW", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(VUserOrg vUserOrg) {
        List<VUserOrg> list = vUserOrgService.queryList(vUserOrg);
        ExcelUtil<VUserOrg> util = new ExcelUtil<VUserOrg>(VUserOrg.class);
        return util.exportExcel(list, "VIEW数据");
    }
    /**
     * èŽ·å–VIEW详细信息
     */
    @ApiOperation("获取VIEW详细信息")
    // @PreAuthorize("@ss.hasPermi('system:org:query')")
    @GetMapping(value = "/getInfo/{userId}")
    public AjaxResult getInfo(@PathVariable("userId") Long userId) {
        return AjaxResult.success(vUserOrgService.getById(userId));
    }
    /**
     * æ–°å¢žVIEW
     */
    @ApiOperation("新增VIEW")
    // @PreAuthorize("@ss.hasPermi('system:org:add')")
    @Log(title = "VIEW", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody VUserOrg vUserOrg) {
        return toAjax(vUserOrgService.save(vUserOrg));
    }
    /**
     * ä¿®æ”¹VIEW
     */
    @ApiOperation("修改VIEW")
    // @PreAuthorize("@ss.hasPermi('system:org:edit')")
    @Log(title = "VIEW", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @RepeatSubmit
    public AjaxResult edit(@RequestBody VUserOrg vUserOrg) {
        return toAjax(vUserOrgService.updateById(vUserOrg));
    }
    /**
     * åˆ é™¤VIEW
     */
    @ApiOperation("删除VIEW")
    // @PreAuthorize("@ss.hasPermi('system:org:remove')")
    @Log(title = "VIEW", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{userIds}")
    public AjaxResult remove(@PathVariable Long[] userIds) {
        return toAjax(vUserOrgService.removeByIds(Arrays.asList(userIds)));
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -15,12 +15,16 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.web.service.SysLoginService;
import com.ruoyi.framework.web.service.SysPermissionService;
import com.ruoyi.project.domain.BaseOrganization;
import com.ruoyi.project.mapper.BaseOrganizationMapper;
import com.ruoyi.project.service.DingTalkService;
import com.ruoyi.project.service.IBaseOrganizationService;
import com.ruoyi.system.service.ISysMenuService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -50,6 +54,9 @@
    @Autowired
    private DingTalkService dingTalkService;
    @Autowired
    private IBaseOrganizationService baseOrganizationService;
    /**
@@ -133,6 +140,15 @@
        // æƒé™é›†åˆ
        Set<String> permissions = permissionService.getMenuPermission(user);
        //获取协调员
        BaseOrganization baseOrganization = new BaseOrganization();
        baseOrganization.setReporterNo(user.getUserName());
        baseOrganization.setDelFlag(0);
        List<BaseOrganization> baseOrganizations = baseOrganizationService.queryList(baseOrganization);
        if (CollectionUtils.isNotEmpty(baseOrganizations) && baseOrganizations.size() > 0) {
            user.setCoordinatorName(baseOrganizations.get(0).getCoordinatorName());
            user.setCoordinatorNo(baseOrganizations.get(0).getCoordinatorNo());
        }
        AjaxResult ajax = AjaxResult.success();
        ajax.put("user", user);
ruoyi-admin/src/main/resources/application-srm.yml
@@ -7,9 +7,9 @@
            # ä¸»åº“数据源
            master:
                # åŒ»é™¢çŽ¯å¢ƒ
                url: jdbc:mysql://129.88.242.37:3308/opo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                url: jdbc:mysql://127.0.0.1:3306/opo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: opo
                password: Smartor.2023
                password: Smartor.2025
            # ä»Žåº“数据源
            slave:
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -159,10 +159,36 @@
     */
    private String dingUserId;
    /**
     * åè°ƒå‘˜ç¼–号
     */
    private String coordinatorNo;
    /**
     * åè°ƒå‘˜å§“名
     */
    private String coordinatorName;
    public SysUser() {
    }
    public String getCoordinatorNo() {
        return coordinatorNo;
    }
    public void setCoordinatorNo(String coordinatorNo) {
        this.coordinatorNo = coordinatorNo;
    }
    public String getCoordinatorName() {
        return coordinatorName;
    }
    public void setCoordinatorName(String coordinatorName) {
        this.coordinatorName = coordinatorName;
    }
    public String getDingUserId() {
        return dingUserId;
    }
ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
@@ -10,6 +10,7 @@
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.velocity.Template;
@@ -38,12 +39,11 @@
/**
 * ä¸šåŠ¡ æœåŠ¡å±‚å®žçŽ°
 *
 *
 * @author ruoyi
 */
@Service
public class GenTableServiceImpl implements IGenTableService
{
public class GenTableServiceImpl implements IGenTableService {
    private static final Logger log = LoggerFactory.getLogger(GenTableServiceImpl.class);
    @Autowired
@@ -54,13 +54,12 @@
    /**
     * æŸ¥è¯¢ä¸šåŠ¡ä¿¡æ¯
     *
     *
     * @param id ä¸šåŠ¡ID
     * @return ä¸šåŠ¡ä¿¡æ¯
     */
    @Override
    public GenTable selectGenTableById(Long id)
    {
    public GenTable selectGenTableById(Long id) {
        GenTable genTable = genTableMapper.selectGenTableById(id);
        setTableFromOptions(genTable);
        return genTable;
@@ -68,68 +67,61 @@
    /**
     * æŸ¥è¯¢ä¸šåŠ¡åˆ—è¡¨
     *
     *
     * @param genTable ä¸šåŠ¡ä¿¡æ¯
     * @return ä¸šåŠ¡é›†åˆ
     */
    @Override
    public List<GenTable> selectGenTableList(GenTable genTable)
    {
    public List<GenTable> selectGenTableList(GenTable genTable) {
        return genTableMapper.selectGenTableList(genTable);
    }
    /**
     * æŸ¥è¯¢æ®åº“列表
     *
     *
     * @param genTable ä¸šåŠ¡ä¿¡æ¯
     * @return æ•°æ®åº“表集合
     */
    @Override
    public List<GenTable> selectDbTableList(GenTable genTable)
    {
    public List<GenTable> selectDbTableList(GenTable genTable) {
        return genTableMapper.selectDbTableList(genTable);
    }
    /**
     * æŸ¥è¯¢æ®åº“列表
     *
     *
     * @param tableNames è¡¨åç§°ç»„
     * @return æ•°æ®åº“表集合
     */
    @Override
    public List<GenTable> selectDbTableListByNames(String[] tableNames)
    {
    public List<GenTable> selectDbTableListByNames(String[] tableNames) {
        return genTableMapper.selectDbTableListByNames(tableNames);
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰è¡¨ä¿¡æ¯
     *
     *
     * @return è¡¨ä¿¡æ¯é›†åˆ
     */
    @Override
    public List<GenTable> selectGenTableAll()
    {
    public List<GenTable> selectGenTableAll() {
        return genTableMapper.selectGenTableAll();
    }
    /**
     * ä¿®æ”¹ä¸šåŠ¡
     *
     *
     * @param genTable ä¸šåŠ¡ä¿¡æ¯
     * @return ç»“æžœ
     */
    @Override
    @Transactional
    public void updateGenTable(GenTable genTable)
    {
    public void updateGenTable(GenTable genTable) {
        String options = JSON.toJSONString(genTable.getParams());
        genTable.setOptions(options);
        int row = genTableMapper.updateGenTable(genTable);
        if (row > 0)
        {
            for (GenTableColumn cenTableColumn : genTable.getColumns())
            {
        if (row > 0) {
            for (GenTableColumn cenTableColumn : genTable.getColumns()) {
                genTableColumnMapper.updateGenTableColumn(cenTableColumn);
            }
        }
@@ -137,62 +129,53 @@
    /**
     * åˆ é™¤ä¸šåŠ¡å¯¹è±¡
     *
     *
     * @param tableIds éœ€è¦åˆ é™¤çš„æ•°æ®ID
     * @return ç»“æžœ
     */
    @Override
    @Transactional
    public void deleteGenTableByIds(Long[] tableIds)
    {
    public void deleteGenTableByIds(Long[] tableIds) {
        genTableMapper.deleteGenTableByIds(tableIds);
        genTableColumnMapper.deleteGenTableColumnByIds(tableIds);
    }
    /**
     * å¯¼å…¥è¡¨ç»“æž„
     *
     *
     * @param tableList å¯¼å…¥è¡¨åˆ—表
     */
    @Override
    @Transactional
    public void importGenTable(List<GenTable> tableList)
    {
    public void importGenTable(List<GenTable> tableList) {
        String operName = SecurityUtils.getUsername();
        try
        {
            for (GenTable table : tableList)
            {
        try {
            for (GenTable table : tableList) {
                String tableName = table.getTableName();
                GenUtils.initTable(table, operName);
                int row = genTableMapper.insertGenTable(table);
                if (row > 0)
                {
                if (row > 0) {
                    // ä¿å­˜åˆ—信息
                    List<GenTableColumn> genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
                    for (GenTableColumn column : genTableColumns)
                    {
                    for (GenTableColumn column : genTableColumns) {
                        GenUtils.initColumnField(column, table);
                        genTableColumnMapper.insertGenTableColumn(column);
                    }
                }
            }
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            throw new ServiceException("导入失败:" + e.getMessage());
        }
    }
    /**
     * é¢„览代码
     *
     *
     * @param tableId è¡¨ç¼–号
     * @return é¢„览数据列表
     */
    @Override
    public Map<String, String> previewCode(Long tableId)
    {
    public Map<String, String> previewCode(Long tableId) {
        Map<String, String> dataMap = new LinkedHashMap<>();
        // æŸ¥è¯¢è¡¨ä¿¡æ¯
        GenTable table = genTableMapper.selectGenTableById(tableId);
@@ -206,8 +189,7 @@
        // èŽ·å–æ¨¡æ¿åˆ—è¡¨
        List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
        for (String template : templates)
        {
        for (String template : templates) {
            // æ¸²æŸ“模板
            StringWriter sw = new StringWriter();
            Template tpl = Velocity.getTemplate(template, Constants.UTF8);
@@ -219,13 +201,12 @@
    /**
     * ç”Ÿæˆä»£ç ï¼ˆä¸‹è½½æ–¹å¼ï¼‰
     *
     *
     * @param tableName è¡¨åç§°
     * @return æ•°æ®
     */
    @Override
    public byte[] downloadCode(String tableName)
    {
    public byte[] downloadCode(String tableName) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ZipOutputStream zip = new ZipOutputStream(outputStream);
        generatorCode(tableName, zip);
@@ -235,12 +216,11 @@
    /**
     * ç”Ÿæˆä»£ç ï¼ˆè‡ªå®šä¹‰è·¯å¾„)
     *
     *
     * @param tableName è¡¨åç§°
     */
    @Override
    public void generatorCode(String tableName)
    {
    public void generatorCode(String tableName) {
        // æŸ¥è¯¢è¡¨ä¿¡æ¯
        GenTable table = genTableMapper.selectGenTableByName(tableName);
        // è®¾ç½®ä¸»å­è¡¨ä¿¡æ¯
@@ -254,21 +234,16 @@
        // èŽ·å–æ¨¡æ¿åˆ—è¡¨
        List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
        for (String template : templates)
        {
            if (!StringUtils.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm"))
            {
        for (String template : templates) {
            if (!StringUtils.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm")) {
                // æ¸²æŸ“模板
                StringWriter sw = new StringWriter();
                Template tpl = Velocity.getTemplate(template, Constants.UTF8);
                tpl.merge(context, sw);
                try
                {
                try {
                    String path = getGenPath(table, template);
                    FileUtils.writeStringToFile(new File(path), sw.toString(), CharsetKit.UTF_8);
                }
                catch (IOException e)
                {
                } catch (IOException e) {
                    throw new ServiceException("渲染模板失败,表名:" + table.getTableName());
                }
            }
@@ -277,52 +252,46 @@
    /**
     * åŒæ­¥æ•°æ®åº“
     *
     *
     * @param tableName è¡¨åç§°
     */
    @Override
    @Transactional
    public void synchDb(String tableName)
    {
    public void synchDb(String tableName) {
        GenTable table = genTableMapper.selectGenTableByName(tableName);
        List<GenTableColumn> tableColumns = table.getColumns();
        List<String> tableColumnNames = tableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
        List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
        if (StringUtils.isEmpty(dbTableColumns))
        {
        if (StringUtils.isEmpty(dbTableColumns)) {
            throw new ServiceException("同步数据失败,原表结构不存在");
        }
        List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
        dbTableColumns.forEach(column -> {
            if (!tableColumnNames.contains(column.getColumnName()))
            {
            if (!tableColumnNames.contains(column.getColumnName())) {
                GenUtils.initColumnField(column, table);
                genTableColumnMapper.insertGenTableColumn(column);
            }
        });
        List<GenTableColumn> delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList());
        if (StringUtils.isNotEmpty(delColumns))
        {
        if (StringUtils.isNotEmpty(delColumns)) {
            genTableColumnMapper.deleteGenTableColumns(delColumns);
        }
    }
    /**
     * æ‰¹é‡ç”Ÿæˆä»£ç ï¼ˆä¸‹è½½æ–¹å¼ï¼‰
     *
     *
     * @param tableNames è¡¨æ•°ç»„
     * @return æ•°æ®
     */
    @Override
    public byte[] downloadCode(String[] tableNames)
    {
    public byte[] downloadCode(String[] tableNames) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ZipOutputStream zip = new ZipOutputStream(outputStream);
        for (String tableName : tableNames)
        {
        for (String tableName : tableNames) {
            generatorCode(tableName, zip);
        }
        IOUtils.closeQuietly(zip);
@@ -332,8 +301,7 @@
    /**
     * æŸ¥è¯¢è¡¨ä¿¡æ¯å¹¶ç”Ÿæˆä»£ç 
     */
    private void generatorCode(String tableName, ZipOutputStream zip)
    {
    private void generatorCode(String tableName, ZipOutputStream zip) {
        // æŸ¥è¯¢è¡¨ä¿¡æ¯
        GenTable table = genTableMapper.selectGenTableByName(tableName);
        // è®¾ç½®ä¸»å­è¡¨ä¿¡æ¯
@@ -347,23 +315,19 @@
        // èŽ·å–æ¨¡æ¿åˆ—è¡¨
        List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
        for (String template : templates)
        {
        for (String template : templates) {
            // æ¸²æŸ“模板
            StringWriter sw = new StringWriter();
            Template tpl = Velocity.getTemplate(template, Constants.UTF8);
            tpl.merge(context, sw);
            try
            {
            try {
                // æ·»åŠ åˆ°zip
                zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table)));
                IOUtils.write(sw.toString(), zip, Constants.UTF8);
                IOUtils.closeQuietly(sw);
                zip.flush();
                zip.flush();
                zip.closeEntry();
            }
            catch (IOException e)
            {
            } catch (IOException e) {
                log.error("渲染模板失败,表名:" + table.getTableName(), e);
            }
        }
@@ -371,36 +335,24 @@
    /**
     * ä¿®æ”¹ä¿å­˜å‚数校验
     *
     *
     * @param genTable ä¸šåŠ¡ä¿¡æ¯
     */
    @Override
    public void validateEdit(GenTable genTable)
    {
        if (GenConstants.TPL_TREE.equals(genTable.getTplCategory()))
        {
    public void validateEdit(GenTable genTable) {
        if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) {
            String options = JSON.toJSONString(genTable.getParams());
            JSONObject paramsObj = JSONObject.parseObject(options);
            if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE)))
            {
            if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_CODE))) {
                throw new ServiceException("树编码字段不能为空");
            }
            else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE)))
            {
            } else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_PARENT_CODE))) {
                throw new ServiceException("树父编码字段不能为空");
            }
            else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME)))
            {
            } else if (StringUtils.isEmpty(paramsObj.getString(GenConstants.TREE_NAME))) {
                throw new ServiceException("树名称字段不能为空");
            }
            else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory()))
            {
                if (StringUtils.isEmpty(genTable.getSubTableName()))
                {
            } else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) {
                if (StringUtils.isEmpty(genTable.getSubTableName())) {
                    throw new ServiceException("关联子表的表名不能为空");
                }
                else if (StringUtils.isEmpty(genTable.getSubTableFkName()))
                {
                } else if (StringUtils.isEmpty(genTable.getSubTableFkName())) {
                    throw new ServiceException("子表关联的外键名不能为空");
                }
            }
@@ -409,35 +361,27 @@
    /**
     * è®¾ç½®ä¸»é”®åˆ—信息
     *
     *
     * @param table ä¸šåŠ¡è¡¨ä¿¡æ¯
     */
    public void setPkColumn(GenTable table)
    {
        for (GenTableColumn column : table.getColumns())
        {
            if (column.isPk())
            {
    public void setPkColumn(GenTable table) {
        for (GenTableColumn column : table.getColumns()) {
            if (column.isPk()) {
                table.setPkColumn(column);
                break;
            }
        }
        if (StringUtils.isNull(table.getPkColumn()))
        {
        if (StringUtils.isNull(table.getPkColumn())) {
            table.setPkColumn(table.getColumns().get(0));
        }
        if (GenConstants.TPL_SUB.equals(table.getTplCategory()))
        {
            for (GenTableColumn column : table.getSubTable().getColumns())
            {
                if (column.isPk())
                {
        if (GenConstants.TPL_SUB.equals(table.getTplCategory())) {
            for (GenTableColumn column : table.getSubTable().getColumns()) {
                if (column.isPk()) {
                    table.getSubTable().setPkColumn(column);
                    break;
                }
            }
            if (StringUtils.isNull(table.getSubTable().getPkColumn()))
            {
            if (StringUtils.isNull(table.getSubTable().getPkColumn())) {
                table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0));
            }
        }
@@ -445,34 +389,30 @@
    /**
     * è®¾ç½®ä¸»å­è¡¨ä¿¡æ¯
     *
     *
     * @param table ä¸šåŠ¡è¡¨ä¿¡æ¯
     */
    public void setSubTable(GenTable table)
    {
    public void setSubTable(GenTable table) {
        String subTableName = table.getSubTableName();
        if (StringUtils.isNotEmpty(subTableName))
        {
        if (StringUtils.isNotEmpty(subTableName)) {
            table.setSubTable(genTableMapper.selectGenTableByName(subTableName));
        }
    }
    /**
     * è®¾ç½®ä»£ç ç”Ÿæˆå…¶ä»–选项值
     *
     *
     * @param genTable è®¾ç½®åŽçš„生成对象
     */
    public void setTableFromOptions(GenTable genTable)
    {
    public void setTableFromOptions(GenTable genTable) {
        JSONObject paramsObj = JSONObject.parseObject(genTable.getOptions());
        if (StringUtils.isNotNull(paramsObj))
        {
        if (StringUtils.isNotNull(paramsObj)) {
            String treeCode = paramsObj.getString(GenConstants.TREE_CODE);
            String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE);
            String treeName = paramsObj.getString(GenConstants.TREE_NAME);
            String parentMenuId = paramsObj.getString(GenConstants.PARENT_MENU_ID);
            String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME);
            genTable.setTreeCode(treeCode);
            genTable.setTreeParentCode(treeParentCode);
            genTable.setTreeName(treeName);
@@ -483,18 +423,16 @@
    /**
     * èŽ·å–ä»£ç ç”Ÿæˆåœ°å€
     *
     * @param table ä¸šåŠ¡è¡¨ä¿¡æ¯
     *
     * @param table    ä¸šåŠ¡è¡¨ä¿¡æ¯
     * @param template æ¨¡æ¿æ–‡ä»¶è·¯å¾„
     * @return ç”Ÿæˆåœ°å€
     */
    public static String getGenPath(GenTable table, String template)
    {
    public static String getGenPath(GenTable table, String template) {
        String genPath = table.getGenPath();
        if (StringUtils.equals(genPath, "/"))
        {
        if (StringUtils.equals(genPath, "/")) {
            return System.getProperty("user.dir") + File.separator + "src" + File.separator + VelocityUtils.getFileName(template, table);
        }
        return genPath + File.separator + VelocityUtils.getFileName(template, table);
    }
}
}
ruoyi-generator/src/main/resources/generator.yml
@@ -1,10 +1,10 @@
# ä»£ç ç”Ÿæˆ
gen:
gen:
  # ä½œè€…
  author: ruoyi
  author: ls
  # é»˜è®¤ç”ŸæˆåŒ…路径 system éœ€æ”¹æˆè‡ªå·±çš„æ¨¡å—名称 å¦‚ system monitor tool
  packageName: com.ruoyi.system
  packageName: com.ruoyi.project
  # è‡ªåŠ¨åŽ»é™¤è¡¨å‰ç¼€ï¼Œé»˜è®¤æ˜¯false
  autoRemovePre: false
  # è¡¨å‰ç¼€ï¼ˆç”Ÿæˆç±»åä¸ä¼šåŒ…含表前缀,多个用逗号分隔)
  tablePrefix: sys_
  tablePrefix: sys_
ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm
@@ -3,15 +3,15 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${packageName}.mapper.${ClassName}Mapper">
    <resultMap type="${ClassName}" id="${ClassName}Result">
    <resultMap type="${packageName}.domain.${ClassName}" id="${ClassName}Result">
#foreach ($column in $columns)
        <result property="${column.javaField}"    column="${column.columnName}"    />
#end
    </resultMap>
#if($table.sub)
    <resultMap id="${ClassName}${subClassName}Result" type="${ClassName}" extends="${ClassName}Result">
    <resultMap id="${ClassName}${subClassName}Result" type="${packageName}.domain.${ClassName}" extends="${ClassName}Result">
        <collection property="${subclassName}List" notNullColumn="sub_${subTable.pkColumn.columnName}" javaType="java.util.List" resultMap="${subClassName}Result" />
    </resultMap>
@@ -26,7 +26,7 @@
        select#foreach($column in $columns) $column.columnName#if($velocityCount != $columns.size()),#end#end from ${tableName}
    </sql>
    <select id="select${ClassName}List" parameterType="${ClassName}" resultMap="${ClassName}Result">
    <select id="select${ClassName}List" parameterType="${packageName}.domain.${ClassName}" resultMap="${ClassName}Result">
        <include refid="select${ClassName}Vo"/>
        <where>
#foreach($column in $columns)
@@ -58,4 +58,4 @@
        </where>
    </select>
</mapper>
</mapper>
ruoyi-project/src/main/java/com/ruoyi/project/domain/BaseOrganization.java
@@ -13,161 +13,244 @@
/**
 * æœºæž„管理对象 base_organization
 *
 *
 * @author ruoyi
 * @date 2021-11-05
 */
@Data
@ApiModel("机构")
public class BaseOrganization extends BaseEntity
{
public class BaseOrganization extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®è‡ªå¢ž */
    /**
     * ä¸»é”®è‡ªå¢ž
     */
    @ApiModelProperty("主键自增")
    //数据库自增改成@TableId(type = IdType.AUTO)
    @TableId(type = IdType.AUTO)
    private Long id;
    /** ç»„织名称 */
    /**
     * ç»„织名称
     */
    @ApiModelProperty("组织名称")
    @Excel(name = "组织名称")
    private String organizationname;
    /** ç»„织编号 */
    /**
     * ç»„织编号
     */
    @ApiModelProperty("组织编号")
    @Excel(name = "组织编号")
    private String organizationid;
    /** logo图片路径 */
    /**
     * logo图片路径
     */
    @ApiModelProperty("logo图片路径")
    @Excel(name = "logo图片路径")
    private String logourl;
    /** æ³¨å†Œæ—¶é—´ */
    /**
     * æ³¨å†Œæ—¶é—´
     */
    @ApiModelProperty("注册时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date registertime;
    /** æ³¨å†Œåœ°ç‚¹è¯¦ç»†åœ°å€ */
    /**
     * æ³¨å†Œåœ°ç‚¹è¯¦ç»†åœ°å€
     */
    @ApiModelProperty("注册地点详细地址")
    @Excel(name = "注册地点详细地址")
    private String registeraddress;
    /** åŠžå…¬åœ°ç‚¹ */
    /**
     * åŠžå…¬åœ°ç‚¹
     */
    @ApiModelProperty("办公地点")
    @Excel(name = "办公地点")
    private String officeplace;
    /** æ³•人 */
    /**
     * æ³•人
     */
    @ApiModelProperty("法人")
    @Excel(name = "法人")
    private String legalperson;
    /** è”系人 */
    /**
     * è”系人
     */
    @ApiModelProperty("联系人")
    @Excel(name = "联系人")
    private String contactperson;
    /** è”系电话 */
    /**
     * è”系电话
     */
    @ApiModelProperty("联系电话")
    @Excel(name = "联系电话")
    private String contactnumber;
    /** ä»‹ç» */
    /**
     * ä»‹ç»
     */
    @ApiModelProperty("介绍")
    @Excel(name = "介绍")
    private String introduction;
    /** æœºæž„类型 æ ¹æ®å­—å…¸OrganizationType项
1:OPO机构
2:红十字会
3:医疗机构
4:运输单位 */
    @ApiModelProperty("机构类型 æ ¹æ®å­—å…¸ sys_OrganizationType")
    /**
     * æœºæž„类型 æ ¹æ®å­—å…¸OrganizationType项
     * 1:OPO机构
     * 2:红十字会
     * 3:医疗机构
     * 4:运输单位
     */
    @ApiModelProperty("机构类型 æ ¹æ®å­—å…¸ sys_OrganizationType")
    @Excel(name = "机构类型 æ ¹æ®å­—å…¸OrganizationType项 1:OPO机构 2:红十字会 3:医疗机构 4:运输单位")
    private String organizationtype;
    /** åŒ»é™¢æ€§è´¨ æ ¹æ®å­—å…¸HospitalNature项
A1:综合性医院 ç­‰
OrganizationType=2医疗机构时需要选择 */
    /**
     * åŒ»é™¢æ€§è´¨ æ ¹æ®å­—å…¸HospitalNature项
     * A1:综合性医院 ç­‰
     * <p>
     * OrganizationType=2医疗机构时需要选择
     */
    @ApiModelProperty("医院性质 æ ¹æ®å­—å…¸sys_HospitalNature OrganizationType=2医疗机构时需要选择")
    @Excel(name = "医院性质 æ ¹æ®å­—å…¸HospitalNature项 A1:综合性医院 ç­‰ OrganizationType=2医疗机构时需要选择")
    private String hospitalnature;
    /** åœ°åŒºæ€§è´¨ æ ¹æ®å­—å…¸RegionalLevel项
0:省本级 ç­‰
OrganizationType=2医疗机构时需要选择 */
    @ApiModelProperty("地区性质 æ ¹æ®å­—å…¸sys_RegionalLevel  OrganizationType=2医疗机构时需要选择")
    /**
     * åœ°åŒºæ€§è´¨ æ ¹æ®å­—å…¸RegionalLevel项
     * 0:省本级 ç­‰
     * <p>
     * OrganizationType=2医疗机构时需要选择
     */
    @ApiModelProperty("地区性质 æ ¹æ®å­—å…¸sys_RegionalLevel  OrganizationType=2医疗机构时需要选择")
    @Excel(name = "地区性质 æ ¹æ®å­—å…¸RegionalLevel项 0:省本级 ç­‰ OrganizationType=2医疗机构时需要选择")
    private String regionallevel;
    /** åŒ»ç–—机构编号 å¦‚0:浙江省人民医院 1:杭州市第一人民医院
OrganizationType=2医疗机构时需要填写 */
    /**
     * åŒ»ç–—机构编号 å¦‚0:浙江省人民医院 1:杭州市第一人民医院
     * OrganizationType=2医疗机构时需要填写
     */
    @ApiModelProperty("医疗机构编号 å¦‚0:浙江省人民医院 1:杭州市第一人民医院OrganizationType=2医疗机构时需要填写")
    @Excel(name = "医疗机构编号 å¦‚0:浙江省人民医院 1:杭州市第一人民医院 OrganizationType=2医疗机构时需要填写")
    private String medicalcode;
    /** çœä»½ç¼–号 æ ¹æ®è¡Œæ”¿åŒºåˆ’表  æŒ‰æ³¨å†Œåœ°é€‰æ‹© */
    /**
     * çœä»½ç¼–号 æ ¹æ®è¡Œæ”¿åŒºåˆ’表  æŒ‰æ³¨å†Œåœ°é€‰æ‹©
     */
    @ApiModelProperty("省份编号 æ ¹æ®è¡Œæ”¿åŒºåˆ’表  æŒ‰æ³¨å†Œåœ°é€‰æ‹©")
    @Excel(name = "省份编号 æ ¹æ®è¡Œæ”¿åŒºåˆ’表  æŒ‰æ³¨å†Œåœ°é€‰æ‹©")
    private String province;
    /** çœä»½åç§° */
    /**
     * çœä»½åç§°
     */
    @ApiModelProperty("省份名称")
    @Excel(name = "省份名称")
    private String provincename;
    /** å¸‚编号  æ ¹æ®è¡Œæ”¿åŒºåˆ’表 */
    /**
     * å¸‚编号  æ ¹æ®è¡Œæ”¿åŒºåˆ’表
     */
    @ApiModelProperty("市编号  æ ¹æ®è¡Œæ”¿åŒºåˆ’表")
    @Excel(name = "市编号  æ ¹æ®è¡Œæ”¿åŒºåˆ’表")
    private String city;
    /** å¸‚名称 */
    /**
     * å¸‚名称
     */
    @ApiModelProperty("市名称")
    @Excel(name = "市名称")
    private String cityname;
    /** æ‰€å±žè¡—道(镇)根据行政区划表 */
    /**
     * æ‰€å±žè¡—道(镇)根据行政区划表
     */
    @ApiModelProperty("所属街道(镇)根据行政区划表")
    @Excel(name = "所属街道", readConverterExp = "镇=")
    private String town;
    /** æ‰€å±žè¡—道(镇)名称 */
    /**
     * æ‰€å±žè¡—道(镇)名称
     */
    @ApiModelProperty("所属街道(镇)名称")
    @Excel(name = "所属街道", readConverterExp = "镇=")
    private String townname;
    /** ç¤¾åŒºï¼ˆæ‘)编号 æ ¹æ®è¡Œæ”¿åŒºåˆ’表 */
    /**
     * ç¤¾åŒºï¼ˆæ‘)编号 æ ¹æ®è¡Œæ”¿åŒºåˆ’表
     */
    @ApiModelProperty("社区(村)编号 æ ¹æ®è¡Œæ”¿åŒºåˆ’表")
    @Excel(name = "社区", readConverterExp = "村=")
    private String community;
    /** ç¤¾åŒºï¼ˆæ‘)名称 */
    /**
     * ç¤¾åŒºï¼ˆæ‘)名称
     */
    @ApiModelProperty("社区(村)名称")
    @Excel(name = "社区", readConverterExp = "村=")
    private String communityname;
    /** æ‰€å±žåŒºåŸŸç¼–号  æ ¹æ®è¡Œæ”¿åŒºåˆ’表 */
    /**
     * æ‰€å±žåŒºåŸŸç¼–号  æ ¹æ®è¡Œæ”¿åŒºåˆ’表
     */
    @ApiModelProperty("所属区域编号  æ ¹æ®è¡Œæ”¿åŒºåˆ’表")
    @Excel(name = "所属区域编号  æ ¹æ®è¡Œæ”¿åŒºåˆ’表")
    private String countycode;
    /** æ‰€å±žåŒºåŸŸåç§° */
    /**
     * æ‰€å±žåŒºåŸŸåç§°
     */
    @ApiModelProperty("所属区域名称")
    @Excel(name = "所属区域名称")
    private String countyname;
    /** æ‰€å±žåŒºåŸŸåç§° */
    /**
     * æ‰€å±žåŒºåŸŸåç§°
     */
    @ApiModelProperty("银行名称")
    @Excel(name = "银行名称")
    private String bankname;
    /** æ‰€å±žåŒºåŸŸåç§° */
    /**
     * æ‰€å±žåŒºåŸŸåç§°
     */
    @ApiModelProperty("银行账号")
    @Excel(name = "银行账号")
    private String bankaccount;
    /**
     * ä¸ŠæŠ¥äººå‘˜ç¼–号
     */
    @ApiModelProperty("上报人员编号")
    @Excel(name = "上报人员编号")
    private String reporterNo;
    /**
     * ä¸ŠæŠ¥äººå‘˜å§“名
     */
    @ApiModelProperty("上报人员姓名")
    @Excel(name = "上报人员姓名")
    private String reporterName;
    /**
     * åè°ƒå‘˜ç¼–号
     */
    @ApiModelProperty("协调员编号")
    @Excel(name = "协调员编号")
    private String coordinatorNo;
    /**
     * åè°ƒå‘˜å§“名
     */
    @ApiModelProperty("协调员姓名")
    @Excel(name = "协调员姓名")
    private String coordinatorName;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceAttendancerecords.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,156 @@
package com.ruoyi.project.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * è€ƒå‹¤è®°å½•对象 service_attendancerecords
 *
 * @author ls
 * @date 2025-12-28
 */
@Data
@ApiModel("考勤记录")
public class ServiceAttendancerecords extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * è€ƒå‹¤è®°å½•ID
     */
    @ApiModelProperty("考勤记录ID")
    //数据库自增改成@TableId(type = IdType.AUTO)
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * äººå‘˜ç¼–号
     */
    @ApiModelProperty("人员编号")
    @Excel(name = "人员编号")
    private String userNo;
    /**
     * äººå‘˜å§“名
     */
    @ApiModelProperty("人员姓名")
    @Excel(name = "人员姓名")
    private String userName;
    /**
     * äººå‘˜éƒ¨é—¨ç¼–号
     */
    @ApiModelProperty("人员部门编号")
    @Excel(name = "人员部门编号")
    private String deptNo;
    /**
     * äººå‘˜éƒ¨é—¨åç§°
     */
    @ApiModelProperty("人员部门名称")
    @Excel(name = "人员部门名称")
    private String deptName;
    /**
     * è€ƒå‹¤æ—¥æœŸ
     */
    @ApiModelProperty("考勤日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "考勤日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date attendanceDate;
    /**
     * ä¸Šç­æ‰“卡时间
     */
    @ApiModelProperty("上班打卡时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "上班打卡时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date clockInTime;
    /**
     * ä¸‹ç­æ‰“卡时间
     */
    @ApiModelProperty("下班打卡时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下班打卡时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date clockOutTime;
    /**
     * è€ƒå‹¤çŠ¶æ€
     */
    @ApiModelProperty("考勤状态")
    @Excel(name = "考勤状态")
    private String attendanceStatus;
    /**
     * å®žé™…工作时长(分钟)
     */
    @ApiModelProperty("实际工作时长(分钟)")
    @Excel(name = "实际工作时长", readConverterExp = "分=钟")
    private Long workHoursMinutes;
    /**
     * åŠ ç­æ—¶é•¿ï¼ˆåˆ†é’Ÿï¼‰
     */
    @ApiModelProperty("加班时长(分钟)")
    @Excel(name = "加班时长", readConverterExp = "分=钟")
    private Long overtimeMinutes;
    /**
     * åŠ ç­/外出原因
     */
    @ApiModelProperty("加班/外出原因")
    @Excel(name = "加班/外出原因")
    private String reason;
    /**
     * è€ƒå‹¤å¼‚常原因
     */
    @ApiModelProperty("考勤异常原因")
    @Excel(name = "考勤异常原因")
    private String abnormalReason;
    /**
     * ä¸Šç­æ‰“卡方式
     */
    @ApiModelProperty("上班打卡方式")
    @Excel(name = "上班打卡方式")
    private String clockInMethod;
    /**
     * ä¸‹ç­æ‰“卡方式
     */
    @ApiModelProperty("下班打卡方式")
    @Excel(name = "下班打卡方式")
    private String clockOutMethod;
    /**
     * ä¸Šç­æ‰“卡地点
     */
    @ApiModelProperty("上班打卡地点")
    @Excel(name = "上班打卡地点")
    private String clockInLocation;
    /**
     * ä¸‹ç­æ‰“卡地点
     */
    @ApiModelProperty("下班打卡地点")
    @Excel(name = "下班打卡地点")
    private String clockOutLocation;
    /**
     * æ•°æ®æ¥æº
     */
    @ApiModelProperty("数据来源")
    @Excel(name = "数据来源")
    private String dataSource;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java
@@ -74,14 +74,14 @@
    /**
     * å¹´é¾„
     */
    @TableField(exist = false)
//    @TableField(exist = false)
    @ApiModelProperty("年龄")
    private Long age;
    /**
     * å¹´é¾„单位
     */
    @TableField(exist = false)
//    @TableField(exist = false)
    @ApiModelProperty("年龄单位")
    private String ageunit;
    /**
@@ -501,7 +501,13 @@
     * ä¿¡æ¯å‘˜å§“名
     */
    @ApiModelProperty("信息员姓名")
    private String infoname;
    private String infoName;
    /**
     * ä¿¡æ¯å‘˜å§“名
     */
    @ApiModelProperty("信息员编号")
    private String infoNo;
    /**
     * ä¿¡æ¯å‘˜è”系方式
@@ -585,5 +591,26 @@
    @ApiModelProperty("首次医疗机构科室")
    private String firstDept;
    /**
     * GSC评分
     */
    @ApiModelProperty("GSC评分")
    @Excel(name = "GSC评分", readConverterExp = "GSC评分")
    private String gcsScore;
    /**
     * åè°ƒå‘˜ç¼–号
     */
    @ApiModelProperty("协调员编号")
    @Excel(name = "协调员编号", readConverterExp = "协调员编号")
    private String coordinatorNo;
    /**
     * åè°ƒå‘˜å§“名
     */
    @ApiModelProperty("协调员姓名")
    @Excel(name = "协调员姓名", readConverterExp = "协调员姓名")
    private String coordinatorName;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfoReport.java
@@ -86,8 +86,8 @@
     * å‡ºç”Ÿæ—¥æœŸ
     */
    @ApiModelProperty("出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;
    /**
@@ -291,14 +291,14 @@
     */
    @ApiModelProperty("报告者编号")
    @Excel(name = "报告者编号")
    private String reporterno;
    private String infoNo;
    /**
     * æŠ¥å‘Šè€…姓名
     */
    @ApiModelProperty("报告者姓名")
    @Excel(name = "报告者姓名")
    private String reportername;
    private String infoName;
    /**
     * æŠ¥å‘Šè€…联系电话
@@ -323,20 +323,6 @@
    private Integer terminationCase;
    /**
     * è”系人(协调员编号)
     */
    @ApiModelProperty("联系人(协调员)")
    @Excel(name = "联系人(协调员编号)", readConverterExp = "协=调员")
    private String userNo;
    /**
     * è”系人(协调员姓名)
     */
    @ApiModelProperty("联系人(协调员)")
    @Excel(name = "联系人(协调员姓名)", readConverterExp = "协=调员")
    private String userName;
    /**
     * è”系人(协调员姓名)
     */
    @ApiModelProperty("部门编号")
@@ -355,7 +341,21 @@
     */
    @ApiModelProperty("GSC评分")
    @Excel(name = "GSC评分", readConverterExp = "GSC评分")
    private String gscScore;
    private String gcsScore;
    /**
     * è¡€åž‹ æ ¹æ®å­—å…¸sys_BloodType
     */
    @ApiModelProperty("血型 æ ¹æ®å­—å…¸sys_BloodType")
    @Excel(name = "血型 æ ¹æ®å­—å…¸sys_BloodType", readConverterExp = "血型 æ ¹æ®å­—å…¸sys_BloodType")
    private String bloodType;
    /**
     * è¡€åž‹ æ ¹æ®å­—å…¸sys_BloodType
     */
    @ApiModelProperty("Rh阴性 0:否;1:是")
    @Excel(name = "Rh阴性 0:否;1:是", readConverterExp = "Rh阴性 0:否;1:是")
    private String rhYin;
    /**
     * æ˜¯å¦éœ€è¦è½¬è¿ 1:不需要   2需要     é»˜è®¤1
@@ -389,5 +389,19 @@
    @ApiModelProperty("转运信息")
    private List<ServiceTransport> serviceTransport;
    /**
     * åè°ƒå‘˜ç¼–号
     */
    @ApiModelProperty("协调员编号")
    @Excel(name = "协调员编号", readConverterExp = "协调员编号")
    private String coordinatorNo;
    /**
     * åè°ƒå‘˜å§“名
     */
    @ApiModelProperty("协调员姓名")
    @Excel(name = "协调员姓名", readConverterExp = "协调员姓名")
    private String coordinatorName;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
package com.ruoyi.project.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * ä¾›ä½“维护记录对象 service_donatemaintenance
 *
 * @author ruoyi
 * @date 2025-12-27
 */
@Data
@ApiModel("供体维护记录")
public class ServiceDonatemaintenance extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * $column.columnComment
     */
    @ApiModelProperty("$column.columnComment")
    //数据库自增改成@TableId(type = IdType.AUTO)
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * å…³è”service_donatebaseinfo表的ID
     */
    @ApiModelProperty("关联service_donatebaseinfo表的ID")
    @Excel(name = "关联service_donatebaseinfo表的ID")
    private Long infoid;
    /**
     * æ¡ˆä¾‹ç¼–号
     */
    @ApiModelProperty("案例编号")
    @Excel(name = "案例编号")
    private String caseNo;
    /**
     * æçŒ®è€…编号
     */
    @ApiModelProperty("捐献者编号")
    @Excel(name = "捐献者编号")
    private String donorno;
    /**
     * ç»´æŠ¤é¡¹ç›®ç¼–号
     */
    @ApiModelProperty("维护项目编号")
    @Excel(name = "维护项目编号")
    private String itemNo;
    /**
     * ç»´æŠ¤é¡¹ç›®åç§°
     */
    @ApiModelProperty("维护项目名称")
    @Excel(name = "维护项目名称")
    private String itemName;
    /**
     * ç»´æŒé¡¹ç›®æ—¶é—´
     */
    @ApiModelProperty("维持项目时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "维持项目时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date itemTime;
    /**
     * é¡¹ç›®ç»´æŠ¤è¯¦æƒ…,json结构
     */
    @ApiModelProperty("项目维护详情,json结构")
    @Excel(name = "项目维护详情,json结构")
    private String itemDesc;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewinitiate.java
@@ -66,5 +66,63 @@
    @Excel(name = "有效截至时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date cutOffTime;
    /**
     * ä¸“家排队序号
     */
    @ApiModelProperty("专家排队序号")
    @Excel(name = "专家排队序号")
    private Long orderNo;
    /**
     * ä¸“家结论  è§å­—å…¸ sys_0_1
     */
    @ApiModelProperty("专家结论  è§å­—å…¸ sys_0_1 ")
    @Excel(name = "专家结论  è§å­—å…¸ sys_0_1 ")
    private String expertConclusion;
    /**
     * ä¸“家意见
     */
    @ApiModelProperty("专家意见")
    @Excel(name = "专家意见")
    private String expertOpinion;
    /**
     * ä¸“家编号
     */
    @ApiModelProperty("专家编号")
    @Excel(name = "专家编号")
    private String expertNo;
    /**
     * ä¸“家姓名
     */
    @ApiModelProperty("专家姓名")
    @Excel(name = "专家姓名")
    private String expertName;
    /**
     * ä¸“家类型
     */
    @ApiModelProperty("专家类型")
    @Excel(name = "专家类型")
    private String expertType;
    /**
     * ä¸“家结论时间
     */
    @ApiModelProperty("专家结论时间")
    @Excel(name = "专家结论时间")
    private Date expertTime;
    /**
     * 0:新建;1:审查中;2:结束
     */
    @ApiModelProperty("0:新建;1:审查中;2:结束")
    @Excel(name = "0:新建;1:审查中;2:结束")
    private String status;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMeeting.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,168 @@
package com.ruoyi.project.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * ä¼šè®®çºªè¦å¯¹è±¡ service_meeting
 *
 * @author ls
 * @date 2025-12-28
 */
@Data
@ApiModel("会议纪要")
public class ServiceMeeting extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ä¼šè®®ID */
    @ApiModelProperty("会议ID")
    //数据库自增改成@TableId(type = IdType.AUTO)
    @TableId(type = IdType.AUTO)
    private Integer id;
    /** ä¼šè®®ç¼–号 */
    @ApiModelProperty("会议编号")
    @Excel(name = "会议编号")
    private String meetingNumber;
    /** ä¼šè®®æ ‡é¢˜ */
    @ApiModelProperty("会议标题")
    @Excel(name = "会议标题")
    private String title;
    /** ä¼šè®®ç±»åž‹ID */
    @ApiModelProperty("会议类型ID")
    @Excel(name = "会议类型ID")
    private Integer typeId;
    /** ä¼šè®®åœ°ç‚¹ID */
    @ApiModelProperty("会议地点ID")
    @Excel(name = "会议地点ID")
    private Integer locationId;
    /** ç»„织者ID */
    @ApiModelProperty("组织者ID")
    @Excel(name = "组织者ID")
    private Integer organizerId;
    /** ä¼šè®®å¼€å§‹æ—¶é—´ */
    @ApiModelProperty("会议开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "会议开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /** ä¼šè®®ç»“束时间 */
    @ApiModelProperty("会议结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "会议结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /** ä¼šè®®æ¦‚要 */
    @ApiModelProperty("会议概要")
    @Excel(name = "会议概要")
    private String summary;
    /** ä¼šè®®å…·ä½“内容(富文本) */
    @ApiModelProperty("会议具体内容(富文本)")
    @Excel(name = "会议具体内容(富文本)")
    private String content;
    /** é™„件信息(JSON格式) */
    @ApiModelProperty("附件信息(JSON格式)")
    @Excel(name = "附件信息(JSON格式)")
    private String attachment;
    /** çŠ¶æ€(1:待开始,2:进行中,3:已结束,4:已取消) */
    @ApiModelProperty("状态(1:待开始,2:进行中,3:已结束,4:已取消)")
    @Excel(name = "状态(1:待开始,2:进行中,3:已结束,4:已取消)")
    private Integer status;
    /** æ˜¯å¦ä¸ºç³»åˆ—会议(1:是,0:否) */
    @ApiModelProperty("是否为系列会议(1:是,0:否)")
    @Excel(name = "是否为系列会议(1:是,0:否)")
    private Integer isRecurring;
    /** é‡å¤æ¨¡å¼ */
    @ApiModelProperty("重复模式")
    @Excel(name = "重复模式")
    private String recurringPattern;
    /** çˆ¶ä¼šè®®ID(用于复制或系列会议) */
    @ApiModelProperty("父会议ID(用于复制或系列会议)")
    @Excel(name = "父会议ID(用于复制或系列会议)")
    private Integer parentMeetingId;
    /** æå‰æé†’分钟数 */
    @ApiModelProperty("提前提醒分钟数")
    @Excel(name = "提前提醒分钟数")
    private Long reminderMinutes;
    /** çºªè¦å†…容 */
    @ApiModelProperty("纪要内容")
    @Excel(name = "纪要内容")
    private String recordcontent;
    /** çºªè¦é™„ä»¶(JSON格式) */
    @ApiModelProperty("纪要附件(JSON格式)")
    @Excel(name = "纪要附件(JSON格式)")
    private String recordattachment;
    /** è®°å½•人 */
    @ApiModelProperty("记录人")
    @Excel(name = "记录人")
    private String recorderBy;
    /** åˆ›å»ºæ—¶é—´ */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date recorderTime;
    /** å®¡æ ¸äººID */
    @ApiModelProperty("审核人ID")
    @Excel(name = "审核人ID")
    private String approverBy;
    /** å®¡æ ¸çŠ¶æ€(0:待审核,1:已通过,2:已驳回) */
    @ApiModelProperty("审核状态(0:待审核,1:已通过,2:已驳回)")
    @Excel(name = "审核状态(0:待审核,1:已通过,2:已驳回)")
    private Integer approvalStatus;
    /** å®¡æ ¸æ—¶é—´ */
    @ApiModelProperty("审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date approvalTime;
    /** åˆ›å»ºäºº */
    @ApiModelProperty("创建人")
    @Excel(name = "创建人")
    private String createdBy;
    /** åˆ›å»ºæ—¶é—´ */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;
    /** æ›´æ–°äºº */
    @ApiModelProperty("更新人")
    @Excel(name = "更新人")
    private String updatedBy;
    /** æ›´æ–°æ—¶é—´ */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updatedTime;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMeetingParticipant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
package com.ruoyi.project.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * å‚会人员对象 service_meeting_participant
 *
 * @author ls
 * @date 2025-12-28
 */
@Data
@ApiModel("参会人员")
public class ServiceMeetingParticipant extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** å‚会记录ID */
    @ApiModelProperty("参会记录ID")
    //数据库自增改成@TableId(type = IdType.AUTO)
    @TableId(type = IdType.AUTO)
    private Integer id;
    /** ä¼šè®®ID */
    @ApiModelProperty("会议ID")
    @Excel(name = "会议ID")
    private Integer meetingId;
    /** ç”¨æˆ·ç¼–号 */
    @ApiModelProperty("用户编号")
    @Excel(name = "用户编号")
    private String userNo;
    /** ç”¨æˆ·å§“名 */
    @ApiModelProperty("用户姓名")
    @Excel(name = "用户姓名")
    private String userName;
    /** è§’色(host:主持人,participant:参会人,guest:嘉宾) */
    @ApiModelProperty("角色(host:主持人,participant:参会人,guest:嘉宾)")
    @Excel(name = "角色(host:主持人,participant:参会人,guest:嘉宾)")
    private String role;
    /** å‡ºå¸­çŠ¶æ€(0:未确认,1:已确认,2:已拒绝,3:已出席,4:未出席) */
    @ApiModelProperty("出席状态(0:未确认,1:已确认,2:已拒绝,3:已出席,4:未出席)")
    @Excel(name = "出席状态(0:未确认,1:已确认,2:已拒绝,3:已出席,4:未出席)")
    private Integer attendanceStatus;
    /** æ˜¯å¦å¿…需参会(1:是,0:否) */
    @ApiModelProperty("是否必需参会(1:是,0:否)")
    @Excel(name = "是否必需参会(1:是,0:否)")
    private Integer isRequired;
    /** ç¡®è®¤æ—¶é—´ */
    @ApiModelProperty("确认时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "确认时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date confirmationTime;
    /** ç­¾åˆ°æ—¶é—´ */
    @ApiModelProperty("签到时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "签到时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date checkInTime;
    /** ç­¾é€€æ—¶é—´ */
    @ApiModelProperty("签退时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "签退时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date checkOutTime;
    /** åˆ›å»ºäºº */
    @ApiModelProperty("创建人")
    @Excel(name = "创建人")
    private String createdBy;
    /** åˆ›å»ºæ—¶é—´ */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;
    /** æ›´æ–°äºº */
    @ApiModelProperty("更新人")
    @Excel(name = "更新人")
    private String updatedBy;
    /** æ›´æ–°æ—¶é—´ */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updatedTime;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceTrainingRecords.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,150 @@
package com.ruoyi.project.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * äººå‘˜è¿›ä¿®ç®¡ç†å¯¹è±¡ service_training_records
 *
 * @author ls
 * @date 2025-12-28
 */
@Data
@ApiModel("人员进修管理")
public class ServiceTrainingRecords extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** è®°å½•ID(主键) */
    @ApiModelProperty("记录ID(主键)")
    //数据库自增改成@TableId(type = IdType.AUTO)
    @TableId(type = IdType.AUTO)
    private Long id;
    /** å§“名 */
    @ApiModelProperty("姓名")
    @Excel(name = "姓名")
    private String name;
    /** æ€§åˆ« */
    @ApiModelProperty("性别")
    @Excel(name = "性别")
    private String sex;
    /** å¹´é¾„ */
    @ApiModelProperty("年龄")
    @Excel(name = "年龄")
    private Integer age;
    /** å­¦åކ */
    @ApiModelProperty("学历")
    @Excel(name = "学历")
    private String education;
    /** è¿›ä¿®ç±»åž‹ */
    @ApiModelProperty("进修类型")
    @Excel(name = "进修类型")
    private String trainingType;
    /** èº«ä»½è¯å·ç ï¼ˆå”¯ä¸€ï¼‰ */
    @ApiModelProperty("身份证号码(唯一)")
    @Excel(name = "身份证号码", readConverterExp = "唯=一")
    private String idCard;
    /** æ¯•业院校 */
    @ApiModelProperty("毕业院校")
    @Excel(name = "毕业院校")
    private String graduationSchool;
    /** æ‰€åœ¨å•位 */
    @ApiModelProperty("所在单位")
    @Excel(name = "所在单位")
    private String workUnit;
    /** æŠ€æœ¯èŒç§° */
    @ApiModelProperty("技术职称")
    @Excel(name = "技术职称")
    private String technicalTitle;
    /** ä»Žäº‹ä¸“业 */
    @ApiModelProperty("从事专业")
    @Excel(name = "从事专业")
    private String profession;
    /** å·¥ä½œå¹´é™ï¼ˆå¹´ï¼‰ */
    @ApiModelProperty("工作年限(年)")
    @Excel(name = "工作年限", readConverterExp = "å¹´=")
    private BigDecimal workYears;
    /** è¿›ä¿®ç›®æ ‡ */
    @ApiModelProperty("进修目标")
    @Excel(name = "进修目标")
    private String trainingGoal;
    /** è¿›ä¿®å¼€å§‹æ—¶é—´ */
    @ApiModelProperty("进修开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "进修开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date trainingStartDate;
    /** è¿›ä¿®ç»“束时间 */
    @ApiModelProperty("进修结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "进修结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date trainingEndDate;
    /** è¿›ä¿®ä¸“业 */
    @ApiModelProperty("进修专业")
    @Excel(name = "进修专业")
    private String trainingMajor;
    /** ä»Žäº‹å·¥ä½œæƒ…况 */
    @ApiModelProperty("从事工作情况")
    @Excel(name = "从事工作情况")
    private String workSituation;
    /** æœ¬æ¬¡ç”³è¯·è¿›ä¿®ç§‘ç›® */
    @ApiModelProperty("本次申请进修科目")
    @Excel(name = "本次申请进修科目")
    private String applySubject;
    /** è¿›ä¿®ç›®çš„要求 */
    @ApiModelProperty("进修目的要求")
    @Excel(name = "进修目的要求")
    private String applyPurpose;
    /** ä¸»è¦å­¦åކ */
    @ApiModelProperty("主要学历")
    @Excel(name = "主要学历")
    private String mainEducation;
    /** ä¸»è¦å·¥ä½œç»åކ */
    @ApiModelProperty("主要工作经历")
    @Excel(name = "主要工作经历")
    private String mainExperience;
    /** è®°å½•状态 */
    @ApiModelProperty("记录状态")
    @Excel(name = "记录状态")
    private String recordStatus;
    /** æ˜¯å¦ä¸ºå¤åˆ¶è®°å½•(0:否,1:是) */
    @ApiModelProperty("是否为复制记录(0:否,1:是)")
    @Excel(name = "是否为复制记录", readConverterExp = "0=:否,1:是")
    private Integer isCopy;
    /** åŽŸè®°å½•ID(如果是复制记录) */
    @ApiModelProperty("原记录ID(如果是复制记录)")
    @Excel(name = "原记录ID", readConverterExp = "如=果是复制记录")
    private Long originalId;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/VUserOrg.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
package com.ruoyi.project.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * VIEW对象 v_user_org
 *
 * @author ruoyi
 * @date 2025-12-27
 */
@Data
@ApiModel("VIEW")
public class VUserOrg extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ç”¨æˆ·ID */
    @ApiModelProperty("用户ID")
    @Excel(name = "用户ID")
    private Long userId;
    /** å¸å·çŠ¶æ€ï¼ˆ0正常 1停用) */
    @ApiModelProperty("帐号状态(0正常 1停用)")
    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
    private String status;
    /** ç”¨æˆ·è´¦å· */
    @ApiModelProperty("用户账号")
    @Excel(name = "用户账号")
    private String userName;
    /** ç”¨æˆ·æ˜µç§° */
    @ApiModelProperty("用户昵称")
    @Excel(name = "用户昵称")
    private String nickName;
    /** ç”¨æˆ·ç±»åž‹ï¼ˆ00系统用户) */
    @ApiModelProperty("用户类型(00系统用户)")
    @Excel(name = "用户类型", readConverterExp = "0=0系统用户")
    private String userType;
    /** æ‰‹æœºå·ç  */
    @ApiModelProperty("手机号码")
    @Excel(name = "手机号码")
    private String phonenumber;
    /** éƒ¨é—¨ID */
    @ApiModelProperty("部门ID")
    @Excel(name = "部门ID")
    private Long deptId;
    /** ä¸»é”®è‡ªå¢ž */
    @ApiModelProperty("主键自增")
    @Excel(name = "主键自增")
    private Long orgId;
    /** ç»„织编号 */
    @ApiModelProperty("组织编号")
    @Excel(name = "组织编号")
    private String organizationid;
    /** ç»„织名称 */
    @ApiModelProperty("组织名称")
    @Excel(name = "组织名称")
    private String organizationname;
    /** åè°ƒå‘˜ç¼–号 */
    @ApiModelProperty("协调员编号")
    @Excel(name = "协调员编号")
    private String coordinatorNo;
    /** åè°ƒå‘˜å§“名 */
    @ApiModelProperty("协调员姓名")
    @Excel(name = "协调员姓名")
    private String coordinatorName;
}
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceAttendancerecordsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.ruoyi.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.project.domain.ServiceAttendancerecords;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * è€ƒå‹¤è®°å½•Mapper接口
 *
 * @author ls
 * @date 2025-12-28
 */
@Mapper
public interface ServiceAttendancerecordsMapper extends BaseMapper<ServiceAttendancerecords>
{
    /**
     * æŸ¥è¯¢è€ƒå‹¤è®°å½•列表
     *
     * @param serviceAttendancerecords è€ƒå‹¤è®°å½•
     * @return è€ƒå‹¤è®°å½•集合
     */
    public List<ServiceAttendancerecords> selectServiceAttendancerecordsList(ServiceAttendancerecords serviceAttendancerecords);
}
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatemaintenanceMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.project.domain.ServiceDonatemaintenance;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * ä¾›ä½“维护记录Mapper接口
 *
 * @author ruoyi
 * @date 2025-12-27
 */
@Mapper
public interface ServiceDonatemaintenanceMapper extends BaseMapper<ServiceDonatemaintenance> {
    /**
     * æŸ¥è¯¢ä¾›ä½“维护记录列表
     *
     * @param serviceDonatemaintenance ä¾›ä½“维护记录
     * @return ä¾›ä½“维护记录集合
     */
    public List<ServiceDonatemaintenance> selectServiceDonatemaintenanceList(ServiceDonatemaintenance serviceDonatemaintenance);
}
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMeetingMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.ruoyi.project.domain.ServiceMeeting;
/**
 * ä¼šè®®çºªè¦Mapper接口
 *
 * @author ls
 * @date 2025-12-28
 */
@Mapper
public interface ServiceMeetingMapper extends BaseMapper<ServiceMeeting>
{
    /**
     * æŸ¥è¯¢ä¼šè®®çºªè¦åˆ—表
     *
     * @param serviceMeeting ä¼šè®®çºªè¦
     * @return ä¼šè®®çºªè¦é›†åˆ
     */
    public List<ServiceMeeting> selectServiceMeetingList(ServiceMeeting serviceMeeting);
}
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMeetingParticipantMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.ruoyi.project.domain.ServiceMeetingParticipant;
/**
 * å‚会人员Mapper接口
 *
 * @author ls
 * @date 2025-12-28
 */
@Mapper
public interface ServiceMeetingParticipantMapper extends BaseMapper<ServiceMeetingParticipant>
{
    /**
     * æŸ¥è¯¢å‚会人员列表
     *
     * @param serviceMeetingParticipant å‚会人员
     * @return å‚会人员集合
     */
    public List<ServiceMeetingParticipant> selectServiceMeetingParticipantList(ServiceMeetingParticipant serviceMeetingParticipant);
}
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTrainingRecordsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.ruoyi.project.domain.ServiceTrainingRecords;
/**
 * äººå‘˜è¿›ä¿®ç®¡ç†Mapper接口
 *
 * @author ls
 * @date 2025-12-28
 */
@Mapper
public interface ServiceTrainingRecordsMapper extends BaseMapper<ServiceTrainingRecords>
{
    /**
     * æŸ¥è¯¢äººå‘˜è¿›ä¿®ç®¡ç†åˆ—表
     *
     * @param serviceTrainingRecords äººå‘˜è¿›ä¿®ç®¡ç†
     * @return äººå‘˜è¿›ä¿®ç®¡ç†é›†åˆ
     */
    public List<ServiceTrainingRecords> selectServiceTrainingRecordsList(ServiceTrainingRecords serviceTrainingRecords);
}
ruoyi-project/src/main/java/com/ruoyi/project/mapper/VUserOrgMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.project.domain.VUserOrg;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * VIEWMapper接口
 *
 * @author ruoyi
 * @date 2025-12-27
 */
@Mapper
public interface VUserOrgMapper extends BaseMapper<VUserOrg>
{
    /**
     * æŸ¥è¯¢VIEW列表
     *
     * @param vUserOrg VIEW
     * @return VIEW集合
     */
    public List<VUserOrg> selectVUserOrgList(VUserOrg vUserOrg);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceAttendancerecordsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.project.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.project.domain.ServiceAttendancerecords;
/**
 * è€ƒå‹¤è®°å½•Service接口
 *
 * @author ls
 * @date 2025-12-28
 */
public interface IServiceAttendancerecordsService extends IService<ServiceAttendancerecords>
{
    /**
     * æŸ¥è¯¢è€ƒå‹¤è®°å½•列表
     *
     * @param serviceAttendancerecords è€ƒå‹¤è®°å½•
     * @return è€ƒå‹¤è®°å½•集合
     */
    public List<ServiceAttendancerecords> queryList(ServiceAttendancerecords serviceAttendancerecords);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoReportService.java
@@ -29,5 +29,10 @@
     * @param serviceDonatebaseinfoReport æçŒ®ä¸ŠæŠ¥åŸºç¡€
     * @return æçŒ®ä¸ŠæŠ¥åŸºç¡€é›†åˆ
     */
    public Map<String,Object> getTotal(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport, String type);
    public Map<String, Object> getTotal(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport, String type);
    /**
     * å»ºæ¡£
     */
    public Boolean createDocument(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatemaintenanceService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.project.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.project.domain.ServiceDonatemaintenance;
import java.util.List;
/**
 * ä¾›ä½“维护记录Service接口
 *
 * @author ruoyi
 * @date 2025-12-27
 */
public interface IServiceDonatemaintenanceService extends IService<ServiceDonatemaintenance>
{
    /**
     * æŸ¥è¯¢ä¾›ä½“维护记录列表
     *
     * @param serviceDonatemaintenance ä¾›ä½“维护记录
     * @return ä¾›ä½“维护记录集合
     */
    public List<ServiceDonatemaintenance> queryList(ServiceDonatemaintenance serviceDonatemaintenance);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMeetingParticipantService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.project.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.project.domain.ServiceMeetingParticipant;
/**
 * å‚会人员Service接口
 *
 * @author ls
 * @date 2025-12-28
 */
public interface IServiceMeetingParticipantService extends IService<ServiceMeetingParticipant>
{
    /**
     * æŸ¥è¯¢å‚会人员列表
     *
     * @param serviceMeetingParticipant å‚会人员
     * @return å‚会人员集合
     */
    public List<ServiceMeetingParticipant> queryList(ServiceMeetingParticipant serviceMeetingParticipant);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMeetingService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.project.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.project.domain.ServiceMeeting;
/**
 * ä¼šè®®çºªè¦Service接口
 *
 * @author ls
 * @date 2025-12-28
 */
public interface IServiceMeetingService extends IService<ServiceMeeting>
{
    /**
     * æŸ¥è¯¢ä¼šè®®çºªè¦åˆ—表
     *
     * @param serviceMeeting ä¼šè®®çºªè¦
     * @return ä¼šè®®çºªè¦é›†åˆ
     */
    public List<ServiceMeeting> queryList(ServiceMeeting serviceMeeting);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceTrainingRecordsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.project.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.project.domain.ServiceTrainingRecords;
/**
 * äººå‘˜è¿›ä¿®ç®¡ç†Service接口
 *
 * @author ls
 * @date 2025-12-28
 */
public interface IServiceTrainingRecordsService extends IService<ServiceTrainingRecords>
{
    /**
     * æŸ¥è¯¢äººå‘˜è¿›ä¿®ç®¡ç†åˆ—表
     *
     * @param serviceTrainingRecords äººå‘˜è¿›ä¿®ç®¡ç†
     * @return äººå‘˜è¿›ä¿®ç®¡ç†é›†åˆ
     */
    public List<ServiceTrainingRecords> queryList(ServiceTrainingRecords serviceTrainingRecords);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/IVUserOrgService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.project.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.project.domain.VUserOrg;
import java.util.List;
/**
 * VIEWService接口
 *
 * @author ruoyi
 * @date 2025-12-27
 */
public interface IVUserOrgService extends IService<VUserOrg>
{
    /**
     * æŸ¥è¯¢VIEW列表
     *
     * @param vUserOrg VIEW
     * @return VIEW集合
     */
    public List<VUserOrg> queryList(VUserOrg vUserOrg);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/BaseOrganizationServiceImpl.java
@@ -101,6 +101,18 @@
        if (StringUtils.isNotBlank(baseOrganization.getCommunity())) {
            wrappers.eq(BaseOrganization::getCommunity, baseOrganization.getCommunity());
        }
        if (StringUtils.isNotBlank(baseOrganization.getReporterNo())) {
            wrappers.eq(BaseOrganization::getReporterNo, baseOrganization.getReporterNo());
        }
        if (StringUtils.isNotBlank(baseOrganization.getReporterName())) {
            wrappers.eq(BaseOrganization::getReporterName, baseOrganization.getReporterName());
        }
        if (StringUtils.isNotBlank(baseOrganization.getCoordinatorNo())) {
            wrappers.eq(BaseOrganization::getCoordinatorNo, baseOrganization.getCoordinatorNo());
        }
        if (StringUtils.isNotBlank(baseOrganization.getCoordinatorName())) {
            wrappers.eq(BaseOrganization::getCoordinatorName, baseOrganization.getCoordinatorName());
        }
        if (StringUtils.isNotBlank(baseOrganization.getCommunityname())) {
            wrappers.like(BaseOrganization::getCommunityname, baseOrganization.getCommunityname());
        }
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceAttendancerecordsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
package com.ruoyi.project.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.ArrayList;
import java.util.Map;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.mapper.ServiceAttendancerecordsMapper;
import com.ruoyi.project.domain.ServiceAttendancerecords;
import com.ruoyi.project.service.IServiceAttendancerecordsService;
/**
 * è€ƒå‹¤è®°å½•Service业务层处理
 *
 * @author ls
 * @date 2025-12-28
 */
@Service
public class ServiceAttendancerecordsServiceImpl extends ServiceImpl<ServiceAttendancerecordsMapper, ServiceAttendancerecords> implements IServiceAttendancerecordsService
{
    /**
     * æŸ¥è¯¢è€ƒå‹¤è®°å½•列表
     *
     * @param serviceAttendancerecords è€ƒå‹¤è®°å½•
     * @return è€ƒå‹¤è®°å½•
     */
    @Override
    public List<ServiceAttendancerecords> queryList(ServiceAttendancerecords serviceAttendancerecords) {
        LambdaQueryWrapper<ServiceAttendancerecords> wrappers = Wrappers.lambdaQuery();
        if (StringUtils.isNotBlank(serviceAttendancerecords.getUserNo())){
            wrappers.eq(ServiceAttendancerecords::getUserNo ,serviceAttendancerecords.getUserNo());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getUserName())){
            wrappers.like(ServiceAttendancerecords::getUserName ,serviceAttendancerecords.getUserName());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getDeptNo())){
            wrappers.eq(ServiceAttendancerecords::getDeptNo ,serviceAttendancerecords.getDeptNo());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getDeptName())){
            wrappers.like(ServiceAttendancerecords::getDeptName ,serviceAttendancerecords.getDeptName());
        }
        if (serviceAttendancerecords.getAttendanceDate() != null){
            wrappers.eq(ServiceAttendancerecords::getAttendanceDate ,serviceAttendancerecords.getAttendanceDate());
        }
        if (serviceAttendancerecords.getClockInTime() != null){
            wrappers.eq(ServiceAttendancerecords::getClockInTime ,serviceAttendancerecords.getClockInTime());
        }
        if (serviceAttendancerecords.getClockOutTime() != null){
            wrappers.eq(ServiceAttendancerecords::getClockOutTime ,serviceAttendancerecords.getClockOutTime());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getAttendanceStatus())){
            wrappers.eq(ServiceAttendancerecords::getAttendanceStatus ,serviceAttendancerecords.getAttendanceStatus());
        }
        if (serviceAttendancerecords.getWorkHoursMinutes() != null){
            wrappers.eq(ServiceAttendancerecords::getWorkHoursMinutes ,serviceAttendancerecords.getWorkHoursMinutes());
        }
        if (serviceAttendancerecords.getOvertimeMinutes() != null){
            wrappers.eq(ServiceAttendancerecords::getOvertimeMinutes ,serviceAttendancerecords.getOvertimeMinutes());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getReason())){
            wrappers.eq(ServiceAttendancerecords::getReason ,serviceAttendancerecords.getReason());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getAbnormalReason())){
            wrappers.eq(ServiceAttendancerecords::getAbnormalReason ,serviceAttendancerecords.getAbnormalReason());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getClockInMethod())){
            wrappers.eq(ServiceAttendancerecords::getClockInMethod ,serviceAttendancerecords.getClockInMethod());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getClockOutMethod())){
            wrappers.eq(ServiceAttendancerecords::getClockOutMethod ,serviceAttendancerecords.getClockOutMethod());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getClockInLocation())){
            wrappers.eq(ServiceAttendancerecords::getClockInLocation ,serviceAttendancerecords.getClockInLocation());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getClockOutLocation())){
            wrappers.eq(ServiceAttendancerecords::getClockOutLocation ,serviceAttendancerecords.getClockOutLocation());
        }
        if (StringUtils.isNotBlank(serviceAttendancerecords.getDataSource())){
            wrappers.eq(ServiceAttendancerecords::getDataSource ,serviceAttendancerecords.getDataSource());
        }
        return this.list(wrappers);
    }
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoReportServiceImpl.java
@@ -5,14 +5,18 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.project.common.CalculateDateUtils;
import com.ruoyi.project.domain.ServiceDonatebaseinfo;
import com.ruoyi.project.domain.ServiceDonatebaseinfoReport;
import com.ruoyi.project.domain.ServiceDonatebaseinfoReportFile;
import com.ruoyi.project.domain.ServiceTransport;
import com.ruoyi.project.mapper.ServiceDonatebaseinfoReportMapper;
import com.ruoyi.project.service.IServiceDonatebaseinfoReportFileService;
import com.ruoyi.project.service.IServiceDonatebaseinfoReportService;
import com.ruoyi.project.service.IServiceDonatebaseinfoService;
import com.ruoyi.project.service.IServiceTransportService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -35,9 +39,10 @@
    private IServiceDonatebaseinfoReportFileService serviceDonatebaseinfoReportFileService;
    @Autowired
    private IServiceTransportService serviceTransportService;
    @Autowired
    private ServiceDonatebaseinfoReportMapper serviceDonatebaseinfoReportMapper;
    @Autowired
    private IServiceDonatebaseinfoService serviceDonatebaseinfoService;
    /**
     * æŸ¥è¯¢æçŒ®ä¸ŠæŠ¥åŸºç¡€åˆ—表
@@ -48,6 +53,11 @@
    @Override
    public Page<ServiceDonatebaseinfoReport> queryList(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) {
        LambdaQueryWrapper<ServiceDonatebaseinfoReport> wrappers = getWrapper(serviceDonatebaseinfoReport);
        // æ·»åŠ create_time不为空的条件
        wrappers.isNotNull(ServiceDonatebaseinfoReport::getCreateTime);
        // ç„¶åŽè¿›è¡Œå€’序排序
        wrappers.orderByDesc(ServiceDonatebaseinfoReport::getCreateTime);
        // åˆ›å»ºåˆ†é¡µå¯¹è±¡ï¼Œè®¾ç½®é¡µç å’Œæ¯é¡µå¤§å°
        int currentPage = (serviceDonatebaseinfoReport.getPageNum() == null || serviceDonatebaseinfoReport.getPageNum() < 1) ? 1 : serviceDonatebaseinfoReport.getPageNum();
        int size = (serviceDonatebaseinfoReport.getPageSize() == null || serviceDonatebaseinfoReport.getPageSize() < 1) ? 10 : serviceDonatebaseinfoReport.getPageSize();
@@ -101,6 +111,30 @@
        //所有状态的总数
        map.put("all", all);
        return map;
    }
    /**
     * åˆ›å»ºæ¡£æ¡ˆ
     *
     * @param serviceDonatebaseinfoReport
     * @return
     */
    @Override
    public Boolean createDocument(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) {
        //将report数据复制到serviceDonatebaseinfo中
        ServiceDonatebaseinfo serviceDonatebaseinfo1 = DtoConversionUtils.sourceToTarget(serviceDonatebaseinfoReport, ServiceDonatebaseinfo.class);
        serviceDonatebaseinfo1.setId(null);
        //先通过caseNo查询是否存在
        ServiceDonatebaseinfo serviceDonatebaseinfo = new ServiceDonatebaseinfo();
        serviceDonatebaseinfo.setCaseNo(serviceDonatebaseinfoReport.getCaseNo());
        List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoService.queryList(serviceDonatebaseinfo);
        if (CollectionUtils.isNotEmpty(serviceDonatebaseinfos) && serviceDonatebaseinfos.size() > 0) {
            serviceDonatebaseinfo1.setId(serviceDonatebaseinfos.get(0).getId());
            serviceDonatebaseinfoService.updateById(serviceDonatebaseinfo1);
            return true;
        }
        //创建
        return serviceDonatebaseinfoService.save(serviceDonatebaseinfo1);
    }
    private LambdaQueryWrapper<ServiceDonatebaseinfoReport> getWrapper(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) {
@@ -216,11 +250,11 @@
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getPatientstate())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getPatientstate, serviceDonatebaseinfoReport.getPatientstate());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getReporterno())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getReporterno, serviceDonatebaseinfoReport.getReporterno());
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getInfoNo())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getInfoNo, serviceDonatebaseinfoReport.getInfoNo());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getReportername())) {
            wrappers.like(ServiceDonatebaseinfoReport::getReportername, serviceDonatebaseinfoReport.getReportername());
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getInfoName())) {
            wrappers.like(ServiceDonatebaseinfoReport::getInfoName, serviceDonatebaseinfoReport.getInfoName());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getReporterphone())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getReporterphone, serviceDonatebaseinfoReport.getReporterphone());
@@ -231,12 +265,6 @@
        if (serviceDonatebaseinfoReport.getTerminationCase() != null) {
            wrappers.eq(ServiceDonatebaseinfoReport::getTerminationCase, serviceDonatebaseinfoReport.getTerminationCase());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getUserNo())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getUserNo, serviceDonatebaseinfoReport.getUserNo());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getUserName())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getUserName, serviceDonatebaseinfoReport.getUserName());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getDeptNo())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getDeptNo, serviceDonatebaseinfoReport.getDeptNo());
        }
@@ -246,9 +274,22 @@
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getIsTransport())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getIsTransport, serviceDonatebaseinfoReport.getIsTransport());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getGscScore())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getGscScore, serviceDonatebaseinfoReport.getGscScore());
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getGcsScore())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getGcsScore, serviceDonatebaseinfoReport.getGcsScore());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getRhYin())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getRhYin, serviceDonatebaseinfoReport.getRhYin());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getBloodType())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getBloodType, serviceDonatebaseinfoReport.getBloodType());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getCoordinatorName())) {
            wrappers.like(ServiceDonatebaseinfoReport::getCoordinatorName, serviceDonatebaseinfoReport.getCoordinatorName());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getCoordinatorNo())) {
            wrappers.eq(ServiceDonatebaseinfoReport::getCoordinatorNo, serviceDonatebaseinfoReport.getCoordinatorNo());
        }
        return wrappers;
    }
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
@@ -114,7 +114,22 @@
            wrappers.like(ServiceDonatebaseinfo::getReportername, serviceDonatebaseinfo.getReportername());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getCaseNo())) {
            wrappers.like(ServiceDonatebaseinfo::getCaseNo, serviceDonatebaseinfo.getCaseNo());
            wrappers.eq(ServiceDonatebaseinfo::getCaseNo, serviceDonatebaseinfo.getCaseNo());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getInfoName())) {
            wrappers.like(ServiceDonatebaseinfo::getInfoName, serviceDonatebaseinfo.getInfoName());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getInfoNo())) {
            wrappers.eq(ServiceDonatebaseinfo::getInfoNo, serviceDonatebaseinfo.getInfoNo());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getCoordinatorName())) {
            wrappers.like(ServiceDonatebaseinfo::getCoordinatorName, serviceDonatebaseinfo.getCoordinatorName());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getCoordinatorNo())) {
            wrappers.eq(ServiceDonatebaseinfo::getCoordinatorNo, serviceDonatebaseinfo.getCoordinatorNo());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getGcsScore())) {
            wrappers.eq(ServiceDonatebaseinfo::getGcsScore, serviceDonatebaseinfo.getGcsScore());
        }
        Map<String, Object> params = serviceDonatebaseinfo.getParams();
        if (params.get("beginReporttime") != null && params.get("endReporttime") != null) {
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatemaintenanceServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
package com.ruoyi.project.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.domain.ServiceDonatemaintenance;
import com.ruoyi.project.mapper.ServiceDonatemaintenanceMapper;
import com.ruoyi.project.service.IServiceDonatemaintenanceService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * ä¾›ä½“维护记录Service业务层处理
 *
 * @author ruoyi
 * @date 2025-12-27
 */
@Service
public class ServiceDonatemaintenanceServiceImpl extends ServiceImpl<ServiceDonatemaintenanceMapper, ServiceDonatemaintenance> implements IServiceDonatemaintenanceService
{
    /**
     * æŸ¥è¯¢ä¾›ä½“维护记录列表
     *
     * @param serviceDonatemaintenance ä¾›ä½“维护记录
     * @return ä¾›ä½“维护记录
     */
    @Override
    public List<ServiceDonatemaintenance> queryList(ServiceDonatemaintenance serviceDonatemaintenance) {
        LambdaQueryWrapper<ServiceDonatemaintenance> wrappers = Wrappers.lambdaQuery();
        if (serviceDonatemaintenance.getInfoid() != null){
            wrappers.eq(ServiceDonatemaintenance::getInfoid ,serviceDonatemaintenance.getInfoid());
        }
        if (StringUtils.isNotBlank(serviceDonatemaintenance.getCaseNo())){
            wrappers.eq(ServiceDonatemaintenance::getCaseNo ,serviceDonatemaintenance.getCaseNo());
        }
        if (StringUtils.isNotBlank(serviceDonatemaintenance.getDonorno())){
            wrappers.eq(ServiceDonatemaintenance::getDonorno ,serviceDonatemaintenance.getDonorno());
        }
        if (StringUtils.isNotBlank(serviceDonatemaintenance.getItemNo())){
            wrappers.eq(ServiceDonatemaintenance::getItemNo ,serviceDonatemaintenance.getItemNo());
        }
        if (StringUtils.isNotBlank(serviceDonatemaintenance.getItemName())){
            wrappers.like(ServiceDonatemaintenance::getItemName ,serviceDonatemaintenance.getItemName());
        }
        if (serviceDonatemaintenance.getItemTime() != null){
            wrappers.eq(ServiceDonatemaintenance::getItemTime ,serviceDonatemaintenance.getItemTime());
        }
        if (StringUtils.isNotBlank(serviceDonatemaintenance.getItemDesc())){
            wrappers.eq(ServiceDonatemaintenance::getItemDesc ,serviceDonatemaintenance.getItemDesc());
        }
        return this.list(wrappers);
    }
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewinitiateServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.domain.ServiceDonatebaseinfoReport;
import com.ruoyi.project.domain.ServiceEthicalreviewinitiate;
import com.ruoyi.project.mapper.ServiceEthicalreviewinitiateMapper;
import com.ruoyi.project.service.IServiceEthicalreviewinitiateService;
@@ -30,6 +31,11 @@
    @Override
    public List<ServiceEthicalreviewinitiate> queryList(ServiceEthicalreviewinitiate serviceEthicalreviewinitiate) {
        LambdaQueryWrapper<ServiceEthicalreviewinitiate> wrappers = Wrappers.lambdaQuery();
        // æ·»åŠ create_time不为空的条件
        wrappers.isNotNull(ServiceEthicalreviewinitiate::getCreateTime);
        // ç„¶åŽè¿›è¡Œå€’序排序
        wrappers.orderByDesc(ServiceEthicalreviewinitiate::getCreateTime);
        if (serviceEthicalreviewinitiate.getInfoid() != null) {
            wrappers.eq(ServiceEthicalreviewinitiate::getInfoid, serviceEthicalreviewinitiate.getInfoid());
        }
@@ -51,6 +57,30 @@
        if (serviceEthicalreviewinitiate.getCutOffTime() != null) {
            wrappers.eq(ServiceEthicalreviewinitiate::getCutOffTime, serviceEthicalreviewinitiate.getCutOffTime());
        }
        if (serviceEthicalreviewinitiate.getOrderNo() != null) {
            wrappers.eq(ServiceEthicalreviewinitiate::getOrderNo, serviceEthicalreviewinitiate.getOrderNo());
        }
        if (serviceEthicalreviewinitiate.getExpertConclusion() != null) {
            wrappers.eq(ServiceEthicalreviewinitiate::getExpertConclusion, serviceEthicalreviewinitiate.getExpertConclusion());
        }
        if (serviceEthicalreviewinitiate.getExpertOpinion() != null) {
            wrappers.eq(ServiceEthicalreviewinitiate::getExpertOpinion, serviceEthicalreviewinitiate.getExpertOpinion());
        }
        if (serviceEthicalreviewinitiate.getExpertNo() != null) {
            wrappers.eq(ServiceEthicalreviewinitiate::getExpertNo, serviceEthicalreviewinitiate.getExpertNo());
        }
        if (serviceEthicalreviewinitiate.getExpertName() != null) {
            wrappers.eq(ServiceEthicalreviewinitiate::getExpertName, serviceEthicalreviewinitiate.getExpertName());
        }
        if (serviceEthicalreviewinitiate.getExpertType() != null) {
            wrappers.eq(ServiceEthicalreviewinitiate::getExpertType, serviceEthicalreviewinitiate.getExpertType());
        }
        if (serviceEthicalreviewinitiate.getExpertTime() != null) {
            wrappers.eq(ServiceEthicalreviewinitiate::getExpertTime, serviceEthicalreviewinitiate.getExpertTime());
        }
        if (serviceEthicalreviewinitiate.getStatus() != null) {
            wrappers.eq(ServiceEthicalreviewinitiate::getStatus, serviceEthicalreviewinitiate.getStatus());
        }
        return this.list(wrappers);
    }
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMeetingParticipantServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package com.ruoyi.project.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.ArrayList;
import java.util.Map;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.mapper.ServiceMeetingParticipantMapper;
import com.ruoyi.project.domain.ServiceMeetingParticipant;
import com.ruoyi.project.service.IServiceMeetingParticipantService;
/**
 * å‚会人员Service业务层处理
 *
 * @author ls
 * @date 2025-12-28
 */
@Service
public class ServiceMeetingParticipantServiceImpl extends ServiceImpl<ServiceMeetingParticipantMapper, ServiceMeetingParticipant> implements IServiceMeetingParticipantService
{
    /**
     * æŸ¥è¯¢å‚会人员列表
     *
     * @param serviceMeetingParticipant å‚会人员
     * @return å‚会人员
     */
    @Override
    public List<ServiceMeetingParticipant> queryList(ServiceMeetingParticipant serviceMeetingParticipant) {
        LambdaQueryWrapper<ServiceMeetingParticipant> wrappers = Wrappers.lambdaQuery();
        if (serviceMeetingParticipant.getMeetingId() != null){
            wrappers.eq(ServiceMeetingParticipant::getMeetingId ,serviceMeetingParticipant.getMeetingId());
        }
        if (StringUtils.isNotBlank(serviceMeetingParticipant.getUserNo())){
            wrappers.eq(ServiceMeetingParticipant::getUserNo ,serviceMeetingParticipant.getUserNo());
        }
        if (StringUtils.isNotBlank(serviceMeetingParticipant.getUserName())){
            wrappers.like(ServiceMeetingParticipant::getUserName ,serviceMeetingParticipant.getUserName());
        }
        if (StringUtils.isNotBlank(serviceMeetingParticipant.getRole())){
            wrappers.eq(ServiceMeetingParticipant::getRole ,serviceMeetingParticipant.getRole());
        }
        if (serviceMeetingParticipant.getAttendanceStatus() != null){
            wrappers.eq(ServiceMeetingParticipant::getAttendanceStatus ,serviceMeetingParticipant.getAttendanceStatus());
        }
        if (serviceMeetingParticipant.getIsRequired() != null){
            wrappers.eq(ServiceMeetingParticipant::getIsRequired ,serviceMeetingParticipant.getIsRequired());
        }
        if (serviceMeetingParticipant.getConfirmationTime() != null){
            wrappers.eq(ServiceMeetingParticipant::getConfirmationTime ,serviceMeetingParticipant.getConfirmationTime());
        }
        if (serviceMeetingParticipant.getCheckInTime() != null){
            wrappers.eq(ServiceMeetingParticipant::getCheckInTime ,serviceMeetingParticipant.getCheckInTime());
        }
        if (serviceMeetingParticipant.getCheckOutTime() != null){
            wrappers.eq(ServiceMeetingParticipant::getCheckOutTime ,serviceMeetingParticipant.getCheckOutTime());
        }
        if (StringUtils.isNotBlank(serviceMeetingParticipant.getCreatedBy())){
            wrappers.eq(ServiceMeetingParticipant::getCreatedBy ,serviceMeetingParticipant.getCreatedBy());
        }
        if (serviceMeetingParticipant.getCreatedTime() != null){
            wrappers.eq(ServiceMeetingParticipant::getCreatedTime ,serviceMeetingParticipant.getCreatedTime());
        }
        if (StringUtils.isNotBlank(serviceMeetingParticipant.getUpdatedBy())){
            wrappers.eq(ServiceMeetingParticipant::getUpdatedBy ,serviceMeetingParticipant.getUpdatedBy());
        }
        if (serviceMeetingParticipant.getUpdatedTime() != null){
            wrappers.eq(ServiceMeetingParticipant::getUpdatedTime ,serviceMeetingParticipant.getUpdatedTime());
        }
        return this.list(wrappers);
    }
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMeetingServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,117 @@
package com.ruoyi.project.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.ArrayList;
import java.util.Map;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.mapper.ServiceMeetingMapper;
import com.ruoyi.project.domain.ServiceMeeting;
import com.ruoyi.project.service.IServiceMeetingService;
/**
 * ä¼šè®®çºªè¦Service业务层处理
 *
 * @author ls
 * @date 2025-12-28
 */
@Service
public class ServiceMeetingServiceImpl extends ServiceImpl<ServiceMeetingMapper, ServiceMeeting> implements IServiceMeetingService
{
    /**
     * æŸ¥è¯¢ä¼šè®®çºªè¦åˆ—表
     *
     * @param serviceMeeting ä¼šè®®çºªè¦
     * @return ä¼šè®®çºªè¦
     */
    @Override
    public List<ServiceMeeting> queryList(ServiceMeeting serviceMeeting) {
        LambdaQueryWrapper<ServiceMeeting> wrappers = Wrappers.lambdaQuery();
        if (StringUtils.isNotBlank(serviceMeeting.getMeetingNumber())){
            wrappers.eq(ServiceMeeting::getMeetingNumber ,serviceMeeting.getMeetingNumber());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getTitle())){
            wrappers.eq(ServiceMeeting::getTitle ,serviceMeeting.getTitle());
        }
        if (serviceMeeting.getTypeId() != null){
            wrappers.eq(ServiceMeeting::getTypeId ,serviceMeeting.getTypeId());
        }
        if (serviceMeeting.getLocationId() != null){
            wrappers.eq(ServiceMeeting::getLocationId ,serviceMeeting.getLocationId());
        }
        if (serviceMeeting.getOrganizerId() != null){
            wrappers.eq(ServiceMeeting::getOrganizerId ,serviceMeeting.getOrganizerId());
        }
        if (serviceMeeting.getStartTime() != null){
            wrappers.eq(ServiceMeeting::getStartTime ,serviceMeeting.getStartTime());
        }
        if (serviceMeeting.getEndTime() != null){
            wrappers.eq(ServiceMeeting::getEndTime ,serviceMeeting.getEndTime());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getSummary())){
            wrappers.eq(ServiceMeeting::getSummary ,serviceMeeting.getSummary());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getContent())){
            wrappers.eq(ServiceMeeting::getContent ,serviceMeeting.getContent());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getAttachment())){
            wrappers.eq(ServiceMeeting::getAttachment ,serviceMeeting.getAttachment());
        }
        if (serviceMeeting.getStatus() != null){
            wrappers.eq(ServiceMeeting::getStatus ,serviceMeeting.getStatus());
        }
        if (serviceMeeting.getIsRecurring() != null){
            wrappers.eq(ServiceMeeting::getIsRecurring ,serviceMeeting.getIsRecurring());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getRecurringPattern())){
            wrappers.eq(ServiceMeeting::getRecurringPattern ,serviceMeeting.getRecurringPattern());
        }
        if (serviceMeeting.getParentMeetingId() != null){
            wrappers.eq(ServiceMeeting::getParentMeetingId ,serviceMeeting.getParentMeetingId());
        }
        if (serviceMeeting.getReminderMinutes() != null){
            wrappers.eq(ServiceMeeting::getReminderMinutes ,serviceMeeting.getReminderMinutes());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getRecordcontent())){
            wrappers.eq(ServiceMeeting::getRecordcontent ,serviceMeeting.getRecordcontent());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getRecordattachment())){
            wrappers.eq(ServiceMeeting::getRecordattachment ,serviceMeeting.getRecordattachment());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getRecorderBy())){
            wrappers.eq(ServiceMeeting::getRecorderBy ,serviceMeeting.getRecorderBy());
        }
        if (serviceMeeting.getRecorderTime() != null){
            wrappers.eq(ServiceMeeting::getRecorderTime ,serviceMeeting.getRecorderTime());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getApproverBy())){
            wrappers.eq(ServiceMeeting::getApproverBy ,serviceMeeting.getApproverBy());
        }
        if (serviceMeeting.getApprovalStatus() != null){
            wrappers.eq(ServiceMeeting::getApprovalStatus ,serviceMeeting.getApprovalStatus());
        }
        if (serviceMeeting.getApprovalTime() != null){
            wrappers.eq(ServiceMeeting::getApprovalTime ,serviceMeeting.getApprovalTime());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getCreatedBy())){
            wrappers.eq(ServiceMeeting::getCreatedBy ,serviceMeeting.getCreatedBy());
        }
        if (serviceMeeting.getCreatedTime() != null){
            wrappers.eq(ServiceMeeting::getCreatedTime ,serviceMeeting.getCreatedTime());
        }
        if (StringUtils.isNotBlank(serviceMeeting.getUpdatedBy())){
            wrappers.eq(ServiceMeeting::getUpdatedBy ,serviceMeeting.getUpdatedBy());
        }
        if (serviceMeeting.getUpdatedTime() != null){
            wrappers.eq(ServiceMeeting::getUpdatedTime ,serviceMeeting.getUpdatedTime());
        }
        return this.list(wrappers);
    }
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTrainingRecordsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
package com.ruoyi.project.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.ArrayList;
import java.util.Map;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.mapper.ServiceTrainingRecordsMapper;
import com.ruoyi.project.domain.ServiceTrainingRecords;
import com.ruoyi.project.service.IServiceTrainingRecordsService;
/**
 * äººå‘˜è¿›ä¿®ç®¡ç†Service业务层处理
 *
 * @author ls
 * @date 2025-12-28
 */
@Service
public class ServiceTrainingRecordsServiceImpl extends ServiceImpl<ServiceTrainingRecordsMapper, ServiceTrainingRecords> implements IServiceTrainingRecordsService
{
    /**
     * æŸ¥è¯¢äººå‘˜è¿›ä¿®ç®¡ç†åˆ—表
     *
     * @param serviceTrainingRecords äººå‘˜è¿›ä¿®ç®¡ç†
     * @return äººå‘˜è¿›ä¿®ç®¡ç†
     */
    @Override
    public List<ServiceTrainingRecords> queryList(ServiceTrainingRecords serviceTrainingRecords) {
        LambdaQueryWrapper<ServiceTrainingRecords> wrappers = Wrappers.lambdaQuery();
        if (StringUtils.isNotBlank(serviceTrainingRecords.getName())){
            wrappers.like(ServiceTrainingRecords::getName ,serviceTrainingRecords.getName());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getSex())){
            wrappers.eq(ServiceTrainingRecords::getSex ,serviceTrainingRecords.getSex());
        }
        if (serviceTrainingRecords.getAge() != null){
            wrappers.eq(ServiceTrainingRecords::getAge ,serviceTrainingRecords.getAge());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getEducation())){
            wrappers.eq(ServiceTrainingRecords::getEducation ,serviceTrainingRecords.getEducation());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getTrainingType())){
            wrappers.eq(ServiceTrainingRecords::getTrainingType ,serviceTrainingRecords.getTrainingType());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getIdCard())){
            wrappers.eq(ServiceTrainingRecords::getIdCard ,serviceTrainingRecords.getIdCard());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getGraduationSchool())){
            wrappers.eq(ServiceTrainingRecords::getGraduationSchool ,serviceTrainingRecords.getGraduationSchool());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getWorkUnit())){
            wrappers.eq(ServiceTrainingRecords::getWorkUnit ,serviceTrainingRecords.getWorkUnit());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getTechnicalTitle())){
            wrappers.eq(ServiceTrainingRecords::getTechnicalTitle ,serviceTrainingRecords.getTechnicalTitle());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getProfession())){
            wrappers.eq(ServiceTrainingRecords::getProfession ,serviceTrainingRecords.getProfession());
        }
        if (serviceTrainingRecords.getWorkYears() != null){
            wrappers.eq(ServiceTrainingRecords::getWorkYears ,serviceTrainingRecords.getWorkYears());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getTrainingGoal())){
            wrappers.eq(ServiceTrainingRecords::getTrainingGoal ,serviceTrainingRecords.getTrainingGoal());
        }
        if (serviceTrainingRecords.getTrainingStartDate() != null){
            wrappers.eq(ServiceTrainingRecords::getTrainingStartDate ,serviceTrainingRecords.getTrainingStartDate());
        }
        if (serviceTrainingRecords.getTrainingEndDate() != null){
            wrappers.eq(ServiceTrainingRecords::getTrainingEndDate ,serviceTrainingRecords.getTrainingEndDate());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getTrainingMajor())){
            wrappers.eq(ServiceTrainingRecords::getTrainingMajor ,serviceTrainingRecords.getTrainingMajor());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getWorkSituation())){
            wrappers.eq(ServiceTrainingRecords::getWorkSituation ,serviceTrainingRecords.getWorkSituation());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getApplySubject())){
            wrappers.eq(ServiceTrainingRecords::getApplySubject ,serviceTrainingRecords.getApplySubject());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getApplyPurpose())){
            wrappers.eq(ServiceTrainingRecords::getApplyPurpose ,serviceTrainingRecords.getApplyPurpose());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getMainEducation())){
            wrappers.eq(ServiceTrainingRecords::getMainEducation ,serviceTrainingRecords.getMainEducation());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getMainExperience())){
            wrappers.eq(ServiceTrainingRecords::getMainExperience ,serviceTrainingRecords.getMainExperience());
        }
        if (StringUtils.isNotBlank(serviceTrainingRecords.getRecordStatus())){
            wrappers.eq(ServiceTrainingRecords::getRecordStatus ,serviceTrainingRecords.getRecordStatus());
        }
        if (serviceTrainingRecords.getIsCopy() != null){
            wrappers.eq(ServiceTrainingRecords::getIsCopy ,serviceTrainingRecords.getIsCopy());
        }
        if (serviceTrainingRecords.getOriginalId() != null){
            wrappers.eq(ServiceTrainingRecords::getOriginalId ,serviceTrainingRecords.getOriginalId());
        }
        return this.list(wrappers);
    }
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTransportServiceImpl.java
@@ -6,10 +6,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.domain.ServiceDonatebaseinfoReport;
import com.ruoyi.project.domain.ServiceDonatebaseinfoReportFile;
import com.ruoyi.project.domain.ServiceTransport;
import com.ruoyi.project.domain.ServiceTransportFile;
import com.ruoyi.project.domain.*;
import com.ruoyi.project.mapper.ServiceTransportMapper;
import com.ruoyi.project.service.IServiceTransportFileService;
import com.ruoyi.project.service.IServiceTransportService;
@@ -43,6 +40,10 @@
    @Override
    public Page<ServiceTransport> queryList(ServiceTransport serviceTransport) {
        LambdaQueryWrapper<ServiceTransport> wrappers = getWrappers(serviceTransport);
        // æ·»åŠ create_time不为空的条件
        wrappers.isNotNull(ServiceTransport::getCreateTime);
        // ç„¶åŽè¿›è¡Œå€’序排序
        wrappers.orderByDesc(ServiceTransport::getCreateTime);
        // åˆ›å»ºåˆ†é¡µå¯¹è±¡ï¼Œè®¾ç½®é¡µç å’Œæ¯é¡µå¤§å°
        int currentPage = (serviceTransport.getPageNum() == null || serviceTransport.getPageNum() < 1) ? 1 : serviceTransport.getPageNum();
        int size = (serviceTransport.getPageSize() == null || serviceTransport.getPageSize() < 1) ? 10 : serviceTransport.getPageSize();
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/VUserOrgServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
package com.ruoyi.project.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.domain.VUserOrg;
import com.ruoyi.project.mapper.VUserOrgMapper;
import com.ruoyi.project.service.IVUserOrgService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * VIEWService业务层处理
 *
 * @author ruoyi
 * @date 2025-12-27
 */
@Service
public class VUserOrgServiceImpl extends ServiceImpl<VUserOrgMapper, VUserOrg> implements IVUserOrgService {
    /**
     * æŸ¥è¯¢VIEW列表
     *
     * @param vUserOrg VIEW
     * @return VIEW
     */
    @Override
    public List<VUserOrg> queryList(VUserOrg vUserOrg) {
        LambdaQueryWrapper<VUserOrg> wrappers = Wrappers.lambdaQuery();
        if (vUserOrg.getUserId() != null) {
            wrappers.eq(VUserOrg::getUserId, vUserOrg.getUserId());
        }
        if (StringUtils.isNotBlank(vUserOrg.getStatus())) {
            wrappers.eq(VUserOrg::getStatus, vUserOrg.getStatus());
        }
        if (StringUtils.isNotBlank(vUserOrg.getUserName())) {
            wrappers.like(VUserOrg::getUserName, vUserOrg.getUserName());
        }
        if (StringUtils.isNotBlank(vUserOrg.getNickName())) {
            wrappers.like(VUserOrg::getNickName, vUserOrg.getNickName());
        }
        if (StringUtils.isNotBlank(vUserOrg.getUserType())) {
            wrappers.eq(VUserOrg::getUserType, vUserOrg.getUserType());
        }
        if (StringUtils.isNotBlank(vUserOrg.getPhonenumber())) {
            wrappers.eq(VUserOrg::getPhonenumber, vUserOrg.getPhonenumber());
        }
        if (vUserOrg.getDeptId() != null) {
            wrappers.eq(VUserOrg::getDeptId, vUserOrg.getDeptId());
        }
        if (vUserOrg.getOrgId() != null) {
            wrappers.eq(VUserOrg::getOrgId, vUserOrg.getOrgId());
        }
        if (StringUtils.isNotBlank(vUserOrg.getOrganizationid())) {
            wrappers.eq(VUserOrg::getOrganizationid, vUserOrg.getOrganizationid());
        }
        if (StringUtils.isNotBlank(vUserOrg.getOrganizationname())) {
            wrappers.like(VUserOrg::getOrganizationname, vUserOrg.getOrganizationname());
        }
        if (StringUtils.isNotBlank(vUserOrg.getCoordinatorNo())) {
            wrappers.eq(VUserOrg::getCoordinatorNo, vUserOrg.getCoordinatorNo());
        }
        if (StringUtils.isNotBlank(vUserOrg.getCoordinatorName())) {
            wrappers.like(VUserOrg::getCoordinatorName, vUserOrg.getCoordinatorName());
        }
        return this.list(wrappers);
    }
}
ruoyi-project/src/main/resources/mapper/project/BaseOrganizationMapper.xml
@@ -35,11 +35,19 @@
        <result property="communityname" column="CommunityName"/>
        <result property="countycode" column="CountyCode"/>
        <result property="countyname" column="CountyName"/>
        <result property="reporterName" column="reporter_name"/>
        <result property="reporterNo" column="reporter_no"/>
        <result property="coordinatorName" column="coordinator_name"/>
        <result property="coordinatorNo" column="coordinator_no"/>
    </resultMap>
    <sql id="selectBaseOrganizationVo">
        select ID,
               OrganizationName,
               reporter_name,
               reporter_no,
               coordinator_name,
               coordinator_no,
               OrganizationID,
               LogoUrl,
               RegisterTime,
@@ -104,6 +112,10 @@
                #{communityname}, '%')
            </if>
            <if test="countycode != null  and countycode != ''">and CountyCode = #{countycode}</if>
            <if test="reporterName != null  and reporterName != ''">and reporter_name = #{reporterName}</if>
            <if test="reporterNo != null  and reporterNo != ''">and reporter_no = #{reporterNo}</if>
            <if test="coordinatorName != null  and coordinatorName != ''">and coordinator_name = #{coordinatorName}</if>
            <if test="coordinatorNo != null  and coordinatorNo != ''">and coordinatorNo = #{coordinatorNo}</if>
            <if test="countyname != null  and countyname != ''">and CountyName like concat('%', #{countyname}, '%')</if>
        </where>
    </select>
@@ -142,4 +154,4 @@
    </select>
</mapper>
</mapper>
ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml
@@ -61,7 +61,7 @@
        <result property="reportername" column="ReporterName"/>
        <result property="reporterphone" column="ReporterPhone"/>
        <result property="reporttime" column="ReportTime"/>
        <result property="del_flag" column="del_flag"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="terminationCase" column="termination_case"/>
@@ -71,7 +71,8 @@
        <result property="occupation" column="Occupation"/>
        <result property="education" column="Education"/>
        <result property="nativeplace" column="NativePlace"/>
        <result property="infoname" column="infoName"/>
        <result property="infoName" column="info_name"/>
        <result property="infoNo" column="info_no"/>
        <result property="infophone" column="infoPhone"/>
        <result property="deptid" column="deptid"/>
        <result property="deptname" column="deptname"/>
@@ -87,6 +88,9 @@
        <result property="currentDept" column="current_dept"/>
        <result property="firstDept" column="first_dept"/>
        <result property="reportId" column="report_id"/>
        <result property="gcsScore" column="gcs_score"/>
        <result property="coordinatorNo" column="coordinator_no"/>
        <result property="coordinatorName" column="coordinator_name"/>
    </resultMap>
    <sql id="selectServiceDonatebaseinfoVo">
@@ -108,6 +112,8 @@
            service_donatebaseinfo.del_flag = 0
            <if test="name != null  and name != ''">and Name like concat('%', #{name}, '%')</if>
            <if test="sex != null ">and Sex = #{sex}</if>
            <if test="coordinatorName != null ">and coordinator_name like concat('%',#{coordinatorName}, '%')</if>
            <if test="coordinatorNo != null ">and coordinator_no = #{coordinatorNo}</if>
            <if test="caseNo != null ">and service_donatebaseinfo.case_no = #{caseNo}</if>
            <if test="idcardtype != null ">and IDCardType = #{idcardtype}</if>
            <if test="idcardno != null  and idcardno != ''">and IDCardNo = #{idcardno}</if>
@@ -210,7 +216,8 @@
            </if>
            <if test="reporterphone != null  and reporterphone != ''">and ReporterPhone = #{reporterphone}</if>
            <if test="reporttime != null ">and ReportTime = #{reporttime}</if>
            <if test="infoname != null ">and infoName = #{infoname}</if>
            <if test="infoName != null ">and info_name like concat('%',#{infoName},'%')</if>
            <if test="infoNo != null ">and info_no = #{infoNo}</if>
            <if test="infophone != null ">and infoPhone = #{infophone}</if>
            <if test="createBy != null ">and `service_donatebaseinfo`.create_by = #{createBy}</if>
            <if test="starttime != null ">and donatetime >= #{starttime}</if>
@@ -226,6 +233,7 @@
            <if test="donateno != null ">and donateno = #{donateno}</if>
            <if test="workflow != null ">and workflow = #{workflow}</if>
            <if test="reportId != null ">and report_id = #{reportId}</if>
            <if test="gcsScore != null ">and gcs_score = #{gcsScore}</if>
        </where>
        order by ReportTime desc
@@ -253,6 +261,7 @@
            <if test="caseNo != null ">and b.case_no >= #{caseNo}</if>
            <if test="reportId != null ">and b.report_id = #{reportId}</if>
            <if test="endtime != null ">and b.donatetime &lt;= #{endtime}</if>
            <if test="gcsScore != null ">and b.gcs_score = #{gcsScore}</if>
            <if test="city != null and city != ''">and o.City = #{city}</if>
            <if test="reporterno != null and reporterno != ''">and b.ReporterNo = #{reporterno}</if>
        </where>
ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoReportMapper.xml
@@ -43,8 +43,6 @@
        <result property="infectious" column="Infectious"/>
        <result property="infectiousOther" column="Infectious_Other"/>
        <result property="patientstate" column="PatientState"/>
        <result property="reporterno" column="ReporterNo"/>
        <result property="reportername" column="ReporterName"/>
        <result property="reporterphone" column="ReporterPhone"/>
        <result property="reporttime" column="ReportTime"/>
        <result property="delFlag" column="del_flag"/>
@@ -58,14 +56,26 @@
        <result property="deptName" column="dept_name"/>
        <result property="deptNo" column="dept_no"/>
        <result property="isTransport" column="is_transport"/>
        <result property="gscScore" column="gsc_score"/>
        <result property="gcsScore" column="gcs_score"/>
        <result property="rhYin" column="rh_yin"/>
        <result property="bloodType" column="blood_type"/>
        <result property="coordinatorName" column="coordinator_name"/>
        <result property="coordinatorNo" column="coordinator_no"/>
        <result property="infoName" column="info_name"/>
        <result property="infoNo" column="info_no"/>
    </resultMap>
    <sql id="selectServiceDonatebaseinfoReportVo">
        select ID,
               case_no,
               coordinator_name,
               coordinator_no,
               info_name,
               info_no,
               blood_type,
               rh_yin,
               report_status,
               gsc_score,
               gcs_score,
               Name,
               Sex,
               IDCardType,
@@ -101,8 +111,6 @@
               Infectious,
               Infectious_Other,
               PatientState,
               ReporterNo,
               ReporterName,
               ReporterPhone,
               ReportTime,
               del_flag,
@@ -125,7 +133,11 @@
        <include refid="selectServiceDonatebaseinfoReportVo"/>
        <where>
            <if test="caseNo != null  and caseNo != ''">and case_no = #{caseNo}</if>
            <if test="gscScore != null  and gscScore != ''">and gsc_score = #{gscScore}</if>
            <if test="coordinatorName != null ">and coordinator_name like concat('%', #{coordinatorName}, '%')</if>
            <if test="coordinatorNo != null ">and coordinator_no = #{coordinatorNo}</if>
             <if test="infoName != null ">and info_name like concat('%', #{infoName}, '%')</if>
            <if test="infoNo != null ">and info_no = #{infoNo}</if>
            <if test="gcsScore != null  and gcsScore != ''">and gcs_score = #{gcsScore}</if>
            <if test="reportStatus != null  and reportStatus != ''">and report_status = #{reportStatus}</if>
            <if test="name != null  and name != ''">and Name like concat('%', #{name}, '%')</if>
            <if test="sex != null  and sex != ''">and Sex = #{sex}</if>
@@ -192,10 +204,6 @@
            <if test="infectious != null  and infectious != ''">and Infectious = #{infectious}</if>
            <if test="infectiousOther != null  and infectiousOther != ''">and Infectious_Other = #{infectiousOther}</if>
            <if test="patientstate != null  and patientstate != ''">and PatientState = #{patientstate}</if>
            <if test="reporterno != null  and reporterno != ''">and ReporterNo = #{reporterno}</if>
            <if test="reportername != null  and reportername != ''">and ReporterName like concat('%', #{reportername},
                '%')
            </if>
            <if test="reporterphone != null  and reporterphone != ''">and ReporterPhone = #{reporterphone}</if>
            <if test="reporttime != null ">and ReportTime = #{reporttime}</if>
            <if test="terminationCase != null ">and termination_case = #{terminationCase}</if>
@@ -204,6 +212,8 @@
            <if test="deptNo != null  and deptNo != ''">and dept_no = #{deptNo}</if>
            <if test="deptName != null  and deptName != ''">and dept_name = #{deptName}</if>
            <if test="isTransport != null  and isTransport != ''">and is_transport = #{isTransport}</if>
            <if test="rhYin != null  and rhYin != ''">and rh_yin = #{rhYin}</if>
            <if test="bloodType != null  and bloodType != ''">and blood_type = #{bloodType}</if>
        </where>
    </select>
ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.mapper.ServiceDonatemaintenanceMapper">
    <resultMap type="com.ruoyi.project.domain.ServiceDonatemaintenance" id="ServiceDonatemaintenanceResult">
        <result property="id" column="ID"/>
        <result property="infoid" column="InfoID"/>
        <result property="caseNo" column="case_no"/>
        <result property="donorno" column="DonorNo"/>
        <result property="itemNo" column="item_no"/>
        <result property="itemName" column="item_name"/>
        <result property="itemTime" column="item_time"/>
        <result property="itemDesc" column="item_desc"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <sql id="selectServiceDonatemaintenanceVo">
        select ID,
               InfoID,
               case_no,
               DonorNo,
               item_no,
               item_name,
               item_time,
               item_desc,
               del_flag,
               create_by,
               create_time,
               update_by,
               update_time
        from service_donatemaintenance
    </sql>
    <select id="selectServiceDonatemaintenanceList" parameterType="com.ruoyi.project.domain.ServiceDonatemaintenance"
            resultMap="ServiceDonatemaintenanceResult">
        <include refid="selectServiceDonatemaintenanceVo"/>
        <where>
            <if test="infoid != null ">and InfoID = #{infoid}</if>
            <if test="caseNo != null  and caseNo != ''">and case_no = #{caseNo}</if>
            <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
            <if test="itemNo != null  and itemNo != ''">and item_no = #{itemNo}</if>
            <if test="itemName != null  and itemName != ''">and item_name like concat('%', #{itemName}, '%')</if>
            <if test="itemTime != null ">and item_time = #{itemTime}</if>
            <if test="itemDesc != null  and itemDesc != ''">and item_desc = #{itemDesc}</if>
        </where>
    </select>
</mapper>
ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml
@@ -19,12 +19,28 @@
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="remark" column="remark"/>
        <result property="orderNo" column="order_no"/>
        <result property="expertConclusion" column="expert_conclusion"/>
        <result property="expertName" column="expert_name"/>
        <result property="expertNo" column="expert_no"/>
        <result property="expertOpinion" column="expert_opinion"/>
        <result property="expertTime" column="expert_time"/>
        <result property="expertType" column="expert_type"/>
        <result property="status" column="status"/>
    </resultMap>
    <sql id="selectServiceEthicalreviewinitiateVo">
        select ID,
               InfoID,
               case_no,
               order_no,
               expert_conclusion,
               expert_name,
               expert_no,
               expert_opinion,
               expert_time,
               expert_type,
               status,
               initiate_person,
               start_time,
               end_time,
@@ -51,6 +67,15 @@
            <if test="endTime != null ">and end_time = #{endTime}</if>
            <if test="initiateTheme != null  and initiateTheme != ''">and initiate_theme = #{initiateTheme}</if>
            <if test="cutOffTime != null ">and cut_off_time = #{cutOffTime}</if>
            <if test="expertConclusion != null ">and expert_conclusion = #{expertConclusion}</if>
            <if test="orderNo != null ">and order_no = #{orderNo}</if>
            <if test="expertName != null ">and expert_name = #{expertName}</if>
            <if test="expertOpinion != null ">and expert_opinion = #{expertOpinion}</if>
            <if test="expertTime != null ">and expert_time = #{expertTime}</if>
            <if test="expertType != null ">and expert_type = #{expertType}</if>
            <if test="status != null ">and status = #{status}</if>
            <if test="expertNo != null ">and expert_no = #{expertNo}</if>
        </where>
    </select>
ruoyi-project/src/main/resources/mapper/project/VUserOrgMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.mapper.VUserOrgMapper">
    <resultMap type="com.ruoyi.project.domain.VUserOrg" id="VUserOrgResult">
        <result property="userId" column="user_id"/>
        <result property="status" column="status"/>
        <result property="userName" column="user_name"/>
        <result property="nickName" column="nick_name"/>
        <result property="userType" column="user_type"/>
        <result property="phonenumber" column="phonenumber"/>
        <result property="deptId" column="dept_id"/>
        <result property="orgId" column="org_id"/>
        <result property="organizationid" column="OrganizationID"/>
        <result property="organizationname" column="OrganizationName"/>
        <result property="coordinatorNo" column="coordinator_no"/>
        <result property="coordinatorName" column="coordinator_name"/>
    </resultMap>
    <sql id="selectVUserOrgVo">
        select user_id,
               status,
               user_name,
               nick_name,
               user_type,
               phonenumber,
               dept_id,
               org_id,
               OrganizationID,
               OrganizationName,
               coordinator_no,
               coordinator_name
        from v_user_org
    </sql>
    <select id="selectVUserOrgList" parameterType="com.ruoyi.project.domain.VUserOrg" resultMap="VUserOrgResult">
        <include refid="selectVUserOrgVo"/>
        <where>
            <if test="userId != null ">and user_id = #{userId}</if>
            <if test="status != null  and status != ''">and status = #{status}</if>
            <if test="userName != null  and userName != ''">and user_name like concat('%', #{userName}, '%')</if>
            <if test="nickName != null  and nickName != ''">and nick_name like concat('%', #{nickName}, '%')</if>
            <if test="userType != null  and userType != ''">and user_type = #{userType}</if>
            <if test="phonenumber != null  and phonenumber != ''">and phonenumber = #{phonenumber}</if>
            <if test="deptId != null ">and dept_id = #{deptId}</if>
            <if test="orgId != null ">and org_id = #{orgId}</if>
            <if test="organizationid != null  and organizationid != ''">and OrganizationID = #{organizationid}</if>
            <if test="organizationname != null  and organizationname != ''">and OrganizationName like concat('%',
                #{organizationname}, '%')
            </if>
            <if test="coordinatorNo != null  and coordinatorNo != ''">and coordinator_no = #{coordinatorNo}</if>
            <if test="coordinatorName != null  and coordinatorName != ''">and coordinator_name like concat('%',
                #{coordinatorName}, '%')
            </if>
        </where>
    </select>
</mapper>