1、审批顺序:审批时,从一级到五级逐级审批,回退时,由审批人员指定回退级别,如从五级审批退回到经办人(需要重新修改材料的人员处),每一级可以看到回退的信息;修改完成后,直接从经办人处到达五级审批或退回的审批人。被退回的信息修改完成后,直接从经办人到达五级审批或退回的审批人处,那么其他层级的审批人虽然不需要审批,但要能够看到重新修改后的信息。
说明:
(1)差旅费报销主表:service_reimbursement
标识字段:FlowLevel(当前审核级别 处于哪个阶段 0:申请;1:一级审核;2:二级审核;3:三级审核等; 4:四级审核等; 5:五级审核等);RecordStatus(记录状态 详见字典sys_travelexpensestatus)
(2)费用报销主表:service_fund
标识字段:FlowLevel(当前审核级别 处于哪个阶段 0:申请;1:一级审核;2:二级审核;3:三级审核等; 4:四级审核等; 5:五级审核等);RecordStatus(记录状态 详见字典sys_travelexpensestatus)
(3)审批流程设置表:service_fundflowrule
(4)审批流程记录表:service_fundflow

通过钉钉将消息发送给发起人,进行重新修改
已添加4个文件
已修改26个文件
1441 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/DingTalkController.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/pom.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundShared.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java 150 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementShared.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementpayeeShared.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DingTalkReqVo.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundSharedMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementSharedMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/DingTalkService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundSharedService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementSharedService.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundSharedServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementSharedServiceImpl.java 192 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceFundSharedMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementSharedMapper.xml 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementpayeeSharedMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/DingTalkController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
package com.ruoyi.web.controller.project;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.project.domain.vo.DingTalkReqVo;
import com.ruoyi.project.service.DingTalkService;
import com.taobao.api.ApiException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * é’‰é’‰æŽ¥å£
 *
 * @author liusheng
 * @date 2023-05-15
 */
@Api(description = "钉钉接口")
@RestController
@RequestMapping("/smartor/dingtalk")
@PropertySource(value = {"classpath:application-druid.yml"})
public class DingTalkController extends BaseController {
    @Value("${dingAppid}")
    private String dingAppid;
    @Value("${dingAppSecret}")
    private String dingAppSecret;
    @Autowired
    private DingTalkService dingTalkService;
    /**
     * å‘送钉钉消息
     *
     * @param dingTalkReqVo å‘送内容
     * @throws ApiException
     */
    @ApiOperation("发送钉钉消息")
    @PostMapping("/sendNotification")
    public AjaxResult sendNotification(@RequestBody DingTalkReqVo dingTalkReqVo) {
        Boolean aBoolean = dingTalkService.sendNotification(dingTalkReqVo);
        if (aBoolean) {
            return success();
        }
        return error();
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
@@ -450,7 +450,7 @@
    @Log(title = "审核费用", businessType = BusinessType.OTHER)
    @PostMapping("/checkfund")
    public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) {
        logger.info("serviceFundController---checkFund的入参值checkFundVO :{}",checkFundVO);
        logger.info("serviceFundController---checkFund的入参值checkFundVO :{}", checkFundVO);
        ServiceFund serviceFund = serviceFundService.getById(checkFundVO.getFundid());
        if (serviceFund != null) {
            Integer TotalLevel = 0;
@@ -459,7 +459,7 @@
            serviceFundflowrule.setFundtype(2);
            serviceFundflowrule.setApplytype(serviceFund.getApplytype());
            serviceFundflowrule.setCheckuserno(loginUser.getUsername());
            logger.info("serviceFundController---checkFund---queryList的入参值serviceFundflowrule:{}",serviceFundflowrule);
            logger.info("serviceFundController---checkFund---queryList的入参值serviceFundflowrule:{}", serviceFundflowrule);
            List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
@@ -493,10 +493,15 @@
                FlowLevel = FlowLevel + 1;
            } else {
                CheckFlag = 2;
                RecordStatus = (FlowLevel + 1) * 2 - 1;
                FlowLevel = (FlowLevel - 1);
                if (FlowLevel < 0) {
                if (CheckFlag == 2) {
                    //应医院要求如果出现退回,直接退到发起者
                    FlowLevel = 0;
                } else {
                    RecordStatus = (FlowLevel + 1) * 2 - 1;
                    FlowLevel = (FlowLevel - 1);
                    if (FlowLevel < 0) {
                        FlowLevel = 0;
                    }
                }
            }
@@ -550,7 +555,7 @@
                    columnMap.put("fundID", checkFundVO.getFundid());
                    //获取详情数据
                    List<ServiceFunddetail> serviceFunddetails = serviceFunddetailMapper.selectByMap(columnMap);
                    logger.info("serviceFundController---checkFund的返回值serviceFunddetails :{}",serviceFunddetails);
                    logger.info("serviceFundController---checkFund的返回值serviceFunddetails :{}", serviceFunddetails);
                    List<ServiceFunddetailShared> serviceFunddetailShareds = DtoConversionUtils.sourceToTarget(serviceFunddetails, ServiceFunddetailShared.class);
                    for (int i = 0; i < serviceFunddetails.size(); i++) {
                        serviceFunddetailShareds.get(i).setFundid(serviceFundShared.getId());
@@ -589,11 +594,29 @@
    @PutMapping
    @RepeatSubmit
    public AjaxResult edit(@RequestBody ServiceFund serviceFund) {
        boolean bret = serviceFundService.updateById(serviceFund);
        List<ServiceFund> infoByInfoIdList = serviceFundService.getInfoByInfoId(serviceFund.getId());
        for (ServiceFund sf : infoByInfoIdList) {
            //如果等于100,说明已经走到医院财务那边了;财务那边取数据是从分享表取,所以,这里直接往分享表里添加数据就行了
            if (sf.getBackflowlevel() == 100 || sf.getBackflowlevel() == 199) {
                ServiceFundShared serviceFundShared = DtoConversionUtils.sourceToTarget(serviceFund, ServiceFundShared.class);
                serviceFundShared.setId(null);
                serviceFundShared.setDel_flag(0);
                fundSharedService.save(serviceFundShared);
                //将fund表的审核状态改成100
                sf.setBackflowlevel(100);
                serviceFundService.updateById(sf);
                return success();
            } else {
                boolean bret = serviceFundService.updateById(serviceFund);
//        if (bret) {
//            addReiSharedDatd(serviceFund, 2);
//        }
        return toAjax(bret);
                return toAjax(bret);
            }
        }
        return toAjax(false);
    }
    /**
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
@@ -2,6 +2,8 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.config.RuoYiConfig;
@@ -15,6 +17,7 @@
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.HttpClientKit;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.*;
import com.ruoyi.project.domain.dto.ServiceReimbursementDto;
@@ -29,6 +32,7 @@
import freemarker.template.TemplateException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Options;
import org.springframework.beans.factory.annotation.Autowired;
@@ -57,10 +61,10 @@
    private IServiceReimbursementService serviceReimbursementService;
    @Autowired
    private IServiceReimbursementpayeeService reimbursementpayeeService;
    private IServiceReimbursementSharedService serviceReimbursementSharedService;
    @Autowired
    private IServiceReimbursementSharedService serviceReimbursementServiceShare;
    private IServiceReimbursementpayeeService reimbursementpayeeService;
    @Autowired
    private IServiceReimbursementdetailService serviceReimbursementdetailService;
@@ -70,6 +74,9 @@
    @Autowired
    private IServiceFundflowService serviceFundflowService;
    @Autowired
    private IServiceFundService serviceFundService;
    @Autowired
    private ISysPostService postService;
@@ -437,6 +444,7 @@
//        return 0;
//    }
    /**
     * å·®æ—…费上报
     */
@@ -445,6 +453,20 @@
    @PostMapping("/travelexpensereport")
    public AjaxResult travelexpensereport(@RequestBody CheckFundVO checkFundVO) {
        ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid());
        //如果等于100,说明已经走到医院财务那边了;财务那边取数据是从分享表取,所以,这里直接往分享表里添加数据就行了
        if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) {
            //将修改的上报数据 æ–°å¢žä¸€æ¡
            ServiceReimbursementShared serviceReimbursementShared = DtoConversionUtils.sourceToTarget(serviceReimbursement, ServiceReimbursementShared.class);
            serviceReimbursementShared.setId(null);
            serviceReimbursementShared.setDelFlag(0L);
            serviceReimbursementSharedService.save(serviceReimbursementShared);
            //将退回阶段设置成100
            serviceReimbursement.setBackflowlevel(100L);
            serviceReimbursementService.updateById(serviceReimbursement);
            return success();
        }
        if (serviceReimbursement != null) {
            Integer TotalLevel = 0;
            LoginUser loginUser = getLoginUser();
@@ -453,10 +475,12 @@
            if (!postids.contains(2)) {
                serviceReimbursement.setFlowlevel(1L);
                serviceReimbursement.setBackflowlevel(1L);
                serviceReimbursement.setRecordstatus(2);
            } else {
                serviceReimbursement.setFlowlevel(0L);
                serviceReimbursement.setRecordstatus(0);
                serviceReimbursement.setBackflowlevel(0L);
            }
            if (!postids.contains(2)) {
@@ -489,6 +513,7 @@
    @PostMapping("/checkfund")
    public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) {
        ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid());
        if (serviceReimbursement != null) {
            Integer totalLevel = 0;
            LoginUser loginUser = getLoginUser();
@@ -514,6 +539,9 @@
            Integer CheckFlag = 0;
            Integer RecordStatus = serviceReimbursement.getRecordstatus();
            Integer FlowLevel = Integer.valueOf(serviceReimbursement.getFlowlevel().toString());
            if (Objects.isNull(serviceReimbursement.getBackflowlevel()) && !Objects.isNull(serviceReimbursement.getFlowlevel())) {
                serviceReimbursement.setBackflowlevel(Long.valueOf(FlowLevel.toString()));
            }
            Integer OriginalFlowLevel = FlowLevel;
            if (checkFundVO.getFlowconclusion() == 1) {
                CheckFlag = 1;
@@ -530,16 +558,22 @@
                FlowLevel = FlowLevel + 1;
            } else {
                CheckFlag = 2;
                RecordStatus = (FlowLevel + 1) * 2 - 1;
                FlowLevel = (FlowLevel - 1);
                if (FlowLevel < 0) {
                if (CheckFlag == 2) {
                    //应医院要求如果出现退回,直接退到发起者
                    FlowLevel = 0;
                } else {
                    //下面是原来的写法,一级一级的往下退,医院现在不要这样搞了,下面这段代码先保留,等医院回心转意,再给放开
                    RecordStatus = (FlowLevel + 1) * 2 - 1;
                    FlowLevel = (FlowLevel - 1);
                    if (FlowLevel < 0) {
                        FlowLevel = 0;
                    }
                }
            }
            serviceReimbursement.setRecordstatus(RecordStatus);
            serviceReimbursement.setFlowlevel(Long.valueOf(FlowLevel.toString()));
            ServiceFundflow serviceFundflow = new ServiceFundflow();
            SysUser user = loginUser.getUser();
            serviceFundflow.setFundid(serviceReimbursement.getId());
ruoyi-admin/src/main/resources/application.yml
@@ -140,3 +140,7 @@
  excludes: /system/notice
  # åŒ¹é…é“¾æŽ¥
  urlPatterns: /system/*,/monitor/*,/tool/*
#钉钉的密钥
dingAppid: dingn8iip5ubj7clrrsv
dingAppSecret: qlEK8D3oOVwGPOTiBQIBYTqQVlAfy9S_qQizEQFjJdSScwemWFryg4gbneu-NqWD
ruoyi-project/pom.xml
@@ -27,6 +27,27 @@
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-system</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.26</version>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.10.0</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>alibaba-dingtalk-service-sdk</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!-- é˜¿é‡ŒJSON解析器 -->
        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2</artifactId>
            <version>2.0.25</version>
        </dependency>
    </dependencies>
</project>
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java
@@ -205,6 +205,12 @@
    @ApiModelProperty("当前审核级别")
    private int flowlevel;
    /**
     * å¤„于哪个阶段 0:申请;1:一级审核;2:二级审核;3:三级审核等  100:医院财务  199:医院驳回
     */
    @ApiModelProperty("退回审核级别")
    private int backflowlevel;
    /** ç¨Žå‰é‡‘额 */
    @ApiModelProperty("税前金额")
    @Excel(name = "税前金额")
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundShared.java
@@ -256,5 +256,10 @@
    @Excel(name = "记录状态")
    private long serfunid;
    @ApiModelProperty("财务驳回信息:姓名+' '+时间+' '+意见")
    @Excel(name = "财务驳回信息:姓名+' '+时间+' '+意见")
    private String cxrjyj;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java
@@ -13,163 +13,222 @@
/**
 * æŠ¥é”€ç”³è¯·å¯¹è±¡ service_reimbursement
 *
 *
 * @author ruoyi
 * @date 2022-01-24
 */
@Data
@ApiModel("报销申请")
public class ServiceReimbursement extends BaseEntity
{
public class ServiceReimbursement extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /** $column.columnComment */
    /**
     * $column.columnComment
     */
    @ApiModelProperty("$column.columnComment")
    //数据库自增改成@TableId(type = IdType.AUTO)
    @TableId(type = IdType.AUTO)
    private Long id;
    /** æŠ¥é”€äººç¼–号 */
    /**
     * æŠ¥é”€äººç¼–号
     */
    @ApiModelProperty("报销人编号")
    @Excel(name = "报销人编号")
    private String userno;
    /** æŠ¥é”€äººå§“名 */
    /**
     * æŠ¥é”€äººå§“名
     */
    @ApiModelProperty("报销人姓名")
    @Excel(name = "报销人姓名")
    private String username;
    /** è¯ä»¶ç±»åž‹ æ ¹æ®å­—å…¸sys_IDType */
    /**
     * è¯ä»¶ç±»åž‹ æ ¹æ®å­—å…¸sys_IDType
     */
    @ApiModelProperty("证件类型 æ ¹æ®å­—å…¸sys_IDType")
    @Excel(name = "证件类型 æ ¹æ®å­—å…¸sys_IDType")
    private String idcardtype;
    /** è¯ä»¶å·ç  */
    /**
     * è¯ä»¶å·ç 
     */
    @ApiModelProperty("证件号码")
    @Excel(name = "证件号码")
    private String idcardno;
    /** è”系电话 */
    /**
     * è”系电话
     */
    @ApiModelProperty("联系电话")
    @Excel(name = "联系电话")
    private String phone;
    /** å¼€æˆ·é“¶è¡Œ */
    /**
     * å¼€æˆ·é“¶è¡Œ
     */
    @ApiModelProperty("开户银行")
    @Excel(name = "开户银行")
    private String depositbank;
    /** å¡å· */
    /**
     * å¡å·
     */
    @ApiModelProperty("卡号")
    @Excel(name = "卡号")
    private String bankcardno;
    /** åˆ†è¡Œåç§° */
    /**
     * åˆ†è¡Œåç§°
     */
    @ApiModelProperty("分行名称")
    @Excel(name = "分行名称")
    private String branchbankname;
    /** é“¶è¡Œå¡ç…§ç‰‡è·¯å¾„ å¤šä¸ªç”¨;分开 */
    /**
     * é“¶è¡Œå¡ç…§ç‰‡è·¯å¾„ å¤šä¸ªç”¨;分开
     */
    @ApiModelProperty("银行卡照片路径 å¤šä¸ªç”¨;分开")
    @Excel(name = "银行卡照片路径 å¤šä¸ªç”¨;分开")
    private String annexbankcard;
    /** é™„件路径 å¤šä¸ªç”¨;分开 */
    /**
     * é™„件路径 å¤šä¸ªç”¨;分开
     */
    @ApiModelProperty("附件路径 å¤šä¸ªç”¨;分开")
    @Excel(name = "附件路径 å¤šä¸ªç”¨;分开")
    private String annexfiles;
    /** ç”³è¯·é‡‘额 */
    /**
     * ç”³è¯·é‡‘额
     */
    @ApiModelProperty("申请金额")
    @Excel(name = "申请金额")
    private Double amountrequested;
    /** é¢„支费用 */
    /**
     * é¢„支费用
     */
    @ApiModelProperty("预支费用")
    @Excel(name = "预支费用")
    private Double prepaidamount;
    /** å‘票张数 */
    /**
     * å‘票张数
     */
    @ApiModelProperty("发票张数")
    @Excel(name = "发票张数")
    private Long invoicecount;
    /** é™„ä»¶æ•° */
    /**
     * é™„ä»¶æ•°
     */
    @ApiModelProperty("附件数")
    @Excel(name = "附件数")
    private Long attachcount;
    /** éƒ¨é—¨ä¸»ç®¡å·¥å· */
    /**
     * éƒ¨é—¨ä¸»ç®¡å·¥å·
     */
    @ApiModelProperty("部门主管工号")
    @Excel(name = "部门主管工号")
    private String managerno;
    /** éƒ¨é—¨ä¸»ç®¡åå­— */
    /**
     * éƒ¨é—¨ä¸»ç®¡åå­—
     */
    @ApiModelProperty("部门主管名字")
    @Excel(name = "部门主管名字")
    private String managername;
    /** éƒ¨é—¨ç¼–号 */
    /**
     * éƒ¨é—¨ç¼–号
     */
    @ApiModelProperty("部门编号")
    @Excel(name = "部门编号")
    private String deptmentno;
    /** éƒ¨é—¨åç§° */
    /**
     * éƒ¨é—¨åç§°
     */
    @ApiModelProperty("部门名称")
    @Excel(name = "部门名称")
    private String deptmentname;
    /** ä¸­å¿ƒç­¾å­— */
    /**
     * ä¸­å¿ƒç­¾å­—
     */
    @ApiModelProperty("中心签字")
    @Excel(name = "中心签字")
    private String opochecker;
    /** è´¢åŠ¡å‰¯é™¢é•¿ç­¾å­— */
    /**
     * è´¢åŠ¡å‰¯é™¢é•¿ç­¾å­—
     */
    @ApiModelProperty("财务副院长签字")
    @Excel(name = "财务副院长签字")
    private String finvicepresident;
    /** ä¸šåŠ¡å‰¯é™¢é•¿ç­¾å­— */
    /**
     * ä¸šåŠ¡å‰¯é™¢é•¿ç­¾å­—
     */
    @ApiModelProperty("业务副院长签字")
    @Excel(name = "业务副院长签字")
    private String busvicepresident;
    /** åŠžå…¬å®¤ä¸»ä»»ç­¾å­— */
    /**
     * åŠžå…¬å®¤ä¸»ä»»ç­¾å­—
     */
    @ApiModelProperty("办公室主任签字")
    @Excel(name = "办公室主任签字")
    private String officedirector;
    /** è´¢åŠ¡å®¤ä¸»ä»»ç­¾å­— */
    /**
     * è´¢åŠ¡å®¤ä¸»ä»»ç­¾å­—
     */
    @ApiModelProperty("财务室主任签字")
    @Excel(name = "财务室主任签字")
    private String financedirector;
    /** è´¢åŠ¡å®¡æ ¸ */
    /**
     * è´¢åŠ¡å®¡æ ¸
     */
    @ApiModelProperty("财务审核")
    @Excel(name = "财务审核")
    private String financechecher;
    /** å…³è”service_donatebaseinfo表的ID */
    /**
     * å…³è”service_donatebaseinfo表的ID
     */
    @ApiModelProperty("关联service_donatebaseinfo表的ID")
    @Excel(name = "关联service_donatebaseinfo表的ID")
    private Long infoid;
    /** æçŒ®è€…编号 */
    /**
     * æçŒ®è€…编号
     */
    @ApiModelProperty("捐献者编号")
    @Excel(name = "捐献者编号")
    private String donorno;
    /** è®°å½•状态 */
    /**
     * è®°å½•状态
     */
    @ApiModelProperty("记录状态")
    @Excel(name = "记录状态")
    private Integer recordstatus;
    /** ä¸Šä¼ æ ‡å¿— */
    /**
     * ä¸Šä¼ æ ‡å¿—
     */
    @ApiModelProperty("上传标志")
    @Excel(name = "上传标志")
    private String uploadflag;
    /** ä¸Šä¼ æ—¶é—´ */
    /**
     * ä¸Šä¼ æ—¶é—´
     */
    @ApiModelProperty("上传时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "上传时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@@ -191,22 +250,35 @@
    @ApiModelProperty("总金额的大写")
    private String bigstrmoney;
    /** é™„件地址,add by yangjb 20221124 */
    /**
     * é™„件地址,add by yangjb 20221124
     */
    @ApiModelProperty("附件地址")
    private String fileurl;
    private String remark;
    /** å½“前审核级别 å¤„于哪个阶段 0:申请;1:一级审核;2:二级审核;3:三级审核等 */
    /**
     * å½“前审核级别 å¤„于哪个阶段 0:申请;1:一级审核;2:二级审核;3:三级审核等
     */
    @ApiModelProperty("当前审核级别")
    private Long flowlevel;
    /**
     * 99:审批驳回    100:上传医院  199:医院驳回
     */
    @ApiModelProperty("退回时的审核级别")
    private Long backflowlevel;
    /** è´¹ç”¨å½’属:0:其他人员;1:专职人员;2:协调员;3:专家;4:捐献者家属 */
    /**
     * è´¹ç”¨å½’属:0:其他人员;1:专职人员;2:协调员;3:专家;4:捐献者家属
     */
    @ApiModelProperty("费用归属")
    private String costtype;
    /** è´¹ç”¨å½’属描述 */
    /**
     * è´¹ç”¨å½’属描述
     */
    @ApiModelProperty("费用归属描述")
    private String costtypename;
@@ -229,6 +301,10 @@
    @ApiModelProperty("申请时间")
    private Date createTime;
    @ApiModelProperty("删除标志(0代表存在 1代表删除)")
    private Integer delFlag;
//    @ApiModelProperty("开始时间")
//    private Date starttime;
//
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementShared.java
@@ -262,6 +262,9 @@
    @ApiModelProperty("捐献家属人数")
    private Integer donorrelatives;
    @ApiModelProperty("财务系统驳回信息:姓名+' '+时间+' '+意见")
    private String cxrjyj;
    @Override
    public String toString() {
        return "ServiceReimbursementShared{" +
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementpayeeShared.java
@@ -59,6 +59,11 @@
    @Excel(name = "开户银行")
    private String bankname;
    /** åˆ é™¤ */
    @ApiModelProperty("删除")
    @Excel(name = "删除")
    private Integer delFlag;
    /** å¤‡æ³¨ */
    @ApiModelProperty("备注")
    @Excel(name = "备注")
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DingTalkReqVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package com.ruoyi.project.domain.vo;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
 * é’‰é’‰æ¶ˆæ¯å‘送
 *
 * @author ls
 * @date 2023-07-14
 */
@Data
@ApiModel(value = "DingTalkReqVo", description = "钉钉消息发送")
public class DingTalkReqVo extends BaseEntity {
    /**
     * å‘送内容
     */
    @ApiModelProperty(value = "发送内容")
    private List<ConcurrentHashMap<String, String>> contents;
    /**
     * ç”¨æˆ·é’‰é’‰å·
     */
    @ApiModelProperty(value = "用户手机号")
    private String number;
    /**
     * éƒ¨é—¨ID
     */
    @ApiModelProperty(value = "部门ID")
    private Long deptId;
    /**
     * å‘送消息的标题
     */
    @ApiModelProperty(value = "发送消息的标题")
    private String title;
    /**
     * è·³è½¬url
     */
    @ApiModelProperty(value = "跳转url")
    private String url;
}
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFundSharedMapper.java
@@ -24,4 +24,6 @@
    public List<ServiceFundShared> selectServiceFundSharedList(ServiceFundShared serviceFundShared);
    List<ServiceFundShared> getFundShareInfoById(Long fundid);
    Boolean delfundsharedInfoById(Long fundId);
}
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceFunddetailMapper.java
@@ -46,4 +46,7 @@
    public List<ServiceFunddetail> getDataBybeneficiaryNo(FunddetailReqVo funddetailReqVo);
    List<ServiceFunddetail> getTaxBeforeByBeneFiciaryNo(TaxMoneyVO taxMoneyV);
}
    }
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceReimbursementSharedMapper.java
@@ -1,19 +1,20 @@
package com.ruoyi.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.project.domain.ServiceReimbursementShared;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * æŠ¥é”€ç”³è¯·Mapper接口
 *
 *
 * @author ruoyi
 * @date 2023-01-10
 */
public interface ServiceReimbursementSharedMapper extends BaseMapper<ServiceReimbursementShared>
{
@Mapper
public interface ServiceReimbursementSharedMapper extends BaseMapper<ServiceReimbursementShared> {
    /**
     * æŸ¥è¯¢æŠ¥é”€ç”³è¯·åˆ—表
     *
@@ -23,4 +24,6 @@
    public List<ServiceReimbursementShared> selectServiceReimbursementSharedList(ServiceReimbursementShared serviceReimbursementShared);
    List<ServiceReimbursementShared> getRemShareInfoByRemId(Long RemId);
    Boolean delResharedInfoById(Long id);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/DingTalkService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.project.service;
import com.ruoyi.project.domain.vo.DingTalkReqVo;
/**
 * å®£æ•™åˆ†ç±»Service接口
 *
 * @author smartor
 * @date 2023-03-04
 */
public interface DingTalkService {
    /**
     * å‘送钉钉消息
     *
     * @param dingTalkReqVo
     */
    Boolean sendNotification(DingTalkReqVo dingTalkReqVo);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceFundSharedService.java
@@ -2,24 +2,29 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.project.domain.ServiceFundShared;
import com.ruoyi.project.domain.ServiceReimbursementShared;
import java.util.List;
/**
 * è´¹ç”¨ç”³è¯·ä¸»Service接口
 *
 *
 * @author ruoyi
 * @date 2023-03-27
 */
public interface IServiceFundSharedService extends IService<ServiceFundShared>
{
public interface IServiceFundSharedService extends IService<ServiceFundShared> {
    /**
     * æŸ¥è¯¢è´¹ç”¨ç”³è¯·ä¸»åˆ—表
     *
     *
     * @param serviceFundShared è´¹ç”¨ç”³è¯·ä¸»
     * @return è´¹ç”¨ç”³è¯·ä¸»é›†åˆ
     */
    public List<ServiceFundShared> queryList(ServiceFundShared serviceFundShared);
    List<ServiceFundShared> queryList(ServiceFundShared serviceFundShared);
    List<ServiceFundShared> queryFundShareList();
    List<ServiceFundShared> getFundShareInfoById(Long fundid);
    Boolean delfundsharedInfoById(Long fundId);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceReimbursementSharedService.java
@@ -7,19 +7,28 @@
/**
 * æŠ¥é”€ç”³è¯·Service接口
 *
 *
 * @author ruoyi
 * @date 2023-01-10
 */
public interface IServiceReimbursementSharedService extends IService<ServiceReimbursementShared>
{
public interface IServiceReimbursementSharedService extends IService<ServiceReimbursementShared> {
    /**
     * æŸ¥è¯¢æŠ¥é”€ç”³è¯·åˆ—表
     *
     *
     * @param serviceReimbursementShared æŠ¥é”€ç”³è¯·
     * @return æŠ¥é”€ç”³è¯·é›†åˆ
     */
    public List<ServiceReimbursementShared> queryList(ServiceReimbursementShared serviceReimbursementShared);
    List<ServiceReimbursementShared> getRemShareInfoByRemId(Long remeid);
    /**
     * æŸ¥è¯¢è¢«é€€å›žçš„,并且没有删除的数据
     *
     * @return
     */
    List<ServiceReimbursementShared> queryReShareList();
    Boolean delResharedInfoById(Long remid);
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,162 @@
package com.ruoyi.project.service.impl;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiGettokenRequest;
import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
import com.dingtalk.api.request.OapiUserListidRequest;
import com.dingtalk.api.request.OapiV2UserGetbymobileRequest;
import com.dingtalk.api.response.OapiGettokenResponse;
import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
import com.dingtalk.api.response.OapiUserListidResponse;
import com.dingtalk.api.response.OapiV2UserGetbymobileResponse;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.domain.vo.DingTalkReqVo;
import com.ruoyi.project.service.DingTalkService;
import com.taobao.api.ApiException;
import lombok.extern.log4j.Log4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
 * æ™ºèƒ½ä¸­å¿ƒ
 *
 * @author ls
 * @date 2023-05-23
 */
@Service
@Log4j
public class DingTalkServiceImpl implements DingTalkService {
    @Value("${dingAppid}")
    private String dingAppid;
    @Value("${dingAppSecret}")
    private String dingAppSecret;
    @Override
    public Boolean sendNotification(DingTalkReqVo dingTalkReqVo) {
        String body = null;
        List<String> userIdlist = new ArrayList();
        Boolean result = false;
        log.info("发送钉钉通知");
        String accessToken = null;
        try {
            accessToken = getAccessToken();
        } catch (ApiException e) {
            e.printStackTrace();
        }
        if (StringUtils.isNotEmpty(dingTalkReqVo.getNumber())) {
            DingTalkClient clientT = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getbymobile");
            OapiV2UserGetbymobileRequest req = new OapiV2UserGetbymobileRequest();
            req.setMobile(dingTalkReqVo.getNumber());
            OapiV2UserGetbymobileResponse rsp = null;
            try {
                rsp = clientT.execute(req, accessToken);
                body = rsp.getBody();
                String jsonObject = JSONObject.parseObject(body).getJSONObject("result").get("userid").toString();
                userIdlist.add(jsonObject);
            } catch (ApiException e) {
                e.printStackTrace();
            }
        } else {
            DingTalkClient client3 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/listid");
            OapiUserListidRequest request2 = new OapiUserListidRequest();
            request2.setDeptId(dingTalkReqVo.getDeptId()); // è®¾ç½®è¦èŽ·å–çš„éƒ¨é—¨ ID,这里以根部门为例675909059L
            // è®¾ç½®éƒ¨é—¨ ID,如果获取所有员工手机号,可以设置为根部门的 ID
            OapiUserListidResponse response2 = null;
            try {
                response2 = client3.execute(request2, accessToken);
            } catch (ApiException e) {
                e.printStackTrace();
            }
            body = response2.getBody();
            // è§£æžä¸ºJSONObject
            JSONObject jsonObject = JSONObject.parseObject(body);
            // æå–出JSONArray
            JSONArray jsonArray = new JSONArray(jsonObject.getJSONObject("result").getJSONArray("userid_list"));
            // å°†JSONArray转为List列表
            String str = JSONObject.toJSONString(jsonArray);
            userIdlist = JSONObject.parseObject(str, List.class);
        }
        //userid数组
        for (String urid : userIdlist) {
            DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
            OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
            request.setUseridList(urid);
            request.setAgentId(1779052814L);
            request.setToAllUser(false);
            //发送内容处理
            List<ConcurrentHashMap<String, String>> contents = dingTalkReqVo.getContents();
            ArrayList<OapiMessageCorpconversationAsyncsendV2Request.Form> objects = new ArrayList<>();
            for (int i = 0; i < contents.size(); i++) {
                ConcurrentHashMap<String, String> map = contents.get(i);
                for (Map.Entry<String, String> entry : map.entrySet()) {
                    OapiMessageCorpconversationAsyncsendV2Request.Form formSeverityDesc = new OapiMessageCorpconversationAsyncsendV2Request.Form();
                    formSeverityDesc.setKey(entry.getKey());
                    formSeverityDesc.setValue(entry.getValue());
                    objects.add(formSeverityDesc);
                }
            }
            OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
            msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA());
            msg.getOa().setMessageUrl(dingTalkReqVo.getUrl());
            msg.getOa().setPcMessageUrl(dingTalkReqVo.getUrl());
            msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head());
            //   msg.getOa().getHead().setText("你在说啥呢绒顶替苛夺阿斯蒂芬阿斯蒂芬");
            msg.getOa().getHead().setBgcolor("00409eff");
            msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body());
            msg.getOa().getBody().setTitle(dingTalkReqVo.getTitle());
            // msg.getOa().getBody().setContent("待处理:" + "123" + "条");
            msg.getOa().getBody().setForm(objects);
            msg.setMsgtype("oa");
            request.setMsg(msg);
            //  log.info("获取发送通知消息体和获取发送通知人完成");
            OapiMessageCorpconversationAsyncsendV2Response response = null;
            try {
                response = client.execute(request, accessToken);
            } catch (ApiException e) {
                e.printStackTrace();
            }
            //  log.info("消息任务ID"+response.getTaskId());
            System.out.println(response.getTaskId());
            result = response.isSuccess();
        }
        return result;
    }
    /**
     * èŽ·å– access_token
     */
    private String getAccessToken() throws ApiException {
        DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
        OapiGettokenRequest request = new OapiGettokenRequest();
        //Appkey
        request.setAppkey(dingAppid);
        //Appsecret
        request.setAppsecret(dingAppSecret);
        /*请求方式*/
        request.setHttpMethod("GET");
        OapiGettokenResponse response = client.execute(request);
        return response.getAccessToken();
    }
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java
@@ -643,7 +643,6 @@
        return count;
    }
    int uploadOAFileAndUpdateDb(ServiceFundShared remShare) {
        //上传OA文件
        //String strUrl = "http://129.88.242.39:8899/seeyon/rest/token?userName=opo&password=127814f8-84e8-4304-84a5-a71573567efd&loginName=demo3";
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundSharedServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.domain.ServiceFundShared;
import com.ruoyi.project.domain.ServiceReimbursementShared;
import com.ruoyi.project.mapper.ServiceFundSharedMapper;
import com.ruoyi.project.service.IServiceFundSharedService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -171,9 +172,24 @@
    }
    @Override
    public List<ServiceFundShared> queryFundShareList() {
        LambdaQueryWrapper<ServiceFundShared> wrappers = Wrappers.lambdaQuery();
        wrappers.eq(ServiceFundShared::getDel_flag, 0);
        wrappers.isNotNull(ServiceFundShared::getCxrjyj);
        return this.list(wrappers);
    }
    @Override
    public  List<ServiceFundShared> getFundShareInfoById(Long fundid)
    {
        return serviceFundSharedMapper.getFundShareInfoById(fundid);
        // return  null;
    }
    @Override
    public Boolean delfundsharedInfoById(Long fundId) {
        return serviceFundSharedMapper.delfundsharedInfoById(fundId);
    }
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
@@ -17,6 +17,7 @@
import com.ruoyi.project.service.IServiceReimbursementdetailSharedService;
import com.ruoyi.project.service.IServiceReimbursementpayeeSharedService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -72,6 +73,9 @@
    @Override
    public List<ServiceReimbursement> queryList(ServiceReimbursement serviceReimbursement) {
        LambdaQueryWrapper<ServiceReimbursement> wrappers = Wrappers.lambdaQuery();
        if (ObjectUtils.isNotEmpty(serviceReimbursement.getId())) {
            wrappers.eq(ServiceReimbursement::getId, serviceReimbursement.getId());
        }
        if (StringUtils.isNotBlank(serviceReimbursement.getCreateBy())) {
            wrappers.eq(ServiceReimbursement::getCreateBy, serviceReimbursement.getCreateBy());
        }
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementSharedServiceImpl.java
@@ -14,13 +14,12 @@
/**
 * æŠ¥é”€ç”³è¯·Service业务层处理
 *
 *
 * @author ruoyi
 * @date 2023-01-10
 */
@Service
public class ServiceReimbursementSharedServiceImpl extends ServiceImpl<ServiceReimbursementSharedMapper, ServiceReimbursementShared> implements IServiceReimbursementSharedService
{
public class ServiceReimbursementSharedServiceImpl extends ServiceImpl<ServiceReimbursementSharedMapper, ServiceReimbursementShared> implements IServiceReimbursementSharedService {
    @Autowired
@@ -28,144 +27,159 @@
    /**
     * æŸ¥è¯¢æŠ¥é”€ç”³è¯·åˆ—表
     *
     *
     * @param serviceReimbursementShared æŠ¥é”€ç”³è¯·
     * @return æŠ¥é”€ç”³è¯·
     */
    @Override
    public List<ServiceReimbursementShared> queryList(ServiceReimbursementShared serviceReimbursementShared) {
        LambdaQueryWrapper<ServiceReimbursementShared> wrappers = Wrappers.lambdaQuery();
        if (StringUtils.isNotBlank(serviceReimbursementShared.getUserno())){
            wrappers.eq(ServiceReimbursementShared::getUserno ,serviceReimbursementShared.getUserno());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getUserno())) {
            wrappers.eq(ServiceReimbursementShared::getUserno, serviceReimbursementShared.getUserno());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getUsername())){
            wrappers.like(ServiceReimbursementShared::getUsername ,serviceReimbursementShared.getUsername());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getUsername())) {
            wrappers.like(ServiceReimbursementShared::getUsername, serviceReimbursementShared.getUsername());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getTravelers())){
            wrappers.eq(ServiceReimbursementShared::getTravelers ,serviceReimbursementShared.getTravelers());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getTravelers())) {
            wrappers.eq(ServiceReimbursementShared::getTravelers, serviceReimbursementShared.getTravelers());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getIdcardtype())){
            wrappers.eq(ServiceReimbursementShared::getIdcardtype ,serviceReimbursementShared.getIdcardtype());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getIdcardtype())) {
            wrappers.eq(ServiceReimbursementShared::getIdcardtype, serviceReimbursementShared.getIdcardtype());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getIdcardno())){
            wrappers.eq(ServiceReimbursementShared::getIdcardno ,serviceReimbursementShared.getIdcardno());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getIdcardno())) {
            wrappers.eq(ServiceReimbursementShared::getIdcardno, serviceReimbursementShared.getIdcardno());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getPhone())){
            wrappers.eq(ServiceReimbursementShared::getPhone ,serviceReimbursementShared.getPhone());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getPhone())) {
            wrappers.eq(ServiceReimbursementShared::getPhone, serviceReimbursementShared.getPhone());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getDepositbank())){
            wrappers.eq(ServiceReimbursementShared::getDepositbank ,serviceReimbursementShared.getDepositbank());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getDepositbank())) {
            wrappers.eq(ServiceReimbursementShared::getDepositbank, serviceReimbursementShared.getDepositbank());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getBankcardno())){
            wrappers.eq(ServiceReimbursementShared::getBankcardno ,serviceReimbursementShared.getBankcardno());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getBankcardno())) {
            wrappers.eq(ServiceReimbursementShared::getBankcardno, serviceReimbursementShared.getBankcardno());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getBranchbankname())){
            wrappers.like(ServiceReimbursementShared::getBranchbankname ,serviceReimbursementShared.getBranchbankname());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getBranchbankname())) {
            wrappers.like(ServiceReimbursementShared::getBranchbankname, serviceReimbursementShared.getBranchbankname());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getAnnexbankcard())){
            wrappers.eq(ServiceReimbursementShared::getAnnexbankcard ,serviceReimbursementShared.getAnnexbankcard());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getAnnexbankcard())) {
            wrappers.eq(ServiceReimbursementShared::getAnnexbankcard, serviceReimbursementShared.getAnnexbankcard());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getAnnexfiles())){
            wrappers.eq(ServiceReimbursementShared::getAnnexfiles ,serviceReimbursementShared.getAnnexfiles());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getAnnexfiles())) {
            wrappers.eq(ServiceReimbursementShared::getAnnexfiles, serviceReimbursementShared.getAnnexfiles());
        }
        if (serviceReimbursementShared.getAmountrequested() != null){
            wrappers.eq(ServiceReimbursementShared::getAmountrequested ,serviceReimbursementShared.getAmountrequested());
        if (serviceReimbursementShared.getAmountrequested() != null) {
            wrappers.eq(ServiceReimbursementShared::getAmountrequested, serviceReimbursementShared.getAmountrequested());
        }
        if (serviceReimbursementShared.getPrepaidamount() != null){
            wrappers.eq(ServiceReimbursementShared::getPrepaidamount ,serviceReimbursementShared.getPrepaidamount());
        if (serviceReimbursementShared.getPrepaidamount() != null) {
            wrappers.eq(ServiceReimbursementShared::getPrepaidamount, serviceReimbursementShared.getPrepaidamount());
        }
        if (serviceReimbursementShared.getInvoicecount() != null){
            wrappers.eq(ServiceReimbursementShared::getInvoicecount ,serviceReimbursementShared.getInvoicecount());
        if (serviceReimbursementShared.getInvoicecount() != null) {
            wrappers.eq(ServiceReimbursementShared::getInvoicecount, serviceReimbursementShared.getInvoicecount());
        }
        if (serviceReimbursementShared.getAttachcount() != null){
            wrappers.eq(ServiceReimbursementShared::getAttachcount ,serviceReimbursementShared.getAttachcount());
        if (serviceReimbursementShared.getAttachcount() != null) {
            wrappers.eq(ServiceReimbursementShared::getAttachcount, serviceReimbursementShared.getAttachcount());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getManagerno())){
            wrappers.eq(ServiceReimbursementShared::getManagerno ,serviceReimbursementShared.getManagerno());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getManagerno())) {
            wrappers.eq(ServiceReimbursementShared::getManagerno, serviceReimbursementShared.getManagerno());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getManagername())){
            wrappers.like(ServiceReimbursementShared::getManagername ,serviceReimbursementShared.getManagername());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getManagername())) {
            wrappers.like(ServiceReimbursementShared::getManagername, serviceReimbursementShared.getManagername());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getDeptmentno())){
            wrappers.eq(ServiceReimbursementShared::getDeptmentno ,serviceReimbursementShared.getDeptmentno());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getDeptmentno())) {
            wrappers.eq(ServiceReimbursementShared::getDeptmentno, serviceReimbursementShared.getDeptmentno());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getDeptmentname())){
            wrappers.like(ServiceReimbursementShared::getDeptmentname ,serviceReimbursementShared.getDeptmentname());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getDeptmentname())) {
            wrappers.like(ServiceReimbursementShared::getDeptmentname, serviceReimbursementShared.getDeptmentname());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getOpochecker())){
            wrappers.eq(ServiceReimbursementShared::getOpochecker ,serviceReimbursementShared.getOpochecker());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getOpochecker())) {
            wrappers.eq(ServiceReimbursementShared::getOpochecker, serviceReimbursementShared.getOpochecker());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getFinvicepresident())){
            wrappers.eq(ServiceReimbursementShared::getFinvicepresident ,serviceReimbursementShared.getFinvicepresident());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getFinvicepresident())) {
            wrappers.eq(ServiceReimbursementShared::getFinvicepresident, serviceReimbursementShared.getFinvicepresident());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getBusvicepresident())){
            wrappers.eq(ServiceReimbursementShared::getBusvicepresident ,serviceReimbursementShared.getBusvicepresident());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getBusvicepresident())) {
            wrappers.eq(ServiceReimbursementShared::getBusvicepresident, serviceReimbursementShared.getBusvicepresident());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getOfficedirector())){
            wrappers.eq(ServiceReimbursementShared::getOfficedirector ,serviceReimbursementShared.getOfficedirector());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getOfficedirector())) {
            wrappers.eq(ServiceReimbursementShared::getOfficedirector, serviceReimbursementShared.getOfficedirector());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getFinancedirector())){
            wrappers.eq(ServiceReimbursementShared::getFinancedirector ,serviceReimbursementShared.getFinancedirector());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getFinancedirector())) {
            wrappers.eq(ServiceReimbursementShared::getFinancedirector, serviceReimbursementShared.getFinancedirector());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getFinancechecher())){
            wrappers.eq(ServiceReimbursementShared::getFinancechecher ,serviceReimbursementShared.getFinancechecher());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getFinancechecher())) {
            wrappers.eq(ServiceReimbursementShared::getFinancechecher, serviceReimbursementShared.getFinancechecher());
        }
        if (serviceReimbursementShared.getInfoid() != null){
            wrappers.eq(ServiceReimbursementShared::getInfoid ,serviceReimbursementShared.getInfoid());
        if (serviceReimbursementShared.getInfoid() != null) {
            wrappers.eq(ServiceReimbursementShared::getInfoid, serviceReimbursementShared.getInfoid());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getDonorno())){
            wrappers.eq(ServiceReimbursementShared::getDonorno ,serviceReimbursementShared.getDonorno());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getDonorno())) {
            wrappers.eq(ServiceReimbursementShared::getDonorno, serviceReimbursementShared.getDonorno());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getDonorname())){
            wrappers.like(ServiceReimbursementShared::getDonorname ,serviceReimbursementShared.getDonorname());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getDonorname())) {
            wrappers.like(ServiceReimbursementShared::getDonorname, serviceReimbursementShared.getDonorname());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getReason())){
            wrappers.eq(ServiceReimbursementShared::getReason ,serviceReimbursementShared.getReason());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getReason())) {
            wrappers.eq(ServiceReimbursementShared::getReason, serviceReimbursementShared.getReason());
        }
        if (serviceReimbursementShared.getRecordstatus() != null){
            wrappers.eq(ServiceReimbursementShared::getRecordstatus ,serviceReimbursementShared.getRecordstatus());
        if (serviceReimbursementShared.getRecordstatus() != null) {
            wrappers.eq(ServiceReimbursementShared::getRecordstatus, serviceReimbursementShared.getRecordstatus());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getUploadflag())){
            wrappers.eq(ServiceReimbursementShared::getUploadflag ,serviceReimbursementShared.getUploadflag());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getUploadflag())) {
            wrappers.eq(ServiceReimbursementShared::getUploadflag, serviceReimbursementShared.getUploadflag());
        }
        if (serviceReimbursementShared.getUploadtime() != null){
            wrappers.eq(ServiceReimbursementShared::getUploadtime ,serviceReimbursementShared.getUploadtime());
        if (serviceReimbursementShared.getUploadtime() != null) {
            wrappers.eq(ServiceReimbursementShared::getUploadtime, serviceReimbursementShared.getUploadtime());
        }
        if (serviceReimbursementShared.getTotalamount() != null){
            wrappers.eq(ServiceReimbursementShared::getTotalamount ,serviceReimbursementShared.getTotalamount());
        if (serviceReimbursementShared.getTotalamount() != null) {
            wrappers.eq(ServiceReimbursementShared::getTotalamount, serviceReimbursementShared.getTotalamount());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getBigstrmoney())){
            wrappers.eq(ServiceReimbursementShared::getBigstrmoney ,serviceReimbursementShared.getBigstrmoney());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getBigstrmoney())) {
            wrappers.eq(ServiceReimbursementShared::getBigstrmoney, serviceReimbursementShared.getBigstrmoney());
        }
        if (serviceReimbursementShared.getFlowlevel() != null){
            wrappers.eq(ServiceReimbursementShared::getFlowlevel ,serviceReimbursementShared.getFlowlevel());
        if (serviceReimbursementShared.getFlowlevel() != null) {
            wrappers.eq(ServiceReimbursementShared::getFlowlevel, serviceReimbursementShared.getFlowlevel());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getCosttype())){
            wrappers.eq(ServiceReimbursementShared::getCosttype ,serviceReimbursementShared.getCosttype());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getCosttype())) {
            wrappers.eq(ServiceReimbursementShared::getCosttype, serviceReimbursementShared.getCosttype());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getCosttypename())){
            wrappers.like(ServiceReimbursementShared::getCosttypename ,serviceReimbursementShared.getCosttypename());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getCosttypename())) {
            wrappers.like(ServiceReimbursementShared::getCosttypename, serviceReimbursementShared.getCosttypename());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getOaid())){
            wrappers.eq(ServiceReimbursementShared::getOaid ,serviceReimbursementShared.getOaid());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getOaid())) {
            wrappers.eq(ServiceReimbursementShared::getOaid, serviceReimbursementShared.getOaid());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getOabdzt())){
            wrappers.eq(ServiceReimbursementShared::getOabdzt ,serviceReimbursementShared.getOabdzt());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getOabdzt())) {
            wrappers.eq(ServiceReimbursementShared::getOabdzt, serviceReimbursementShared.getOabdzt());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getFilename())){
            wrappers.like(ServiceReimbursementShared::getFilename ,serviceReimbursementShared.getFilename());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getFilename())) {
            wrappers.like(ServiceReimbursementShared::getFilename, serviceReimbursementShared.getFilename());
        }
        if (StringUtils.isNotBlank(serviceReimbursementShared.getFileid())){
            wrappers.eq(ServiceReimbursementShared::getFileid ,serviceReimbursementShared.getFileid());
        if (StringUtils.isNotBlank(serviceReimbursementShared.getFileid())) {
            wrappers.eq(ServiceReimbursementShared::getFileid, serviceReimbursementShared.getFileid());
        }
        return this.list(wrappers);
    }
    @Override
    public  List<ServiceReimbursementShared> getRemShareInfoByRemId(Long remeid)
    {
    public List<ServiceReimbursementShared> queryReShareList() {
        LambdaQueryWrapper<ServiceReimbursementShared> wrappers = Wrappers.lambdaQuery();
        wrappers.eq(ServiceReimbursementShared::getDelFlag, 0);
        wrappers.isNotNull(ServiceReimbursementShared::getCxrjyj);
        return this.list(wrappers);
    }
    @Override
    public List<ServiceReimbursementShared> getRemShareInfoByRemId(Long remeid) {
        return serviceReimbursementSharedMapper.getRemShareInfoByRemId(remeid);
       // return  null;
        // return  null;
    }
    @Override
    public Boolean delResharedInfoById(Long id) {
        return serviceReimbursementSharedMapper.delResharedInfoById(id);
    }
}
ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml
@@ -1,76 +1,127 @@
<?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">
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.mapper.ServiceFundMapper">
    <resultMap type="ServiceFund" id="ServiceFundResult">
        <result property="id"    column="ID"    />
        <result property="infoid"    column="InfoID"    />
        <result property="donorno"    column="DonorNo"    />
        <result property="donorname"    column="DonorName"    />
        <result property="del_flag"    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"    />
        <result property="userno"    column="UserNo"    />
        <result property="username"    column="UserName"    />
        <result property="unitname"    column="UnitName"    />
        <result property="unitno"    column="UnitNo"    />
        <result property="unituserno"    column="UnitUserNo"    />
        <result property="phone"    column="Phone"    />
        <result property="annexbankcard"    column="AnnexBankCard"    />
        <result property="annexregistform"    column="AnnexRegistForm"    />
        <result property="amountrequested"    column="AmountRequested"    />
        <result property="applytype"    column="ApplyType"    />
        <result property="prepaidamount"    column="PrepaidAmount"    />
        <result property="invoicecount"    column="InvoiceCount"    />
        <result property="attachcount"    column="AttachCount"    />
        <result property="managerno"    column="ManagerNo"    />
        <result property="managername"    column="ManagerName"    />
        <result property="deptmentno"    column="DeptmentNo"    />
        <result property="deptmentname"    column="DeptmentName"    />
        <result property="opochecker"    column="OPOchecker"    />
        <result property="finvicepresident"    column="FinVicePresident"    />
        <result property="busvicepresident"    column="BusVicePresident"    />
        <result property="officedirector"    column="OfficeDirector"    />
        <result property="financedirector"    column="FinanceDirector"    />
        <result property="totalcost"    column="TotalCost"    />
        <result property="procurementcost"    column="ProcurementCost"    />
        <result property="expertcost"    column="ExpertCost"    />
        <result property="ethicscost"    column="EthicsCost"    />
        <result property="medicalcost"    column="MedicalCost"    />
        <result property="familycost"    column="FamilyCost"    />
        <result property="aftercarecost"    column="AftercareCost"    />
        <result property="remark"    column="Remark"    />
        <result property="recordstatus"    column="RecordStatus"    />
        <result property="uploadflag"    column="uploadflag"    />
        <result property="uploadtime"    column="uploadtime"    />
        <result property="flowlevel"    column="FlowLevel"    />
        <result property="pretaxcost"    column="PretaxCost"    />
        <result property="taxedcost"    column="TaxedCost"    />
    <resultMap type="com.ruoyi.project.domain.ServiceFund" id="ServiceFundResult">
        <result property="id" column="ID"/>
        <result property="infoid" column="InfoID"/>
        <result property="donorno" column="DonorNo"/>
        <result property="donorname" column="DonorName"/>
        <result property="del_flag" 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"/>
        <result property="userno" column="UserNo"/>
        <result property="username" column="UserName"/>
        <result property="unitname" column="UnitName"/>
        <result property="unitno" column="UnitNo"/>
        <result property="unituserno" column="UnitUserNo"/>
        <result property="phone" column="Phone"/>
        <result property="annexbankcard" column="AnnexBankCard"/>
        <result property="annexregistform" column="AnnexRegistForm"/>
        <result property="amountrequested" column="AmountRequested"/>
        <result property="applytype" column="ApplyType"/>
        <result property="prepaidamount" column="PrepaidAmount"/>
        <result property="invoicecount" column="InvoiceCount"/>
        <result property="attachcount" column="AttachCount"/>
        <result property="managerno" column="ManagerNo"/>
        <result property="managername" column="ManagerName"/>
        <result property="deptmentno" column="DeptmentNo"/>
        <result property="deptmentname" column="DeptmentName"/>
        <result property="opochecker" column="OPOchecker"/>
        <result property="finvicepresident" column="FinVicePresident"/>
        <result property="busvicepresident" column="BusVicePresident"/>
        <result property="officedirector" column="OfficeDirector"/>
        <result property="financedirector" column="FinanceDirector"/>
        <result property="totalcost" column="TotalCost"/>
        <result property="procurementcost" column="ProcurementCost"/>
        <result property="expertcost" column="ExpertCost"/>
        <result property="ethicscost" column="EthicsCost"/>
        <result property="medicalcost" column="MedicalCost"/>
        <result property="familycost" column="FamilyCost"/>
        <result property="aftercarecost" column="AftercareCost"/>
        <result property="remark" column="Remark"/>
        <result property="recordstatus" column="RecordStatus"/>
        <result property="uploadflag" column="uploadflag"/>
        <result property="uploadtime" column="uploadtime"/>
        <result property="flowlevel" column="FlowLevel"/>
        <result property="pretaxcost" column="PretaxCost"/>
        <result property="taxedcost" column="TaxedCost"/>
        <result property="backflowlevel" column="backFlowLevel"/>
    </resultMap>
    <sql id="selectServiceFundVo">
        select ID, InfoID, DonorNo, DonorName, del_flag, create_by, create_time, update_by, update_time, UserNo, UserName, UnitName, UnitNo, UnitUserNo, PretaxCost, TaxedCost, Phone, AnnexBankCard, AnnexRegistForm, AmountRequested, ApplyType, PrepaidAmount, InvoiceCount, AttachCount, ManagerNo, ManagerName, DeptmentNo, DeptmentName, OPOchecker, FinVicePresident, BusVicePresident, OfficeDirector, FinanceDirector, FinanceChecher, TotalCost, ProcurementCost, ExpertCost, EthicsCost, MedicalCost, FamilyCost, AftercareCost, Remark, RecordStatus, uploadflag, uploadtime,FlowLevel from service_fund
        select ID,
               InfoID,
               DonorNo,
               DonorName,
               del_flag,
               create_by,
               create_time,
               update_by,
               update_time,
               UserNo,
               UserName,
               UnitName,
               UnitNo,
               UnitUserNo,
               PretaxCost,
               TaxedCost,
               Phone,
               AnnexBankCard,
               AnnexRegistForm,
               AmountRequested,
               ApplyType,
               PrepaidAmount,
               InvoiceCount,
               AttachCount,
               ManagerNo,
               ManagerName,
               DeptmentNo,
               DeptmentName,
               OPOchecker,
               FinVicePresident,
               BusVicePresident,
               OfficeDirector,
               FinanceDirector,
               FinanceChecher,
               TotalCost,
               ProcurementCost,
               ExpertCost,
               EthicsCost,
               MedicalCost,
               FamilyCost,
               AftercareCost,
               Remark,
               RecordStatus,
               uploadflag,
               uploadtime,
               backflowlevel,
               FlowLevel
        from service_fund
    </sql>
    <select id="selectServiceFundList" parameterType="ServiceFund" resultMap="ServiceFundResult">
        <include refid="selectServiceFundVo"/>
        where del_flag = '0'
            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
            <if test="userno != null  and userno != ''"> and UserNo = #{userno}</if>
            <if test="username != null  and username != ''"> and UserName like concat('%', #{username}, '%')</if>
            <if test="applytype != null  and applytype != ''"> and ApplyType = #{applytype}</if>
            <if test="deptmentname != null  and deptmentname != ''"> and DeptmentName like concat('%', #{deptmentname}, '%')</if>
            <if test="recordstatus != null"> and RecordStatus = #{recordstatus}</if>
            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
            <if test="uploadtime != null "> and uploadtime = #{uploadtime}</if>
            <if test="createBy != null  and createBy != '' "> and create_by = #{createBy}</if>
            <if test="infoid != null "> and InfoID = #{infoid}</if>
            <if test="donorno != null   and donorno != '' "> and DonorNo = #{donorno}</if>
        <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
        <if test="userno != null  and userno != ''">and UserNo = #{userno}</if>
        <if test="username != null  and username != ''">and UserName like concat('%', #{username}, '%')</if>
        <if test="applytype != null  and applytype != ''">and ApplyType = #{applytype}</if>
        <if test="deptmentname != null  and deptmentname != ''">and DeptmentName like concat('%', #{deptmentname},
            '%')
        </if>
        <if test="recordstatus != null">and RecordStatus = #{recordstatus}</if>
        <if test="uploadflag != null  and uploadflag != ''">and uploadflag = #{uploadflag}</if>
        <if test="uploadtime != null ">and uploadtime = #{uploadtime}</if>
        <if test="createBy != null  and createBy != '' ">and create_by = #{createBy}</if>
        <if test="infoid != null ">and InfoID = #{infoid}</if>
        <if test="donorno != null   and donorno != '' ">and DonorNo = #{donorno}</if>
    </select>
    <select id="getInfoByInfoId" resultType="com.ruoyi.project.domain.ServiceFund">
@@ -79,7 +130,8 @@
    </select>
    <select id="getFundId" resultType="java.lang.Long">
        select max(ID) from service_fund
        select max(ID)
        from service_fund
        where infoid = #{infoid}
    </select>
    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.FundVO">
@@ -167,18 +219,19 @@
        `service_fund`.`ID` = `service_funddetail`.`fundID`
        )))
        <where>
            <if test="donorno != null  and donorno != ''"> and `service_fund`.`DonorNo` = #{donorno}</if>
            <if test="userno != null  and userno != ''"> and `service_fund`.`UserNo` = #{userno}</if>
            <if test="username != null  and username != ''"> and `service_fund`.`UserName` = #{username}</if>
            <if test="unitname != null  and unitname != ''"> and `service_fund`.`UnitName` = #{unitname}</if>
            <if test="create_by != null  and create_by != ''"> and `service_fund`.`create_by` = #{create_by}</if>
            <if test="create_time != null  and create_time != ''"> and `service_fund`.`create_time` = #{create_time}</if>
            <if test="donorno != null  and donorno != ''">and `service_fund`.`DonorNo` = #{donorno}</if>
            <if test="userno != null  and userno != ''">and `service_fund`.`UserNo` = #{userno}</if>
            <if test="username != null  and username != ''">and `service_fund`.`UserName` = #{username}</if>
            <if test="unitname != null  and unitname != ''">and `service_fund`.`UnitName` = #{unitname}</if>
            <if test="create_by != null  and create_by != ''">and `service_fund`.`create_by` = #{create_by}</if>
            <if test="create_time != null  and create_time != ''">and `service_fund`.`create_time` = #{create_time}</if>
        </where>
    </select>
    <select id="getListBypower" statementType="CALLABLE" resultType="com.ruoyi.project.domain.vo.SpFinancialExpensesFundOut">
    <select id="getListBypower" statementType="CALLABLE"
            resultType="com.ruoyi.project.domain.vo.SpFinancialExpensesFundOut">
        call SP_FINANCIAL_EXPENSES(#{PAUSERNO,mode=IN,jdbcType=VARCHAR},#{PAFUNDTYPE,mode=IN,jdbcType=INTEGER},#{PAAPPLICANT,mode=IN,jdbcType=VARCHAR},#{PAAPPLICATIONBEGTIME,mode=IN,jdbcType=VARCHAR},#{PAAPPLICATIONENDTIME,mode=IN,jdbcType=VARCHAR},#{PADEPARTMENT,mode=IN,jdbcType=VARCHAR},#{CHECKFLAG,mode=IN,jdbcType=INTEGER},#{APPLYTYPE,mode=IN,jdbcType=INTEGER})
    </select>
ruoyi-project/src/main/resources/mapper/project/ServiceFundSharedMapper.xml
@@ -116,5 +116,10 @@
            <if test="fileid != null  and fileid != ''"> and fileid = #{fileid}</if>
        </where>
    </select>
    <update id="delfundsharedInfoById">
        UPDATE service_fund_shared
        SET del_flag = 1
        WHERE ID = #{fundId}
          and del_flag != 1
    </update>
</mapper>
ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml
@@ -235,4 +235,5 @@
        where create_time like concat(#{startTime}, '%') and beneficiaryNo=#{beneficiaryNo}
    </select>
</mapper>
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementMapper.xml
@@ -4,7 +4,7 @@
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.mapper.ServiceReimbursementMapper">
    <resultMap type="ServiceReimbursement" id="ServiceReimbursementResult">
    <resultMap type="com.ruoyi.project.domain.ServiceReimbursement" id="ServiceReimbursementResult">
        <result property="id" column="ID"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createBy" column="create_by"/>
@@ -55,6 +55,7 @@
        <result property="donorremark" column="donorremark"/>
        <result property="donoramount" column="donoramount"/>
        <result property="donorrelatives" column="donorrelatives"/>
        <result property="backflowlevel" column="backFlowLevel"/>
    </resultMap>
    <sql id="selectServiceReimbursementVo">
@@ -105,11 +106,12 @@
               donorbankcard,
               donorremark,
               donoramount,
               donorrelatives
               donorrelatives,
               backFlowLevel
        from service_reimbursement
    </sql>
    <select id="selectServiceReimbursementList" parameterType="ServiceReimbursement"
    <select id="selectServiceReimbursementList" parameterType="com.ruoyi.project.domain.ServiceReimbursement"
            resultMap="ServiceReimbursementResult">
        <include refid="selectServiceReimbursementVo"/>
        <where>
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementSharedMapper.xml
@@ -1,120 +1,193 @@
<?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">
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.mapper.ServiceReimbursementSharedMapper">
    <resultMap type="ServiceReimbursementShared" id="ServiceReimbursementSharedResult">
        <result property="id"    column="ID"    />
        <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"    />
        <result property="userno"    column="UserNo"    />
        <result property="username"    column="UserName"    />
        <result property="travelers"    column="Travelers"    />
        <result property="idcardtype"    column="IDCardType"    />
        <result property="idcardno"    column="IDCardNo"    />
        <result property="phone"    column="Phone"    />
        <result property="depositbank"    column="DepositBank"    />
        <result property="bankcardno"    column="BankCardNo"    />
        <result property="branchbankname"    column="BranchBankName"    />
        <result property="annexbankcard"    column="AnnexBankCard"    />
        <result property="annexfiles"    column="AnnexFiles"    />
        <result property="amountrequested"    column="AmountRequested"    />
        <result property="prepaidamount"    column="PrepaidAmount"    />
        <result property="invoicecount"    column="InvoiceCount"    />
        <result property="attachcount"    column="AttachCount"    />
        <result property="managerno"    column="ManagerNo"    />
        <result property="managername"    column="ManagerName"    />
        <result property="deptmentno"    column="DeptmentNo"    />
        <result property="deptmentname"    column="DeptmentName"    />
        <result property="opochecker"    column="OPOchecker"    />
        <result property="finvicepresident"    column="FinVicePresident"    />
        <result property="busvicepresident"    column="BusVicePresident"    />
        <result property="officedirector"    column="OfficeDirector"    />
        <result property="financedirector"    column="FinanceDirector"    />
        <result property="financechecher"    column="FinanceChecher"    />
        <result property="infoid"    column="InfoID"    />
        <result property="donorno"    column="DonorNo"    />
        <result property="donorname"    column="DonorName"    />
        <result property="reason"    column="Reason"    />
        <result property="remark"    column="remark"    />
        <result property="recordstatus"    column="RecordStatus"    />
        <result property="uploadflag"    column="uploadflag"    />
        <result property="uploadtime"    column="uploadtime"    />
        <result property="totalamount"    column="totalAmount"    />
        <result property="bigstrmoney"    column="bigStrMoney"    />
        <result property="flowlevel"    column="FlowLevel"    />
        <result property="costtype"    column="costtype"    />
        <result property="costtypename"    column="costtypename"    />
        <result property="oaid"    column="oaid"    />
        <result property="oabdzt"    column="oabdzt"    />
        <result property="filename"    column="filename"    />
        <result property="fileid"    column="fileid"    />
        <result property="reimid"    column="reimid"    />
        <result property="donorbank"    column="donorbank"    />
        <result property="donorbankcard"    column="donorbankcard"    />
        <result property="donorremark"    column="donorremark"    />
        <result property="donoramount"    column="donoramount"    />
        <result property="donorrelatives"    column="donorrelatives"    />
    <resultMap type="com.ruoyi.project.domain.ServiceReimbursementShared" id="ServiceReimbursementSharedResult">
        <result property="id" column="ID"/>
        <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"/>
        <result property="userno" column="UserNo"/>
        <result property="username" column="UserName"/>
        <result property="travelers" column="Travelers"/>
        <result property="idcardtype" column="IDCardType"/>
        <result property="idcardno" column="IDCardNo"/>
        <result property="phone" column="Phone"/>
        <result property="depositbank" column="DepositBank"/>
        <result property="bankcardno" column="BankCardNo"/>
        <result property="branchbankname" column="BranchBankName"/>
        <result property="annexbankcard" column="AnnexBankCard"/>
        <result property="annexfiles" column="AnnexFiles"/>
        <result property="amountrequested" column="AmountRequested"/>
        <result property="prepaidamount" column="PrepaidAmount"/>
        <result property="invoicecount" column="InvoiceCount"/>
        <result property="attachcount" column="AttachCount"/>
        <result property="managerno" column="ManagerNo"/>
        <result property="managername" column="ManagerName"/>
        <result property="deptmentno" column="DeptmentNo"/>
        <result property="deptmentname" column="DeptmentName"/>
        <result property="opochecker" column="OPOchecker"/>
        <result property="finvicepresident" column="FinVicePresident"/>
        <result property="busvicepresident" column="BusVicePresident"/>
        <result property="officedirector" column="OfficeDirector"/>
        <result property="financedirector" column="FinanceDirector"/>
        <result property="financechecher" column="FinanceChecher"/>
        <result property="infoid" column="InfoID"/>
        <result property="donorno" column="DonorNo"/>
        <result property="donorname" column="DonorName"/>
        <result property="reason" column="Reason"/>
        <result property="remark" column="remark"/>
        <result property="recordstatus" column="RecordStatus"/>
        <result property="uploadflag" column="uploadflag"/>
        <result property="uploadtime" column="uploadtime"/>
        <result property="totalamount" column="totalAmount"/>
        <result property="bigstrmoney" column="bigStrMoney"/>
        <result property="flowlevel" column="FlowLevel"/>
        <result property="costtype" column="costtype"/>
        <result property="costtypename" column="costtypename"/>
        <result property="oaid" column="oaid"/>
        <result property="oabdzt" column="oabdzt"/>
        <result property="filename" column="filename"/>
        <result property="fileid" column="fileid"/>
        <result property="reimid" column="reimid"/>
        <result property="donorbank" column="donorbank"/>
        <result property="donorbankcard" column="donorbankcard"/>
        <result property="donorremark" column="donorremark"/>
        <result property="donoramount" column="donoramount"/>
        <result property="donorrelatives" column="donorrelatives"/>
    </resultMap>
    <sql id="selectServiceReimbursementSharedVo">
        select ID, del_flag, create_by, create_time, update_by, update_time, UserNo, UserName, Travelers, IDCardType, IDCardNo, Phone, DepositBank, BankCardNo, BranchBankName, AnnexBankCard, AnnexFiles, AmountRequested, PrepaidAmount, InvoiceCount, AttachCount, ManagerNo, ManagerName, DeptmentNo, DeptmentName, OPOchecker, FinVicePresident, BusVicePresident, OfficeDirector, FinanceDirector, FinanceChecher, InfoID, DonorNo, DonorName, Reason, remark, RecordStatus, uploadflag, uploadtime, totalAmount, bigStrMoney, FlowLevel, costtype, costtypename, oaid, oabdzt, filename, fileid,reimid ,donorbank,donorbankcard,donorremark, donoramount,donorrelatives from service_reimbursement_shared
        select ID,
               del_flag,
               create_by,
               create_time,
               update_by,
               update_time,
               UserNo,
               UserName,
               Travelers,
               IDCardType,
               IDCardNo,
               Phone,
               DepositBank,
               BankCardNo,
               BranchBankName,
               AnnexBankCard,
               AnnexFiles,
               AmountRequested,
               PrepaidAmount,
               InvoiceCount,
               AttachCount,
               ManagerNo,
               ManagerName,
               DeptmentNo,
               DeptmentName,
               OPOchecker,
               FinVicePresident,
               BusVicePresident,
               OfficeDirector,
               FinanceDirector,
               FinanceChecher,
               InfoID,
               DonorNo,
               DonorName,
               Reason,
               remark,
               RecordStatus,
               uploadflag,
               uploadtime,
               totalAmount,
               bigStrMoney,
               FlowLevel,
               costtype,
               costtypename,
               oaid,
               oabdzt,
               filename,
               fileid,
               reimid,
               donorbank,
               donorbankcard,
               donorremark,
               donoramount,
               donorrelatives
        from service_reimbursement_shared
    </sql>
    <select id="getRemShareInfoByRemId" resultType="com.ruoyi.project.domain.ServiceReimbursementShared" resultMap="ServiceReimbursementSharedResult">
    <select id="getRemShareInfoByRemId" resultType="com.ruoyi.project.domain.ServiceReimbursementShared"
            resultMap="ServiceReimbursementSharedResult">
        <include refid="selectServiceReimbursementSharedVo"/>
        where reimid = #{RemId}
        where reimid = #{RemId} and del_flag!=1
    </select>
    <select id="selectServiceReimbursementSharedList" parameterType="ServiceReimbursementShared" resultMap="ServiceReimbursementSharedResult">
    <select id="selectServiceReimbursementSharedList" parameterType="com.ruoyi.project.domain.ServiceReimbursementShared"
            resultMap="ServiceReimbursementSharedResult">
        <include refid="selectServiceReimbursementSharedVo"/>
        <where>
            <if test="userno != null  and userno != ''"> and UserNo = #{userno}</if>
            <if test="username != null  and username != ''"> and UserName like concat('%', #{username}, '%')</if>
            <if test="travelers != null  and travelers != ''"> and Travelers = #{travelers}</if>
            <if test="idcardtype != null  and idcardtype != ''"> and IDCardType = #{idcardtype}</if>
            <if test="idcardno != null  and idcardno != ''"> and IDCardNo = #{idcardno}</if>
            <if test="phone != null  and phone != ''"> and Phone = #{phone}</if>
            <if test="depositbank != null  and depositbank != ''"> and DepositBank = #{depositbank}</if>
            <if test="bankcardno != null  and bankcardno != ''"> and BankCardNo = #{bankcardno}</if>
            <if test="branchbankname != null  and branchbankname != ''"> and BranchBankName like concat('%', #{branchbankname}, '%')</if>
            <if test="annexbankcard != null  and annexbankcard != ''"> and AnnexBankCard = #{annexbankcard}</if>
            <if test="annexfiles != null  and annexfiles != ''"> and AnnexFiles = #{annexfiles}</if>
            <if test="amountrequested != null "> and AmountRequested = #{amountrequested}</if>
            <if test="prepaidamount != null "> and PrepaidAmount = #{prepaidamount}</if>
            <if test="invoicecount != null "> and InvoiceCount = #{invoicecount}</if>
            <if test="attachcount != null "> and AttachCount = #{attachcount}</if>
            <if test="managerno != null  and managerno != ''"> and ManagerNo = #{managerno}</if>
            <if test="managername != null  and managername != ''"> and ManagerName like concat('%', #{managername}, '%')</if>
            <if test="deptmentno != null  and deptmentno != ''"> and DeptmentNo = #{deptmentno}</if>
            <if test="deptmentname != null  and deptmentname != ''"> and DeptmentName like concat('%', #{deptmentname}, '%')</if>
            <if test="opochecker != null  and opochecker != ''"> and OPOchecker = #{opochecker}</if>
            <if test="finvicepresident != null  and finvicepresident != ''"> and FinVicePresident = #{finvicepresident}</if>
            <if test="busvicepresident != null  and busvicepresident != ''"> and BusVicePresident = #{busvicepresident}</if>
            <if test="officedirector != null  and officedirector != ''"> and OfficeDirector = #{officedirector}</if>
            <if test="financedirector != null  and financedirector != ''"> and FinanceDirector = #{financedirector}</if>
            <if test="financechecher != null  and financechecher != ''"> and FinanceChecher = #{financechecher}</if>
            <if test="infoid != null "> and InfoID = #{infoid}</if>
            <if test="donorno != null  and donorno != ''"> and DonorNo = #{donorno}</if>
            <if test="donorname != null  and donorname != ''"> and DonorName like concat('%', #{donorname}, '%')</if>
            <if test="reason != null  and reason != ''"> and Reason = #{reason}</if>
            <if test="recordstatus != null "> and RecordStatus = #{recordstatus}</if>
            <if test="uploadflag != null  and uploadflag != ''"> and uploadflag = #{uploadflag}</if>
            <if test="uploadtime != null "> and uploadtime = #{uploadtime}</if>
            <if test="totalamount != null "> and totalAmount = #{totalamount}</if>
            <if test="bigstrmoney != null  and bigstrmoney != ''"> and bigStrMoney = #{bigstrmoney}</if>
            <if test="flowlevel != null "> and FlowLevel = #{flowlevel}</if>
            <if test="costtype != null  and costtype != ''"> and costtype = #{costtype}</if>
            <if test="costtypename != null  and costtypename != ''"> and costtypename like concat('%', #{costtypename}, '%')</if>
            <if test="oaid != null  and oaid != ''"> and oaid = #{oaid}</if>
            <if test="oabdzt != null  and oabdzt != ''"> and oabdzt = #{oabdzt}</if>
            <if test="filename != null  and filename != ''"> and filename like concat('%', #{filename}, '%')</if>
            <if test="fileid != null  and fileid != ''"> and fileid = #{fileid}</if>
            <if test="userno != null  and userno != ''">and UserNo = #{userno}</if>
            <if test="username != null  and username != ''">and UserName like concat('%', #{username}, '%')</if>
            <if test="travelers != null  and travelers != ''">and Travelers = #{travelers}</if>
            <if test="idcardtype != null  and idcardtype != ''">and IDCardType = #{idcardtype}</if>
            <if test="idcardno != null  and idcardno != ''">and IDCardNo = #{idcardno}</if>
            <if test="phone != null  and phone != ''">and Phone = #{phone}</if>
            <if test="depositbank != null  and depositbank != ''">and DepositBank = #{depositbank}</if>
            <if test="bankcardno != null  and bankcardno != ''">and BankCardNo = #{bankcardno}</if>
            <if test="branchbankname != null  and branchbankname != ''">and BranchBankName like concat('%',
                #{branchbankname}, '%')
            </if>
            <if test="annexbankcard != null  and annexbankcard != ''">and AnnexBankCard = #{annexbankcard}</if>
            <if test="annexfiles != null  and annexfiles != ''">and AnnexFiles = #{annexfiles}</if>
            <if test="amountrequested != null ">and AmountRequested = #{amountrequested}</if>
            <if test="prepaidamount != null ">and PrepaidAmount = #{prepaidamount}</if>
            <if test="invoicecount != null ">and InvoiceCount = #{invoicecount}</if>
            <if test="attachcount != null ">and AttachCount = #{attachcount}</if>
            <if test="managerno != null  and managerno != ''">and ManagerNo = #{managerno}</if>
            <if test="managername != null  and managername != ''">and ManagerName like concat('%', #{managername},
                '%')
            </if>
            <if test="deptmentno != null  and deptmentno != ''">and DeptmentNo = #{deptmentno}</if>
            <if test="deptmentname != null  and deptmentname != ''">and DeptmentName like concat('%', #{deptmentname},
                '%')
            </if>
            <if test="opochecker != null  and opochecker != ''">and OPOchecker = #{opochecker}</if>
            <if test="finvicepresident != null  and finvicepresident != ''">and FinVicePresident = #{finvicepresident}
            </if>
            <if test="busvicepresident != null  and busvicepresident != ''">and BusVicePresident = #{busvicepresident}
            </if>
            <if test="officedirector != null  and officedirector != ''">and OfficeDirector = #{officedirector}</if>
            <if test="financedirector != null  and financedirector != ''">and FinanceDirector = #{financedirector}</if>
            <if test="financechecher != null  and financechecher != ''">and FinanceChecher = #{financechecher}</if>
            <if test="infoid != null ">and InfoID = #{infoid}</if>
            <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
            <if test="donorname != null  and donorname != ''">and DonorName like concat('%', #{donorname}, '%')</if>
            <if test="reason != null  and reason != ''">and Reason = #{reason}</if>
            <if test="recordstatus != null ">and RecordStatus = #{recordstatus}</if>
            <if test="uploadflag != null  and uploadflag != ''">and uploadflag = #{uploadflag}</if>
            <if test="uploadtime != null ">and uploadtime = #{uploadtime}</if>
            <if test="totalamount != null ">and totalAmount = #{totalamount}</if>
            <if test="bigstrmoney != null  and bigstrmoney != ''">and bigStrMoney = #{bigstrmoney}</if>
            <if test="flowlevel != null ">and FlowLevel = #{flowlevel}</if>
            <if test="costtype != null  and costtype != ''">and costtype = #{costtype}</if>
            <if test="costtypename != null  and costtypename != ''">and costtypename like concat('%', #{costtypename},
                '%')
            </if>
            <if test="oaid != null  and oaid != ''">and oaid = #{oaid}</if>
            <if test="oabdzt != null  and oabdzt != ''">and oabdzt = #{oabdzt}</if>
            <if test="filename != null  and filename != ''">and filename like concat('%', #{filename}, '%')</if>
            <if test="fileid != null  and fileid != ''">and fileid = #{fileid}</if>
        </where>
    </select>
    <update id="delResharedInfoById">
        UPDATE service_reimbursement_shared
        SET del_flag = 1
        WHERE id = #{id}
          and del_flag != 1
    </update>
</mapper>
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementpayeeSharedMapper.xml
@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.mapper.ServiceReimbursementpayeeSharedMapper">
    
    <resultMap type="ServiceReimbursementpayeeShared" id="ServiceReimbursementpayeeSharedResult">
    <resultMap type="com.ruoyi.project.domain.ServiceReimbursementpayeeShared" id="ServiceReimbursementpayeeSharedResult">
        <result property="id"    column="id"    />
        <result property="rpid"    column="rpid"    />
        <result property="rbid"    column="rbid"    />
@@ -31,7 +31,7 @@
        select id, rpid, rbid, orderno, persontype, personname, bankname, bankcardno, amount, phone, familyrelations, paiddate, remark, del_flag, create_by, create_time, update_by, update_time, uploadflag, uploadtime from service_reimbursementpayee_shared
    </sql>
    <select id="selectServiceReimbursementpayeeSharedList" parameterType="ServiceReimbursementpayeeShared" resultMap="ServiceReimbursementpayeeSharedResult">
    <select id="selectServiceReimbursementpayeeSharedList" parameterType="com.ruoyi.project.domain.ServiceReimbursementpayeeShared" resultMap="ServiceReimbursementpayeeSharedResult">
        <include refid="selectServiceReimbursementpayeeSharedVo"/>
        <where>
            <if test="rpid != null "> and rpid = #{rpid}</if>
ruoyi-quartz/pom.xml
@@ -34,6 +34,12 @@
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-project</artifactId>
            <version>3.7.0</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1,28 +1,126 @@
package com.ruoyi.quartz.task;
import com.ruoyi.project.domain.*;
import com.ruoyi.project.domain.vo.DingTalkReqVo;
import com.ruoyi.project.service.*;
import com.ruoyi.project.service.impl.DingTalkServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import com.ruoyi.common.utils.StringUtils;
import java.lang.reflect.Array;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/**
 * å®šæ—¶ä»»åŠ¡è°ƒåº¦æµ‹è¯•
 *
 *
 * @author ruoyi
 */
@Component("ryTask")
public class RyTask
{
    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
    {
public class RyTask {
    @Autowired
    private DingTalkService dingTalkService;
    @Autowired
    private IServiceReimbursementSharedService serviceReimbursementSharedService;
    @Autowired
    private IServiceFundSharedService serviceFundSharedService;
    @Autowired
    private IServiceFundService serviceFundService;
    @Autowired
    private IServiceReimbursementService serviceReimbursementService;
    @Autowired
    private IServiceFundflowService fundflowService;
    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
        System.out.println(StringUtils.format("执行多参方法: å­—符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
    }
    public void ryParams(String params)
    {
    public void ryParams(String params) {
        System.out.println("执行有参方法:" + params);
    }
    public void ryNoParams()
    {
    public void ryNoParams() {
        System.out.println("执行无参方法");
    }
    public void checkReportInfo() {
        //查出所有被医院退回的Fund数据
        List<ServiceFundShared> serviceFundShareds = serviceFundSharedService.queryFundShareList();
        for (ServiceFundShared serviceFundShared : serviceFundShareds) {
            String[] split = serviceFundShared.getCxrjyj().split("&");
            String phone = serviceFundShared.getPhone();
            //将分享里的该数据删除
            serviceFundSharedService.delfundsharedInfoById(serviceFundShared.getId());
            ServiceFund serviceFund = new ServiceFund();
            serviceFund.setId(serviceFundShared.getSerfunid());
            List<ServiceFund> serviceFunds = serviceFundService.queryList(serviceFund);
            ServiceFund serviceFund1 = serviceFunds.get(0);
            serviceFund1.setFlowlevel(0);
            serviceFund1.setDel_flag(0);
            serviceFund1.setBackflowlevel(199);
            serviceFundService.updateById(serviceFund1);
            sendMeg(split,phone);
        }
        //查出所有被医院退回的Reimbursement数据
        List<ServiceReimbursementShared> serviceReimbursementShareds = serviceReimbursementSharedService.queryReShareList();
        for (ServiceReimbursementShared serviceReimbursementShared : serviceReimbursementShareds) {
            String phone = serviceReimbursementShared.getPhone();
            String[] split = serviceReimbursementShared.getCxrjyj().split("&");
            //将分享里的该数据删除
            serviceReimbursementSharedService.delResharedInfoById(serviceReimbursementShared.getId());
            //将Flowlevel è®¾ç½®ä¸º0;
            ServiceReimbursement serviceReimbursement = new ServiceReimbursement();
            serviceReimbursement.setId(serviceReimbursementShared.getReimid());
            List<ServiceReimbursement> serviceReimbursementList = serviceReimbursementService.queryList(serviceReimbursement);
            ServiceReimbursement serviceReimbursement1 = serviceReimbursementList.get(0);
            serviceReimbursement1.setFlowlevel(0L);
            serviceReimbursement1.setDelFlag(0);
            serviceReimbursement1.setBackflowlevel(199L);
            serviceReimbursementService.updateById(serviceReimbursement1);
            sendMeg(split,phone);
        }
    }
    public void sendMeg(String[] split,String phone) {
        //记录操作记录
        ServiceFundflow serviceFundflow = new ServiceFundflow();
        serviceFundflow.setCreateBy("admin");
        serviceFundflow.setCreateTime(new Date());
        serviceFundflow.setUpdateBy("admin");
        serviceFundflow.setUpdateTime(new Date());
        serviceFundflow.setCheckusername(split[0]);
        serviceFundflow.setFlowcontent(split[2]);
        serviceFundflow.setFlowconclusion(2);
        serviceFundflow.setFundtype(2);
        serviceFundflow.setFlowlevel(100);
        fundflowService.save(serviceFundflow);
        ArrayList<ConcurrentHashMap<String, String>> contentList = new ArrayList<>();
        ConcurrentHashMap map = new ConcurrentHashMap();
        map.put("审批人", split[0]);
        map.put("审批时间", split[1]);
        map.put("意见", split[2]);
        contentList.add(map);
        DingTalkReqVo dingTalkReqVo = new DingTalkReqVo();
        dingTalkReqVo.setTitle("财务系统驳回信息");
        dingTalkReqVo.setNumber("13634195431");
        dingTalkReqVo.setContents(contentList);
        dingTalkService.sendNotification(dingTalkReqVo);
    }
}