liusheng
2024-06-26 4e6474371f5da1ba148dd0f9da7a0927f0e5a74b
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1,9 +1,13 @@
package com.ruoyi.quartz.task;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.project.domain.*;
import com.ruoyi.project.domain.vo.DingTalkReqVo;
import com.ruoyi.project.service.*;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysUserService;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -42,9 +46,12 @@
    @Autowired
    private IServiceFundflowruleService iServiceFundflowruleService;
    @Autowired
    @Autowired
    private IServiceFundService serviceFundService;
    @Autowired
    private ISysUserService sysUserService;
    @Autowired
@@ -62,7 +69,7 @@
        System.out.println("执行无参方法");
    }
    public void checkReportInfo() {
    public void checkReportInfo() throws ApiException {
        //查出所有被医院退回的Fund数据
        List<ServiceFundShared> serviceFundShareds = serviceFundSharedService.queryFundShareList();
        for (ServiceFundShared serviceFundShared : serviceFundShareds) {
@@ -74,18 +81,21 @@
                }
                String phone = serviceFundShared.getPhone();
                //将分享里的该数据删除
                serviceFundSharedService.delfundsharedInfoById(serviceFundShared.getId());
                log.info("checkReportInfo中入参ID为:{}", serviceFundShared.getId());
                Boolean aBoolean = serviceFundSharedService.delfundsharedInfoById(serviceFundShared.getId(), null);
                log.info("fund分享表里的数据是否删除成功:{}", aBoolean);
                ServiceFund serviceFund = new ServiceFund();
                serviceFund.setId(serviceFundShared.getSerfunid());
                List<ServiceFund> serviceFunds = serviceFundService.queryList(serviceFund);
                List<ServiceFund> serviceFunds = serviceFundService.queryInfoById(serviceFund);
                ServiceFund serviceFund1 = serviceFunds.get(0);
                serviceFund1.setFlowlevel(100L);
                serviceFund1.setDel_flag(0);
                serviceFund1.setRecordstatus(-1);
                serviceFund1.setBackflowlevel(199);
                serviceFundService.updateById(serviceFund1);
                sendMeg(split, phone, serviceFundShared.getApplytype(), 2, serviceFundShared.getSerfunid());
                SysUser sysUser = sysUserService.selectUserByUserName(serviceFund1.getUserno());
                sendMeg(split, sysUser.getPhonenumber(), serviceFundShared.getApplytype(), 2, serviceFundShared.getSerfunid());
            } else {
                //不是退回的操作
                if (StringUtils.isNotBlank(serviceFundShared.getZffs()) && serviceFundShared.getSpjg() == 0) {
@@ -299,8 +309,8 @@
                }
                //将分享里的该数据删除
                serviceReimbursementSharedService.delResharedInfoById(serviceReimbursementShared.getId());
                Boolean aBoolean = serviceReimbursementSharedService.delResharedInfoById(serviceReimbursementShared.getId());
                log.info("将分享里的该数据删除: {}", aBoolean);
                //将Flowlevel 设置为0;
                ServiceReimbursement serviceReimbursement = new ServiceReimbursement();
                serviceReimbursement.setId(serviceReimbursementShared.getReimid());
@@ -312,7 +322,9 @@
                serviceReimbursement1.setBackflowlevel(199L);
                serviceReimbursement1.setRecordstatus(-1);
                serviceReimbursementService.updateById(serviceReimbursement1);
                sendMeg(split, phone, "0", 1, serviceReimbursementShared.getReimid());
                SysUser sysUser = sysUserService.selectUserByUserName(serviceReimbursement1.getUserno());
                sendMeg(split, sysUser.getPhonenumber(), "0", 1, serviceReimbursementShared.getReimid());
            } else {
                //不是退回的操作
@@ -518,15 +530,30 @@
    }
    public void sendMeg(String[] split, String phone, String applyType, Integer fundType, Long fundId) {
    public void sendMeg(String[] split, String phone, String applyType, Integer fundType, Long fundId) throws ApiException {
        String content = null;
        String time = null;
        String people = null;
        if (split.length >= 1) {
            people = split[0];
        }
        if (split.length >= 2) {
            time = split[1];
        }
        if (split.length >= 3) {
            content = split[2];
        }
        //记录操作记录
        ServiceFundflow serviceFundflow = new ServiceFundflow();
        serviceFundflow.setCreateBy("admin");
        serviceFundflow.setCreateBy(people);
        serviceFundflow.setUpdateBy(people);
        serviceFundflow.setCheckusername(people);
        serviceFundflow.setCreateTime(new Date());
        serviceFundflow.setUpdateBy("admin");
        serviceFundflow.setUpdateTime(new Date());
        serviceFundflow.setCheckusername(split[0]);
        serviceFundflow.setFlowcontent(split[2]);
        serviceFundflow.setFlowcontent(content);
        serviceFundflow.setFlowconclusion(2);
        serviceFundflow.setFundtype(fundType);
        serviceFundflow.setFlowlevel(100);
@@ -534,17 +561,17 @@
        serviceFundflow.setFundid(fundId);
        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(phone);
//        dingTalkReqVo.setContents(contentList);
//        dingTalkService.sendNotification(dingTalkReqVo);
        ArrayList<ConcurrentHashMap<String, Object>> contentList = new ArrayList<>();
        ConcurrentHashMap map = new ConcurrentHashMap();
        map.put("审批人:", people);
        map.put("审批时间:", time);
        map.put("意见:", content);
        contentList.add(map);
        DingTalkReqVo dingTalkReqVo = new DingTalkReqVo();
        dingTalkReqVo.setTitle("财务系统驳回信息");
        dingTalkReqVo.setNumber(phone);
        dingTalkReqVo.setContents(contentList);
        dingTalkService.sendNotification(dingTalkReqVo);
    }
    private ReentrantLock lock = new ReentrantLock();
@@ -602,7 +629,7 @@
        log.info("差旅的最高等级:{}", serviceFundflowrules.get(0).getTotallevel());
        ServiceReimbursement serviceReimbursement = new ServiceReimbursement();
        serviceReimbursement.setFlowlevel(serviceFundflowrules.get(0).getTotallevel().longValue());
        serviceReimbursement.setUploadStates(0);
        serviceReimbursement.setUploadStates(1);
        serviceReimbursement.setDelFlag(0);
        List<ServiceReimbursement> serviceReimbursementList = serviceReimbursementService.queryList(serviceReimbursement);
        for (ServiceReimbursement serviceReimbursement1 : serviceReimbursementList) {
@@ -612,7 +639,7 @@
                if (aBoolean) {
                    ServiceReimbursement serviceReimbursement3 = new ServiceReimbursement();
                    serviceReimbursement3.setId(serviceReimbursement1.getId());
                    serviceReimbursement3.setUploadStates(1);
                    serviceReimbursement3.setUploadStates(2);
                    boolean b = serviceReimbursementService.updateById(serviceReimbursement3);
                    log.info("serviceReimbursement是否插入成功{},{}", aBoolean, b);
                }
@@ -628,38 +655,38 @@
        serviceFundflowrule.setApplytype("1");
        List<ServiceFundflowrule> serviceFundflowrules2 = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("专家劳务的最高等级:{}", serviceFundflowrules2.get(0).getTotallevel());
        addFunfShared(serviceFundflowrules2.get(0).getTotallevel().longValue(), "1");
        addFundShared(serviceFundflowrules2.get(0).getTotallevel().longValue(), "1");
        //伦理专家劳务费申请
        serviceFundflowrule.setApplytype("2");
        List<ServiceFundflowrule> serviceFundflowrules3 = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("伦理专家劳务费申请:{}", serviceFundflowrules3.get(0).getTotallevel());
        addFunfShared(serviceFundflowrules3.get(0).getTotallevel().longValue(), "2");
        addFundShared(serviceFundflowrules3.get(0).getTotallevel().longValue(), "2");
        //医学成本报销
        serviceFundflowrule.setApplytype("3");
        List<ServiceFundflowrule> serviceFundflowrules4 = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("医学成本报销:{}", serviceFundflowrules4.get(0).getTotallevel());
        addFunfShared(serviceFundflowrules4.get(0).getTotallevel().longValue(), "3");
        addFundShared(serviceFundflowrules4.get(0).getTotallevel().longValue(), "3");
        //办公费用报销
        serviceFundflowrule.setApplytype("4");
        List<ServiceFundflowrule> serviceFundflowrules5 = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("办公费用报销:{}", serviceFundflowrules5.get(0).getTotallevel());
        addFunfShared(serviceFundflowrules5.get(0).getTotallevel().longValue(), "4");
        addFundShared(serviceFundflowrules5.get(0).getTotallevel().longValue(), "4");
        //绩效审批报销
        serviceFundflowrule.setApplytype("5");
        List<ServiceFundflowrule> serviceFundflowrules6 = iServiceFundflowruleService.queryList(serviceFundflowrule);
        log.info("办公费用报销:{}", serviceFundflowrules6.get(0).getTotallevel());
        addFunfShared(serviceFundflowrules6.get(0).getTotallevel().longValue(), "5");
        addFundShared(serviceFundflowrules6.get(0).getTotallevel().longValue(), "5");
    }
    private void addFunfShared(Long totallevel, String applyType) {
    private void addFundShared(Long totallevel, String applyType) {
        ServiceFund serviceFund = new ServiceFund();
        serviceFund.setFlowlevel(totallevel);
        serviceFund.setUploadStates(0);
        serviceFund.setUploadStates(1);
        serviceFund.setDel_flag(0);
        serviceFund.setApplytype(applyType);
        List<ServiceFund> serviceFundList = serviceFundService.queryList(serviceFund);
@@ -670,13 +697,16 @@
                if (aBoolean) {
                    ServiceFund serviceFund2 = new ServiceFund();
                    serviceFund2.setId(serviceFund1.getId());
                    serviceFund2.setUploadStates(1);
                    serviceFund2.setUploadStates(2);
                    serviceFund2.setUpdateTime(new Date());
                    boolean b = serviceFundService.updateById(serviceFund2);
                    log.info("serviceReimbursement是否插入成功{},{}", aBoolean, b);
                }
            } catch (Exception e) {
                e.printStackTrace();
                ServiceFund serviceFund2 = new ServiceFund();
                serviceFund2.setId(serviceFund1.getId());
                serviceFund2.setUploadStates(1);
                serviceFund2.setNotes("插入fund分享表失败");
                serviceFundService.updateById(serviceFund2);
            }