package com.ruoyi.web.controller.project;
|
|
import java.io.*;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
import com.ruoyi.common.config.RuoYiConfig;
|
import com.ruoyi.common.constant.HttpStatus;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.project.domain.*;
|
import com.ruoyi.project.domain.vo.*;
|
import com.ruoyi.project.service.*;
|
import freemarker.template.Configuration;
|
import freemarker.template.Template;
|
import freemarker.template.TemplateException;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.ibatis.annotations.Options;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.RepeatSubmit;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
import static com.ruoyi.web.controller.project.ServiceReimbursementController.convert;
|
|
/**
|
* 费用申请主Controller
|
*
|
* @author ruoyi
|
* @date 2022-01-24
|
*/
|
@Api("费用申请主")
|
@RestController
|
@RequestMapping("/project/fund")
|
public class ServiceFundController extends BaseController
|
{
|
private static Configuration configuration = null;
|
@Autowired
|
private IServiceFundService serviceFundService;
|
@Autowired
|
private IServiceFunddetailService serviceFunddetailService;
|
@Autowired
|
private IServiceFundflowruleService serviceFundflowruleService;
|
@Autowired
|
private IServiceFundflowService serviceFundflowService;
|
@Autowired
|
private IServiceDonatebaseinfoService serviceDonatebaseinfoService;
|
|
@Autowired
|
private IServiceReimbursementService serviceReimbursementService;
|
|
@Autowired
|
private IServiceSystemmessageService ServiceSystemmessage;
|
|
|
public ServiceFundController() {
|
configuration = new Configuration();
|
configuration.setDefaultEncoding("utf-8");
|
}
|
|
/**
|
* 查询费用申请主列表
|
*/
|
@ApiOperation("查询费用申请主列表")
|
//@PreAuthorize("@ss.hasPermi('project:fund:list')")
|
@GetMapping("/list")
|
public TableDataInfo list(ServiceFund serviceFund)
|
{
|
startPage();
|
//List<ServiceFund> list = serviceFundService.queryList(serviceFund);
|
List<ServiceFund> list = serviceFundService.selectServiceFundList(serviceFund);
|
return getDataTable(list);
|
}
|
|
@GetMapping("/listnew")
|
public TableDataInfo listnew(FundVO fundVO){
|
startPage();
|
List<FundVO> list = serviceFundService.selectVOList(fundVO);
|
return getDataTable(list);
|
}
|
|
/**
|
* 根据权限显示审核列表
|
*/
|
@ApiOperation("根据权限显示审核列表")
|
@Log(title = "根据权限显示审核列表", businessType = BusinessType.OTHER)
|
@GetMapping("/listbypower")
|
public TableDataInfo getListBypower(SpFinancialExpensesIn spFinancialExpensesIn)
|
{
|
LoginUser loginUser = getLoginUser();
|
|
String APPLICANT=spFinancialExpensesIn.getAPPLICANT();
|
String APPLICATIONBEGTIME=spFinancialExpensesIn.getAPPLICATIONBEGTIME();
|
String APPLICATIONENDTIME=spFinancialExpensesIn.getAPPLICATIONENDTIME();
|
Integer CHECKFLAG=spFinancialExpensesIn.getCHECKFLAG();
|
Integer APPLYTYPE=spFinancialExpensesIn.getAPPLYTYPE();
|
Integer pageNum=spFinancialExpensesIn.getPageNum();
|
Integer pageSize=spFinancialExpensesIn.getPageSize();
|
|
if(pageNum==null)
|
{
|
pageNum=1;
|
}
|
|
if(pageSize==null)
|
{
|
pageSize=10;
|
}
|
|
if(APPLICANT==null)
|
{
|
APPLICANT="";
|
}
|
|
if(APPLICATIONBEGTIME==null)
|
{
|
APPLICATIONBEGTIME="";
|
}
|
|
if(APPLICATIONENDTIME==null)
|
{
|
APPLICATIONENDTIME="";
|
}
|
|
//startPage();
|
List<SpFinancialExpensesFundOut> list = serviceFundService.getListBypower(loginUser.getUsername(),2,APPLICANT,APPLICATIONBEGTIME,APPLICATIONENDTIME,loginUser.getDeptId().toString(),CHECKFLAG,APPLYTYPE);
|
//return getDataTable(list);
|
return getCustomDataTable(list,pageNum,pageSize);
|
}
|
|
@ApiOperation("查询费用申请主列表")
|
//@PreAuthorize("@ss.hasPermi('project:fund:list')")
|
@GetMapping(value = "/getInfo/{infoid}")
|
public AjaxResult getInfoByInfoId(@PathVariable("infoid") Long infoid)
|
{
|
return AjaxResult.success(serviceFundService.getInfoByInfoId(infoid));
|
}
|
|
|
@GetMapping("/getFundId/{infoid}")
|
public AjaxResult getFundId(@PathVariable("infoid") Long infoid){
|
return AjaxResult.success(serviceFundService.getFundId(infoid));
|
}
|
|
@GetMapping("/getFundDetail/{id}")
|
public AjaxResult getFundDetail(@PathVariable("id") Long id){
|
return AjaxResult.success(serviceFundService.getFundDetail(id));
|
}
|
|
/**
|
* 导出费用申请主列表
|
*/
|
@ApiOperation("导出费用申请主列表")
|
//@PreAuthorize("@ss.hasPermi('project:fund:export')")
|
@Log(title = "费用申请主", businessType = BusinessType.EXPORT)
|
@GetMapping("/export")
|
public AjaxResult export(ServiceFund serviceFund)
|
{
|
List<ServiceFund> list = serviceFundService.queryList(serviceFund);
|
ExcelUtil<ServiceFund> util = new ExcelUtil<ServiceFund>(ServiceFund.class);
|
return util.exportExcel(list, "费用申请主数据");
|
}
|
|
|
|
/**
|
* 获取费用申请主详细信息
|
*/
|
@ApiOperation("获取费用申请主详细信息")
|
//@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')")
|
@Log(title = "费用申请主", businessType = BusinessType.INSERT)
|
@PostMapping
|
@RepeatSubmit
|
@Options(useGeneratedKeys = true, keyProperty = "id")
|
public AjaxResult add(@RequestBody ServiceFund serviceFund)
|
{
|
boolean b = serviceFundService.save(serviceFund);
|
Long id = serviceFund.getId();
|
return AjaxResult.success(id);
|
}
|
|
/**
|
* 新增费用汇总
|
*/
|
@ApiOperation("新增费用汇总")
|
@Log(title = "新增费用汇总", businessType = BusinessType.INSERT)
|
@PostMapping("/addnew")
|
@RepeatSubmit
|
@Options(useGeneratedKeys = true, keyProperty = "id")
|
public AjaxResult addnew(@RequestBody ServiceFundVO serviceFundVO)
|
{
|
boolean b = serviceFundService.save(serviceFundVO);
|
Long id = serviceFundVO.getId();
|
List<ServiceFunddetail> serviceFunddetails=serviceFundVO.getServiceFunddetails();
|
serviceFunddetails.forEach(item->item.setFundid(id));
|
serviceFunddetailService.saveBatch(serviceFunddetails);
|
return AjaxResult.success(id);
|
}
|
|
/**
|
* 审核费用
|
*/
|
@ApiOperation("审核费用")
|
@Log(title = "审核费用", businessType = BusinessType.OTHER)
|
@PostMapping("/checkfund")
|
public AjaxResult checkFund(@RequestBody 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());
|
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();
|
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;
|
}
|
else
|
{
|
CheckFlag=2;
|
RecordStatus = (FlowLevel+1)*2 - 1;
|
FlowLevel=(FlowLevel-1);
|
if(FlowLevel<0)
|
{
|
FlowLevel=0;
|
}
|
}
|
|
serviceFund.setRecordstatus(RecordStatus);
|
serviceFund.setFlowlevel(FlowLevel);
|
|
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(checkFundVO.getFlowcontent());
|
serviceFundflow.setFlowlevel(OriginalFlowLevel+1);
|
serviceFundflowService.save(serviceFundflow);
|
serviceFundService.updateById(serviceFund);
|
|
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)+"级审核");
|
}
|
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,"费用编号不正确");
|
}
|
}
|
|
|
/**
|
* 修改费用申请主
|
*/
|
@ApiOperation("修改费用申请主")
|
//@PreAuthorize("@ss.hasPermi('project:fund:edit')")
|
@Log(title = "费用申请主", businessType = BusinessType.UPDATE)
|
@PutMapping
|
@RepeatSubmit
|
public AjaxResult edit(@RequestBody ServiceFund serviceFund)
|
{
|
return toAjax(serviceFundService.updateById(serviceFund));
|
}
|
|
/**
|
* 删除费用申请主
|
*/
|
@ApiOperation("删除费用申请主")
|
//@PreAuthorize("@ss.hasPermi('project:fund:remove')")
|
@Log(title = "费用申请主", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable Long[] ids)
|
{
|
return toAjax(serviceFundService.removeByIds(Arrays.asList(ids)));
|
}
|
|
/**
|
* 下载专家劳务费发放表
|
*/
|
@ApiOperation("专家劳务费发放表")
|
@GetMapping(value = "/downloadLW/{id}")
|
public Map downloadInfoLW(@PathVariable("id") Long id) throws IOException {
|
Map dataMap = new HashMap();
|
getDataLW(dataMap,id);
|
String filePath = getClass().getResource("/template/").getPath();
|
System.out.println(filePath);
|
//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载,
|
configuration.setDirectoryForTemplateLoading(new File(filePath));
|
|
Template t=null;
|
try {
|
//捐献表.ftl为要装载的模板
|
t = configuration.getTemplate("专家劳务费发放申请单.ftl");
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
String name = "专家劳务费发放申请单_"+dataMap.get("XM")+"_"+ newTime;
|
|
//输出文档路径及名称
|
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();
|
}
|
try {
|
t.process(dataMap, out);
|
} catch (TemplateException e) {
|
e.printStackTrace();
|
}
|
Map<String ,Object> map = new HashMap<>();
|
map.put("downloadUrl", "/profile/download/wordtemplate/"+name+".doc");
|
return map;
|
}
|
|
private void getDataLW(Map dataMap, Long id) {
|
ServiceFund serviceFund = serviceFundService.getById(id);
|
if (serviceFund == null) {
|
throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT);
|
}
|
Date dt = serviceFund.getCreateTime();
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String date = formatter.format(dt);
|
String time = date.substring(0, 10);
|
|
dataMap.put("TBYYMMDD",time);
|
dataMap.put("BXDFJ", serviceFund.getAttachcount() == 0 ? " " : 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() + "元。");
|
dataMap.put("FYXM2", "");
|
dataMap.put("FYXM3", "");
|
dataMap.put("JEXS", serviceFund.getAmountrequested());
|
dataMap.put("JEDS", convert(serviceFund.getAmountrequested()) + "整");
|
dataMap.put("BXBZ", serviceFund.getRemark() == null ? "" : serviceFund.getRemark());
|
|
|
dataMap.put("YYMMDD", time);
|
dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
|
dataMap.put("GZRY", serviceFund.getUsername() == null ? "" : serviceFund.getUsername());
|
dataMap.put("ZZ", serviceFund.getManagername() == null ? "" : serviceFund.getManagername());
|
|
List<ServiceFunddetail> fd = serviceFunddetailService.getAllDetailsByFDIDHZ(id);
|
if (fd == null) {
|
throw new ServiceException("下载失败,没有对应信息", HttpStatus.NO_CONTENT);
|
}
|
List<Map<String, Object>> newsList = new ArrayList<Map<String,Object>>();
|
int count = 0;
|
double sq = 0;
|
double ks = 0;
|
double sh = 0;
|
|
for(ServiceFunddetail f : fd){
|
Map<String, Object> map=new HashMap<String, Object>();
|
|
map.put("XH", f.getItemcode() == null ? "" : f.getItemcode());
|
String itemName = f.getItemname() == null ? "" : f.getItemname();
|
String servicesscopename = f.getServicesscopename() == null ? "" : "(" + f.getServicesscopename() + ")";
|
|
map.put("FWNR", itemName + servicesscopename);
|
map.put("ZZXM", f.getBeneficiaryname() == null ? "" : f.getBeneficiaryname());
|
map.put("DW", f.getUnitname() == null ? "" : f.getUnitname());
|
map.put("ZW", f.getTitle() == null ? "" : f.getTitle());
|
map.put("SFZH", f.getIdcardno() == null ? "" : f.getIdcardno());
|
map.put("YH", f.getDepositbank() == null ? "" : f.getDepositbank());
|
map.put("KH", f.getBankcardno() == null ? "" : f.getBankcardno());
|
map.put("SQ", f.getAmount() == 0.00 ? "" : f.getAmount());
|
sq += f.getAmount();
|
map.put("KS", f.getTaxamount() == 0.00 ? "" : f.getTaxamount());
|
ks += f.getTaxamount();
|
map.put("SH", f.getTaxedamount() == 0.00 ? "" : f.getTaxedamount());
|
sh += f.getTaxedamount();
|
|
newsList.add(map);
|
}
|
|
dataMap.put("list",newsList);
|
|
dataMap.put("SQHJ",sq);
|
dataMap.put("KSHJ",ks);
|
dataMap.put("SHHJ",sh);
|
|
}
|
|
|
/**
|
* 下载捐献者善后成本表
|
*/
|
@ApiOperation("捐献者善后成本表")
|
@GetMapping(value = "/downloadSH/{id}")
|
public Map downloadInfoSH(@PathVariable("id") Long id) throws IOException {
|
Map dataMap = new HashMap();
|
getDataSH(dataMap,id);
|
String filePath = getClass().getResource("/template/").getPath();
|
System.out.println(filePath);
|
//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载,
|
configuration.setDirectoryForTemplateLoading(new File(filePath));
|
|
Template t=null;
|
try {
|
//捐献表.ftl为要装载的模板
|
t = configuration.getTemplate("捐献者善后成本表.ftl");
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
String name = "捐献者善后成本表_"+dataMap.get("XM")+"_"+ newTime;
|
|
//输出文档路径及名称
|
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();
|
}
|
try {
|
t.process(dataMap, out);
|
} catch (TemplateException e) {
|
e.printStackTrace();
|
}
|
Map<String ,Object> map = new HashMap<>();
|
map.put("downloadUrl", "/profile/download/wordtemplate/"+name+".doc");
|
return map;
|
}
|
|
private void getDataSH(Map dataMap, Long id) {
|
ServiceFund serviceFund = serviceFundService.getById(id);
|
if (serviceFund == null) {
|
throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT);
|
}
|
Date dt = serviceFund.getCreateTime();
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String date = formatter.format(dt);
|
String time = date.substring(0, 10);
|
|
dataMap.put("YYMMDD", time);
|
dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
|
dataMap.put("GZRY", serviceFund.getUsername() == null ? "" : serviceFund.getUsername());
|
dataMap.put("ZZ", serviceFund.getManagername() == null ? "" : serviceFund.getManagername());
|
|
List<ServiceFunddetail> fd = serviceFunddetailService.getAllDetailsByFDIDHZ(id);
|
if (fd == null) {
|
throw new ServiceException("下载失败,没有对应信息", HttpStatus.NO_CONTENT);
|
}
|
List<Map<String, Object>> newsList = new ArrayList<Map<String,Object>>();
|
int count = 0;
|
double sq = 0;
|
double ks = 0;
|
double sh = 0;
|
|
for(ServiceFunddetail f : fd){
|
Map<String, Object> map=new HashMap<String, Object>();
|
count++;
|
map.put("XH", count);
|
map.put("FWNR", f.getItemname() == null ? "" : f.getItemname());
|
map.put("ZZXM", f.getBeneficiaryname() == null ? "" : f.getBeneficiaryname());
|
map.put("DW", f.getUnitname() == null ? "" : f.getUnitname());
|
|
map.put("SFZH", f.getIdcardno() == null ? "" : f.getIdcardno());
|
map.put("YH", f.getDepositbank() == null ? "" : f.getDepositbank());
|
map.put("KH", f.getBankcardno() == null ? "" : f.getBankcardno());
|
map.put("SQ", f.getAmount() == 0.00 ? "" : f.getAmount());
|
sq += f.getAmount();
|
map.put("KS", f.getTaxamount() == 0.00 ? "" : f.getTaxamount());
|
ks += f.getTaxamount();
|
map.put("SH", f.getTaxedamount() == 0.00 ? "" : f.getTaxedamount());
|
sh += f.getTaxedamount();
|
|
newsList.add(map);
|
}
|
|
dataMap.put("list",newsList);
|
|
dataMap.put("SQHJ",sq);
|
dataMap.put("KSHJ",ks);
|
dataMap.put("SHHJ",sh);
|
|
}
|
|
/**
|
* 下载捐献者家属交通食宿费用表
|
*/
|
@ApiOperation("捐献者家属交通食宿费用表")
|
@GetMapping(value = "/downloadSS/{id}")
|
public Map downloadInfoSS(@PathVariable("id") Long id) throws IOException {
|
Map dataMap = new HashMap();
|
getDataSS(dataMap,id);
|
String filePath = getClass().getResource("/template/").getPath();
|
System.out.println(filePath);
|
//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载,
|
configuration.setDirectoryForTemplateLoading(new File(filePath));
|
|
Template t=null;
|
try {
|
//捐献表.ftl为要装载的模板
|
t = configuration.getTemplate("捐献者家属交通食宿费用表.ftl");
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
String name = "捐献者家属交通食宿费用表_"+dataMap.get("XM")+"_"+ newTime;
|
|
//输出文档路径及名称
|
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();
|
}
|
try {
|
t.process(dataMap, out);
|
} catch (TemplateException e) {
|
e.printStackTrace();
|
}
|
Map<String ,Object> map = new HashMap<>();
|
map.put("downloadUrl", "/profile/download/wordtemplate/"+name+".doc");
|
return map;
|
}
|
|
private void getDataSS(Map dataMap, Long id) {
|
ServiceFund serviceFund = serviceFundService.getById(id);
|
if (serviceFund == null) {
|
throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT);
|
}
|
Date dt = serviceFund.getCreateTime();
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String date = formatter.format(dt);
|
String time = date.substring(0, 10);
|
|
dataMap.put("YYMMDD", time);
|
dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
|
dataMap.put("GZRY", serviceFund.getUsername() == null ? "" : serviceFund.getUsername());
|
dataMap.put("ZZ", serviceFund.getManagername() == null ? "" : serviceFund.getManagername());
|
|
List<ServiceFunddetail> fd = serviceFunddetailService.getAllDetailsByFDIDHZ(id);
|
if (fd == null) {
|
throw new ServiceException("下载失败,没有对应信息", HttpStatus.NO_CONTENT);
|
}
|
List<Map<String, Object>> newsList = new ArrayList<Map<String,Object>>();
|
int count = 0;
|
double hj = 0;
|
|
for(ServiceFunddetail f : fd){
|
Map<String, Object> map=new HashMap<String, Object>();
|
count++;
|
map.put("XH", count);
|
map.put("FWNR", f.getItemname() == null ? "" : f.getItemname());
|
map.put("ZZXM", f.getBeneficiaryname() == null ? "" : f.getBeneficiaryname());
|
|
map.put("SFZH", f.getIdcardno() == null ? "" : f.getIdcardno());
|
map.put("YH", f.getDepositbank() == null ? "" : f.getDepositbank());
|
map.put("KH", f.getBankcardno() == null ? "" : f.getBankcardno());
|
map.put("JE", f.getAmount() == 0.00 ? "" : f.getAmount());
|
hj += f.getAmount();
|
newsList.add(map);
|
}
|
|
dataMap.put("list",newsList);
|
dataMap.put("JEHJ",hj);
|
|
}
|
|
/**
|
* 下载捐献者医学成本统计表
|
*/
|
@ApiOperation("捐献者医学成本统计表")
|
@GetMapping(value = "/downloadYX/{id}")
|
public Map downloadInfoYX(@PathVariable("id") Long id) throws IOException {
|
Map dataMap = new HashMap();
|
getDataYX(dataMap,id);
|
String filePath = getClass().getResource("/template/").getPath();
|
System.out.println(filePath);
|
//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载,
|
configuration.setDirectoryForTemplateLoading(new File(filePath));
|
|
Template t=null;
|
try {
|
//捐献表.ftl为要装载的模板
|
t = configuration.getTemplate("医学成本费用申请单.ftl");
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
String name = "医学成本费用申请单_"+dataMap.get("XM")+"_"+ newTime;
|
|
//输出文档路径及名称
|
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();
|
}
|
try {
|
t.process(dataMap, out);
|
} catch (TemplateException e) {
|
e.printStackTrace();
|
}
|
Map<String ,Object> map = new HashMap<>();
|
map.put("downloadUrl", "/profile/download/wordtemplate/"+name+".doc");
|
return map;
|
}
|
|
private void getDataYX(Map dataMap, Long id) {
|
ServiceFund serviceFund = serviceFundService.getById(id);
|
if (serviceFund == null) {
|
throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT);
|
}
|
|
List<ServiceFunddetail> fd = serviceFunddetailService.getAllDetailsByFDIDHZ(id);
|
if (fd == null) {
|
throw new ServiceException("下载失败,没有对应信息", HttpStatus.NO_CONTENT);
|
}
|
|
Date dt = serviceFund.getCreateTime();
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String date = formatter.format(dt);
|
String time = date.substring(0, 10);
|
|
List<Map<String, Object>> newList = new ArrayList<Map<String,Object>>();
|
int seqno = 0;
|
|
dataMap.put("TBYYMMDD",time);
|
dataMap.put("BXDFJ", serviceFund.getAttachcount() == 0 ? " " : serviceFund.getAttachcount());
|
dataMap.put("JXZXM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
|
dataMap.put("JSR", serviceFund.getUsername() == null ? "" : serviceFund.getUsername());
|
|
for(ServiceFunddetail f : fd) {
|
seqno++;
|
Map<String, Object> map=new HashMap<String, Object>();
|
map.put("seqno", seqno);
|
String fyxm = "";
|
fyxm += f.getItemname() == null ? "" : f.getItemname();
|
fyxm += f.getAmount() + "元";
|
fyxm += "(";
|
fyxm += f.getUnitname() == null ? "" : f.getUnitname() + ";";
|
fyxm += f.getDepositbank() == null ? "" : f.getDepositbank() + ": ";
|
fyxm += f.getBankcardno() == null ? "" : f.getBankcardno();
|
fyxm += ")";
|
map.put("FYXM", fyxm);
|
newList.add(map);
|
}
|
dataMap.put("items", newList);
|
|
dataMap.put("JEXS", serviceFund.getAmountrequested());
|
dataMap.put("JEDS", convert(serviceFund.getAmountrequested()) + "整");
|
dataMap.put("BXBZ", serviceFund.getRemark() == null ? "" : serviceFund.getRemark());
|
|
dataMap.put("YYMMDD", time);
|
dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
|
dataMap.put("GZRY", serviceFund.getUsername() == null ? "" : serviceFund.getUsername());
|
dataMap.put("ZZ", serviceFund.getManagername() == null ? "" : serviceFund.getManagername());
|
|
|
List<Map<String, Object>> newsList = new ArrayList<Map<String,Object>>();
|
int count = 0;
|
double hj = 0;
|
|
for(ServiceFunddetail f : fd){
|
Map<String, Object> map=new HashMap<String, Object>();
|
count++;
|
map.put("XH", count);
|
map.put("FWNR", f.getItemname() == null ? "" : f.getItemname());
|
map.put("DW", f.getUnitname() == null ? "" : f.getUnitname());
|
map.put("SL", f.getQuantity() == 0.00 ? "" : f.getQuantity());
|
map.put("JG", f.getPrice() == 0.00 ? "" : f.getPrice());
|
|
map.put("JE", f.getAmount() == 0.00 ? "" : f.getAmount());
|
hj += f.getAmount();
|
map.put("BZ", f.getRemark() == null ? "" : f.getRemark());
|
|
newsList.add(map);
|
}
|
|
dataMap.put("list", newsList);
|
dataMap.put("BYHJ", hj);
|
|
}
|
|
/**
|
* 下载费用报销单
|
*/
|
@ApiOperation("费用报销单")
|
@GetMapping(value = "/downloadBX/{id}")
|
public Map downloadInfoBX(@PathVariable("id") Long id) throws IOException {
|
Map dataMap = new HashMap();
|
getDataBX(dataMap,id);
|
String filePath = getClass().getResource("/template/").getPath();
|
System.out.println(filePath);
|
//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载,
|
configuration.setDirectoryForTemplateLoading(new File(filePath));
|
|
Template t=null;
|
try {
|
//捐献表.ftl为要装载的模板
|
t = configuration.getTemplate("费用报销单.ftl");
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
String name = "费用报销单_"+dataMap.get("XM")+"_"+ newTime;
|
|
//输出文档路径及名称
|
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();
|
}
|
try {
|
t.process(dataMap, out);
|
} catch (TemplateException e) {
|
e.printStackTrace();
|
}
|
Map<String ,Object> map = new HashMap<>();
|
map.put("downloadUrl", "/profile/download/wordtemplate/"+name+".doc");
|
return map;
|
}
|
|
private void getDataBX(Map dataMap, Long id) {
|
ServiceFund serviceFund = serviceFundService.getById(id);
|
if (serviceFund == null) {
|
throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT);
|
}
|
Date dt = serviceFund.getCreateTime();
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String date = formatter.format(dt);
|
String time = date.substring(0, 10);
|
|
dataMap.put("YYMMDD", time);
|
dataMap.put("FJ", serviceFund.getAttachcount() == 0 ? " " : serviceFund.getAttachcount());
|
dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
|
dataMap.put("JSR", serviceFund.getFinancechecher() == null ? "" : serviceFund.getFinancechecher());
|
|
dataMap.put("FYXM1", "获取专家总费用: " + serviceFund.getProcurementcost() + "元; " + "专家费用总金额: " + serviceFund.getExpertcost() + "元; " + "伦理审查费用总金额: " + serviceFund.getEthicscost() + "元");
|
dataMap.put("FYXM2", "捐献者医学成本总金额: " + serviceFund.getMedicalcost() + "元; " + "捐献者善后成本总金额: " + serviceFund.getAftercarecost() + "元");
|
dataMap.put("FYXM3", "捐献者家属食宿费总金额: " + serviceFund.getFamilycost() + "元");
|
|
dataMap.put("XS", serviceFund.getTotalcost());
|
dataMap.put("DS", convert(serviceFund.getTotalcost()) + "整");
|
dataMap.put("BZ", serviceFund.getRemark() == null ? "" : serviceFund.getRemark());
|
|
}
|
|
/**
|
* 下载人体捐献器官获取专家劳务费支出汇总表
|
*/
|
@ApiOperation("人体捐献器官获取专家劳务费支出汇总表")
|
@GetMapping(value = "/downloadHZ/{infoid}")
|
public Map downloadInfoHZ(@PathVariable("infoid") Long infoid) throws IOException {
|
Map dataMap = new HashMap();
|
getDataHZ(dataMap, infoid);
|
String filePath = getClass().getResource("/template/").getPath();
|
System.out.println(filePath);
|
//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载,
|
configuration.setDirectoryForTemplateLoading(new File(filePath));
|
|
Template t=null;
|
try {
|
//捐献表.ftl为要装载的模板
|
t = configuration.getTemplate("获取费用支出汇总表.ftl");
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
String name = "获取费用支出汇总表_"+dataMap.get("XM")+"_"+ newTime;
|
|
//输出文档路径及名称
|
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();
|
}
|
try {
|
t.process(dataMap, out);
|
} catch (TemplateException e) {
|
e.printStackTrace();
|
}
|
Map<String ,Object> map = new HashMap<>();
|
map.put("downloadUrl", "/profile/download/wordtemplate/"+name+".doc");
|
return map;
|
}
|
|
|
private void getDataHZ(Map dataMap, Long infoid) {
|
List<ServiceFund> serviceFunds = serviceFundService.getInfoByInfoId(infoid);
|
|
dataMap.put("XM", serviceDonatebaseinfoService.getDonateNameById(infoid));
|
dataMap.put("JSR", "");
|
|
List<ServiceFunddetail> fd = new ArrayList<>();
|
for(ServiceFund s : serviceFunds){
|
List<ServiceFunddetail> l = serviceFunddetailService.getAllDetailsByFDIDHZ(s.getId());
|
for(ServiceFunddetail df : l){
|
fd.add(df);
|
}
|
}
|
|
List<ServiceReimbursement> serviceReimbursements1 = serviceReimbursementService.getInfoByInfoId(infoid);
|
List<ServiceReimbursement> serviceReimbursements2 = serviceReimbursementService.getInfoByInfoIdRelatives(infoid);
|
|
double f1 = 0;
|
double f2 = 0;
|
double f3 = 0;
|
double f4 = 0;
|
double f5 = 0;
|
double f6 = 0;
|
double f7 = 0;
|
double f8 = 0;
|
double f9 = 0;
|
double f10 = 0;
|
double f11 = 0;
|
double f12 = 0;
|
double f13 = 0;
|
double f14 = 0;
|
double f15 = 0;
|
double f16 = 0;
|
double f17 = 0;
|
double f18 = 0;
|
double f19 = 0;
|
double f20 = 0;
|
double f21 = 0;
|
double f22 = 0;
|
double f23 = 0;
|
double f24 = 0;
|
double f25 = 0;
|
double f26 = 0;
|
double f27 = 0;
|
double f28 = 0;
|
double f29 = 0;
|
double f30 = 0;
|
double f31 = 0;
|
double f32 = 0;
|
double f33 = 0;
|
double f34 = 0;
|
double f35 = 0;
|
double f36 = 0;
|
double f37 = 0;
|
double f38 = 0;
|
double f39 = 0;
|
double f40 = 0;
|
double f41 = 0;
|
double f42 = 0;
|
double f43 = 0;
|
double f44 = 0;
|
double f45 = 0;
|
double f46 = 0;
|
double f47 = 0;
|
double f48 = 0;
|
double f49 = 0;
|
double f50 = 0;
|
double f51 = 0;
|
double f52 = 0;
|
double hj = 0;
|
|
double sh1 = 0;
|
double sh2 = 0;
|
double sh3 = 0;
|
double sh4 = 0;
|
double sh5 = 0;
|
double sh6 = 0;
|
double sh7 = 0;
|
double sh8 = 0;
|
double sh9 = 0;
|
double sh10 = 0;
|
double sh11 = 0;
|
double sh12 = 0;
|
double sh13 = 0;
|
double sh14 = 0;
|
double sh15 = 0;
|
double sh16 = 0;
|
double sh17 = 0;
|
double sh18 = 0;
|
double sh19 = 0;
|
double sh20 = 0;
|
double sh21 = 0;
|
double sh22 = 0;
|
double sh23 = 0;
|
double sh24 = 0;
|
double sh25 = 0;
|
double sh26 = 0;
|
double sh27 = 0;
|
double sh28 = 0;
|
double sh29 = 0;
|
double sh30 = 0;
|
double sh31 = 0;
|
double sh32 = 0;
|
double sh33 = 0;
|
double sh34 = 0;
|
double sh35 = 0;
|
double sh36 = 0;
|
double sh37 = 0;
|
double sh38 = 0;
|
double sh39 = 0;
|
double sh40 = 0;
|
double sh41 = 0;
|
double sh42 = 0;
|
double sh43 = 0;
|
double sh44 = 0;
|
double sh45 = 0;
|
double sh46 = 0;
|
double sh47 = 0;
|
double sh48 = 0;
|
double sh49 = 0;
|
double sh50 = 0;
|
double sh51 = 0;
|
double sh52 = 0;
|
double shhj = 0;
|
|
for(ServiceReimbursement sr : serviceReimbursements1){
|
f28 += sr.getAmountrequested();
|
sh28 += sr.getAmountrequested();
|
}
|
for(ServiceReimbursement sr : serviceReimbursements2){
|
f51 += sr.getAmountrequested();
|
sh51 += sr.getAmountrequested();
|
}
|
|
for(ServiceFunddetail s : fd){
|
if(s.getItemid() == 1){
|
f1 += s.getAmount();
|
sh1 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 2){
|
f2 += s.getAmount();
|
sh2 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 3){
|
f3 += s.getAmount();
|
sh3 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 4){
|
f4 += s.getAmount();
|
sh4 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 5){
|
f5 += s.getAmount();
|
sh5 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 6){
|
f6 += s.getAmount();
|
sh6 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 7){
|
f7 += s.getAmount();
|
sh7 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 8){
|
f8 += s.getAmount();
|
sh8 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 9){
|
f9 += s.getAmount();
|
sh9 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 10){
|
f10 += s.getAmount();
|
sh10 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 11){
|
f11 += s.getAmount();
|
sh11 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 12){
|
f12 += s.getAmount();
|
sh12 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 13){
|
f13 += s.getAmount();
|
sh13 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 14){
|
f14 += s.getAmount();
|
sh14 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 15){
|
f15 += s.getAmount();
|
sh15 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 16){
|
f16 += s.getAmount();
|
sh16 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 17){
|
f17 += s.getAmount();
|
sh17 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 18){
|
f18 += s.getAmount();
|
sh18 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 19){
|
f19 += s.getAmount();
|
sh19 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 20){
|
f20 += s.getAmount();
|
sh20 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 21){
|
f21 += s.getAmount();
|
sh21 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 22){
|
f22 += s.getAmount();
|
sh22 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 23){
|
f23 += s.getAmount();
|
sh23 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 24){
|
f24 += s.getAmount();
|
sh24 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 25){
|
f25 += s.getAmount();
|
sh25 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 26){
|
f26 += s.getAmount();
|
sh26 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 27){
|
f27 += s.getAmount();
|
sh27 += s.getTaxedamount();
|
}
|
|
if(s.getItemid() == 29){
|
f29 += s.getAmount();
|
sh29 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 30){
|
f30 += s.getAmount();
|
sh30 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 31){
|
f31 += s.getAmount();
|
sh31 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 32){
|
f32 += s.getAmount();
|
sh32 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 33){
|
f33 += s.getAmount();
|
sh33 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 34){
|
f34 += s.getAmount();
|
sh34 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 35){
|
f35 += s.getAmount();
|
sh35 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 36){
|
f36 += s.getAmount();
|
sh36 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 37){
|
f37 += s.getAmount();
|
sh37 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 38){
|
f38 += s.getAmount();
|
sh38 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 39){
|
f39 += s.getAmount();
|
sh39 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 40){
|
f40 += s.getAmount();
|
sh40 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 41){
|
f41 += s.getAmount();
|
sh41 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 42){
|
f42 += s.getAmount();
|
sh42 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 43){
|
f43 += s.getAmount();
|
sh43 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 44){
|
f44 += s.getAmount();
|
sh44 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 45){
|
f45 += s.getAmount();
|
sh45 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 46){
|
f46 += s.getAmount();
|
sh46 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 47){
|
f47 += s.getAmount();
|
sh47 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 48){
|
f48 += s.getAmount();
|
sh48 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 49){
|
f49 += s.getAmount();
|
sh49 += s.getTaxedamount();
|
}
|
|
if(s.getItemid() == 50){
|
f50 += s.getAmount();
|
sh50 += s.getTaxedamount();
|
}
|
if(s.getItemid() == 52){
|
f52 += s.getAmount();
|
sh52 += s.getTaxedamount();
|
}
|
|
}
|
|
hj = f1 + f2 + f3 + f4 + f5 + f6 + f7 + f8 + f9 + f10 + f11 + f12 + f13 + f14 + f15 + f16 + f17 + f18 + f19 + f20 + f21 + f22 + f23 + f24 + f25 + f26 + f27 + f28 + f29 + f30 + f31 + f32 + f33 + f34 + f35
|
+ f36 + f37 + f38 + f39 + f40 + f41 + f42 + f43 + f44 + f45 + f46 + f47 + f48 + f49 + f50 + f51 + f52;
|
|
shhj = sh1 + sh2 + sh3 + sh4 + sh5 + sh6 + sh7 + sh8 + sh9 + sh10 + sh11 + sh12 + sh13 + sh14 + sh15 + sh16 + sh17 + sh18 + sh19 + sh20 + sh21 + sh22 + sh23 + sh24 + sh25 + sh26 + sh27 + sh28 + sh29 + sh30 + sh31 + sh32 + sh33 + sh34 + sh35
|
+ sh36 + sh37 + sh38 + sh39 + sh40 + sh41 + sh42 + sh43 + sh44 + sh45 + sh46 + sh47 + sh48 + sh49 + sh50 + sh51 + sh52;
|
|
dataMap.put("FY1", f1 == 0 ? "" : f1);
|
dataMap.put("FY2", f2 == 0 ? "" : f2);
|
dataMap.put("FY3", f3 == 0 ? "" : f3);
|
dataMap.put("FY4", f4 == 0 ? "" : f4);
|
dataMap.put("FY5", f5 == 0 ? "" : f5);
|
dataMap.put("FY6", f6 == 0 ? "" : f6);
|
dataMap.put("FY7", f7 == 0 ? "" : f7);
|
dataMap.put("FY8", f8 == 0 ? "" : f8);
|
dataMap.put("FY9", f9 == 0 ? "" : f9);
|
dataMap.put("FY10", f10 == 0 ? "" : f10);
|
dataMap.put("FY11", f11 == 0 ? "" : f11);
|
dataMap.put("FY12", f12 == 0 ? "" : f12);
|
dataMap.put("FY13", f13 == 0 ? "" : f13);
|
dataMap.put("FY14", f14 == 0 ? "" : f14);
|
dataMap.put("FY15", f15 == 0 ? "" : f15);
|
dataMap.put("FY16", f16 == 0 ? "" : f16);
|
dataMap.put("FY17", f17 == 0 ? "" : f17);
|
dataMap.put("FY18", f18 == 0 ? "" : f18);
|
dataMap.put("FY19", f19 == 0 ? "" : f19);
|
dataMap.put("FY20", f20 == 0 ? "" : f20);
|
dataMap.put("FY21", f21 == 0 ? "" : f21);
|
dataMap.put("FY22", f22 == 0 ? "" : f22);
|
dataMap.put("FY23", f23 == 0 ? "" : f23);
|
dataMap.put("FY24", f24 == 0 ? "" : f24);
|
dataMap.put("FY25", f25 == 0 ? "" : f25);
|
dataMap.put("FY26", f26 == 0 ? "" : f26);
|
dataMap.put("FY27", f27 == 0 ? "" : f27);
|
dataMap.put("FY28", f28 == 0 ? "" : f28);
|
dataMap.put("FY29", f29 == 0 ? "" : f29);
|
dataMap.put("FY30", f30 == 0 ? "" : f30);
|
dataMap.put("FY31", f31 == 0 ? "" : f31);
|
dataMap.put("FY32", f32 == 0 ? "" : f32);
|
dataMap.put("FY33", f33 == 0 ? "" : f33);
|
dataMap.put("FY34", f34 == 0 ? "" : f34);
|
dataMap.put("FY35", f35 == 0 ? "" : f35);
|
dataMap.put("FY36", f36 == 0 ? "" : f36);
|
dataMap.put("FY37", f37 == 0 ? "" : f37);
|
dataMap.put("FY38", f38 == 0 ? "" : f38);
|
dataMap.put("FY39", f39 == 0 ? "" : f39);
|
dataMap.put("FY40", f40 == 0 ? "" : f40);
|
dataMap.put("FY41", f41 == 0 ? "" : f41);
|
dataMap.put("FY42", f42 == 0 ? "" : f42);
|
dataMap.put("FY43", f43 == 0 ? "" : f43);
|
dataMap.put("FY44", f44 == 0 ? "" : f44);
|
dataMap.put("FY45", f45 == 0 ? "" : f45);
|
dataMap.put("FY46", f46 == 0 ? "" : f46);
|
dataMap.put("FY47", f47 == 0 ? "" : f47);
|
dataMap.put("FY48", f48 == 0 ? "" : f48);
|
dataMap.put("FY49", f49 == 0 ? "" : f49);
|
dataMap.put("FY50", f50 == 0 ? "" : f50);
|
dataMap.put("FY51", f51 == 0 ? "" : f51);
|
dataMap.put("FY52", f52 == 0 ? "" : f52);
|
dataMap.put("FY53", hj == 0 ? "" : hj);
|
|
dataMap.put("SH1", sh1 == 0 ? "" : sh1);
|
dataMap.put("SH2", sh2 == 0 ? "" : sh2);
|
dataMap.put("SH3", sh3 == 0 ? "" : sh3);
|
dataMap.put("SH4", sh4 == 0 ? "" : sh4);
|
dataMap.put("SH5", sh5 == 0 ? "" : sh5);
|
dataMap.put("SH6", sh6 == 0 ? "" : sh6);
|
dataMap.put("SH7", sh7 == 0 ? "" : sh7);
|
dataMap.put("SH8", sh8 == 0 ? "" : sh8);
|
dataMap.put("SH9", sh9 == 0 ? "" : sh9);
|
dataMap.put("SH10", sh10 == 0 ? "" : sh10);
|
dataMap.put("SH11", sh11 == 0 ? "" : sh11);
|
dataMap.put("SH12", sh12 == 0 ? "" : sh12);
|
dataMap.put("SH13", sh13 == 0 ? "" : sh13);
|
dataMap.put("SH14", sh14 == 0 ? "" : sh14);
|
dataMap.put("SH15", sh15 == 0 ? "" : sh15);
|
dataMap.put("SH16", sh16 == 0 ? "" : sh16);
|
dataMap.put("SH17", sh17 == 0 ? "" : sh17);
|
dataMap.put("SH18", sh18 == 0 ? "" : sh18);
|
dataMap.put("SH19", sh19 == 0 ? "" : sh19);
|
dataMap.put("SH20", sh20 == 0 ? "" : sh20);
|
dataMap.put("SH21", sh21 == 0 ? "" : sh21);
|
dataMap.put("SH22", sh22 == 0 ? "" : sh22);
|
dataMap.put("SH23", sh23 == 0 ? "" : sh23);
|
dataMap.put("SH24", sh24 == 0 ? "" : sh24);
|
dataMap.put("SH25", sh25 == 0 ? "" : sh25);
|
dataMap.put("SH26", sh26 == 0 ? "" : sh26);
|
dataMap.put("SH27", sh27 == 0 ? "" : sh27);
|
dataMap.put("SH28", sh28 == 0 ? "" : sh28);
|
dataMap.put("SH29", sh29 == 0 ? "" : sh29);
|
dataMap.put("SH30", sh30 == 0 ? "" : sh30);
|
dataMap.put("SH31", sh31 == 0 ? "" : sh31);
|
dataMap.put("SH32", sh32 == 0 ? "" : sh32);
|
dataMap.put("SH33", sh33 == 0 ? "" : sh33);
|
dataMap.put("SH34", sh34 == 0 ? "" : sh34);
|
dataMap.put("SH35", sh35 == 0 ? "" : sh35);
|
dataMap.put("SH36", sh36 == 0 ? "" : sh36);
|
dataMap.put("SH37", sh37 == 0 ? "" : sh37);
|
dataMap.put("SH38", sh38 == 0 ? "" : sh38);
|
dataMap.put("SH39", sh39 == 0 ? "" : sh39);
|
dataMap.put("SH40", sh40 == 0 ? "" : sh40);
|
dataMap.put("SH41", sh41 == 0 ? "" : sh41);
|
dataMap.put("SH42", sh42 == 0 ? "" : sh42);
|
dataMap.put("SH43", sh43 == 0 ? "" : sh43);
|
dataMap.put("SH44", sh44 == 0 ? "" : sh44);
|
dataMap.put("SH45", sh45 == 0 ? "" : sh45);
|
dataMap.put("SH46", sh46 == 0 ? "" : sh46);
|
dataMap.put("SH47", sh47 == 0 ? "" : sh47);
|
dataMap.put("SH48", sh48 == 0 ? "" : sh48);
|
dataMap.put("SH49", sh49 == 0 ? "" : sh49);
|
dataMap.put("SH50", sh50 == 0 ? "" : sh50);
|
dataMap.put("SH51", sh51 == 0 ? "" : sh51);
|
dataMap.put("SH52", sh52 == 0 ? "" : sh52);
|
dataMap.put("SH53", shhj == 0 ? "" : shhj);
|
|
}
|
|
|
/**
|
* 下载器官获取专家劳务费统计表
|
*/
|
@ApiOperation("器官获取专家劳务费统计表")
|
@GetMapping(value = "/downloadLWF/{id}")
|
public Map downloadInfoLWF(@PathVariable("id") Long id) throws IOException {
|
Map dataMap = new HashMap();
|
getDataLWF(dataMap,id);
|
String filePath = getClass().getResource("/template/").getPath();
|
System.out.println(filePath);
|
//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载,
|
configuration.setDirectoryForTemplateLoading(new File(filePath));
|
|
Template t=null;
|
try {
|
//捐献表.ftl为要装载的模板
|
t = configuration.getTemplate("器官获取专家劳务费统计表.ftl");
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
String name = "器官获取专家劳务费统计表_"+dataMap.get("XM")+"_"+ newTime;
|
|
//输出文档路径及名称
|
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();
|
}
|
try {
|
t.process(dataMap, out);
|
} catch (TemplateException e) {
|
e.printStackTrace();
|
}
|
Map<String ,Object> map = new HashMap<>();
|
map.put("downloadUrl", "/profile/download/wordtemplate/"+name+".doc");
|
return map;
|
}
|
|
|
private void getDataLWF(Map dataMap, Long id) {
|
ServiceFund serviceFund = serviceFundService.getById(id);
|
if (serviceFund == null) {
|
throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT);
|
}
|
Date dt = serviceFund.getCreateTime();
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String date = formatter.format(dt);
|
String time = date.substring(0, 10);
|
|
dataMap.put("YYMMDD", time);
|
dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
|
dataMap.put("GZRY", serviceFund.getUsername() == null ? "" : serviceFund.getUsername());
|
dataMap.put("ZZ", serviceFund.getManagername() == null ? "" : serviceFund.getManagername());
|
|
List<ServiceFunddetail> fd = serviceFunddetailService.getAllDetailsByFDIDHZ(id);
|
if (fd == null) {
|
throw new ServiceException("下载失败,没有对应信息", HttpStatus.NO_CONTENT);
|
}
|
List<Map<String, Object>> newsList = new ArrayList<Map<String,Object>>();
|
int count = 0;
|
double hj = 0;
|
|
for(ServiceFunddetail f : fd){
|
Map<String, Object> map=new HashMap<String, Object>();
|
count++;
|
map.put("XH", count);
|
map.put("FWNR", f.getItemname() == null ? "" : f.getItemname());
|
map.put("ZZXM", f.getBeneficiaryname() == null ? "" : f.getBeneficiaryname());
|
map.put("DW", f.getUnitname() == null ? "" : f.getUnitname());
|
map.put("ZW", f.getTitle() == null ? "" : f.getTitle());
|
map.put("SFZH", f.getIdcardno() == null ? "" : f.getIdcardno());
|
map.put("JE", f.getAmount() == 0 ? "" : f.getAmount());
|
hj += f.getAmount();
|
newsList.add(map);
|
}
|
|
dataMap.put("list",newsList);
|
|
dataMap.put("HJ", hj);
|
|
}
|
|
/**
|
* 下载专家劳务费发放表
|
*/
|
@ApiOperation("伦理专家劳务费发放表")
|
@GetMapping(value = "/downloadLL/{id}")
|
public Map downloadInfoLL(@PathVariable("id") Long id) throws IOException {
|
Map dataMap = new HashMap();
|
getDataLL(dataMap,id);
|
String filePath = getClass().getResource("/template/").getPath();
|
System.out.println(filePath);
|
//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库教程装载,
|
configuration.setDirectoryForTemplateLoading(new File(filePath));
|
|
Template t=null;
|
try {
|
//捐献表.ftl为要装载的模板
|
t = configuration.getTemplate("伦理专家劳务费发放申请单.ftl");
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
|
String name = "伦理专家劳务费发放申请单_"+dataMap.get("XM")+"_"+ newTime;
|
|
//输出文档路径及名称
|
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();
|
}
|
try {
|
t.process(dataMap, out);
|
} catch (TemplateException e) {
|
e.printStackTrace();
|
}
|
Map<String ,Object> map = new HashMap<>();
|
map.put("downloadUrl", "/profile/download/wordtemplate/"+name+".doc");
|
return map;
|
}
|
|
private void getDataLL(Map dataMap, Long id) {
|
ServiceFund serviceFund = serviceFundService.getById(id);
|
if (serviceFund == null) {
|
throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT);
|
}
|
Date dt = serviceFund.getCreateTime();
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String date = formatter.format(dt);
|
String time = date.substring(0, 10);
|
|
dataMap.put("TBYYMMDD",time);
|
dataMap.put("BXDFJ", serviceFund.getAttachcount() == 0 ? " " : serviceFund.getAttachcount());
|
dataMap.put("JXZXM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
|
dataMap.put("JSR", serviceFund.getUsername() == null ? "" : serviceFund.getUsername());
|
dataMap.put("FYXM1", "支付专家费用:" + serviceFund.getAmountrequested() + "元");
|
dataMap.put("FYXM2", "");
|
dataMap.put("FYXM3", "");
|
dataMap.put("JEXS", serviceFund.getAmountrequested());
|
dataMap.put("JEDS", convert(serviceFund.getAmountrequested()) + "整");
|
dataMap.put("BXBZ", serviceFund.getRemark() == null ? "" : serviceFund.getRemark());
|
|
|
dataMap.put("YYMMDD", time);
|
dataMap.put("XM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
|
//dataMap.put("GZRY", serviceFund.getUsername() == null ? "" : serviceFund.getUsername());
|
//dataMap.put("ZZ", serviceFund.getManagername() == null ? "" : serviceFund.getManagername());
|
|
List<ServiceFunddetail> fd = serviceFunddetailService.getAllDetailsByFDIDHZ(id);
|
if (fd == null) {
|
throw new ServiceException("下载失败,没有对应信息", HttpStatus.NO_CONTENT);
|
}
|
List<Map<String, Object>> newsList = new ArrayList<Map<String,Object>>();
|
int count = 0;
|
double sq = 0;
|
double ks = 0;
|
double sh = 0;
|
|
for(ServiceFunddetail f : fd){
|
Map<String, Object> map=new HashMap<String, Object>();
|
count++;
|
map.put("XH", count);
|
map.put("FWNR", f.getItemname() == null ? "" : f.getItemname());
|
map.put("ZZXM", f.getBeneficiaryname() == null ? "" : f.getBeneficiaryname());
|
map.put("DW", f.getUnitname() == null ? "" : f.getUnitname());
|
map.put("ZW", f.getTitle() == null ? "" : f.getTitle());
|
//map.put("SFZH", f.getIdcardno() == null ? "" : f.getIdcardno());
|
map.put("YH", f.getDepositbank() == null ? "" : f.getDepositbank());
|
map.put("KH", f.getBankcardno() == null ? "" : f.getBankcardno());
|
map.put("SQ", f.getAmount() == 0.00 ? "" : String.format("%.2f", f.getAmount()).toString() + "");
|
sq += f.getAmount();
|
map.put("KS", f.getTaxamount() == 0.00 ? "" : String.format("%.2f",f.getTaxamount()).toString() + "");
|
ks += f.getTaxamount();
|
map.put("SH", f.getTaxedamount() == 0.00 ? "" : String.format("%.2f", f.getTaxedamount()).toString() + "");
|
sh += f.getTaxedamount();
|
|
newsList.add(map);
|
}
|
|
dataMap.put("list",newsList);
|
|
dataMap.put("SQHJ", String.format("%.2f", sq).toString() + "");
|
dataMap.put("KSHJ", String.format("%.2f", ks).toString() + "");
|
dataMap.put("SHHJ", String.format("%.2f", sh).toString() + "");
|
|
dataMap.put("SQZE", String.format("%.2f", sh).toString() + "");
|
|
|
}
|
|
|
/**
|
* 展示费用细节
|
*/
|
@ApiOperation("展示费用细节")
|
@GetMapping(value = "/showFundDetailOne/{id}")
|
public AjaxResult showFundDetailOne(@PathVariable Long id){
|
ServiceFund serviceFund = serviceFundService.getById(id);
|
return AjaxResult.success(serviceFundService.showFundDetailOne(serviceFund));
|
}
|
|
/**
|
* 展示费用细节
|
*/
|
@ApiOperation("展示费用细节")
|
@GetMapping(value = "/showFundDetailTwo/{infoid}")
|
public AjaxResult showFundDetailTwo(@PathVariable Long infoid){
|
|
return AjaxResult.success(serviceFundService.showFundDetailTwo(infoid));
|
|
}
|
|
/**
|
* 费用类型计数
|
*/
|
@ApiOperation("费用类型计数")
|
@GetMapping(value = "/countItem/{infoid}/{itemid}")
|
public AjaxResult countItem(@PathVariable Long infoid, @PathVariable Long itemid){
|
|
return AjaxResult.success(serviceFundService.countItem(infoid, itemid));
|
|
}
|
|
|
|
}
|