vouchernumdaoimpl.java

来自「一个关于tlms的一个小程序 看看能否帮助到别人」· Java 代码 · 共 241 行

JAVA
241
字号
/**
 * =============================================
 * Copyright 2006 szmx
 *
 * Change Revision
 * --------------------------------
 *   Date          Author      Remarks
 *   2006-4-14     Allen.Zeng  Create com.szmx.tlms.finance.dao.impl.VoucherNumDaoImpl
 * =============================================
 */

package com.szmx.tlms.finance.dao.impl;

import com.szmx.tlms.finance.dao.VoucherNumDao;
import com.szmx.tlms.finance.model.CalendarPeriod;
import com.szmx.tlms.finance.model.VoucherNum;
import com.szmx.tlms.supplychain.model.SalesOrg;
import com.szmx.framework.base.dao.impl.BaseDaoImpl;
import com.szmx.framework.util.StringUtil;

import java.util.*;

/**
 *
 * @author Allen.Zeng
 * @since 2006-4-14
 */

public class VoucherNumDaoImpl extends BaseDaoImpl implements VoucherNumDao {
    /**
     * @see com.szmx.tlms.finance.dao.VoucherNumDao#saveOrUpdateVoucherNum(com.szmx.tlms.finance.model.VoucherNum)
     */
    public void saveOrUpdateVoucherNum(VoucherNum voucherNum) {
        if (voucherNum == null) {
            return;
        }

        this.saveObject(voucherNum);
    }

    /**
     * @see com.szmx.tlms.finance.dao.VoucherNumDao#saveOrUpdateAllVoucherNum(java.util.Collection)
     */
    public void saveOrUpdateAllVoucherNum(Collection voucherNums) {
        if (voucherNums == null || voucherNums.size() <= 0) {
            return ;
        }

        Iterator it = voucherNums.iterator();
        int count = 0;
        while (it.hasNext()) {
            this.saveObject(it.next());

            // batch action. To avoid memory overflow
            count ++;
            if (count % 20 == 0) {
                this.getSession().flush();
                this.getSession().clear();
            }
        }
    }

    /**
     * @see com.szmx.tlms.finance.dao.VoucherNumDao#removeVoucherNum(com.szmx.tlms.finance.model.VoucherNum)
     */
    public void removeVoucherNum(VoucherNum voucherNum) {
        if (voucherNum == null) {
            return;
        }

        this.removeObject(voucherNum);
    }

    /**
     * @see com.szmx.tlms.finance.dao.VoucherNumDao#removeAllObject(java.util.Collection)
     */
    public void removeAllVoucherNum(Collection voucherNums) {
        if (voucherNums == null || voucherNums.size() <= 0) {
            return;
        }

        this.removeAllObject(voucherNums);
    }

    /**
     * @see com.szmx.tlms.finance.dao.VoucherNumDao#searchVoucherNum(com.szmx.tlms.supplychain.model.SalesOrg, com.szmx.tlms.finance.model.CalendarPeriod, String)
     */
    public List searchVoucherNum(SalesOrg company, CalendarPeriod calendarPeriod, String voucherType) {
        Map queryConditionMap = new HashMap();
        queryConditionMap.put("company", company);
        queryConditionMap.put("calendarPeriod", calendarPeriod);
        queryConditionMap.put("voucherType", voucherType);

        return this.findListByCombinedHsql("searchVoucherNum", queryConditionMap);
    }

    /**
     * @see com.szmx.tlms.finance.dao.VoucherNumDao#setFlowNoZero(com.szmx.tlms.supplychain.model.SalesOrg, com.szmx.tlms.finance.model.CalendarPeriod, java.util.List, Long)
     */
    public int setFlowNoZero(SalesOrg company, CalendarPeriod calendarPeriod, List voucherTypeList, Long userid){
        if (company == null || calendarPeriod == null || voucherTypeList == null || userid == null) {
            if (this.logger.isDebugEnabled()) {
                this.logger.debug("Passed parameters cannot be empty ! Check them !");
            }

            return -1;
        }

        List voucherNumList = new ArrayList();
        String voucherType;
        for (int i = 0; i < voucherTypeList. size(); i ++) {
            voucherType = (String) voucherTypeList.get(i);

            if (!StringUtil.isNull(voucherType)) {
                VoucherNum voucherNum = new VoucherNum();
                voucherNum.populateCreateBean(userid);
                voucherNum.setCalendarPeriod(calendarPeriod);
                voucherNum.setCompany(company);
                voucherNum.setVoucherType(voucherType);
                voucherNum.setFlowNo(new Integer(0));   // key opeartion

                voucherNumList.add(voucherNum);
            }
        }

        this.saveOrUpdateAllVoucherNum(voucherNumList);

        return 0;
    }

    /**
     * @see com.szmx.tlms.finance.dao.VoucherNumDao#setFlowNoZero(com.szmx.tlms.supplychain.model.SalesOrg, com.szmx.tlms.finance.model.CalendarPeriod, String, Long)
     */
    public int setFlowNoZero(SalesOrg company, CalendarPeriod calendarPeriod, String voucherType, Long userid) {
        if (company == null || calendarPeriod == null || voucherType == null || userid == null) {
            if (this.logger.isDebugEnabled()) {
                this.logger.debug("Passed parameters cannot be empty ! Check them !");
            }

            return -1;
        }

        VoucherNum voucherNum = new VoucherNum();
        voucherNum.populateCreateBean(userid);
        voucherNum.setCompany(company);
        voucherNum.setCalendarPeriod(calendarPeriod);
        voucherNum.setVoucherType(voucherType);
        voucherNum.setFlowNo(new Integer(0));   // key opeartion

        this.saveOrUpdateVoucherNum(voucherNum);

        return 0;
    }

    /**
     * @see com.szmx.tlms.finance.dao.VoucherNumDao#generateVoucherNum(com.szmx.tlms.supplychain.model.SalesOrg, com.szmx.tlms.finance.model.CalendarPeriod, String, Long)
     */
    public String generateVoucherNum(SalesOrg company, CalendarPeriod calendarPeriod, String voucherType, Long userid) {
        if( company == null || calendarPeriod == null || StringUtil.isNull(voucherType) || userid == null) {
            if (this.logger.isDebugEnabled()) {
                this.logger.debug("Passed parameters cannot be empty ! Check them !");
            }

            return null;
        }

        // auto-generated flow number
        int newFlowNo;

        // generate flow number
        List list = this.searchVoucherNum(company, calendarPeriod, voucherType);
        if (list == null || list.size() < 1) {
            // there is not this type of flow number, so add it
            int status = this.setFlowNoZero(company, calendarPeriod, voucherType, userid);
            if (status != 0) {
                return null;
            }

            newFlowNo = Integer.parseInt("1");
        } else {
            VoucherNum voucherNum = (VoucherNum) list.get(0);
            if (voucherNum == null) {
                return null;
            }

            if (voucherNum.getFlowNo() == null) {
                return null;
            }

            newFlowNo = voucherNum.getFlowNo().intValue() + 1;
        }

        // assemble voucher number
        // voucer number format is 06-PE02-1
        // 06 is fiscal year
        // PE is voucher type
        // 02 is fiscal month
        // 1 is flow no
        String fiscalYear = calendarPeriod.getPeriodYear(); // fiscalYear should be 2 or 4 charactor in db
        if (fiscalYear.length() >= 4) {
            fiscalYear = fiscalYear.substring(2);
        }
        String fiscalMonth = String.valueOf(calendarPeriod.getPeriodNum());
        if (fiscalMonth.length() < 2) {
            fiscalMonth = "0" + fiscalMonth;
        }

        if (this.logger.isDebugEnabled()) {
            this.logger.debug("Generated voucherNo : " +
                    fiscalYear + "-" + voucherType + fiscalMonth + "-" + newFlowNo);
        }

        return fiscalYear + "-" + voucherType + fiscalMonth + "-" + newFlowNo;
    }

    /**
     * @see com.szmx.tlms.finance.dao.VoucherNumDao#updateFlowNo(com.szmx.tlms.supplychain.model.SalesOrg, com.szmx.tlms.finance.model.CalendarPeriod, String, Long)
     */
    public int updateFlowNo(SalesOrg company, CalendarPeriod calendarPeriod, String voucherType, Long userid) {
        if (company == null || calendarPeriod == null || StringUtil.isNull(voucherType) || userid == null) {
            return -1;
        }

        VoucherNum voucherNum = (VoucherNum) this.searchVoucherNum(company, calendarPeriod, voucherType);
        if (voucherNum == null) {
            return -1;
        } else {
            voucherNum.populateUpdateBean(userid);
            Integer flowNo = voucherNum.getFlowNo();
            if (flowNo == null) {
                flowNo = new Integer(0);
            }
            voucherNum.setFlowNo(new Integer(flowNo.intValue() + 1));

            this.saveOrUpdateVoucherNum(voucherNum);

            return 1;
        }
    }
}

⌨️ 快捷键说明

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