liusheng
2023-07-19 3ba3f0a71400f51139c3125846b10824ae537ebd
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
@@ -1,7 +1,5 @@
package com.ruoyi.web.controller.project;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.config.RuoYiConfig;
@@ -13,8 +11,8 @@
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
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;
@@ -32,12 +30,10 @@
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Options;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.io.*;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -57,10 +53,10 @@
    private IServiceReimbursementService serviceReimbursementService;
    @Autowired
    private IServiceReimbursementpayeeService reimbursementpayeeService;
    private IServiceReimbursementSharedService serviceReimbursementSharedService;
    @Autowired
    private IServiceReimbursementSharedService serviceReimbursementServiceShare;
    private IServiceReimbursementpayeeService reimbursementpayeeService;
    @Autowired
    private IServiceReimbursementdetailService serviceReimbursementdetailService;
@@ -70,6 +66,9 @@
    @Autowired
    private IServiceFundflowService serviceFundflowService;
    @Autowired
    private IServiceFundService serviceFundService;
    @Autowired
    private ISysPostService postService;
@@ -437,6 +436,7 @@
//        return 0;
//    }
    /**
     * 差旅费上报
     */
@@ -445,6 +445,23 @@
    @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);
            serviceReimbursementShared.setReimid(serviceReimbursement.getId());
            serviceReimbursementSharedService.save(serviceReimbursementShared);
            //将退回阶段设置成100
            serviceReimbursement.setBackflowlevel(100L);
            serviceReimbursement.setFlowlevel(100L);
            serviceReimbursement.setRecordstatus(0);
            serviceReimbursementService.updateById(serviceReimbursement);
            return success();
        }
        if (serviceReimbursement != null) {
            Integer TotalLevel = 0;
            LoginUser loginUser = getLoginUser();
@@ -453,10 +470,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 +508,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 +534,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 +553,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());