位置: IT常识 - 正文

泛微E9二次开发,对接金蝶云星空,数据同步,表单同步。(泛微oa二次开发难吗)

编辑:rootadmin
泛微E9二次开发,对接金蝶云星空,数据同步,表单同步。 文章目录泛微E9二次开发,对接金蝶云星空一、搭建开发环境,引入相关依赖一、创建项目二、配置javaSDK三、配置项目依赖四、编写测试代码五、配置编译六、resin远程debug配置二、开发部署1.编写自定义方法, 必须实现 必须实现接口weaver.interfaces.workflow.action方法public String execute(RequestInfo request);2.将文件上传至服务器D:\WEAVER\ecology\classbean\weaver\interfaces\workflow\action目录;3.在后台,新增自定义接口;4.在后台 流程引擎-路径管理-路径设置, 找到对应流程,选中流程;5.代码更新操作三、代码示例1.流程自定义接口动作(action)2.自定义Action Demo3.采购订单的同步3.ERP对接总结泛微E9二次开发,对接金蝶云星空

推荐整理分享泛微E9二次开发,对接金蝶云星空,数据同步,表单同步。(泛微oa二次开发难吗),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:泛微oa二次开发经验分享,泛微oa系统二次开发用什么语言,泛微 e9 二次开发,泛微oa二次开发经验分享,泛微二次开发所需要的知识,泛微二次开发所需要的知识,泛微 e9 二次开发,泛微 e9 二次开发,内容如对您有帮助,希望把文章链接给更多的朋友!

泛微E9二次开发,对接金蝶云星空,可以同步采购订单,付款申请单,收料通知单等等: 泛微E9二次开发,对接金蝶云星空,数据同步,表单同步。超详细,需要的jar包文档,可以在我的主页找到资源下载。

一、搭建开发环境,引入相关依赖

可以按照此链接步骤操作:ecology后端开发环境搭建

一、创建项目

1、新建项目:File->New->Project 2、选择java项目 3、下一步:Next 4、继续下一步:Next,并输入项目名字之后点击Finish

二、配置javaSDK

ecology开发推荐使用idea

1、进入项目设置File-Project Structure 2、点击SDKs->+,添加jdk1.8(e9依赖的版本) 3、点击project,分别选择Project SDK为1.8、、Project language level为SDK default 8

三、配置项目依赖

1、进入项目设置:File->Project Structure 2、添加依赖库:Libaries->±>java 3、找到要调试的ecology demo环境,分别引入以下路径的包

ecology/classbeanecology/web-inf/libresin4/lib

注:可以去服务器上找到相关的依赖 4、添加完之后点击Apply

四、编写测试代码

1、点击src右键->new->Package 2、右键点击包名->new->Java,注意包名带有impl层级,才可支持无侵入注解解析 3、测试代码如下:

package com.api.cs.test20200529.service.impl;import com.weaverboot.frame.ioc.anno.classAnno.WeaIocReplaceComponent;import com.weaverboot.frame.ioc.anno.methodAnno.WeaReplaceAfter;import com.weaverboot.frame.ioc.anno.methodAnno.WeaReplaceBefore;import com.weaverboot.frame.ioc.handler.replace.weaReplaceParam.impl.WeaAfterReplaceParam;import com.weaverboot.frame.ioc.handler.replace.weaReplaceParam.impl.WeaBeforeReplaceParam;import com.weaverboot.tools.logTools.LogTools;@WeaIocReplaceComponentpublic class Test { @WeaReplaceBefore(value = "/api/workflow/reqlist/splitPageKey",order = 1,description = "测试拦截前置") public void beforeTest(WeaBeforeReplaceParam weaBeforeReplaceParam){ //一顿操作 LogTools.info("before:/api/workflow/reqlist/splitPageKey"); } @WeaReplaceAfter(value = "/api/workflow/reqlist/splitPageKey",order = 1,description = "测试拦截后置") public String after(WeaAfterReplaceParam weaAfterReplaceParam){ String data = weaAfterReplaceParam.getData();//这个就是接口执行完的报文 LogTools.info("after:/api/workflow/reqlist/splitPageKey");// LogTools.info(data); return data; }}五、配置编译

1、进入项目设置:File->Project Structure 2、进入Artifacts->±>JAR->Empty 3、修改Name,这里要注意的是如果要支持无侵入注解解析,jar包名称必须包含下划线前缀,类似示例的写法 4、修改jar包输出目录(output directory)到以下目录

ecology/web-inf/lib

5、添加src输出内容到jar包,点击Apply 6、选择build->Build Artifacts 7、点击build,即可完成编译 8、到系统中查看编译结果

六、resin远程debug配置泛微E9二次开发,对接金蝶云星空,数据同步,表单同步。(泛微oa二次开发难吗)

ecology开发推荐使用idea,idea版权归属:JetBrains 特别提示:调试模式禁止使用到生产系统,必须是开发环境

1、进入resin配置文件:resin4/config/resin.properties 修改jvm_args

jvm_args : -Xdebug -Xrunjdwp:transport=dt_socket,address=9081,server=y,suspend=n -Dcom.sun.management.jmxremote -Xloggc:/var/log/gc.log -Xmx1550m -Xms1550m -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+DisableExplicitGCjvm_mode : -server

2、添加中间件连接 3、添加±>Resin->Remote远程服务,分别输入ec服务地址URL、远程Resin调试端口Port 4、选择configure,选择resin home 5、添加jar包 6、选择之前定义的Artifacts,点击Apply保存 7、如果是同一个系统内,选择 8、切换Startup/Connection,修改Debug->port为resin的远程调试端口 9、services中启动debug 10、到指定页面刷新(本示例是待办页面),成功进入断点,debug配置成功

二、开发部署1.编写自定义方法, 必须实现 必须实现接口weaver.interfaces.workflow.action方法public String execute(RequestInfo request);

注: 写好的类需要编译为class 文件;

2.将文件上传至服务器D:\WEAVER\ecology\classbean\weaver\interfaces\workflow\action目录;

3.在后台,新增自定义接口;

3.1 接口动作类文件填写 classbean 下文件路径; 在后台 集成中心-流程流转集成, 注册自定义接口;

4.在后台 流程引擎-路径管理-路径设置, 找到对应流程,选中流程;

4.1. 在右侧 流转设置-节点信息, 点击对应节点的 节点前后附加操作按钮; 4.2 弹出窗口中, 选择 外部接口tab, 接口来源 选择 自定义创建的接口; 4.3 点击确定 保存;

5.代码更新操作

5.1 重新编译文件; 5.2 将编译后的class 文件上传至服务器对应路径;

三、代码示例1.流程自定义接口动作(action)

一、接口说明 该接口主要实现在流程的流转当中,实时通过自定义的动作去操作异构系统的数据或者处理其他一些特定的业务,在流程的节点后、出口和节点前都可以定义这样的自定义动作。

二、实现方法&步骤 实现weaver.interfaces.workflow.action. Action接口即可

//接口定义如下:import weaver.soa.workflow.request.RequestInfo;public interface Action { public static final String SUCCESS="1"; /** * 失败信息,返回此信息,如果是节点前附加操作,将会阻止流程提交 */ public static final String FAILURE_AND_CONTINUE = "0"; public String execute(RequestInfo request);}2.自定义Action Demo

代码如下(示例):

package test.service.impl;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import kingdee.bos.webapi.client.K3CloudApiClient;import weaver.general.BaseBean;import weaver.general.Util;import weaver.interfaces.workflow.action.Action;import weaver.soa.workflow.request.*;import weaver.hrm.User;public class DemoAction implements Action { private Log log = LogFactory.getLog(DemoAction.class.getName()); private String p1; // 自定义参数1 private String p2; // 自定义参数2public String getP1() {return p1;}public void setP1(String p1) {this.p1 = p1;}public String getP2() {return p2;}public void setP2(String p2) {this.p2 = p2;}public Log getLog() {return log;}public void setLog(Log log) {this.log = log;}public String execute(RequestInfo requestinfo) {System.out.println("进入Action requestid=" + requestinfo.getRequestid());String requestid = requestinfo.getRequestid();// 请求IDString requestlevel = requestinfo.getRequestlevel();// 请求紧急程度String src = requestinfo.getRequestManager().getSrc(); // 当前操作类型submit:提交/reject:退回String workflowid = requestinfo.getWorkflowid();// 流程路径IDString tablename = requestinfo.getRequestManager().getBillTableName();// 表单主表名称int billid = requestinfo.getRequestManager().getBillid();// 表单数据IDUser usr = requestinfo.getRequestManager().getUser();// 获取当前操作用户对象String requestname = requestinfo.getRequestManager().getRequestname();// 请求标题String remark = requestinfo.getRequestManager().getRemark();// 当前用户提交时的签字意见int formid = requestinfo.getRequestManager().getFormid();// 表单IDint isbill = requestinfo.getRequestManager().getIsbill();// 是否是自定义表单//取主表数据Property[] properties = requestinfo.getMainTableInfo().getProperty();// 获取表单主字段信息for (int i = 0; i < properties.length; i++) {String name = properties[i].getName();// 主字段名称String value = Util.null2String(properties[i].getValue());// 主字段对应的值System.out.println(name + " " + value);log.info(name + " " + value);}// 取明细数据DetailTable[] detailtable = requestinfo.getDetailTableInfo().getDetailTable();// 获取所有明细表if (detailtable.length > 0) {for (int i = 0; i < detailtable.length; i++) {DetailTable dt = detailtable[i];// 指定明细表Row[] s = dt.getRow();// 当前明细表的所有数据,按行存储for (int j = 0; j < s.length; j++) {Row r = s[j];// 指定行Cell c[] = r.getCell();// 每行数据再按列存储for (int k = 0; k < c.length; k++) {Cell c1 = c[k];// 指定列String name = c1.getName();// 明细字段名称String value = c1.getValue();// 明细字段的值System.out.println(name + " " + value);log.info(name + " " + value);}}}}// 调用ERP接口 单元测试代码// public static void main(String[] args) {// String res = "";// Boolean loginResult = false;// K3CloudApiClient client = new K3CloudApiClient("http://119.23.xx.xx/k3cloud/");// try {// loginResult = client.login("612112883069f0","134xxxx0349","JG2xxxxx10",2xxx);// res = client.view("BD_Currency","{\"CreateOrgId\":0,\"Number\":\"PRE001\"}");// } catch (Exception e) {// e.printStackTrace();// }//// System.out.println("test202201174_1" + client);// System.out.println("test202201174_2" + loginResult);// System.out.println(res.getClass().getSimpleName());// System.out.println("test202201174_3" + res);//// }//控制流程流转,增加以下两行,流程不会向下流转,表单上显示返回的自定义错误信息,这个控制只支持节点后附加操作requestinfo.getRequestManager().setMessageid("错误信息编号");//126221requestinfo.getRequestManager().setMessagecontent("返回自定义的错误信息");System.out.println("Action执行完成 传入参数p1=" + this.getP1() + " p2="+ this.getP2());log.info("Action执行完成 传入参数p1=" + this.getP1() + " p2="+ this.getP2());return SUCCESS;// return返回固定返回`SUCCESS`////如果E8的版本是1604,也可以使用下面的代码进行控制,支持节点后、节点前、出口,注意必须返回 FAILURE_AND_CONTINUE;//requestinfo.getRequestManager().setMessagecontent("返回自定义的错误信息");//return FAILURE_AND_CONTINUE;}}3.采购订单的同步

代码如下(示例):

package weaver.interfaces.workflow.action;import com.google.gson.Gson;import com.kingdee.bos.webapi.entity.RepoRet;import kingdee.bos.webapi.client.K3CloudApiClient;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import weaver.general.BaseBean;import weaver.general.Util;import weaver.interfaces.workflow.action.Action;import weaver.soa.workflow.request.*;/** * 自定义采购订单的action接口 */public class ActionERPCGDD extends BaseBean implements Action { @Override public String execute(weaver.soa.workflow.request.RequestInfo requestInfo) { // 日志 Log log = LogFactory.getLog(this.getClass()); // 获取主表信息 Property[] properties = requestInfo.getMainTableInfo().getProperty();/* for (int i = 0; i < properties.length; i++) { String name = properties[i].getName();// 主字段名称 String value = Util.null2String(properties[i].getValue());// 主字段对应的值 log.info(name + " " + value); writeLog(name + " " + value); System.out.println("获取单据头的信息:" + name + " " + value); }*/ String json_main; String json_sublist; String json1 = ""; String json2 = ""; // 获取所有明细表 DetailTable[] detailtable = requestInfo.getDetailTableInfo().getDetailTable(); if (detailtable.length > 0) { for (int i = 0; i < detailtable.length; i++) { DetailTable dt = detailtable[i];// 指定明细表 Row[] s = dt.getRow();// 当前明细表的所有数据,按行存储 for (int j = 0; j < s.length; j++) { Row r = s[j];// 指定行 Cell c[] = r.getCell();// 每行数据再按列存储/* for (int k = 0; k < c.length; k++) { Cell c1 = c[k];// 指定列 String name = c1.getName();// 明细字段名称 String value = c1.getValue();// 明细字段的值 log.info(name + " " + value); writeLog(name + " " + value); System.out.println("获取单据体的信息:" + name + " " + value); }*/ //如果遍历的是第一个单据体 if(i==0) { Double TaxRate =Double.valueOf(c[0].getValue()); json_main = " \n{\n" + " \"FMaterialId\": {\n" + //物料编码 " \"FNumber\": \"" + Util.null2String(c[4].getValue()) + "\"\n" + " },\n" + " \"FQty\": " + Util.null2String(c[14].getValue()) + ",\n" + //采购数量 " \"FTaxPrice\":" + Util.null2String(c[7].getValue()) + ", \n" + //含税单价 " \"F_RCZU_YT\":\"" + Util.null2String(c[13].getValue()) + "\",\n" + //设备型号 用途 " \"FDeliveryDate\":\"" + Util.null2String(c[11].getValue()) + "\",\n" + //订单交货日期 " \"FEntryTaxRate\":" +TaxRate+ ", \n" + //税率 " \"FEntrySettleOrgId\": {\n" + //结算组织 " \"FNumber\": \"" + Util.null2String(c[1].getValue()) + "\"\n" + " }\n" + " },"; json1 += json_main; } //如果遍历第二个单据体 Util.null2String(c[3].getValue())==0 true else if (i==1){ //定义一个变量来控制是否预付款 Boolean flag= null; if (Util.null2String(c[4].getValue()).equals("0")){ flag=true; }else if (Util.null2String(c[4].getValue()).equals("1")) { flag=false; } //应付比例 需要的是小数 Double proportion=Double.valueOf(Util.null2String(c[2].getValue()))/100; json_sublist= " \n{\n" + " \"FISPREPAYMENT\":"+flag+",\n" + //是否预付 布尔值 " \"FRemarks\":\""+ Util.null2String(c[0].getValue()) +"\",\n" + //备注 " \"FYFAMOUNT\":\""+ Util.null2String(c[3].getValue()) +"\",\n" + //应付金额 Integer " \"FYFRATIO\":"+proportion+"\n" + //应付比例(%) Integer " },"; json2 += json_sublist; } } } //获取主单据体的长度 int json1_l=json1.length(); //截取遍历完成的”,“ json1=json1.substring(0,json1_l-1); //获取子单据体的长度 int json2_l=json2.length(); //截取遍历完成的”,“ json2=json2.substring(0,json2_l-1); } String json="{\n" + " \"IsAutoSubmitAndAudit\": \"true\",\n" + //是否自动提交审核 " \"NeedUpDateFields\": [],\n" + //需要更新的字段 " \"NeedReturnFields\": [],\n" + //需返回结果的字段集合 " \"IsDeleteEntry\": true,\n" + //是否删除已存在的分录 " \"SubSystemId\": \"\",\n" + //子系统id " \"IsVerifyBaseDataField\": false,\n" + //是否验证基本数据字段 " \"IsEntryBatchFill\": true,\n" + //是否单据体批量填写 " \"ValidateFlag\": true,\n" + //生效日期 " \"NumberSearch\": true,\n" + //是否用编码搜索基础资料 " \"IsAutoAdjustField\": true,\n" + //是否自动调整字段 " \"InterationFlags\": \"\",\n" + //交互影响的标记 " \"IgnoreInterationFlag\": \"\",\n" + //忽略交互标志 " \"IsControlPrecision\": false,\n" + //是否控制精度 " \"ValidateRepeatJson\": false,\n" + //验证日期重复Json " \"Model\": {\n" + " \"FPurchaseOrgId\": {\n" + //采购组织 " \"FNumber\": \""+Util.null2String(properties[1].getValue())+"\"\n" + " },\n" + " \"FSupplierId\": {\n" + //供应商 " \"FNumber\": \""+Util.null2String(properties[18].getValue())+"\"\n" + " },\n" + " \"F_RCZU_ReDepartment\": {\n" + //需求部门 " \"FNumber\": \""+Util.null2String(properties[2].getValue())+"\"\n" + " },\n" + " \"FPurchaserId\": {\n" + //采购员 " \"FNumber\": \""+2010003036+"\"\n" + " },\n" + " \"FDate\": \""+Util.null2String(properties[6].getValue())+"\",\n" + //采购日期 " \"FBillTypeID\": {\n" + //单据类型 " \"FNumber\": \"CGDD04_SYS\"\n" + " },\n" + " \"F_RCZU_mindep\": {\n" + //归口管理部门 " \"FNumber\": \""+Util.null2String(properties[4].getValue())+"\"\n" + " },\n" + " \"F_RCZU_ECOS\": \""+Util.null2String(properties[0].getValue())+"\",\n" + //E-COS流程编号 " \"FPOOrderFinance\": {\n" + //单据头-财务信息 /* " \"FExchangeRate\": \"1\",\n" + //汇率*/ " \"FPriceTimePoint\": \"1\",\n" + //定价时点 " \"FSettleCurrId\": {\n" + //结算币别 " \"FNumber\": \""+Util.null2String(properties[17].getValue())+"\"\n" + " },\n" + " \"F_RCZU_Assistant\": {\n" + //在建工程名称 " \"FNumber\": \""+Util.null2String(properties[15].getValue())+"\"\n" + " },\n" + " \"FPayConditionId\": {\n" + //付款条件 " \"FNumber\": \""+Util.null2String(properties[7].getValue())+"\"\n" + " }\n" + " },\n" + " \"FPOOrderEntry\": [\n" + //单据体-明细信息 //经过上边遍历,此处获得主明细表的数据 json1+ " \n],\n" + " \"FIinstallment\":[\n" + //付款计划 子单据体 json2+ " \n]\n"+ " }\n" + "}"; // 调用ERP接口 String resultJson = ""; Boolean loginResult = false; //设置初始值默认登录成功 String action=SUCCESS; K3CloudApiClient client = new K3CloudApiClient("http://10.XX.XX.22/k3cloud/"); try { loginResult = client.login("账套ID", "用户名", "密码", 2052); // 判断登录成功就调用ERP相应方法 if (loginResult) { // 具体参数和调用方法参见 https://openapi.open.kingdee.com/ApiCenterDoc resultJson = client.save("PUR_PurchaseOrder", json); }else { System.out.println("loginResult:"+"登录失败"); action=FAILURE_AND_CONTINUE; }/* //用于记录结果 Gson gson = new Gson(); //对返回结果进行解析和校验 RepoRet repoRet = gson.fromJson(resultJson, (Type) RepoRet.class); if (repoRet.getResult().getResponseStatus().isIsSuccess()) { System.out.printf("接口返回结果: %s%n", gson.toJson(repoRet.getResult())); action=SUCCESS; } else { fail("接口返回结果: " + gson.toJson(repoRet.getResult().getResponseStatus())); action=FAILURE_AND_CONTINUE; }*/ } catch (Exception e) { log.info("错误信息:" + e); e.printStackTrace(); } return action; }}3.ERP对接

云星空文档: 金蝶API文档 或者登录管理员账号,搜索WebAPI;

3.1引入 K3CloudApiClient 包; 3.2实例化 client; 3.3执行登录动作; 3.4判断登录经过为 true , 执行余下动作;

Demo// 查看client.View("BD_Account","{"CreateOrgId":0,"Number":"","Id":""}");// 保存client.Save("BD_Account","{"NeedUpDateFields":[],"NeedReturnFields")// 审核 client.ExcuteOperation("BD_Account","Forbid","{"CreateOrgId":0,"Numbers":[],"Ids":"","PkEntryIds":[],"NetworkCtrl":""}");// 反审client.UnAudit("BD_Account","{"CreateOrgId":0,"Numbers":[],"Ids":"","InterationFlags":"","NetworkCtrl":"","IsVerifyProcInst":""}");... 更多执行参见 金蝶云星空官方文档 https://openapi.open.kingdee.com/ApiCenterDoc或者登录管理员账号,搜索WebAPI总结

以上就是泛微E9对接金蝶云星空的方法,同步表单,注意如果同步多张表单到金蝶ERP中,注意ERP中的表单关联关系。

本文链接地址:https://www.jiuchutong.com/zhishi/294613.html 转载请保留说明!

上一篇:elementUI使用el-upload上传文件写法总结及避坑,上传图片/视频到本地/服务器以及回显+删除(vue中elementui怎么用)

下一篇:php+redis实现注册、删除、编辑、分页、登录、关注等功能示例(php redis常用命令)

  • 小黑盒买的cdkey在哪(小黑盒买的cdkey安全吗)

    小黑盒买的cdkey在哪(小黑盒买的cdkey安全吗)

  • 微信读书是什么软件(微信读书是什么时候推出的)

    微信读书是什么软件(微信读书是什么时候推出的)

  • iphone快充响两声(iphone快充响两声间隔)

    iphone快充响两声(iphone快充响两声间隔)

  • 景深摄像头是什么意思(景深摄像头是凑数的吗)

    景深摄像头是什么意思(景深摄像头是凑数的吗)

  • 电脑内存不足可以加硬盘吗(电脑内存不足可以恢复出厂设置吗)

    电脑内存不足可以加硬盘吗(电脑内存不足可以恢复出厂设置吗)

  • 手机充电次数(手机充电次数是什么意思)

    手机充电次数(手机充电次数是什么意思)

  • 微信打开文件闪退是什么原因(微信一点文件就闪退)

    微信打开文件闪退是什么原因(微信一点文件就闪退)

  • 钉钉被对方拉黑是什么表现(钉钉被对方拉黑怎么发消息)

    钉钉被对方拉黑是什么表现(钉钉被对方拉黑怎么发消息)

  • 华为录屏快捷键怎么弄出来(华为录屏快捷键怎么设置)

    华为录屏快捷键怎么弄出来(华为录屏快捷键怎么设置)

  • blued拍照认证通过后别人能看到吗(blued认证一直没反应)

    blued拍照认证通过后别人能看到吗(blued认证一直没反应)

  • 钢化膜贴歪了怎么办(钢化膜贴歪了怎么修复)

    钢化膜贴歪了怎么办(钢化膜贴歪了怎么修复)

  • 苹果手机频繁跳出中国移动(苹果手机频繁跳出欢迎使用中国移动)

    苹果手机频繁跳出中国移动(苹果手机频繁跳出欢迎使用中国移动)

  • 新买的ipad2018要贴膜吗(新买的ipad需要做什么)

    新买的ipad2018要贴膜吗(新买的ipad需要做什么)

  • 快手作品怎能隐藏歌名(快手作品怎么隐藏起来)

    快手作品怎能隐藏歌名(快手作品怎么隐藏起来)

  • 手机可以登录网银吗(手机可以登录网页版淘宝吗)

    手机可以登录网银吗(手机可以登录网页版淘宝吗)

  • 应用与数据在哪里打开(苹果14应用与数据在哪)

    应用与数据在哪里打开(苹果14应用与数据在哪)

  • 搜狗输入法自动搜索关闭(搜狗输入法自动计算怎么设置)

    搜狗输入法自动搜索关闭(搜狗输入法自动计算怎么设置)

  • 华为mate30和mate20区别(华为mate30和mate20屏幕大小)

    华为mate30和mate20区别(华为mate30和mate20屏幕大小)

  • 苹果11怎么设置闪光灯(苹果11怎么设置铃声)

    苹果11怎么设置闪光灯(苹果11怎么设置铃声)

  • 微博我的访问记录怎么删除不了(微博我的访问记录仅自己可见什么意思)

    微博我的访问记录怎么删除不了(微博我的访问记录仅自己可见什么意思)

  • 华为p30待机时间多长(华为mate50待机多久)

    华为p30待机时间多长(华为mate50待机多久)

  • 学校一体机童锁怎么解(学校一体机童锁密码)

    学校一体机童锁怎么解(学校一体机童锁密码)

  • vivo怎么调大内存(vivo怎么放大屏幕)

    vivo怎么调大内存(vivo怎么放大屏幕)

  • iphone6提速技巧(苹果6如何提升速度)

    iphone6提速技巧(苹果6如何提升速度)

  • 苹果6s微信怎么更新(苹果6s微信怎么分身)

    苹果6s微信怎么更新(苹果6s微信怎么分身)

  • 笔记本颜色怎么调(笔记本颜色怎么调亮)

    笔记本颜色怎么调(笔记本颜色怎么调亮)

  • pandas中Series常见属性有哪些?(pandas常用)

    pandas中Series常见属性有哪些?(pandas常用)

  • 一般纳税人的进销项税怎么做分录
  • 招聘只招一个人
  • 环保税计税依据怎么算
  • 网银年费怎么做会计分录的
  • 现金预算表制造费用怎么填
  • 增值税发票可以抵扣多少
  • 投资理财产品怎么选
  • 按利润总额的25%计算应交所得税
  • 应交税费未交增值税借方余额表示什么
  • 研发支出转入管理费用摘要
  • 年度所得税汇算清缴报告在哪打印
  • 营改增后挂靠开票作收入吗?
  • 厂房租赁税率是房东交的吗
  • 虚开进项税额转出会计分录
  • 房地产公司成立时间
  • 五险一金缴税基数
  • 附加税费计提表
  • 讲师费发票开票科目
  • 冲回累计折旧
  • 工地开工购买的鞭炮怎么入账
  • 差旅费的会计处理
  • 固定资产丢失进项税需要转出吗
  • 不予抵扣的进项税额是什么意思
  • mac电脑command+s
  • linux 传输文件
  • linux shell语句
  • win10新版本21h1
  • php字符串型数据的定义方式
  • 有形动产融资租赁增值税即征即退政策
  • 未分配利润转增股本交印花税
  • 怎么检查当年的核酸结果
  • 葡萄酒企业已纳税多少
  • vue运行报错怎么解决
  • 会计科目结构什么意思
  • 税收返还会计处理办法
  • 研发费用加计扣除的条件
  • 企业合并兼并收购的区别和联系
  • dedecms建站
  • 关联企业无息借款如何征税?
  • 受托代销商品的手续费计入什么科目
  • 工会活动个人奖励标准
  • 工程结算的会计分录
  • 专项储备 科目
  • 工程完工后的质保金怎么入账
  • 现金日记账退款怎么记账
  • 支付政协扶贫款怎么做账
  • 加油票和过桥过路费怎么做账
  • 增量成本属于什么成本
  • 因产品不合格退货流程
  • 民办幼儿园的经费投入
  • 年末递延所得税资产的账面余额
  • 销项税现金流量附表如何指定
  • 增值税普通发票查询
  • 根据企业会计准则第4号固定资产,企业可选用的折旧方法
  • 什么是增值税
  • 管理费用包括哪些税
  • 听妈妈讲那过去的事情讲课
  • 记账凭证制作流程
  • 生产费用总分类核算的程序包括
  • sql server数据库恢复
  • win1 开机启动
  • ubuntu 添加开机启动
  • linux详解
  • Win10 Mobile 10572预览版新增中文简体五笔输入法
  • 如何让电脑启动更快
  • linux开机流程详解
  • centos打包文件
  • Androidannotation使用之@Rest获取资源及用户登录验证(一)
  • perl语言基本命令
  • android studio打包jar文件
  • node js入门
  • 在Linux下用scp复制文件无需输入密码的技巧
  • js移动端拖拽
  • jquery增删改查方法
  • python enumeration
  • 教程java
  • js怎么设置图片大小
  • 利用python进行
  • 向境外付款需要代扣代缴所得税吗
  • 苏州税务实名认证流程小程序
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设