| | |
| | | import com.ruoyi.common.utils.HttpClientKit; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.bean.DtoConversionUtils; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import com.ruoyi.project.common.IdGeneratorUtils; |
| | | import com.ruoyi.project.domain.*; |
| | | import com.ruoyi.project.domain.dto.ServiceReimbursementDto; |
| | | import com.ruoyi.project.domain.vo.CheckFundVO; |
| | |
| | | |
| | | @Autowired |
| | | IServiceReimbursementpayeeSharedService payeeSharedService; |
| | | |
| | | @Autowired |
| | | IServiceReimbursementpayeeService payeeService; |
| | | |
| | | @Autowired |
| | | IServiceFundflowruleService serviceFundflowruleService; |
| | |
| | | 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()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //如果没有插入,则走下面的流程 |
| | |
| | | // //上传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文件 |
| | |
| | | // 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为空了"); |
| | | } |
| | |
| | | SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | return "审批人:" + managerName + " & 审批时间:" + sd.format(new Date()) + " & 审批结果:通过"; |
| | | } |
| | | |
| | | Optional<ServiceFundflow> lastApproval = serviceFundflows.stream().filter(flow -> flow.getCheckusername().contains(managerName)).max(Comparator.comparing(ServiceFundflow::getCreateTime)); |
| | | String mn = managerName.trim(); |
| | | Optional<ServiceFundflow> lastApproval = serviceFundflows.stream().filter(flow -> flow.getCheckusername().contains(mn)).max(Comparator.comparing(ServiceFundflow::getCreateTime)); |
| | | |
| | | if (lastApproval.isPresent()) { |
| | | ServiceFundflow flow = lastApproval.get(); |
| | |
| | | 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); |
| | | |
| | | |
| | | // 数据的封装 |
| | |
| | | |
| | | // 主表字段数据 |
| | | Map<String, Object> data2 = new HashMap<>(); |
| | | data2.put("formmain_1209", formmain_1209(serviceReimbursementSharedList.get(0))); |
| | | 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"); |
| | |
| | | return true; |
| | | } |
| | | |
| | | private static final AtomicLong COUNTER = new AtomicLong(System.currentTimeMillis()); |
| | | |
| | | 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()); |
| | | Long fpuuid = COUNTER.incrementAndGet(); |
| | | map.put("住宿费标准合计", reimbursementdetail.getHotelexpense()); |
| | | Long fpuuid = IdGeneratorUtils.nextId(); |
| | | map.put("发票附件", fpuuid); |
| | | map.put("票据识别", ""); |
| | | map.put("识别人", ""); |
| | | map.put("序号1", ""); |
| | | Long qtuuid = COUNTER.incrementAndGet(); |
| | | Long qtuuid = IdGeneratorUtils.nextId(); |
| | | map.put("其他附件", qtuuid); |
| | | map.put("个人票夹用户", ""); |
| | | map.put("识别票据", ""); |
| | |
| | | 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)) { |
| | |
| | | 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("借方摘要", ""); |
| | |
| | | return list; |
| | | } |
| | | |
| | | private Map<String, Object> formmain_1209(ServiceReimbursementShared serviceReimbursementShared) { |
| | | private Map<String, Object> formmain_1209(ServiceReimbursement serviceReimbursement) { |
| | | ServiceFundflow serviceFundflow = new ServiceFundflow(); |
| | | serviceFundflow.setFundid(serviceReimbursementShared.getReimid()); |
| | | serviceFundflow.setFundid(serviceReimbursement.getId()); |
| | | serviceFundflow.setFundtype(1); |
| | | List<ServiceFundflow> serviceFundflows = serviceFundflowService.queryList(serviceFundflow); |
| | | |
| | | |
| | | Map<String, Object> formmain_1209 = new HashMap<>(); |
| | | |
| | | formmain_1209.put("报销日期", new SimpleDateFormat("yyyy-MM-dd HH:mm").format(serviceReimbursementShared.getApplyTime())); |
| | | formmain_1209.put("报销日期", new SimpleDateFormat("yyyy-MM-dd HH:mm").format(serviceReimbursement.getApplyTime())); |
| | | formmain_1209.put("出差人-作废", ""); |
| | | formmain_1209.put("报销人", serviceReimbursementShared.getUsername()); |
| | | formmain_1209.put("区域组长", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getManagername())); |
| | | formmain_1209.put("出差事由", serviceReimbursementShared.getReason()); |
| | | formmain_1209.put("报销人", serviceReimbursement.getUsername()); |
| | | formmain_1209.put("区域组长", serviceReimbursement.getManagername()); |
| | | formmain_1209.put("出差事由", serviceReimbursement.getReason()); |
| | | formmain_1209.put("天数合计", 0.00); |
| | | formmain_1209.put("交通费合计", serviceReimbursementShared.getTotalamount()); |
| | | formmain_1209.put("交通费合计", serviceReimbursement.getTotalamount()); |
| | | formmain_1209.put("市内交通合计", 0.00); |
| | | formmain_1209.put("住宿费合计", 0.00); |
| | | formmain_1209.put("杂费合计", 0.00); |
| | | formmain_1209.put("伙食费报销合计", 0.00); |
| | | formmain_1209.put("伙食费补助合计", 0.00); |
| | | formmain_1209.put("其他费用合计", 0.00); |
| | | formmain_1209.put("领款金额大写", serviceReimbursementShared.getBigstrmoney()); |
| | | formmain_1209.put("领款金额", serviceReimbursementShared.getAmountrequested()); |
| | | formmain_1209.put("领款金额大写", serviceReimbursement.getBigstrmoney()); |
| | | formmain_1209.put("领款金额", serviceReimbursement.getAmountrequested()); |
| | | formmain_1209.put("财务审批", ""); |
| | | formmain_1209.put("财务部负责人审批", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getFinancedirector())); |
| | | formmain_1209.put("办公室主任审批", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getOfficedirector())); |
| | | formmain_1209.put("备注", serviceReimbursementShared.getRemark()); |
| | | formmain_1209.put("业务副院长审批", serviceReimbursementShared.getBusvicepresident()); |
| | | formmain_1209.put("财务副院长审批", serviceReimbursementShared.getFinvicepresident()); |
| | | formmain_1209.put("中心负责人审批", serviceReimbursementShared.getOpochecker()); |
| | | formmain_1209.put("财务部负责人审批", getLastApprovalInfo(serviceFundflows, serviceReimbursement.getFinancedirector())); |
| | | if (serviceReimbursement.getBackflowlevel() == 3) |
| | | formmain_1209.put("办公室主任审批", "审批人:周育成 & 审批时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " & 审批结果:通过"); |
| | | else formmain_1209.put("办公室主任审批", getLastApprovalInfo(serviceFundflows, "周育成")); |
| | | |
| | | formmain_1209.put("备注", serviceReimbursement.getRemark()); |
| | | formmain_1209.put("业务副院长审批", serviceReimbursement.getBusvicepresident()); |
| | | formmain_1209.put("财务副院长审批", serviceReimbursement.getFinvicepresident()); |
| | | formmain_1209.put("中心负责人审批", serviceReimbursement.getOpochecker()); |
| | | formmain_1209.put("开户银行-作废", ""); |
| | | formmain_1209.put("卡号-作废", ""); |
| | | formmain_1209.put("支付方式", serviceReimbursementShared.getZffs()); |
| | | formmain_1209.put("组长", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getManagername())); |
| | | formmain_1209.put("审批人员", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getFinancechecher())); |
| | | formmain_1209.put("支付日期", serviceReimbursementShared.getRiqi()); |
| | | formmain_1209.put("支付方式", serviceReimbursement.getZffs()); |
| | | formmain_1209.put("组长", getLastApprovalInfo(serviceFundflows, serviceReimbursement.getManagername())); |
| | | formmain_1209.put("审批人员", getLastApprovalInfo(serviceFundflows, "陈慕华")); |
| | | formmain_1209.put("支付日期", serviceReimbursement.getRiqi()); |
| | | formmain_1209.put("上传附件", ""); |
| | | formmain_1209.put("打款合计", 0.00); |
| | | formmain_1209.put("发票识别-作废", ""); |
| | | formmain_1209.put("识别人-作废", ""); |
| | | formmain_1209.put("财务审批签字", ""); |
| | | formmain_1209.put("财务部负责人审批签字", getLastApprovalInfo(serviceFundflows, serviceReimbursementShared.getFinancedirector())); |
| | | formmain_1209.put("财务部负责人审批签字", getLastApprovalInfo(serviceFundflows, serviceReimbursement.getFinancedirector())); |
| | | formmain_1209.put("表单编号1", ""); |
| | | formmain_1209.put("CIF账套配置1", ""); |
| | | formmain_1209.put("院区", ""); |
| | |
| | | formmain_1209.put("表单附件", ""); |
| | | formmain_1209.put("10204", ""); |
| | | formmain_1209.put("现金流量分析", ""); |
| | | formmain_1209.put("捐献者", serviceReimbursementShared.getDonorname()); |
| | | formmain_1209.put("捐献者", serviceReimbursement.getDonorname()); |
| | | formmain_1209.put("凭证类别", ""); |
| | | formmain_1209.put("合计", 0.00); |
| | | formmain_1209.put("实际合计", 0.00); |
| | | formmain_1209.put("伙食补助合计", 0.00); |
| | | formmain_1209.put("历史审批记录", ""); |
| | | formmain_1209.put("表单编号", serviceReimbursementShared.getReimid()); |
| | | formmain_1209.put("表单编号", serviceReimbursement.getId()); |
| | | formmain_1209.put("历史审批巨鹿查询", ""); |
| | | return formmain_1209; |
| | | } |
| | |
| | | |
| | | public int uploadOAFileAndUpdateDb(ServiceReimbursementdetailShared remShare) throws Exception { |
| | | log.info("uploadOAFileAndUpdate方法的入参:{}", remShare); |
| | | System.out.println("uploadOAFileAndUpdate方法的入参:" + remShare); |
| | | //上传OA文件 |
| | | String strRes = getToken(); |
| | | |