liusheng
2023-11-01 6892c31200a7ed1b0e60ee5aff794b1fcecc7ef6
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
@@ -1,5 +1,7 @@
package com.ruoyi.web.controller.project;
import com.alibaba.fastjson.JSONObject;
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;
@@ -28,7 +30,12 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Options;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -84,6 +91,11 @@
    @Autowired
    private ISysPostService postService;
    @Autowired
    private DataSourceTransactionManager transactionManager;
    @Autowired
    private TransactionDefinition transactionDefinition;
    public ServiceFundController() {
        configuration = new Configuration();
@@ -130,6 +142,10 @@
        Integer pageSize = spFinancialExpensesIn.getPageSize();
        Integer checkstatus = spFinancialExpensesIn.getCheckstatus();
        String donorname = spFinancialExpensesIn.getDonorname();
        if (StringUtils.isEmpty(donorname)) {
            donorname = null;
        }
        if (pageNum == null) {
            pageNum = 1;
        }
@@ -151,7 +167,7 @@
        }
        //startPage();
        List<SpFinancialExpensesFundOut> list = serviceFundService.getListBypower(loginUser.getUsername(), 2, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE,checkstatus);
        List<SpFinancialExpensesFundOut> list = serviceFundService.getListBypower(loginUser.getUsername(), 2, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE, checkstatus, donorname);
        //通过捐献者过滤
        if (StringUtils.isNotEmpty(spFinancialExpensesIn.getDonorname())) {
            list = list.stream().filter(obj -> obj.getDonorname().contains(spFinancialExpensesIn.getDonorname())).collect(Collectors.toList());
@@ -462,10 +478,10 @@
     * 审核费用
     */
    @ApiOperation("审核费用")
    @Log(title = "审核费用", businessType = BusinessType.OTHER)
//    @Log(title = "审核费用", businessType = BusinessType.OTHER)
    @PostMapping("/checkfund")
    public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) {
        logger.info("serviceFundController---checkFund的入参值checkFundVO :{}", checkFundVO);
        log.info("serviceFundController---checkFund的入参值checkFundVO :{}", checkFundVO);
        ServiceFund serviceFund = serviceFundService.getById(checkFundVO.getFundid());
        if (serviceFund != null) {
            Integer TotalLevel = 0;
@@ -474,7 +490,7 @@
            serviceFundflowrule.setFundtype(2);
            serviceFundflowrule.setApplytype(serviceFund.getApplytype());
            serviceFundflowrule.setCheckuserno(loginUser.getUsername());
            logger.info("serviceFundController---checkFund---queryList的入参值serviceFundflowrule:{}", serviceFundflowrule);
            log.info("serviceFundController---checkFund---queryList的入参值serviceFundflowrule:{}", serviceFundflowrule);
            List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
@@ -514,6 +530,8 @@
                    //应医院要求如果出现退回,直接退到发起者
                    FlowLevel = 0;
                    RecordStatus = -1;
                    logger.info("serviceFund进来了吗?????? :{},{}", RecordStatus, FlowLevel);
                    System.out.println("serviceFund进来了吗??????");
                } else {
                    RecordStatus = (FlowLevel + 1) * 2 - 1;
                    FlowLevel = (FlowLevel - 1);
@@ -541,14 +559,22 @@
                serviceFundflow.setFlowcontent(checkFundVO.getFlowconclusion() == 1 ? "通过" : "不通过");
            }
            serviceFundflow.setFlowlevel(OriginalFlowLevel + 1);
            serviceFundflowService.save(serviceFundflow);
            Boolean aBoolean = serviceFundflowService.saveData(serviceFundflow);
            log.info("sserviceFund保存的的值是-------- :{}", aBoolean);
            //001审批通过之后,就需要把“办公室主任”的名字填上
            if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("001")) {
                serviceFund.setOfficedirector(user.getNickName());
            }
            serviceFundService.updateById(serviceFund);
            System.out.println("serviceFund的值是--------:" + serviceFund);
            log.info("开始更新的的值是--------");
            ServiceFund updateServiceFund = new ServiceFund();
            updateServiceFund.setRecordstatus(serviceFund.getRecordstatus());
            updateServiceFund.setFlowlevel(serviceFund.getFlowlevel());
            Boolean aBoolean1 = serviceFundService.updateById(serviceFund);
            log.info("integer更新的的值是-------- :{}", aBoolean1);
            ServiceSystemmessage serviceSystemmessage = new ServiceSystemmessage();
            serviceSystemmessage.setFundtype(2);
            serviceSystemmessage.setApplytype(serviceFund.getApplytype());
@@ -708,7 +734,7 @@
        dataMap.put("XZBH", serviceFund.getBh() == null ? "" : serviceFund.getBh());
        dataMap.put("ZB", serviceFund.getDeptmentname() == null ? "" : serviceFund.getDeptmentname());
        dataMap.put("TBYYMMDD", time);
        dataMap.put("BXDFJ", serviceFund.getAttachcount() == 0 ? "   " : serviceFund.getAttachcount());
        dataMap.put("BXDFJ", serviceFund.getAttachcount() == null ? "   " : serviceFund.getAttachcount());
        dataMap.put("JXZXM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
        dataMap.put("JSR", serviceFund.getUsername() == null ? "" : serviceFund.getUsername());
//        dataMap.put("FYXM1", "支付专家费用,其中税前金额" + serviceFund.getPretaxcost() + "元,税后金额" + serviceFund.getTaxedcost() + "元。");
@@ -1014,9 +1040,9 @@
    }
    /**
     * 下载捐献者医学成本统计表
     * 下载捐献者医学、办公、绩效成本统计表
     */
    @ApiOperation("捐献者医学成本统计表")
    @ApiOperation("捐献者医学、办公、绩效成本统计表")
    @GetMapping(value = "/downloadYX/{id}")
    public Map downloadInfoYX(@PathVariable("id") Long id) throws IOException {
        Map dataMap = new HashMap();
@@ -1034,7 +1060,7 @@
                t = configuration.getTemplate("医学成本费用申请单.ftl");
            } else if (dataYX.equals("4")) {
                t = configuration.getTemplate("办公费用申请单.ftl");
            }else if (dataYX.equals("5")) {
            } else if (dataYX.equals("5")) {
                t = configuration.getTemplate("绩效费用申请单.ftl");
            }
        } catch (IOException e) {
@@ -1046,6 +1072,8 @@
            name = "医学成本费用申请单_" + dataMap.get("XM") + "_" + newTime;
        } else if (dataYX.equals("4")) {
            name = "办公费用申请单_" + dataMap.get("XM") + "_" + newTime;
        } else if (dataYX.equals("5")) {
            name = "绩效费用申请单_" + dataMap.get("XM") + "_" + newTime;
        }
        //输出文档路径及名称
        File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc");
@@ -1058,6 +1086,7 @@
            e1.printStackTrace();
        }
        try {
            t.process(dataMap, out);
        } catch (TemplateException e) {
            e.printStackTrace();
@@ -1078,6 +1107,18 @@
        }
        List<ServiceFunddetail> fd = serviceFunddetailService.getAllDetailsByFDIDHZ(id);
        if (serviceFund.getApplytype().equals("5")) {
            //绩效的详情如果小于3行,默认要等于3行
            if (fd.size() < 3) {
                for (int i = 0; i <= 3 - fd.size(); i++) {
                    ServiceFunddetail serviceFunddetail = new ServiceFunddetail();
                    serviceFunddetail.setQuantity(0.00);
                    serviceFunddetail.setPrice(0.00);
                    serviceFunddetail.setAmount(0.00);
                    fd.add(serviceFunddetail);
                }
            }
        }
        if (fd == null) {
            throw new ServiceException("下载失败,没有对应信息", HttpStatus.NO_CONTENT);
        }
@@ -1138,6 +1179,9 @@
            String fyxm = "";
            fyxm += f.getItemname() == null ? "" : f.getItemname();
            fyxm += f.getAmount() + "元";
            if (f.getItemname() == null && f.getAmount() == 0.0) {
                fyxm = "";
            }
            map.put("FYXM", fyxm);
            newList.add(map);
        }