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

📄 jyiccardmanager.java~510~

📁 java接口(关于java调用动态库
💻 JAVA~510~
📖 第 1 页 / 共 4 页
字号:
package com.jysy.taxcore.comm.ic;

/**
 * 京粤IC卡管理类
 *
 * <p>Title: JYICCardManager</p>
 * <p>Description: 南京地税税控机IC卡编程接口</p>
 * <p>Copyright: Copyright (c) 2004 广东京粤商用技术有限公司</p>
 * <p>Company: 广东京粤商用技术有限公司</p>
 * @author 李志毅
 * @version 1.0
 */

import com.jysy.taxcore.comm.ic.*;
import com.jysy.taxcore.comm.exception.*;
import com.jysy.taxcore.comm.exception.TaxJYICException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.StringTokenizer;

/**
 * 交通运输业(南京)税控接口增加项目
 * @author 李大军
 * @date 2004-05-28
 */

/**
 * 驱动程序接口实现
 */
public class JYICCardManager implements IICCardManager {

    private static String SPLITTER = "~~"; //分隔字符串的标志
    private static String SUCCESS = "00"; //成功执行C函数的标志

    public static String[] split(String source, String delim) {
        String[] wordLists;
        if (source == null) {
            wordLists = new String[1];
            wordLists[0] = source;
            return wordLists;
        }
        if (delim == null) {
            delim = ",";
        }
        StringTokenizer st = new StringTokenizer(source, delim);
        int total = st.countTokens();
        wordLists = new String[total];
        for (int i = 0; i < total; i++) {
            wordLists[i] = st.nextToken();
        }
        return wordLists;
    }

    public static String Calendar2Str(Calendar ca)
    {
        String bsrq = "";
        if (ca != null) {
            String stryear = Integer.toString(ca.get(Calendar.YEAR));
            String strmonth = Integer.toString(ca.get(Calendar.MONTH) + 1);
            String strdate = Integer.toString(ca.get(Calendar.DATE));
            if (strmonth.length() < 2) {
                strmonth = "0" + strmonth;
            }
            if (strdate.length() < 2) {
                strdate = "0" + strdate;
            }
            bsrq = stryear + strmonth + strdate;
        }
        return bsrq;
    }

    //日期转换函数(把字符串转换为日期类型)
    public static Calendar ChangeStr_Cale(String Strcal){
        Calendar Calout = Calendar.getInstance();
        Calout.set(Integer.parseInt(Strcal.substring(0, 4)),
                                Integer.parseInt(Strcal.substring(4, 6))-1,
                                Integer.parseInt(Strcal.substring(6, 8)));

        return Calout;
    }

    //日期转换函数(把日期类型换为字符串转)

    public void ICfxcshk(SwdjzlObject swdjzlObject) throws TaxBaseICException {
        //税务登记号~~纳税人识别号~~税控机号~~纳税人名称~~卡密码~~密钥
        String Swdjzl = swdjzlObject.getSwdjh() + SPLITTER
            + swdjzlObject.getNsrsbh() + SPLITTER
            + swdjzlObject.getSkjh() + SPLITTER
            + swdjzlObject.getNsrmc() + SPLITTER
            + swdjzlObject.getKmm() + SPLITTER
            + swdjzlObject.getMy();
        ArrayList ListJyxmmx = swdjzlObject.getJyxmmx();
        int intSize = ListJyxmmx.size();
        String[] arrJyxmmx = new String[intSize];

        for (int i = 0; i < intSize; i++) {
            JyxmObject objJyxmmx = new JyxmObject();

            objJyxmmx = (JyxmObject) ListJyxmmx.get(i);

            arrJyxmmx[i] = objJyxmmx.getSldm() + SPLITTER + objJyxmmx.getXmmc() +
                SPLITTER + objJyxmmx.getXmywmc();

            objJyxmmx = null;
        }

        String strReturn = saveCshxx(Swdjzl, arrJyxmmx); //调用C函数接口将税务登记资料写入IC卡中

        if (!strReturn.equals(SUCCESS)) {
            throw new TaxJYICException(strReturn);
        }

    }

    public void ICfxcbsk(SwdjzlObject swdjzlObject) throws TaxBaseICException {
        Calendar sq = swdjzlObject.getBsrq();
        String bsrq = "";
        if (sq != null) {
            String stryear = Integer.toString(sq.get(Calendar.YEAR));
            String strmonth = Integer.toString(sq.get(Calendar.MONTH) + 1);
            String strdate = Integer.toString(sq.get(Calendar.DATE));
            if (strmonth.length() < 2) {
                strmonth = "0" + strmonth;
            }
            if (strdate.length() < 2) {
                strdate = "0" + strdate;
            }
            bsrq = stryear + strmonth + strdate;
        }

        //纳税人识别号~~税控机号~~卡密码~~报税日期
        String Swdjzl = swdjzlObject.getNsrsbh() + SPLITTER
            + swdjzlObject.getSkjh() + SPLITTER
            + swdjzlObject.getKmm() + SPLITTER
            + bsrq;

        String strReturn = saveCbsxx(Swdjzl); //调用C函数接口将税务登记资料写入IC卡中

        if (!strReturn.equals(SUCCESS)) {
            throw new TaxJYICException(strReturn);
        }

    }

    public void ICbfcbskII(SwdjzlObject swdjzlObject) throws TaxBaseICException {
        Calendar sq = swdjzlObject.getBsrq();
        String bsrq = "";
        if (sq != null) {
            String stryear = Integer.toString(sq.get(Calendar.YEAR));
            String strmonth = Integer.toString(sq.get(Calendar.MONTH) + 1);
            String strdate = Integer.toString(sq.get(Calendar.DATE));
            if (strmonth.length() < 2) {
                strmonth = "0" + strmonth;
            }
            if (strdate.length() < 2) {
                strdate = "0" + strdate;
            }
            bsrq = stryear + strmonth + strdate;
        }

        //纳税人识别号~~税控机号~~卡密码~~报税日期
        String Swdjzl = swdjzlObject.getNsrsbh() + SPLITTER
            + swdjzlObject.getSkjh() + SPLITTER
            + swdjzlObject.getKmm() + SPLITTER
            + bsrq;
        String strReturn = saveCbsxx(Swdjzl); //调用C函数接口将税务登记资料写入IC卡中

        if (!strReturn.equals(SUCCESS)) {
            throw new TaxJYICException(strReturn);
        }

    }

    public void ICbfcbsk(SwdjzlObject swdjzlObject) throws TaxBaseICException {
        Calendar sq = swdjzlObject.getBsrq();
        String bsrq = "";
        if (sq != null) {
            String stryear = Integer.toString(sq.get(Calendar.YEAR));
            String strmonth = Integer.toString(sq.get(Calendar.MONTH) + 1);
            String strdate = Integer.toString(sq.get(Calendar.DATE));
            if (strmonth.length() < 2) {
                strmonth = "0" + strmonth;
            }
            if (strdate.length() < 2) {
                strdate = "0" + strdate;
            }
            bsrq = stryear + strmonth + strdate;
        }

        //纳税人识别号~~税控机号~~卡密码~~报税日期
        String Swdjzl = swdjzlObject.getNsrsbh() + SPLITTER
            + swdjzlObject.getSkjh() + SPLITTER
            + swdjzlObject.getKmm() + SPLITTER
            + bsrq;

        String strReturn = bfCbskI(Swdjzl); //调用C函数接口将税务登记资料写入IC卡中

        if (!strReturn.equals(SUCCESS)) {
            throw new TaxJYICException(strReturn);
        }

    }

    public void ICbfxtszk(SwdjzlObject swdjzlObject) throws TaxBaseICException {
        //纳税人识别号~~税控机号~~卡密码
        String Swdjzl = swdjzlObject.getNsrsbh() + SPLITTER
            + swdjzlObject.getSkjh() + SPLITTER
            + swdjzlObject.getKmm();

        String strReturn = bfXtszk(Swdjzl); //调用C函数接口将税务登记资料写入IC卡中

        if (!strReturn.equals(SUCCESS)) {
            throw new TaxJYICException(strReturn);
        }

    }

    public void ICbfskyk(SwdjzlObject swdjzlObject, int num) throws
        TaxBaseICException {
        //纳税人识别号~~税控机号~~卡密码~~收款员编号
        String Swdjzl = swdjzlObject.getNsrsbh() + SPLITTER
            + swdjzlObject.getSkjh() + SPLITTER
            + swdjzlObject.getKmm() + SPLITTER
            + Integer.toString(num);

        String strReturn = bfSkyk(Swdjzl); //调用C函数接口将税务登记资料写入IC卡中

        if (!strReturn.equals(SUCCESS)) {
            throw new TaxJYICException(strReturn);
        }

    }

    public void ICbfwxk(String wxbh) throws TaxBaseICException {
        if (wxbh == null || wxbh == "") {
            wxbh = "10";
        }
        String strReturn = bfWxk(wxbh); //调用C函数接口将税务登记资料写入IC卡中

        if (!strReturn.equals(SUCCESS)) {
            throw new TaxJYICException(strReturn);
        }
    }

    public SwdjzlObject getCbskSwdjzlObject() throws TaxBaseICException {
        String strSwdjzl = null;
        SwdjzlObject retObject = new SwdjzlObject();

        strSwdjzl = getSwdjzl(); //调用C函数接口返回税务登记资料的字符串

        //String[] arrSwdjzl = strSwdjzl.split(SPLITTER);
        String[] arrSwdjzl = split(strSwdjzl,SPLITTER);

        if (arrSwdjzl[0].equals(SUCCESS)) {
            //执行成功
            //税务登记号~~纳税人识别号~~税控机号~~报税日期
            if (!arrSwdjzl[1].equals(SUCCESS))
                retObject.setSwdjh(arrSwdjzl[1]); //税务登记号
            if (arrSwdjzl.length > 2)
                retObject.setNsrsbh(arrSwdjzl[2]); //纳税人识别号
            if (arrSwdjzl.length > 3)
                retObject.setSkjh(arrSwdjzl[3]); //税控机号
            if (arrSwdjzl.length > 4) {
                if (arrSwdjzl[4].length() >= 8) {
                    Calendar calendar = Calendar.getInstance();
                    calendar.set(Integer.parseInt(arrSwdjzl[4].substring(0, 4)),
                                 Integer.parseInt(arrSwdjzl[4].substring(4, 6))-1,
                                 Integer.parseInt(arrSwdjzl[4].substring(6, 8)));
                    retObject.setBsrq(calendar); //授权日期
                }
            }
        }
        else {
            //执行时发生错误
            retObject.setSwdjh(""); //税务登记号
            //throw new TaxJYICException(arrSwdjzl[0]);
        }

        return retObject;
    }

    public FpsyqkObject getFpsyqkObject() throws TaxBaseICException {
        FpsyqkObject retObject = new FpsyqkObject();
        //未使用发票情况
        ArrayList wsyfplist = new ArrayList();
        String[] arrwsyfp = new String[2];
        //注销发票明细
        ArrayList zxfplist = new ArrayList();
        String[] arrzxfp = new String[5];
        //作废发票明细
        ArrayList zffplist = new ArrayList();
        String[] arrzffp = new String[115];
        //退票明细
        ArrayList tfplist = new ArrayList();
        String[] arrtfp = new String[115];

        retObject.setSwdjzl(getCbskSwdjzlObject());

        String strReturn = getFpsyqk(arrwsyfp, arrzxfp, arrzffp);
        if (strReturn.equals(SUCCESS)) {
            for (int i = 0; i < 2; i++) {
                //日期~~发票字轨~~起始发票序号~~结束发票序号
                if (arrwsyfp[i] == null || arrwsyfp[i].equals("")) {
                    break;
                }
                WsyfpObject wsyfp = new WsyfpObject();
                //String[] arrwsyfpElement = arrwsyfp[i].split(SPLITTER);
                String[] arrwsyfpElement = split(arrwsyfp[i],SPLITTER);
                Calendar cpsj = Calendar.getInstance();
                cpsj.set(Integer.parseInt(arrwsyfpElement[0].substring(0, 4)),
                         Integer.parseInt(arrwsyfpElement[0].substring(4, 6))-1,
                         Integer.parseInt(arrwsyfpElement[0].substring(6, 8)));
                wsyfp.setCpsj(cpsj); //日期
                wsyfp.setFpzg(arrwsyfpElement[1]); //发票字轨

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -