Fork me on GitHub

PayablebillImpl

package nc.impl.arap.payablebill;

import java.util.List;
import java.util.Map;

import nc.bs.dao.BaseDAO;
import nc.itf.arap.payablebill.IPayablebillItf;
import nc.jdbc.framework.processor.BeanListProcessor;
import nc.jdbc.framework.processor.MapProcessor;
import nc.vo.arap.payable.PayableBillVO;
import nc.vo.arap.payablebill.MidPayinfoVO;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException;

/**
 * 应付单管理审批弃审中间表数据操作接口实现
 * @author 陈志锋
 * 2015-12-25
 */
public class PayablebillImpl implements IPayablebillItf {
	
	private BaseDAO baseDAO;
	public BaseDAO getBaseDAO(){
		if(baseDAO == null){
			baseDAO = new BaseDAO();
		}
		return baseDAO;
	}
	
	@Override
	public Boolean insertInfoMiddle(AggregatedValueObject aggvo) throws BusinessException {
		String pk_payablebill = aggvo.getParentVO().getPrimaryKey();
		MidPayinfoVO[] billVOs = getMidPayinfoVO(pk_payablebill);
		if(billVOs != null){
			for (int i = 0; i < billVOs.length; i++) {
				MidPayinfoVO midPayinfoVO = billVOs[i];
				midPayinfoVO.setDr(0);
				getBaseDAO().insertVO(midPayinfoVO);
			}
		}
		return true;
	}

	
	@Override
	public Boolean deteleInfoMiddle(String billPk) throws BusinessException {
		
		StringBuffer sqlstr=new StringBuffer("");
		sqlstr.append("select * from (select ap_payableitem.pk_payablebill from ap_payableitem").append("\r\n");
		sqlstr.append("     where ap_payableitem.top_billid = '"+billPk+"'").append("\r\n");
		sqlstr.append("     order by ap_payableitem.ts desc ) temp where rownum = 1"); 
		List<PayableBillVO> list = (List<PayableBillVO>) getBaseDAO().executeQuery(sqlstr.toString(), new BeanListProcessor(PayableBillVO.class));
		if(list != null && list.size() > 0){
			for (int i = 0; i < list.size(); i++) {
				PayableBillVO billVO = list.get(i);
				String pk_bill = billVO.getPrimaryKey();
				if(billVO.getApprovestatus() == 1){
					continue;
				}else{
					String delsql = " update MID_PAYINFO set billstate = 1,dr=1 where billPK='"+pk_bill+"' and nvl(dr,0)=0 ";
					getBaseDAO().executeUpdate(delsql);
				}
			}
		}
		return true;
	}

	private MidPayinfoVO[] getMidPayinfoVO(String pk_payablebill) throws BusinessException{
		StringBuffer sqlstr=new StringBuffer("");
		sqlstr.append("").append("\r\n");
		sqlstr.append("select distinct ap_payablebill.def2        guid,").append("\r\n");
		sqlstr.append("       ap_payablebill.money       dkAmount,").append("\r\n");
		sqlstr.append("       billuser.user_name         createby,").append("\r\n");
		sqlstr.append("       ap_payablebill.billdate    createdate,").append("\r\n");
		sqlstr.append("       ap_payablebill.approvedate approvedate,").append("\r\n");
		sqlstr.append("       appuser.user_name   approvedby,").append("\r\n");
		sqlstr.append("       bd_supplier.code sfProviderCode,").append("\r\n");
		sqlstr.append("       bd_supplier.name sfProviderName,").append("\r\n");
		sqlstr.append("        ").append("\r\n");
		sqlstr.append("       0 billstate,").append("\r\n");
		sqlstr.append("       ap_payablebill.pk_payablebill billPk,").append("\r\n");
		sqlstr.append("       ap_payablebill.billno").append("\r\n");
		sqlstr.append("  from ap_payablebill").append("\r\n");
		sqlstr.append("    left join ap_payableitem").append("\r\n");
		sqlstr.append("         on ap_payableitem.pk_payablebill = ap_payablebill.pk_payablebill").append("\r\n");
		sqlstr.append("    left join bd_supplier").append("\r\n");
		sqlstr.append("         on bd_supplier.pk_supplier = ap_payableitem.supplier").append("\r\n");
		sqlstr.append("    left join sm_user appuser").append("\r\n");
		sqlstr.append("        on appuser.cuserid = ap_payablebill.approver").append("\r\n");
		sqlstr.append("    left join sm_user billuser").append("\r\n");
		sqlstr.append("       on billuser.cuserid = ap_payablebill.billmaker").append("\r\n");
		sqlstr.append(" where ap_payablebill.pk_payablebill = '"+pk_payablebill+"'").append("\r\n");
		sqlstr.append("   and nvl(ap_payablebill.dr, 0) = 0 and nvl(appuser.dr,0) = 0").append("\r\n");
		sqlstr.append("   and nvl(bd_supplier.dr,0) = 0 and nvl(billuser.dr,0) = 0").append("\r\n");
		sqlstr.append("   and ap_payablebill.billstatus = 1 and nvl(ap_payablebill.def2,'~') <> '~' "); 
		List<MidPayinfoVO> listMidVO = (List<MidPayinfoVO>) getBaseDAO().executeQuery(sqlstr.toString(), new BeanListProcessor(MidPayinfoVO.class));
		if(listMidVO != null && listMidVO.size() > 0){
			return listMidVO.toArray(new MidPayinfoVO[0]);
		}else{
			return null;
		}
		
	}

	@Override
	public String getPayableStatue(String pk_payablebill)throws BusinessException {
		String sql = "select ap_payablebill.approvestatus from ap_payablebill where ap_payablebill.pk_payablebill = '"+pk_payablebill+"'";
		Map map = (Map) getBaseDAO().executeQuery(sql, new MapProcessor());
		String billstatus = "";
		if(map != null || map.size() > 0){
			billstatus = (map.get("approvestatus")==null?"":map.get("approvestatus")) + "";
		}
		return billstatus;
	}
	
	
	
	
}

  

posted @ 2015-12-26 19:09  ZZZZW  阅读(369)  评论(0编辑  收藏  举报
AmazingCounters.com