shenhao 4 rokov pred
rodič
commit
2805d67333

+ 13 - 0
src/main/java/com/ssj/bean/weixin/sales/domain/LibOrderDetails.java

@@ -170,6 +170,11 @@ public class LibOrderDetails  extends BaseEntity{
 	 */
 	private Date startTime;
 
+	/**
+	 * 是否已开票 1-是 2-申请中 其它未开具
+	 */
+	private Integer invoiceState;
+
 	public Date getStartTime() {
 		return startTime;
 	}
@@ -395,4 +400,12 @@ public class LibOrderDetails  extends BaseEntity{
 	public void setIsClose(Integer isClose) {
 		this.isClose = isClose;
 	}
+
+	public Integer getInvoiceState() {
+		return invoiceState;
+	}
+
+	public void setInvoiceState(Integer invoiceState) {
+		this.invoiceState = invoiceState;
+	}
 }

+ 8 - 0
src/main/java/com/ssj/dao/weixin/sales/dao/LibOrderDetailsQueryDao.java

@@ -75,4 +75,12 @@ public interface LibOrderDetailsQueryDao {
 		* @List<Map<String,Object>>
 		 */
 		List<Map<String, Object>> getOrderDetailMonthA(Map<String, Object> searchParams);
+
+	/**
+	 * 查找开票数据
+	 * @param params
+	 * @param initPage
+	 * @return
+	 */
+        Page<Map<String, Object>> findForInvoicePageList(Map<String, Object> params, Pageable initPage);
 }

+ 42 - 0
src/main/java/com/ssj/dao/weixin/sales/dao/impl/LibOrderDetailsQueryDaoImpl.java

@@ -876,4 +876,46 @@ public class LibOrderDetailsQueryDaoImpl  implements LibOrderDetailsQueryDao {
 		return dao.findMap(selSQL.toString(), queryParams.toArray());
 	}
 
+	@Override
+	public Page<Map<String, Object>> findForInvoicePageList(Map<String, Object> searchParams, Pageable initPage) {
+		StringBuilder selSQL = new StringBuilder();
+		List<Object> queryParams = new ArrayList<Object>();
+		selSQL.append(" SELECT   d.id,o.transaction_id,d.order_no ,d.order_status ,d.create_time as zf_time,d.details , t.league_name ,m.create_time,    ");
+		selSQL.append("  d.end_time,d.start_time,m.type,m.invoice_title,m.taxpayer_id,m.email,d.invoice_state, d.price,m.invoice_type,m.invoice_content ");
+		selSQL.append("  from tb_lib_invoice_manage m       ");
+		selSQL.append("  left join tb_lib_order_details d on m.order_detail_id = d.id");
+		selSQL.append("  LEFT JOIN tb_orders o ON d.order_id=o.id");
+		selSQL.append("  join  tb_lib_join  t  on d.lib_id = t.id ");
+		selSQL.append("  where   1=1  ");
+
+		if (searchParams.get("orgCode") != null && !searchParams.get("orgCode").equals("")) {
+			selSQL.append(" and  t.org_code in ( ");
+			selSQL.append(searchParams.get("orgCode"));
+			selSQL.append(" ) ");
+		}
+		if (searchParams.get("beginDate") != null && !searchParams.get("beginDate").equals("")) {
+			selSQL.append(" and TO_DAYS(d.create_time) >=TO_DAYS(?) ");
+			queryParams.add(searchParams.get("beginDate"));
+		}
+		if (searchParams.get("endDate") != null && !searchParams.get("endDate").equals("")) {
+			selSQL.append(" and TO_DAYS(d.create_time) <=TO_DAYS(?) ");
+			queryParams.add(searchParams.get("endDate"));
+		}
+		if (searchParams.get("libId") != null && !searchParams.get("libId").equals("")) {
+			selSQL.append(" and t.id = ? ");
+			queryParams.add(searchParams.get("libId"));
+		}
+		if (searchParams.get("libtype") != null && !searchParams.get("libtype").equals("")) {
+			selSQL.append(" and d.libtype = ? ");
+			queryParams.add(searchParams.get("libtype"));
+		}
+		if (searchParams.get("order_no") != null && !searchParams.get("order_no").equals("")) {
+			selSQL.append(" and d.order_no = ?  ");
+			queryParams.add(searchParams.get("order_no"));
+		}
+
+		selSQL.append(" order by d.create_time  desc  ");
+		return dao.findPage(selSQL.toString(), queryParams.toArray(), initPage);
+	}
+
 }

+ 7 - 0
src/main/java/com/ssj/service/weixin/sales/service/LibOrderDetailsService.java

@@ -345,4 +345,11 @@ public interface LibOrderDetailsService extends BaseService<LibOrderDetails, Str
 	List<LibOrderDetails> findOrderDetailList(String vipId, String priceSpecies, int appType);
 
 
+	/**
+	 * 查找用户申请开票信息
+	 * @param params
+	 * @param initPage
+	 * @return
+	 */
+    Page<Map<String, Object>> findForInvoicePageList(Map<String, Object> params, Pageable initPage);
 }

+ 5 - 0
src/main/java/com/ssj/service/weixin/sales/service/impl/LibOrderDetailsServiceImpl.java

@@ -1465,4 +1465,9 @@ public class LibOrderDetailsServiceImpl extends BaseServiceImpl<LibOrderDetails,
 		return libOrderDetailsDao.findByVipIdAndPriceSpeciesAndOrderStatusAndAppTypeOrderByCreateTimeDesc(vipId, priceSpecies, 1, appType);
 	}
 
+	@Override
+	public Page<Map<String, Object>> findForInvoicePageList(Map<String, Object> params, Pageable initPage) {
+		return libOrderDetailsQueryDao.findForInvoicePageList(params,initPage);
+	}
+
 }

+ 142 - 0
src/main/resources/templates/sys/order/invoiceOrderList.html

@@ -0,0 +1,142 @@
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+<title>私塾家</title>
+<script th:include="sys/common/metaCSS" th:remove="tag"></script> 
+<script th:include="sys/common/metaJS" th:remove="tag"></script> 
+<script src="sys/js/My97DatePicker/WdatePicker.js" th:src="@{/static/sys/js/My97DatePicker/WdatePicker.js}"></script>
+</head>
+<style>
+	.tablelink{margin-right:10px;}
+	.stylecss{
+	      color: red;
+	}
+	.select_width{
+	     width: 220px;
+	}
+	.date_width{
+	     width: 150px;
+	}
+</style>
+<body>
+<div class="place">
+	<span>位置:</span>
+	<ul class="placeul">
+		<li><a href="#">财务管理</a></li>
+		<li><a href="#">小塾系统服务费销售订单开票数据</a></li>
+	</ul>
+</div>
+<div class="rightinfo">
+	<form id="seachform" th:action="@{/sys/order/invoiceOrderList.html}" method="post">
+	  <input type="hidden" name="reportType" id="reportType" />
+	<ul class="seachform">
+			<li>
+				<label>开始时间</label>
+				<input type="text" id="beginDate" name="beginDate"  onclick="WdatePicker({readOnly:true,maxDate:'#F{$dp.$D(\'endDate\')}'})" th:value="${search.beginDate }" class="scinput date_width " placeholder="开始时间">
+			</li>
+			<li>
+				<label>结束时间</label>
+				<input type="text" id="endDate" name="endDate"  onclick="WdatePicker({minDate:'#F{$dp.$D(\'beginDate\')}',maxDate:'%y-%M-%d'})" th:value="${search.endDate }" class="scinput date_width" placeholder="结束时间">
+			</li>
+			<li>
+			<label>订单编号</label>
+			  <input name="order_no" type="text" class="scinput" th:value="${search.get('order_no')}"/>
+		    </li>
+			<li>
+				<label>图书馆</label>
+					<select class="scinput select_width"  name="libId"   style="width: 220px;" >
+						<option value=""   >全部</option>
+						<option th:each="item:${libList}"  th:value="${item.id}"  th:selected="${ search.get('libId') eq item.id }"  th:text="${item.leagueName}"></option>
+					</select>
+			</li>
+			
+		<li>
+			<input type="button" class="scbtn" value="查询" />
+		</li>
+		
+		
+	</ul>
+
+	</form>
+	<table class="tablelist">
+		<thead>
+		    <tr>
+		        <th style="width: 50px;">序号</th>
+		        <th>机构</th>
+		        <th>订单编号</th>
+		        <th>微信支付业务单号</th>
+		        <th>产品明细</th>
+		        <th>金额</th>
+		        <th>支付时间</th>
+		        <th>订单状态</th>
+				<th>抬头类型</th>
+				<th>发票抬头</th>
+				<th>纳税人识别号</th>
+				<th>email</th>
+				<th>是否已开票</th>
+				<th>申请开票时间</th>
+		    </tr>
+		</thead>
+		<tbody>
+			<tr th:each="item:${list}" >
+				<td th:text="${itemStat.count}" ></td>
+					<td th:text="${item.get('league_name')}"></td>
+					<td th:text="${item.get('order_no')}"></td>
+					<td th:text="${item.get('transaction_id')}"></td>
+					<td th:text="${item.get('details')}"></td>
+					<td th:text=" ${#strings.contains(item.get('price'),'.00')} ?  ${#numbers.formatDecimal(item.get('price'),1,0)} :  ${#numbers.formatDecimal(item.get('price'),1,2)} " style="color:  red;"></td>
+			        <td  th:text="${#calendars.format(item.get('zf_time'),'yyyy-MM-dd HH:mm')}" ></td>
+					<td  th:switch="${item.get('order_status')}">
+					   <span th:case="1">已支付</span>
+					   <span th:case="2" style="color:  red;">已退款</span>
+					   <span th:case="3" style="color:  red;">财务手动</span>
+					   <span th:case="*">其他</span>
+					</td>
+
+				<td  th:switch="${item.get('type')}">
+					<span th:case="1">个人</span>
+					<span th:case="2">企业</span>
+				</td>
+				<td th:text="${item.get('invoice_title')}"></td>
+				<td th:text="${item.get('taxpayer_id')}"></td>
+				<td th:text="${item.get('email')}"></td>
+				<td  th:switch="${item.get('invoice_state')}">
+					<span th:case="1">已开票</span>
+					<span  style="color:  green;" th:case="2" th:onclick="'updateCourseNum(\''+${item.id}+'\',this)'">申请中</span>
+					<span th:case="*">未开票</span>
+				</td>
+				<td th:text="${#calendars.format(item.get('create_time'),'yyyy-MM-dd HH:mm')}"></td>
+			</tr>
+		</tbody>
+	</table>
+	<!-- 分页 -->
+	<div class="pagin">
+    	<div class="message">共<i class="blue">[[${page.rowCnt}]]</i>条记录,当前显示第&nbsp;<i class="blue">[[${page.pageNo }]]&nbsp;</i>页</div>
+    	<div th:utext='${listNavigatHtml}' th:remove="tag" ></div>
+   	</div>
+</div>
+</body>
+<script type="text/javascript">
+function updateCourseNum(id,_this){
+	$(_this).removeAttr("onBlur");
+	$.ajax({
+		url : "[[${sysUrl}]]/sys/order/updateOrderInvoice",
+		type : "post",
+		data : {
+			id : id
+		},
+		dataType : "json",
+		success : function(data) {
+			if(data.code=='999'){
+				parent.layer.msg('操作成功',{icon:1});
+				location.reload();
+			}else{
+				parent.layer.msg('操作失败',{icon: 9})
+				$(_this).attr("onclick","updateCourseNum("+id+","+"this)");
+			}
+		}
+	});
+}
+
+</script>
+
+</html>