package com.mvc.service.impl;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mvc.controller.LoginController;
import com.mvc.dao.InvoiceDao;
import com.mvc.entity.Invoice;
import com.mvc.repository.InvoiceRepository;
import com.mvc.service.InvoiceService;
import com.utils.Pager;
/**
* 发票
*
* @author zjn
* @date 2016年9月16日
*/
@Service("invoiceServiceImpl")
public class InvoiceServiceImpl implements InvoiceService {
@Autowired
InvoiceRepository invoiceRepository;
@Autowired
InvoiceDao invoiceDao;
// 根据发票ID查询发票详情
public Invoice findById(Integer invoiceId) {
return invoiceRepository.findById(invoiceId);
}
// 根据发票id删除发票
public boolean delete(Integer invoiceId) {
return invoiceDao.delete(invoiceId);
}
// 根据合同id,页数返回发票列表
public List<Invoice> findByContId(Integer cont_id, Integer offset, Integer end) {
return invoiceDao.findByContId(cont_id, offset, end);
}
// 根据合同ID查询发票总条数
public Integer countByContId(Integer cont_id) {
return invoiceDao.countByContId(cont_id);
}
// 根据合同ID查询发票总金额
public Float totalMoneyOfInvoice(Integer contId) {
return invoiceDao.totalMoneyOfInvoice(contId);
}
// 创建发票
public boolean save(Invoice invoice) {
Invoice invoiceResult = invoiceRepository.saveAndFlush(invoice);
if (invoiceResult.getInvo_id() != null) {
return true;
} else
return false;
}
// 根据用户id,页数返回发票列表
public List<Invoice> findByPage(Integer user_id, Integer ifSend, Integer offset, Integer end) {
return invoiceDao.findByPage(user_id, ifSend, offset, end);
}
// 根据用户ID查询发票总条数
public Integer countByParam(Integer user_id, Integer ifSend) {
return invoiceDao.countByParam(user_id, ifSend);
}
// 按发票状态获取列表
public Integer WaitingDealCountByParam(Integer user_id, Integer invoiceState) {
return invoiceDao.WaitingDealCountByParam(user_id, invoiceState);
}
// 根据用户id,页数返回发票列表
public List<Invoice> WaitingDealFindByPage(Integer user_id, Integer invoiceState, Integer offset, Integer end) {
return invoiceDao.WaitingDealFindByPage(user_id, invoiceState, offset, end);
}
// 点击完成发票任务
public boolean invoiceFinish(Integer invoiceId, Date invoTime) {
return invoiceDao.invoiceFinish(invoiceId, invoTime);
}
// 主任转发发票
public boolean transmitInvoice(Integer invoiceId, Date invoEtime, Integer receiverId) {
return invoiceDao.transmitInvoice(invoiceId, invoEtime, receiverId);
}
// 根据权限,状态,页码 查找发票
@Override
public List<Invoice> selectInvoByStateAndPerm(Integer invoState, String permission, Integer user_id, Pager pager) {
List<Invoice> list;
permission = LoginController.numToPermissionStr(permission);
if (invoState == -1) {// -1:全部,0:待审核,1:待处理,2:已完成
list = invoiceDao.findByAllAndPerm(permission, user_id, pager);
} else {
list = invoiceDao.findByStateAndPerm(invoState, permission, user_id, pager);
}
return list;
}
// 根据权限,状态 查询发票总条数
@Override
public Integer countByStateAndPerm(Integer invoState, String permission, Integer user_id) {
Integer totalRow;
permission = LoginController.numToPermissionStr(permission);
if (invoState == -1) {// -1:全部,0:待审核,1:待处理,2:已完成
totalRow = invoiceDao.countByAllAndPerm(permission, user_id);
} else {
totalRow = invoiceDao.countByStateAndPerm(invoState, permission, user_id);
}
return totalRow;
}
// 根据合同ID,状态,页码 查找发票
@Override
public List<Invoice> selectInvoByStateAndContId(Integer invoState, Integer cont_id, Pager pager) {
List<Invoice> list;
if (invoState == -1) {// -1:全部,0:待审核,1:待处理,2:已完成
list = invoiceDao.findByAllAndContId(cont_id, pager);
} else {
list = invoiceDao.findByStateAndContId(invoState, cont_id, pager);
}
return list;
}
// 根据合同ID,状态 查询发票总条数
@Override
public Integer countByStateAndContId(Integer invoState, Integer cont_id) {
Integer totalRow;
if (invoState == -1) {// -1:全部,0:待审核,1:待处理,2:已完成
totalRow = invoiceDao.countByAllAndContId(cont_id);
} else {
totalRow = invoiceDao.countByStateAndContId(invoState, cont_id);
}
return totalRow;
}
// 根据合同ID获取已完成发票总条数
@Override
public Integer countTotalRow(Integer cont_id) {
return invoiceDao.countTotalRow(cont_id);
}
}