📄 jyiccardmanager.java~504~
字号:
return SbsjObj;
}
/**
* 回送监控管理数据(完税)
* @param SbsjObject SbsjObject --税务登记资料
* @throws TaxBaseICException
*/
public void updateTaxEnd(SwdjzlObject swdjzlObject) throws TaxBaseICException{
//机器注册号~~总额限额~~单张限额~~退票总额~~授权期限~~TSAM卡注册号~~明细标志
String swdjxx = swdjzlObject.getSkjh() + SPLITTER
+ Long.toString(swdjzlObject.getzexz()*100) + SPLITTER
+ Long.toString(swdjzlObject.getdzxe()*100) + SPLITTER
+ Long.toString(swdjzlObject.gettpxe()*100) + SPLITTER
+ Calendar2Str(swdjzlObject.getBsrq()) + SPLITTER
+ swdjzlObject.getskkdm() + SPLITTER
+ swdjzlObject.getmxbz();
//System.out.println(swdjxx);
ArrayList szsm_sl = swdjzlObject.getJyxmmx();
int intSize = szsm_sl.size(); //得到数组的中项目的个数
String[] arrs_zsmmx = new String[intSize];
for (int i = 0; i < intSize; i++) {
JyxmObject objJyxmmx = new JyxmObject();
objJyxmmx = (JyxmObject) szsm_sl.get(i);
//索引(1)+税种税目代码(4)+ 税率(2)+税种税目中文名称+税种税目英文名称
String ls_sl = "0000" + Double.toString(objJyxmmx.getsl() * 10000);
int pidx = ls_sl.lastIndexOf(".");
ls_sl = ls_sl.substring(pidx - 4, pidx);
arrs_zsmmx[i] = objJyxmmx.getsy() + SPLITTER
+ objJyxmmx.getsmdm() + SPLITTER
+ ls_sl + SPLITTER
+ objJyxmmx.getXmmc() + SPLITTER
+ objJyxmmx.getXmywmc();
objJyxmmx = null;
}
String strReturn = Hsjksj(swdjxx, arrs_zsmmx); //调用C函数接口将税务登记资料写入IC卡中
if (!strReturn.equals(SUCCESS)) {
throw new TaxJYICException(strReturn);
}
}
public FpsyqkObject getFpsyxx(SwdjzlObject swdjzl) throws TaxBaseICException
{
FpsyqkObject retObject = new FpsyqkObject();
ArrayList list_fpsyxx = new ArrayList();
String[] arr_fpsyxx = new String[200];
String strRet = ReadFpsyxx(swdjzl.getSkjh(),arr_fpsyxx);
if (strRet.equals(SUCCESS))
{
for (int i=0; i<200; i++)
{
if (arr_fpsyxx[i] == null || arr_fpsyxx[i].equals(""))
continue;
FpsyxxObject fpsyxxObj = new FpsyxxObject();
String[] arrfpsyxxElement = split(arr_fpsyxx[i], SPLITTER);
int arrlen = arrfpsyxxElement.length;
fpsyxxObj.setfpdm(arrfpsyxxElement[0]);
fpsyxxObj.setqshm(arrfpsyxxElement[1]);
fpsyxxObj.setjzhm(arrfpsyxxElement[2]);
fpsyxxObj.setzcfp(Integer.parseInt(arrfpsyxxElement[3]));
fpsyxxObj.settpzs(Integer.parseInt(arrfpsyxxElement[4]));
fpsyxxObj.setfpzs(Integer.parseInt(arrfpsyxxElement[5]));
fpsyxxObj.setzcje(Double.parseDouble(arrfpsyxxElement[6])/100);
fpsyxxObj.settpje(Double.parseDouble(arrfpsyxxElement[7])/100);
fpsyxxObj.setkpqsrq(ChangeStr_Cale(arrfpsyxxElement[8]));
fpsyxxObj.setkpjzrq(ChangeStr_Cale(arrfpsyxxElement[9]));
list_fpsyxx.add(fpsyxxObj);
fpsyxxObj = null;
}
retObject.setFpsyxx(list_fpsyxx);
}else {
//执行时发生错误
throw new TaxJYICException(strRet);
}
return retObject;
}
/**
* 读取发票明细(读大容量卡)
* @throws TaxBaseICException
* @return SbfpmxsjObject
*/
public FpsyqkObject getFpmxsj() throws TaxBaseICException{
FpsyqkObject retObject = new FpsyqkObject();
ArrayList arrlist_fpmx = new ArrayList();
String[] arr_fpmx_temp = new String[0];
String str_ret;
str_ret = Read45XX();
String[] arrRet = split(str_ret,SPLITTER);
if (arrRet[0].equals(SUCCESS))
{
SwdjzlObject swdjzl = new SwdjzlObject();
swdjzl.setSwdjh(arrRet[1]);
str_ret = ReadFpmx(arr_fpmx_temp); //调用c函数得到卡上的数据
String[] arrbsfpxxElement_temp = split(str_ret, SPLITTER);
if (!arrbsfpxxElement_temp[0].equals(SUCCESS)) {
int int_mxts = Integer.parseInt(arrbsfpxxElement_temp[1]);
String[] arr_fpmx = new String[int_mxts];
str_ret = ReadFpmx(arr_fpmx); //调用c函数得到卡上的数据
String[] arrbsfpxxElement = split(str_ret, SPLITTER);
if (arrbsfpxxElement[0].equals(SUCCESS)) {
for (int i = 0; i < int_mxts; i++) {
SbfpmxsjObject fpmx_obj = new SbfpmxsjObject();
String[] arrbsfpmxsjElement = split(arr_fpmx[i],SPLITTER);
//发票代码 + 发票号码
//项目1 + 金额1 + 项目2 + 金额2
//项目3 + 金额3 + 项目4 + 金额4
//开票日期 + 税控防伪码 + 发票类型
//付款方税务登记号 + 付款单位名称
fpmx_obj.setfpdm(arrbsfpmxsjElement[0]);
fpmx_obj.setfphm(arrbsfpmxsjElement[1]);
fpmx_obj.setxm1(arrbsfpmxsjElement[2]);
fpmx_obj.setje1(Double.parseDouble(arrbsfpmxsjElement[3]) / 100);
fpmx_obj.setxm2(arrbsfpmxsjElement[4]);
fpmx_obj.setje2(Double.parseDouble(arrbsfpmxsjElement[5]) / 100);
fpmx_obj.setxm3(arrbsfpmxsjElement[6]);
fpmx_obj.setje3(Double.parseDouble(arrbsfpmxsjElement[7]) / 100);
fpmx_obj.setxm4(arrbsfpmxsjElement[8]);
fpmx_obj.setje4(Double.parseDouble(arrbsfpmxsjElement[9]) / 100);
fpmx_obj.setkprq(ChangeStr_Cale(arrbsfpmxsjElement[10]));
fpmx_obj.setskfwem(arrbsfpmxsjElement[11]);
fpmx_obj.setfplx(arrbsfpmxsjElement[12]);
fpmx_obj.setfkf_swdjh(arrbsfpmxsjElement[13]);
if (arrbsfpmxsjElement.length > 14)
fpmx_obj.setfkf_mc(arrbsfpmxsjElement[14]);
arrlist_fpmx.add(fpmx_obj);
fpmx_obj = null;
}
retObject.setFpsymx(arrlist_fpmx);
}else {
//执行时发生错误
throw new TaxJYICException(arrbsfpxxElement[0]);
}
}
}else {
//执行时发生错误
throw new TaxJYICException(arrRet[0]);
}
return retObject;
}
public SwdjzlObject getTSAMCode() throws TaxBaseICException
{
String strSwdjzl = null;
SwdjzlObject retObject = new SwdjzlObject();
strSwdjzl = ReadTSAMCode(); //调用C函数接口返回税务登记资料的字符串
//String[] arrSwdjzl = strSwdjzl.split(SPLITTER);
String[] arrSwdjzl = split(strSwdjzl,SPLITTER);
if (arrSwdjzl[0].equals(SUCCESS)) {
//执行成功
//税控卡号~~税控机号
if (arrSwdjzl.length > 1)
retObject.setskkdm(arrSwdjzl[1]); //税控卡号
if (arrSwdjzl.length > 2)
retObject.setSkjh(arrSwdjzl[2]); //税控机号
}
else {
//执行时发生错误
throw new TaxJYICException(arrSwdjzl[0]);
}
return retObject;
}
public ArrayList getTIDXX() throws TaxBaseICException
{
ArrayList skjxxlist = new ArrayList();
String[] arrskjxx = new String[10];
String strReturn = ReadTIDXX(arrskjxx);
if (strReturn.equals(SUCCESS)) {
for (int i=0; i<10; i++)
{
if (arrskjxx[i] == null || arrskjxx[i].equals(""))
continue;
String[] arrskjElement = split(arrskjxx[i], SPLITTER);
SwdjzlObject swdjzl_obj = new SwdjzlObject();
swdjzl_obj.setskkdm(arrskjElement[0]);
if (arrskjElement.length > 1)
{
swdjzl_obj.setSkjh(arrskjElement[1]);
}
skjxxlist.add(swdjzl_obj);
swdjzl_obj = null;
}
}else {
//执行时发生错误
throw new TaxJYICException(strReturn);
}
return skjxxlist;
}
public SwdjzlObject getyhkh() throws TaxBaseICException
{
String strRet = null;
SwdjzlObject retObject = new SwdjzlObject();
strRet = ReadYhkh(); //调用C函数接口返回用户卡卡号的字符串
//String[] arrSwdjzl = strRet.split(SPLITTER);
String[] arrSwdjzl = split(strRet,SPLITTER);
if (arrSwdjzl[0].equals(SUCCESS)) {
retObject.setyhkh(arrSwdjzl[1]);
}else {
//执行时发生错误
throw new TaxJYICException(arrSwdjzl[0]);
}
return retObject;
}
public void setyhkkh(SwdjzlObject swdjzlObject) throws TaxBaseICException
{
String strReturn = WriteYhkh(swdjzlObject.getyhkh());
if (!strReturn.equals(SUCCESS)) {
throw new TaxJYICException(strReturn);
}
}
//加载函数库
static {
System.loadLibrary("JYICCardNJManager");
}
private static native String saveCshxx(String Swdjzl, String[] Jyxmmx); //封装IC卡发行初始化卡函数(写税务登记资料的函数)
private static native String saveCbsxx(String Swdjzl); //封装IC卡发行抄报税卡函数
private static native String bfCbskI(String Swdjzl); //封装IC卡补发I型机抄报税卡函数
private static native String bfXtszk(String Swdjzl); //封装IC卡补发I型机系统设置卡函数
private static native String bfSkyk(String Swdjzl); //封装IC卡补发I型机收款员卡函数
private static native String bfWxk(String Swdjzl); //封装IC卡补发I型机维修卡函数
private static native String getSwdjzl(); //封装取税务登记资料的函数
private static native String chgBsrq(String Swdjzl); //封装修改报税日期的函数
private static native String getFpsyqk(String[] Wsyfp, String[] Zxfpmx, String[] Zffpmx); //封装读取发票使用情况的函数
private static native String chgCfpbz(String Swdjzl); //封装回写抄发票成功标志的函数
private static native String getSbsj(String[] Yhzmx, String[] Rhzmx); //封装读取申报数据的函数
private static native String chgSbsjbz(String Swdjzl); //封装回写抄发票成功标志的函数
private static native String cleanIC(int type, String kmm); //封装清除卡数据的函数
private static native String setReader(String[] setting); //封装设置读卡器函数
private static native String getReader(String[] setting); //封装读卡器设置函数
private static native String saveFpxs(String Kmm, String[] Fpxsxx); //封装写发票销售信息的函数
private static native String[] getFpxs(); //封装取读取发票销售信息的函数
private static native String zxFpxs(String Kmm, String[] Zxfpxx); //封装注销发票销售信息的函数
/**
* 交通运输业(南京)税控接口增加项目 @author 李大军
* @date 2004-05-28
*/
private static native String MakeTIDCard(String swdjxx, String[] szsmxx, boolean isAdd); //发行用户卡
private static native String MakeTSAMCard(String swdjxx, String[] szsmxx); //发行税控卡
private static native String MakeAT45Card(String nshxx); //发行大容量卡
private static native String MakeCheckCard(String CheckCardxx); //发行税务管理卡
private static native String ChangeTaxItems(String swdjxx, String[] szsmxx); //修改税种税目信息
private static native String Sksjhc(String[] sksbsj); //税控数据回传(报税)
private static native String Hsjksj(String swdjxx, String[] szsmxx); //回送监控管理数据(完税)
private static native String ReadFpmx(String[] fpmxsj); //读取发票明细信息
private static native String ReadTSAMCode(); //读税控卡的卡号、机器号
private static native String ReadTIDXX(String[] skkxx); //读用户卡中税控卡信息(卡号、机器号)列表
private static native String ReadFpsyxx(String skjh, String[] fpsyxx); //读用户卡中税控机发票使用信息列表
private static native String ReadYhkh(); //读用户卡卡号
private static native String WriteYhkh(String yhkh); //写用户卡卡号
private static native String Read45XX(); //读大容量卡基本信息
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -