liusheng
2023-05-17 d14859fc72679328ef0e37a4a44461f08dd539b9
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
@@ -32,6 +32,7 @@
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.annotations.Options;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.io.*;
@@ -189,6 +190,7 @@
    /**
     * 往service_reimbursement_share,往service_reimbursementdetail_share,往service_reimbursementpyee_share新增备份数据
     *
     * @param id
     * @return
     */
@@ -219,15 +221,14 @@
    public int addReiSharedDatd(ServiceReimbursement serviceReimbursement, int nType) {
        //remShare = ;
        ServiceReimbursementShared remShare = null;
        ServiceReimbursementShared remShare = new ServiceReimbursementShared();
        if (nType == 1) {
            remShare = new ServiceReimbursementShared();
            // remShare = new ServiceReimbursementShared();
            remShare.setReimid(serviceReimbursement.getId());
        } else //modify
        {
            List<ServiceReimbursementShared> remlist = serviceReimbursementServiceShare.getRemShareInfoByRemId(serviceReimbursement.getId());
            if (remlist != null)
                remShare = remlist.get(0);
            if (!CollectionUtils.isEmpty(remlist)) remShare = remlist.get(0);
        }
        remShare.setUserno(serviceReimbursement.getUserno());
@@ -495,7 +496,7 @@
    public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) {
        ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid());
        if (serviceReimbursement != null) {
            Integer TotalLevel = 0;
            Integer totalLevel = 0;
            LoginUser loginUser = getLoginUser();
            ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
            serviceFundflowrule.setFundtype(1);
@@ -512,7 +513,9 @@
            }
            if (serviceFundflowrules != null && serviceFundflowrules.stream().count() > 0) {
                TotalLevel = serviceFundflowrules.get(0).getTotallevel();
                totalLevel = serviceFundflowrules.get(0).getTotallevel();
            }
            Integer CheckFlag = 0;
            Integer RecordStatus = serviceReimbursement.getRecordstatus();
@@ -520,10 +523,11 @@
            Integer OriginalFlowLevel = FlowLevel;
            if (checkFundVO.getFlowconclusion() == 1) {
                CheckFlag = 1;
                if (TotalLevel == 0) {
                if (totalLevel == 0) {
                    //99 取消
                    RecordStatus = 99;
                } else {
                    if (TotalLevel == FlowLevel + 1) {
                    if (totalLevel == FlowLevel + 1) {
                        RecordStatus = 99;
                    } else {
                        RecordStatus = (FlowLevel + 1) * 2;
@@ -589,7 +593,10 @@
                //通过
                serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "级审核通过");
                serviceSystemmessage.setMessagecontent("您" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime()) + "提交的关于捐献案例【" + serviceReimbursement.getDonorname() + "】的差旅费申请已通过" + (OriginalFlowLevel + 1) + "级审核");
                if (totalLevel == OriginalFlowLevel + 1) {
                    //所有数据新增到备份表
                    serviceReimbursementService.addSharedData(checkFundVO.getFundid());
                }
            } else {
                //驳回
                serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "级审核驳回");
@@ -713,8 +720,7 @@
        //获取报销支付信息
        List<ServiceReimbursementpayee> reimbursementpayeeInfo = reimbursementpayeeService.getReimbursementpayeeInfo(serviceReimbursementEo);
        Map<String, List<ServiceReimbursementEo>> listMap = rdInfoByItem.stream()
                .collect(Collectors.groupingBy(ServiceReimbursementEo::getPersontype));
        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();
@@ -730,9 +736,7 @@
            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());
                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);
@@ -802,17 +806,20 @@
        } else {
            dataMap.put("FYXM3", "");
        }
        //   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(rdInfoByItem.get(0).getAmountrequested().doubleValue()) + "整");
        dataMap.put("JEDS", convert(allMoney.doubleValue()) + "整");
        String remark = "";
        for (ServiceReimbursementpayee serviceReimbursementpayee : reimbursementpayeeInfo) {
            remark += "<w:br/> "+PersonType.getInfoByCode(serviceReimbursementpayee.getPersontype())+ "(" + serviceReimbursementpayee.getPersonname() + " " + serviceReimbursementpayee.getAmount();
            remark += " 元; " + serviceReimbursementpayee.getBankname() + ": " + serviceReimbursementpayee.getBankcardno() + ") 备注: " + serviceReimbursementpayee.getRemark();
            remark += "<w:br/> " + serviceReimbursementpayee.getPersonname() + " " + serviceReimbursementpayee.getAmount();
            remark += " 元; ";
            if (!StringUtils.isEmpty(serviceReimbursementpayee.getBankname())) {
                remark += serviceReimbursementpayee.getBankname() + " ( " + serviceReimbursementpayee.getBankcardno() + ")";
            }
            remark += " 备注: " + serviceReimbursementpayee.getPersontype();
            if (!StringUtils.isEmpty(serviceReimbursementpayee.getRemark())) {
                remark += serviceReimbursementpayee.getRemark();
            }
        }
        dataMap.put("BXBZ", remark);
@@ -857,11 +864,16 @@
            map.put("DA", s.getDeparture() == null ? "" : s.getDeparture());
            Date et = s.getEndtime();
            SimpleDateFormat formatter_et = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String date_et = formatter_et.format(et);
            String year_et = date_et.substring(0, 4);
            String month_et = date_et.substring(5, 7);
            String day_et = date_et.substring(8, 10);
            String year_et = null;
            String month_et = null;
            String day_et = null;
            if (et != null) {
                SimpleDateFormat formatter_et = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String date_et = formatter_et.format(et);
                year_et = date_et.substring(0, 4);
                month_et = date_et.substring(5, 7);
                day_et = date_et.substring(8, 10);
            }
            map.put("AY", year_et == null ? "" : year_et);
            map.put("AM", month_et == null ? "" : month_et);
@@ -1006,9 +1018,7 @@
        }
        result = result.replaceAll("零仟", "零").replaceAll("零佰", "零")        //把单位'亿','万','元'放到最后替换。
                .replaceAll("零拾", "零").replaceAll("零零", "零")
                .replaceAll("零零", "零").replaceAll("零亿", "亿")
                .replaceAll("零万", "万").replaceAll("零元", "元");
                .replaceAll("零拾", "零").replaceAll("零零", "零").replaceAll("零零", "零").replaceAll("零亿", "亿").replaceAll("零万", "万").replaceAll("零元", "元");
        //        result = result.replaceAll("零仟", "零");
        //        result = result.replaceAll("零佰", "零");
        //        result = result.replaceAll("零拾", "零");