liusheng
2024-02-26 b891387422e8af819a59dafa3c650cd4e3dc43dc
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -25,6 +26,7 @@
import com.ruoyi.project.domain.vo.*;
import com.ruoyi.project.mapper.ServiceFunddetailMapper;
import com.ruoyi.project.service.*;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysPostService;
import freemarker.template.Configuration;
import freemarker.template.Template;
@@ -100,6 +102,9 @@
    @Autowired
    private TransactionDefinition transactionDefinition;
    @Autowired
    private ISysDeptService sysDeptService;
    public ServiceFundController() {
        configuration = new Configuration();
@@ -527,13 +532,13 @@
                }
                FlowLevel = FlowLevel + 1;
                if (serviceFund.getFlowlevel() == 1 && serviceFund.getBackflowlevel() == 100) {
                if (serviceFund.getFlowlevel() == Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1) && serviceFund.getBackflowlevel() == 100) {
                    log.info("财务退回再提交,出纳再次审批,之后提交到财务");
                    //说明是财务退回再提交的.需要出纳再看一遍,没问题之后,往分享表里新增
//                    serviceFundService.addFundSharedInfo(serviceFund.getId());
                    serviceFund.setFlowlevel(3L);
                    serviceFund.setFlowlevel(100L);
                    serviceFund.setFlowlevel(serviceFundflowrules.get(0).getTotallevel().longValue());
                    serviceFund.setRecordstatus(99);
                    serviceFund.setUploadStates(0);
                    serviceFundService.updateById(serviceFund);
                    //保存审批流程表
@@ -641,13 +646,27 @@
    @Log(title = "费用上报", businessType = BusinessType.UPDATE)
    @PostMapping("/fundEdit")
    @RepeatSubmit
    public AjaxResult fundEdit(@RequestBody ServiceFund serviceFund) {
    public AjaxResult fundEdit(@RequestBody ServiceFundVO serviceFundVO) {
        ServiceFund serviceFund = DtoConversionUtils.sourceToTarget(serviceFundVO, ServiceFund.class);
        log.info("修改费用申请入参:{}", serviceFund);
        List<ServiceFund> infoByInfoIdList = serviceFundService.queryInfoById(serviceFund);
        log.info("修改费用申请,通过入参查询 serviceFundService.queryInfoById数据为空,入参:{}", infoByInfoIdList.size());
        if (CollectionUtils.isEmpty(infoByInfoIdList)) {
            return toAjax(false);
            Long id = serviceFundService.addOrUpdateNew(serviceFundVO);
            serviceFund.setId(id);
        }
        Long flowLavel = null;
        LoginUser loginUser = getLoginUser();
        //查询必审人
        ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
        serviceFundflowrule.setApplytype(serviceFund.getApplytype());
        serviceFundflowrule.setMustAudite(1);
        List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
        log.info("fund必审人的等级为:{}", serviceFundflowrules.get(0).getFlowlevel());
        for (ServiceFund sf : infoByInfoIdList) {
            sf.setApplyTime(new Date());
            //如果等于100,说明已经走到医院财务那边了;财务那边取数据是从分享表取,所以,这里直接往分享表里添加数据就行了
@@ -656,7 +675,7 @@
                sf.setBackflowlevel(100);
                //退回再提交,需要再到出纳那里
                sf.setFlowlevel(1L);
                sf.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1));
                sf.setRecordstatus(0);
                serviceFundService.updateById(sf);
@@ -667,27 +686,25 @@
            } else if (sf.getBackflowlevel() != null && sf.getBackflowlevel() == 100) {
                //财务退回的数据再提交,到出纳那里没有过,再退回,导致backflowlevel是100,
                //退回再提交,需要再到出纳那里
                sf.setFlowlevel(1L);
                sf.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1));
                sf.setRecordstatus(2);
                serviceFundService.updateById(sf);
            } else if (sf.getBackflowlevel() != null && sf.getBackflowlevel() == 2) {
            } else if (sf.getBackflowlevel() != null && sf.getBackflowlevel() >= serviceFundflowrules.get(0).getFlowlevel()) {
                //聂科退回的,也需要先到出纳那里
                sf.setFlowlevel(1L);
                sf.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1));
                sf.setRecordstatus(2);
                serviceFundService.updateById(sf);
            } else {
                Integer TotalLevel = 0;
                LoginUser loginUser = getLoginUser();
                SysUser user = loginUser.getUser();
                List<Integer> postids = postService.selectPostListByUserId(loginUser.getUserId());
                if (!postids.contains(2)) {
                    serviceFund.setRecordstatus(2);
                    if (serviceFund.getBackflowlevel() != null) {
                        serviceFund.setFlowlevel(serviceFund.getBackflowlevel().longValue());
                    } else {
                        serviceFund.setBackflowlevel(1);
                        serviceFund.setFlowlevel(1L);
                        serviceFund.setBackflowlevel(serviceFundflowrules.get(0).getFlowlevel() - 1);
                        serviceFund.setFlowlevel(Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1));
                    }
                } else {
                    serviceFund.setRecordstatus(0);