liusheng
2023-11-03 b7cd70a1dc48f2cd2f5ed36d09f92c8ebcc62c8b
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
@@ -75,6 +75,9 @@
    private IServiceFundService serviceFundService;
    @Autowired
    private IBaseOnlyvalueService baseOnlyvalueService;
    @Autowired
    private ISysPostService postService;
    @Autowired
@@ -132,8 +135,10 @@
        String APPLICATIONENDTIME = spFinancialExpensesIn.getAPPLICATIONENDTIME();
        Integer CHECKFLAG = spFinancialExpensesIn.getCHECKFLAG();
        Integer APPLYTYPE = spFinancialExpensesIn.getAPPLYTYPE();
        Integer checkstatus = spFinancialExpensesIn.getCheckstatus();
        Integer pageNum = spFinancialExpensesIn.getPageNum();
        Integer pageSize = spFinancialExpensesIn.getPageSize();
        String donorname = spFinancialExpensesIn.getDonorname();
        if (pageNum == null) {
            pageNum = 1;
@@ -155,15 +160,21 @@
            APPLICATIONENDTIME = "";
        }
        //startPage();
        List<SpFinancialExpensesReimbursementOut> list = serviceReimbursementService.getListBypower(loginUser.getUsername(), 1, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE);
        List<SpFinancialExpensesReimbursementOut> list = serviceReimbursementService.getListBypower(loginUser.getUsername(), 1, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE, checkstatus, donorname);
        //根据经办人筛选
        if (StringUtils.isNotBlank(spFinancialExpensesIn.getUsername())) {
            list = list.stream().filter(reimbursementOut -> reimbursementOut.getUsername().contains(spFinancialExpensesIn.getUsername())).collect(Collectors.toList()); // 按name字段过滤
        }
        //根据金额筛选
        if (spFinancialExpensesIn.getMoney() != null) {
            list = list.stream().filter(reimbursementOut -> new BigDecimal(reimbursementOut.getAmountrequested()).compareTo(new BigDecimal(spFinancialExpensesIn.getMoney())) == 0).collect(Collectors.toList());
        }
        //根据创建时间排序
        Collections.sort(list, new Comparator<SpFinancialExpensesReimbursementOut>() {
            @Override
            public int compare(SpFinancialExpensesReimbursementOut o1, SpFinancialExpensesReimbursementOut o2) {
                return o2.getCreateTime().compareTo(o1.getCreateTime());
                return o1.getCreateTime().compareTo(o2.getCreateTime());
            }
        });
        return getCustomDataTable(list, pageNum, pageSize);
@@ -212,13 +223,13 @@
    @RepeatSubmit
    @Options(useGeneratedKeys = true, keyProperty = "id")
    public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement) {
        boolean b = serviceReimbursementService.save(serviceReimbursement);
//        if (b) {
//            addReiSharedDatd(serviceReimbursement, 1);
//        }
        Long id = serviceReimbursement.getId();
        return AjaxResult.success(id);
        if (!Objects.isNull(serviceReimbursement)) {
            serviceReimbursement.setCheckstatus(serviceReimbursement.getCheckstatus() == null ? 1 : serviceReimbursement.getCheckstatus());
            boolean b = serviceReimbursementService.save(serviceReimbursement);
            Long id = serviceReimbursement.getId();
            return AjaxResult.success(id);
        }
        return error();
    }
//    public int addReiSharedDatd(ServiceReimbursement serviceReimbursement, int nType) {
@@ -456,17 +467,24 @@
        ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid());
        //如果等于100,说明已经走到医院财务那边了;财务那边取数据是从分享表取,所以,这里直接往分享表里添加数据就行了;
        if (!Objects.isNull(serviceReimbursement) && serviceReimbursement.getBackflowlevel() != null) {
//            if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) {
            if (serviceReimbursement.getBackflowlevel() == 199) {
            if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) {
//            if (serviceReimbursement.getBackflowlevel() == 199) {
                //将退回阶段设置成100
                serviceReimbursement.setBackflowlevel(100L);
                serviceReimbursement.setFlowlevel(100L);
                serviceReimbursement.setRecordstatus(0);
                //退回再提交,需要再到出纳那里
                serviceReimbursement.setFlowlevel(1L);
                serviceReimbursement.setRecordstatus(2);
                serviceReimbursementService.updateById(serviceReimbursement);
                //将修改的上报数据 新增一条
                serviceReimbursementService.addSharedData(checkFundVO.getFundid());
//                serviceReimbursementService.addSharedData(checkFundVO.getFundid());
                return success();
            } else if (serviceReimbursement.getBackflowlevel() == 2) {
                //聂科退回的,也需要走出纳那里
                serviceReimbursement.setFlowlevel(1L);
                serviceReimbursement.setRecordstatus(2);
                serviceReimbursementService.updateById(serviceReimbursement);
                return success();
            }
        }
@@ -562,12 +580,24 @@
                    //99 取消
                    RecordStatus = 99;
                } else {
                    if (totalLevel == FlowLevel + 1) {
                        RecordStatus = 99;
                    } else {
                        RecordStatus = (FlowLevel + 1) * 2;
                    }
                }
                if (serviceReimbursement.getFlowlevel() == 1 && serviceReimbursement.getBackflowlevel() == 100) {
                    log.info("出差补贴被 财务退回再提交,出纳再次审批,之后提交到财务");
                    //说明是财务退回再提交的.需要出纳再看一遍,没问题之后,往分享表里新增
                    serviceReimbursementService.addSharedData(serviceReimbursement.getId());
                    serviceReimbursement.setFlowlevel(100L);
                    serviceReimbursement.setRecordstatus(99);
                    serviceReimbursementService.updateById(serviceReimbursement);
                    return AjaxResult.success();
                }
                FlowLevel = FlowLevel + 1;
                serviceReimbursement.setBackflowlevel(Long.valueOf(FlowLevel));
            } else {
@@ -585,6 +615,8 @@
                        FlowLevel = 0;
                    }
                }
            }
            serviceReimbursement.setRecordstatus(RecordStatus);
@@ -622,6 +654,10 @@
                    serviceReimbursement.setRecordstatus(1);
                }
            }
            //001审批通过之后,就需要把“办公室主任”的名字填上
            if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("001")) {
                serviceReimbursement.setOfficedirector(user.getNickName());
            }
            serviceReimbursementService.updateById(serviceReimbursement);
@@ -711,6 +747,7 @@
        Map dataMap = new HashMap();
        getData(dataMap, id);
        String filePath = getClass().getResource("/template/").getPath();
        log.info("下载地址是啥???{}", filePath);
        System.out.println(filePath);
        //设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载,
        configuration.setDirectoryForTemplateLoading(new File(filePath));
@@ -723,7 +760,7 @@
            e.printStackTrace();
        }
        String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
        String name = "差旅费报销申请单_" + dataMap.get("XM") + "_" + newTime;
        String name = "差旅费报销申请单_" + dataMap.get("JSR") + "_" + newTime;
        //输出文档路径及名称
        File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc");
@@ -890,6 +927,7 @@
        String date = formatter.format(dt);
        String time = date.substring(0, 10);
        dataMap.put("ZB", rdInfoByItem.get(0).getDeptmentname() == null ? "" : rdInfoByItem.get(0).getDeptmentname());
        dataMap.put("XZBH", rdInfoByItem.get(0).getBh() == null ? "" : rdInfoByItem.get(0).getBh());
        dataMap.put("TBYYMMDD", time);
        dataMap.put("BXDFJ", rdInfoByItem.get(0).getAttachcount() == null ? "   " : "" + rdInfoByItem.get(0).getAttachcount());