package com.ycsoft.business.component.core;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ycsoft.beans.config.TBusiDocTemplatefile;
import com.ycsoft.beans.config.TInvoicePrintitem;
import com.ycsoft.beans.config.TPrintitem;
import com.ycsoft.beans.core.common.CDoneCodeInfo;
import com.ycsoft.beans.core.cust.CCust;
import com.ycsoft.beans.core.cust.CCustLinkman;
import com.ycsoft.beans.core.print.CDoc;
import com.ycsoft.beans.core.print.CDocFee;
import com.ycsoft.beans.core.print.CDocItem;
import com.ycsoft.beans.core.print.CInvoice;
import com.ycsoft.beans.core.print.CInvoiceItem;
import com.ycsoft.beans.core.user.CUser;
import com.ycsoft.business.commons.abstracts.BaseBusiComponent;
import com.ycsoft.business.dao.config.TBusiDocTemplatefileDao;
import com.ycsoft.business.dao.config.TInvoicePrintitemDao;
import com.ycsoft.business.dao.config.TPrintitemDao;
import com.ycsoft.business.dao.core.bill.BBillWriteoffDao;
import com.ycsoft.business.dao.core.common.CDoneCodeInfoDao;
import com.ycsoft.business.dao.core.cust.CCustDao;
import com.ycsoft.business.dao.core.cust.CCustLinkmanDao;
import com.ycsoft.business.dao.core.fee.CFeeDao;
import com.ycsoft.business.dao.core.fee.CFeeUnprintDao;
import com.ycsoft.business.dao.core.print.CDocDao;
import com.ycsoft.business.dao.core.print.CDocFeeDao;
import com.ycsoft.business.dao.core.print.CDocItemDao;
import com.ycsoft.business.dao.core.print.CInvoiceDao;
import com.ycsoft.business.dao.core.print.CInvoiceItemDao;
import com.ycsoft.business.dao.core.user.CUserDao;
import com.ycsoft.business.dto.core.cust.CustFullInfoDto;
import com.ycsoft.business.dto.core.fee.MergeFeeFormDto;
import com.ycsoft.business.dto.core.print.CInvoiceDto;
import com.ycsoft.business.dto.core.print.DocDto;
import com.ycsoft.business.dto.core.print.InvoiceFromDto;
import com.ycsoft.business.dto.core.print.PrintDate;
import com.ycsoft.business.dto.core.print.PrintItemDto;
import com.ycsoft.business.dto.print.BBillWriteoffDto;
import com.ycsoft.business.dto.print.BusiDocPrintConfigDto;
import com.ycsoft.business.dto.print.BusiDocPrintItemDto;
import com.ycsoft.business.dto.print.PrintFeeitemDto;
import com.ycsoft.commons.constants.BusiCodeConstants;
import com.ycsoft.commons.constants.DataRight;
import com.ycsoft.commons.constants.SequenceConstants;
import com.ycsoft.commons.constants.StatusConstants;
import com.ycsoft.commons.constants.SystemConstants;
import com.ycsoft.commons.exception.ComponentException;
import com.ycsoft.commons.helper.BeanHelper;
import com.ycsoft.commons.helper.CollectionHelper;
import com.ycsoft.commons.helper.DateHelper;
import com.ycsoft.commons.helper.LoggerHelper;
import com.ycsoft.commons.helper.StringHelper;
import com.ycsoft.commons.store.TemplateConfig;
import com.ycsoft.daos.core.JDBCException;
import com.ycsoft.daos.core.Pager;
/**
* 打印组件
* @author PANYB
*
*/
@Component
public class PrintComponent extends BaseBusiComponent {
private DynamicDataComponent dynamicDataComponent;
private CCustDao cCustDao;
private CustComponent custComponent;
private CCustLinkmanDao cCustLinkmanDao;
private CDocDao cDocDao ;
private CUserDao cUserDao;
private BBillWriteoffDao bBillWriteoffDao;
private CDocItemDao cDocItemDao ;
private CDocFeeDao cDocFeeDao ;
private TInvoicePrintitemDao tInvoicePrintitemDao;
private TBusiDocTemplatefileDao tBusiDocTemplatefileDao;
private CFeeDao cFeeDao;
private CInvoiceDao cInvoiceDao;
private CInvoiceItemDao cInvoiceItemDao;
private CDoneCodeInfoDao cDoneCodeInfoDao;
private TPrintitemDao tPrintitemDao;
@Autowired
private CFeeUnprintDao cFeeUnprintDao;
public void saveServiceDoc(String custId,Integer doneCode,String docSn) throws Exception {
CDoc doc = new CDoc();
doc.setCust_id(custId);
doc.setBusi_code(BusiCodeConstants.SERVICE_PRINT);
doc.setDone_code(doneCode);
doc.setDoc_sn(docSn);
doc.setDoc_type(SystemConstants.DOC_TYPE_SERVICE);
doc.setCreate_time(new Date());
setBaseInfo(doc);
cDocDao.save(doc);
}
public void saveDocItem(String docSn,String[] doneCodes) throws Exception {
List<CDocItem> docItemList = new ArrayList<CDocItem>();
Date lastPrint = new Date();
for(String doneCode : doneCodes){
CDocItem docItem = new CDocItem();
docItem.setDoc_sn(docSn);
docItem.setDocitem_sn(doneCode);
docItemList.add(docItem);
updateLastPrintByDoneCode(Integer.parseInt(doneCode), lastPrint);
}
cDocItemDao.save(docItemList.toArray(new CDocItem[docItemList.size()]));
}
public void updateLastPrintByDoneCode(Integer doneCode,Date lastPrint) throws Exception {
cDoneCodeInfoDao.updateLastPrintByDoneCode(doneCode, lastPrint);
}
public BusiDocPrintConfigDto queryServiceDocFile()throws Exception{
String county_id = getOptr().getCounty_id();
String template_type = TemplateConfig.Template.DOC.toString();
List<BusiDocPrintConfigDto> lst = tBusiDocTemplatefileDao.getTemplate(county_id, template_type);
if(lst == null || lst.size() == 0){
throw new IllegalArgumentException("请配置模板数据为["+ county_id+","+ template_type +"]");
}
if(lst.size() > 1){
throw new IllegalArgumentException("不允许配置多个模板数据["+ county_id+","+ template_type +"]");
}
return lst.get(0);
}
public List<BusiDocPrintItemDto> queryServiceSubDocBusiCode(String custId,String docSn)throws Exception{
return cDoneCodeDao.queryDocPrintBusiCodeByCust(getOptr(), custId,docSn);
}
public List<BusiDocPrintItemDto> queryServiceSubDocFile(String busiCode,String custId,String userId,String condition,String docSn)throws Exception{
return cDoneCodeDao.queryDocPrintContentByCust(busiCode,getOptr(), custId,userId,condition,docSn);
}
public List<PrintFeeitemDto> queryFeeItems(String custId,String docSn)throws Exception{
List<PrintFeeitemDto> printFee = cFeeDao.queryPrintFee(custId, getOptr(),docSn);
return printFee;
}
private List<BBillWriteoffDto> queryWriteoffInfoByDonecode(Integer doneCode) throws JDBCException{
return bBillWriteoffDao.queryWriteoffInfo(doneCode);
}
/**
* 查询客户已打印业务单记录
* @param custId
* @return
*/
public List<CDoc> queryDocByDocSn(String docSn) throws Exception {
return cDoneCodeInfoDao.queryDocByDocSn(docSn);
}
/**
* 客户是否全部是模拟客户
* @param custId
* @return
*/
private boolean isAtvCust(String custId) throws JDBCException{
// boolean result = true;
// List<CUser> users = cUserDao.queryUserByCustId(custId);
// for(CUser user:users){
// if (!SystemConstants.USER_TYPE_ATV.equals(user.getUser_type()) && !SystemConstants.USER_TYPE_BAND.equals(user.getUser_type())){
// result=false;
// break;
// }
// }
return false;
}
/**
* @param done_code
* @return
*/
public String queryProtocolInfo(String done_code)throws Exception {
return cDoneCodeDao.queryProtocolInfo(done_code);
}
/**
* 生成一个新的序列值
*/
public String gDocSn()throws Exception{
return cDocDao.findSequence( SequenceConstants.SEQ_DOC_SN ).toString();
}
/**
* 生成一个新的DocItem项的序列值
*/
private String gDocItemSn()throws Exception{
return cDocDao.findSequence( SequenceConstants.SEQ_DOC_ITEM_SN ).toString();
}
/**
* 修改发票号
* @param oldInvoiceId
* @param oldInvoiceCode
* @param newInvoiceId
* @param newInvoiceCode
* @throws Exception
*/
public void changeInvoice(CInvoiceDto oldInvoice,CInvoiceDto newInvoice,String docSn) throws Exception {
cInvoiceDao.changeInvoice(oldInvoice, newInvoice,docSn);
cInvoiceDao.changeInvoiceItem(oldInvoice,newInvoice,docSn);
}
/**
* 保存业务单据(不包括费用,用于模板配置的单据统一保存)
* @param doneCode 业务流水
* @param docTypes 单据类型数组
* @throws Exception
*/
public String saveDoc(Integer doneCode,String busiCode,String custId,String[] docTypes) throws Exception{
if (docTypes != null && docTypes.length>0){
CDoc[] d = new CDoc[docTypes.length];
for(int i=0;i< docTypes.length ;i++){
d[i] = new CDoc();
d[i].setDoc_sn(gDocSn());
d[i].setDone_code(doneCode);
d[i].setBusi_code(busiCode);
d[i].setDoc_type(docTypes[i]);
d[i].setCust_id(custId);
d[i].setCreate_time(DateHelper.now());
setBaseInfo(d[i]);
}
cDocDao.save(d);
return d[0].getDoc_sn();
}
return "";
}
/**
* 保存打印记录信息
*
* @param data 要合并的项,及每项所对应的费用明细
* @param doneCode
* @throws Exception
*/
public void saveDoc(List<MergeFeeFormDto> data ,String custId, Integer doneCode,String busiCode) throws Exception{
if(null == data || data.size() == 0) return ;
Map<String,List<MergeFeeFormDto>> docs = CollectionHelper.converToMap(data,"doc_type");
//定义需要封装的参数值
List<CDoc> docList = new ArrayList<CDoc>();
List<CDocItem> itemList = new ArrayList<CDocItem>();
List<CDocFee> feeList = new ArrayList<CDocFee>();
List<String> feeSn = new ArrayList<String>();
CDoc tcd = null;
CDocFee tcdf = null ;
CDocItem tcdi = null ;
//封装参数
for (String docType : docs.keySet()) {
tcd = new CDoc( gDocSn(),custId, doneCode ,busiCode,docType );
setBaseInfo(tcd);
List<MergeFeeFormDto> _tMff = docs.get( tcd.getDoc_type());
for (MergeFeeFormDto m : _tMff) {
tcdi = m.transform();
tcdi.setDoc_sn(tcd.getDoc_sn() );
tcdi.setDocitem_sn( gDocItemSn());
for (String _sn : m.getFee_sns()) {
tcdf = new CDocFee(tcd.getDoc_sn(),tcdi.getDocitem_sn() , _sn);
feeList.add( tcdf );
feeSn.add( _sn );
}
itemList.add( tcdi );
}
docList.add( tcd );
}
//批量保存数据
cDocDao.save(docList.toArray(new CDoc[docList.size()]));
cDocItemDao.save(itemList.toArray(new CDocItem[itemList.size()]));
cDocFeeDao.save(feeList.toArray(new CDocFee[feeList.size()]));
// 更新费用状态为以生产单据
// cFeeDao.updateDocStatus(feeSn);
}
/**
* 保存发票打印项数据
* @param data
* @throws JDBCException
*/
public void saveInvioce(List<InvoiceFromDto> data) throws Exception {
if (null == data || data.size() == 0)
return;
List<CInvoice> invoices = new ArrayList<CInvoice>();
List<CInvoiceItem> invoiceitems = new ArrayList<CInvoiceItem>();
for (InvoiceFromDto invoice : data) {
List<String> docSnItems = invoice.getDocSnItems();
if (docSnItems != null && docSnItems.size() > 0) {
CInvoice cInvoice = new CInvoice();
cInvoice.setDoc_sn(invoice.getDoc_sn());
cInvoice.setInvoice_code(invoice.getInvoice_code());
cInvoice.setInvoice_id(invoice.getInvoice_id());
cInvoice.setInvoice_book_id(invoice.getInvoice_book_id());
cInvoice.setStatus(StatusConstants.ACTIVE);
cInvoice.setAmount(invoice.getAmount());
cInvoice.setDocitem_data(invoice.getDocitem_data());
setBaseInfo(cInvoice);
invoices.add(cInvoice);
for (String docitemsn : docSnItems) {
CInvoiceItem cInvoiceItem = new CInvoiceItem();
cInvoiceItem.setDocitem_sn(docitemsn);
cInvoiceItem.setInvoice_code(cInvoice.getInvoice_code());
cInvoiceItem.setInvoice_id(cInvoice.getInvoice_id());
invoiceitems.add(cInvoiceItem);
}
}
}
cInvoiceDao.save(invoices.toArray(new CInvoice[invoices.size()]));
cInvoiceItemDao.save(invoiceitems.toArray(new CInvoiceItem[invoiceitems
.size()]));
}
/**
* 通过data中的printitem_id获取<code>TInvoicePrintitem</code>配置记录项
*/
private List<TInvoicePrintitem> getPrintitem(List<MergeFeeFormDto> data)throws Exception {
//查询对应的数据printitem_id and doc_type
String[] ids = new String[data.size()];
for (int i = 0; i < data.size(); i++) {
ids[i] = data.get(i).getPrintitem_id();
}
return tInvoicePrintitemDao.queryPrintitem(getOptr().getCounty_id(), ids);
}
/**
* 将合并的费用项,按<code>printitem_id</code>对应的<code>doc_type</code>进行分类,
* 如果<code>printitem_id</code>对应的<code>doc_type</code>相等,则放入一个组里
*/
private Map<String , List<MergeFeeFormDto>> groupFee123(List<MergeFeeFormDto> data)throws Exception{
//封装对照表
Map<String, TInvoicePrintitem> temp = CollectionHelper.converToMapSingle(getPrintitem(data), "printitem_id");
//定义局部变量
Map<String, List<MergeFeeFormDto>> target = new HashMap<String, List<MergeFeeFormDto>>();
List<MergeFeeFormDto> tList = null;
String docType = null ;
for (MergeFeeFormDto mff : data) {
//从temp参照表中获取doc_type,
//并判断target是否存在该doc_type为key的元素
docType = temp.get(mff.getPrintitem_id()).getDoc_type();
tList = target.get(docType);
if(null == tList){
tList = new ArrayList<MergeFeeFormDto>();
target.put( docType , tList);
}
tList.add( mff );
}
return target;
}
/**
* @param unPrintInvoice
*/
private void fillTemplateFile(List<DocDto> unPrintInvoice) throws Exception {
Map<String, TBusiDocTemplatefile> templateFilemap = CollectionHelper
.converToMapSingle(tBusiDocTemplatefileDao.queryAll(getOptr()
.getCounty_id()), "doc_type");
for (DocDto doc : unPrintInvoice) {
TBusiDocTemplatefile templateFile = templateFilemap.get(doc
.getDoc_type());
if (templateFile == null)
throw new ComponentException("找不到对应的打印配置文件");
doc.setTemplate_filename(templateFile.getTemplate_filename());
doc.setPrint_type(templateFile.getPrint_type());
}
}
/**
* 查询预付费打印项
* @param feeSn
* @return
*/
public List<DocDto> queryUnPrintUnitPre(String feeSn) throws Exception {
List<DocDto> docs = cDocDao.queryUnPrintUnitPre(feeSn);
fillTemplateFile(docs);
return docs;
}
/**
* 查询客户下最后一次操作未打印的发票
* @param custId
* @return
*/
public List<DocDto> queryLastUnPrintInvoice(String custId) throws Exception {
List<DocDto> docs = cDocDao.queryLastUnPrintInvoice(custId);
fillTemplateFile(docs);
return docs;
}
/**
* 查询确认单
* @param custId
* @return
* @throws JDBCException
*/
public List<CDoneCodeInfo> queryPrintConfig(String custId, String[] doneCodes)
throws Exception {
List<CDoneCodeInfo> docs = null;
if (doneCodes == null || doneCodes.length == 0)
docs = cDoneCodeInfoDao.queryUnPrintConfig(getOptr().getCounty_id(),custId);
else
docs = cDoneCodeInfoDao.queryPrintConfig(doneCodes);
// fillTemplateFile(docs);
return docs;
}
/**
* 查询客户下的已支付单据
* @param custId
* @return
* @throws JDBCException
*/
public Pager<DocDto> queryDoc(String custId,Integer start,Integer limit) throws JDBCException{
return cDocDao.queryDoc(custId, start, limit);
}
/**
* 填充指定的数据
* @param methodName 按照逗号隔开的方法名,
* @return
*/
public void fillData(Map<String ,Object> map, String methodNames)throws Exception {
map.put("optr", getOptr());
map.put("date", new PrintDate());
Object custId= map.get("custid");
CCust cust = null;
if (custId!=null && StringHelper.isNotEmpty(custId.toString())){
String dataRight = "";
try {
dataRight = this.queryDataRightCon(getOptr(), DataRight.QUERY_CUST.toString());
} catch (Exception e) {
dataRight = " 1=1 ";
}
//TEST FLAG
CustFullInfoDto cfid = custComponent.searchCustInfoById(custId.toString());
cust = cfid.getCust();
map.put("cust", cust);
map.put("linkman", cfid.getLinkman());
}
//读取备注信息
CDoc doc = (CDoc) map.get("doc");
List<String> remarks = cDocItemDao.queryRemarkBySn(doc.getDoc_sn());
String remark = "";
for (String r : remarks) {
remark += r;
}
if(remark.length()>50)
remark = remark.substring(0,50);
map.put("remark",remark);
//获取动态数据
Class[] types = new Class[]{Map.class,CCust.class};
if(StringHelper.isNotEmpty(methodNames)) {
String[] mds = methodNames.split(",");
for (String md : mds) {
LoggerHelper.debug(PrintComponent.class, "invoke mothodName:"+md);
BeanHelper.invoke(dynamicDataComponent, md, types, new Object[]{map,cust});
}
}
}
public void setCCustDao(CCustDao custDao) {
cCustDao = custDao;
}
public void setCCustLinkmanDao(CCustLinkmanDao custLinkmanDao) {
cCustLinkmanDao = custLinkmanDao;
}
public void setCDocDao(CDocDao docDao) {
cDocDao = docDao;
}
public void setCDocItemDao(CDocItemDao docItemDao) {
cDocItemDao = docItemDao;
}
public void setCDocFeeDao(CDocFeeDao docFeeDao) {
cDocFeeDao = docFeeDao;
}
public void setTInvoicePrintitemDao(TInvoicePrintitemDao invoicePrintitemDao) {
tInvoicePrintitemDao = invoicePrintitemDao;
}
/**
* @param dynamicDataComponent the dynamicDataComponent to set
*/
public void setDynamicDataComponent(DynamicDataComponent dynamicDataComponent) {
this.dynamicDataComponent = dynamicDataComponent;
}
/**
* @param invoiceDao the cInvoiceDao to set
*/
public void setCInvoiceDao(CInvoiceDao invoiceDao) {
cInvoiceDao = invoiceDao;
}
/**
* @param invoiceItemDao the cInvoiceItemDao to set
*/
public void setCInvoiceItemDao(CInvoiceItemDao invoiceItemDao) {
cInvoiceItemDao = invoiceItemDao;
}
/**
* @param feeDao the cFeeDao to set
*/
public void setCFeeDao(CFeeDao feeDao) {
cFeeDao = feeDao;
}
/**
* 查询客户的所有发票信息
* @param custId
* @param countyId
* @return
*/
public List<CInvoiceDto> queryInvoiceByCustId(String custId) throws Exception {
return cInvoiceDao.queryInvoiceByCustId(custId, getOptr().getCounty_id());
}
/**
* 查询客户的单据 (不包括发票)
* @param custId
* @return
*/
public List<CDoneCodeInfo> queryDocByCustId(String custId) throws Exception {
return cDoneCodeInfoDao.queryDocByCustId(custId,getOptr().getCounty_id());
}
public List<CDoc> queryBusiConfirmDocByCustId(String custId) throws Exception {
List<CDoc> docs = cDoneCodeInfoDao.queryBusiConfirmDocByCustId(custId,getOptr().getCounty_id());
Map<String, List<CDoc>> map = CollectionHelper.converToMap(docs, "doc_sn");
List<CDoc> result = new ArrayList<CDoc>();
for(String key :map.keySet()){
List<CDoc> list = map.get(key);
CDoc doc = list.get(0);
String busiNames = "";
for(CDoc d:list){
busiNames += d.getBusi_name() + ",";
}
doc.setBusi_name(busiNames.substring(0, busiNames.length() -1));
result.add(doc);
}
return result;
}
/**
* 根据发票查询单据
* @param oldInvoiceId
* @param oldInvoiceCode
* @return
*/
public CDoc queryDocByInvoice(String oldInvoiceId, String oldInvoiceCode) throws JDBCException {
return cDocDao.queryByInvoice(oldInvoiceId,oldInvoiceCode);
}
/**
* 保存发票打印后信息
* @param invoice
* @throws JDBCException
*/
public void saveInvoice(Integer doneCode,InvoiceFromDto invoice,int balance) throws Exception {
String docitemData = StringHelper.isEmpty(invoice.getDocitem_data())?"":invoice.getDocitem_data();
docitemData += ","+balance;
List<String> docSnItems = invoice.getDocSnItems();
if (docSnItems != null && docSnItems.size() > 0) {
CInvoice cInvoice = new CInvoice();
cInvoice.setDone_code(doneCode);
cInvoice.setDoc_sn(invoice.getDoc_sn());
cInvoice.setInvoice_code(invoice.getInvoice_code());
cInvoice.setInvoice_id(invoice.getInvoice_id());
cInvoice.setInvoice_book_id(invoice.getInvoice_book_id());
cInvoice.setStatus(StatusConstants.ACTIVE);
cInvoice.setAmount(invoice.getAmount());
cInvoice.setDocitem_data(docitemData);
cInvoice.setPrint_date(DateHelper.now());
setBaseInfo(cInvoice);
cInvoiceDao.save(cInvoice);
List<CInvoiceItem> invoiceitems = new ArrayList<CInvoiceItem>();
for (String docitemsn : docSnItems) {
String[] dsns = docitemsn.split(",");
//删除已打印的费用记录,用于操作员未打印提示
cFeeUnprintDao.deleteUnPrintByDocItem(dsns);
for(String sn : dsns){
CInvoiceItem cInvoiceItem = new CInvoiceItem();
cInvoiceItem.setDocitem_sn(sn);
cInvoiceItem.setInvoice_code(cInvoice.getInvoice_code());
cInvoiceItem.setInvoice_id(cInvoice.getInvoice_id());
invoiceitems.add(cInvoiceItem);
cFeeDao.updateInvoiceByDocItem(sn, cInvoice.getInvoice_code(), cInvoice.getInvoice_book_id(),
cInvoice.getInvoice_id(),SystemConstants.INVOICE_MODE_AUTO);
}
}
cInvoiceItemDao.save(invoiceitems.toArray(new CInvoiceItem[invoiceitems
.size()]));
}
}
/**
* 查询发票重打信息
* @param invoiceId
* @param invoiceCode
* @return
*/
public CInvoiceDto queryReprintInvoice(String invoiceId, String invoiceCode) throws Exception {
return cInvoiceDao.queryReprintInvoice(invoiceId,invoiceCode,getOptr().getCounty_id());
}
/**
*
* @param docSn
* @return
*/
public void saveConfigPrint(String[] doneCode) throws JDBCException {
cDocDao.updateLastPrintDate(doneCode);
}
/**
* @param busiDocTemplatefileDao the tBusiDocTemplatefileDao to set
*/
public void setTBusiDocTemplatefileDao(
TBusiDocTemplatefileDao busiDocTemplatefileDao) {
tBusiDocTemplatefileDao = busiDocTemplatefileDao;
}
/**
* @param doneCode
* @return
*/
public List<DocDto> queryDocInvoice(Integer doneCode) throws Exception {
List<DocDto> docs = cDocDao.queryDocInvoice(doneCode);
fillTemplateFile(docs);
return docs;
}
public List<DocDto> queryInvoiceType(Integer doneCode,String custId) throws Exception {
List<DocDto> docs = cDocDao.queryInvoiceType(doneCode,custId,getOptr().getCounty_id());
fillTemplateFile(docs);
return docs;
}
public List<String> queryDocFeeSn(List<String> docSnItems) throws JDBCException{
return cFeeDao.queryDocFeeSn(docSnItems);
}
/**
* @param docSnItems
* @param invoice_id
* @param invoice_code
* @param invoice_book_id
*/
public void updateDocStatus(List<String> feeSnList, String invoiceId,
String invoiceCode, String invoiceBookId) throws JDBCException {
cFeeDao.updateDocStatus(feeSnList, invoiceId, invoiceCode,
invoiceBookId);
}
/**
* @param printitemId
* @return
*/
public TPrintitem queryPrintItemById(String printitemId) throws JDBCException {
return tPrintitemDao.findByKey(printitemId);
}
/**
* @param printitem
*/
public void editPrintitem(TPrintitem printitem) throws JDBCException {
tPrintitemDao.update(printitem);
}
/**
* @param doneCodeInfoDao the cDoneCodeInfoDao to set
*/
public void setCDoneCodeInfoDao(CDoneCodeInfoDao doneCodeInfoDao) {
cDoneCodeInfoDao = doneCodeInfoDao;
}
public void setTPrintitemDao(TPrintitemDao printitemDao) {
tPrintitemDao = printitemDao;
}
/**
* @param doneCode
* @return
*/
public List<PrintItemDto> queryUnPrintItemByDoneCode(String doneCode) throws Exception {
// TODO Auto-generated method stub
return cDocDao.queryUnPrintItemByDoneCode(doneCode);
}
/**
* @param doneCode
*/
public void deleteDoc(String doneCode) throws Exception{
// TODO Auto-generated method stub
cDocDao.deleteDoc(doneCode);
}
/**
* @param docItems
* @param docSn
* @param doneCode
*/
public void updateDocItem(String[] docItems, String docSn) throws Exception{
cDocDao.updateDocItem( docItems, docSn);
}
public void setCUserDao(CUserDao cUserDao) {
this.cUserDao = cUserDao;
}
public void setBBillWriteoffDao(BBillWriteoffDao bBillWriteoffDao) {
this.bBillWriteoffDao = bBillWriteoffDao;
}
/**
* @param custComponent the custComponent to set
*/
public void setCustComponent(CustComponent custComponent) {
this.custComponent = custComponent;
}
}