单据展示页面上按钮处理

# 一、调用接口 ![image.png](https://cos.easydoc.net/24916735/files/k6gpzydn.png) ![image.png](7) ## 1.1 入参-接口 {"billMainId":"220634a94c0911ea961a0d46bb66012b","scene":"VIEW"} POST /bill/billdata/getBillDataAndTemplateByBillMainId ## 1.2 出参 appId=e3d5e4757ff911e88b19ab9f95e30e91 ``` --|data ----|billData ------|appId ------|billButtons ** 这里控制所有的按钮展示 ------|billCode ------| ``` # 二、底层追踪 ## 2.1 查询方法 ![image.png](https://cos.easydoc.net/24916735/files/k6gm9zdx.png) ctrl+h ![image.png](https://cos.easydoc.net/24916735/files/k6gmcs1f.png) 多次调用本方法. ![image.png](https://cos.easydoc.net/24916735/files/k6gmh9qv.png) buttonKeyList -> VIEW_FLOW languageKey=ADD_VOUCHER ## 底层后置加载loadData package com.epoch.ifp.voucher.service.handler; ![image.png](https://cos.easydoc.net/24916735/files/k6gmwzp2.png) ``` public enum VoucherButtonEnum implements II18nKeyEnum { V_PUSH_VOUCHER("凭证推送", "V_PUSH_VOUCHER"), VIEW_CREATE_VOUCHER("预览并生成凭证", "VIEW_CREATE_VOUCHER"), CONFIRM_VOUCHER("确认生成", "CONFIRM_VOUCHER"), BATCH_CONFIRM_VOUCHER("批量确认生成", "BATCH_CONFIRM_VOUCHER"), BATCH_PUSH_VOUCHER("批量凭证推送", "BATCH_PUSH_VOUCHER"), VALIDATE_VOUCHER("验证凭证", "VALIDATE_VOUCHER"), REVERSED_VOUCHER("冲销凭证", "REVERSED_VOUCHER"), ADD_VOUCHER("添加凭证", "ADD_VOUCHER"), DELETE_VOUCHER("删除凭证", "DELETE_VOUCHER"); ``` # 三、修正方案 ## 方案一、重置classes.每次更新。 产品后续可能变更,暂不处理 ## 方案二、重写Controller重置删除。 ``` BillButtonUtils.removeCustomButtons(billdataVO,scene); boolean defaultRemoveButton=(scene == BOSceneEnum.EXAMINE_APPROVAL && !billDefineTemplate.isShowSave() && CollectionUtils.isNotEmpty(billdataVO.getBillButtons())); if (defaultRemoveButton) { var14 = billdataVO.getBillButtons().iterator(); while(var14.hasNext()) { BOButtonVO billButton = (BOButtonVO)var14.next(); if (billButton.getId().equals(BillButtonEnum.SAVE.name())) { billdataVO.getBillButtons().remove(billButton); break; } } } ``` ![image.png](https://cos.easydoc.net/24916735/files/k6gpxq9p.png)