ソースを参照

Merge branch 'feature/relation_type_item' of http://47.101.143.145:8090/77975466/pco into feature/relation_type_item

qzyReal 2 年 前
コミット
d2a9b65085

+ 168 - 0
sp-admin/sa-view/tb-fee-statistics/dayStatsPrint.html

@@ -0,0 +1,168 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>打印收费明细</title>
+  <style type="text/css">
+    body{left:0px;top:0px;right:0px;bottom:0px;margin:0px;font-family: Arial, Helvetica, sans-serif;font-size: 12px;overflow: hidden;white-space: nowrap;}
+
+
+  </style>
+  <script src="../../static/print/jquery-2.0.3.js" type="text/javascript"></script>
+  <script src="../../static/print/jquery.jPrintArea.js" type="text/javascript"></script>
+
+</head>
+
+<body>
+
+<div>
+
+  <input type="button" style="height: 30;" id="print_button" value="打印" />
+
+  <fieldset align="">
+    <legend>打印区</legend>
+    <div id="myPrintArea" style="height: 1500;">
+      <div align="center">
+        <SPAN style="TEXT-DECORATION: underline;font-size:25px">日报表</SPAN>
+        <br/><br/>
+      </div>
+      <div style="text-align:center; font-size:15px;he">
+        <table id="dp" width="100%" style="border-collapse:collapse;border:none;">
+          <tr height="80">
+            <td style="border:solid #000 1px;text-align: left;" colspan="3">单位:广西东兴北投口岸投资有限公司</td>
+            <td style="border:solid #000 1px;text-align: center;" colspan="5">金额单位:元</td>
+            <td style="border:solid #000 1px;text-align: right;" colspan="3"><div  id="time" align="right"></div></td>
+          </tr>
+          <tr height="80">
+            <td style="border:solid #000 1px; " rowspan="2">日期</td>
+            <td style="border:solid #000 1px;text-align: center;" rowspan="2">收费项目</td>
+            <td style="border:solid #000 1px; " colspan="4" >收费方式</td>
+            <td style="border:solid #000 1px; " rowspan="2">数量</td>
+            <td style="border:solid #000 1px; " rowspan="2">总价</td>
+            <td style="border:solid #000 1px; " rowspan="2">税率</td>
+            <td style="border:solid #000 1px; " rowspan="2">税款</td>
+            <td style="border:solid #000 1px; " rowspan="2">不含税金额</td>
+          </tr>
+          <tr height="80">
+            <td style="border:solid #000 1px; " >微信</td>
+            <td style="border:solid #000 1px; " >支付宝</td>
+            <td style="border:solid #000 1px; "  >银联</td>
+            <td style="border:solid #000 1px; " >预存金额</td>
+          </tr>
+        </table>
+
+      </div>
+            <div align="center">
+              <br/><br/>
+              <SPAN style=";font-size:15px">
+                收费统计员:
+                &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
+                收费核对员:
+                &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
+                收费员:
+              </SPAN>
+            </div>
+
+    </div>
+  </fieldset>
+
+</div>
+
+<script type="text/javascript">
+  $(function(){
+    $("#print_button").click(function(){
+      $("#myPrintArea").printArea();
+    });
+    function getUrlParam(name)
+    {
+      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
+      var r = window.location.search.substr(1).match(reg);  //匹配目标参数
+      if (r!=null) return unescape(r[2]); return null; //返回参数值
+    }
+
+    var isMonth = getUrlParam('isMonth');
+    isMonth = isMonth != '' ? isMonth : null;
+    var isYear = getUrlParam('isYear');
+    isYear = isYear != '' ? isYear : null;
+
+
+    var beginDay = getUrlParam('beginDay');
+    beginDay = beginDay != '' ? beginDay : null;
+    var endDay = getUrlParam('endDay');
+    endDay = endDay != '' ? endDay : null;
+    var beginMonth = getUrlParam('beginMonth');
+    beginMonth = beginMonth != '' ? beginMonth : null;
+    var endMonth = getUrlParam('endMonth');
+    endMonth = endMonth != '' ? endMonth : null;
+    var year = getUrlParam('year');
+    year = year != '' ? year : null;
+    var feeType = getUrlParam('feeType');
+    feeType = feeType != '' ? feeType : null;
+
+
+    $.ajax({
+      url: 'http://127.0.0.1:8099/pro/TbFeeStatistics/prePrint',
+      data:{
+        isMonth:isMonth,
+        isYear:isYear,
+        beginDay:beginDay,
+        endDay:endDay,
+        beginMonth:beginMonth,
+        endMonth:endMonth,
+        year:year,
+        feeType:feeType
+      },
+      type: 'get',     // 请求类型,常用的有 GET 和 POST
+      success: function(data) { // 接口调用成功回调函数
+        var html = [];
+        var list = data.data.list;
+        for(var i=0; i < list.length; i++){
+          html.push(
+                  "<tr height=\"60\"><td style=\"border:solid #000 1px; \">" + list[i]['dayTime'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['feeType'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['wxPrice'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['aliPrice'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['cardPrice'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['yuePrice'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['num'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['taxMoney'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['taxRate'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['taxes'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['noTaxMoney'] + "</td></tr>"
+          )
+        }
+        var totalMoney = data.data.totalMoney;
+        var totalTaxes = data.data.totalTaxes;
+        var totalNoTaxMoney = data.data.totalNoTaxMoney;
+        var totalWxPrice = data.data.totalWxPrice;
+        var totalAliPrice = data.data.totalAliPrice;
+        var totalCardPrice = data.data.totalCardPrice;
+        var totalYuePrice = data.data.totalYuePrice;
+        html.push(
+                "<tr height=\"60\"><td style=\"border:solid #000 1px; \">" + "合计" +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" + totalWxPrice +
+                "</td><td style=\"border:solid #000 1px; \">" + totalAliPrice +
+                "</td><td style=\"border:solid #000 1px; \">" + totalCardPrice +
+                "</td><td style=\"border:solid #000 1px; \">" + totalYuePrice +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" + totalMoney +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" + totalTaxes +
+                "</td><td style=\"border:solid #000 1px; \">" + totalNoTaxMoney + "</td></tr>"
+        )
+        $("#dp").append(html.join(''));
+
+        $("#time").html("期间:" + data.data.time);
+
+
+        $("#myPrintArea").printArea();
+      }
+    });
+
+  });
+</script>
+
+
+</body>
+</html>

+ 167 - 0
sp-admin/sa-view/tb-fee-statistics/detailPrint.html

@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <title>打印收费明细</title>
+  <style type="text/css">
+    body{left:0px;top:0px;right:0px;bottom:0px;margin:0px;font-family: Arial, Helvetica, sans-serif;font-size: 12px;overflow: hidden;white-space: nowrap;}
+
+
+  </style>
+  <script src="../../static/print/jquery-2.0.3.js" type="text/javascript"></script>
+  <script src="../../static/print/jquery.jPrintArea.js" type="text/javascript"></script>
+
+</head>
+
+<body>
+
+<div>
+
+  <input type="button" style="height: 30;" id="print_button" value="打印" />
+
+  <fieldset align="">
+    <legend>打印区</legend>
+    <div id="myPrintArea" style="height: 1500;">
+      <div align="center">
+        <SPAN style="TEXT-DECORATION: underline;font-size:25px">收费记录明细</SPAN>
+        <br/><br/>
+      </div>
+      <div style="text-align:center; font-size:15px;he">
+        <table id="dp" width="100%" style="border-collapse:collapse;border:none;">
+          <tr height="80">
+            <td style="border:solid #000 1px;text-align: left;" colspan="5">单位:广西东兴北投口岸投资有限公司</td>
+            <td style="border:solid #000 1px;text-align: center;" colspan="8">金额单位:元</td>
+            <td style="border:solid #000 1px;text-align: right;" colspan="3"><div  id="time" align="right"></div></td>
+          </tr>
+          <tr height="80">
+            <td style="border:solid #000 1px; ">序号</td>
+            <td style="border:solid #000 1px; ">车牌号</td>
+            <td style="border:solid #000 1px; ">收费项目</td>
+            <td style="border:solid #000 1px; ">业务类型</td>
+            <td style="border:solid #000 1px; ">车型</td>
+            <td style="border:solid #000 1px; ">数量</td>
+            <td style="border:solid #000 1px; ">单价</td>
+            <td style="border:solid #000 1px; ">总价</td>
+            <td style="border:solid #000 1px; ">结算状态</td>
+            <td style="border:solid #000 1px; ">税率</td>
+            <td style="border:solid #000 1px; ">税款</td>
+            <td style="border:solid #000 1px; ">不含税金额</td>
+            <td style="border:solid #000 1px; ">收款方式</td>
+            <td style="border:solid #000 1px; ">系统流水号</td>
+            <td style="border:solid #000 1px; ">企业名称</td>
+            <td style="border:solid #000 1px; ">付款时间</td>
+          </tr>
+        </table>
+
+      </div>
+      <div align="center">
+        <br/><br/>
+        <SPAN style=";font-size:15px">
+          收费统计员:
+          &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
+          收费核对员:
+          &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
+          收费员:
+        </SPAN>
+      </div>
+
+    </div>
+  </fieldset>
+
+</div>
+
+<script type="text/javascript">
+  $(function(){
+    $("#print_button").click(function(){
+      $("#myPrintArea").printArea();
+    });
+    function getUrlParam(name)
+    {
+      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
+      var r = window.location.search.substr(1).match(reg);  //匹配目标参数
+      if (r!=null) return unescape(r[2]); return null; //返回参数值
+    }
+    var beginTime = getUrlParam('beginTime');
+    beginTime = beginTime != '' ? beginTime : null;
+    var endTime = getUrlParam('endTime');
+    endTime = endTime != '' ? endTime : null;
+    var feeType = getUrlParam('feeType');
+    feeType = feeType != '' ? feeType : null;
+    var itemTypeName = getUrlParam('itemTypeName');
+    itemTypeName = itemTypeName != '' ? itemTypeName : null;
+
+    console.log("beginTime"+beginTime);
+    console.log(endTime);
+    $.ajax({
+      url: 'http://127.0.0.1:8099/pro/TbFeeDetails/prePrint',
+      data:{
+        "beginTime":beginTime,
+        "endTime":endTime,
+        "feeType":feeType,
+        "itemTypeName":itemTypeName
+      },
+      type: 'get',     // 请求类型,常用的有 GET 和 POST
+      success: function(data) { // 接口调用成功回调函数
+        var html = [];
+        var list = data.data.list;
+        for(var i=0; i < list.length; i++){
+          if(list[i]['itemName'] == null){
+            list[i]['itemName'] = "";
+          }
+          if(list[i]['pickCustomerName'] == null){
+            list[i]['pickCustomerName'] = "";
+          }
+          html.push(
+                  "<tr height=\"60\"><td style=\"border:solid #000 1px; \">" + list[i]['index'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['carNo'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['feeType'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['itemTypeName'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['itemName'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['num'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['unitPrice'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['itemPrice'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['settle'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['taxRate'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['taxPrice'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['noTaxPrice'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['payType'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['businessNo'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['pickCustomerName'] +
+                  "</td><td style=\"border:solid #000 1px; \">" + list[i]['payTime'] + "</td></tr>"
+          )
+        }
+        var allDayFee = data.data.allDayFee;
+        var allDayTaxes = data.data.allDayTaxes;
+        var allDayNoTaxFee = data.data.allDayNoTaxFee;
+        html.push(
+                "<tr height=\"60\"><td style=\"border:solid #000 1px; \">" + "合计" +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" + allDayFee +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" + allDayTaxes +
+                "</td><td style=\"border:solid #000 1px; \">" + allDayNoTaxFee +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \">" +
+                "</td><td style=\"border:solid #000 1px; \"></td></tr>"
+        )
+        $("#dp").append(html.join(''));
+
+        $("#time").html("期间:" + data.data.time);
+
+        $("#myPrintArea").printArea();
+      }
+    });
+
+  });
+</script>
+
+
+</body>
+</html>

+ 27 - 2
sp-admin/sa-view/tb-fee-statistics/month-statistcs-list.html

@@ -45,12 +45,16 @@
 						</el-date-picker>
 					</div>
 					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
-					<el-button type="warning" icon="el-icon-download" @click="exportFn()">导出</el-button>
+
 					<br/>
 				</el-form>
 				<!-- ------------- 快捷按钮 ------------- -->
 				<div class="fast-btn">
 					<el-button size="mini" type="info" @click="sa.f5()">刷新</el-button>
+					<el-button type="warning"  >导出(月统计)</el-button>
+					<el-button type="warning"  @click="exportFn()">导出(月报表)</el-button>
+					<el-button class="c-btn" type="success" icon="el-icon" @click="print()">打印(月报表)</el-button>
+
 				</div>
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList">
@@ -62,7 +66,7 @@
 <!--					<sa-td name="含税收入(元)" prop="statisticsMoney"></sa-td>-->
 					<el-table-column label="含税收入(元)" >
 						<template slot-scope="s">
-							<span>{{Number(s.row.statisticsMoney).toFixed(2)}}</span>
+							<span>{{Number(s.row.taxMoney).toFixed(2)}}</span>
 						</template>
 					</el-table-column>
 					<el-table-column label="税率(%)" >
@@ -146,6 +150,27 @@
 					},
 				},
 				methods: {
+					print: function() {
+						this.$confirm('确定打印符合条件的数据?', '提示', {
+							confirmButtonText: '确定',
+							cancelButtonText: '取消',
+							type: 'warning'
+						}).then(() => {
+							if ( this.selectMonth != null && this.selectMonth.length != 0) {
+								this.selectMonthRange.beginMonth = this.selectMonth[0];
+								this.selectMonthRange.endMonth = this.selectMonth[1];
+							}
+
+							var beginMonth = this.selectMonthRange.beginMonth;
+							var endMonth = this.selectMonthRange.endMonth;
+							var feeType = this.p.feeType;
+
+
+							sa.showIframe('打印月报表', 'dayStatsPrint.html?beginMonth='+beginMonth+"&endMonth="+endMonth+"&feeType="+feeType+"&isMonth=1" , '1000px', '100%');
+						}).catch(() => {
+
+						});
+					},
 					exportFn() {
 						Object.assign(this.emodel, {
 							visible: true,

+ 23 - 1
sp-admin/sa-view/tb-fee-statistics/tb-fee-details-list.html

@@ -82,8 +82,9 @@
 				</el-form>
 				<!-- ------------- 快捷按钮 ------------- -->
 				<div class="fast-btn">
-					<el-button type="warning" icon="el-icon-download" @click="exportFn()">导出</el-button>
 					<el-button type="info"  icon="el-icon-refresh"  @click="sa.f5()">刷新</el-button>
+					<el-button type="warning" icon="el-icon-download" @click="exportFn()">导出</el-button>
+					<el-button class="c-btn" type="success" icon="el-icon" @click="print()">打印</el-button>
 					<slot></slot>
 				</div>
 				<!-- ------------- 数据列表 ------------- -->
@@ -241,6 +242,27 @@
 					},
 				},
 				methods: {
+					print: function(data) {
+						this.$confirm('确定打印符合条件的数据?', '提示', {
+							confirmButtonText: '确定',
+							cancelButtonText: '取消',
+							type: 'warning'
+						}).then(() => {
+							if ( this.selectTime != null && this.selectTime.length != 0) {
+								this.selectTimeRange.beginTime = this.selectTime[0];
+								this.selectTimeRange.endTime = this.selectTime[1];
+							}
+
+							var beginTime = this.selectTimeRange.beginTime;
+							var endTime = this.selectTimeRange.endTime;
+							var feeType = this.p.feeType;
+							var itemTypeName = this.p.itemTypeName;
+							console.log("beginTime:"+ beginTime);
+							sa.showIframe('打印申报信息表', 'detailPrint.html?beginTime='+beginTime+"&endTime="+endTime+"&feeType="+feeType+"&itemTypeName="+itemTypeName , '1000px', '100%');
+						}).catch(() => {
+
+						});
+					},
 					exportFn() {
 						Object.assign(this.emodel, {
 							visible: true,

+ 23 - 0
sp-admin/sa-view/tb-fee-statistics/tb-fee-statistics-list.html

@@ -52,11 +52,13 @@
 						</el-date-picker>
 					</div>
 					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+
 					<br />
 				</el-form>
 				<!-- ------------- 快捷按钮 ------------- -->
 				<div class="fast-btn">
 					<el-button size="mini" type="info" @click="sa.f5()">刷新</el-button>
+					<el-button class="c-btn" type="success" icon="el-icon" @click="print()">打印</el-button>
 				</div>
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList" >
@@ -140,6 +142,27 @@
 					},
 				},
 				methods: {
+					print: function() {
+						this.$confirm('确定打印符合条件的数据?', '提示', {
+							confirmButtonText: '确定',
+							cancelButtonText: '取消',
+							type: 'warning'
+						}).then(() => {
+							if ( this.selectDay != null && this.selectDay.length != 0) {
+								this.selectDayRange.beginDay = this.selectDay[0];
+								this.selectDayRange.endDay = this.selectDay[1];
+							}
+
+							var beginDay = this.selectDayRange.beginDay;
+							var endDay = this.selectDayRange.endDay;
+							var feeType = this.p.feeType;
+
+
+							sa.showIframe('打印日报表', 'dayStatsPrint.html?beginDay='+beginDay+"&endDay="+endDay+"&feeType="+feeType , '1000px', '100%');
+						}).catch(() => {
+
+						});
+					},
 					// 刷新
 					f5: function() {
 						if ( this.selectDay != null && this.selectDay.length != 0) {

+ 16 - 1
sp-admin/sa-view/tb-fee-statistics/year-statistcs-list.html

@@ -43,6 +43,7 @@
 				<!-- ------------- 快捷按钮 ------------- -->
 				<div class="fast-btn">
 					<el-button size="mini" type="info" @click="sa.f5()">刷新</el-button>
+					<el-button class="c-btn" type="success" icon="el-icon" @click="print()">打印</el-button>
 				</div>
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList">
@@ -54,7 +55,7 @@
 <!--					<sa-td name="含税收入(元)" prop="statisticsMoney"></sa-td>-->
 					<el-table-column label="含税收入(元)" >
 						<template slot-scope="s">
-							<span>{{Number(s.row.statisticsMoney).toFixed(2)}}</span>
+							<span>{{Number(s.row.taxMoney).toFixed(2)}}</span>
 						</template>
 					</el-table-column>
 					<el-table-column label="税率(%)" >
@@ -116,6 +117,20 @@
 					dataList: [], // 数据集合
 				},
 				methods: {
+					print: function() {
+						this.$confirm('确定打印符合条件的数据?', '提示', {
+							confirmButtonText: '确定',
+							cancelButtonText: '取消',
+							type: 'warning'
+						}).then(() => {
+							var year = this.p.year;
+							var feeType = this.p.feeType;
+
+							sa.showIframe('打印年报表', 'dayStatsPrint.html?year='+year+"&feeType="+feeType+"&isYear=1" , '1000px', '100%');
+						}).catch(() => {
+
+						});
+					},
 					// 刷新
 					f5: function() {
 						sa.ajax('/TbFeeStatistics/getYear', sa.removeNull(this.p), function(res) {

+ 28 - 0
sp-server/src/main/java/com/pj/project/tb_fee_details/PrintFeeDetailDTO.java

@@ -0,0 +1,28 @@
+package com.pj.project.tb_fee_details;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created with IntelliJ IDEA.
+ *
+ * @Auther: lzm
+ * @Date: 2022/06/15/9:09
+ * @Description:
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class PrintFeeDetailDTO {
+    private String time;
+    private BigDecimal allDayFee;
+    private BigDecimal allDayTaxes;
+    private BigDecimal allDayNoTaxFee;
+    private List<ExportFeeDetailDTO> list = new ArrayList<>();
+
+}

+ 8 - 0
sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetailsController.java

@@ -84,6 +84,14 @@ public class TbFeeDetailsController {
 	    return AjaxJson.getSuccessData(tbFeeDetailsService.export(so));
     }
 
+    /** 准备打印的数据 */
+    @RequestMapping("prePrint")
+    public AjaxJson prePrint(){
+        SoMap so = SoMap.getRequestSoMap();
+        return AjaxJson.getSuccessData(tbFeeDetailsService.prePrint(so));
+    }
+
+    /** 重新计算接口,手动调用 */
     @RequestMapping("calcuAgain")
     public AjaxJson calcuAgain(){
         List<TbFeeDetails> list = tbFeeDetailsService.list();

+ 46 - 0
sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetailsService.java

@@ -353,4 +353,50 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
         ew.eq("fee_type",feeType);
         return list(ew);
     }
+
+    public PrintFeeDetailDTO prePrint(SoMap so) {
+        so.clearNull();
+
+        Date now = new Date();
+        String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm");
+        String beginTime = so.getString("beginTime");
+        String endTime = so.getString("endTime");
+        String time = beginTime + "至" + endTime;
+
+
+        BigDecimal allDayFee = new BigDecimal(0);
+        BigDecimal allDayTaxes = new BigDecimal(0);
+        BigDecimal allDayNoTaxFee = new BigDecimal(0);
+
+        List<TbFeeDetails> feeDetaillist = this.getList(so);
+        List<ExportFeeDetailDTO> printList = new ArrayList<>();
+        Integer index = 1;
+        for (TbFeeDetails feeDetails : feeDetaillist) {
+            String feeType = TbFeeDetails.fee.getDesc(feeDetails.getFeeType());
+            ExportFeeDetailDTO detailDTO = new ExportFeeDetailDTO();
+            detailDTO.setBusinessNo(feeDetails.getBusinessNo()).setCarNo(feeDetails.getCarNo())
+                    .setFeeType(feeType).setItemTypeName(feeDetails.getItemTypeName())
+                    .setItemName(feeDetails.getItemName()).setItemPrice(feeDetails.getItemPrice())
+                    .setPayType("微信支付").setIndex(index++)
+                    .setPayMode("直接收款")
+                    .setWeight(feeDetails.getWeight()).setNum(feeDetails.getNum()).setUnitPrice(feeDetails.getUnitPrice())
+                    .setSettle("已结算").setTaxRate(feeDetails.getTaxRate().multiply(new BigDecimal(100)))
+                    .setTaxPrice(feeDetails.getTaxPrice()).setNoTaxPrice(feeDetails.getNoTaxPrice()).setPayTime(feeDetails.getPayTime())
+                    .setPickCustomerName(feeDetails.getPickCustomerName());
+            if(!StrUtil.isEmpty(feeDetails.getBusinessId())){
+                detailDTO.setBusinessNo(feeDetails.getBusinessNo());
+            }else {
+                detailDTO.setBusinessNo(feeDetails.getBusinessCarNo());
+            }
+            printList.add(detailDTO);
+            allDayFee = allDayFee.add(feeDetails.getItemPrice());
+            allDayTaxes = allDayTaxes.add(feeDetails.getTaxPrice());
+            allDayNoTaxFee = allDayNoTaxFee.add(feeDetails.getNoTaxPrice());
+        }
+        PrintFeeDetailDTO printData = new PrintFeeDetailDTO();
+        printData.setList(printList)
+                .setTime(time).setAllDayFee(allDayFee)
+                .setAllDayTaxes(allDayTaxes).setAllDayNoTaxFee(allDayNoTaxFee);
+        return printData;
+    }
 }

+ 66 - 0
sp-server/src/main/java/com/pj/project/tb_fee_statistics/ExportDayStatsDTO.java

@@ -0,0 +1,66 @@
+package com.pj.project.tb_fee_statistics;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * Created with IntelliJ IDEA.
+ *
+ * @Auther: lzm
+ * @Date: 2022/06/16/15:59
+ * @Description:
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class ExportDayStatsDTO {
+
+    /**
+     * 收费类型(1=核酸检测,2消杀作业,3=装卸作业,4=停车费,5=过磅费)
+     */
+    private String feeType;
+
+
+    /**
+     * 日期
+     */
+    private String dayTime;
+
+    /**
+     * 数量
+     */
+    private Integer num = 0;
+
+    /**
+     * 含税收入
+     */
+    private BigDecimal taxMoney = new BigDecimal(0);
+
+    /**
+     * 税率
+     */
+    private BigDecimal taxRate = new BigDecimal(0);
+
+    /**
+     * 税款
+     */
+    private BigDecimal taxes = new BigDecimal(0);
+
+    /**
+     * 不含税款
+     */
+    private BigDecimal noTaxMoney = new BigDecimal(0);
+
+    private BigDecimal wxPrice = new BigDecimal(0);
+
+    private BigDecimal aliPrice = new BigDecimal(0);
+
+    private BigDecimal cardPrice = new BigDecimal(0);
+
+    private BigDecimal yuePrice = new BigDecimal(0);
+
+}

+ 32 - 0
sp-server/src/main/java/com/pj/project/tb_fee_statistics/PrintDayStatsDTO.java

@@ -0,0 +1,32 @@
+package com.pj.project.tb_fee_statistics;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created with IntelliJ IDEA.
+ *
+ * @Auther: lzm
+ * @Date: 2022/06/16/18:23
+ * @Description:
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class PrintDayStatsDTO {
+
+    private String time;
+    private BigDecimal totalMoney;
+    private BigDecimal totalTaxes;
+    private BigDecimal totalNoTaxMoney;
+    private BigDecimal totalWxPrice = new BigDecimal(0);
+    private BigDecimal totalAliPrice = new BigDecimal(0);
+    private BigDecimal totalCardPrice = new BigDecimal(0);
+    private BigDecimal totalYuePrice = new BigDecimal(0);
+    private List<ExportDayStatsDTO> list = new ArrayList<>();
+}

+ 7 - 0
sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatisticsController.java

@@ -105,6 +105,13 @@ public class TbFeeStatisticsController {
         return AjaxJson.getSuccessData(tbFeeStatisticsService.exportMonthStatistics(so));
     }
 
+    /** 准备打印的数据 */
+    @RequestMapping("prePrint")
+    public AjaxJson prePrint(){
+        SoMap so = SoMap.getRequestSoMap();
+        return AjaxJson.getSuccessData(tbFeeStatisticsService.prePrint(so));
+    }
+
 
     @RequestMapping("calcuAgain")
     public AjaxJson calcuAgain() {

+ 2 - 2
sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatisticsMapper.xml

@@ -107,7 +107,7 @@
 	</select>
 
     <select id="getMonth" resultMap="model">
-        select month, fee_type,  sum(num) as num, sum(tax_money) as statistics_money, sum(taxes) as taxes, sum(no_tax_money) as no_tax_money, any_value(tax_rate) as tax_rate
+        select month, fee_type,  sum(num) as num, sum(tax_money) as tax_money, sum(taxes) as taxes, sum(no_tax_money) as no_tax_money, any_value(tax_rate) as tax_rate
         from tb_fee_statistics
         <where>
             <if test=' this.has("feeType") '> and fee_type = #{feeType} </if>
@@ -122,7 +122,7 @@
     </select>
 
     <select id="getYear" resultMap="model">
-        select year, fee_type,  sum(num) as num, sum(tax_money) as statistics_money, sum(taxes) as taxes, sum(no_tax_money) as no_tax_money, any_value(tax_rate) as tax_rate
+        select year, fee_type,  sum(num) as num, sum(tax_money) as tax_money, sum(taxes) as taxes, sum(no_tax_money) as no_tax_money, any_value(tax_rate) as tax_rate
         from tb_fee_statistics
         <where>
             <if test=' this.has("feeType") '> and fee_type = #{feeType} </if>

+ 67 - 6
sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatisticsService.java

@@ -5,17 +5,14 @@ import java.io.InputStream;
 import java.math.BigDecimal;
 import java.util.*;
 
-import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.Month;
 import cn.hutool.core.util.StrUtil;
-import cn.hutool.json.JSONUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.metadata.fill.FillConfig;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.pj.api.wx.bo.PriceBO;
@@ -33,17 +30,14 @@ import com.pj.project.tb_fee_details.TbFeeDetails;
 import com.pj.project.tb_fee_details.TbFeeDetailsService;
 import com.pj.project.tb_goods.TbGoods;
 import com.pj.project.tb_goods.TbGoodsService;
-import com.pj.project.tb_item_type.TbItemType;
 import com.pj.project.tb_item_type.TbItemTypeService;
 import com.pj.project4sp.uploadfile.UploadUtil;
 import com.pj.utils.so.SoMap;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ClassPathResource;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
-import com.pj.utils.sg.*;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
@@ -412,4 +406,71 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
         }
         this.updateBatchById(list);
     }
+
+    public PrintDayStatsDTO prePrint(SoMap so) {
+        so.clearNull();
+
+        String beginTimeStr = "";
+        String endTimeStr = "";
+        String isMonth = so.getString("isMonth");
+        String isYear = so.getString("isYear");
+        beginTimeStr = so.getString("beginDay");
+        endTimeStr = so.getString("endDay");
+        if(StrUtil.isNotEmpty(isMonth)){
+            beginTimeStr = so.getString("beginMonth");
+            endTimeStr = so.getString("endMonth");
+        }
+        String time = "所有时间";
+        if(StrUtil.isNotEmpty(beginTimeStr) && StrUtil.isNotEmpty(endTimeStr)){
+            time = beginTimeStr + "至" + endTimeStr;
+        }else if(StrUtil.isNotEmpty(isYear)){
+            time = so.getString("year");
+        }
+
+
+        BigDecimal totalFee = new BigDecimal(0);
+        BigDecimal totalTaxes = new BigDecimal(0);
+        BigDecimal totalNoTaxFee = new BigDecimal(0);
+        BigDecimal totalWxPrice = new BigDecimal(0);
+
+        List<TbFeeStatistics> statsList = this.getList(so);
+        if(StrUtil.isNotEmpty(isMonth)){
+            statsList = this.getMonth(so);
+        }
+        if(StrUtil.isNotEmpty(isYear)){
+            statsList = this.getYear(so);
+        }
+
+        List<ExportDayStatsDTO> printList = new ArrayList<>();
+        for (TbFeeStatistics stats : statsList) {
+            String feeType = TbFeeDetails.fee.getDesc(stats.getFeeType());
+            ExportDayStatsDTO dayStatsDTO = new ExportDayStatsDTO();
+            dayStatsDTO.setDayTime(stats.getDay())
+                    .setFeeType(feeType).setNum(stats.getNum())
+                    .setTaxMoney(stats.getTaxMoney())
+                    .setTaxRate(stats.getTaxRate())
+                    .setTaxes(stats.getTaxes())
+                    .setNoTaxMoney(stats.getNoTaxMoney())
+                    .setWxPrice(stats.getTaxMoney());
+            if(StrUtil.isNotEmpty(isMonth)){
+                dayStatsDTO.setDayTime(stats.getMonth());
+            }
+            if(StrUtil.isNotEmpty(isYear)){
+                dayStatsDTO.setDayTime(stats.getYear());
+            }
+            printList.add(dayStatsDTO);
+            totalFee = totalFee.add(stats.getTaxMoney());
+            totalTaxes = totalTaxes.add(stats.getTaxes());
+            totalNoTaxFee = totalNoTaxFee.add(stats.getNoTaxMoney());
+            totalWxPrice = totalWxPrice.add(stats.getTaxMoney());
+        }
+        PrintDayStatsDTO printData = new PrintDayStatsDTO();
+        printData.setList(printList)
+                .setTime(time)
+                .setTotalMoney(totalFee).setTotalTaxes(totalTaxes).setTotalNoTaxMoney(totalNoTaxFee)
+                .setTotalWxPrice(totalWxPrice);
+
+        return printData;
+    }
+
 }