///
扩展示例如下 *
* @Override
* public void afterImportInvoice(String invoesJson, List list) {
* List jsonList = JSONObject.parseObject(invoesJson, List.class);
* List InvoiceList = new ArrayList<>();
* for (JSONObject json : jsonList) {
* InvoiceList.add(JSONObject.parseObject(json.toJSONString(), InvoiceVO.class));
* }
* }
*
*/
afterImportInvoice(invoiceVOsJson:string,downloadInvs:$.java.util.List):void;
}
type IInvoiceImport_T = IInvoiceImport_S & IInvoiceImport$;
interface IInvoiceImport extends IInvoiceImport_T {
}
}
namespace kd.sdk.fi.ap.extpoint.list{
interface IAfterBizProcess_S {
}
interface IAfterBizProcess$ {
/**
* @param view 列表或者表单view
* @param bizName 当前业务标识,用于判断走对应哪个sdk
*
* 扩展示例如下 *
* public void afterBizProcess(IFormView view, String bizName) {
* // 只处理应付有源采集场景
* if (!AfterBizExtendConst.FINAP_COLLECT_INVOICE.equals(bizName)) return;
* // Demo样例,把有源采集的票发票代码赋值给表头的备注字段
* IDataModel model = view.getModel();
* DynamicObjectCollection inventry = model.getEntryEntity("inventry");
* if (!inventry.isEmpty()){
* String invoiceCode = inventry.get(0).getString("i_invoicecode");
* model.setValue("remark",invoiceCode);
* }
* }
*
*/
afterBizProcess(view:$.kd.bos.form.IFormView,bizName:string):void;
}
type IAfterBizProcess_T = IAfterBizProcess_S & IAfterBizProcess$;
interface IAfterBizProcess extends IAfterBizProcess_T {
}
interface IApproverSetting_S {
}
interface IApproverSetting$ {
/**
* 列表展示当前处理人自定义字段名称
*
* @return String: 自定义的列表字段名
* 扩展示例如下 *
* public String showApproverCaptionExt() {
* return "当前审核人";
* }
*
*/
showApproverCaptionExt():string;
/**
* 列表展示当前处理人自定义显示内容
*
* @return 自定义的显示内容 Map扩展示例如下 *
* public Map showApproverExt() {
* // key: 单据id(转成String类型) value: 这张单据列表上字段显示的值
* Map nodeMap = new HashMap<>(8);
* // 若需要查询 请在这里批量查询
* for (String billId : billIds) {
* // 请在这里构造nodeMap 自定义每一张单据当前处理人的值
* if ("1782516835053234176".equals(billId)) {
* nodeMap.put(billId, "测试人");
* }
* }
* }
*
*/
showApproverExt?(billIds:$.java.util.List):$.java.util.Map;
}
type IApproverSetting_T = IApproverSetting_S & IApproverSetting$;
interface IApproverSetting extends IApproverSetting_T {
}
interface IPayeeBankInfoFilter_S {
}
interface IPayeeBankInfoFilter$ {
/**
* 供应商收款账号过滤条件扩展插件
* @param view 单据页面view对象
* @return
* 扩展示例如下 *
* @Override
* default void setIFilters(ListFilterParameter lfp, IFormView view ) {
* //ListFilterParameter lfp 打开列表界面的过来参数
* //view 编辑界面的view对象
* DynamicObject bill=view.getModel().getDataEntity();
* bill.getLong("id");
* QFilter filter=new QFilter("id", QCP.in,100000L);
* return filter;
*
* }
*
*/
setIFilters?(lfp:$.kd.bos.list.ListFilterParameter,view:$.kd.bos.form.IFormView):void;
}
type IPayeeBankInfoFilter_T = IPayeeBankInfoFilter_S & IPayeeBankInfoFilter$;
interface IPayeeBankInfoFilter extends IPayeeBankInfoFilter_T {
}
}
namespace kd.sdk.fi.ap.extpoint.payapply{
interface ICasPayBillPayCallback_S {
}
interface ICasPayBillPayCallback$ {
/**
* 开票回调后处理
* @param params 付款单付款之后调用付款申请单反写接口json
* @return
*
* 扩展示例如下 *
* package kd.fi.arapcommon.customer;
*
* import kd.bos.dataentity.entity.DynamicObject;
* import kd.bos.db.tx.TX;
* import kd.bos.db.tx.TXHandle;
* import kd.bos.orm.query.QCP;
* import kd.bos.orm.query.QFilter;
* import kd.bos.servicehelper.BusinessDataServiceHelper;
* import kd.fi.arapcommon.consts.EntityConst;
* import kd.sdk.fi.ap.extpoint.payapply.ICasPayBillPayCallback;
*
* import java.util.List;
* import java.util.Map;
* import java.util.Set;
* import java.util.stream.Collectors;
*
* public class CasPayBillPayCallbaclImpl_Demo implements ICasPayBillPayCallback {
* @Override
* public void afterProcess(Object params) {
* List
*/
afterProcess(params:any):void;
}
type ICasPayBillPayCallback_T = ICasPayBillPayCallback_S & ICasPayBillPayCallback$;
interface ICasPayBillPayCallback extends ICasPayBillPayCallback_T {
}
}
namespace kd.sdk.fi.ap.extpoint.push{
interface IPushAssignField_S {
}
interface IPushAssignField$ {
/**
* @return key:下推单据目标单业务标识,如ap_finapbill value:需要支持的扩展字段 [{pushfinap=[salesman, salesorg], pushfinar=[purchaser, purorg]}]
*
* 样例:
*
* public class PushAssignFieldDemo implements IPushAssignField {
* public Map> getAfterPushAssignField() {
* Map> assignMap = new HashMap<>(2);
* // 调用应付转付的API接口
* IPushBillService pushBillService = ArApServiceAPIFactory.getPushBillService(ServiceNameEnum.FINAPTRANSFER.getValue());
* List apExtendField = new ArrayList<>(2);
* apExtendField.add("purchaser"); // 采购员
* apExtendField.add("purorg"); // 采购组织
* // key 就是对应实现的ServiceName标识
* assignMap.put(pushBillService.getServiceName(), apExtendField);
* return assignMap;
* }
* }
*
*/
getAfterPushAssignField():$.java.util.Map;
}
type IPushAssignField_T = IPushAssignField_S & IPushAssignField$;
interface IPushAssignField extends IPushAssignField_T {
}
}
namespace kd.sdk.fi.ap.extpoint.settle{
interface IPreSettleFilter_S {
}
interface IPreSettleFilter$ {
/**
* @return 扩展增加的期初预付单过滤条件
* *
* @Override
* public QFilter getPaidExtFilter(IFormView view) {
* QFilter filter = null;
* IDataModel model = view.getModel();
* DynamicObject department = (DynamicObject) model.getValue("department");
* if (!ObjectUtils.isEmpty(department)) {
* filter = new QFilter("department_ext", QCP.equals, department.getLong("id"));
* }
* return filter;
* }
*
*
*/
getPaidExtFilter?(view:$.kd.bos.form.IFormView):$.kd.bos.orm.query.QFilter;
/**
* @return 扩展增加的付款单过滤条件
* *
* @Override
* public QFilter getPayExtFilter(IFormView view) {
* QFilter filter = null;
* IDataModel model = view.getModel();
* DynamicObject department = (DynamicObject) model.getValue("department");
* if (!ObjectUtils.isEmpty(department)) {
* filter = new QFilter("department_ext", QCP.equals, department.getLong("id"));
* }
* return filter;
* }
*
*
*/
getPayExtFilter?(view:$.kd.bos.form.IFormView):$.kd.bos.orm.query.QFilter;
/**
* @return 扩展增加的收款单过滤条件
* *
* @Override
* public QFilter getRecExtFilter(IFormView view) {
* QFilter filter = null;
* IDataModel model = view.getModel();
* DynamicObject department = (DynamicObject) model.getValue("department");
* if (!ObjectUtils.isEmpty(department)) {
* filter = new QFilter("department_ext", QCP.equals, department.getLong("id"));
* }
* return filter;
* }
*
*
*/
getRecExtFilter?(view:$.kd.bos.form.IFormView):$.kd.bos.orm.query.QFilter;
/**
* @return 扩展增加的期初预收单过滤条件
* *
* @Override
* public QFilter getReceivedExtFilter(IFormView view) {
* QFilter filter = null;
* IDataModel model = view.getModel();
* DynamicObject department = (DynamicObject) model.getValue("department");
* if (!ObjectUtils.isEmpty(department)) {
* filter = new QFilter("department_ext", QCP.equals, department.getLong("id"));
* }
* return filter;
* }
*
*
*/
getReceivedExtFilter?(view:$.kd.bos.form.IFormView):$.kd.bos.orm.query.QFilter;
}
type IPreSettleFilter_T = IPreSettleFilter_S & IPreSettleFilter$;
interface IPreSettleFilter extends IPreSettleFilter_T {
}
interface IAfterSettleProcess_S {
}
interface IAfterSettleProcess$ {
/**
* 类描述:应收应付结算后处理扩展
* @param recordJson SettleRecordVO 对象kd.fi.arapcommon.vo.SettleRecordVO的json
* @param schemeJson SettleSchemeVO 对象kd.fi.arapcommon.vo.SettleSchemeVO的json
*
* 扩展示例如下 *
* import com.alibaba.fastjson.JSONObject;
* import kd.bos.db.tx.TX;
* import kd.bos.db.tx.TXHandle;
* import kd.fi.arapcommon.vo.SettleRecordVO;
* import kd.fi.arapcommon.vo.SettleSchemeVO;
* import kd.sdk.fi.ap.extpoint.settle.ArApAfterSettleProcess;
*
* import java.util.ArrayList;
* import java.util.List;
*
* // 类描述:应收应付结算后处理扩展
* public class AfterSettleDemoDemo implements ArApAfterSettleProcess {
* public void afterProcess(String schemeJson, String recordJson) {
* // Json转换成 SettleRecordVO 对象,里面存储着结算记录所有信息
* List jsonList = JSONObject.parseObject(recordJson, List.class);
* List recordList = new ArrayList<>();
* for (JSONObject json : jsonList) {
* recordList.add(JSONObject.parseObject(json.toJSONString(), SettleRecordVO.class));
* }
* // Json转换成 SettleSchemeVO ,里面存储了进行结算反结算需要的逻辑参数
* SettleSchemeVO scheme = JSONObject.parseObject(schemeJson, SettleSchemeVO.class);
* // 可能跨库操作,开启新事务处理
* try (TXHandle tx = TX.requiresNew("invokeAfterSettleCallback.afterProcess")) {
* try {
* // 处理结算后处理,现场根据场景进行个性化开发
* } catch(Exception ex) {
* tx.markRollback();
* throw ex;
* }
* }
* }
* }
*
*/
afterProcess(schemeJson:string,recordJson:string):void;
}
type IAfterSettleProcess_T = IAfterSettleProcess_S & IAfterSettleProcess$;
interface IAfterSettleProcess extends IAfterSettleProcess_T {
}
interface ISettleMatchExt_S {
}
interface ISettleMatchExt$ {
/**
* 结算前匹配条件扩展
* @param mainBillSettleVoJson 主方结算信息
* @param asstBillSettleVoJson 辅方结算信息
* @param schemeJson 结算相关参数信息
* @return 匹配通过还是失败
* *
* package kd.fi.arapcommon.writeback;
*
* import com.alibaba.fastjson.JSONObject;
* import kd.fi.arapcommon.vo.BillSettleVO;
* import kd.fi.arapcommon.vo.SettleSchemeVO;
* import kd.sdk.fi.ap.extpoint.settle.ISettleMatchExt;
*
* public class settleExtMatchService implements ISettleMatchExt {
* @Override
* public boolean match(String mainBillSettleVoJson, String asstBillSettleVoJson, String schemeJson) {
* // Json转换成 BillSettleVO 对象,里面存储着主方,辅方结算所需信息
* BillSettleVO mainBillSettleVo = SerializationUtils.fromJsonString(mainBillSettleVoJson, BillSettleVO.class);
* BillSettleVO asstBillSettleVo = SerializationUtils.fromJsonString(asstBillSettleVoJson, BillSettleVO.class);
* // Json转换成 SettleSchemeVO ,里面存储了进行结算反结算需要的逻辑参数
* SettleSchemeVO scheme = SerializationUtils.fromJsonString(schemeJson, SettleSchemeVO.class);
* // 结算前数据匹配,现场根据场景进行个性化开发
* boolean result = false;
* return result;
* }
* }
*
*
*
*/
match(mainBillSettleVoJson:string,asstBillSettleVoJson:string,schemeJson:string):boolean;
}
type ISettleMatchExt_T = ISettleMatchExt_S & ISettleMatchExt$;
interface ISettleMatchExt extends ISettleMatchExt_T {
}
interface IPaySettleWarnFilter_S {
}
interface IPaySettleWarnFilter$ {
/**
* 描述:预付款结算提醒-付款单
* "预付款结算提醒过滤条件扩展
* @param model 页面模型对象
* @return 扩展增加的付款单过滤条件
* *
* @Override
* public QFilter addPaidFilter(IDataModel iDataModel) {
* Object asstacttype = iDataModel.getValue("asstacttype");
* return new QFilter("itempayeetype", QCP.not_equals,asstacttype);
* }
*
*
*/
addPaidFilter(model:$.kd.bos.entity.datamodel.IDataModel):$.kd.bos.orm.query.QFilter;
/**
* 描述:预付款结算提醒-付款单
* "预付款结算提醒过滤条件扩展
* @param model 页面模型对象
* @return 扩展增加的付款单过滤条件
* *
* @Override
* public QFilter addPayFilter(IDataModel iDataModel) {
* Object asstacttype = iDataModel.getValue("asstacttype");
* return new QFilter("itempayeetype", QCP.not_equals,asstacttype);
* }
*
*
*/
addPayFilter(model:$.kd.bos.entity.datamodel.IDataModel):$.kd.bos.orm.query.QFilter;
}
type IPaySettleWarnFilter_T = IPaySettleWarnFilter_S & IPaySettleWarnFilter$;
interface IPaySettleWarnFilter extends IPaySettleWarnFilter_T {
}
interface IManualSettleCheck_S {
}
interface IManualSettleCheck$ {
/**
* 手工结算点击结算按钮前的校验扩展
* @param view 页面模型对象
* @return 校验通过还是失败
* *
* package kd.fi.arapcommon.customer.ext;
*
* import kd.bos.dataentity.entity.DynamicObject;
* import kd.bos.dataentity.resource.ResManager;
* import kd.bos.form.IFormView;
* import kd.bos.form.control.EntryGrid;
* import kd.sdk.fi.ap.extpoint.settle.IManualSettleCheck;
*
* import java.util.HashSet;
* import java.util.Set;
*
* public class ManualSettleCheck_Demo implements IManualSettleCheck {
* public boolean check(IFormView view) {
* EntryGrid mainGrid = view.getControl("mainbill");//主方表格
* int[] mainSelectRows = mainGrid.getSelectRows();//主方选中行
* EntryGrid asstGrid = view.getControl("asstbill");//辅方表格
* int[] asstSelectRows = asstGrid.getSelectRows();//辅方选中行
*
* Set mainContactSet = new HashSet<>(1);
* for (int mainSelectRow : mainSelectRows) {
* DynamicObject mainRow = view.getModel().getEntryRowEntity("mainbill", mainSelectRow);
* mainContactSet.add(mainRow.getString("maincontact"));
* }
* if (mainContactSet.size() > 1){
* //ResManager.loadKDString()多语言支持
* view.showTipNotification(ResManager.loadKDString("主方的合同号必须相同", "ManualSettleCheck_Demo_1", "fi-arapcommon"));
* return false;
* }
*
* Set asstContactSet = new HashSet<>(1);
* for (int asstSelectRow : asstSelectRows) {
* DynamicObject asstRow = view.getModel().getEntryRowEntity("asstbill", asstSelectRow);
* asstContactSet.add(asstRow.getString("asstcontact"));
* }
* if (asstContactSet.size() > 1){
* //ResManager.loadKDString()多语言支持
* view.showTipNotification(ResManager.loadKDString("辅方的合同号必须相同", "ManualSettleCheck_Demo_2", "fi-arapcommon"));
* return false;
* }
*
* if(mainContactSet.size() == 1 && asstContactSet.size() == 1 &&
* mainContactSet.iterator().next().equals(asstContactSet.iterator().next())){
* return true;
* }else{
* //ResManager.loadKDString()多语言支持
* view.showTipNotification(ResManager.loadKDString("主方和辅方的合同号必须一致才能结算", "ManualSettleCheck_Demo_3", "fi-arapcommon"));
* return false;
* }
*
* }
* }
*
*
*/
check(view:$.kd.bos.form.IFormView):boolean;
}
type IManualSettleCheck_T = IManualSettleCheck_S & IManualSettleCheck$;
interface IManualSettleCheck extends IManualSettleCheck_T {
}
}
namespace kd.sdk.fi.ap.extpoint.woff{
interface IAfterWoffProcess_S {
}
interface IAfterWoffProcess$ {
/**
* @param isWoff true代表冲回,false代表取消冲回
* @param woffMode 冲回模式,WoffModeEnum.value
* @param finBillIds 触发单到冲回的财务单ID
* @param srcBusBillIds 最初被冲回的源暂估单ID
* @param woffBillIds 生成的冲回单ID
*
* 扩展示例如下 *
* public class AfterWoffProcessDemo implements IAfterWoffProcess {
* @Override
* public void afterProcess(boolean isWoff, String woffMode, Set finBillIds, Set srcBusBillIds, List
*/
afterProcess(isWoff:boolean,woffMode:string,finBillIds:$.java.util.Set,srcBusBillIds:$.java.util.Set,woffBillIds:$.java.util.List):void;
}
type IAfterWoffProcess_T = IAfterWoffProcess_S & IAfterWoffProcess$;
interface IAfterWoffProcess extends IAfterWoffProcess_T {
}
interface IWoffMatchExt_S {
}
interface IWoffMatchExt$ {
/**
* 对冲回匹配条件追加个性化匹配条件,支持表头和物料明细属性,物料明细属性请携带分录标识
* @param woffMode 冲回模式,WoffModeEnum.value
* @param finEntityKey 财务单单据标识,可用于应收应付区分及标识处理
* @return <财务单字段标识, 暂估单字段标识>
*
* 扩展示例如下 *
* public class WoffMatchExtDemo implements IWoffMatchExt {
* @Override
* public Map moreMatchField(String woffMode, String finEntityKey) {
* Map matchField = new HashMap<>(2);
* // 核心单据冲回追加匹配条件
* if(WoffModeEnum.COREBILL.getValue().equals(woffMode)) {
* if("ap_finapbill".equals(finEntityKey)) {
* // 若财务应收应付单字段标识不同请区分处理,物料明细属性请携带分录标识
* matchField.put("paycond", "paycond");// 付款条件
* matchField.put("detailentry.tracknumber", "entry.tracknumber");// 跟踪号
* }
* }
* return matchField;
* }
* }
*
*/
moreMatchField(woffMode:string,finEntityKey:string):$.java.util.Map;
}
type IWoffMatchExt_T = IWoffMatchExt_S & IWoffMatchExt$;
interface IWoffMatchExt extends IWoffMatchExt_T {
}
}
namespace kd.sdk.fi.ar.extpoint.invoice{
interface IInvIssueCallback_S {
}
interface IInvIssueCallback$ {
/**
* 开票回调后处理
* @param callBackVoJson 对象kd.imc.bdm.common.dto.FiBotpCallBackVo.class的json
* @return
*
* 扩展示例如下 *
* import java.util.*
* import java.util.stream.Collectors;
* import com.alibaba.fastjson.JSONObject;
*
* import kd.bos.db.tx.TX;
* import kd.bos.db.tx.TXHandle;
* import kd.bos.servicehelper.botp.BFTrackerServiceHelper;
* import kd.fi.arapcommon.consts.EntityConst;
* import kd.fi.arapcommon.util.EmptyUtils;
* import kd.imc.bdm.common.dto.FiBotpCallBackArBillVo;
* import kd.imc.bdm.common.dto.FiBotpCallBackVo;
* import kd.sdk.fi.ar.extpoint.invoice.IInvIssueCallback;
*
* public class InvIssueCallbackImpl_Demo implements IInvIssueCallback {
*
* public void afterProcess(String callBackVoJson) {
* FiBotpCallBackVo callBackVo = JSONObject.parseObject(callBackVoJson, FiBotpCallBackVo.class);
* String invoiceCode = callBackVo.getInvoiceCode(); //发票代码
* String invoiceNo = callBackVo.getInvoiceNo(); //发票号码
* List arBillVos = callBackVo.getArs(); //应收单据集合
* List finPks = arBillVos.stream().map(FiBotpCallBackArBillVo::getArBillPk).collect(Collectors.toList());
* //可能跨库操作,开启新事务处理
* try (TXHandle tx = TX.requiresNew("InvIssueCallback.afterProcess")) {
* try {
* //找上游单据
* Map> linkBills = BFTrackerServiceHelper.findSourceBills(EntityConst.ENTITY_FINARBILL, finPks.toArray(new Long[]{}));
* //上游单据
* Set srcPks = linkBills.get("sm_xxxbill");
* if (EmptyUtils.isNotEmpty(srcPks)) {
* // 查询上游单据,并更新上游单据
* // ...
* }
* } catch(Exception ex) {
* tx.markRollback();
* throw ex;
* }
* }
* }
* }
*
*/
afterProcess(callBackVoJson:string):void;
}
type IInvIssueCallback_T = IInvIssueCallback_S & IInvIssueCallback$;
interface IInvIssueCallback extends IInvIssueCallback_T {
}
}
namespace kd.sdk.fi.ar.extpoint.plan{
interface IPlanRowSplit_S {
}
interface IPlanRowSplit$ {
/**
* 计划行拆分扩展点,支持可覆盖
* @param view 表单视图模型
*
* 扩展示例如下 *
* public class PlanRowSplitImpl_Demo implements IPlanRowSplit {
*
* public void splitPlanEntry(IFormView view) {
* IDataModel m = view.getModel();
* m.beginInit();
* DynamicObject dataEntity = m.getDataEntity(true);//获取页面模型的整个值对象
* String entityName = dataEntity.getDataEntityType().getName();//单据标识
* BillModel bm = BillModelFactory.getModel(entityName);//单据字段标识对象
*
* //1、删除计划行的所有数据
* m.deleteEntryData(bm.P_ENTRY);
*
* //2、根据业务处理计划行
* for (int i = 0; i < 2; i++) {
* //创建计划行
* int iRow = m.createNewEntryRow(bm.P_ENTRY, i, null);
* //计划行赋值
* m.setValue(bm.P_PLANDUEDATE, m.getValue(bm.HEAD_DUEDATE), iRow);
* m.setValue(bm.P_PLANSETTLETYPE, m.getValue(bm.HEAD_SETTLEMENTTYPE), iRow);
* BigDecimal priceTaxTotal = new BigDecimal("100");
* m.setValue(bm.P_PLANPRICETAX, priceTaxTotal, iRow);
* // ...
* }
* m.endInit();
* view.updateView(bm.P_ENTRY);
* }
* }
*
*/
splitPlanEntry(view:$.kd.bos.form.IFormView):void;
}
type IPlanRowSplit_T = IPlanRowSplit_S & IPlanRowSplit$;
interface IPlanRowSplit extends IPlanRowSplit_T {
}
}
namespace kd.sdk.fi.arapcommon.helper{
interface SettleServiceSDKHelper_S {
/**
* 应付冲应收指定金额结算
* @param assignSettleParam 指定结算参数
* @return 结算返回结果
*/
apArAssignSettle(assignSettleParam:kd.sdk.fi.arapcommon.param.AssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应付冲应收非指定金额结算
* @param noAssignSettleParam 非指定结算参数
* @return 结算返回结果
*/
apArNoAssignSettle(noAssignSettleParam:kd.sdk.fi.arapcommon.param.NoAssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应付付款指定金额结算
* @param assignSettleParam 指定结算参数
* @return 结算返回结果
*/
apPayAssignSettle(assignSettleParam:kd.sdk.fi.arapcommon.param.AssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应付付款非指定金额结算
* @param noAssignSettleParam 非指定结算参数
* @return 结算返回结果
*/
apPayNoAssignSettle(noAssignSettleParam:kd.sdk.fi.arapcommon.param.NoAssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应付红蓝对冲指定金额结算
* @param assignSettleParam 指定结算参数
* @return 结算返回结果
*/
apSelfAssignSettle(assignSettleParam:kd.sdk.fi.arapcommon.param.AssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应付红蓝对冲非指定金额结算
* @param noAssignSettleParam 非指定结算参数
* @return 结算返回结果
*/
apSelfNoAssignSettle(noAssignSettleParam:kd.sdk.fi.arapcommon.param.NoAssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应收冲应付指定金额结算
* @param assignSettleParam 指定结算参数
* @return 结算返回结果
*/
arApAssignSettle(assignSettleParam:kd.sdk.fi.arapcommon.param.AssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应收冲应付非指定金额结算
* @param noAssignSettleParam 非指定结算参数
* @return 结算返回结果
*/
arApNoAssignSettle(noAssignSettleParam:kd.sdk.fi.arapcommon.param.NoAssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应收收款指定金额结算
* @param assignSettleParam 指定结算参数
* @return 结算返回结果
*/
arRecAssignSettle(assignSettleParam:kd.sdk.fi.arapcommon.param.AssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应收收款非指定金额结算
* @param noAssignSettleParam 非指定结算参数
* @return 结算返回结果
*/
arRecNoAssignSettle(noAssignSettleParam:kd.sdk.fi.arapcommon.param.NoAssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应收红蓝对冲指定金额结算
* @param assignSettleParam 指定结算参数
* @return 结算返回结果
*/
arSelfAssignSettle(assignSettleParam:kd.sdk.fi.arapcommon.param.AssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 应收红蓝对冲非指定金额结算
* @param noAssignSettleParam 非指定结算参数
* @return 结算返回结果
*/
arSelfNoAssignSettle(noAssignSettleParam:kd.sdk.fi.arapcommon.param.NoAssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 付款冲收款指定金额结算
* @param assignSettleParam 指定结算参数
* @return 结算返回结果
*/
payRecAssignSettle(assignSettleParam:kd.sdk.fi.arapcommon.param.AssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 付款冲收款非指定金额结算
* @param noAssignSettleParam 非指定结算参数
* @return 结算返回结果
*/
payRecNoAssignSettle(noAssignSettleParam:kd.sdk.fi.arapcommon.param.NoAssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 付款红蓝对冲指定金额结算
* @param assignSettleParam 指定结算参数
* @return 结算返回结果
*/
paySelfAssignSettle(assignSettleParam:kd.sdk.fi.arapcommon.param.AssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 付款红蓝对冲非指定金额结算
* @param noAssignSettleParam 非指定结算参数
* @return 结算返回结果
*/
paySelfNoAssignSettle(noAssignSettleParam:kd.sdk.fi.arapcommon.param.NoAssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 收款冲付款指定金额结算
* @param assignSettleParam 指定结算参数
* @return 结算返回结果
*/
recPayAssignSettle(assignSettleParam:kd.sdk.fi.arapcommon.param.AssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 收款冲付款非指定金额结算
* @param noAssignSettleParam 非指定结算参数
* @return 结算返回结果
*/
recPayNoAssignSettle(noAssignSettleParam:kd.sdk.fi.arapcommon.param.NoAssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 收款红蓝对冲指定金额结算
* @param assignSettleParam 指定结算参数
* @return 结算返回结果
*/
recSelfAssignSettle(assignSettleParam:kd.sdk.fi.arapcommon.param.AssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
/**
* 收款红蓝对冲非指定金额结算
* @param noAssignSettleParam 非指定结算参数
* @return 结算返回结果
*/
recSelfNoAssignSettle(noAssignSettleParam:kd.sdk.fi.arapcommon.param.NoAssignSettleParam):kd.sdk.fi.arapcommon.param.SettleResult;
}
interface SettleServiceSDKHelper_C extends SettleServiceSDKHelper_S {
new():SettleServiceSDKHelper;
}
interface SettleServiceSDKHelper$ {
}
type SettleServiceSDKHelper_T = SettleServiceSDKHelper_S & SettleServiceSDKHelper$;
interface SettleServiceSDKHelper extends SettleServiceSDKHelper_T {
}
}
namespace kd.sdk.fi.arapcommon.param{
interface NoAssignSettleParam_S {
}
type NoAssignSettleParam_ST = BaseSettleParam_S & $.java.io.Serializable & NoAssignSettleParam_S;
interface NoAssignSettleParam_C extends NoAssignSettleParam_ST {
new():NoAssignSettleParam;
/**
* 构造方法
* @param orgId 组织id
* @param settleType 结算方式
*/
new(orgId:long,settleType:string):NoAssignSettleParam;
}
interface NoAssignSettleParam$ {
getAsstBillIds():$.java.util.Set;
getMainBillIds():$.java.util.Set;
isMainOp():boolean;
isOnlyByBotp():boolean;
setAsstBillIds(asstBillIds:$.java.util.Set):void;
setMainBillIds(mainBillIds:$.java.util.Set):void;
setMainOp(mainOp:boolean):void;
setOnlyByBotp(onlyByBotp:boolean):void;
}
type NoAssignSettleParam_T = BaseSettleParam & $.java.io.Serializable & NoAssignSettleParam_S & NoAssignSettleParam$;
interface NoAssignSettleParam extends NoAssignSettleParam_T {
}
interface AssignSettleParam_S {
}
type AssignSettleParam_ST = BaseSettleParam_S & AssignSettleParam_S;
interface AssignSettleParam_C extends AssignSettleParam_ST {
new():AssignSettleParam;
/**
* 构造方法
* @param orgId 组织id
* @param settleType 结算方式
* @param settleDetailType 明细结算方式(按单据头或者按分录)
*/
new(orgId:long,settleType:string,settleDetailType:string):AssignSettleParam;
}
interface AssignSettleParam$ {
getAsstDetailParamList():$.java.util.List;
getMainDetailParamList():$.java.util.List;
getSettleDetailType():string;
setAsstDetailParamList(asstDetailParamList:$.java.util.List):void;
setMainDetailParamList(mainDetailParamList:$.java.util.List):this;
setSettleDetailType(settleDetailType:string):void;
}
type AssignSettleParam_T = BaseSettleParam & AssignSettleParam_S & AssignSettleParam$;
interface AssignSettleParam extends AssignSettleParam_T {
}
interface BaseSettleParam_S {
}
type BaseSettleParam_ST = $.java.io.Serializable & BaseSettleParam_S;
interface BaseSettleParam_C extends BaseSettleParam_ST {
new():BaseSettleParam;
}
interface BaseSettleParam$ {
getAsstEntity():string;
getMainEntity():string;
getMatchServiceClass():string;
getOrgId():long;
getSettleDate():Date;
getSettleType():string;
isClaim():boolean;
isContainPre():boolean;
isDiffCurrencySettle():boolean;
isLockWait():boolean;
isMatchDiffCurrency():boolean;
isNotNeedLock():boolean;
isOnlyByConBill():boolean;
isOnlyByCoreBill():boolean;
isRefundAndRenote():boolean;
isRefundByBotp():boolean;
setAsstEntity(asstEntity:string):void;
setClaim(claim:boolean):void;
setContainPre(containPre:boolean):void;
setDiffCurrencySettle(diffCurrencySettle:boolean):void;
setLockWait(lockWait:boolean):void;
setMainEntity(mainEntity:string):void;
setMatchDiffCurrency(matchDiffCurrency:boolean):void;
setMatchServiceClass(matchServiceClass:string):void;
setNotNeedLock(notNeedLock:boolean):void;
setOnlyByConBill(onlyByConBill:boolean):void;
setOnlyByCoreBill(onlyByCoreBill:boolean):void;
setOrgId(orgId:long):void;
setRefundAndRenote(refundAndRenote:boolean):void;
setRefundByBotp(refundByBotp:boolean):void;
setSettleDate(settleDate:Date):void;
setSettleType(settleType:string):void;
}
type BaseSettleParam_T = $.java.io.Serializable & BaseSettleParam_S & BaseSettleParam$;
interface BaseSettleParam extends BaseSettleParam_T {
}
interface SettleResult_S {
}
type SettleResult_ST = $.java.io.Serializable & SettleResult_S;
interface SettleResult_C extends SettleResult_ST {
new():SettleResult;
}
interface SettleResult$ {
getData():any;
getSettleRecordPKs():$.java.util.List;
setData(data:any):void;
setSettleRecordPKs(settleRecordPKs:$.java.util.List):void;
}
type SettleResult_T = $.java.io.Serializable & SettleResult_S & SettleResult$;
interface SettleResult extends SettleResult_T {
}
}
namespace kd.sdk.fi.bd.service.balance{
interface QueryParam_S {
}
type QueryParam_ST = $.java.io.Serializable & QueryParam_S;
interface QueryParam_C extends QueryParam_ST {
new():QueryParam;
}
interface QueryParam$ {
getAccountFilter():$.kd.bos.orm.query.QFilter;
getAccountVersionPeriodId():long;
getAssGrpIds():$.java.util.Set;
getCurrencyIds():long[];
getCustomFilter():$.java.util.List;
getMeasureUnitIds():long[];
isAddAmountFilter():boolean;
isOnlyLeafAcctBal():boolean;
isSpecialAccount():boolean;
isSubstractPL():boolean;
isSumAssgrp():boolean;
isZeroAmtNoDisplay():boolean;
isZeroBalNoDisplay():boolean;
setAccountFilter(accountFilter:$.kd.bos.orm.query.QFilter):void;
setAccountVersionPeriodId(accountVersionPeriodId:long):void;
setAddAmountFilter(isAddAmountFilter:boolean):void;
setAssGrpIds(assGrpIds:$.java.util.Set):void;
setCurrencyIds(currencyIds:long[]):void;
setCustomFilter(customFilter:$.java.util.List):void;
setMeasureUnitIds(measureUnitIds:long[]):void;
setOnlyLeafAcctBal(isOnlyLeafAcctBal:boolean):void;
setSpecialAccount(isSpecialAccount:boolean):void;
setSubstractPL(isSubstractPL:boolean):void;
setSumAssgrp(sumAssgrp:boolean):void;
setZeroAmtNoDisplay(zeroAmtNoDisplay:boolean):void;
setZeroBalNoDisplay(zeroBalNoDisplay:boolean):void;
}
type QueryParam_T = $.java.io.Serializable & QueryParam_S & QueryParam$;
interface QueryParam extends QueryParam_T {
}
interface BalanceExecutorSdk_S {
/**
* 根据参数查询科目余额表,返回不限制数据量的DataSet
*
* @param selector 需要查询的字段 例:"org,booktype,account,assgrp,endlocal" 如果查询字段包含period则只查询条件范围内有发生额的科目余额数据
*
* @param orgIds 核算组织id
* @param bookTypeId 账簿类型id
* @param accountTableId 科目表id
* @param beginPeriodId 查询的开始期间
* @param endPeriodId 查询的结束期间 查询一个期间的数据则与开始期间一致即可
* @param param 其他查询参数
*
* @return 科目余额Dataset数据
*
*
* 调用示例:
*
* 构造相关参数
* String selector="org,booktype,account,assgrp,endlocal";
* Long[] orgIds=new Long[]{0001};
* long bookTypeId =1L;
* long accountTableId = 1L;
* long beginPeriodId = 120220080L;
* long endPeriodId =120220080L;
* QueryParam param =new QueryParam();
* 调用接口查询 并对返回的DataSet进行处理
* try(DataSet ds= kd.sdk.fi.bd.service.balance.BalanceExecutorSdk.getBalance(selector,orgIds,bookTypeId,accountTableId,beginPeriodId,endPeriodId,param)){
* for(Row row:ds){
* BigDecimal endlocal=row.getBigDecimal("endlocal");
* ...
* }
* };
*
*
*/
getBalance(selector:string,orgIds:long[],bookTypeId:long,accountTableId:long,beginPeriodId:long,endPeriodId:long,param:QueryParam):$.kd.bos.algo.DataSet;
}
interface BalanceExecutorSdk_C extends BalanceExecutorSdk_S {
new():BalanceExecutorSdk;
}
interface BalanceExecutorSdk$ {
}
type BalanceExecutorSdk_T = BalanceExecutorSdk_S & BalanceExecutorSdk$;
interface BalanceExecutorSdk extends BalanceExecutorSdk_T {
}
}
namespace kd.sdk.fi.bd.service.cdc{
interface CDCServiceGLIntegratorSDK_S {
/**
* 触发凭证摘要集成
* * 凭证更新事务提交后,请求同步ES,内部异步实现,无需关注结果 * * @param operationType 变动类型 * @param voucherIdColl 凭证ID集合 * @return 触发成功? */ raiseCDCEvent(operationType:CDCRecOperationTypeEnum,voucherIdColl:$.java.util.Collection):boolean; } interface CDCServiceGLIntegratorSDK_C extends CDCServiceGLIntegratorSDK_S { new():CDCServiceGLIntegratorSDK; } interface CDCServiceGLIntegratorSDK$ { /** * 注册凭证摘要变动记录 *
* 凭证更新事务中,凭证保存执行完毕,调用同步注册凭证变动记录 * * @param operationType 变动类型 * @param voucherIdColl 凭证ID集合 * @return 注册成功? */ registerCDCChangedRecord(operationType:CDCRecOperationTypeEnum,voucherIdColl:$.java.util.Collection):boolean; } type CDCServiceGLIntegratorSDK_T = CDCServiceGLIntegratorSDK_S & CDCServiceGLIntegratorSDK$; interface CDCServiceGLIntegratorSDK extends CDCServiceGLIntegratorSDK_T { } enum CDCRecOperationTypeEnum { New, Update, Delete } } namespace kd.sdk.fi.cal.extpoint.bal{ interface CalBalDataSDK_S { getBalDataForCache(qFilter:$.kd.bos.orm.query.QFilter):string; } interface CalBalDataSDK_C extends CalBalDataSDK_S { new():CalBalDataSDK; } interface CalBalDataSDK$ { } type CalBalDataSDK_T = CalBalDataSDK_S & CalBalDataSDK$; interface CalBalDataSDK extends CalBalDataSDK_T { } } namespace kd.sdk.fi.cal.extpoint.calintime{ interface ICalMoveGroupCost_S { } interface ICalMoveGroupCost$ { /** * @function 缓冲池计算实时移动成组成本加价处理 * @param acctRecIdEleCostMap * 分项:key:成本账簿ID+ "|" + 成本记录分录id + "|" + 成本子要素ID * 不分项:key:成本账簿ID+ "|" + 成本记录分录id + "|" + “materialcost”(材料成本) * 或 “processcost”(加工费) 或 “fee”(费用) 或 “manufacturecost”(制造费用) 或 “RESOURCE”(资源费用) * value:对应金额 * @param entity 库存业务对象编码 * @param bizBillIds 业务单据id * @return void *
* package kd.sdk.fi.cal.extpoint.calintime;
*
* import kd.bos.algo.DataSet;
* import kd.bos.algo.Row;
* import kd.bos.orm.query.QCP;
* import kd.bos.orm.query.QFilter;
* import kd.bos.servicehelper.QueryServiceHelper;
*
* import java.math.BigDecimal;
* import java.util.HashSet;
* import java.util.Map;
* import java.util.Set;
*
* public class CalMoveGroupCostTest implements ICalMoveGroupCost{
* @Override
* public void doCalGroupCostEx(Map acctRecIdEleCostMap, String entity, Set bizBillIds) {
* String splitStr = "|";
* DataSet costRecordDs = getCostRecordDs(acctRecIdEleCostMap, bizBillIds);
* for (Row row : costRecordDs) {
* Long costAcctId = row.getLong("costaccount");
* Long costRecEid = row.getLong("entryid");
* Long costSubelEment = row.getLong("costsubelement");
* //key:成本账簿ID+ "|" + 成本记录分录id + "|" + 成本子要素ID,value:对应金额
* String key;
* //成本账簿-核算政策-启用分项结转
* if(row.getBoolean("calbycostelement")){
* key = costAcctId + splitStr + costRecEid + splitStr + costSubelEment;
* }else {
* //不分项材料成本单价增加一块钱 材料成本(materialcost)加工费(processcost)费用(fee)制造费用(manufacturecost)资源费用(resource)
* key = costAcctId + splitStr + costRecEid + splitStr + "materialcost";
* }
* //源单成本
* BigDecimal srcCost = acctRecIdEleCostMap.get(key);
* if(srcCost == null){
* continue;
* }
* BigDecimal baseqty = row.getBigDecimal("baseqty");
* //单价增加一块钱
* BigDecimal addCost = srcCost.add(BigDecimal.ONE.multiply(baseqty));
* //返回数据
* acctRecIdEleCostMap.put(key, addCost);
* }
* }
*
* private DataSet getCostRecordDs(Map acctRecIdEleCostMap, Set bizBillIds) {
* //成本账簿id
* Set costAcctIds = new HashSet<>(16);
* //成本记录分录id
* Set recEids = new HashSet<>(16);
* for (Map.Entry entry : acctRecIdEleCostMap.entrySet()) {
* String key = entry.getKey();
* String[] keySplit = key.split("\\|");
* //成本账簿
* String costAcctIdStr = keySplit[0];
* //成本记录分录id
* String calEidStr = keySplit[1];
* costAcctIds.add(Long.valueOf(costAcctIdStr));
* recEids.add(Long.valueOf(calEidStr));
* }
* //业务单据id(库存单据id)
* QFilter bizBillIdFilter = new QFilter("bizbillid", QCP.in, bizBillIds);
* QFilter eIdFilter = new QFilter("entry.id", QCP.in, recEids);
* String sels = "bizentityobject,bizbillid,costaccount,entry.calentryid as calentryid,entry.id as entryid,entry.baseqty as baseqty,entry.subentrycostelement.costsubelement as costsubelement,costaccount.calpolicy.calbycostelement as calbycostelement";
* //查询成本记录信息
* DataSet costRecordDs = QueryServiceHelper.queryDataSet(this.getClass().getName(),
* "cal_costrecord_subentity", sels, new QFilter[]{bizBillIdFilter, eIdFilter}, null);
* return costRecordDs;
* }
*
* }
*
*
*/
doCalGroupCostEx(acctRecIdEleCostMap:$.java.util.Map,entity:string,bizBillIds:$.java.util.Set):void;
}
type ICalMoveGroupCost_T = ICalMoveGroupCost_S & ICalMoveGroupCost$;
interface ICalMoveGroupCost extends ICalMoveGroupCost_T {
}
}
namespace kd.sdk.fi.cal.extpoint.costrecord{
interface IQueueTypeMatch_S {
}
interface IQueueTypeMatch$ {
/**
* 获取序列类型
* @param costAccountId 成本账簿ID
* @param bizEntityObject 业务对象
* @param billId 业务单据ID
* @return queueType: "0"为入库序列,"1"为出库序列,其余结果无效
*
* 扩展示例如下 *
* package kd.sdk.fi.cal.extpoint.costrecord;
*
* import kd.bos.dataentity.entity.DynamicObject;
* import kd.bos.orm.query.QFilter;
* import kd.bos.servicehelper.QueryServiceHelper;
* import kd.bos.util.StringUtils;
* import kd.sdk.fi.cal.extpoint.costrecord.IQueueTypeMatch;
*
* public class SrcBill4QueuePlugin_Test implements IQueueTypeMatch {
*
* public String getQueueType(Long costAccountId, String bizEntityObject, Long billId) {
* //非销售出库单 或者 账簿不等于指定账簿,直接返回
* if(!bizEntityObject.equals("im_saloutbill") || costAccountId != 88888888L){
* return null;
* }
* QFilter q = new QFilter("bizbillid", "=", billId);
* q.and("costaccount.ismainaccount", "=", true);
* DynamicObject info = QueryServiceHelper.queryOne("cal_costrecord", "id,period,entry.srcbillentity,entry.srcbillid", q.toArray());
* //没有成本记录,则无需判断插件逻辑,直接返回
* if(info == null){
* return null;
* }
* String srcMainEntity = info.getString("entry.srcbillentity");
* //来源单类型为空,直接返回
* if(StringUtils.isEmpty(srcMainEntity)){
* return null;
* }
* long period = info.getLong("period");
* long srcBillId = info.getLong("entry.srcbillid");
* DynamicObject srcInfo = null;
* //源单类型相同,都是销售出库单
* if(bizEntityObject.equals(srcMainEntity)){
* q = new QFilter("bizbillid", "=", srcBillId);
* q.and("costaccount.ismainaccount", "=", true);
* //源单
* srcInfo = QueryServiceHelper.queryOne("cal_costrecord", "id,period,entry.srcbillentity,entry.srcbillid", q.toArray());
* //VMI红字销售出库单源单蓝字销售出库单为物流单不进核算
* if(srcInfo == null){
* return null;
* }
* long srcPeriod = srcInfo.getLong("period");
* //源单类型=销售出库单且源单为往期(期间不等)
* if(period != srcPeriod){
* //返回为入库序列
* return "0";
* }
* }
* return null;
* }
* }
*
*/
getQueueType(costAccountId:long,bizEntityObject:string,billId:long):string;
}
type IQueueTypeMatch_T = IQueueTypeMatch_S & IQueueTypeMatch$;
interface IQueueTypeMatch extends IQueueTypeMatch_T {
}
}
namespace kd.sdk.fi.cas.extpoint.claimbill{
interface IClaimcenterHote_S {
readonly logger:$.kd.bos.logging.Log;
}
interface IClaimcenterHote$ {
setNewRecBillField?(recBill:$.kd.bos.dataentity.entity.DynamicObject):void;
}
type IClaimcenterHote_T = IClaimcenterHote_S & IClaimcenterHote$;
interface IClaimcenterHote extends IClaimcenterHote_T {
}
interface IClaimbillFilter_S {
}
interface IClaimbillFilter$ {
/**
* 收款认领处理单过滤条件扩展
* 用于认领处理单分录行选择核心单据F7页面过滤条件扩展
*
* @param lfp 过滤条件,用于二开自定义扩展
* @param dataModel 认领处理单数据模型,用于二开获取当前认领处理单据页面数据
*
* 默认扩展示例如下 *
* package kd.fi.cas.formplugin.recclaim.claimhandle
*
* import kd.bos.dataentity.entity.DynamicObject;
* import kd.bos.entity.datamodel.IDataModel;
* import kd.bos.list.ListFilterParameter;
* import kd.bos.orm.query.QCP;
* import kd.bos.orm.query.QFilter;
* import kd.fi.cas.consts.RecClaimBillModel;
* import kd.sdk.fi.cas.extpoint.claimbill.IClaimbillFilter;
*
* public class ClaimbillFilter implements IClaimbillFilter
*
* public void setIFilters(ListFilterParameter lfp, IDataModel dataModel) {
* // 获取当前点击分录行行号
* int currrow = dataModel.getEntryCurrentRowIndex(RecClaimBillModel.ENTRYENTITY);
* // 获取分录行核心单据类型
* String coreBillType = (String) dataModel.getValue(RecClaimBillModel.E_COREBILLTYPE, currentRowIndex);
* // 获取当前单据实体
* DynamicObject claimBill = dataModel.getDataEntity();
* // 通过认领处理单数据添加自定义过滤条件
* lfp.setFilter(new QFilter("accountingorg", QCP.equals, claimBill.getString("billstatus")));
* }
* }
*
*
*/
setIFilters(lfp:$.kd.bos.list.ListFilterParameter,dataModel:$.kd.bos.entity.datamodel.IDataModel):void;
/**
* 收款认领单过滤条件扩展插件,用于二开项目扩展过滤条件
* @param lfp 列表过滤条件参数
* @param claimBill 页面单据
* @return void
*
* 扩展示例如下 *
* import kd.bos.dataentity.entity.DynamicObject;
* import kd.bos.list.ListFilterParameter;
*
* public class ClaimbillFilter implements IClaimbillFilter {
* public void setIFilters(ListFilterParameter lfp, DynamicObject claimBill) {
* IClaimbillFilter.super.setIFilters(lfp, claimBill);
* lfp.setFilter(new QFilter("accountingorg", QCP.equals, claimBill.getString("billstatus")));
* }
* }
*
*
*/
setIFilters(lfp:$.kd.bos.list.ListFilterParameter,claimBill:$.kd.bos.dataentity.entity.DynamicObject):void;
}
type IClaimbillFilter_T = IClaimbillFilter_S & IClaimbillFilter$;
interface IClaimbillFilter extends IClaimbillFilter_T {
}
interface BankAutoMatchCheck_S {
readonly logger:$.kd.bos.logging.Log;
}
interface BankAutoMatchCheck$ {
setBankAutoMatchCheck?(ruleList:$.java.util.List):void;
}
type BankAutoMatchCheck_T = BankAutoMatchCheck_S & BankAutoMatchCheck$;
interface BankAutoMatchCheck extends BankAutoMatchCheck_T {
}
interface IClaimHandlePluginSDK_S {
}
interface IClaimHandlePluginSDK$ {
/**
* 处理数据集,此为步骤3,将idValue集合中的数据赋值到rowData中,相当于给界面分录数据进行赋值
* @param idValue 存放查询的id及对应数据集
* @param rowData 分录数据对象
*
* 扩展示例如下 *
* public void dealResult(Map> idValue, DynamicObject rowData) {
* Long id = (Long)rowData.get("e_corebillid");
* rowData.set("e_fee", idValue.get(id).get("e_fee"));
* }
*/
dealResult(idValue:$.java.util.Map,rowData:$.kd.bos.dataentity.entity.DynamicObject):void;
/**
* 填充数据集,此为步骤2,允许针对选择的核心单据根据id去获取单据头属性或其他属性,存储到idValue中以便步骤3使用
* @param coreBillType 核心单据类型
* @param ids 选择的核心单据id
* @param idValue 存放查询的id及对应数据集
*
* 扩展示例如下 *
* public void fillResult(String coreBillType, Set ids, Map> idValue) {
* DynamicObject obj = QueryServiceHelper.queryOne(coreBillType,"e_fee",new QFiter("id",QCP.in,ids));
* Map s = new HashMap<>();
* s.put("e_fee", obj.get("e_fee"));
* idValue.put(obj.getLong("id"),s);
* }
*/
fillResult(coreBillType:string,ids:$.java.util.Set,idValue:$.java.util.Map):void;
/**
* 此为步骤1,二开属性查询出来的数据将在后面步骤使用
* @param coreBillType 核心单据类型
* @param entryEntityKey 分录标识
* @param srcSelectField 标品原始查询属性
* @return 添加二开查询属性
*
* 扩展示例如下 *
* pubilc String getSelectFieldWithEntry(String coreBillType, String entryEntityKey,String srcSelectField){
* String field = ",amt,entry.e_fee";// 可以根据coreBillType、entryEntityKey返回二开需要查询的属性
* return field;
* }
*/
getSelectFieldWithEntry(coreBillType:string,entryEntityKey:string,srcSelectField:string):$.java.util.Set;
}
type IClaimHandlePluginSDK_T = IClaimHandlePluginSDK_S & IClaimHandlePluginSDK$;
interface IClaimHandlePluginSDK extends IClaimHandlePluginSDK_T {
}
}
namespace kd.sdk.fi.cas.extpoint.closeperiod{
interface ICheckArchiveBillTypeInterface_S {
}
interface ICheckArchiveBillTypeInterface$ {
/**
* 期末结账反结账时需要校验是否已经归档的单据类型,已归档的不允许反结账
* 默认有银行日记账和现金日记账两种单据类型,其他需要在此接口中扩展添加
*
* 扩展示例如下
*
* package kd.sdk.fi.cas.extpoint.closeperiod;
*
* import java.util.Arrays;
* import java.util.List;
*
* public class CheckArchiveBillType implements ICheckArchiveBillTypeInterface{
* @Override
* public List getOtherBillTypes() {
* // 返回需要判断是否已经归档的单据类型
* return Arrays.asList("单据类型一","单据类型一");
* }
* }
*/
getOtherBillTypes():$.java.util.List;
}
type ICheckArchiveBillTypeInterface_T = ICheckArchiveBillTypeInterface_S & ICheckArchiveBillTypeInterface$;
interface ICheckArchiveBillTypeInterface extends ICheckArchiveBillTypeInterface_T {
}
}
namespace kd.sdk.fi.cas.extpoint.journal{
interface IJournalVoucherBookInterface_S {
}
interface IJournalVoucherBookInterface$ {
/**
* 现金日记账-凭证登账扩展
* @return extFieldName 凭证分录现金账户id扩展字段标识
*
* 扩展示例如下 *
* package kd.fi.cas.helper;
*
* import kd.sdk.fi.cas.extpoint.journal.IJournalVoucherBookInterface;
*
* public class voucherBookCashAccountExtPlugin implements IJournalVoucherBookInterface {
* public String cashJournalBookExt() {
* return "kdtest_accountCashId_ext";
* }
* }
*
*/
cashJournalBookExt?():string;
}
type IJournalVoucherBookInterface_T = IJournalVoucherBookInterface_S & IJournalVoucherBookInterface$;
interface IJournalVoucherBookInterface extends IJournalVoucherBookInterface_T {
}
}
namespace kd.sdk.fi.cas.extpoint.paybill{
interface IGenBankBillSDKService_S {
}
interface IGenBankBillSDKService$ {
/**
* @param entityName 单据实体名
* @param billList 业务单据集合
* @return Map< Long, Map< String, Object>>: key->银行单据id;value->二开字段名和值的键值对
*
* 扩展示例如下 *
package kd.sdk.tmc.ext.extpoint.committobe;
*
* import kd.bos.dataentity.entity.DynamicObject;
*
* import java.util.HashMap;
* import java.util.List;
* import java.util.Map;
*
* public class GenBankBillService implements IGenBankBillSDKService{
*
* public Map< Long, Map< String, Object>> extFillBankBill(String entityName, List< DynamicObject> billList) {
* Map< Long, Map< String, Object>> result = new HashMap<>();
* switch (entityName){
* case "付款单":
* Map< String,Object> prop = new HashMap<>();
* for(DynamicObject bill:billList) {
* prop.put("exfield", "二开字段");
* result.put(bill.getLong("id"), prop);
* }
* break;
* }
* return result;
* }
* }
*/
extFillBankBill(entityName:string,billList:$.java.util.List):$.java.util.Map;
}
type IGenBankBillSDKService_T = IGenBankBillSDKService_S & IGenBankBillSDKService$;
interface IGenBankBillSDKService extends IGenBankBillSDKService_T {
}
interface IPayeeBankInfoFilter_S {
}
interface IPayeeBankInfoFilter$ {
/**
* 付款处理客商收款账号过滤条件扩展插件
* @param lfp 列表过滤条件参数
* @param payBill 页面单据
* @return void
*
* 扩展示例如下
*
* import kd.bos.dataentity.entity.DynamicObject;
* import kd.bos.list.ListFilterParameter;
*
* public class PayeeBankInfoFilter implements IPayeeBankInfoFilter {
*
* public void setIFilters(ListFilterParameter lfp, DynamicObject payBill) {
* IPayeeBankInfoFilter.super.setIFilters(lfp, payBill);
* lfp.setFilter(new QFilter("accountingorg", QCP.equals, payBill.getString("billstatus")));
* }
*
* }
*
*
*/
setIFilters?(lfp:$.kd.bos.list.ListFilterParameter,payBill:$.kd.bos.dataentity.entity.DynamicObject):void;
}
type IPayeeBankInfoFilter_T = IPayeeBankInfoFilter_S & IPayeeBankInfoFilter$;
interface IPayeeBankInfoFilter extends IPayeeBankInfoFilter_T {
}
interface IPaybillWriteback_S {
}
interface IPaybillWriteback$ {
/**
* 付款单反写参数扩展属性返回,用于二开项目返回扩展字段反写
*
* @param payBillId 付款单id
* @return Map扩展示例如下
*
* public class PaybillWritebackImpl implements IPaybillWriteback{
* public Map> loadExtendInfo(Long payBillId) {
* Map> extendInfoMap = new HashMap<>();
* try {
* DynamicObject payWriteConfig = ExtendConfigHelper.getExtendConfig(ExtendConfigHelper.CONFIG_WRITEBACK_PAY);
* if(payWriteConfig != null && StringUtils.isNotBlank(payWriteConfig.getString("configvalue"))){
* IPaybillWriteback iPaybillWriteback = (IPaybillWriteback) Class.forName(payWriteConfig.getString("configvalue")).newInstance();
* extendInfoMap.putAll(iPaybillWriteback.loadExtendInfo(payBillId));
* }
* } catch (Exception e) {
* logger.info("加载扩展服务异常,%s",e.toString());
* }
* return extendInfoMap;
* }
* }
*
*/
loadExtendInfo(payBillId:long):$.java.util.Map;
}
type IPaybillWriteback_T = IPaybillWriteback_S & IPaybillWriteback$;
interface IPaybillWriteback extends IPaybillWriteback_T {
}
}
namespace kd.sdk.fi.cas.extpoint.paysche{
interface IPayScheSecondaryFieldFill_S {
}
interface IPayScheSecondaryFieldFill$ {
/**
* 开票回调后处理
* @param secondaryFields 付款排程单下带的二开字段与值 Map 集合
* @param paybill 付款处理单动态对象
* @return
*
* 扩展示例如下 *
* import kd.bos.dataentity.entity.DynamicObject;
* import kd.bos.ext.fi.botp.consts.PaymentBillModel;
* import java.util.Map;
* public class IPayScheSecondaryFieldFill_Demo implements IPayScheSecondaryFieldFill {
* public void fillSecondaryFields(Map secondaryFields, DynamicObject paybill) {
* IPayScheSecondaryFieldFill.super.fillSecondaryFields(secondaryFields, paybill);
* paybill.set(PaymentBillModel.HEAD_USAGE, secondaryFields.get("a1"));
* }
* }
*
*/
fillSecondaryFields?(secondaryFields:$.java.util.Map,paybill:$.kd.bos.dataentity.entity.DynamicObject):void;
}
type IPayScheSecondaryFieldFill_T = IPayScheSecondaryFieldFill_S & IPayScheSecondaryFieldFill$;
interface IPayScheSecondaryFieldFill extends IPayScheSecondaryFieldFill_T {
}
}
namespace kd.sdk.fi.cas.extpoint.recbill{
interface IAgentPayField_S {
}
interface IAgentPayField$ {
setAgentPayField?(info:$.kd.bos.dataentity.entity.DynamicObject):void;
}
type IAgentPayField_T = IAgentPayField_S & IAgentPayField$;
interface IAgentPayField extends IAgentPayField_T {
}
interface IRecbillFilter_S {
}
interface IRecbillFilter$ {
/**
* 收款单过滤条件扩展插件,用于二开项目扩展过滤条件
* @param lfp 列表过滤条件参数
* @param recBill 页面单据
* @return void
*
* 扩展示例如下
*
* import kd.bos.dataentity.entity.DynamicObject;
* import kd.bos.list.ListFilterParameter;
*
* public class RecbillFilter implements IRecbillFilter {
* public void setIFilters(ListFilterParameter lfp, DynamicObject recBill) {
* IRecbillFilter.super.setIFilters(lfp, recBill);
* lfp.setFilter(new QFilter("accountingorg", QCP.equals, recBill.getString("billstatus")));
* }
* }
*
*
*/
setIFilters?(lfp:$.kd.bos.list.ListFilterParameter,recBill:$.kd.bos.dataentity.entity.DynamicObject):void;
}
type IRecbillFilter_T = IRecbillFilter_S & IRecbillFilter$;
interface IRecbillFilter extends IRecbillFilter_T {
}
}
namespace kd.sdk.fi.dhc.extpoint{
interface ISynchronizationDataExtPlugin_S {
}
interface ISynchronizationDataExtPlugin$ {
/**
* 接口调用时机:各场景下同步数据前获取映射配置关系时
*
* @param billType 要同步数据的单据类型。接入报账工作台的单据的实体编码
* @return 自定义增加的{billType}单与{dhc_mybilllist}的同步映射关系
*
* 扩展示例如下
*
* public class SynchronizationDataExtTestPlugin implements ISynchronizationDataExtPlugin {
*
* @Override
* public Map addMappingFields(String billType) {
* Map mappingFields = new HashMap<>();
* switch (billType) {
* case "dhc_reimorder":
* mappingFields.put("extField", "biztype");
* break;
* case "ssc_tallyapplybill":
* mappingFields.put("extField", "mainbiztype");
* mappingFields.put("entryentity.extEntryField", "tallyentryentity.bizdetailtype");
* break;
* default:
* break;
* }
* return mappingFields;
* }
* }
*
*/
addMappingFields?(billType:string):$.java.util.Map;
}
type ISynchronizationDataExtPlugin_T = ISynchronizationDataExtPlugin_S & ISynchronizationDataExtPlugin$;
interface ISynchronizationDataExtPlugin extends ISynchronizationDataExtPlugin_T {
}
}
namespace kd.sdk.fi.er.extpoint.ai{
interface IAIReimburseService_S {
readonly BIZCODE:string;
}
interface IAIReimburseService$ {
/**
* 创建view和model后执行,用于修改model便于二开赋值
* @param view
* @param params 对话平台传进来的参数
* @return
*/
afterCreateView?(view:$.kd.bos.form.IFormView,params:$.java.util.Map):void;
/**
* 初始化时修改实体标识、appid。
* @param plugin 智能语音报销的插件对象
* @return
*/
initDataMember?(plugin:$.kd.bos.bill.AbstractBillWebApiPlugin,params:$.java.util.Map):void;
/**
* 生成返回给对话平台的结果集后触发,便于修改结果集
* @param view
* @param responseModel 返回给对话平台的结果
* @param params 对话平台传进来的参数
* @return
*/
responseModelExt?(view:$.kd.bos.form.IFormView,responseModel:any,params:$.java.util.Map):void;
}
type IAIReimburseService_T = IAIReimburseService_S & IAIReimburseService$;
interface IAIReimburseService extends IAIReimburseService_T {
}
}
namespace kd.sdk.fi.er.extpoint.dailyreimbursebill{
interface IEntryMustInput_S {
}
interface IEntryMustInput$ {
/**
* 返回true时,校验资产报账单资产分录必填,false不校验
* @param bill
* @return
*
* 扩展示例如下
*
* public class AssetentryMustInput implements IEntryMustInput {
* @Override
* public Boolean checkAssetEntryMustInput(DynamicObject bill) {
* return Boolean.FALSE;
* }
* }
*
*/
checkAssetEntryMustInput(bill:$.kd.bos.dataentity.entity.DynamicObject):boolean;
}
type IEntryMustInput_T = IEntryMustInput_S & IEntryMustInput$;
interface IEntryMustInput extends IEntryMustInput_T {
}
interface ITripStandardControl_S {
}
interface ITripStandardControl$ {
/**
* 提交时是否要启用差旅标准
* @param DynamicObject 单据页面提交时的元数据
* @return boolean
*
* 扩展示例如下
*
* public class TripStandardControl implements ITripStandardControl {
* public Boolean controlTripStandard(DynamicObject dynamicObject) {
* return true;
* }
* }
*
*/
controlTripStandard(dynamicObject:$.kd.bos.dataentity.entity.DynamicObject):boolean;
}
type ITripStandardControl_T = ITripStandardControl_S & ITripStandardControl$;
interface ITripStandardControl extends ITripStandardControl_T {
}
interface ISuperClosedCallBack_S {
}
interface ISuperClosedCallBack$ {
/**
* 在标准逻辑的 ClosedCallBack 执行之后进行个性处理
*/
afterClosedCallBack?(clazz:$.java.lang.Class,actionId:string,isPc:boolean,...params:any[]):void;
/**
* 为true,执行标准逻辑;为false,则执行完此方法跳过标准逻辑
* @return 是否执行标准的closedCallBack
*/
beforeClosedCallBack?(clazz:$.java.lang.Class,actionId:string,isPc:boolean,...params:any[]):boolean;
/**
* @param clazz ShowFrom 所在的插件
* @param foromid ShowFrom 即将打开的界面标识
* @param isPc 是否为PC端
* @param params 可变传参,
* @return 是否执行标准的view.showfrom; 为true,执行标准逻辑;为false,则执行完此方法跳过标准逻辑
*/
beforeShowFrom?(clazz:$.java.lang.Class,foromid:string,isPc:boolean,...params:any[]):boolean;
}
type ISuperClosedCallBack_T = ISuperClosedCallBack_S & ISuperClosedCallBack$;
interface ISuperClosedCallBack extends ISuperClosedCallBack_T {
}
interface IWriteBackService_S {
}
interface IWriteBackService$ {
/**
* 出纳付款单反写
* @return Object 必须实现kd.fi.er.mservice.botp.writeback.AbstractWriteBackServcie
*
* 扩展示例如下
*
* public class WriteBackService implements IWriteBackService {
* public Object getSelfBackService() {
* return new DailyLoanBillWriteBackService();
* }
* }
*
*/
getSelfBackService():any;
}
type IWriteBackService_T = IWriteBackService_S & IWriteBackService$;
interface IWriteBackService extends IWriteBackService_T {
}
interface IInitBillInfo_S {
}
interface IInitBillInfo$ {
/**
* 费用报销单据新增初始化单据信息
* @param view 单据页面
* @return void
*
* 扩展示例如下
*
* public class InitBillInfo implements IInitBillInfo{
* public void initBillInfo(IFormView view) {
* if (view == null){
* return;
* }
* Long companyId = 1247657405731330048L;//根据具体业务获取公司id
* view.getModel().setValue("company", companyId);
* }
* }
*
*/
initBillInfo(view:$.kd.bos.form.IFormView):void;
}
type IInitBillInfo_T = IInitBillInfo_S & IInitBillInfo$;
interface IInitBillInfo extends IInitBillInfo_T {
}
interface IPayAmountCal_S {
}
interface IPayAmountCal$ {
/**
* @param view 单据及界面
* @return 付现金额 返回类型为kd.fi.er.business.daily.reimburse.AmountObject 否则标准逻辑获取不到
*
* 扩展示例如下
*
* public Object payAmountCalc(IFormView view) {
* if (view == null) {
* return null;
* }
* BigDecimal orgiPayAmount = (BigDecimal) view.getModel().getValue("orgiPayAmount");
* BigDecimal currPayAmount = (BigDecimal) view.getModel().getValue("orgiPayAmount");
* AmountObject result = new AmountObject(orgiPayAmount, currPayAmount);
* return result;
* }
*
*/
payAmountCalc(view:$.kd.bos.form.IFormView):any;
}
type IPayAmountCal_T = IPayAmountCal_S & IPayAmountCal$;
interface IPayAmountCal extends IPayAmountCal_T {
}
interface IWriteOffMoney_S {
readonly BIZCODE:string;
}
interface IWriteOffMoney$ {
afterWriteoffWithholdingByCurrcy(dataModel:$.kd.bos.entity.datamodel.IDataModel):void;
/**
* 冲预提分录联动 按原币冲销:费用明细 冲预提 相同币种冲销
* @param
*/
afterWriteoffWithholdingByOrgiCurrcy(dataModel:$.kd.bos.entity.datamodel.IDataModel):void;
}
type IWriteOffMoney_T = IWriteOffMoney_S & IWriteOffMoney$;
interface IWriteOffMoney extends IWriteOffMoney_T {
}
interface IAmountControl_S {
}
interface IAmountControl$ {
/**
* 提交时是否要超额判断逻辑
* @param DynamicObject 单据页面提交时的元数据
* @return boolean
*
* 扩展示例如下
*
* public class AmountControl implements IAmountControl {
* public boolean cancelAmountControl(DynamicObject dynamicObject) {
* //要超额判断
* return true;
* }
* }
*
*/
cancelAmountControl(dynamicObject:$.kd.bos.dataentity.entity.DynamicObject):boolean;
}
type IAmountControl_T = IAmountControl_S & IAmountControl$;
interface IAmountControl extends IAmountControl_T {
}
interface IChangeReceiveAmount_S {
}
interface IChangeReceiveAmount$ {
/**
* 允许二开在收款信息分录联动结束后,重新计算收款信息分录金额
* 作用于 kd.fi.er.formplugin.daily.web.util.WriteOffMoneyUtils.refreshReceiveAmount
* kd.fi.er.formplugin.daily.web.util.WriteOffMoneyUtils#refreshReceiveAmount
* @param dataModel 页面model
* @param writeOffType 冲销方式
* @return kd.fi.er.business.daily.reimburse.AmountObject对象
*/
afterChangeReciveAmount?(dataModel:$.kd.bos.entity.datamodel.IDataModel,writeOffType:string):any;
/**
* @param view 单据界面
* @return 是否联动收款金额
*
* 扩展示例如下
*
* public boolean isChangeReceiveAmount(IFormView iFormView) {
* return false;
* }
*
*/
isChangeReceiveAmount(view:$.kd.bos.form.IFormView):boolean;
}
type IChangeReceiveAmount_T = IChangeReceiveAmount_S & IChangeReceiveAmount$;
interface IChangeReceiveAmount extends IChangeReceiveAmount_T {
}
interface IReimburseAmount_S {
}
interface IReimburseAmount$ {
/**
* 获取获取在途的已用部门额度
* @param param
* @return
*/
getDeptCurrentInReimbursedAmountBetween(param:$.java.util.Map):$.java.util.List;
/**
* 获取已报销的部门额度
* @param param
* @return
*/
getDeptReimbursedAmountBetween(param:$.java.util.Map):$.java.math.BigDecimal;
/**
* 获取某个部门,某项费用项目,在某个时间区间内已报销的额度详情
* @param param
* @return
*/
getDeptReimbursedAmountDetailBetween(param:$.java.util.Map):$.java.util.List;
/**
* 获取某个员工,某项费用项目,在某个时间区间内 正在报销流程中的单据金额(状态:已提交B,审核中C)
* @param param 额度处理参数key分别为 company 公司 dept/userid 部门或人员id expenseitem 费用项目
* currency 本位币 begindate 开始时间 enddate 结束时间 existids
* @return 额度
*
* 扩展示例如下
*
* public BigDecimal getEmployeeCurrentInReimbursedAmountBetween(Map map) {
* BigDecimal result = BigDecimal.ZERO;
* String amount = ErStdConfig.get("Amont.Ctrl.Ext.Dept");
* result = new BigDecimal(amount);
* if(result == null) {
* result = BigDecimal.ZERO;
* }
* return result;
* }
*
*/
getEmployeeCurrentInReimbursedAmountBetween(param:$.java.util.Map):$.java.math.BigDecimal;
/**
* 获取某个员工,某项费用项目,在某个时间区间内已报销的额度
* @param param
* @return
*/
getEmployeeReimbursedAmountBetween(param:$.java.util.Map):$.java.math.BigDecimal;
/**
* 获取某个员工,某项费用项目,在某个时间区间内已报销的额度详情
* @param param
* @return
*/
getEmployeeReimbursedAmountDetailBetween(param:$.java.util.Map):$.java.math.BigDecimal;
}
type IReimburseAmount_T = IReimburseAmount_S & IReimburseAmount$;
interface IReimburseAmount extends IReimburseAmount_T {
}
interface IAssetentryMustInput_S {
}
interface IAssetentryMustInput$ {
/**
* 返回true时,校验资产报账单资产分录必填,false不校验
* @param bill
* @return
*
* 扩展示例如下
*
* public class AssetentryMustInput implements IAssetentryMustInput {
* @Override
* public Boolean checkAssetEntryMustInput(DynamicObject bill) {
* return Boolean.FALSE;
* }
* }
*
*/
checkAssetEntryMustInput(bill:$.kd.bos.dataentity.entity.DynamicObject):boolean;
}
type IAssetentryMustInput_T = IAssetentryMustInput_S & IAssetentryMustInput$;
interface IAssetentryMustInput extends IAssetentryMustInput_T {
}
}
namespace kd.sdk.fi.er.extpoint.draw{
interface IDrawRuleService_S {
}
interface IDrawRuleService$ {
/**
* 对于标准产品代码里写死的ruleid,允许现场通过此方法修改掉。
* @param srcEntity 上拉的实体
* @param tarEntity 目标实体
* @param tarView 目标view
* @param rows 选择的数据
* @param ruleId 现有的ruleId
* @return 期望的ruleId
*
* 扩展示例如下
*
* public String getRuleId(String srcEntity, String tarEntity, IFormView tarView, ListSelectedRowCollection rows,
* String ruleId) {
* //如果是二开的报销单上拉二开的借款单
* if("4b3z_er_dailyloanbill_inh".equals(srcEntity) && "4b3z_er_dailyreimbursebill_inh".equals(tarEntity)){
* return "123622523888";
* }
* //其他情况走原有规则不动
* return ruleId;
* }
*
*/
getRuleId(srcEntity:string,tarEntity:string,tarView:$.kd.bos.form.IFormView,rows:$.kd.bos.entity.datamodel.ListSelectedRowCollection,ruleId:string):string;
}
type IDrawRuleService_T = IDrawRuleService_S & IDrawRuleService$;
interface IDrawRuleService extends IDrawRuleService_T {
}
}
namespace kd.sdk.fi.er.extpoint.invoicecloud{
interface IAfterHandleBillPool_S {
readonly BIZCODE:string;
}
interface IAfterHandleBillPool$ {
/**
* 金额回写账单池后根据扩展参数二开处理
*
* @param extMap 扩展参数
* @param billingPool 目标账单池对象
*/
handleExtMapAfterAmountBack?(extMap:$.java.util.Map,billingPool:$.kd.bos.dataentity.entity.DynamicObject):void;
/**
* 账单池对象生成后根据扩展参数二开处理
*
* @param extMap 扩展参数
* @param billingPool 目标账单池对象
* @return void
*
* 扩展示例如下
*
* public class Test2 implements IAfterHandleBillPool{
* public void handleExtMapAfterGenBillPool(Map extMap, DynamicObject billingPool) {
* String tt = extMap.get("testKey").toString();
* billingPool.set("testKey",tt);
* }
*
* public void handleExtMapAfterAmountBack(Map extMap, DynamicObject billingPool) {
* String tt = extMap.get("testKey").toString();
* billingPool.set("testKey",tt);
* }
* }
*
*/
handleExtMapAfterGenBillPool?(extMap:$.java.util.Map,billingPool:$.kd.bos.dataentity.entity.DynamicObject):void;
}
type IAfterHandleBillPool_T = IAfterHandleBillPool_S & IAfterHandleBillPool$;
interface IAfterHandleBillPool extends IAfterHandleBillPool_T {
}
interface IBeforeHandleBillPoolParamPrepare_S {
readonly BIZCODE:string;
}
interface IBeforeHandleBillPoolParamPrepare$ {
/**
* 金额回写账单池前扩展参数准备处理
*
* @param sourceBill 来源报销单对象
* @param extMap 扩展参数Map
*/
prepareExtParamBeforeAmountBack?(sourceBill:$.kd.bos.dataentity.entity.DynamicObject,extMap:$.java.util.Map):void;
/**
* 生成账单池前扩展参数准备处理
*
* @param sourceBill 来源报销单对象
* @param extMap 扩展参数Map
* @return void
*
* 扩展示例如下
*
* public class Test1 implements IBeforeHandleBillPoolParamPrepare{
*
* public void prepareExtParamBeforeGenBillPool(DynamicObject sourceBill, Map extMap) {
* extMap.put("testKey","prepareExtParamBeforeGenBillPool");
* }
*
* public void prepareExtParamBeforeAmountBack(DynamicObject sourceBill, Map extMap) {
* extMap.put("testKey","prepareExtParamBeforeAmountBack");
* }
*
* public String prepareSelectPropertiesBeforeAmountBack(Map extMap) {
* return ",testKey,usage";
* }
* }
*
*/
prepareExtParamBeforeGenBillPool?(sourceBill:$.kd.bos.dataentity.entity.DynamicObject,extMap:$.java.util.Map):void;
/**
* 金额回写账单池补充需要处理的账单池字段
*
* @param extMap 扩展参数Map
*/
prepareSelectPropertiesBeforeAmountBack?(extMap:$.java.util.Map):string;
}
type IBeforeHandleBillPoolParamPrepare_T = IBeforeHandleBillPoolParamPrepare_S & IBeforeHandleBillPoolParamPrepare$;
interface IBeforeHandleBillPoolParamPrepare extends IBeforeHandleBillPoolParamPrepare_T {
}
interface AfterSelectInvoice_S {
readonly BIZCODE:string;
}
interface AfterSelectInvoice$ {
/**
* 选择发票后,缓存发票云传回的原始的发票json信息。
* @param jsonFromInvoiceCloud 选择发票后,发票云传回的原始的发票json信息。
* @return
*
* 扩展示例如下 *
* public class AfterSelectInvoiceDemo implements AfterSelectInvoice {
*
* private String jsonFromInvoiceCloud = null;
*
* @Override
* public void cacheJsonFromInvoiceCloud(String jsonFromInvoiceCloud){
* this.jsonFromInvoiceCloud = jsonFromInvoiceCloud;
* }
*
* }
*
*/
cacheJsonFromInvoiceCloud?(jsonFromInvoiceCloud:string):void;
/**
* 标准产品的代码根据发票信息完成发票信息分录、发票明细分录、费用/差旅明细分录等一切界面字段的填充后,调用此方法。* @param view 单据界面的view * @return * *
扩展示例如下 * *
* public class AfterSelectInvoiceDemo implements AfterSelectInvoice {
* private static final Log logger = LogFactory.getLog(AfterSelectInvoiceDemo.class);
*
* // 定义成员变量,缓存cacheJsonFromInvoiceCloud所传入的参数
* private String jsonFromInvoiceCloud = null;
*
* @Override
* public void cacheJsonFromInvoiceCloud(String jsonFromInvoiceCloud){
* logger.info("sdk: 选择发票后,缓存发票云传回的原始的发票json信息: " + jsonFromInvoiceCloud);
* this.jsonFromInvoiceCloud = jsonFromInvoiceCloud;
* }
*
* @Override
* public void finish(IFormView view){
* logger.info("sdk: 标准产品的代码根据发票信息完成发票信息分录、发票明细分录、费用/差旅明细分录等一切界面字段的填充后,调用此方法。");
* // 单据上的发票信息分录
* IDataModel model = view.getModel();
* DynamicObjectCollection invoiceentries = model.getEntryEntity("invoiceentry");
*
* // 发票云返回的原始发票信息
* Map mapFromInvoiceCloud = SerializationUtils.fromJsonString(this.jsonFromInvoiceCloud, Map.class);
* List invoiceInfos = (List)mapFromInvoiceCloud.get("data");
* }
* }
*
*/
finish?(view:$.kd.bos.form.IFormView):void;
}
type AfterSelectInvoice_T = AfterSelectInvoice_S & AfterSelectInvoice$;
interface AfterSelectInvoice extends AfterSelectInvoice_T {
}
}
namespace kd.sdk.fi.er.extpoint.trip{
interface ITripCheckReqBillCloseService_S {
readonly BIZCODE:string;
}
interface ITripCheckReqBillCloseService$ {
/**
* 校验出差申请单是否可以关闭
* @param reqBill 出差申请单
* @param operateKey 操作类型
* @return true 可关闭,false 不可关闭
*/
checkReqBillClose(reqBill:$.kd.bos.dataentity.entity.DynamicObject,operateKey:string):boolean;
}
type ITripCheckReqBillCloseService_T = ITripCheckReqBillCloseService_S & ITripCheckReqBillCloseService$;
interface ITripCheckReqBillCloseService extends ITripCheckReqBillCloseService_T {
}
interface ITripOrderUpdateReimService_S {
readonly BIZCODE:string;
}
interface ITripOrderUpdateReimService$ {
/**
* 订单追加差旅报销单扩展
* @param reim 差旅报销单
*/
orderUpdateReim(reim:$.kd.bos.dataentity.entity.DynamicObject):void;
}
type ITripOrderUpdateReimService_T = ITripOrderUpdateReimService_S & ITripOrderUpdateReimService$;
interface ITripOrderUpdateReimService extends ITripOrderUpdateReimService_T {
}
interface ITripCheckOrderUserStatusService_S {
readonly BIZCODE:string;
}
interface ITripCheckOrderUserStatusService$ {
/**
* 校验订单是否已使用
* @param dynamicObject orderbill
* @return true 已使用,false 未使用
*/
checkOrderUserStatus(dynamicObject:$.kd.bos.dataentity.entity.DynamicObject):boolean;
}
type ITripCheckOrderUserStatusService_T = ITripCheckOrderUserStatusService_S & ITripCheckOrderUserStatusService$;
interface ITripCheckOrderUserStatusService extends ITripCheckOrderUserStatusService_T {
}
}
namespace kd.sdk.fi.fatvs.extpoint.skill{
interface ISkillRunnableExtPlugin_S {
}
interface ISkillRunnableExtPlugin$ {
/**
* 获取技能运行数据
*
* @param runExtContext
* 技能运行数据入参
* @return 技能运行数据
*/
pullData?(runExtContext:SkillRunExtContext):SkillRunExtResult;
/**
* 展示技能使用情况指标
*
* @param indicatorParam
* 技能使用情况指标入参
*/
showSkillIndicator?(indicatorParam:SkillIndicatorParam):void;
/**
* 展示技能运行分析页
*
* @param pageParam
* 技能分析页入参
*/
showSkillRunAnalysisPage?(pageParam:SkillRunAnalysisPageParam):void;
}
type ISkillRunnableExtPlugin_T = ISkillRunnableExtPlugin_S & ISkillRunnableExtPlugin$;
interface ISkillRunnableExtPlugin extends ISkillRunnableExtPlugin_T {
}
interface SkillRunExtResult_S {
}
interface SkillRunExtResult_C extends SkillRunExtResult_S {
new():SkillRunExtResult;
}
interface SkillRunExtResult$ {
getData():$.java.util.List;
getDate():Date;
getEndTime():Date;
getFailCount():number;
getSkillNum():string;
getStartTime():Date;
getTotalCount():number;
setData(data:$.java.util.List):void;
setDate(date:Date):void;
setEndTime(endTime:Date):void;
setFailCount(failCount:number):void;
setSkillNum(skillNum:string):void;
setStartTime(startTime:Date):void;
setTotalCount(totalCount:number):void;
}
type SkillRunExtResult_T = SkillRunExtResult_S & SkillRunExtResult$;
interface SkillRunExtResult extends SkillRunExtResult_T {
}
interface SkillRunAnalysisPageParam_S {
}
interface SkillRunAnalysisPageParam_C extends SkillRunAnalysisPageParam_S {
new():SkillRunAnalysisPageParam;
}
interface SkillRunAnalysisPageParam$ {
getExtParam():$.java.util.Map;
getSkillId():long;
getSkillNum():string;
getView():$.kd.bos.form.IFormView;
setExtParam(extParam:$.java.util.Map):void;
setSkillId(skillId:long):void;
setSkillNum(skillNum:string):void;
setView(view:$.kd.bos.form.IFormView):void;
}
type SkillRunAnalysisPageParam_T = SkillRunAnalysisPageParam_S & SkillRunAnalysisPageParam$;
interface SkillRunAnalysisPageParam extends SkillRunAnalysisPageParam_T {
}
interface SkillIndicatorParam_S {
}
interface SkillIndicatorParam_C extends SkillIndicatorParam_S {
new():SkillIndicatorParam;
}
interface SkillIndicatorParam$ {
getExtParam():$.java.util.Map;
getIndicatorNum():string;
getSkillId():long;
getSkillNum():string;
getView():$.kd.bos.form.IFormView;
setExtParam(extParam:$.java.util.Map):void;
setIndicatorNum(indicatorNum:string):void;
setSkillId(skillId:long):void;
setSkillNum(skillNum:string):void;
setView(view:$.kd.bos.form.IFormView):void;
}
type SkillIndicatorParam_T = SkillIndicatorParam_S & SkillIndicatorParam$;
interface SkillIndicatorParam extends SkillIndicatorParam_T {
}
interface SkillRunExtContext_S {
}
interface SkillRunExtContext_C extends SkillRunExtContext_S {
new():SkillRunExtContext;
}
interface SkillRunExtContext$ {
getEndTime():Date;
getSkillId():long;
getSkillNum():string;
getSkillResult():SkillRunExtResult;
getStartTime():Date;
setEndTime(endTime:Date):void;
setSkillId(skillId:long):void;
setSkillNum(skillNum:string):void;
setSkillResult(skillResult:SkillRunExtResult):void;
setStartTime(startTime:Date):void;
}
type SkillRunExtContext_T = SkillRunExtContext_S & SkillRunExtContext$;
interface SkillRunExtContext extends SkillRunExtContext_T {
}
}
namespace kd.sdk.fi.fca.extpoint{
interface ITranSupBillVoucher_S {
}
interface ITranSupBillVoucher$ {
/**
* 上划处理单凭证号扩展插件
* @param rows 列表数据
* @return void
*
* 扩展示例如下
*
* package kd.tmc.fca.formplugin.transbill;
*
* import kd.bos.dataentity.entity.DynamicObject;
* import kd.bos.dataentity.entity.DynamicObjectCollection;
* import kd.sdk.fi.fca.extpoint.ITranSupBillVoucher;
*
* public class TranSupBillVoucher implements ITranSupBillVoucher {
* @Override
* public void setIVoucher(DynamicObjectCollection rows) {
* ITranSupBillVoucher.super.setIVoucher(rows);
* for(DynamicObject row :rows){
* row.set("description","123456");
* }
* }
* }
*
*/
setIVoucher?(rows:$.kd.bos.dataentity.entity.DynamicObjectCollection):void;
}
type ITranSupBillVoucher_T = ITranSupBillVoucher_S & ITranSupBillVoucher$;
interface ITranSupBillVoucher extends ITranSupBillVoucher_T {
}
}
namespace kd.sdk.fi.fcm.extpoint.checkitem{
interface CheckContext_S {
}
type CheckContext_ST = $.java.io.Serializable & CheckContext_S;
interface CheckContext_C extends CheckContext_ST {
}
interface CheckContext$ {
/**
* 当前业务应用系统简码(非必须)
*/
getBizAppId():string;
/**
* 核算组织ID
*/
getOrgId():long;
/**
* 自定义期间结束时间, 一定不为null
*/
getPeriodEndDate():Date;
/**
* 会计期间ID - 对于具体的应用可能不存在, 视调用方传参而定
*/
getPeriodId():long;
/**
* 自定义期间开始时间, 一定不为null
*/
getPeriodStartDate():Date;
/**
* 插件配置参数 - 用户在配置检查项时进行设置
*/
getPluginDefineParams():$.java.util.Map;
/**
* 结账子业务类型,根据不同的业务系统有不同的主账簿类型
* 总账是账簿类型
* 资产是资产用途
* 应收是政策类型
* 库存是账簿类别
*/
setBizAppId(bizAppId:string):void;
}
type CheckContext_T = $.java.io.Serializable & CheckContext_S & CheckContext$;
interface CheckContext extends CheckContext_T {
}
interface IClosePeriodCheckPlugin_S {
}
interface IClosePeriodCheckPlugin$ {
/**
* 根据指定的结账检查上下文 context,实现特定的业务检查。
*
* Note: 插件必须提供一个无参构造函数,由执行程序通过反射进行调用
*
* @param context 结账检查上下文, 包含检查项定义的信息
* @return 结账检查结果
* @throws Throwable 检查项的逻辑异常
*
* 扩展示例如下 * *
* public class PostChecker implements IClosePeriodCheckPlugin {
* @Override
* public CheckResult execute(CheckContext context) throws Throwable {
* CheckResult result = new CheckResult();
* QFilter post = new QFilter("ispost", "=", "0");
* boolean ispost = checkPost();
* if (!ispost) {
* result.setIsSuccess(true);
* } else {
* QFilter qf = new QFilter("booktype", QCP.equals, Long.valueOf(context.getSubBizAppId()));
* qf.and("ispost", QCP.equals, '0');
* qf.and("period", QCP.equals, context.getPeriodId());
* qf.and("org, QCP.equals, context.getOrgId());
* result.setIsSuccess(false);
* result.setOnlineQueryParams(qf.toSerializedString());
* result.setOnlineViewId("gl_voucher);
* List errorMsg = new ArrayList(1);
* errorMsg.add(ResManager.loadKDString("存在未过账", "VoucherPostChecker_0", "fi-gl-common"));
* result.setMessages(errorMsg);
* }
* return result;
* }
* }
*
*/
execute(context:CheckContext):CheckResult;
}
type IClosePeriodCheckPlugin_T = IClosePeriodCheckPlugin_S & IClosePeriodCheckPlugin$;
interface IClosePeriodCheckPlugin extends IClosePeriodCheckPlugin_T {
}
interface CheckResult_S {
}
type CheckResult_ST = $.java.io.Serializable & CheckResult_S;
interface CheckResult_C extends CheckResult_ST {
new():CheckResult;
}
interface CheckResult$ {
/**
* 是否检查成功, 如果不成功,将会提供联查页面给客户联查
*/
setIsSuccess(success:boolean):void;
/**
* 插件执行过程中返回的消息列表
*/
setMessages(messages:$.java.util.List):void;
/**
* 联查页面数据过滤条件(参数), 该值做为联查页面视图的过滤条件,请确保该联查参数跟联查页面视图是匹配的
*
* 该参数的可能取值类型为:
* 1. 该参数可以为外部URL的查询参数,在onlineViewId
为URL协议开头时, 该参数会拼接到其后面,构成整个联查页面的
* URL, 参见 kd.bos.ext.fi.fcm.mservice.CheckItemDetail#buildExternalUrl()
* 2. 该参数如果为应用内的过滤条件,其为QFilter的序列化字符串
*/
setOnlineQueryParams(onlineQueryParams:string):void;
/**
* 联查页面视图ID, 如果该值为null或empty, 将不会提供联查页面
* 既可以为应用内部的实体entityname, 也可以是外部URL,以http:// 或者https://开头
*/
setOnlineViewId(onlineViewId:string):void;
}
type CheckResult_T = $.java.io.Serializable & CheckResult_S & CheckResult$;
interface CheckResult extends CheckResult_T {
}
}
namespace kd.sdk.fi.fgptas.extpoint.attachment{
interface IPictureAnalysis_S {
}
interface IPictureAnalysis$ {
/**
* 把图片转换后的文本转化成自然语言,并放入提示词中
* @param pictureAnalysisResult
* @return
*/
toPrompt?(pictureAnalysisResult:string):string;
/**
* 把图片转换成文本
* @param attachInfos 所有需要处理的图片信息* AttachmentType clarifyAttachmentType(Map* @param attachInfo 图片信息attachInfo) { * if ("txt".equalsIgnoreCase(attachInfo.get("type")) { * return AttachmentType.TEXT; * } * if ("jpg".equalsIgnoreCase(attachInfo.get("type")) { * return AttachmentType.PICTURE; * } * return null; * } *
* public class AmortExtTest implements IAmountAllocate {
*
* public void dealDestEntries(List>DynamicObject< destEntries, List targetEntries, DynamicObject schemeDyn) {
* destEntries.forEach(destRow->{
* for (DynamicObject targetRow: targetEntries){
* if (destRow.getLong("assgrp_id") == targetRow.getLong("assgrp_id")){
* destRow.set("debitori", targetRow.getBigDecimal("creditori"));
* destRow.set("debitlocal", targetRow.getBigDecimal("creditlocal"));
* }
* }
* });
* }
* }
*
*/
dealDestEntries(destEntries:$.java.util.List,targetEntries:$.java.util.List,schemeDyn:$.kd.bos.dataentity.entity.DynamicObject):void;
}
type IAmountAllocate_T = IAmountAllocate_S & IAmountAllocate$;
interface IAmountAllocate extends IAmountAllocate_T {
}
}
namespace kd.sdk.fi.gl.extpoint.bal{
interface ICFBalCalculator_S {
readonly BIZ_CODE:string;
}
interface ICFBalCalculator$ {
/**
* 删除时事件触发,比如
* ID startperiod endperiod
* 1 120210020 120210040
* 2 120210040 120220050
* 3 120210050 99999999999 当删除ID为1的数据时,会把对应的余额数据的开始期间和结束期间作为参数传递
* @param orgId
* @param bookTypeId
* @param delDemension 被删除的维度
*/
deleteBal(orgId:long,bookTypeId:long,delDemension:$.java.util.List):void;
/**
* 更新余额事件触发,此次发生余额变动的余额的modifytime》=updateTime
* @param orgId
* @param bookTypeId
* @param upadateTime
*/
updateBal(orgId:long,bookTypeId:long,upadateTime:Date):void;
}
type ICFBalCalculator_T = ICFBalCalculator_S & ICFBalCalculator$;
interface ICFBalCalculator extends ICFBalCalculator_T {
}
interface IAcctBalCalculator_S {
readonly BIZ_CODE:string;
}
interface IAcctBalCalculator$ {
/**
* 删除时事件触发,比如
* ID startperiod endperiod
* 1 120210020 120210040
* 2 120210040 120220050
* 3 120210050 99999999999 当删除ID为1的数据时,会把对应的余额数据的开始期间和结束期间作为参数传递
* @param orgId
* @param bookTypeId
* @param delDemension 被删除的维度
*/
deleteBal(orgId:long,bookTypeId:long,delDemension:$.java.util.List):void;
/**
* 更新余额事件触发,此次发生余额变动的余额的modifytime》=updateTime
* @param orgId
* @param bookTypeId
* @param upadateTime
*/
updateBal(orgId:long,bookTypeId:long,upadateTime:Date):void;
}
type IAcctBalCalculator_T = IAcctBalCalculator_S & IAcctBalCalculator$;
interface IAcctBalCalculator extends IAcctBalCalculator_T {
}
}
namespace kd.sdk.fi.gl.extpoint.notice{
interface INoticeVoucherIdsProvider_S {
readonly BIZCODE:string;
}
interface INoticeVoucherIdsProvider$ {
/**
* 不需要过滤,需要返回参数参入的voucherIds。
* @param voucherIds 标准产品需要发送通知单的凭证ids
* @return 扩展插件过滤后需要发送通知单的凭证ids
* 扩展示例如下 *
* package kd.sdk.fi.gl.extpoint.notice;
* import java.util.Set;
* public class NoticeVoucherIdsProviderImpl implements INoticeVoucherIdsProvider{
* @Override
* public Set customFilterVchIds(Set voucherIds) {
* //自定义逻辑
* return voucherIds;
* }}
*
*/
customFilterVchIds(voucherIds:$.java.util.Set):$.java.util.Set;
}
type INoticeVoucherIdsProvider_T = INoticeVoucherIdsProvider_S & INoticeVoucherIdsProvider$;
interface INoticeVoucherIdsProvider extends INoticeVoucherIdsProvider_T {
}
interface INoticeVoucherSourceType_S {
readonly AUTOTRANS_VALUE:string;
readonly BIZCODE:string;
readonly CARRY_OVER:string;
readonly FROMIMPORT:string;
readonly HANDCRAFT_VALUE:string;
readonly MECHANISM_VALUE:string;
readonly OFFSET:string;
readonly PERIOD_END_EXCHANGERATE_ADJUSTMENT_VALUE:string;
readonly PROFIT_AND_LOSS_VALUE:string;
readonly SCAN_VALUE:string;
readonly SCHEMA_VALUE:string;
readonly SYCBOOK:string;
readonly VOUCHERAMORT_VALUE:string;
readonly VOUCHER_REF:string;
}
interface INoticeVoucherSourceType$ {
/**
* 自定义校验接口
* @return 不发送通知单的凭证来源类型集合。目前标准产品结转损益类型的凭证不发通知,无需再控制。
* @throws
*
* 扩展示例如下 *
* package kd.sdk.fi.gl.extpoint.notice;
*
* import java.util.ArrayList;
* import java.util.List;
*
* public class NoticeVoucherSourceTypeCtl implements INoticeVoucherSourceType{
*
* @Override
* public List noSendNoticeSourceType() {
* List sourceTypes = new ArrayList<>(6);
* sourceTypes.add(PERIOD_END_EXCHANGERATE_ADJUSTMENT_VALUE);//来源类型为期末调汇的凭证不发通知单。
* return sourceTypes;
* }
* }
*
*/
noSendNoticeSourceType():$.java.util.List;
}
type INoticeVoucherSourceType_T = INoticeVoucherSourceType_S & INoticeVoucherSourceType$;
interface INoticeVoucherSourceType extends INoticeVoucherSourceType_T {
}
interface INoticeCheck_S {
readonly BIZCODE:string;
}
interface INoticeCheck$ {
/**
* 自定义校验接口
* @param sendList 发送通知单列表,receiveList 接收通知单列表
* @return 是,检查通过,否,检查不通过
* @throws
*
* 扩展示例如下 *
* package hx.fi.gl.extpoint.notice;
* import kd.bos.report.ReportList;
* import kd.sdk.fi.gl.extpoint.notice.INoticeCheck;
*
* public class HxNoticeCHeck implements INoticeCheck {
* public boolean extCheck(ReportList sendList, ReportList receiveList) {
* if(sendList ==null||receiveList==null){
* return false;
* }
* ...
* return false;
* }
* }
*
*/
extCheck(sendList:$.kd.bos.report.ReportList,receiveList:$.kd.bos.report.ReportList):boolean;
}
type INoticeCheck_T = INoticeCheck_S & INoticeCheck$;
interface INoticeCheck extends INoticeCheck_T {
}
}
namespace kd.sdk.fi.gl.extpoint.report{
interface IReportQuery_S {
readonly BIZCODE:string;
}
interface IReportQuery$ {
/**
* 往来对账单扩展
*/
acCheck(standardDataSet:$.kd.bos.algo.DataSet,reportQueryParam:$.kd.bos.entity.report.ReportQueryParam,selectedObj:any):$.kd.bos.algo.DataSet;
/**
* 多组织辅助明细账扩展
*/
auxSubLedger(standardDataSet:$.kd.bos.algo.DataSet,reportQueryParam:$.kd.bos.entity.report.ReportQueryParam,selectedObj:any):$.kd.bos.algo.DataSet;
/**
* 辅助明细账扩展
* @param standardDataSet 标准产品报表查询数据集合
* @param reportQueryParam 报表查询参数
* @param selectedObj 左表选中对象(如有)
* @return 扩展处理后数据集合
*
* 扩展示例如下 *
* import kd.bos.algo.DataSet;
* import kd.bos.entity.report.FilterInfo;
* import kd.bos.entity.report.ReportQueryParam;
*
* public class ExtReportQuery implements IReportQuery{
*
* @Override
* public DataSet subLedger(DataSet standardDataSet, ReportQueryParam reportQueryParam, Object selectedObj) {
* DataSet extDataSet = standardDataSet;
* FilterInfo filter = reportQueryParam.getFilter();
* if(filter.getBoolean("showqty")){
* extDataSet = extDataSet.addField("10L", "cusQty");
* }
* return extDataSet;
* }
*
* @Override
* public DataSet auxSubLedger(DataSet standardDataSet, ReportQueryParam reportQueryParam, Object selectedObj) {
* DataSet extDataSet = standardDataSet;
* return extDataSet;
* }
*
* @Override
* public DataSet acCheck(DataSet standardDataSet, ReportQueryParam reportQueryParam, Object selectedObj) {
* DataSet extDataSet = standardDataSet;
* return extDataSet;
* }
* }
*
*/
subLedger(standardDataSet:$.kd.bos.algo.DataSet,reportQueryParam:$.kd.bos.entity.report.ReportQueryParam,selectedObj:any):$.kd.bos.algo.DataSet;
}
type IReportQuery_T = IReportQuery_S & IReportQuery$;
interface IReportQuery extends IReportQuery_T {
}
interface ReportParam_S {
}
interface ReportParam_C extends ReportParam_S {
new(reportType:ReportParam$ReportType,queryParam:$.kd.bos.entity.report.ReportQueryParam):ReportParam;
}
interface ReportParam$ {
/**
* @return 报表查询的查询参数
*/
getQueryParam():$.kd.bos.entity.report.ReportQueryParam;
/**
* @return 报表类型,用于识别是那张报表
*/
getReportType():ReportParam$ReportType;
}
type ReportParam_T = ReportParam_S & ReportParam$;
interface ReportParam extends ReportParam_T {
}
enum ReportParam$ReportType {
UNSUPPORTED,
SUB_LEDGER,
SUBSI_DIARY_LEDGER,
AUX_SUB_LEDGER,
GENERAL_LEDGER,
MULTI_COLUMN_ACCOUNT
}
interface IReportRowHideSpi_S {
readonly BIZCODE:string;
}
interface IReportRowHideSpi$ {
/**
* @param param 报表查询上下文
* @param rowType 行类型
* @return 返回Ture则隐藏该报表查询结果集中对应rowType的所有列
*
* 扩展示例如下 *
* package kd.sdk.fi.gl.extpoint.report;
*
* import kd.bos.algo.DataSet;
* import kd.bos.entity.report.FilterInfo;
*
* public class SummaryFilter implements IReportRowHideSpi {
*
* @Override
* public Boolean needHide(ReportParam param, RowType rowType) {
* switch (param.getReportType()) {
* case SUB_LEDGER:
* FilterInfo filter = param.getQueryParam().getFilter();
* if(!filter.getBoolean("showsummary")) {
* //明细分类账过滤本期合计
* return rowType == RowType.ROW_TYPE_BEGIN;
* }
* break;
* case AUX_SUB_LEDGER:
* case SUBSI_DIARY_LEDGER:
* break;
* }
* return false;
* }
* }
*
*/
needHide(param:ReportParam,rowType:RowType):boolean;
}
type IReportRowHideSpi_T = IReportRowHideSpi_S & IReportRowHideSpi$;
interface IReportRowHideSpi extends IReportRowHideSpi_T {
}
enum RowType {
ROW_TYPE_BEGIN,
ROW_TYPE_LEAF,
ROW_TYPE_DAILY,
ROW_TYPE_PERIOD,
ROW_TYPE_YEAR,
ROW_TOTAL_SUMMARY
}
interface IReportColumnSetting_S {
readonly BIZCODE:string;
}
interface IReportColumnSetting$ {
/**
* 科目余额表
* @param columns 报表列集合
* @param reportQueryParam 界面查询参数
* @return
*/
acctBal(columns:$.java.util.List,reportQueryParam:$.kd.bos.entity.report.ReportQueryParam):void;
/**
* 核算维度余额表
* @param columns 报表列集合
* @param reportQueryParam 界面查询参数
* @return
*/
assistBal(columns:$.java.util.List,reportQueryParam:$.kd.bos.entity.report.ReportQueryParam):void;
/**
* 总分类账
* @param columns 报表列集合
* @param reportQueryParam 界面查询参数
* @return
*/
generalLedger(columns:$.java.util.List,reportQueryParam:$.kd.bos.entity.report.ReportQueryParam):void;
}
type IReportColumnSetting_T = IReportColumnSetting_S & IReportColumnSetting$;
interface IReportColumnSetting extends IReportColumnSetting_T {
}
}
namespace kd.sdk.fi.gl.extpoint.syncbookvch{
interface AccountAssgrpMappingParam_S {
}
interface AccountAssgrpMappingParam_C extends AccountAssgrpMappingParam_S {
new(srcBookId:long,tarBookId:long):AccountAssgrpMappingParam;
}
interface AccountAssgrpMappingParam$ {
getSrcBookId():long;
getTarBookId():long;
}
type AccountAssgrpMappingParam_T = AccountAssgrpMappingParam_S & AccountAssgrpMappingParam$;
interface AccountAssgrpMappingParam extends AccountAssgrpMappingParam_T {
}
interface IAccountAssgrpMapping_S {
readonly BIZ_CODE:string;
}
interface IAccountAssgrpMapping$ {
/**
* @param param 映射关系表依赖的参数
* @return 二开自定义的科目映射关系List
*/
dealMapping(param:AccountAssgrpMappingParam):$.java.util.List;
}
type IAccountAssgrpMapping_T = IAccountAssgrpMapping_S & IAccountAssgrpMapping$;
interface IAccountAssgrpMapping extends IAccountAssgrpMapping_T {
}
}
}
}
export {};