智税集成2.0生成凭证

:::info
💡 整体业务流程
从A9服务器中取数,生成列表数据,写入到对方oracle数据库中。
:::

项目关键点

1.连接数据库

  1. 左连接连接本地SQLserver数据库、右连接要链接A9开票服务器的数据库
  2. 然后设想用SQLserver 自带的外部连接来连接oracle数据库。
<add key="RConnectionString" value="Provider=PostgreSQL OLE DB Provider;Password=AiSinO_618;User ID=fwkp_320901999999116_0;Data Source=192.168.2.153;Location=fwkp_320901999999116_0" />

微信图片_20231213143732.png

用外部连接连接oracle数据库

2.用语句验证取数

  1. 获取A9开票服务器数据
SELECT 
':sClientNo' as imTaxMachineNo, 
d.fpmxxh AS idIndex, 
m.fpdm || '-' || m.fphm AS imID, 
m.fpdm || '-' || m.fphm AS imsaleIDlist, 
's' AS imType, 
m.gfmc AS imCrpName, 
'' AS imCrpTaxNo, 
'' AS imCrpAddrTel, 
'' AS imCrpBankNo,
to_char(m.kprq,'YYYY-MM-DD') as imdate,
m.bz AS imremark, 
'' AS imOper, 
'' AS imChecker, 
'' AS imPayee, 
''AS imTaxrate, 
d.spmc as idgoodsname,
d.ggxh AS idModal, 
d.jldw AS idUnit, 
d.sl AS idCount, 
d.dj AS idPrice, 
cast(d.je as VARCHAR) AS idMoney, 
cast(d.se as VARCHAR) AS idTaxMoney, 
0 AS imIncludeTaxFlg, 
0 AS idMoneyIncludeTaxFlg, 
0 AS idPriceIncludeTaxFlg, 
d.flbm  AS idGoodsNo, 
cast (d.slv as numeric(20,2))*cast(100 as numeric(20,2))  AS idTaxRate,
m.gfmc as  idDefine7,
'' as  idDefine8, 
m.fphm  AS imSaleNo, 
m.fpdm || '-' || m.fphm   AS imSaleID, 
m.fpdm || '-' || m.fphm  AS idID, 
m.fpdm || '-' || m.fphm  AS idimID ,
'数据库' as imDefine10,
m.fpdm as imDefine9,
m.fphm  as imDefine8,
m.kpjh  as imDefine7,
m.zfbz  as imStatus,
m.fpzl  as imCurrType,
m.xfmc as imSaleName,
--(select top 1 spmc from xxfpTaxCardD dd where m.fpdm=dd.fpdm and m.fphm=dd.fphm) as  imDefine10,--
'' as imDefine4 --FROM skfp  m , skfp_mx  d
where  m.fphm=d.fphm
and   m.kprq between to_date(':s起始日期','YYYY-MM-DD') and to_date(':s截止日期','YYYY-MM-DD')
and m.kpjh= ':s开票点'
  1. 验证外部连接插入oracle 数据库
insert
into
openquery(ORCL,'select
"COMPANY","PREPAREDDATE","PK_BILL","ATTACHMENT_NUMBER","INDEXID","ACCOUNT_CODE","ABSTRACT_SM","DIRECTION","AMOUNT","FREETYPE1","FREEVALUE1","FREETYPE2","FREEVALUE2","FREETYPE3","FREEVALUE3","FREETYPE4","FREEVALUE4","FREETYPE5","FREEVALUE5","NCFLAG","NCINFO","TS","FPTYPE"
from
DF.TEMP_VOUCHER')
select
COMPANY,PREPAREDDATE,PK_BILL,ATTACHMENT_NUMBER,count,ACCOUNT_CODE,ABSTRACT_SM,DIRECTION,AMOUNT,FREETYPE1,FREEVALUE1,FREETYPE2,FREEVALUE2,FREETYPE3,FREEVALUE3,FREETYPE4,FREEVALUE4,FREETYPE5,FREEVALUE5,NCFLAG,NCINFO,TS,FPTYPE
from
TEMP_VOUCHER where bz<>'成功'

3.注意点

  1. 防止插入重复数据
select distinct * into #Tmp from TEMP_VOUCHER
drop table TEMP_VOUCHER
select * into TEMP_VOUCHER from #Tmp
drop table #Tmpalter table TEMP_VOUCHER add idAutoID int identity (1,1)
DBCC CHECKIDENT (TEMP_VOUCHER,reseed,1)
update TEMP_VOUCHER set count=t.RowNumber from (SELECTpk_bill+cast(idautoid as varchar(1000)) pkbill ,ROW_NUMBER()  OVER  (ORDER BY pk_bill+iddefine2+iddefine3+iddefine1+cast(indexid as varchar(1000)))  as  RowNumber FROM TEMP_VOUCHER where bz='')t where t.pkbill=TEMP_VOUCHER.pk_bill+cast(TEMP_VOUCHER.idautoid as varchar(1000)) and TEMP_VOUCHER.bz='' 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习·线性回归

线性回归 损失函数 J ( w , b ) 1 2 m ∑ i 1 m ( f ( i ) ( w 1 , w 2 , … , w j , b ) − y ( i ) ) 2 J(w,b)\frac{1}{2m}\sum_{i1}^{m}\left({f^{(i)}(w_1,w_2,\ldots,w_j,b)-y^{(i)}} \right)^2 J(w,b)2m1​i1∑m​(f(i)(w1​,w2​,…,wj​,b)−y(i))2 梯度下降方法 …

【资料分享】2024第三届钉钉杯大学生大数据挑战赛B题思路解析+双语言代码

2024钉钉杯大学生大数据挑战赛&#xff0c;B题解题思路和双语言代码分享&#xff0c;资料预览&#xff1a;

机房建设及运维方案

随着信息技术的快速发展&#xff0c;机房作为企业数据处理与存储的核心场所&#xff0c;其重要性日益凸显。机房的建设不仅关乎到企业业务的正常运行&#xff0c;更与企业的长期发展紧密相连。为了确保机房设备的稳定运行和业务的连续性&#xff0c;本文将从机房建设及运维两个…

解密阿里大神写的天书般的Tree工具类,轻松搞定树结构!

首发公众号&#xff1a;赵侠客 一、引言 最近公司新进了不少新人&#xff0c;包括一些来自阿里、网易等大型企业的资深工程师。我们组的一位新同事是阿里来的专家&#xff0c;我在CR&#xff08;Code Review, 简称CR&#xff09;时看到了他编写的一个关于树操作的工具类&#…

操作系统:进程1

一.进程 1.什么是进程 一个进程创建&#xff0c;他会生成几块&#xff1a; 代码段&#xff1a;进程执行的程序代码数据段&#xff1a;全局变量&#xff0c;静态变量&#xff0c;在进程生命周期中是动态可变的堆&#xff1a;动态分配的内存区域&#xff0c;malloc、calloc、real…

html实现酷炫美观的可视化大屏(十种风格示例,附源码)

文章目录 完整效果演示1.蓝色流线风的可视化大屏1.1 大屏效果1.2 大屏代码1.3 大屏下载 2.地图模块风的可视化大屏2.1 大屏效果2.2 大屏代码2.3 大屏下载 3.科技轮动风的可视化大屏3.1 大屏效果3.2 大屏代码3.3 大屏下载 4.蓝色海洋风的可视化大屏4.1 大屏效果4.2 大屏代码4.3 …

快速介绍git(Linux)

git 1、安装2、版本控制3、git vs gitee&&GitHub(git故事)4、git的操作 1、安装 很简单&#xff0c;直接 sudo yum install -y git2、版本控制 故事介绍&#xff1a;你是一个大学生&#xff0c;你上课需要交一分实验报告&#xff0c;教你的老师比较负责&#xff0c;…

Postman多环境测试全解析:打造灵活的API测试策略

Postman多环境测试全解析&#xff1a;打造灵活的API测试策略 在API开发和测试过程中&#xff0c;经常需要在不同的环境&#xff08;如开发、测试和生产环境&#xff09;中进行测试。Postman提供了多环境测试的功能&#xff0c;允许测试者为API定义多个运行环境&#xff0c;并快…

手把手教你集成GraphRag.Net:打造智能图谱搜索系统

在人工智能和大数据发展的背景下&#xff0c;我们常常需要在项目中实现知识图谱的应用&#xff0c;以便快速、准确地检索和使用信息。 今天&#xff0c;我将向大家详细介绍如何在一个新的.NET项目中集成GraphRag.Net&#xff0c;这是一个参考GraphRag实现的.NET版本&#xff0c…

Git 中的工作区(Working Directory)、暂存区(Staging Area 或 Index)、提交区(Repository)

在 Git 中&#xff0c;工作区&#xff08;Working Directory&#xff09;、暂存区&#xff08;Staging Area 或 Index&#xff09;、提交区&#xff08;Repository&#xff09;是三个核心概念&#xff0c;它们分别代表不同的文件状态和存储位置。以下是它们的详细解释及其关联&…

Linux_make/Makefile的理解

1.make是一个命令&#xff0c;makefile是一个文件, 依赖关系和依赖方法. a.快速使用一下 i.创建一个Makefile文件(首字母也可以小写) b.依赖关系和依赖方法 i.依赖关系: 我为什么要帮你? mybin:mytest.c ii.依赖方法: 怎么帮? gcc -o mybin mytest.c make之前要注意先创建…

探索LLM世界:新手小白的学习路线图

随着人工智能的发展&#xff0c;语言模型&#xff08;Language Models, LLM&#xff09;在自然语言处理&#xff08;NLP&#xff09;领域的应用越来越广泛。对于新手小白来说&#xff0c;学习LLM不仅能提升技术水平&#xff0c;还能为职业发展带来巨大的机遇。那么&#xff0c;…

CycloneIV 使用MAX7219驱动数码管

MAX7219驱动数码管的代码&#xff0c;C语言有大把的代码参考&#xff0c;实现的原理这里我就不细说了&#xff0c;其他博主说得很详细&#xff0c;但是Verilog的代码并没有很多&#xff0c;因此&#xff0c;这里我封装好了代码&#xff0c;仅需根据自己的需要去配置就可以 mod…

Linux(虚拟机)的介绍

Linux介绍 常见的操作系统 Windows&#xff1a;微软公司开发的一款桌面操作系统&#xff08;闭源系统&#xff09;。版本有dos&#xff0c;win98&#xff0c;win NT&#xff0c;win XP , win7, win vista. win8, win10&#xff0c;win11。服务器操作系统&#xff1a;winserve…

Linux中将文件解压到指定目录

在Linux中&#xff0c;你可以使用以下命令将压缩文件解压到指定的目录&#xff1a; 对于.tar文件&#xff1a; tar -xvf archive.tar -C /path/to/directory这里的archive.tar是你要解压的.tar文件&#xff0c;/path/to/directory是你想要解压到的目标目录。 对于.tar.gz或.…

conda issue

Conda 是一个跨平台、通用的二进制包管理器。它是 Anaconda 安装使用的包管理器&#xff0c;但它也可能用于其他系统。Conda 完全用 Python 编写&#xff0c;并且是 BSD 许可的开源。通用意味着大部分的包都可以用它进行管理&#xff0c;很像一个跨平台版本的apt或者yum&#x…

vue3 父组件 props 异步传值,子组件接收不到或接收错误

1. 使用场景 我们在子组件中通常需要调用父组件的数据&#xff0c;此时需要使用 vue3 的 props 进行父子组件通信传值。 2. 问题描述 那么此时问题来了&#xff0c;在使用 props 进行父子组件通信时&#xff0c;因为数据传递是异步的&#xff0c;导致子组件无法成功获取数据…

汇川CodeSysPLC教程03-2-6 ModBus TCP

什么是ModBus TCP&#xff1f; ModBus TCP是一种基于TCP/IP协议的工业网络通信协议&#xff0c;常用于工业自动化和控制系统。它是ModBus协议的一个变种&#xff0c;ModBus协议最初由Modicon&#xff08;现在是施耐德电气的一部分&#xff09;在1979年开发。 以下是ModBus TC…

【gradle】在test apk中定义SDK编译和拷贝任务

// 定义一个任务来编译 AAR 并拷贝到自定义位置 tasks.register(‘compileAndCopyAAR’) { exec { commandLine ‘cmd’, “/c”, “cd …/…/ &&” ‘gradlew SDK:assembleRelease’ } copy {from("../../SDK/build/outputs/aar/") {include SDK-release.…

数据治理之“财务一张表”

前言 信息技术的发展&#xff0c;伴随企业业务系统的纷纷建设&#xff0c;提升业务处理效率的同时&#xff0c;也将企业的整体主价值链流程分成了一段一段的业务子流程&#xff0c;很多情况下存在数据上报延迟、业务协作不顺畅、计划反馈不及时、库存积压占资多……都可以从数据…