Commit 8107898d by chongli

发票申请根据订单号查询;被驳回的订单可以再次提交

parent 3f4f2601
package com.ctrip.fun.golf.dao.basic;
import java.math.BigInteger;
import java.util.HashMap;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import com.ctrip.fun.common.vo.SortDirectionEnum;
import java.util.Map;
import java.util.Map.Entry;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import com.ctrip.fun.common.vo.basic.InvoiceRequestQuery;
import com.ctrip.fun.golf.dao.GenericHibernateDao;
import com.ctrip.fun.golf.domain.basic.InvoiceRequest;
......@@ -15,67 +14,108 @@ import com.ctrip.fun.golf.vo.PagedEntityBean;
public class InvoiceRequestDao extends GenericHibernateDao<InvoiceRequest, Integer>{
public PagedEntityBean<InvoiceRequest> queryList(Object queryCon) {
InvoiceRequestQuery queryBean = (InvoiceRequestQuery) queryCon;
Criteria criteria = this.getCriteria(InvoiceRequest.class);
InvoiceRequestQuery queryBean = (InvoiceRequestQuery) queryCon;
StringBuilder sb = new StringBuilder(300);
sb.append("SELECT SQL_CALC_FOUND_ROWS distinct a.id,costOfDepart,invoiceTitle,taxIdNum,contactName,contactTel,contactAddress,invoiceRemark,expressNo,refusedReason,sendTime,refusedReason,createTime,`status`,salesRemark,requestPerson");
sb.append(" FROM ord_invoicerequest a LEFT JOIN ord_invoiceorderinfo b on (a.id=b.requestId)");
sb.append("where 1=1 ");
Map<String, Object> parameters = new HashMap<String, Object>();
if (null != queryBean.getContactTel() && !"".equals(queryBean.getContactTel())) {
criteria.add(Restrictions.like("contactTel", queryBean.getContactTel(), MatchMode.ANYWHERE));
}
if (null != queryBean.getRequestPerson()&& !"".equals(queryBean.getRequestPerson())) {
criteria.add(Restrictions.like("requestPerson", queryBean.getRequestPerson(), MatchMode.ANYWHERE));
}
if (null != queryBean.getStatus()&& 0 != queryBean.getStatus()) {
criteria.add(Restrictions.eq("status", queryBean.getStatus()));
}
if (queryBean.getCreateTimeStart() != null) {
criteria.add(Restrictions.ge("createTime", queryBean.getCreateTimeStart()));
}
if (queryBean.getCreateTimeEnd() != null) {
criteria.add(Restrictions.le("createTime", queryBean.getCreateTimeEnd()));
}
sb.append(" and a.contactTel=:contactTel ");
parameters.put("contactTel", queryBean.getContactTel());
}
if (null != queryBean.getRequestPerson() && !"".equals(queryBean.getRequestPerson())) {
sb.append(" and a.requestPerson=:requestPerson ");
parameters.put("requestPerson", queryBean.getRequestPerson());
}
if (null != queryBean.getCreateTimeStart() && !"".equals(queryBean.getCreateTimeStart())) {
sb.append(" and a.createTime>:createTimeStart ");
parameters.put("createTimeStart", queryBean.getCreateTimeStart());
}
if (null != queryBean.getCreateTimeEnd() && !"".equals(queryBean.getCreateTimeEnd())) {
sb.append(" and a.createTime<:createTimeEnd ");
parameters.put("createTimeEnd", queryBean.getCreateTimeEnd());
}
if (null != queryBean.getStatus() && queryBean.getStatus()!=0) {
sb.append(" and a.status=:status ");
parameters.put("status", queryBean.getStatus());
}
if (null != queryBean.getOrderNo() && !"".equals(queryBean.getOrderNo())) {
sb.append(" and b.orderNo=:orderNo ");
parameters.put("orderNo", queryBean.getOrderNo());
}
sb.append("order by id");
Session session = this.getSession();
SQLQuery query = session.createSQLQuery(sb.toString());
criteria.setFirstResult(queryBean.getPagerOffset());
criteria.setMaxResults(queryBean.getPagerPerPage());
if (queryBean.getSortDirection().equals(SortDirectionEnum.ASC)) {
criteria.addOrder(Order.asc("id"));
} else {
criteria.addOrder(Order.desc("id"));
for (Entry<String, Object> entry : parameters.entrySet()) {
query.setParameter(entry.getKey(), entry.getValue());
}
List<InvoiceRequest> result = criteria.list();
criteria.setFirstResult(0);
Long count = (Long) criteria.setProjection(Projections.rowCount())
.uniqueResult();
query.addEntity(InvoiceRequest.class).list();
query.setFirstResult(queryBean.getPagerOffset());
query.setMaxResults(queryBean.getPagerPerPage());
List<InvoiceRequest> list = query.list();
Query queryCount = session.createSQLQuery(" SELECT FOUND_ROWS() ");
int count = ((BigInteger) queryCount.uniqueResult()).intValue();
PagedEntityBean<InvoiceRequest> pagedEntityBean = new PagedEntityBean<InvoiceRequest>();
pagedEntityBean.setCount(count);
pagedEntityBean.setResult(result);
pagedEntityBean.setCount((long)count);
pagedEntityBean.setResult(list);
return pagedEntityBean;
}
public List<InvoiceRequest> excelList(Object queryCon) {
InvoiceRequestQuery queryBean = (InvoiceRequestQuery) queryCon;
Criteria criteria = this.getCriteria(InvoiceRequest.class);
InvoiceRequestQuery queryBean = (InvoiceRequestQuery) queryCon;
StringBuilder sb = new StringBuilder(300);
sb.append("SELECT distinct a.id,costOfDepart,invoiceTitle,taxIdNum,contactName,contactTel,contactAddress,invoiceRemark,expressNo,refusedReason,sendTime,refusedReason,createTime,`status`,salesRemark,requestPerson");
sb.append(" FROM ord_invoicerequest a LEFT JOIN ord_invoiceorderinfo b on (a.id=b.requestId)");
sb.append("where 1=1 ");
Map<String, Object> parameters = new HashMap<String, Object>();
if (null != queryBean.getContactTel() && !"".equals(queryBean.getContactTel())) {
criteria.add(Restrictions.like("contactTel", queryBean.getContactTel(), MatchMode.ANYWHERE));
}
if (null != queryBean.getRequestPerson()&& !"".equals(queryBean.getRequestPerson())) {
criteria.add(Restrictions.like("requestPerson", queryBean.getRequestPerson(), MatchMode.ANYWHERE));
sb.append(" and a.contactTel=:contactTel ");
parameters.put("contactTel", queryBean.getContactTel());
}
if (queryBean.getCreateTimeStart() != null) {
criteria.add(Restrictions.ge("createTime", queryBean.getCreateTimeStart()));
}
if (queryBean.getCreateTimeEnd() != null) {
criteria.add(Restrictions.le("createTime", queryBean.getCreateTimeEnd()));
}
if (queryBean.getSortDirection().equals(SortDirectionEnum.ASC)) {
criteria.addOrder(Order.asc("id"));
} else {
criteria.addOrder(Order.desc("id"));
if (null != queryBean.getRequestPerson() && !"".equals(queryBean.getRequestPerson())) {
sb.append(" and a.requestPerson=:requestPerson ");
parameters.put("requestPerson", queryBean.getRequestPerson());
}
if (null != queryBean.getCreateTimeStart() && !"".equals(queryBean.getCreateTimeStart())) {
sb.append(" and a.createTime>:createTimeStart ");
parameters.put("createTimeStart", queryBean.getCreateTimeStart());
}
if (null != queryBean.getCreateTimeEnd() && !"".equals(queryBean.getCreateTimeEnd())) {
sb.append(" and a.createTime<:createTimeEnd ");
parameters.put("createTimeEnd", queryBean.getCreateTimeEnd());
}
if (null != queryBean.getStatus() && queryBean.getStatus()!=0) {
sb.append(" and a.status=:status ");
parameters.put("status", queryBean.getStatus());
}
if (null != queryBean.getOrderNo() && !"".equals(queryBean.getOrderNo())) {
sb.append(" and b.orderNo=:orderNo ");
parameters.put("orderNo", queryBean.getOrderNo());
}
sb.append("order by id");
Session session = this.getSession();
SQLQuery query = session.createSQLQuery(sb.toString());
for (Entry<String, Object> entry : parameters.entrySet()) {
query.setParameter(entry.getKey(), entry.getValue());
}
List<InvoiceRequest> result = criteria.list();
return result;
query.addEntity(InvoiceRequest.class).list();
List<InvoiceRequest> list = query.list();
return list;
}
}
......@@ -2,8 +2,11 @@ package com.ctrip.fun.golf.service.basic;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.ctrip.fun.common.core.util.BeanConverter;
import com.ctrip.fun.common.core.util.StringUtils;
import com.ctrip.fun.common.vo.basic.InvoiceOrderInfoBean;
import com.ctrip.fun.common.vo.basic.InvoiceRequestBean;
import com.ctrip.fun.common.vo.basic.InvoiceRequestQuery;
......@@ -27,13 +30,16 @@ public class InvoiceRequestService extends GenericService<InvoiceRequestDao, Inv
if(invoiceOrderInfos!=null){
for(InvoiceOrderInfoBean invoiceOrderInfoBean:invoiceOrderInfos){
List<InvoiceOrderInfo> list = invoiceOrderInfoDao.findByOrderNo(invoiceOrderInfoBean.getOrderNo().trim());
if(list!=null&&list.size()>0){
haveInvoice=true;
break;
for(InvoiceOrderInfo orderInfo:list){
InvoiceRequest invoiceRequest = invoiceRequestDao.findById(orderInfo.getRequestId());
if(list!=null&&list.size()>0&&(StringUtils.isEmpty(invoiceRequest.getRefusedReason()))){
haveInvoice=true;
break;
}
}
}
}
if(!haveInvoice){
InvoiceRequest invoiceRequest = new InvoiceRequest();
BeanConverter.copyProperties(invoiceRequest, invoiceRequestBean);
......@@ -50,10 +56,7 @@ public class InvoiceRequestService extends GenericService<InvoiceRequestDao, Inv
}
}
}
return 1;
return 1;
}
public List<InvoiceRequestBean> excelList(InvoiceRequestQuery invoiceRequestQuery) {
......@@ -91,7 +94,16 @@ public class InvoiceRequestService extends GenericService<InvoiceRequestDao, Inv
}
public void updateInvoiceRequests(List<InvoiceRequestBean> list) {
//过滤掉已经处理过的发票申请
List<InvoiceRequestBean> noHandleInvoice = new ArrayList<InvoiceRequestBean>();
for(InvoiceRequestBean bean:list){
InvoiceRequest entity = invoiceRequestDao.findById(bean.getId());
if(entity.getStatus()!=null&&entity.getStatus().intValue()==1){
noHandleInvoice.add(bean);
}
}
for(InvoiceRequestBean bean:noHandleInvoice){
this.update(bean);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment