liusheng
2023-05-06 2b04605163633cbc4c1c801f31211d1ae0ccf0f5
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
@@ -23,11 +23,13 @@
import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
import com.ruoyi.project.service.*;
import com.ruoyi.system.service.ISysPostService;
import com.ruoyi.web.controller.enums.PersonType;
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.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Options;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -37,7 +39,7 @@
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -49,8 +51,7 @@
@Api("报销申请")
@RestController
@RequestMapping("/project/reimbursement")
public class ServiceReimbursementController extends BaseController
{
public class ServiceReimbursementController extends BaseController {
    @Autowired
    private IServiceReimbursementService serviceReimbursementService;
@@ -73,10 +74,12 @@
    private IServiceSystemmessageService ServiceSystemmessage;
    private static Configuration configuration = null;
    public ServiceReimbursementController() {
        configuration = new Configuration();
        configuration.setDefaultEncoding("utf-8");
    }
    static String cashUnitLeft[] = { "元", "拾", "佰", "仟", "万", "拾", "佰", "仟","亿", "拾", "佰", "仟", "万" };
    static String cashUnitRight[] = { "角", "分", "厘" };
    static String upperNumber[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒","捌", "玖" };
@@ -88,8 +91,7 @@
    //@PreAuthorize("@ss.hasPermi('project:reimbursement:list')")
    @Log(title = "查询报销申请列表", businessType = BusinessType.OTHER)
    @GetMapping("/list")
    public TableDataInfo list(ServiceReimbursement serviceReimbursement)
    {
    public TableDataInfo list(ServiceReimbursement serviceReimbursement) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        serviceReimbursement.setCreateBy(user.getUserName());
        startPage();
@@ -102,8 +104,7 @@
     */
    @ApiOperation("根据日期查询报销申请列表")
    @GetMapping("/listWithDate")
    public TableDataInfo listWithDate(ServiceReimbursementDto serviceReimbursementdto)
    {
    public TableDataInfo listWithDate(ServiceReimbursementDto serviceReimbursementdto) {
        startPage();
        List<ServiceReimbursement> list = serviceReimbursementService.selectSearchList(serviceReimbursementdto);
        return getDataTable(list);
@@ -115,8 +116,7 @@
    @ApiOperation("根据权限显示审核列表")
    @Log(title = "根据权限显示审核列表", businessType = BusinessType.OTHER)
    @GetMapping("/listbypower")
    public TableDataInfo getListBypower(SpFinancialExpensesIn spFinancialExpensesIn)
    {
    public TableDataInfo getListBypower(SpFinancialExpensesIn spFinancialExpensesIn) {
        LoginUser loginUser = getLoginUser();
        String APPLICANT=spFinancialExpensesIn.getAPPLICANT();
@@ -127,28 +127,23 @@
        Integer pageNum=spFinancialExpensesIn.getPageNum();
        Integer pageSize=spFinancialExpensesIn.getPageSize();
        if(pageNum==null)
        {
        if (pageNum == null) {
            pageNum=1;
        }
        if(pageSize==null)
        {
        if (pageSize == null) {
            pageSize=10;
        }
        if(APPLICANT==null)
        {
        if (APPLICANT == null) {
            APPLICANT="";
        }
        if(APPLICATIONBEGTIME==null)
        {
        if (APPLICATIONBEGTIME == null) {
            APPLICATIONBEGTIME="";
        }
        if(APPLICATIONENDTIME==null)
        {
        if (APPLICATIONENDTIME == null) {
            APPLICATIONENDTIME="";
        }
        //startPage();
@@ -163,8 +158,7 @@
    //@PreAuthorize("@ss.hasPermi('project:reimbursement:export')")
    @Log(title = "报销申请", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(ServiceReimbursement serviceReimbursement)
    {
    public AjaxResult export(ServiceReimbursement serviceReimbursement) {
        List<ServiceReimbursement> list = serviceReimbursementService.queryList(serviceReimbursement);
        ExcelUtil<ServiceReimbursement> util = new ExcelUtil<ServiceReimbursement>(ServiceReimbursement.class);
        return util.exportExcel(list, "报销申请数据");
@@ -176,8 +170,7 @@
    @ApiOperation("获取报销申请详细信息")
    //@PreAuthorize("@ss.hasPermi('project:reimbursement:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return AjaxResult.success(serviceReimbursementService.getById(id));
    }
@@ -200,28 +193,23 @@
    @PostMapping
    @RepeatSubmit
    @Options(useGeneratedKeys = true, keyProperty = "id")
    public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement)
    {
    public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement) {
        boolean b = serviceReimbursementService.save(serviceReimbursement);
        if(b)
        {
        if (b) {
            addReiSharedDatd(serviceReimbursement,1);
        }
        Long id = serviceReimbursement.getId();
        return AjaxResult.success(id);
    }
    public  int addReiSharedDatd(ServiceReimbursement serviceReimbursement,int nType)
    {
    public int addReiSharedDatd(ServiceReimbursement serviceReimbursement, int nType) {
        //remShare = ;
        ServiceReimbursementShared remShare = null;
        if(nType == 1)
       {
        if (nType == 1) {
            remShare = new ServiceReimbursementShared();
            remShare.setReimid(serviceReimbursement.getId());
        }
        else //modify
        } else //modify
        {
            List<ServiceReimbursementShared> remlist = serviceReimbursementServiceShare.getRemShareInfoByRemId(serviceReimbursement.getId());
            if(remlist!=null)
@@ -292,12 +280,9 @@
        //remShare.setDonorno(serviceReimbursement.getDonorno());
        boolean bRet = false;
        if(nType==1)
        {
        if (nType == 1) {
            bRet = serviceReimbursementServiceShare.save(remShare);
        }
        else
        {
        } else {
            //remShare.setId(serviceReimbursement.);
            bRet = serviceReimbursementServiceShare.updateById(remShare);
        }
@@ -308,12 +293,9 @@
        if(strMutfileUrl == null) return 0;
        if(strMutfileUrl.isEmpty()) return 0;
        try
        {
        try {
            uploadOAFileAndUpdateDb(remShare);
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            logger.error("调用第三方接口出错!");
            e.printStackTrace();
        }
@@ -324,8 +306,7 @@
    }
    int uploadOAFileAndUpdateDb(ServiceReimbursementShared remShare)
    {
    int uploadOAFileAndUpdateDb(ServiceReimbursementShared 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";
@@ -372,20 +353,16 @@
        String fileid = "";
        String[] urlArray = strMutfileUrl.split(",");
        for (int i = 0; i < urlArray.length; i++)
        {
        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
            {
            try {
                struploadResult = HttpClientKit.sendPostWithFile(filetest,strFUrl);
            }
            catch (Exception e)
            {
            } catch (Exception e) {
                e.printStackTrace();
            }
@@ -427,15 +404,13 @@
            JSONObject jsonR = JSONObject.parseObject(struploadResult);
            JSONArray jsonArr = jsonR.getJSONArray("atts");
            for(int j=0;j<jsonArr.size();j++)
            {
            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)
                {
                if (i != urlArray.length - 1) {
                    filename+=",";
                    fileid+=",";
                }
@@ -459,23 +434,18 @@
    @ApiOperation("差旅费上报")
    @Log(title = "差旅费上报", businessType = BusinessType.OTHER)
    @PostMapping("/travelexpensereport")
    public AjaxResult travelexpensereport(@RequestBody CheckFundVO checkFundVO)
    {
    public AjaxResult travelexpensereport(@RequestBody CheckFundVO checkFundVO) {
        ServiceReimbursement serviceReimbursement= serviceReimbursementService.getById(checkFundVO.getFundid());
        if(serviceReimbursement!=null)
        {
        if (serviceReimbursement != null) {
            Integer TotalLevel=0;
            LoginUser loginUser = getLoginUser();
            SysUser user = loginUser.getUser();
            List<Integer> postids =postService.selectPostListByUserId(loginUser.getUserId());
            if(!postids.contains(2))
            {
            if (!postids.contains(2)) {
                serviceReimbursement.setFlowlevel(1L);
                serviceReimbursement.setRecordstatus(2);
            }
            else
            {
            } else {
                serviceReimbursement.setFlowlevel(0L);
                serviceReimbursement.setRecordstatus(0);
            }
@@ -496,9 +466,7 @@
            serviceReimbursementService.updateById(serviceReimbursement);
            return AjaxResult.success();
        }
        else
        {
        } else {
            return AjaxResult.error(HttpStatus.NO_CONTENT,"费用编号不正确");
        }
    }
@@ -510,11 +478,9 @@
    @ApiOperation("审核费用")
    @Log(title = "审核费用", businessType = BusinessType.OTHER)
    @PostMapping("/checkfund")
    public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO)
    {
    public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) {
        ServiceReimbursement serviceReimbursement= serviceReimbursementService.getById(checkFundVO.getFundid());
        if(serviceReimbursement!=null)
        {
        if (serviceReimbursement != null) {
            Integer TotalLevel=0;
            LoginUser loginUser = getLoginUser();
            ServiceFundflowrule serviceFundflowrule=new ServiceFundflowrule();
@@ -523,51 +489,38 @@
            serviceFundflowrule.setCheckuserno(loginUser.getUsername());
            List<ServiceFundflowrule> serviceFundflowrules= serviceFundflowruleService.queryList(serviceFundflowrule);
            if(serviceFundflowrules==null || serviceFundflowrules.stream().count()==0)
            {
            if (serviceFundflowrules == null || serviceFundflowrules.stream().count() == 0) {
                return AjaxResult.error(HttpStatus.ERROR,"当前人员无此记录审核权限");
            }
            if(serviceFundflowrules.get(0).getFlowlevel()-1!=serviceReimbursement.getFlowlevel())
            {
            if (serviceFundflowrules.get(0).getFlowlevel() - 1 != serviceReimbursement.getFlowlevel()) {
                return AjaxResult.error(HttpStatus.ERROR,"当前人员与此记录的审核级别不符");
            }
            if(serviceFundflowrules!=null && serviceFundflowrules.stream().count()>0)
            {
            if (serviceFundflowrules != null && serviceFundflowrules.stream().count() > 0) {
                TotalLevel=serviceFundflowrules.get(0).getTotallevel();
            }
            Integer CheckFlag=0;
            Integer RecordStatus = serviceReimbursement.getRecordstatus();
            Integer FlowLevel = Integer.valueOf(serviceReimbursement.getFlowlevel().toString());
            Integer OriginalFlowLevel=FlowLevel;
            if(checkFundVO.getFlowconclusion()==1)
            {
            if (checkFundVO.getFlowconclusion() == 1) {
                CheckFlag=1;
                if(TotalLevel==0)
                {
                if (TotalLevel == 0) {
                    RecordStatus=99;
                }
                else
                {
                    if(TotalLevel==FlowLevel+1)
                    {
                } else {
                    if (TotalLevel == FlowLevel + 1) {
                        RecordStatus=99;
                    }
                    else
                    {
                    } else {
                        RecordStatus = (FlowLevel+1)*2;
                    }
                }
                FlowLevel=FlowLevel+1;
            }
            else
            {
            } else {
                CheckFlag=2;
                RecordStatus = (FlowLevel+1)*2 - 1;
                FlowLevel=(FlowLevel-1);
                if(FlowLevel<0)
                {
                if (FlowLevel < 0) {
                    FlowLevel=0;
                }
            }
@@ -589,10 +542,8 @@
            List<Integer> postids =postService.selectPostListByUserId(loginUser.getUserId());
            if(!postids.contains(2))
            {
                if(CheckFlag==2 && OriginalFlowLevel==1)
                {
            if (!postids.contains(2)) {
                if (CheckFlag == 2 && OriginalFlowLevel == 1) {
                    ServiceFundflow serviceFundflowAuto=new ServiceFundflow();
                    serviceFundflowAuto.setFundid(serviceReimbursement.getId());
                    serviceFundflowAuto.setCheckuserno(user.getUserName());
@@ -620,15 +571,12 @@
            serviceSystemmessage.setIsread(0);
            serviceSystemmessage.setMessagetype(1);
            serviceSystemmessage.setRelevantno(serviceReimbursement.getId());
            if(CheckFlag==1)
            {
            if (CheckFlag == 1) {
                //通过
                serviceSystemmessage.setMessagetitle(""+(OriginalFlowLevel+1)+"级审核通过");
                serviceSystemmessage.setMessagecontent("您"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime())+"提交的关于捐献案例【"+serviceReimbursement.getDonorname()+"】的差旅费申请已通过"+(OriginalFlowLevel+1)+"级审核");
            }
            else
            {
            } else {
                //驳回
                serviceSystemmessage.setMessagetitle(""+(OriginalFlowLevel+1)+"级审核驳回");
                serviceSystemmessage.setMessagecontent("您"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime())+"提交的关于捐献案例【"+serviceReimbursement.getDonorname()+"】的差旅费申请已被"+(OriginalFlowLevel+1)+"级审核驳回,原因为"+checkFundVO.getFlowcontent()+"");
@@ -636,9 +584,7 @@
            ServiceSystemmessage.save(serviceSystemmessage);
            return AjaxResult.success();
        }
        else
        {
        } else {
            return AjaxResult.error(HttpStatus.NO_CONTENT,"费用编号不正确");
        }
    }
@@ -652,11 +598,9 @@
    @Log(title = "报销申请", businessType = BusinessType.UPDATE)
    @PutMapping
    @RepeatSubmit    
    public AjaxResult edit(@RequestBody ServiceReimbursement serviceReimbursement)
    {
    public AjaxResult edit(@RequestBody ServiceReimbursement serviceReimbursement) {
        boolean b= serviceReimbursementService.updateById(serviceReimbursement);
        if(b)
        {
        if (b) {
            addReiSharedDatd(serviceReimbursement,2);
        }
        return toAjax(b);
@@ -669,11 +613,9 @@
    //@PreAuthorize("@ss.hasPermi('project:reimbursement:edit')")
    @Log(title = "审核费用", businessType = BusinessType.OTHER)
    @PostMapping("/editMoney")
    public AjaxResult editMoney(@RequestBody List<ReimbursementService> serviceReimbursement)
    {
    public AjaxResult editMoney(@RequestBody List<ReimbursementService> serviceReimbursement) {
        boolean b= serviceReimbursementService.updateById(null);
        if(b)
        {
        if (b) {
            addReiSharedDatd(null,2);
        }
        return toAjax(b);
@@ -686,8 +628,7 @@
    //@PreAuthorize("@ss.hasPermi('project:reimbursement:remove')")
    @Log(title = "报销申请", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(serviceReimbursementService.removeByIds(Arrays.asList(ids)));
    }
@@ -716,6 +657,20 @@
        //输出文档路径及名称
        File outFile = new File(RuoYiConfig.getProfile()+"/download/wordtemplate/"+name+".doc");
        //创建文件夹
        File folderPath = new File(RuoYiConfig.getProfile() + "/download/wordtemplate");
        if (!folderPath.exists()) {
            boolean success = folderPath.mkdirs();
            if (success) {
                System.out.println("目录创建成功");
            } else {
                System.out.println("目录创建失败");
            }
        } else {
            System.out.println("目录已存在");
        }
        Writer out = null;
        try {
@@ -735,52 +690,132 @@
    }
    private void getData(Map dataMap,Long id) {
        ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(id);
        if (serviceReimbursement == null) {
            throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT);
        //ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(id);
        ServiceReimbursement serviceReimbursement = null;
        ServiceReimbursementEo serviceReimbursementEo = new ServiceReimbursementEo();
        serviceReimbursementEo.setId(id);
        List<ServiceReimbursementEo> rdInfoByItem = serviceReimbursementService.getRDInfoByItem(serviceReimbursementEo);
        Map<String, List<ServiceReimbursementEo>> listMap = rdInfoByItem.stream()
                .collect(Collectors.groupingBy(ServiceReimbursementEo::getPersontype));
        List<Map<String, BigDecimal>> list = new ArrayList<>();
        StringBuffer FYXM1 = new StringBuffer();
        StringBuffer FYXM2 = new StringBuffer();
        StringBuffer FYXM3 = new StringBuffer();
        int flag = 0;
        String key1 = null;
        BigDecimal allMoney = new BigDecimal(0.00);
        BigDecimal otherMoneyall = new BigDecimal(0.00);
        for (String key : listMap.keySet()) {
            Map<String, BigDecimal> map = new HashMap<>();
            List<ServiceReimbursementEo> values = listMap.get(key);
            BigDecimal otherMoney = new BigDecimal(0.00);
            BigDecimal keyOneMoney = new BigDecimal(0.00);
            BigDecimal keyTwoMoney = new BigDecimal(0.00);
            for (ServiceReimbursementEo serviceReimbursementEo1 : values) {
                otherMoney = otherMoney.add(serviceReimbursementEo1.getTrafficexpense()).add(serviceReimbursementEo1.getHotelexpense())
                        .add(serviceReimbursementEo1.getFoodexpenses()).add(serviceReimbursementEo1.getFoodallowance())
                        .add(serviceReimbursementEo1.getOtherexpense()).add(serviceReimbursementEo1.getOtherfeeamount());
            }
            map.put(key, otherMoney);
            list.add(map);
            // 不为专家或家属
            if (!key.equals("3") && !key.equals("4")) {
                //将上一次的清空
                FYXM1.delete(0, FYXM1.length());
                //再新增
                otherMoneyall = otherMoneyall.add(otherMoney);
                FYXM1.append("OPO工作人员" + ":" + otherMoneyall + " ");
            } else {
                if (flag == 0) {
                    key1 = key;
                    flag = 1;
                }
                if (key1 == key) {
                    FYXM2.append(PersonType.getInfoByCode(key) + ":" + otherMoney);
                    allMoney = allMoney.add(otherMoney);
                } else {
                    FYXM3.append(PersonType.getInfoByCode(key) + ":" + otherMoney);
                    allMoney = allMoney.add(otherMoney);
                }
            }
        }
        allMoney = allMoney.add(otherMoneyall);
        if (FYXM1.length() == 0) {
            if (FYXM2.length() != 0 && FYXM3.length() != 0) {
                FYXM1.append(FYXM3);
                FYXM3.setLength(0);
            } else if (FYXM2.length() != 0 && FYXM3.length() == 0) {
                FYXM1.append(FYXM2);
                FYXM2.setLength(0);
            }
        } else if (FYXM2.length() == 0) {
            if (FYXM3.length() != 0) {
                FYXM2.append(FYXM3);
                FYXM3.setLength(0);
            }
        }
        Date dt = serviceReimbursement.getCreateTime();
        if (rdInfoByItem == null || rdInfoByItem.size() == 0) {
            throw new ServiceException("下载失败,用户信息出错", HttpStatus.NO_CONTENT);
        }
        Date dt = rdInfoByItem.get(0).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", serviceReimbursement.getAttachcount() == 0 ? "   " : "" + serviceReimbursement.getAttachcount());
        dataMap.put("JXZXM", serviceReimbursement.getDonorname() == null ? "" : serviceReimbursement.getDonorname());
        dataMap.put("JSR", serviceReimbursement.getUsername() == null ? "" : serviceReimbursement.getUsername());
        dataMap.put("FYXM1", "差旅费报销总金额: " + String.format("%.2f", serviceReimbursement.getAmountrequested()).toString() + "元");
        dataMap.put("BXDFJ", rdInfoByItem.get(0).getAttachcount() == null ? "   " : "" + rdInfoByItem.get(0).getAttachcount());
        dataMap.put("JXZXM", rdInfoByItem.get(0).getDonorname() == null ? "" : rdInfoByItem.get(0).getDonorname());
        dataMap.put("JSR", rdInfoByItem.get(0).getUsername() == null ? "" : rdInfoByItem.get(0).getUsername());
        if (FYXM1.length() != 0) {
            dataMap.put("FYXM1", FYXM1.toString() + "元  ");
        } else {
            dataMap.put("FYXM1", "");
        }
        if (FYXM2.length() != 0) {
            dataMap.put("FYXM2", FYXM2.toString() + "元  ");
        } else {
        dataMap.put("FYXM2", "");
        }
        if (FYXM3.length() != 0) {
            dataMap.put("FYXM3", FYXM3.toString() + "元  ");
        } else {
        dataMap.put("FYXM3", "");
        dataMap.put("JEXS", serviceReimbursement.getAmountrequested());
        }
     //   dataMap.put("JEXS", rdInfoByItem.get(0).getAmountrequested());
        dataMap.put("JEXS", allMoney);
        //double temp = 0;
        //temp = Math.round(serviceReimbursement.getAmountrequested() * 100) * 0.01d;
        dataMap.put("JEDS", convert(serviceReimbursement.getAmountrequested()) + "整");
       // dataMap.put("JEDS", convert(rdInfoByItem.get(0).getAmountrequested().doubleValue()) + "整");
        dataMap.put("JEDS", convert(allMoney.doubleValue()) + "整");
        String remark = "";
        remark += serviceReimbursement.getCosttypename() == null ? "" : serviceReimbursement.getCosttypename() + "(";
        remark += rdInfoByItem.get(0).getCosttypename() == null ? "" : rdInfoByItem.get(0).getCosttypename() + "(";
        remark += serviceReimbursement.getTravelers() == null ? "" : serviceReimbursement.getTravelers() + ": ";
        remark += rdInfoByItem.get(0).getTravelers() == null ? "" : rdInfoByItem.get(0).getTravelers() + ": ";
        remark += serviceReimbursement.getIdcardno() == null ? "" : serviceReimbursement.getIdcardno() + "; ";
        remark += rdInfoByItem.get(0).getIdcardno() == null ? "" : rdInfoByItem.get(0).getIdcardno() + "; ";
        remark += serviceReimbursement.getDepositbank() == null ? "" : serviceReimbursement.getDepositbank() + ": ";
        remark += rdInfoByItem.get(0).getDepositbank() == null ? "" : rdInfoByItem.get(0).getDepositbank() + ": ";
        remark += serviceReimbursement.getBankcardno() == null ? "" : serviceReimbursement.getBankcardno() + ")";
        remark += rdInfoByItem.get(0).getBankcardno() == null ? "" : rdInfoByItem.get(0).getBankcardno() + ")";
        remark += "\n";
        remark += serviceReimbursement.getRemark() == null ? "" : serviceReimbursement.getRemark();
        remark += rdInfoByItem.get(0).getRemark() == null ? "" : rdInfoByItem.get(0).getRemark();
        dataMap.put("BXBZ", remark);
        dataMap.put("YYMMDD", time);
        dataMap.put("FJ", serviceReimbursement.getAttachcount() == 0 ? "   " : "" + serviceReimbursement.getAttachcount());
        dataMap.put("FP", serviceReimbursement.getInvoicecount() == 0 ? "   " : "" + serviceReimbursement.getInvoicecount());
        dataMap.put("XM", serviceReimbursement.getTravelers() == null ? "" : serviceReimbursement.getTravelers());
        dataMap.put("BXR", serviceReimbursement.getUsername() == null ? "" : serviceReimbursement.getUsername());
        dataMap.put("QYZZ", serviceReimbursement.getManagername() == null ? "" : serviceReimbursement.getManagername());
        dataMap.put("CCSY", serviceReimbursement.getReason() == null ? "" : serviceReimbursement.getReason());
        dataMap.put("FJ", rdInfoByItem.get(0).getAttachcount() == null ? "   " : "" + rdInfoByItem.get(0).getAttachcount());
        dataMap.put("FP", rdInfoByItem.get(0).getInvoicecount() == null ? "   " : "" + rdInfoByItem.get(0).getInvoicecount());
        dataMap.put("XM", rdInfoByItem.get(0).getTravelers() == null ? "" : rdInfoByItem.get(0).getTravelers());
        dataMap.put("BXR", rdInfoByItem.get(0).getUsername() == null ? "" : rdInfoByItem.get(0).getUsername());
        dataMap.put("QYZZ", rdInfoByItem.get(0).getManagername() == null ? "" : rdInfoByItem.get(0).getManagername());
        dataMap.put("CCSY", rdInfoByItem.get(0).getReason() == null ? "" : rdInfoByItem.get(0).getReason());
        List<ServiceReimbursementdetail> rd = serviceReimbursementdetailService.getAllDetailsByRBID(id);
@@ -789,14 +824,14 @@
        }
        List<Map<String, Object>> newsList = new ArrayList<Map<String,Object>>();
        int days = 0;
        double te = 0;
        double cf = 0;
        double he = 0;
        double oe = 0;
        double fe = 0;
        double fa = 0;
        double hj = 0;
        double qt = 0;
        BigDecimal te = BigDecimal.ZERO;
        BigDecimal cf = BigDecimal.ZERO;
        BigDecimal he = BigDecimal.ZERO;
        BigDecimal oe = BigDecimal.ZERO;
        BigDecimal fe = BigDecimal.ZERO;
        BigDecimal fa = BigDecimal.ZERO;
        BigDecimal hj = BigDecimal.ZERO;
        BigDecimal qt = BigDecimal.ZERO;
        for(ServiceReimbursementdetail s : rd) {
            Map<String, Object> map=new HashMap<String, Object>();
@@ -828,26 +863,26 @@
            days += s.getDays();
            map.put("JT", s.getTraffictype() == null ? "" : s.getTraffictype());
            map.put("QTFSM", s.getOtherfeedesc() == null ? "" : s.getOtherfeedesc());
            map.put("JTF", s.getTrafficexpense() == 0.00 ? "" : String.format("%.2f", s.getTrafficexpense()).toString() + "");
            te += s.getTrafficexpense();
            map.put("SNJT", s.getCityfee() == 0.00 ? "" : String.format("%.2f", s.getCityfee()).toString() + "");
            cf += s.getCityfee();
            map.put("ZSF", s.getHotelexpense() == 0.00 ? "" : String.format("%.2f", s.getHotelexpense()).toString() + "");
            he += s.getHotelexpense();
            map.put("ZF", s.getOtherexpense() == 0.00 ? "" : String.format("%.2f", s.getOtherexpense()).toString() + "");
            oe += s.getOtherexpense();
            map.put("HSBX", s.getFoodexpenses() == 0.00 ? "" : String.format("%.2f",s.getFoodexpenses()).toString() + "");
            fe += s.getFoodexpenses();
            map.put("HSBZ", s.getFoodallowance() == 0.00 ? "" : String.format("%.2f",s.getFoodallowance()).toString() + "");
            fa += s.getFoodallowance();
            map.put("QTF", s.getOtherfeeamount() == 0.00 ? "" : String.format("%.2f",s.getOtherfeeamount()).toString() + "");
            qt += s.getOtherfeeamount();
            map.put("HJ", String.format("%.2f", s.getTrafficexpense() + s.getCityfee() + s.getHotelexpense() + s.getOtherexpense() + s.getFoodexpenses() + s.getFoodallowance() + s.getOtherfeeamount()).toString() + "");
            hj += s.getTrafficexpense() + s.getCityfee() + s.getHotelexpense() + s.getOtherexpense() + s.getFoodexpenses() + s.getFoodallowance() + s.getOtherfeeamount();
            map.put("JTF", s.getTrafficexpense().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getTrafficexpense()).toString() + "");
            te = te.add(s.getTrafficexpense());
            map.put("SNJT", s.getCityfee().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getCityfee()).toString() + "");
            cf = cf.add(s.getCityfee());
            map.put("ZSF", s.getHotelexpense().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getHotelexpense()).toString() + "");
            he = he.add(s.getHotelexpense());
            map.put("ZF", s.getOtherexpense().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getOtherexpense()).toString() + "");
            oe = oe.add(s.getOtherexpense());
            map.put("HSBX", s.getFoodexpenses().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getFoodexpenses()).toString() + "");
            fe = fe.add(s.getFoodexpenses());
            map.put("HSBZ", s.getFoodallowance().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getFoodallowance()).toString() + "");
            fa = fa.add(s.getFoodallowance());
            map.put("QTF", s.getOtherfeeamount().equals(BigDecimal.ZERO) ? "" : String.format("%.2f", s.getOtherfeeamount()).toString() + "");
            qt = qt.add(s.getOtherfeeamount());
            map.put("HJ", String.format("%.2f", s.getTrafficexpense().add(s.getCityfee()).add(s.getHotelexpense()).add(s.getOtherexpense()).add(s.getFoodexpenses()).add(s.getFoodallowance()).add(s.getOtherfeeamount())).toString() + "");
            hj = hj.add(s.getTrafficexpense().add(s.getCityfee()).add(s.getHotelexpense()).add(s.getOtherexpense()).add(s.getFoodexpenses()).add(s.getFoodallowance()).add(s.getOtherfeeamount()));
            //hj = Math.round(hj * 100) * 0.01d;
            DecimalFormat df = new DecimalFormat("0.00");
//            DecimalFormat df = new DecimalFormat("0.00");
            hj = new Double(df.format(hj).toString());
          //  hj = new Double(df.format(hj).toString());
            newsList.add(map);
        }
@@ -864,11 +899,11 @@
        dataMap.put("TQTF", "" + String.format("%.2f", qt).toString() + "");
        dataMap.put("THJ", "" + String.format("%.2f", hj).toString() + "");
        dataMap.put("DS", convert(hj) + "整");
        dataMap.put("DS", convert(hj.doubleValue()) + "整");
        //dataMap.put("DS", "整");
        dataMap.put("XS", String.format("%.2f", hj).toString() + "");
        dataMap.put("R", serviceReimbursement.getCosttypename() == null ? "" : serviceReimbursement.getCosttypename());
        dataMap.put("R", StringUtils.isEmpty(rdInfoByItem.get(0).getCosttypename()) ? "" : rdInfoByItem.get(0).getCosttypename());
    }
@@ -977,7 +1012,6 @@
        System.out.println(result);
        return result;
    }
}