liusheng
昨天 8e3a02c1facca35c5a90ce9b49505f373ae658f5
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
@@ -78,6 +78,9 @@
    IServiceReimbursementpayeeSharedService payeeSharedService;
    @Autowired
    IServiceReimbursementpayeeService payeeService;
    @Autowired
    IServiceFundflowruleService serviceFundflowruleService;
    @Autowired
@@ -210,7 +213,17 @@
        List<ServiceReimbursementShared> serviceReimbursementShareds = sharedService.queryList(reimbursementShared1);
        log.info("serviceReimbursementShareds的查询结果 :{}", serviceReimbursementShareds.size());
        if (!CollectionUtils.isEmpty(serviceReimbursementShareds)) {
            return true;
            //如果不为空,则将分享表里的数据删除(因为接下去,老数据上传的附件,可能不是想要的了,还用老附件,是有问题的;所以需要将老的share数据删除,然后再新增,上传新附件)
            for (ServiceReimbursementShared serviceReimbursementShared : serviceReimbursementShareds) {
                sharedService.removeById(serviceReimbursementShared.getId());
                ServiceReimbursementdetailShared srds = new ServiceReimbursementdetailShared();
                srds.setRbid(serviceReimbursementShared.getId());
                List<ServiceReimbursementdetailShared> serviceReimbursementdetailShareds = detailSharedService.queryList(srds);
                for (ServiceReimbursementdetailShared serviceReimbursementdetailShared : serviceReimbursementdetailShareds) {
                    detailSharedService.removeById(serviceReimbursementdetailShared.getId());
                }
            }
        }
        //如果没有插入,则走下面的流程
@@ -234,7 +247,7 @@
//        //上传OA文件
        //将serviceReimbursementdetail表里的id赋值给Rdid; 将serviceReimbursementShared里的ID赋值给RBID,并将serviceReimbursementdetailShared表里的id置空,由数据库重新生成
        for (int i = 0; i < details.size(); i++) {
            serviceReimbursementdetailShareds.get(i).setRdid(serviceReimbursementdetailShareds.get(i).getId());
            serviceReimbursementdetailShareds.get(i).setRdid(details.get(i).getId());
            serviceReimbursementdetailShareds.get(i).setRbid(serviceReimbursementShared.getId());
            serviceReimbursementdetailShareds.get(i).setId(null);
            //上传OA文件
@@ -257,7 +270,16 @@
//        detailSharedService.saveBatch(serviceReimbursementdetailShareds);
        for (ServiceReimbursementdetailShared serviceReimbursementdetailShared : serviceReimbursementdetailShareds) {
            if (ObjectUtils.isNotEmpty(serviceReimbursementdetailShared)) {
                log.info("更新serviceReimbursementdetail表里的值为:{}", serviceReimbursementdetailShared);
                detailSharedService.save(serviceReimbursementdetailShared);
                log.info("更新serviceReimbursementdetail表里的附件字段:{},{}", serviceReimbursementdetailShared.getAnnexfiles(), serviceReimbursementdetailShared.getInvoicefiles());
                //更新serviceReimbursementdetail表里的附件字段
                ServiceReimbursementdetail serviceReimbursementdetail = new ServiceReimbursementdetail();
                serviceReimbursementdetail.setId(serviceReimbursementdetailShared.getRdid());
                serviceReimbursementdetail.setAnnexfiles(serviceReimbursementdetailShared.getAnnexfiles());
                serviceReimbursementdetail.setInvoicefiles(serviceReimbursementdetailShared.getInvoicefiles());
                serviceReimbursementdetailMapper.updateById(serviceReimbursementdetail);
            } else {
                log.info("serviceReimbursementdetailShared为空了");
            }
@@ -551,18 +573,15 @@
        addSharedData(serviceReimbursement.getId());
        List<ServiceReimbursementShared> serviceReimbursementSharedList = sharedService.getRemShareInfoByRemId(serviceReimbursement.getId());
        if (org.springframework.util.CollectionUtils.isEmpty(serviceReimbursementSharedList)) return false;
        log.info("serviceReimbursementSharedList的数据量为:{}", serviceReimbursementSharedList.size());
        //detail详情
        ServiceReimbursementdetailShared serviceReimbursementdetailShared = new ServiceReimbursementdetailShared();
        serviceReimbursementdetailShared.setRbid(serviceReimbursementSharedList.get(0).getId());
        List<ServiceReimbursementdetailShared> serviceReimbursementdetailShareds = detailSharedService.queryList(serviceReimbursementdetailShared);
        List<ServiceReimbursementdetail> serviceReimbursementdetailList = serviceReimbursementdetailMapper.getAllDetailsByRBID(serviceReimbursement.getId());
        //payee详情
        ServiceReimbursementpayeeShared serviceReimbursementpayeeShared = new ServiceReimbursementpayeeShared();
        serviceReimbursementpayeeShared.setRbid(serviceReimbursementSharedList.get(0).getId());
        List<ServiceReimbursementpayeeShared> serviceReimbursementpayeeShareds = payeeSharedService.queryList(serviceReimbursementpayeeShared);
        ServiceReimbursementpayee serviceReimbursementpayee = new ServiceReimbursementpayee();
        serviceReimbursementpayee.setRbid(serviceReimbursement.getId());
        List<ServiceReimbursementpayee> serviceReimbursementpayees = payeeService.queryList(serviceReimbursementpayee);
        // 数据的封装
@@ -576,10 +595,10 @@
        ServiceReimbursement sr = serviceReimbursementMapper.selectById(serviceReimbursement.getId());
        data2.put("formmain_1209", formmain_1209(sr));
        // 明细表字段数据,与附件的处理
        Map<String, List<Map<String, Object>>> map1 = formson_1210(serviceReimbursementdetailShareds);
        Map<String, List<Map<String, Object>>> map1 = formson_1210(serviceReimbursementdetailList);
        data2.put("formson_1210", map1.get("formson_1210"));
        data2.put("thirdAttachments", map1.get("annexfilesList"));
        data2.put("formson_1211", formson_1211(serviceReimbursementpayeeShareds));
        data2.put("formson_1211", formson_1211(serviceReimbursementpayees));
        data.put("data", data2);
        //模板编号,由致远方提供,该参数决定发起协同系统中哪个流程
        data.put("templateCode", "cyfbxd_rzhc_ceshi");
@@ -635,36 +654,36 @@
        return true;
    }
    private Map<String, List<Map<String, Object>>> formson_1210(List<ServiceReimbursementdetailShared> serviceReimbursementdetailSharedList) {
    private Map<String, List<Map<String, Object>>> formson_1210(List<ServiceReimbursementdetail> serviceReimbursementdetailList) {
        Map<String, List<Map<String, Object>>> allMap = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<>();
        List<Map<String, Object>> annexfilesList = new ArrayList<>();
        for (ServiceReimbursementdetailShared reimbursementdetailShared : serviceReimbursementdetailSharedList) {
        for (ServiceReimbursementdetail reimbursementdetail : serviceReimbursementdetailList) {
            Map<String, Object> map = new HashMap<>();
            map.put("交通工具", reimbursementdetailShared.getTraffictype());
            map.put("交通费", reimbursementdetailShared.getTrafficexpense());
            map.put("市内交通", reimbursementdetailShared.getCityfee());
            map.put("住宿费", reimbursementdetailShared.getHotelexpense());
            map.put("杂费", reimbursementdetailShared.getOtherexpense());
            map.put("伙食费报销", reimbursementdetailShared.getFoodexpenses());
            map.put("伙食费补助", reimbursementdetailShared.getFoodallowance());
            map.put("其他费用", reimbursementdetailShared.getOtherfeeamount());
            map.put("其他费用说明", reimbursementdetailShared.getOtherfeedesc());
            map.put("交通工具", reimbursementdetail.getTraffictype());
            map.put("交通费", reimbursementdetail.getTrafficexpense());
            map.put("市内交通", reimbursementdetail.getCityfee());
            map.put("住宿费", reimbursementdetail.getHotelexpense());
            map.put("杂费", reimbursementdetail.getOtherexpense());
            map.put("伙食费报销", reimbursementdetail.getFoodexpenses());
            map.put("伙食费补助", reimbursementdetail.getFoodallowance());
            map.put("其他费用", reimbursementdetail.getOtherfeeamount());
            map.put("其他费用说明", reimbursementdetail.getOtherfeedesc());
            map.put("金额合计", "");
            map.put("出差时间起", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(reimbursementdetailShared.getStarttime()));
            map.put("出发地点", reimbursementdetailShared.getDeparture());
            map.put("出差时间止", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(reimbursementdetailShared.getEndtime()));
            map.put("出差目的地", reimbursementdetailShared.getDestination());
            map.put("天数", reimbursementdetailShared.getDays());
            BigDecimal total = safe(reimbursementdetailShared.getCityfee()).add(safe(reimbursementdetailShared.getTrafficexpense())).add(safe(reimbursementdetailShared.getHotelexpense())).add(safe(reimbursementdetailShared.getOtherexpense())).add(safe(reimbursementdetailShared.getFoodexpenses())).add(safe(reimbursementdetailShared.getFoodallowance())).add(safe(reimbursementdetailShared.getOtherfeeamount()));
            map.put("出差时间起", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(reimbursementdetail.getStarttime()));
            map.put("出发地点", reimbursementdetail.getDeparture());
            map.put("出差时间止", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(reimbursementdetail.getEndtime()));
            map.put("出差目的地", reimbursementdetail.getDestination());
            map.put("天数", reimbursementdetail.getDays());
            BigDecimal total = safe(reimbursementdetail.getCityfee()).add(safe(reimbursementdetail.getTrafficexpense())).add(safe(reimbursementdetail.getHotelexpense())).add(safe(reimbursementdetail.getOtherexpense())).add(safe(reimbursementdetail.getFoodexpenses())).add(safe(reimbursementdetail.getFoodallowance())).add(safe(reimbursementdetail.getOtherfeeamount()));
            map.put("实际报销金额", total);
            map.put("财务备注", reimbursementdetailShared.getRemark());
            map.put("id", reimbursementdetailShared.getRdid());
            map.put("出差人", reimbursementdetailShared.getPersonname());
            map.put("财务备注", reimbursementdetail.getRemark());
            map.put("id", reimbursementdetail.getId());
            map.put("出差人", reimbursementdetail.getPersonname());
            map.put("回交通工具", "");
            map.put("人员类别", reimbursementdetailShared.getPersontype());
            map.put("人员类别", reimbursementdetail.getPersontype());
            map.put("住宿费标准", "");
            map.put("住宿费标准合计", reimbursementdetailShared.getHotelexpense());
            map.put("住宿费标准合计", reimbursementdetail.getHotelexpense());
            Long fpuuid = IdGeneratorUtils.nextId();
            map.put("发票附件", fpuuid);
            map.put("票据识别", "");
@@ -678,8 +697,8 @@
            list.add(map);
            //附件处理
            String annexfiles = reimbursementdetailShared.getAnnexfiles();
            String invoicefiles = reimbursementdetailShared.getInvoicefiles();
            String annexfiles = reimbursementdetail.getAnnexfiles();
            String invoicefiles = reimbursementdetail.getInvoicefiles();
            int i = 0;
            if (StringUtils.isNotEmpty(annexfiles)) {
@@ -714,18 +733,18 @@
        return val == null ? BigDecimal.ZERO : val;
    }
    private List<Map<String, Object>> formson_1211(List<ServiceReimbursementpayeeShared> serviceReimbursementpayeeShareds) {
    private List<Map<String, Object>> formson_1211(List<ServiceReimbursementpayee> serviceReimbursementpayees) {
        Map<String, List<Map<String, Object>>> allMap = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<>();
        for (ServiceReimbursementpayeeShared serviceReimbursementpayeeShared : serviceReimbursementpayeeShareds) {
        for (ServiceReimbursementpayee serviceReimbursementpayee : serviceReimbursementpayees) {
            Map<String, Object> map = new HashMap<>();
            map.put("收款人", serviceReimbursementpayeeShared.getPersonname());
            map.put("卡号", serviceReimbursementpayeeShared.getBankcardno());
            map.put("开户银行", serviceReimbursementpayeeShared.getBankname());
            map.put("打款金额", serviceReimbursementpayeeShared.getAmount());
            map.put("人员类别打款", serviceReimbursementpayeeShared.getPersontype());
            map.put("收款人", serviceReimbursementpayee.getPersonname());
            map.put("卡号", serviceReimbursementpayee.getBankcardno());
            map.put("开户银行", serviceReimbursementpayee.getBankname());
            map.put("打款金额", serviceReimbursementpayee.getAmount());
            map.put("人员类别打款", serviceReimbursementpayee.getPersontype());
            map.put("核算项目", "");
            map.put("预算项目", "");
            map.put("借方摘要", "");
@@ -808,7 +827,6 @@
    public int uploadOAFileAndUpdateDb(ServiceReimbursementdetailShared remShare) throws Exception {
        log.info("uploadOAFileAndUpdate方法的入参:{}", remShare);
        System.out.println("uploadOAFileAndUpdate方法的入参:" + remShare);
        //上传OA文件
        String strRes = getToken();