|  |  |  | 
|---|
|  |  |  | package com.ruoyi.web.controller.project; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 
|---|
|  |  |  | import com.ruoyi.common.annotation.Log; | 
|---|
|  |  |  | import com.ruoyi.common.annotation.NotRepeatCommit; | 
|---|
|  |  |  | import com.ruoyi.common.annotation.RepeatSubmit; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | import com.ruoyi.common.enums.BusinessType; | 
|---|
|  |  |  | import com.ruoyi.common.exception.ServiceException; | 
|---|
|  |  |  | import com.ruoyi.common.exception.base.BaseException; | 
|---|
|  |  |  | import com.ruoyi.common.tax.TaxtUtils; | 
|---|
|  |  |  | import com.ruoyi.common.utils.SecurityUtils; | 
|---|
|  |  |  | import com.ruoyi.common.utils.StringUtils; | 
|---|
|  |  |  | import com.ruoyi.common.utils.bean.DtoConversionUtils; | 
|---|
|  |  |  | import com.ruoyi.common.utils.poi.ExcelUtil; | 
|---|
|  |  |  | import com.ruoyi.project.domain.*; | 
|---|
|  |  |  | 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 com.ruoyi.system.service.ISysUserService; | 
|---|
|  |  |  | import freemarker.template.Configuration; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IServiceFundService serviceFundService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IServiceFundSharedService fundSharedService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ServiceFunddetailMapper serviceFunddetailMapper; | 
|---|
|  |  |  | private IServiceFundSharedService serviceFundSharedService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IServiceFunddetailService serviceFunddetailService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IServiceFunddetailSharedService funddetailSharedService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IServiceFundflowruleService serviceFundflowruleService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IServiceFundflowService serviceFundflowService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IServiceDonatebaseinfoService serviceDonatebaseinfoService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | private IServiceReimbursementService serviceReimbursementService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IServiceSystemmessageService ServiceSystemmessage; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IBaseOnlyvalueService baseOnlyvalueService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IServiceExternalpersonService externalpersonService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ISysPostService postService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private DataSourceTransactionManager transactionManager; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private TransactionDefinition transactionDefinition; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private DingTalkService dingTalkService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ISysUserService sysUserService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ServiceFundController() { | 
|---|
|  |  |  | configuration = new Configuration(); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 致远系统流程退回 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param serviceProcessDocVO | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @PostMapping("/backdocument") | 
|---|
|  |  |  | public AjaxResult backDocument(@RequestBody ServiceProcessDocVO serviceProcessDocVO) { | 
|---|
|  |  |  | log.info("致远系统流程退回入参:{}", serviceProcessDocVO); | 
|---|
|  |  |  | if (serviceProcessDocVO.getBackCode() == null || StringUtils.isEmpty(serviceProcessDocVO.getApplytype())) { | 
|---|
|  |  |  | return AjaxResult.error("入能为空,请检查入参!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | serviceFundService.backDocument(serviceProcessDocVO); | 
|---|
|  |  |  | return AjaxResult.success("退回成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 致远系统流程退回审批日志 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param serviceProcessVO | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @PostMapping("/processlog") | 
|---|
|  |  |  | public AjaxResult processlog(@RequestBody ServiceProcessVO serviceProcessVO) { | 
|---|
|  |  |  | log.info("致远系统流程退回审批日志入参:{}", serviceProcessVO); | 
|---|
|  |  |  | if (serviceProcessVO.getBackCode() == null && StringUtils.isEmpty(serviceProcessVO.getApplytype())) { | 
|---|
|  |  |  | return AjaxResult.error("入能为空,请检查入参!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Boolean processlog = serviceFundService.processlog(serviceProcessVO); | 
|---|
|  |  |  | if (!processlog) return AjaxResult.error("审批记录失败"); | 
|---|
|  |  |  | return AjaxResult.success("审批记录成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 修改编号与支付方式 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param serviceCodeAndPyaWay | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @PostMapping("/updatecodepayway") | 
|---|
|  |  |  | public AjaxResult updatecodepay(@RequestBody ServiceCodeAndPyaWay serviceCodeAndPyaWay) { | 
|---|
|  |  |  | log.info("致远系统编号与支付方式入参:{}", serviceCodeAndPyaWay); | 
|---|
|  |  |  | if (StringUtils.isEmpty(serviceCodeAndPyaWay.getApplytype()) || StringUtils.isEmpty(serviceCodeAndPyaWay.getBh()) || StringUtils.isEmpty(serviceCodeAndPyaWay.getZffs())) { | 
|---|
|  |  |  | return AjaxResult.error("入能为空,请检查入参!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Boolean result = serviceFundService.updatecodepay(serviceCodeAndPyaWay); | 
|---|
|  |  |  | if (!result) return AjaxResult.error("修改失败"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return AjaxResult.success("修改成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询费用申请主列表 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation("查询费用申请主列表") | 
|---|
|  |  |  | //@PreAuthorize("@ss.hasPermi('project:fund:list')") | 
|---|
|  |  |  | //// @PreAuthorize("@ss.hasPermi('project:fund:list')") | 
|---|
|  |  |  | @GetMapping("/list") | 
|---|
|  |  |  | public TableDataInfo list(ServiceFund serviceFund) { | 
|---|
|  |  |  | startPage(); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(spFinancialExpensesIn.getDonorname())) { | 
|---|
|  |  |  | list = list.stream().filter(obj -> obj.getDonorname().contains(spFinancialExpensesIn.getDonorname())).collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //通过业务组过滤 | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(spFinancialExpensesIn.getDeptnos())) { | 
|---|
|  |  |  | list = list.stream().filter(obj -> obj.getDeptmentno().contains(spFinancialExpensesIn.getDeptnos())).collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //通过金额过滤 | 
|---|
|  |  |  | if (spFinancialExpensesIn.getMoney() != null) { | 
|---|
|  |  |  | list = list.stream().filter(reimbursementOut -> new BigDecimal(reimbursementOut.getPretaxcost()).compareTo(new BigDecimal(spFinancialExpensesIn.getMoney())) == 0).collect(Collectors.toList()); | 
|---|
|  |  |  | 
|---|
|  |  |  | Collections.sort(list, new Comparator<SpFinancialExpensesFundOut>() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public int compare(SpFinancialExpensesFundOut o1, SpFinancialExpensesFundOut o2) { | 
|---|
|  |  |  | return o1.getCreateTime().compareTo(o2.getCreateTime()); | 
|---|
|  |  |  | return o1.getApplyTime().compareTo(o2.getApplyTime()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return getCustomDataTable(list, pageNum, pageSize); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据权限显示审核列表 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation("根据权限显示审核列表") | 
|---|
|  |  |  | @Log(title = "根据权限显示审核列表", businessType = BusinessType.OTHER) | 
|---|
|  |  |  | @PostMapping("/getExpertfeeList") | 
|---|
|  |  |  | public TableDataInfo getExpertfeeList(@RequestBody SpSelectExpertfee spSelectExpertfee) { | 
|---|
|  |  |  | List<SpFinancialExpensesFundOut> expertfeeList = serviceFundService.getExpertfeeList(spSelectExpertfee); | 
|---|
|  |  |  | return getCustomDataTable(expertfeeList, spSelectExpertfee.getPageNum(), spSelectExpertfee.getPageSize()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiOperation("查询费用申请主列表") | 
|---|
|  |  |  | //@PreAuthorize("@ss.hasPermi('project:fund:list')") | 
|---|
|  |  |  | //// @PreAuthorize("@ss.hasPermi('project:fund:list')") | 
|---|
|  |  |  | @GetMapping(value = "/getInfo/{infoid}") | 
|---|
|  |  |  | public AjaxResult getInfoByInfoId(@PathVariable("infoid") Long infoid) { | 
|---|
|  |  |  | return AjaxResult.success(serviceFundService.getInfoByInfoId(infoid)); | 
|---|
|  |  |  | 
|---|
|  |  |  | * 导出费用申请主列表 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation("导出费用申请主列表") | 
|---|
|  |  |  | //@PreAuthorize("@ss.hasPermi('project:fund:export')") | 
|---|
|  |  |  | //// @PreAuthorize("@ss.hasPermi('project:fund:export')") | 
|---|
|  |  |  | @Log(title = "费用申请主", businessType = BusinessType.EXPORT) | 
|---|
|  |  |  | @GetMapping("/export") | 
|---|
|  |  |  | public AjaxResult export(ServiceFund serviceFund) { | 
|---|
|  |  |  | 
|---|
|  |  |  | * 获取费用申请主详细信息 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation("获取费用申请主详细信息") | 
|---|
|  |  |  | //@PreAuthorize("@ss.hasPermi('project:fund:query')") | 
|---|
|  |  |  | //// @PreAuthorize("@ss.hasPermi('project:fund:query')") | 
|---|
|  |  |  | @GetMapping(value = "/{id}") | 
|---|
|  |  |  | public AjaxResult getInfo(@PathVariable("id") Long id) { | 
|---|
|  |  |  | return AjaxResult.success(serviceFundService.getById(id)); | 
|---|
|  |  |  | 
|---|
|  |  |  | * 新增费用申请主 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation("新增费用申请主") | 
|---|
|  |  |  | //@PreAuthorize("@ss.hasPermi('project:fund:add')") | 
|---|
|  |  |  | //// @PreAuthorize("@ss.hasPermi('project:fund:add')") | 
|---|
|  |  |  | @Log(title = "费用申请主", businessType = BusinessType.INSERT) | 
|---|
|  |  |  | @PostMapping("/add") | 
|---|
|  |  |  | @RepeatSubmit | 
|---|
|  |  |  | 
|---|
|  |  |  | return AjaxResult.success(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //    public int addReiSharedDatd(ServiceFund serviceFund, int nType) { | 
|---|
|  |  |  | //        //remShare = ; | 
|---|
|  |  |  | //        ServiceFundShared remShare = null; | 
|---|
|  |  |  | //        if (nType == 1) { | 
|---|
|  |  |  | //            remShare = new ServiceFundShared(); | 
|---|
|  |  |  | //            remShare.setSerfunid(serviceFund.getId()); | 
|---|
|  |  |  | //        } else //modify | 
|---|
|  |  |  | //        { | 
|---|
|  |  |  | //            List<ServiceFundShared> remlist = fundServiceShare.getFundShareInfoById(serviceFund.getId()); | 
|---|
|  |  |  | //            if (remlist != null) remShare = remlist.get(0); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        remShare.setDonorno(serviceFund.getDonorno()); | 
|---|
|  |  |  | //        remShare.setDonorname(serviceFund.getDonorname()); | 
|---|
|  |  |  | //        remShare.setUserno(serviceFund.getUserno()); | 
|---|
|  |  |  | //        remShare.setUsername(serviceFund.getUsername()); | 
|---|
|  |  |  | //        remShare.setUnitname(serviceFund.getUnitname()); | 
|---|
|  |  |  | //        remShare.setUnitno(serviceFund.getUnitno()); | 
|---|
|  |  |  | //        remShare.setUnituserno(serviceFund.getUnituserno()); | 
|---|
|  |  |  | //        remShare.setPhone(serviceFund.getPhone()); | 
|---|
|  |  |  | //        remShare.setAnnexbankcard(serviceFund.getAnnexbankcard()); | 
|---|
|  |  |  | //        remShare.setAnnexregistform(serviceFund.getAnnexregistform()); | 
|---|
|  |  |  | //        Double nTemp = serviceFund.getPretaxcost(); | 
|---|
|  |  |  | //        if (nTemp == null) nTemp = 0d; | 
|---|
|  |  |  | //        remShare.setPretaxcost(BigDecimal.valueOf(nTemp)); | 
|---|
|  |  |  | //        //remShare.setAnnexfiles(serviceReimbursement.getAnnexfiles()); | 
|---|
|  |  |  | //        // remShare.setAmountrequested(BigDecimal.valueOf(serviceReimbursement.getAmountrequested())); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        nTemp = serviceFund.getTaxedcost(); | 
|---|
|  |  |  | //        if (nTemp == null) nTemp = 0d; | 
|---|
|  |  |  | //        remShare.setTaxedcost(BigDecimal.valueOf(nTemp)); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        nTemp = serviceFund.getTotalcost(); | 
|---|
|  |  |  | //        if (nTemp == null) nTemp = 0d; | 
|---|
|  |  |  | //        remShare.setTotalcost(BigDecimal.valueOf(nTemp)); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        nTemp = serviceFund.getExpertcost(); | 
|---|
|  |  |  | //        if (nTemp == null) nTemp = 0.0; | 
|---|
|  |  |  | //        remShare.setExpertcost(BigDecimal.valueOf(nTemp)); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        nTemp = serviceFund.getEthicscost(); | 
|---|
|  |  |  | //        if (nTemp == null) nTemp = 0.0; | 
|---|
|  |  |  | //        remShare.setEthicscost(BigDecimal.valueOf(nTemp)); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        nTemp = serviceFund.getMedicalcost(); | 
|---|
|  |  |  | //        if (nTemp == null) nTemp = 0.0; | 
|---|
|  |  |  | //        remShare.setMedicalcost(BigDecimal.valueOf(nTemp)); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        nTemp = serviceFund.getFamilycost(); | 
|---|
|  |  |  | //        if (nTemp == null) nTemp = 0.0; | 
|---|
|  |  |  | //        remShare.setFamilycost(BigDecimal.valueOf(nTemp)); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        nTemp = serviceFund.getAftercarecost(); | 
|---|
|  |  |  | //        if (nTemp == null) nTemp = 0.0; | 
|---|
|  |  |  | //        remShare.setAftercarecost(BigDecimal.valueOf(nTemp)); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        nTemp = serviceFund.getAmountrequested(); | 
|---|
|  |  |  | //        if (nTemp == null) nTemp = 0.0; | 
|---|
|  |  |  | //        remShare.setAmountrequested(BigDecimal.valueOf(nTemp)); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        remShare.setApplytype(serviceFund.getApplytype()); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        nTemp = serviceFund.getPrepaidamount(); | 
|---|
|  |  |  | //        if (nTemp == null) nTemp = 0.0; | 
|---|
|  |  |  | //        remShare.setPrepaidamount(BigDecimal.valueOf(nTemp)); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        remShare.setInvoicecount(serviceFund.getInvoicecount()); | 
|---|
|  |  |  | //        remShare.setAttachcount(serviceFund.getAttachcount()); | 
|---|
|  |  |  | //        remShare.setManagerno(serviceFund.getManagerno()); | 
|---|
|  |  |  | //        remShare.setManagername(serviceFund.getManagername()); | 
|---|
|  |  |  | //        remShare.setDeptmentno(serviceFund.getDeptmentno()); | 
|---|
|  |  |  | //        remShare.setDeptmentname(serviceFund.getDeptmentname()); | 
|---|
|  |  |  | //        remShare.setOpochecker(serviceFund.getOpochecker()); | 
|---|
|  |  |  | //        remShare.setFinvicepresident(serviceFund.getFinvicepresident()); | 
|---|
|  |  |  | //        remShare.setBusvicepresident(serviceFund.getBusvicepresident()); | 
|---|
|  |  |  | //        remShare.setOfficedirector(serviceFund.getOfficedirector()); | 
|---|
|  |  |  | //        remShare.setFinancedirector(serviceFund.getFinancedirector()); | 
|---|
|  |  |  | //        remShare.setFinancechecher(serviceFund.getFinancechecher()); | 
|---|
|  |  |  | //        //remShare.setIsdistribute(serviceFund.getIsdistribute()); | 
|---|
|  |  |  | //        remShare.setRecordstatus(serviceFund.getRecordstatus()); | 
|---|
|  |  |  | //        remShare.setUploadflag(serviceFund.getUploadflag()); | 
|---|
|  |  |  | //        remShare.setUploadtime(serviceFund.getUploadtime()); | 
|---|
|  |  |  | //        long nLevel = serviceFund.getFlowlevel(); | 
|---|
|  |  |  | //        remShare.setFlowlevel(nLevel); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        remShare.setInfoid(serviceFund.getInfoid()); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        //remShare.setOaid(serviceReimbursement.getOaid()); | 
|---|
|  |  |  | //        //remShare.setDonorno(serviceReimbursement.getDonorno()); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        boolean bRet = false; | 
|---|
|  |  |  | //        if (nType == 1) { | 
|---|
|  |  |  | //            bRet = fundServiceShare.save(remShare); | 
|---|
|  |  |  | //        } else { | 
|---|
|  |  |  | //            //remShare.setId(serviceReimbursement.); | 
|---|
|  |  |  | //            bRet = fundServiceShare.updateById(remShare); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        //if(!bRet) return -1; | 
|---|
|  |  |  | //        String strMutfileUrl = remShare.getAnnexbankcard(); | 
|---|
|  |  |  | //        //有附件时才调用第三方进行上传 | 
|---|
|  |  |  | //        if (strMutfileUrl == null) return 0; | 
|---|
|  |  |  | //        if (strMutfileUrl.isEmpty()) return 0; | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        try { | 
|---|
|  |  |  | //            uploadOAFileAndUpdateDb(remShare); | 
|---|
|  |  |  | //        } catch (Exception e) { | 
|---|
|  |  |  | //            logger.error("调用第三方接口出错!"); | 
|---|
|  |  |  | //            e.printStackTrace(); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        //此处保存成功后要上传OA,保存返回值 | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        return 0; | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //    int uploadOAFileAndUpdateDb(ServiceFundShared remShare) { | 
|---|
|  |  |  | //        //上传OA文件 | 
|---|
|  |  |  | //        //String strUrl = "http://129.88.242.39:8899/seeyon/rest/token?userName=opo&password=127814f8-84e8-4304-84a5-a71573567efd&loginName=demo3"; | 
|---|
|  |  |  | //        String strUrl = "http://129.88.242.39:8899/seeyon/rest/token"; | 
|---|
|  |  |  | //        //String strUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/token"; | 
|---|
|  |  |  | //        //上传文件成功后,去更新相关的数据库 | 
|---|
|  |  |  | // | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        Map<String, Object> map = new HashMap<String, Object>(); | 
|---|
|  |  |  | //        map.put("userName", "opo"); | 
|---|
|  |  |  | //        map.put("password", "4126407a-9821-4874-be41-6568abd6dbe5"); | 
|---|
|  |  |  | //        map.put("loginName", "demo3"); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        JSONObject jsonObj = new JSONObject(map); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        System.out.println("uploadOAFileAndUpdateDb + jsonObject" + jsonObj.toString() + "\r\n" + jsonObj.toJSONString()); | 
|---|
|  |  |  | //        String strRes = HttpClientKit.postOpr(strUrl, jsonObj.toString());// | 
|---|
|  |  |  | //        //String strRes = HttpClientKit.postMsg(strUrl,jsonObj);//得到返回的token? | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        JSONObject json1 = JSONObject.parseObject(strRes); | 
|---|
|  |  |  | //        strRes = json1.get("id").toString(); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        ///if(strRes.isEmpty() || "" == strRes) return -1;// 为空代表失败 | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        //下面需求调用文件的接口,调用成功返回后,得到filename和fileid 用这二个值去更新数据 | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        String filePath = RuoYiConfig.getUploadPath(); | 
|---|
|  |  |  | //        String strMutfileUrl = remShare.getAnnexbankcard();//可能存在多个地址,以,分开 | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        String strFUrl = "http://129.88.242.39:8899/seeyon/rest/attachment?token=" + strRes; | 
|---|
|  |  |  | //        //String strFUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/attachment?token="+strRes; | 
|---|
|  |  |  | //        //strFUrl = String.format(strFUrl, strRes); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        /*File test = null; | 
|---|
|  |  |  | //        File file = new File("E:\\YYJQ\\OPO\\WEB\\Upload\\upload\\2023\\02\\17"); | 
|---|
|  |  |  | //        if (file.exists() && file.isDirectory()) { | 
|---|
|  |  |  | //            // 获取所有盲盒文件夹 | 
|---|
|  |  |  | //            File[] ones = file.listFiles(); | 
|---|
|  |  |  | //            for (File one : ones) { | 
|---|
|  |  |  | //                test = one; | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //        }*/ | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        String filename = ""; | 
|---|
|  |  |  | //        String fileid = ""; | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        String[] urlArray = strMutfileUrl.split(","); | 
|---|
|  |  |  | //        for (int i = 0; i < urlArray.length; i++) { | 
|---|
|  |  |  | //            String strOneFileName = urlArray[i]; | 
|---|
|  |  |  | //            String strTemp = strOneFileName.substring(15); | 
|---|
|  |  |  | //            String strFile = filePath + strTemp; | 
|---|
|  |  |  | //            //FileUploadUtils.getAbsoluteFile(filePath,strOneFileName); | 
|---|
|  |  |  | //            String struploadResult = ""; | 
|---|
|  |  |  | //            File filetest = new File(strFile); | 
|---|
|  |  |  | //            try { | 
|---|
|  |  |  | //                struploadResult = HttpClientKit.sendPostWithFile(filetest, strFUrl); | 
|---|
|  |  |  | //            } catch (Exception e) { | 
|---|
|  |  |  | //                e.printStackTrace(); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            //String strFRes = HttpClientKit.postMsg(strFUrl,jsonFObj); | 
|---|
|  |  |  | //            if (struploadResult == null) return 0; | 
|---|
|  |  |  | //            if (struploadResult.isEmpty()) return 0; | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            JSONObject jsonR = JSONObject.parseObject(struploadResult); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            JSONArray jsonArr = jsonR.getJSONArray("atts"); | 
|---|
|  |  |  | //            for (int j = 0; j < jsonArr.size(); j++) { | 
|---|
|  |  |  | //                JSONObject jsonRet = jsonArr.getJSONObject(j); | 
|---|
|  |  |  | //                String name1 = jsonRet.get("filename").toString(); | 
|---|
|  |  |  | //                String id1 = jsonRet.get("fileUrl").toString(); | 
|---|
|  |  |  | //                filename += name1; | 
|---|
|  |  |  | //                fileid += id1; | 
|---|
|  |  |  | //                if (i != urlArray.length - 1) { | 
|---|
|  |  |  | //                    filename += ","; | 
|---|
|  |  |  | //                    fileid += ","; | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        long nId = remShare.getId(); | 
|---|
|  |  |  | //        remShare.setId(nId); | 
|---|
|  |  |  | //        remShare.setFilename(filename); | 
|---|
|  |  |  | //        remShare.setFileid(fileid); | 
|---|
|  |  |  | //        boolean bRet = fundServiceShare.updateById(remShare); | 
|---|
|  |  |  | //        if (!bRet) return -1; | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //        return 0; | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * fund表中,修改fundTaxId | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation("fund表中,修改fundTaxId") | 
|---|
|  |  |  | @PostMapping("/editFundTaxId") | 
|---|
|  |  |  | public AjaxResult editFundTaxId(@RequestBody ServiceFund serviceFund) { | 
|---|
|  |  |  | boolean b = serviceFundService.updateFundTaxIdById(serviceFund.getId(), serviceFund.getFundTaxId()); | 
|---|
|  |  |  | return AjaxResult.success(b); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 新增费用汇总 | 
|---|
|  |  |  | 
|---|
|  |  |  | @PostMapping("/checkfund") | 
|---|
|  |  |  | public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) { | 
|---|
|  |  |  | log.info("serviceFundController---checkFund的入参值checkFundVO :{}", checkFundVO); | 
|---|
|  |  |  | ServiceFund serviceFund = serviceFundService.getById(checkFundVO.getFundid()); | 
|---|
|  |  |  | if (serviceFund != null) { | 
|---|
|  |  |  | Integer TotalLevel = 0; | 
|---|
|  |  |  | LoginUser loginUser = getLoginUser(); | 
|---|
|  |  |  | ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule(); | 
|---|
|  |  |  | serviceFundflowrule.setFundtype(2); | 
|---|
|  |  |  | serviceFundflowrule.setApplytype(serviceFund.getApplytype()); | 
|---|
|  |  |  | serviceFundflowrule.setCheckuserno(loginUser.getUsername()); | 
|---|
|  |  |  | log.info("serviceFundController---checkFund---queryList的入参值serviceFundflowrule:{}", serviceFundflowrule); | 
|---|
|  |  |  | List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (serviceFundflowrules == null || serviceFundflowrules.stream().count() == 0) { | 
|---|
|  |  |  | return AjaxResult.error(HttpStatus.ERROR, "当前人员无此记录审核权限"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (serviceFundflowrules.get(0).getFlowlevel() - 1 != serviceFund.getFlowlevel()) { | 
|---|
|  |  |  | return AjaxResult.error(HttpStatus.ERROR, "当前人员与此记录的审核级别不符"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (serviceFundflowrules != null && serviceFundflowrules.stream().count() > 0) { | 
|---|
|  |  |  | TotalLevel = serviceFundflowrules.get(0).getTotallevel(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer CheckFlag = 0; | 
|---|
|  |  |  | Integer RecordStatus = serviceFund.getRecordstatus(); | 
|---|
|  |  |  | Integer FlowLevel = serviceFund.getFlowlevel().intValue(); | 
|---|
|  |  |  | Integer OriginalFlowLevel = FlowLevel; | 
|---|
|  |  |  | if (checkFundVO.getFlowconclusion() == 1) { | 
|---|
|  |  |  | CheckFlag = 1; | 
|---|
|  |  |  | if (TotalLevel == 0) { | 
|---|
|  |  |  | RecordStatus = 99; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (TotalLevel == FlowLevel + 1) { | 
|---|
|  |  |  | RecordStatus = 99; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | RecordStatus = (FlowLevel + 1) * 2; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | FlowLevel = FlowLevel + 1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (serviceFund.getFlowlevel() == Long.valueOf(serviceFundflowrules.get(0).getFlowlevel() - 1) && serviceFund.getBackflowlevel() == 100) { | 
|---|
|  |  |  | log.info("财务退回再提交,出纳再次审批,之后提交到财务"); | 
|---|
|  |  |  | //说明是财务退回再提交的.需要出纳再看一遍,没问题之后,往分享表里新增 | 
|---|
|  |  |  | //                    serviceFundService.addFundSharedInfo(serviceFund.getId()); | 
|---|
|  |  |  | serviceFund.setFlowlevel(serviceFundflowrules.get(0).getTotallevel().longValue()); | 
|---|
|  |  |  | serviceFund.setRecordstatus(99); | 
|---|
|  |  |  | serviceFund.setUploadStates(1); | 
|---|
|  |  |  | serviceFundService.updateById(serviceFund); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //保存审批流程表 | 
|---|
|  |  |  | ServiceFundflow serviceFundflow = new ServiceFundflow(); | 
|---|
|  |  |  | SysUser user = loginUser.getUser(); | 
|---|
|  |  |  | serviceFundflow.setFundid(serviceFund.getId()); | 
|---|
|  |  |  | serviceFundflow.setCheckuserno(user.getUserName()); | 
|---|
|  |  |  | serviceFundflow.setCheckusername(user.getNickName()); | 
|---|
|  |  |  | serviceFundflow.setFundtype(2); | 
|---|
|  |  |  | serviceFundflow.setApplytype(serviceFund.getApplytype()); | 
|---|
|  |  |  | serviceFundflow.setFlowconclusion(CheckFlag); | 
|---|
|  |  |  | serviceFundflow.setFlowcontent("通过"); | 
|---|
|  |  |  | Boolean aBoolean = serviceFundflowService.saveData(serviceFundflow); | 
|---|
|  |  |  | return AjaxResult.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //记录一下,下一级的审批,以便于下一级退回后,发起者提交时,能再提到当前审批层级 | 
|---|
|  |  |  | serviceFund.setBackflowlevel(FlowLevel); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | CheckFlag = 2; | 
|---|
|  |  |  | if (CheckFlag == 2) { | 
|---|
|  |  |  | //应医院要求如果出现退回,直接退到发起者 | 
|---|
|  |  |  | FlowLevel = 0; | 
|---|
|  |  |  | RecordStatus = -1; | 
|---|
|  |  |  | logger.info("serviceFund进来了吗?????? :{},{}", RecordStatus, FlowLevel); | 
|---|
|  |  |  | System.out.println("serviceFund进来了吗??????"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | RecordStatus = (FlowLevel + 1) * 2 - 1; | 
|---|
|  |  |  | FlowLevel = (FlowLevel - 1); | 
|---|
|  |  |  | if (FlowLevel < 0) { | 
|---|
|  |  |  | FlowLevel = 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SysUser sysUser = sysUserService.selectUserByUserName(serviceFund.getUserno()); | 
|---|
|  |  |  | ArrayList<ConcurrentHashMap<String, Object>> contentList = new ArrayList<>(); | 
|---|
|  |  |  | ConcurrentHashMap map = new ConcurrentHashMap(); | 
|---|
|  |  |  | map.put("审批人:", loginUser.getUser().getUserName()); | 
|---|
|  |  |  | map.put("审批时间:", new Date()); | 
|---|
|  |  |  | map.put("意见:", "不通过"); | 
|---|
|  |  |  | if (StringUtils.isNotBlank(checkFundVO.getFlowcontent())) map.put("意见:", checkFundVO.getFlowcontent()); | 
|---|
|  |  |  | contentList.add(map); | 
|---|
|  |  |  | DingTalkReqVo dingTalkReqVo = new DingTalkReqVo(); | 
|---|
|  |  |  | dingTalkReqVo.setTitle("财务系统驳回信息"); | 
|---|
|  |  |  | dingTalkReqVo.setNumber(sysUser.getPhonenumber()); | 
|---|
|  |  |  | dingTalkReqVo.setContents(contentList); | 
|---|
|  |  |  | dingTalkService.sendNotification(dingTalkReqVo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | serviceFund.setRecordstatus(RecordStatus); | 
|---|
|  |  |  | serviceFund.setFlowlevel(FlowLevel.longValue()); | 
|---|
|  |  |  | //  serviceFund.setBackflowlevel(serviceFund.getFlowlevel()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ServiceFundflow serviceFundflow = new ServiceFundflow(); | 
|---|
|  |  |  | SysUser user = loginUser.getUser(); | 
|---|
|  |  |  | serviceFundflow.setFundid(serviceFund.getId()); | 
|---|
|  |  |  | serviceFundflow.setCheckuserno(user.getUserName()); | 
|---|
|  |  |  | serviceFundflow.setCheckusername(user.getNickName()); | 
|---|
|  |  |  | serviceFundflow.setFundtype(2); | 
|---|
|  |  |  | serviceFundflow.setApplytype(serviceFund.getApplytype()); | 
|---|
|  |  |  | serviceFundflow.setFlowconclusion(CheckFlag); | 
|---|
|  |  |  | if (org.apache.commons.lang.StringUtils.isNotBlank(checkFundVO.getFlowcontent())) { | 
|---|
|  |  |  | serviceFundflow.setFlowcontent(checkFundVO.getFlowcontent()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | serviceFundflow.setFlowcontent(checkFundVO.getFlowconclusion() == 1 ? "通过" : "不通过"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | serviceFundflow.setFlowlevel(OriginalFlowLevel + 1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Boolean aBoolean = serviceFundflowService.saveData(serviceFundflow); | 
|---|
|  |  |  | log.info("sserviceFund保存的的值是-------- :{}", aBoolean); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //001审批通过之后,就需要把“办公室主任”的名字填上 | 
|---|
|  |  |  | if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("001")) { | 
|---|
|  |  |  | serviceFund.setOfficedirector(user.getNickName()); | 
|---|
|  |  |  | serviceFund.setUploadStates(1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | serviceSystemmessage.setSenduserno(user.getUserName()); | 
|---|
|  |  |  | serviceSystemmessage.setSendusername(user.getNickName()); | 
|---|
|  |  |  | serviceSystemmessage.setReceiveuserno(serviceFund.getUserno()); | 
|---|
|  |  |  | serviceSystemmessage.setReceiveusername(serviceFund.getUsername()); | 
|---|
|  |  |  | serviceSystemmessage.setIsread(0); | 
|---|
|  |  |  | serviceSystemmessage.setMessagetype(1); | 
|---|
|  |  |  | serviceSystemmessage.setRelevantno(serviceFund.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (CheckFlag == 1) { | 
|---|
|  |  |  | //通过 | 
|---|
|  |  |  | serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "级审核通过"); | 
|---|
|  |  |  | serviceSystemmessage.setMessagecontent("您" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceFund.getCreateTime()) + "提交的关于捐献案例【" + serviceFund.getDonorname() + "】的费用申请已通过" + (OriginalFlowLevel + 1) + "级审核"); | 
|---|
|  |  |  | //                if (TotalLevel == OriginalFlowLevel + 1) { | 
|---|
|  |  |  | //                    serviceFundService.addFundSharedInfo(checkFundVO.getFundid()); | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | //驳回 | 
|---|
|  |  |  | serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "级审核驳回"); | 
|---|
|  |  |  | serviceSystemmessage.setMessagecontent("您" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceFund.getCreateTime()) + "提交的关于捐献案例【" + serviceFund.getDonorname() + "】的费用申请已被" + (OriginalFlowLevel + 1) + "级审核驳回,原因为" + checkFundVO.getFlowcontent() + ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ServiceSystemmessage.save(serviceSystemmessage); | 
|---|
|  |  |  | return AjaxResult.success(); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return AjaxResult.error(HttpStatus.NO_CONTENT, "费用编号不正确"); | 
|---|
|  |  |  | LoginUser loginUser = getLoginUser(); | 
|---|
|  |  |  | Map<String, String> map = serviceFundService.checkFund(checkFundVO, loginUser); | 
|---|
|  |  |  | Set<String> keys = map.keySet(); | 
|---|
|  |  |  | for (String s : keys) { | 
|---|
|  |  |  | if (!s.equals("200")) return AjaxResult.error(map.get(s)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return AjaxResult.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * 删除费用申请主 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation("删除费用申请主") | 
|---|
|  |  |  | //@PreAuthorize("@ss.hasPermi('project:fund:remove')") | 
|---|
|  |  |  | //// @PreAuthorize("@ss.hasPermi('project:fund:remove')") | 
|---|
|  |  |  | @Log(title = "费用申请主", businessType = BusinessType.DELETE) | 
|---|
|  |  |  | @GetMapping("/remove/{ids}") | 
|---|
|  |  |  | public AjaxResult remove(@PathVariable Long[] ids) { | 
|---|
|  |  |  | 
|---|
|  |  |  | @GetMapping(value = "/downloadLW/{id}") | 
|---|
|  |  |  | public Map downloadInfoLW(@PathVariable("id") Long id) throws IOException { | 
|---|
|  |  |  | Map dataMap = new HashMap(); | 
|---|
|  |  |  | getDataLW(dataMap, id); | 
|---|
|  |  |  | String dataLW = getDataLW(dataMap, id); | 
|---|
|  |  |  | String filePath = getClass().getResource("/template/").getPath(); | 
|---|
|  |  |  | System.out.println(filePath); | 
|---|
|  |  |  | //设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载, | 
|---|
|  |  |  | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis()); | 
|---|
|  |  |  | String name = "专家劳务费发放申请单_" + dataMap.get("XM") + "_" + newTime; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String newName = null; | 
|---|
|  |  |  | if (Objects.isNull(dataMap.get("XM"))) { | 
|---|
|  |  |  | newName = dataMap.get("XM").toString().trim(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String name = "专家劳务费发放申请单_" + newName + "_" + newTime; | 
|---|
|  |  |  | if (dataLW.equals("4")) { | 
|---|
|  |  |  | name = "办公费用申请单_" + newName + "_" + newTime; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //输出文档路径及名称 | 
|---|
|  |  |  | File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc"); | 
|---|
|  |  |  | 
|---|
|  |  |  | return map; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void getDataLW(Map dataMap, Long id) { | 
|---|
|  |  |  | private String getDataLW(Map dataMap, Long id) { | 
|---|
|  |  |  | ServiceFund serviceFund = serviceFundService.getById(id); | 
|---|
|  |  |  | if (serviceFund == null) { | 
|---|
|  |  |  | throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT); | 
|---|
|  |  |  | 
|---|
|  |  |  | dataMap.put("JXZXM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname()); | 
|---|
|  |  |  | dataMap.put("JSR", serviceFund.getUsername() == null ? "" : serviceFund.getUsername()); | 
|---|
|  |  |  | //        dataMap.put("FYXM1", "支付专家费用,其中税前金额" + serviceFund.getPretaxcost() + "元,税后金额" + serviceFund.getTaxedcost() + "元。"); | 
|---|
|  |  |  | dataMap.put("FYXM1", "人体器官捐献专家劳务费:" + serviceFund.getPretaxcost() + "元 (其中税后费用由中心承担税费)。"); | 
|---|
|  |  |  | if (serviceFund.getApplytype().equals("1")) { | 
|---|
|  |  |  | dataMap.put("FYXM1", "人体器官捐献专家劳务费:" + serviceFund.getPretaxcost() + "元 (其中税后费用由中心承担税费)。"); | 
|---|
|  |  |  | } else if (serviceFund.getApplytype().equals("4")) { | 
|---|
|  |  |  | dataMap.put("FYXM1", "办公费用:" + serviceFund.getPretaxcost()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | dataMap.put("FYXM2", ""); | 
|---|
|  |  |  | dataMap.put("FYXM3", ""); | 
|---|
|  |  |  | dataMap.put("JEXS", serviceFund.getPretaxcost()); | 
|---|
|  |  |  | 
|---|
|  |  |  | dataMap.put("KSLJ", kslj); | 
|---|
|  |  |  | dataMap.put("SHLJ", shlj); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return serviceFund.getApplytype(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | Map dataMap = new HashMap(); | 
|---|
|  |  |  | String dataYX = getDataYX(dataMap, id); | 
|---|
|  |  |  | String filePath = getClass().getResource("/template/").getPath(); | 
|---|
|  |  |  | log.info("filePath的值为:{}", filePath); | 
|---|
|  |  |  | System.out.println(filePath); | 
|---|
|  |  |  | //设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载, | 
|---|
|  |  |  | configuration.setDirectoryForTemplateLoading(new File(filePath)); | 
|---|
|  |  |  | 
|---|
|  |  |  | //输出文档路径及名称 | 
|---|
|  |  |  | File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc"); | 
|---|
|  |  |  | Writer out = null; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } catch (FileNotFoundException e1) { | 
|---|
|  |  |  | e1.printStackTrace(); | 
|---|
|  |  |  | log.error("FileNotFoundException报错信息是:{}", e1.getMessage()); | 
|---|
|  |  |  | //            e1.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | try { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | t.process(dataMap, out); | 
|---|
|  |  |  | } catch (TemplateException e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | log.error("TemplateException报错信自是:{}", e.getMessage()); | 
|---|
|  |  |  | e.getMessage(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Map<String, Object> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("downloadUrl", "/profile/download/wordtemplate/" + name + ".doc"); | 
|---|
|  |  |  | 
|---|
|  |  |  | throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ServiceExternalperson infoByUserNo = null; | 
|---|
|  |  |  | if (StringUtils.isNotBlank(serviceFund.getUserno())) { | 
|---|
|  |  |  | if (StringUtils.isNotBlank(serviceFund.getUserno()) && serviceFund.getApplytype().equals("5")) { | 
|---|
|  |  |  | infoByUserNo = externalpersonService.getInfoByUserNo(serviceFund.getUserno()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | dataMap.put("CWSH", serviceFund.getFinancechecher() == null ? "" : serviceFund.getFinancechecher()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | dataMap.put("YYMMDD", time); | 
|---|
|  |  |  | dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname()); | 
|---|
|  |  |  | dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname().trim()); | 
|---|
|  |  |  | dataMap.put("GZRY", serviceFund.getUsername() == null ? "" : serviceFund.getUsername()); | 
|---|
|  |  |  | dataMap.put("ZZ", serviceFund.getManagername() == null ? "" : serviceFund.getManagername()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | dataMap.put("downloadName", msg); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return AjaxResult.success(dataMap); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 导出专家报销费用汇总 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation("导出专家报销费用汇总") | 
|---|
|  |  |  | @Log(title = "费用申请主", businessType = BusinessType.EXPORT) | 
|---|
|  |  |  | @GetMapping("/exportFeeSum/{faxId}") | 
|---|
|  |  |  | public Map<String, Object> exportFeeSum(@PathVariable Integer faxId) { | 
|---|
|  |  |  | Map<String, Object> map = serviceFundService.exportFeeSum(faxId); | 
|---|
|  |  |  | return map; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|