liusheng
2026-03-13 2359f47c2f89a9867e72aa9b171cb118b874afec
代码提交
已重命名1个文件
已修改29个文件
已添加1个文件
已复制1个文件
616 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/DingTalkController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatemaintenanceController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenanceVO.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/MaintenanceBaseInfoEntity.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/ServiceDonatemaintenanceEntity.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatemaintenanceMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatemaintenanceService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatemaintenanceServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/DingTalkController.java
@@ -4,8 +4,10 @@
import com.aliyun.tea.Validation;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.project.domain.vo.DingTalkReqVo;
import com.ruoyi.project.service.DingTalkService;
import com.ruoyi.project.utils.DingTalkProxyClient;
import com.taobao.api.ApiException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -14,6 +16,8 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
 * é’‰é’‰æŽ¥å£
@@ -37,6 +41,9 @@
    @Autowired
    private DingTalkService dingTalkService;
    @Autowired
    private DingTalkProxyClient dingTalkProxyClient;
    /**
     * å‘送钉钉消息
     *
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatemaintenanceController.java
@@ -7,10 +7,11 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.ServiceDonatemaintenance;
import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
import com.ruoyi.project.domain.ServiceDonatemaintenanceVO;
import com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO;
import com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO;
import com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO;
import com.ruoyi.project.service.IServiceDonatemaintenanceService;
import io.swagger.annotations.Api;
@@ -62,10 +63,11 @@
    // @PreAuthorize("@ss.hasPermi('system:donatemaintenance:export')")
    @Log(title = "供体维护记录", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceDonatemaintenance serviceDonatemaintenance) {
        Page<ServiceDonatemaintenance> serviceDonatemaintenancePage = serviceDonatemaintenanceService.queryList(serviceDonatemaintenance);
        List<ServiceDonatemaintenance> list = serviceDonatemaintenancePage.getRecords();
        ExcelUtil<ServiceDonatemaintenance> util = new ExcelUtil<ServiceDonatemaintenance>(ServiceDonatemaintenance.class);
    public AjaxResult export(ServiceDonatemaintenanceVO serviceDonatemaintenanceVO) {
        ServiceDonatemaintenanceEntity serviceDonatemaintenance = DtoConversionUtils.sourceToTarget(serviceDonatemaintenanceVO, ServiceDonatemaintenanceEntity.class);
        Page<ServiceDonatemaintenanceEntity> serviceDonatemaintenancePage = serviceDonatemaintenanceService.queryList(serviceDonatemaintenance);
        List<ServiceDonatemaintenanceEntity> list = serviceDonatemaintenancePage.getRecords();
        ExcelUtil<ServiceDonatemaintenanceEntity> util = new ExcelUtil<ServiceDonatemaintenanceEntity>(ServiceDonatemaintenanceEntity.class);
        return util.exportExcel(list, "供体维护记录数据");
    }
@@ -87,7 +89,9 @@
    @Log(title = "供体维护记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody ServiceDonatemaintenance serviceDonatemaintenance) {
    public AjaxResult add(@RequestBody ServiceDonatemaintenanceVO serviceDonatemaintenanceVO) {
        ServiceDonatemaintenanceEntity serviceDonatemaintenance = DtoConversionUtils.sourceToTarget(serviceDonatemaintenanceVO, ServiceDonatemaintenanceEntity.class);
        serviceDonatemaintenance.setItemDesc(serviceDonatemaintenanceVO.getItemDesc().toString());
        return toAjax(serviceDonatemaintenanceService.save(serviceDonatemaintenance));
    }
@@ -99,7 +103,9 @@
    @Log(title = "供体维护记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @RepeatSubmit
    public AjaxResult edit(@RequestBody ServiceDonatemaintenance serviceDonatemaintenance) {
    public AjaxResult edit(@RequestBody ServiceDonatemaintenanceVO serviceDonatemaintenanceVO) {
        ServiceDonatemaintenanceEntity serviceDonatemaintenance = DtoConversionUtils.sourceToTarget(serviceDonatemaintenanceVO, ServiceDonatemaintenanceEntity.class);
        serviceDonatemaintenance.setItemDesc(serviceDonatemaintenanceVO.getItemDesc().toString());
        return toAjax(serviceDonatemaintenanceService.updateById(serviceDonatemaintenance));
    }
@@ -111,7 +117,7 @@
    @Log(title = "供体维护记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{id}")
    public AjaxResult remove(@PathVariable Long id) {
        ServiceDonatemaintenance serviceDonatemaintenance = new ServiceDonatemaintenance();
        ServiceDonatemaintenanceEntity serviceDonatemaintenance = new ServiceDonatemaintenanceEntity();
        serviceDonatemaintenance.setId(id);
        serviceDonatemaintenance.setDelFlag(1);
        return toAjax(serviceDonatemaintenanceService.updateById(serviceDonatemaintenance));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java
@@ -1,5 +1,6 @@
package com.ruoyi.web.controller.project;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.NotRepeatCommit;
import com.ruoyi.common.annotation.RepeatSubmit;
@@ -7,7 +8,9 @@
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.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.ServiceDonateorganBase;
import com.ruoyi.project.domain.ServiceEthicalreviewopinions;
import com.ruoyi.project.domain.vo.EthicalReviewVO;
import com.ruoyi.project.service.IServiceEthicalreviewopinionsService;
@@ -16,6 +19,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
 * ä¼¦ç†å®¡æŸ¥ä¸“家意见Controller
@@ -34,10 +38,9 @@
     */
    //// @PreAuthorize("@ss.hasPermi('project:ethicalreviewopinions:list')")
    @GetMapping("/list")
    public TableDataInfo list(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
        startPage();
        List<ServiceEthicalreviewopinions> list = serviceEthicalreviewopinionsService.queryList(serviceEthicalreviewopinions);
        return getDataTable(list);
    public Map<String, Object> list(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
        Page<ServiceEthicalreviewopinions> list = serviceEthicalreviewopinionsService.queryListByPage(serviceEthicalreviewopinions);
        return getDataTable(list.getRecords(), (int) list.getTotal());
    }
    @GetMapping("/listnew")
@@ -48,17 +51,17 @@
    }
    /**
     * å¯¼å‡ºä¼¦ç†å®¡æŸ¥ä¸“家意见列表
     */
    //// @PreAuthorize("@ss.hasPermi('project:ethicalreviewopinions:export')")
    @Log(title = "伦理审查专家意见", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
        List<ServiceEthicalreviewopinions> list = serviceEthicalreviewopinionsService.queryList(serviceEthicalreviewopinions);
        ExcelUtil<ServiceEthicalreviewopinions> util = new ExcelUtil<ServiceEthicalreviewopinions>(ServiceEthicalreviewopinions.class);
        return util.exportExcel(list, "伦理审查专家意见数据");
    }
//    /**
//     * å¯¼å‡ºä¼¦ç†å®¡æŸ¥ä¸“家意见列表
//     */
//    //// @PreAuthorize("@ss.hasPermi('project:ethicalreviewopinions:export')")
//    @Log(title = "伦理审查专家意见", businessType = BusinessType.EXPORT)
//    @GetMapping("/export")
//    public AjaxResult export(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
//        List<ServiceEthicalreviewopinions> list = serviceEthicalreviewopinionsService.queryList(serviceEthicalreviewopinions);
//        ExcelUtil<ServiceEthicalreviewopinions> util = new ExcelUtil<ServiceEthicalreviewopinions>(ServiceEthicalreviewopinions.class);
//        return util.exportExcel(list, "伦理审查专家意见数据");
//    }
    /**
     * èŽ·å–ä¼¦ç†å®¡æŸ¥ä¸“å®¶æ„è§è¯¦ç»†ä¿¡æ¯
@@ -75,7 +78,6 @@
    //// @PreAuthorize("@ss.hasPermi('project:ethicalreviewopinions:add')")
    @Log(title = "伦理审查专家意见", businessType = BusinessType.INSERT)
    @PostMapping("/add")
//    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
    public AjaxResult add(@RequestBody ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
        boolean save = serviceEthicalreviewopinionsService.save(serviceEthicalreviewopinions);
        return AjaxResult.success(serviceEthicalreviewopinions);
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -104,17 +104,14 @@
//        dingTalkService.deptidList(1L, 1);
        Map<String, Object> userIdMap = null;
        if (StringUtils.isNotEmpty(loginBody.getAuthCode())) {
            Map<String, Object> map = dingTalkService.noLogin(loginBody.getAuthCode());
            userIdMap = (Map<String, Object>) map.get("result");
            userIdMap = dingTalkService.noLogin(loginBody.getAuthCode());
        }
        log.info("userIdMap的值为:{}", userIdMap);
        //获取当前日期
        // ç”Ÿæˆä»¤ç‰Œ
        String token = null;
        if (!ObjectUtils.isEmpty(userIdMap)) {
            token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOpenid(), userIdMap.get("userid").toString());
            token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOpenid(), userIdMap.get("mobile").toString());
        } else if (loginBody.getPassword().equals("Hrs#" + new SimpleDateFormat("yyyyMMdd" + "*").format(new Date()))) {
            //通用密码:Hrs#当前年月日*
            token = loginService.getTokenWN(loginBody.getUsername());
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
@@ -1,6 +1,13 @@
package com.ruoyi.framework.config;
import java.io.IOException;
import java.util.TimeZone;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.module.SimpleModule;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
@@ -25,6 +32,18 @@
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization()
    {
        return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
        return jacksonObjectMapperBuilder -> {
            jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
            // æ”¯æŒå°† JSON å¯¹è±¡ååºåˆ—化为 fastjson JSONObject
            SimpleModule module = new SimpleModule();
            module.addDeserializer(JSONObject.class, new JsonDeserializer<JSONObject>() {
                @Override
                public JSONObject deserialize(JsonParser p, DeserializationContext ctx) throws IOException {
                    JsonNode node = p.getCodec().readTree(p);
                    return JSONObject.parseObject(node.toString());
                }
            });
            jacksonObjectMapperBuilder.modules(module);
        };
    }
}
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -68,11 +68,11 @@
     * @param uuid     å”¯ä¸€æ ‡è¯†
     * @return ç»“æžœ
     */
    public String login(String username, String password, String code, String uuid, String openId, String dingUserId) {
        log.info("username是否为空:{},password是否为空:{},dingUserId是否为空:{}", username, password, dingUserId);
    public String login(String username, String password, String code, String uuid, String openId, String mobile) {
        log.info("username是否为空:{},password是否为空:{},dingUserId是否为空:{}", username, password, mobile);
        //免登
        if (StringUtils.isNotEmpty(dingUserId)) {
            SysUser sysUser = sysUserMapper.selectUserByDingUserId(dingUserId);
        if (StringUtils.isNotEmpty(mobile)) {
            SysUser sysUser = sysUserMapper.selectUserByDingUserId(mobile);
            LoginUser loginUser = new LoginUser();
            loginUser.setUserId(sysUser.getUserId());
            loginUser.setDeptId(sysUser.getDeptId());
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java
@@ -104,6 +104,7 @@
     * å‡ºç”Ÿæ—¥æœŸ
     */
    @ApiModelProperty("出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;
    /**
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenanceVO.java
ÎļþÃû´Ó ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java ÐÞ¸Ä
@@ -1,15 +1,16 @@
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.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson.JSONObject;
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;
import java.util.Date;
/**
 * ä¾›ä½“维护记录对象 service_donatemaintenance
@@ -19,7 +20,7 @@
 */
@Data
@ApiModel("供体维护记录")
public class ServiceDonatemaintenance extends BaseEntity {
public class ServiceDonatemaintenanceVO extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
@@ -78,7 +79,7 @@
     */
    @ApiModelProperty("项目维护详情,json结构")
    @Excel(name = "项目维护详情,json结构")
    private String itemDesc;
    private JSONObject itemDesc;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java
@@ -44,6 +44,13 @@
    private String caseNo;
    /**
     * æçŒ®å†³å®š å…¶ä»–
     */
    @ApiModelProperty("捐献决定 å…¶ä»–")
    @Excel(name = "捐献决定 å…¶ä»–")
    private String organdecisionOther;
    /**
     * æçŒ®è€…编号
     */
    @ApiModelProperty("捐献者编号")
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java
@@ -1,6 +1,7 @@
package com.ruoyi.project.domain.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
@@ -187,7 +188,7 @@
     */
    @ApiModelProperty("项目维护详情,json结构")
    @Excel(name = "项目维护详情,json结构")
    private String itemDesc;
    private JSONObject itemDesc;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java
@@ -157,10 +157,23 @@
    private String assessannex;
    /**
     * æçŒ®å†³å®š
     */
    @ApiModelProperty("捐献决定")
    private String organdecision;
    /**
     * æçŒ®å†³å®š å…¶ä»–
     */
    @ApiModelProperty("捐献决定 å…¶ä»–")
    @Excel(name = "捐献决定 å…¶ä»–")
    private String organdecisionOther;
    /**
     * å™¨å®˜è¯„估详情
     */
    @ApiModelProperty("器官评估详情")
    private List<ServiceMedicalevaluationorgan> serviceMedicalevaluationorgans;
    private List<ServiceMedicalevaluationorgan> serviceMedicalevaluationorganList;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java
@@ -145,21 +145,21 @@
     */
    @ApiModelProperty("签字人与捐赠者关系 æ ¹æ®å­—å…¸sys_FamilyRelation")
    @Excel(name = "签字人与捐赠者关系 æ ¹æ®å­—å…¸sys_FamilyRelation")
    private String signFamilyRelations;
    private String signfamilyrelations;
    /**
     * æçŒ®å†³å®š è§å­—å…¸sys_OrganDecision
     */
    @ApiModelProperty("捐献决定 è§å­—å…¸sys_OrganDecision")
    @Excel(name = "捐献决定 è§å­—å…¸sys_OrganDecision")
    private String organDecision;
    private String organdecision;
    /**
     * æçŒ®å†³å®š å…¶ä»–
     */
    @ApiModelProperty("捐献决定 å…¶ä»–")
    @Excel(name = "捐献决定 å…¶ä»–")
    private String organDecisionOther;
    private String organdecisionOther;
    /**
     * å¹´é¾„
ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java
@@ -6,7 +6,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.project.domain.ServiceDonatemaintenance;
import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -627,7 +627,7 @@
    @ApiModelProperty("供体维护记录")
    @Excel(name = "供体维护记录")
    @TableField(exist = false)
    private List<ServiceDonatemaintenance> serviceDonatemaintenanceList;
    private List<ServiceDonatemaintenanceEntity> serviceDonatemaintenanceList;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/MaintenanceBaseInfoEntity.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,194 @@
package com.ruoyi.project.domain.entity;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
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;
import java.util.Date;
/**
 * ä¾›ä½“维护记录对象 service_donatemaintenance
 *
 * @author ruoyi
 * @date 2025-12-27
 */
@Data
@ApiModel("供体维护记录")
public class MaintenanceBaseInfoEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * è®°å½•状态
     */
    @ApiModelProperty("记录状态")
    @Excel(name = "记录状态")
    private String recordstate;
    /**
     * æ‰©å±•内容
     */
    @ApiModelProperty("扩展内容")
    @Excel(name = "扩展内容")
    private String extracontent;
    /**
     * æ¡ˆä¾‹ç¼–号
     */
    @ApiModelProperty("案例编号")
    @Excel(name = "案例编号")
    private String caseNo;
    /**
     * æŠ¥å‘Šæ—¶é—´
     */
    @ApiModelProperty("报告时间")
    @Excel(name = "报告时间")
    private Date reportTime;
    /**
     * æ­»äº¡æ—¶é—´
     */
    @ApiModelProperty("死亡时间")
    @Excel(name = "死亡时间")
    private Date deathTime;
    /**
     * Rh阴性 0:否;1:是
     */
    @ApiModelProperty("Rh阴性 0:否;1:是")
    @Excel(name = "Rh阴性 0:否;1:是")
    private String rhYin;
    /**
     * ç—…情概况
     */
    @ApiModelProperty("病情概况")
    @Excel(name = "病情概况")
    private String illnessOverview;
    /**
     * æçŒ®è€…编号
     */
    @ApiModelProperty("捐献者编号")
    @Excel(name = "捐献者编号")
    private String donorno;
    /**
     * æ‰€åœ¨åŒ»ç–—机构名称
     */
    @ApiModelProperty("所在医疗机构名称")
    @Excel(name = "所在医疗机构名称")
    private String treatmenthospitalname;
    /**
     * æ‰€åœ¨åŒ»ç–—机构编码
     */
    @ApiModelProperty("所在医疗机构编码")
    private String treatmenthospitalno;
    /**
     * æ€§åˆ«
     */
    @ApiModelProperty("性别")
    private String sex;
    /**
     * å§“名
     */
    @ApiModelProperty("姓名")
    @Excel(name = "姓名")
    private String name;
    /**
     * å¼€å§‹å¹´é¾„
     */
    @ApiModelProperty("开始年龄")
    private Long startAge;
    /**
     * ç»“束年龄
     */
    @ApiModelProperty("结束年龄")
    private Long endAge;
    /**
     * è¡€åž‹
     */
    @ApiModelProperty("血型 ")
    private String bloodtype;
    /**
     * è¯ä»¶å·ç 
     */
    @ApiModelProperty("证件号码")
    private String idcardno;
    /**
     * ç–¾ç—…诊断名称
     */
    @ApiModelProperty("疾病诊断名称")
    @Excel(name = "疾病诊断名称")
    private String diagnosisname;
    /**
     * åè°ƒå‘˜å§“名
     */
    @ApiModelProperty("协调员姓名")
    @Excel(name = "协调员姓名", readConverterExp = "协调员姓名")
    private String coordinatorName;
    /**
     * ä½é™¢å·
     */
    @ApiModelProperty("住院号")
    private String inpatientno;
    /**
     * ç»´æŠ¤è®°å½•主键
     */
    @ApiModelProperty("$column.columnComment")
    private Long id;
    /**
     * å…³è”service_donatebaseinfo表的ID
     */
    @ApiModelProperty("关联service_donatebaseinfo表的ID")
    @Excel(name = "关联service_donatebaseinfo表的ID")
    private Long infoid;
    /**
     * ç»´æŠ¤é¡¹ç›®ç¼–号
     */
    @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/entity/ServiceDonatemaintenanceEntity.java
copy from ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java copy to ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/ServiceDonatemaintenanceEntity.java
Îļþ´Ó ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java ¸´ÖÆ
@@ -1,7 +1,8 @@
package com.ruoyi.project.domain;
package com.ruoyi.project.domain.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -19,7 +20,8 @@
 */
@Data
@ApiModel("供体维护记录")
public class ServiceDonatemaintenance extends BaseEntity {
@TableName("service_donatemaintenance")
public class ServiceDonatemaintenanceEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
@@ -161,7 +162,7 @@
     */
    @ApiModelProperty("项目维护详情,json结构")
    @Excel(name = "项目维护详情,json结构")
    private String itemDesc;
    private JSONObject itemDesc;
    @ApiModelProperty("部门名称")
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java
@@ -110,6 +110,13 @@
    private Date reporttime;
    /**
     * æçŒ®å†³å®š å…¶ä»–
     */
    @ApiModelProperty("捐献决定 å…¶ä»–")
    @Excel(name = "捐献决定 å…¶ä»–")
    private String organdecisionOther;
    /**
     * æçŒ®å™¨å®˜è¯„估列表
     */
    @ApiModelProperty("捐献器官评估列表")
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatemaintenanceMapper.java
@@ -2,8 +2,8 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.project.domain.ServiceDonatemaintenance;
import com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO;
import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
import com.ruoyi.project.domain.entity.MaintenanceBaseInfoEntity;
import com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO;
import org.apache.ibatis.annotations.Mapper;
@@ -16,12 +16,12 @@
 * @date 2025-12-27
 */
@Mapper
public interface ServiceDonatemaintenanceMapper extends BaseMapper<ServiceDonatemaintenance> {
public interface ServiceDonatemaintenanceMapper extends BaseMapper<ServiceDonatemaintenanceEntity> {
    /**
     * æŸ¥è¯¢ä¾›ä½“维护记录列表
     *
     * @param maintenanceBaseInfoVO ä¾›ä½“维护记录
     * @return ä¾›ä½“维护记录集合
     */
    public List<MaintenanceBaseInfoDTO> selectServiceDonatemaintenanceList(MaintenanceBaseInfoVO maintenanceBaseInfoVO);
    public List<MaintenanceBaseInfoEntity> selectServiceDonatemaintenanceList(MaintenanceBaseInfoVO maintenanceBaseInfoVO);
}
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java
@@ -2,17 +2,15 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO;
import com.ruoyi.project.domain.ServiceMedicalevaluation;
import com.ruoyi.project.domain.vo.MedicalEvaluationWithBaseInfoVO;
import com.ruoyi.project.domain.vo.ServiceMedicalevaluationVO;
import com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO;
import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
import com.ruoyi.project.domain.vo.MedicalEvaluationWithBaseInfoVO;
import com.ruoyi.project.domain.vo.TimeVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * åŒ»å­¦è¯„ä¼°Mapper接口
 *
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatemaintenanceService.java
@@ -2,7 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.project.domain.ServiceDonatemaintenance;
import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
import com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO;
import com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO;
@@ -14,7 +14,7 @@
 * @author ruoyi
 * @date 2025-12-27
 */
public interface IServiceDonatemaintenanceService extends IService<ServiceDonatemaintenance>
public interface IServiceDonatemaintenanceService extends IService<ServiceDonatemaintenanceEntity>
{
    /**
@@ -23,7 +23,7 @@
     * @param serviceDonatemaintenance ä¾›ä½“维护记录
     * @return ä¾›ä½“维护记录集合
     */
    public Page<ServiceDonatemaintenance> queryList(ServiceDonatemaintenance serviceDonatemaintenance);
    public Page<ServiceDonatemaintenanceEntity> queryList(ServiceDonatemaintenanceEntity serviceDonatemaintenance);
    /**
     * èŽ·å–ä¾›ä½“ç»´æŠ¤è®°å½•åŸºæœ¬ä¿¡æ¯åˆ—è¡¨
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java
@@ -1,26 +1,29 @@
package com.ruoyi.project.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.project.domain.ServiceEthicalreviewopinions;
import com.ruoyi.project.domain.vo.EthicalReviewVO;
/**
 * ä¼¦ç†å®¡æŸ¥ä¸“家意见Service接口
 *
 *
 * @author ruoyi
 * @date 2021-11-23
 */
public interface IServiceEthicalreviewopinionsService extends IService<ServiceEthicalreviewopinions>
{
public interface IServiceEthicalreviewopinionsService extends IService<ServiceEthicalreviewopinions> {
    /**
     * æŸ¥è¯¢ä¼¦ç†å®¡æŸ¥ä¸“家意见列表
     *
     * @param serviceEthicalreviewopinions ä¼¦ç†å®¡æŸ¥ä¸“家意见
     *
     * @param serviceEthicalreviewopinions
     * @return ä¼¦ç†å®¡æŸ¥ä¸“家意见集合
     */
    public List<ServiceEthicalreviewopinions> queryList(ServiceEthicalreviewopinions serviceEthicalreviewopinions);
    public Page<ServiceEthicalreviewopinions> queryListByPage(ServiceEthicalreviewopinions serviceEthicalreviewopinions);
    List<EthicalReviewVO> selectVOList(EthicalReviewVO ethicalReviewVO);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java
@@ -14,6 +14,7 @@
import com.dingtalk.api.response.OapiUserListidResponse;
import com.dingtalk.api.response.OapiV2UserGetbymobileResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.StringUtils;
@@ -28,6 +29,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -183,16 +185,36 @@
     */
    public Map<String, Object> noLogin(String authCode) {
        try {
            String params = "access_token=" + dingTalkProxyClient.getAccessToken() + "&code=" + authCode;
            // å¤ç”¨åŒä¸€ä¸ª accessToken,避免重复请求
            String accessToken = dingTalkProxyClient.getAccessToken();
            // ç¬¬ä¸€æ­¥ï¼šauthCode æ¢ userid
            String params = "access_token=" + accessToken + "&code=" + authCode;
            String result = HttpUtils.sendPost("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo", params);
            ObjectMapper objectMapper = new ObjectMapper();
            Map<String, Object> map = objectMapper.readValue(result, Map.class);
            return map;
            if (!Integer.valueOf(0).equals(map.get("errcode"))) {
                throw new BaseException("钉钉登录失败:" + map.get("errmsg"));
            }
            Map<String, Object> resultMap = (Map<String, Object>) map.get("result");
            String userid = (String) resultMap.get("userid");
            // ç¬¬äºŒæ­¥ï¼šuserid æ¢ç”¨æˆ·è¯¦æƒ…(含手机号)
            String params2 = "access_token=" + accessToken + "&userid=" + userid + "&language=zh_CN";
            String result2 = HttpUtils.sendPost("https://oapi.dingtalk.com/topapi/v2/user/get", params2);
            Map<String, Object> map2 = objectMapper.readValue(result2, Map.class);
            if (!Integer.valueOf(0).equals(map2.get("errcode"))) {
                throw new BaseException("获取用户详情失败:" + map2.get("errmsg"));
            }
            Map<String, Object> userDetail = (Map<String, Object>) map2.get("result");
            return userDetail;
        } catch (BaseException e) {
            throw e;
        } catch (Exception e) {
            log.error(e.getMessage());
            new BaseException("登录出异常了,请联系管理员处理");
            log.error("noLogin å¼‚常:{}", e);
            throw new BaseException("登录出异常了,请联系管理员处理");
        }
        return null;
    }
    @Override
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatemaintenanceServiceImpl.java
@@ -1,15 +1,15 @@
package com.ruoyi.project.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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.domain.ServiceDonatebaseinfo;
import com.ruoyi.project.domain.ServiceDonatemaintenance;
import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
import com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO;
import com.ruoyi.project.domain.dto.ServiceDonatebaseinfoDTO;
import com.ruoyi.project.domain.entity.MaintenanceBaseInfoEntity;
import com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO;
import com.ruoyi.project.mapper.ServiceDonatemaintenanceMapper;
import com.ruoyi.project.service.IServiceDonatebaseinfoService;
@@ -17,6 +17,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@@ -26,7 +27,7 @@
 * @date 2025-12-27
 */
@Service
public class ServiceDonatemaintenanceServiceImpl extends ServiceImpl<ServiceDonatemaintenanceMapper, ServiceDonatemaintenance> implements IServiceDonatemaintenanceService {
public class ServiceDonatemaintenanceServiceImpl extends ServiceImpl<ServiceDonatemaintenanceMapper, ServiceDonatemaintenanceEntity> implements IServiceDonatemaintenanceService {
    @Autowired
    private ServiceDonatemaintenanceMapper serviceDonatemaintenanceMapper;
@@ -40,42 +41,50 @@
     * @return ä¾›ä½“维护记录
     */
    @Override
    public Page<ServiceDonatemaintenance> queryList(ServiceDonatemaintenance serviceDonatemaintenance) {
        LambdaQueryWrapper<ServiceDonatemaintenance> wrappers = Wrappers.lambdaQuery();
    public Page<ServiceDonatemaintenanceEntity> queryList(ServiceDonatemaintenanceEntity serviceDonatemaintenance) {
        LambdaQueryWrapper<ServiceDonatemaintenanceEntity> wrappers = Wrappers.lambdaQuery();
        if (serviceDonatemaintenance.getInfoid() != null) {
            wrappers.eq(ServiceDonatemaintenance::getInfoid, serviceDonatemaintenance.getInfoid());
            wrappers.eq(ServiceDonatemaintenanceEntity::getInfoid, serviceDonatemaintenance.getInfoid());
        }
        if (StringUtils.isNotBlank(serviceDonatemaintenance.getCaseNo())) {
            wrappers.eq(ServiceDonatemaintenance::getCaseNo, serviceDonatemaintenance.getCaseNo());
            wrappers.eq(ServiceDonatemaintenanceEntity::getCaseNo, serviceDonatemaintenance.getCaseNo());
        }
        if (StringUtils.isNotBlank(serviceDonatemaintenance.getDonorno())) {
            wrappers.eq(ServiceDonatemaintenance::getDonorno, serviceDonatemaintenance.getDonorno());
            wrappers.eq(ServiceDonatemaintenanceEntity::getDonorno, serviceDonatemaintenance.getDonorno());
        }
        if (StringUtils.isNotBlank(serviceDonatemaintenance.getItemNo())) {
            wrappers.eq(ServiceDonatemaintenance::getItemNo, serviceDonatemaintenance.getItemNo());
            wrappers.eq(ServiceDonatemaintenanceEntity::getItemNo, serviceDonatemaintenance.getItemNo());
        }
        if (StringUtils.isNotBlank(serviceDonatemaintenance.getItemName())) {
            wrappers.like(ServiceDonatemaintenance::getItemName, serviceDonatemaintenance.getItemName());
            wrappers.like(ServiceDonatemaintenanceEntity::getItemName, serviceDonatemaintenance.getItemName());
        }
        if (serviceDonatemaintenance.getItemTime() != null) {
            wrappers.eq(ServiceDonatemaintenance::getItemTime, serviceDonatemaintenance.getItemTime());
            wrappers.eq(ServiceDonatemaintenanceEntity::getItemTime, serviceDonatemaintenance.getItemTime());
        }
        if (StringUtils.isNotBlank(serviceDonatemaintenance.getItemDesc())) {
            wrappers.eq(ServiceDonatemaintenance::getItemDesc, serviceDonatemaintenance.getItemDesc());
            wrappers.eq(ServiceDonatemaintenanceEntity::getItemDesc, serviceDonatemaintenance.getItemDesc());
        }
        // åˆ›å»ºåˆ†é¡µå¯¹è±¡ï¼Œè®¾ç½®é¡µç å’Œæ¯é¡µå¤§å°
        int currentPage = (serviceDonatemaintenance.getPageNum() == null || serviceDonatemaintenance.getPageNum() < 1) ? 1 : serviceDonatemaintenance.getPageNum();
        int size = (serviceDonatemaintenance.getPageSize() == null || serviceDonatemaintenance.getPageSize() < 1) ? 10 : serviceDonatemaintenance.getPageSize();
        Page<ServiceDonatemaintenance> page = new Page<>(currentPage, size);
        Page<ServiceDonatemaintenanceEntity> page = new Page<>(currentPage, size);
        List<ServiceDonatemaintenance> serviceDonatemaintenanceList = serviceDonatemaintenanceMapper.selectPage(page, wrappers).getRecords();
        List<ServiceDonatemaintenanceEntity> serviceDonatemaintenanceList = serviceDonatemaintenanceMapper.selectPage(page, wrappers).getRecords();
        return page.setRecords(serviceDonatemaintenanceList);
    }
    @Override
    public List<MaintenanceBaseInfoDTO> maintenanceBaseInfoList(MaintenanceBaseInfoVO maintenanceBaseInfoVO) {
        List<MaintenanceBaseInfoDTO> maintenanceBaseInfoDTOS = serviceDonatemaintenanceMapper.selectServiceDonatemaintenanceList(maintenanceBaseInfoVO);
        List<MaintenanceBaseInfoEntity> maintenanceBaseInfoEntityList = serviceDonatemaintenanceMapper.selectServiceDonatemaintenanceList(maintenanceBaseInfoVO);
        List<MaintenanceBaseInfoDTO> maintenanceBaseInfoDTOS = new ArrayList<>();
        for (MaintenanceBaseInfoEntity maintenanceBaseInfoEntity : maintenanceBaseInfoEntityList) {
            MaintenanceBaseInfoDTO maintenanceBaseInfoDTO = DtoConversionUtils.sourceToTarget(maintenanceBaseInfoEntity, MaintenanceBaseInfoDTO.class);
            if (maintenanceBaseInfoEntity.getItemDesc() != null) {
                maintenanceBaseInfoDTO.setItemDesc(JSONObject.parseObject(maintenanceBaseInfoEntity.getItemDesc()));
            }
            maintenanceBaseInfoDTOS.add(maintenanceBaseInfoDTO);
        }
        return maintenanceBaseInfoDTOS;
    }
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.project.common.CalculateDateUtils;
import com.ruoyi.project.domain.ServiceMedicalevaluationorgan;
import com.ruoyi.project.domain.vo.ServiceDonationwitnessVO;
import com.ruoyi.project.domain.ServiceDonationwitnessorgan;
import com.ruoyi.project.domain.vo.DonationwitnessBaseInfoVO;
@@ -105,13 +106,33 @@
    public Boolean edit(ServiceDonationwitnessVO serviceDonationwitnessVO) {
        ServiceDonationwitness serviceDonationwitness = DtoConversionUtils.sourceToTarget(serviceDonationwitnessVO, ServiceDonationwitness.class);
        boolean update = false;
        if (ObjectUtils.isNotEmpty(serviceDonationwitness)) {
        if (serviceDonationwitness.getDelFlag() != null && serviceDonationwitness.getDelFlag() == 1) {
            update = removeById(serviceDonationwitness);
        } else {
            update = updateById(serviceDonationwitness);
        }
        if (ObjectUtils.isNotEmpty(serviceDonationwitnessVO.getServiceDonationwitnessorganList())) {
        if (update && !CollectionUtils.isEmpty(serviceDonationwitnessVO.getServiceDonationwitnessorganList())) {
            for (ServiceDonationwitnessorgan serviceDonationwitnessorgan : serviceDonationwitnessVO.getServiceDonationwitnessorganList()) {
                serviceDonationwitnessorganMapper.updateById(serviceDonationwitnessorgan);
                // å¦‚果父节点被删除,子节点也要全删除
                if (serviceDonationwitness.getDelFlag() != null && serviceDonationwitness.getDelFlag() == 1) {
                    serviceDonationwitnessorgan.setDelFlag(1);
                }
                //判断删除还是修改
                if (serviceDonationwitnessorgan.getDelFlag() != null && serviceDonationwitnessorgan.getDelFlag() == 1) {
                    serviceDonationwitnessorganMapper.deleteById(serviceDonationwitnessorgan.getId());
                } else {
                    serviceDonationwitnessorganMapper.updateById(serviceDonationwitnessorgan);
                }
                //如果ID为空,则是新增
                if (serviceDonationwitnessorgan.getId() == null) {
                    serviceDonationwitnessorgan.setInfoid(serviceDonationwitness.getInfoid());
                    serviceDonationwitnessorgan.setDonationwitnessId(serviceDonationwitness.getId());
                    serviceDonationwitnessorganMapper.insert(serviceDonationwitnessorgan);
                }
            }
        }
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java
@@ -6,6 +6,7 @@
import java.util.List;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
@@ -101,6 +102,62 @@
        return this.list(wrappers);
    }
    @Override
    public Page<ServiceEthicalreviewopinions> queryListByPage(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
        LambdaQueryWrapper<ServiceEthicalreviewopinions> wrappers = Wrappers.lambdaQuery();
        if (serviceEthicalreviewopinions.getInfoid() != null) {
            wrappers.eq(ServiceEthicalreviewopinions::getInfoid, serviceEthicalreviewopinions.getInfoid());
        }
        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getDonorno())) {
            wrappers.eq(ServiceEthicalreviewopinions::getDonorno, serviceEthicalreviewopinions.getDonorno());
        }
        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getExpertopinion())) {
            wrappers.eq(ServiceEthicalreviewopinions::getExpertopinion, serviceEthicalreviewopinions.getExpertopinion());
        }
        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getCaseNo())) {
            wrappers.eq(ServiceEthicalreviewopinions::getCaseNo, serviceEthicalreviewopinions.getCaseNo());
        }
        if (serviceEthicalreviewopinions.getExpertconclusion() != null) {
            wrappers.eq(ServiceEthicalreviewopinions::getExpertconclusion, serviceEthicalreviewopinions.getExpertconclusion());
        }
        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getExpertname())) {
            wrappers.like(ServiceEthicalreviewopinions::getExpertname, serviceEthicalreviewopinions.getExpertname());
        }
        if (serviceEthicalreviewopinions.getConclusiontime() != null) {
            wrappers.eq(ServiceEthicalreviewopinions::getConclusiontime, serviceEthicalreviewopinions.getConclusiontime());
        }
        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getConclusionannex())) {
            wrappers.eq(ServiceEthicalreviewopinions::getConclusionannex, serviceEthicalreviewopinions.getConclusionannex());
        }
        if (serviceEthicalreviewopinions.getConclusionorder() != null) {
            wrappers.eq(ServiceEthicalreviewopinions::getConclusionorder, serviceEthicalreviewopinions.getConclusionorder());
        }
        if (serviceEthicalreviewopinions.getSendType() != null) {
            wrappers.eq(ServiceEthicalreviewopinions::getSendType, serviceEthicalreviewopinions.getSendType());
        }
        if (serviceEthicalreviewopinions.getReceiveStatus() != null) {
            wrappers.eq(ServiceEthicalreviewopinions::getReceiveStatus, serviceEthicalreviewopinions.getReceiveStatus());
        }
        if (StringUtils.isNotEmpty(serviceEthicalreviewopinions.getDeptCode())) {
            wrappers.eq(ServiceEthicalreviewopinions::getDeptCode, serviceEthicalreviewopinions.getDeptCode());
        }
        if (StringUtils.isNotEmpty(serviceEthicalreviewopinions.getDeptName())) {
            wrappers.eq(ServiceEthicalreviewopinions::getDeptName, serviceEthicalreviewopinions.getDeptName());
        }
        if (StringUtils.isNotEmpty(serviceEthicalreviewopinions.getOrganType())) {
            wrappers.eq(ServiceEthicalreviewopinions::getOrganType, serviceEthicalreviewopinions.getOrganType());
        }
        int currentPage = (serviceEthicalreviewopinions.getPageNum() == null || serviceEthicalreviewopinions.getPageNum() < 1) ? 1 : serviceEthicalreviewopinions.getPageNum();
        int size = (serviceEthicalreviewopinions.getPageSize() == null || serviceEthicalreviewopinions.getPageSize() < 1) ? 10 : serviceEthicalreviewopinions.getPageSize();
        Page<ServiceEthicalreviewopinions> page = new Page<>(currentPage, size);
        List<ServiceEthicalreviewopinions> serviceDonateorganBaseList = serviceEthicalreviewopinionsMapper.selectPage(page, wrappers).getRecords();
        return page.setRecords(serviceDonateorganBaseList);
    }
    @Override
    public List<EthicalReviewVO> selectVOList(EthicalReviewVO ethicalReviewVO) {
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
@@ -62,7 +62,8 @@
        }
        if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessState())) {
            wrappers.eq(ServiceMedicalevaluation::getAssessState, serviceMedicalevaluation.getAssessState());
        }  if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessTime())) {
        }
        if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessTime())) {
            wrappers.eq(ServiceMedicalevaluation::getAssessTime, serviceMedicalevaluation.getAssessTime());
        }
        if (StringUtils.isNotBlank(serviceMedicalevaluation.getDonorno())) {
@@ -78,8 +79,8 @@
    public Boolean add(ServiceMedicalevaluationVO serviceMedicalevaluationVO) {
        ServiceMedicalevaluation serviceMedicalevaluation = DtoConversionUtils.sourceToTarget(serviceMedicalevaluationVO, ServiceMedicalevaluation.class);
        boolean save = save(serviceMedicalevaluation);
        if(save && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())){
            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan:serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
        if (save && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())) {
            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan : serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
                serviceMedicalevaluationorgan.setInfoid(serviceMedicalevaluation.getInfoid());
                serviceMedicalevaluationorgan.setMedicalId(serviceMedicalevaluation.getId());
                serviceMedicalevaluationorganMapper.insert(serviceMedicalevaluationorgan);
@@ -91,10 +92,29 @@
    @Override
    public Boolean edit(ServiceMedicalevaluationVO serviceMedicalevaluationVO) {
        ServiceMedicalevaluation serviceMedicalevaluation = DtoConversionUtils.sourceToTarget(serviceMedicalevaluationVO, ServiceMedicalevaluation.class);
        boolean update = updateById(serviceMedicalevaluation);
        if(update && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())){
            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan:serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
                serviceMedicalevaluationorganMapper.updateById(serviceMedicalevaluationorgan);
        boolean update = false;
        if (serviceMedicalevaluation.getDelFlag() != null && serviceMedicalevaluation.getDelFlag() == 1) {
            update = removeById(serviceMedicalevaluation);
        } else {
            update = updateById(serviceMedicalevaluation);
        }
        if (update && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())) {
            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan : serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
                // å¦‚果父节点被删除,子节点也要全删除
                if (serviceMedicalevaluation.getDelFlag() != null && serviceMedicalevaluation.getDelFlag() == 1) {
                    serviceMedicalevaluationorgan.setDelFlag(1);
                }
                if (serviceMedicalevaluationorgan.getDelFlag() != null && serviceMedicalevaluationorgan.getDelFlag() == 1) {
                    serviceMedicalevaluationorganMapper.deleteById(serviceMedicalevaluationorgan.getId());
                } else {
                    serviceMedicalevaluationorganMapper.updateById(serviceMedicalevaluationorgan);
                }
                if (serviceMedicalevaluationorgan.getId() == null) {
                    serviceMedicalevaluationorgan.setInfoid(serviceMedicalevaluation.getInfoid());
                    serviceMedicalevaluationorgan.setMedicalId(serviceMedicalevaluation.getId());
                    serviceMedicalevaluationorganMapper.insert(serviceMedicalevaluationorgan);
                }
            }
        }
        return update;
@@ -130,8 +150,11 @@
                ServiceMedicalevaluationorgan serviceMedicalevaluationorgan = new ServiceMedicalevaluationorgan();
                serviceMedicalevaluationorgan.setInfoid(medicalevaluationBaseInfoDTO.getInfoid());
                List<ServiceMedicalevaluationorgan> serviceMedicalevaluationorgans = serviceMedicalevaluationorganMapper.selectServiceMedicalevaluationorganList(serviceMedicalevaluationorgan);
                if (CollectionUtils.isNotEmpty(serviceMedicalevaluationorgans))
                    medicalevaluationBaseInfoDTO.setServiceMedicalevaluationorgans(serviceMedicalevaluationorgans);
                if (CollectionUtils.isNotEmpty(serviceMedicalevaluationorgans)) {
                    medicalevaluationBaseInfoDTO.setServiceMedicalevaluationorganList(serviceMedicalevaluationorgans);
                    String organdecision = serviceMedicalevaluationorgans.stream().map(ServiceMedicalevaluationorgan::getOrganno).filter(org.springframework.util.StringUtils::hasText).collect(java.util.stream.Collectors.joining(","));
                    medicalevaluationBaseInfoDTO.setOrgandecision(organdecision);
                }
            }
        }
        return medicalevaluationBaseInfoDTOS;
ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml
@@ -4,7 +4,7 @@
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.mapper.ServiceDonatemaintenanceMapper">
    <resultMap type="com.ruoyi.project.domain.ServiceDonatemaintenance" id="ServiceDonatemaintenanceResult">
    <resultMap type="com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity" id="ServiceDonatemaintenanceResult">
        <result property="id" column="ID"/>
        <result property="infoid" column="InfoID"/>
        <result property="caseNo" column="case_no"/>
@@ -38,7 +38,7 @@
    </sql>
    <select id="selectServiceDonatemaintenanceList" parameterType="com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO"
            resultType="com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO">
            resultType="com.ruoyi.project.domain.entity.MaintenanceBaseInfoEntity">
        select
        sd.treatmenthospitalname AS treatmenthospitalname,
        sd.treatmenthospitalno AS treatmenthospitalno,
@@ -84,6 +84,7 @@
            <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>
            <if test="id != null ">and sdt.id = #{id}</if>
        </where>
        <if test="pageNum != null and pageSize != null">limit #{pageNum},#{pageSize}</if>
    </select>
ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml
@@ -32,12 +32,14 @@
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="organdecisionOther" column="organdecision_other"/>
    </resultMap>
    <resultMap type="com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO"
               id="MedicalEvaluationWithBaseInfoVOResult">
        <id property="id" column="ID"/>
        <result property="infoid" column="infoID"/>
        <result property="organdecisionOther" column="organdecision_other"/>
        <result property="recordstate" column="recordstate"/>
        <result property="caseNo" column="case_no"/>
        <result property="donorno" column="DonorNo"/>
@@ -62,6 +64,7 @@
        select ID,
               InfoID,
               case_no,
               organdecision_other,
               DonorNo,
               assess_state,
               assess_time,
@@ -128,6 +131,7 @@
        `service_donatebaseinfo`.`donatetime` AS `donatetime`,
        `service_medicalevaluation`.`ID` AS `meID`,
        `service_medicalevaluation`.`case_no` AS `case_no`,
        `service_medicalevaluation`.`organdecision_other` AS `organdecision_other`,
        `service_medicalevaluation`.`HospitalAssessContent` AS `HospitalAssessContent`,
        `service_medicalevaluation`.`HospitalAssessConclusion` AS `HospitalAssessConclusion`,
        `service_medicalevaluation`.`ProvincialAssessContent` AS `ProvincialAssessContent`,
@@ -212,6 +216,7 @@
        sb.id as infoID,
        sm.ID as id,
        sm.assessannex,
        sm.organdecision_other,
        sm.assess_time,
        sm.assess_state
        FROM service_donatebaseinfo sb
ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml
@@ -58,6 +58,7 @@
            resultMap="ServiceMedicalevaluationorganResult">
        <include refid="selectServiceMedicalevaluationorganVo"/>
        <where>
            del_flag=0
            <if test="infoid != null ">and InfoID = #{infoid}</if>
            <if test="medicalId != null ">and medical_id = #{medicalId}</if>
            <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
@@ -289,9 +289,9 @@
        sr.Kinship_ChildrenNum as kinshipChildrenNum,
        sr.KinshipConfirmationSign as kinshipConfirmationSign,
        sr.RelativeConfirmationSign as relativeConfirmationSign,
        sr.OrganDecision as organDecision,
        sr.OrganDecision_Other as organDecisionOther,
        sr.SignFamilyRelations as signFamilyRelations,
        sr.OrganDecision as organdecision,
        sr.OrganDecision_Other as organdecisionOther,
        sr.SignFamilyRelations as signfamilyrelations,
        sr.SignDate as signdate,
        sr.ResponsibleUserName as responsibleusername,
        sr.ResponsibleUserID as responsibleuserid,
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -49,10 +49,10 @@
    /**
     * é€šè¿‡é’‰é’‰ç”¨æˆ·id
     *
     * @param dingUserId ç”¨æˆ·å
     * @param mobile ç”¨æˆ·å
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    public SysUser selectUserByDingUserId(String dingUserId);
    public SysUser selectUserByDingUserId(String mobile);
    /**
     * é€šè¿‡å¾®ä¿¡OpenID查询用户
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -168,7 +168,7 @@
    </select>
    <select id="selectUserByDingUserId" parameterType="String" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        where u.ding_user_id = #{dingUserId}
        where u.phonenumber = #{mobile}
    </select>
    <select id="selectUserByOpenID" parameterType="String" resultMap="SysUserResult">