📄 jyiccardmanager.java~504~
字号:
int intSize = ListFpxx.size();
String[] arrFpxsxx = new String[intSize];
for (int i = 0; i < intSize; i++) {
FpxxObject objFpxx = new FpxxObject();
objFpxx = (FpxxObject) ListFpxx.get(i);
arrFpxsxx[i] = objFpxx.getZgdm() + SPLITTER + objFpxx.getQshm() +
SPLITTER + objFpxx.getJzhm() + SPLITTER + objFpxx.getSl() +
SPLITTER + objFpxx.getFpzldm();
objFpxx = null;
}
String strReturn = zxFpxs(fpxsjlObject.getKmm(), arrFpxsxx);
if (!strReturn.equals(SUCCESS)) {
throw new TaxJYICException(strReturn);
}
}
public void cleanICK(String kmm) throws TaxBaseICException {
String strReturn = cleanIC(0, kmm);
if (!strReturn.equals(SUCCESS)) {
throw new TaxJYICException(strReturn);
}
}
public ICReaderSettingObject getICReaderSettingObject() throws
TaxBaseICException {
ICReaderSettingObject retSet = new ICReaderSettingObject();
String[] arrSet = new String[2];
String strReturn = getReader(arrSet);
if (strReturn.equals(SUCCESS)) {
retSet.setCkh(Integer.parseInt(arrSet[0]));
retSet.setJqlx(Integer.parseInt(arrSet[1]));
}
else {
throw new TaxJYICException(strReturn);
}
return retSet;
}
public void setICReaderSettingObject(ICReaderSettingObject setting) throws
TaxBaseICException {
String[] arrSet = new String[2];
arrSet[0] = Integer.toString(setting.getCkh());
arrSet[1] = Integer.toString(setting.getJqlx());
String strReturn = setReader(arrSet);
if (!strReturn.equals(SUCCESS)) {
throw new TaxJYICException(strReturn);
}
}
/**
* 交通运输业(南京)税控接口增加项目
* @author 李大军
* @date 2004-05-28
*/
/**
* 发行用户卡
* @param swdjzlObject SwdjzlObject
* @throws TaxBaseICException
*/
public void ICMakeTIDCard(SwdjzlObject swdjzlObject, boolean isAdd)throws TaxBaseICException {
//纳税人编号~~纳税人识别号~~补发次数~~机器注册号
//~~总额限额~~单张限额~~退票总额~~单张退票限额~~授权期限
//~~申报方式~~发卡方代码~~单位名称~~TSAM卡注册号~~明细标志
String swdjxx = swdjzlObject.getSwdjh() + SPLITTER
+ swdjzlObject.getNsrsbh() + SPLITTER
+ swdjzlObject.getbfcs() + SPLITTER
+ swdjzlObject.getSkjh() + SPLITTER
+ Long.toString(swdjzlObject.getzexz()*100) + SPLITTER
+ Long.toString(swdjzlObject.getdzxe()*100) + SPLITTER
+ Long.toString(swdjzlObject.gettpxe()*100) + SPLITTER
+ Long.toString(swdjzlObject.getdztpxe()*100) + SPLITTER
+ Calendar2Str(swdjzlObject.getBsrq()) + SPLITTER
+ swdjzlObject.getsbfs() + SPLITTER
+ swdjzlObject.getfkfdm() + SPLITTER
+ swdjzlObject.getNsrmc() + SPLITTER
+ swdjzlObject.getskkdm() + SPLITTER
+ swdjzlObject.getmxbz();
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 = MakeTIDCard(swdjxx, arrs_zsmmx, isAdd); //调用C函数接口将税务登记资料写入IC卡中
if (!strReturn.equals(SUCCESS)) {
throw new TaxJYICException(strReturn);
}
if (swdjzlObject.getyhkh() != null)
{
strReturn = WriteYhkh(swdjzlObject.getyhkh());
if (!strReturn.equals(SUCCESS)) {
throw new TaxJYICException(strReturn);
}
}
}
/**
* 发行税控卡
* @param swdjzlObject SwdjzlObject
* @throws TaxBaseICException
*/
public void ICMakeTSAMCard(SwdjzlObject swdjzlObject)throws TaxBaseICException{
//纳税人编号~~纳税人识别号~~补发次数~~机器注册号
//~~总额限额~~单张限额~~退票总额~~单张退票限额~~授权期限
//~~申报方式~~发卡方代码~~单位名称~~TSAM卡注册号~~明细标志
String swdjxx = swdjzlObject.getSwdjh() + SPLITTER
+ swdjzlObject.getNsrsbh() + SPLITTER
+ swdjzlObject.getbfcs() + SPLITTER
+ swdjzlObject.getSkjh() + SPLITTER
+ Long.toString(swdjzlObject.getzexz()*100) + SPLITTER
+ Long.toString(swdjzlObject.getdzxe()*100) + SPLITTER
+ Long.toString(swdjzlObject.gettpxe()*100) + SPLITTER
+ Long.toString(swdjzlObject.getdztpxe()*100) + SPLITTER
+ Calendar2Str(swdjzlObject.getBsrq()) + SPLITTER
+ swdjzlObject.getsbfs() + SPLITTER
+ swdjzlObject.getfkfdm() + SPLITTER
+ swdjzlObject.getNsrmc() + 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 = MakeTSAMCard(swdjxx, arrs_zsmmx); //调用C函数接口将税务登记资料写入IC卡中
if (!strReturn.equals(SUCCESS)) {
throw new TaxJYICException(strReturn);
}
}
/**
* 发行大容量卡
* @param swdjzlObject SwdjzlObject
* @throws TaxBaseICException
*/
public void ICMakeAT45Card(SwdjzlObject swdjzlObject)throws TaxBaseICException{
//纳税人识别号+ 纳税人名称
String khxx = swdjzlObject.getNsrsbh() + SPLITTER
+ swdjzlObject.getNsrmc();
String strreturn = MakeAT45Card(khxx);
if (!strreturn.equals(SUCCESS)) {
throw new TaxJYICException(strreturn);
}
}
/**
* 发行税务管理卡
* @param CheckCardData String
* @throws TaxBaseICException
*/
public void ICMakeCheckCard(CheckCardObject CheckCardObject) throws TaxBaseICException{
String CheckCardxx = CheckCardObject.getnsrbm() + SPLITTER
+ CheckCardObject.getjclb() + SPLITTER
+ CheckCardObject.getwbrzmysy() + SPLITTER
+ CheckCardObject.getjckbm() + SPLITTER
+ Calendar2Str(CheckCardObject.getqyrq()) + SPLITTER
+ Calendar2Str(CheckCardObject.getyxrq()) + SPLITTER
+ CheckCardObject.getjcdwmc();
String str_return = MakeCheckCard(CheckCardxx);
if (!str_return.equals(SUCCESS)) {
throw new TaxJYICException(str_return);
}
}
public void ICChangeTaxItems(SwdjzlObject swdjzlObject)throws TaxBaseICException{
//纳税人编号~~纳税人识别号~~补发次数~~机器注册号
//~~总额限额~~单张限额~~退票总额~~单张退票限额~~授权期限
//~~申报方式~~发卡方代码~~单位名称~~TSAM卡注册号~~明细标志
String swdjxx = swdjzlObject.getSwdjh() + SPLITTER
+ swdjzlObject.getNsrsbh() + SPLITTER
+ swdjzlObject.getbfcs() + SPLITTER
+ swdjzlObject.getSkjh() + SPLITTER
+ Long.toString(swdjzlObject.getzexz()*100) + SPLITTER
+ Long.toString(swdjzlObject.getdzxe()*100) + SPLITTER
+ Long.toString(swdjzlObject.gettpxe()*100) + SPLITTER
+ Long.toString(swdjzlObject.getdztpxe()*100) + SPLITTER
+ Calendar2Str(swdjzlObject.getBsrq()) + SPLITTER
+ swdjzlObject.getsbfs() + SPLITTER
+ swdjzlObject.getfkfdm() + SPLITTER
+ swdjzlObject.getNsrmc() + 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 = ChangeTaxItems(swdjxx, arrs_zsmmx); //调用C函数接口将税务登记资料写入IC卡中
if (!strReturn.equals(SUCCESS)) {
throw new TaxJYICException(strReturn);
}
}
/**
* 税控数据回传
* @param int xh
* @throws TaxBaseICException
*/
public SbsjObject getBssj() throws TaxBaseICException {
int arrlen = 0;
SbsjObject SbsjObj = new SbsjObject();
ArrayList sksbsjlist = new ArrayList();
SbsjObj.setSwdjzl(getCbskSwdjzlObject());
//报税分类金额
String[] arrSbsj = new String[10];
String strReturn = Sksjhc(arrSbsj); //调用c函数库读卡得到数据
if (!strReturn.equals(SUCCESS)) {
throw new TaxJYICException(strReturn);
}
for (int i = 0; i < 10; i++) {
SksbsjObject sksbsjObj = new SksbsjObject();
String[] arrbssjElement = split(arrSbsj[i], SPLITTER);
arrlen = arrbssjElement.length;
//税控卡注册号 + 数据起始日期 + 数据截止日期 + 发票使用总数
//退票总数 + 废票总数 + 状态字 + 报税数据 + 非对称签名 + 6类税目汇总
if (arrSbsj[i].equals(""))
continue;
sksbsjObj.setTSAMCardhm(arrbssjElement[0]);
sksbsjObj.setsbqsrq(ChangeStr_Cale(arrbssjElement[1]));
sksbsjObj.setsbjzrq(ChangeStr_Cale(arrbssjElement[2]));
sksbsjObj.setfpsyzs(Integer.parseInt(arrbssjElement[3]));
sksbsjObj.settpzs(Integer.parseInt(arrbssjElement[4]));
sksbsjObj.setfpzs(Integer.parseInt(arrbssjElement[5]));
sksbsjObj.setztz(arrbssjElement[6]);
sksbsjObj.setsksjMAC(arrbssjElement[7]);
sksbsjObj.setfdcqm(arrbssjElement[8]);
ArrayList fxmlist = new ArrayList();
for (int j = 0; j < 6; j++) {
if (arrlen > j * 3 + 11) {
FxmhzObject fxmhz = new FxmhzObject();
fxmhz.setSldm(arrbssjElement[j * 3 + 9]);
fxmhz.setYye(Double.parseDouble(arrbssjElement[j * 3 + 10]) /
100);
fxmhz.setFpe(Double.parseDouble(arrbssjElement[j * 3 + 11]) /
100);
fxmlist.add(fxmhz);
}
}
sksbsjObj.setFxmhz(fxmlist);
sksbsjlist.add(sksbsjObj);
sksbsjObj = null;
}
SbsjObj.setSksbsj(sksbsjlist);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -