⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jyiccardmanager.java~504~

📁 java接口(关于java调用动态库
💻 JAVA~504~
📖 第 1 页 / 共 4 页
字号:
        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 + -