Jelajahi Sumber

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

qzyReal 3 tahun lalu
induk
melakukan
9d2f7f0bb9

+ 31 - 13
sp-admin/sa-view/tb-fee-statistics/month-statistcs-list.html

@@ -5,13 +5,13 @@
 		<meta charset="utf-8">
 		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 		<!-- 所有的 css & js 资源 -->
-		<link rel="stylesheet" href="https://unpkg.com/element-ui@2.13.0/lib/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
 		<link rel="stylesheet" href="../../static/sa.css">
-		<script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script>
-		<script src="https://unpkg.com/element-ui@2.13.0/lib/index.js"></script>
-		<script src="https://unpkg.com/http-vue-loader@1.4.2/src/httpVueLoader.js"></script>
-		<script src="https://unpkg.com/jquery@3.4.1/dist/jquery.js"></script>
-		<script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
 		<script src="../../static/sa.js"></script>
 	</head>
 	<body>
@@ -21,7 +21,7 @@
 				<div class="c-title">检索参数</div>
 				<el-form ref="form" :model='p' @submit.native.prevent>
 					<div class="c-item">
-						<label class="c-label">收费类型:</label>
+						<label class="c-label">收费项目:</label>
 						<el-select v-model="p.feeType" placeholder="请选择" filterable>
 							<el-option label="-全部-" value=""></el-option>
 							<el-option label="核酸检测" value="1"></el-option>
@@ -30,11 +30,19 @@
 							<el-option label="停车费" value="4"></el-option>
 							<el-option label="过磅费" value="5"></el-option>
 							<el-option label="入场管理费" value="6"> </el-option>
+							<el-option label="充电打冷作业" value="7"> </el-option>
 						</el-select>
 					</div>
+<!--					<div class="c-item">-->
+<!--						<label class="c-label">日期:</label>-->
+<!--						<el-date-picker type="month" value-format="yyyy-MM" v-model="p.month"></el-date-picker>-->
+<!--					</div>-->
 					<div class="c-item">
-						<label class="c-label">日期:</label>
-						<el-date-picker type="month" value-format="yyyy-MM" v-model="p.month"></el-date-picker>
+						<label class="c-label">日期范围:</label>
+						<el-date-picker size="mini" v-model="selectMonth" type="monthrange" unlink-panels="false"
+										range-separator="至" start-placeholder="开始月份" end-placeholder="结束月份"
+										format="yyyy 年 MM 月" value-format="yyyy-MM">
+						</el-date-picker>
 					</div>
 					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
 					<br/>
@@ -46,8 +54,8 @@
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList">
 					<sa-td type="selection"></sa-td>
-					<sa-td name="收费类型" prop="feeType" type="enum"
-						   :jv="{1: '核酸检测',2: '消杀作业', 3: '装卸作业', 4: '停车费', 5: '过磅费', 6: '入场管理费'}"></sa-td>
+					<sa-td name="收费项目" prop="feeType" type="enum"
+						   :jv="{1: '核酸检测',2: '消杀作业', 3: '装卸作业', 4: '停车费', 5: '过磅费', 6: '入场管理费', 7: '充电打冷作业'}"></sa-td>
 					<sa-td name="月份" prop="month" ></sa-td>
 					<sa-td name="数量" prop="num" ></sa-td>
 					<sa-td name="收入(元)" prop="statisticsMoney"></sa-td>
@@ -90,12 +98,22 @@
 						sortType: 0		// 排序方式 
 					},
 					dataCount: 0,
-					dataList: [], // 数据集合 
+					dataList: [], // 数据集合
+					selectMonth:[],
+					selectMonthRange: {
+						beginMonth: '', //查询开始时间
+						endMonth: '', //查询结束时间
+					},
 				},
 				methods: {
 					// 刷新
 					f5: function() {
-						sa.ajax('/TbFeeStatistics/getMonth', sa.removeNull(this.p), function(res) {
+						if ( this.selectMonth != null && this.selectMonth.length != 0) {
+							this.selectMonthRange.beginMonth = this.selectMonth[0];
+							this.selectMonthRange.beginMonth = this.selectMonth[1];
+						}
+						sa.ajax('/TbFeeStatistics/getMonth?beginMonth='+this.selectMonthRange.beginMonth+"&endMonth="+this.selectMonthRange.beginMonth,
+								sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
 							this.dataCount = res.dataCount; // 数据总数 
 							sa.f5TableHeight();		// 刷新表格高度 

+ 69 - 21
sp-admin/sa-view/tb-fee-statistics/tb-fee-details-list.html

@@ -5,13 +5,13 @@
 		<meta charset="utf-8">
 		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 		<!-- 所有的 css & js 资源 -->
-		<link rel="stylesheet" href="https://unpkg.com/element-ui@2.13.0/lib/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
 		<link rel="stylesheet" href="../../static/sa.css">
-		<script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script>
-		<script src="https://unpkg.com/element-ui@2.13.0/lib/index.js"></script>
-		<script src="https://unpkg.com/http-vue-loader@1.4.2/src/httpVueLoader.js"></script>
-		<script src="https://unpkg.com/jquery@3.4.1/dist/jquery.js"></script>
-		<script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
 		<script src="../../static/sa.js"></script>
 	</head>
 	<body>
@@ -21,6 +21,18 @@
 				<div class="c-title">检索参数</div>
 				<el-form ref="form" :model='p' @submit.native.prevent>
 					<div class="c-item">
+						<label class="c-label">收费项目:</label>
+						<el-select v-model="p.feeType" placeholder="请选择" filterable>
+							<el-option label="核酸检测" value="1"></el-option>
+							<el-option label="消杀作业" value="2"></el-option>
+							<el-option label="装卸作业" value="3"></el-option>
+							<el-option label="停车费" value="4"></el-option>
+							<el-option label="过磅费" value="5"></el-option>
+							<el-option label="入场管理费" value="6"> </el-option>
+							<el-option label="充电打冷作业" value="7"> </el-option>
+						</el-select>
+					</div>
+					<div class="c-item">
 						<label class="c-label">业务类型:</label>
 						<el-select v-model="p.itemTypeName" placeholder="请选择" filterable>
 							<el-option v-for="item in itemTypeList" :key="item.id"
@@ -28,10 +40,18 @@
 							</el-option>
 						</el-select>
 					</div>
+<!--					<div class="c-item">-->
+<!--						<label class="c-label">日期:</label>-->
+<!--						<el-date-picker type="date" value-format="yyyy-MM-dd" v-model="p.payDay"></el-date-picker>-->
+<!--					</div>-->
 					<div class="c-item">
-						<label class="c-label">日期:</label>
-						<el-date-picker type="date" value-format="yyyy-MM-dd" v-model="p.payDay"></el-date-picker>
+						<label class="c-label">日期范围:</label>
+						<el-date-picker size="mini" v-model="selectTime" type="daterange" unlink-panels="false"
+										range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
+										format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd">
+						</el-date-picker>
 					</div>
+
 					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
 					<br />
 				</el-form>
@@ -44,18 +64,35 @@
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList" >
 					<sa-td type="selection"></sa-td>
-					<sa-td name="业务单号" prop="businessNo" ></sa-td>
-					<sa-td name="车牌号" prop="carNo" ></sa-td>
-					<sa-td name="收费类型" prop="feeType" type="enum"
+					<sa-td name="业务单号" prop="businessNo" width="140px" ></sa-td>
+					<sa-td name="作业单号" prop="businessItemNo" width="145px" ></sa-td>
+					<sa-td name="车牌号" prop="carNo" width="90px" ></sa-td>
+					<sa-td name="收费项目" prop="feeType" type="enum"
 						   :jv="{1: '核酸检测',2: '消杀作业', 3: '装卸作业', 4: '停车费', 5: '过磅费', 6: '入场管理费', 7: '充电打冷作业'}"></sa-td>
 					<sa-td name="业务类型" prop="itemTypeName" ></sa-td>
-					<sa-td name="业务项" prop="itemName" ></sa-td>
-					<sa-td name="作业单位" prop="pickCustomerName" ></sa-td>
-					<sa-td name="项目金额" prop="itemPrice" ></sa-td>
-					<sa-td name="税率" prop="taxRate" ></sa-td>
-					<sa-td name="不含税金额" prop="noTaxPrice" ></sa-td> 
-					<sa-td name="支付日期" prop="payDay" ></sa-td>
+					<sa-td name="车型" prop="itemName" ></sa-td><!--业务项-->
+					<sa-td name="重量(吨)" prop="weight" ></sa-td>
+					<sa-td name="数量" prop="num" ></sa-td>
+					<sa-td name="单价" prop="unitPrice" ></sa-td>
+					<sa-td name="总价" prop="itemPrice" ></sa-td>
+					<sa-td name="结算状态" prop="isSettle" type="enum" :jv="{0: '未结算',1: '已结算'}"></sa-td>
+					<sa-td name="复核状态" prop="" ></sa-td>
+<!--					<sa-td name="税率(%)" prop="taxRate" ></sa-td>-->
+					<el-table-column label="税率(%)" >
+						<template slot-scope="s">
+							<span>{{s.row.taxRate * 100}}</span>
+						</template>
+					</el-table-column>
+					<sa-td name="税款(元)" prop="taxPrice" ></sa-td>
+					<sa-td name="不含税金额(元)" prop="noTaxPrice" ></sa-td>
 					<sa-td name="支付方式" prop="payType" type="enum" :jv="{3: '微信支付'}"></sa-td>
+					<sa-td name="收款种类" prop="payMode" type="enum" :jv="{1: '直接收款'}"></sa-td>
+					<sa-td name="系统流水号" prop="" ></sa-td>
+					<sa-td name="作业单位" prop="pickCustomerName" ></sa-td>
+					<sa-td name="生成时间" prop="createTime" width="90px" ></sa-td>
+					<sa-td name="付款时间" prop="payTime"  width="90px" ></sa-td>
+					<sa-td name="备注" prop="remark" ></sa-td>
+
 <!--					<el-table-column label="操作" fixed="right"  width="240px">-->
 <!--						<template slot-scope="s">-->
 <!--							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看</el-button>-->
@@ -91,7 +128,8 @@
 					p: { // 查询参数  
 						id: '',		// 主键 
 						businessNo: '',		// 业务单号 
-						carNo: '',		// 车牌号 
+						carNo: '',		// 车牌号
+						feeType: '',		//收费类型
 						itemTypeId: '',		// 业务类型id 
 						itemTypeName: '',		// 业务类型 
 						itemId: '',		//  
@@ -101,12 +139,17 @@
 						payType: '',		// 支付方式(3=微信支付) 
 						createTime: '',		// 创建时间 
 						pageNo: 1,		// 当前页 
-						pageSize: 10,	// 页大小 
-						sortType: 9		// 排序方式
+						pageSize: 10,	// 页大小
+						sortType: 11		// 排序方式
 					},
 					dataCount: 0,
 					dataList: [], // 数据集合
 					itemTypeList: [],
+					selectTime:[],
+					selectTimeRange: {
+						beginTime: '', //查询开始时间
+						endTime: '', //查询结束时间
+					},
 					emodel: {
 						visible: false,
 						form: {
@@ -132,7 +175,12 @@
 					},
 					// 刷新
 					f5: function() {
-						sa.ajax('/TbFeeDetails/getList', sa.removeNull(this.p), function(res) {
+						if ( this.selectTime != null && this.selectTime.length != 0) {
+							this.selectTimeRange.beginTime = this.selectTime[0];
+							this.selectTimeRange.endTime = this.selectTime[1];
+						}
+						sa.ajax('/TbFeeDetails/getList?beginTime='+this.selectTimeRange.beginTime+'&endTime='+this.selectTimeRange.endTime,
+								sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
 							this.dataCount = res.dataCount; // 数据总数 
 							sa.f5TableHeight();		// 刷新表格高度 

+ 33 - 13
sp-admin/sa-view/tb-fee-statistics/tb-fee-statistics-list.html

@@ -5,13 +5,13 @@
 		<meta charset="utf-8">
 		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 		<!-- 所有的 css & js 资源 -->
-		<link rel="stylesheet" href="https://unpkg.com/element-ui@2.13.0/lib/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
 		<link rel="stylesheet" href="../../static/sa.css">
-		<script src="https://unpkg.com/vue@2.6.10/dist/vue.js"></script>
-		<script src="https://unpkg.com/element-ui@2.13.0/lib/index.js"></script>
-		<script src="https://unpkg.com/http-vue-loader@1.4.2/src/httpVueLoader.js"></script>
-		<script src="https://unpkg.com/jquery@3.4.1/dist/jquery.js"></script>
-		<script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
 		<script src="../../static/sa.js"></script>
 	</head>
 	<body>
@@ -23,7 +23,7 @@
 <!--					<sa-item type="enum" name="收费类型" v-model="p.feeType" -->
 <!--						:jv="{1: '核酸检测', 3: '装卸作业', 4: '停车费', 5: '过磅费'}" jtype="2" def="不限"></sa-item>-->
 					<div class="c-item">
-						<label class="c-label">收费类型:</label>
+						<label class="c-label">收费项目:</label>
 						<el-select v-model="p.feeType" placeholder="请选择" filterable>
 							<el-option label="-全部-" value=""> </el-option>
 							<el-option label="核酸检测" value="1"> </el-option>
@@ -32,11 +32,19 @@
 							<el-option label="停车费" value="4"> </el-option>
 							<el-option label="过磅费" value="5"> </el-option>
 							<el-option label="入场管理费" value="6"> </el-option>
+							<el-option label="充电打冷作业" value="7"> </el-option>
 						</el-select>
 					</div>
+<!--					<div class="c-item">-->
+<!--						<label class="c-label">日期:</label>-->
+<!--						<el-date-picker type="date" value-format="yyyy-MM-dd" v-model="p.dayTime"></el-date-picker>-->
+<!--					</div>-->
 					<div class="c-item">
-						<label class="c-label">日期:</label>
-						<el-date-picker type="date" value-format="yyyy-MM-dd" v-model="p.dayTime"></el-date-picker>
+						<label class="c-label">日期范围:</label>
+						<el-date-picker size="mini" v-model="selectDay" type="daterange" unlink-panels="false"
+										range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
+										format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd">
+						</el-date-picker>
 					</div>
 					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
 					<br />
@@ -48,9 +56,9 @@
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList" >
 					<sa-td type="selection"></sa-td>
-					<sa-td name="收费类型" prop="feeType" type="enum"
+					<sa-td name="收费项目" prop="feeType" type="enum"
 						   :jv="{1: '核酸检测',2: '消杀作业', 3: '装卸作业', 4: '停车费', 5: '过磅费', 6: '入场管理费', 7: '充电打冷作业'}"></sa-td>
-					<sa-td name="业务类型" prop="itemTypeName" ></sa-td>
+<!--					<sa-td name="业务类型" prop="itemTypeName" ></sa-td>-->
 					<sa-td name="日期" type="date" prop="dayTime" ></sa-td>
 					<sa-td name="数量" prop="num" ></sa-td>
 					<sa-td name="含税收入(元)" prop="taxMoney" ></sa-td>
@@ -97,12 +105,24 @@
 						sortType: 9		// 排序方式
 					},
 					dataCount: 0,
-					dataList: [], // 数据集合 
+					dataList: [], // 数据集合
+					selectDay:[],
+					selectDayRange: {
+						beginDay: '', //查询开始时间
+						endDay: '', //查询结束时间
+					},
 				},
 				methods: {
 					// 刷新
 					f5: function() {
-						sa.ajax('/TbFeeStatistics/getList', sa.removeNull(this.p), function(res) {
+						if ( this.selectDay != null && this.selectDay.length != 0) {
+							this.selectDayRange.beginDay = this.selectDay[0];
+							this.selectDayRange.endDay = this.selectDay[1];
+						}
+						console.log(this.selectDayRange.beginDay);
+						console.log(this.selectDayRange.endDay);
+						sa.ajax('/TbFeeStatistics/getList?beginDay='+this.selectDayRange.beginDay+"&endDay="+this.selectDayRange.endDay,
+								sa.removeNull(this.p), function(res) {
 							this.dataList = res.data; // 数据
 							this.dataCount = res.dataCount; // 数据总数 
 							sa.f5TableHeight();		// 刷新表格高度 

+ 4 - 3
sp-admin/sa-view/tb-fee-statistics/year-statistcs-list.html

@@ -30,6 +30,7 @@
 							<el-option label="停车费" value="4"></el-option>
 							<el-option label="过磅费" value="5"></el-option>
 							<el-option label="入场管理费" value="6"> </el-option>
+							<el-option label="充电打冷作业" value="7"> </el-option>
 						</el-select>
 					</div>
 					<div class="c-item">
@@ -46,8 +47,8 @@
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList">
 					<sa-td type="selection"></sa-td>
-					<sa-td name="收费类型" prop="feeType" type="enum"
-						   :jv="{1: '核酸检测',2: '消杀作业', 3: '装卸作业', 4: '停车费', 5: '过磅费', 6: '入场管理费'}"></sa-td>
+					<sa-td name="收费项目" prop="feeType" type="enum"
+						   :jv="{1: '核酸检测',2: '消杀作业', 3: '装卸作业', 4: '停车费', 5: '过磅费', 6: '入场管理费', 7: '充电打冷作业'}"></sa-td>
 					<sa-td name="年份" prop="year"></sa-td>
 					<sa-td name="数量" prop="num" ></sa-td>
 					<sa-td name="收入(元)" prop="statisticsMoney"></sa-td>
@@ -90,7 +91,7 @@
 						sortType: 0		// 排序方式 
 					},
 					dataCount: 0,
-					dataList: [], // 数据集合 
+					dataList: [], // 数据集合
 				},
 				methods: {
 					// 刷新

+ 1 - 1
sp-server/src/main/java/com/pj/api/service/ApiService.java

@@ -241,7 +241,7 @@ public class ApiService {
         TbBusiness tbBusiness = tbBusinessService.getById(tbBusinessItem.getBusinessId());
         MsgDataBO msgDataBO = new MsgDataBO("订单号:" + tbBusinessItem.getNo(), tbCostomer.getName(), DateUtil.now(), tbBusiness.getGoodsName() + "(" + tbBusinessItem.getItemTypeName() + tbBusinessItem.getItemName() + ")");
         spAdminList.stream().filter(admin -> StrUtil.isNotEmpty(admin.getOpenid())).forEach(admin -> {
-            String detailUrl = myConfig.getWebDomain() + "/pages/business-order/business-item?id=" + tbBusiness.getId() + "&itemId=" + tbBusinessItem.getId() + "&openid=" + openid;
+            String detailUrl = myConfig.getWebDomain() + "/pages/business-order/business-item?id=" + tbBusiness.getId() +"&itemId="+tbBusinessItem.getId()+ "&openid=" + openid;
             log.info("admin confirm business:[{}]", detailUrl);
             wxService.sendTemplateMsg(wxConfig.getBusinessPickTemplate(), admin.getOpenid(), msgDataBO, detailUrl);
         });

+ 15 - 1
sp-server/src/main/java/com/pj/project/tb_fee_details/ExportFeeDetailDTO.java

@@ -22,12 +22,26 @@ import java.util.List;
 public class ExportFeeDetailDTO {
 
     private Integer index;
-    private String businessNo;
     private String carNo;
     private String feeType;
     private String itemTypeName;
     private String itemName;
+    private Double weight;
+    private Integer num;
+    private BigDecimal unitPrice;
     private BigDecimal itemPrice;
+    private  String settle;
+    private BigDecimal taxRate;
+    private BigDecimal taxPrice;
+    private BigDecimal noTaxPrice;
     private String payType;
+    private String payMode;
+    private String businessNo;
+    private String payTime;
+
+
+
+
+
 
 }

+ 53 - 3
sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetails.java

@@ -70,7 +70,7 @@ public class TbFeeDetails implements Serializable {
     private String itemTypeName;
 
 	/**
-	 *  
+	 *  业务项 id
 	 */
     private String itemId;
 
@@ -82,18 +82,22 @@ public class TbFeeDetails implements Serializable {
 	/**
 	 * 项目金额(元) 
 	 */
-    private BigDecimal itemPrice;
+    private BigDecimal itemPrice = new BigDecimal(0);
 
 	/**
 	 * 支付日期 
 	 */
     private String payDay;
 
+
+    private String payTime;
+
 	/**
 	 * 支付方式(3=微信支付) 
 	 */
     private Integer payType;
 
+
 	/**
 	 * 创建时间 
 	 */
@@ -101,12 +105,21 @@ public class TbFeeDetails implements Serializable {
 
     private String businessItemId;
 
+    private String businessItemNo;
+
     private String pickCustomerName;
 
+
+
     /**
      * 不含税款
      */
-    public BigDecimal noTaxPrice = new BigDecimal(0);
+    private BigDecimal noTaxPrice = new BigDecimal(0);
+
+    /**
+     * 税款
+     */
+    private BigDecimal taxPrice = new BigDecimal(0);
 
     /**
      * 税率
@@ -114,6 +127,43 @@ public class TbFeeDetails implements Serializable {
     private BigDecimal taxRate = new BigDecimal(0);
 
 
+    /**
+     * 单价
+     */
+    private BigDecimal unitPrice = new BigDecimal(0);
+
+    /**
+     * 重量
+     */
+    private Double weight;
+
+    /**
+     * 数量
+     */
+    private Integer num;
+
+    /**
+     * 是否结算(0=未结算, 1=已结算)
+     */
+    private Integer isSettle;
+
+    /**
+     * 支付方式(1=直接支付)
+     */
+    private Integer payMode;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 发票
+     */
+    private String invoice;
+
+
+
     @Getter
     @AllArgsConstructor
     //(1=核酸检测,2=消杀作业,3=装卸作业,4=停车费,5=过磅费)

+ 4 - 0
sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetailsMapper.xml

@@ -84,6 +84,10 @@
 			<if test=' this.has("payDay") '> and pay_day = #{payDay} </if>
 			<if test=' this.has("payType") '> and pay_type = #{payType} </if>
 			<if test=' this.has("createTime") '> and create_time = #{createTime} </if>
+            <if test=' this.has("beginTime") and this.has("endTime") '>
+                and pay_day >= #{beginTime}
+                and pay_day  &lt;= #{endTime}
+            </if>
 		</where>
 		order by
 		<choose>

+ 21 - 11
sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetailsService.java

@@ -123,6 +123,7 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
 
     public void chargeParkFee(List<PriceBO> cars) {
         Date now = new Date();
+        String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");
         String toDay = DateUtil.format(now, "yyyy-MM-dd");
         for (PriceBO bo1 : cars) {
             TbBusinessCar car = tbBusinessCarService.getById(bo1.getId());
@@ -135,11 +136,13 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
             }
 
             BigDecimal noTaxPrice = car.getMoney().subtract(car.getMoney().multiply(parkFee.getTaxRate()));
+            BigDecimal taxPrice = car.getMoney().multiply(parkFee.getTaxRate());
             parkFee.setBusinessId(car.getBusinessId()).setBusinessNo(business.getNo())
                     .setCarNo(car.getCarNo())
-                    .setItemPrice(car.getMoney()).setNoTaxPrice(noTaxPrice)
-                    .setFeeType(TbFeeDetails.fee.PARK_FEE.getCode()).setItemTypeName(TbFeeDetails.fee.PARK_FEE.getDesc())
-                    .setPayDay(toDay).setPayType(3).setCreateTime(now);
+                    .setItemPrice(car.getMoney()).setUnitPrice(car.getMoney()).setNoTaxPrice(noTaxPrice).setTaxPrice(taxPrice)
+                    .setFeeType(TbFeeDetails.fee.PARK_FEE.getCode()).setItemTypeName("停车业务")
+                    .setPayDay(toDay).setPayType(3).setCreateTime(now)
+                    .setNum(1).setIsSettle(1).setPayMode(1).setPayTime(nowStr).setWeight(business.getNetWeight());
             saveOrUpdate(parkFee);
         }
     }
@@ -153,7 +156,7 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
             String itemType = item.getItemTypeName();
             if (itemType.contains("核酸")) {
                 feeType = TbFeeDetails.fee.NUCLEIC_FEE.getCode();
-            } else if (itemType.contains("消毒")) {
+            } else if (itemType.contains("消毒") || itemType.contains("消杀")) {
                 feeType = TbFeeDetails.fee.DISINFECT_FEE.getCode();
             } else if (itemType.contains("装卸")) {
                 feeType = TbFeeDetails.fee.STEVEDORE_FEE.getCode();
@@ -180,10 +183,13 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
         }
     }
 
-    public String export(SoMap so) throws Exception {
+    public String export(SoMap so) throws Exception{
+        Date now = new Date();
+        String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm");
         Map<String, String> head = new HashMap<>();
         head.put("time", so.getString("payDay"));
-        List<ExportFeeDetailDTO> exportList = new ArrayList<>();
+        head.put("exportTime", nowStr);
+	    List<ExportFeeDetailDTO> exportList = new ArrayList<>();
         List<TbFeeDetails> list = this.getList(so);
         Integer index = 1;
         for (TbFeeDetails feeDetails : list) {
@@ -192,7 +198,11 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
             detailDTO.setBusinessNo(feeDetails.getBusinessNo()).setCarNo(feeDetails.getCarNo())
                     .setFeeType(feeType).setItemTypeName(feeDetails.getItemTypeName())
                     .setItemName(feeDetails.getItemName()).setItemPrice(feeDetails.getItemPrice())
-                    .setPayType("微信支付").setIndex(index++);
+                    .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());
             exportList.add(detailDTO);
         }
 
@@ -201,15 +211,15 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
         String rootPath = UploadUtil.uploadConfig.rootFolder + separator + UploadUtil.uploadConfig.httpPrefix;
         String prefix = myConfig.getDomain() + UploadUtil.uploadConfig.httpPrefix;
         String extPath = "feeDetails" + separator + today + separator;
-        String fileName = "收费登记表_" + today + ".xlsx";
+        String fileName = "收费明细表_" + today + ".xlsx";
         String savePath = rootPath + separator + extPath;
         File saveFIle = new File(savePath);
         if (!saveFIle.exists()) {
             saveFIle.mkdirs();
         }
 
-        ClassPathResource classPathResource = new ClassPathResource("static/day-fee.xlsx");
-        InputStream tempInputStream = classPathResource.getInputStream();
+        ClassPathResource classPathResource = new ClassPathResource("static/day-fee-new.xlsx");
+        InputStream tempInputStream =classPathResource.getInputStream();
 
         ExcelWriter excelWriter = EasyExcel.write(savePath + fileName, ExportFeeDetailDTO.class)
                 .withTemplate(tempInputStream).build();
@@ -217,7 +227,7 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
         excelWriter.fill(exportList, writeSheet);
         excelWriter.fill(head, writeSheet);
         excelWriter.finish();
-        return prefix + "/feeDetails/" + today + "/收费登记表_" + today + ".xlsx";
+        return prefix + "/feeDetails/" + today + "/收费明细表_" + today + ".xlsx";
     }
 
 }

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

@@ -82,6 +82,10 @@
 			<if test=' this.has("taxRate") '> and tax_rate = #{taxRate} </if>
 			<if test=' this.has("noTaxMoney") '> and no_tax_money = #{noTaxMoney} </if>
 			<if test=' this.has("payType") '> and pay_type = #{payType} </if>
+            <if test=' this.has("beginDay") and this.has("endDay") '>
+                and day_time >= #{beginDay}
+                and day_time  &lt;= #{endDay}
+            </if>
 		</where>
 		order by
 		<choose>
@@ -107,6 +111,10 @@
         <where>
             <if test=' this.has("feeType") '> and fee_type = #{feeType} </if>
             <if test=' this.has("month") '> and month = #{month} </if>
+            <if test=' this.has("beginMonth") and this.has("endMonth") '>
+                and month >= #{beginMonth}
+                and month  &lt;= #{endMonth}
+            </if>
         </where>
         group by month, fee_type
         order by month desc

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

@@ -112,7 +112,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
         TbFeeStatistics parkFee = this.getByDayAndFeeType(toDay, TbFeeStatistics.feeType.PARK_FEE.getCode());
         if (parkFee == null) {
             parkFee = new TbFeeStatistics();
-            parkFee.setTaxRate(partConfig.getTaxRate());
+            parkFee.setTaxRate(new BigDecimal(TbFeeStatistics.taxRate.PARK.getValue()));
         }
         for (PriceBO bo1 : cars) {
             BigDecimal price = bo1.getP();
@@ -133,6 +133,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
     //@Async
     public void countBusinessFee(List<TbBusinessItem> items) {
         Date now = new Date();
+        String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");
         String toDay = DateUtil.format(now, "yyyy-MM-dd");
         String thisYear = StrUtil.sub(toDay, 0, 4);
         String thisMonth = StrUtil.sub(toDay, 0, 7);
@@ -141,7 +142,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
             String itemType = item.getItemTypeName();
             if (itemType.contains("核酸")) {
                 feeType = TbFeeStatistics.feeType.NUCLEIC_FEE.getCode();
-            } else if (itemType.contains("消毒")) {
+            } else if (itemType.contains("消毒") || itemType.contains("消杀")) {
                 feeType = TbFeeStatistics.feeType.DISINFECT_FEE.getCode();
             } else if (itemType.contains("装卸")) {
                 feeType = TbFeeStatistics.feeType.STEVEDORE_FEE.getCode();
@@ -162,7 +163,8 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
             BigDecimal noTaxMoney = businessFee.getTaxMoney().subtract(businessFee.getTaxMoney().multiply(businessFee.getTaxRate()));
             businessFee.setNoTaxMoney(noTaxMoney);
             businessFee.setDayTime(now).setMonth(thisMonth).setYear(thisYear).setDay(toDay)
-                    .setFeeType(feeType).setItemTypeName(itemType)
+                    .setFeeType(feeType)
+                    //.setItemTypeName(itemType)
                     .setPayType(3);
             this.saveOrUpdate(businessFee);
             /*-----------------分割线------------------*/
@@ -175,15 +177,22 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
             }
 
             BigDecimal noTaxPrice = item.getItemPrice().subtract(item.getItemPrice().multiply(businessFeeDetail.getTaxRate()));
+            BigDecimal taxPrice = item.getItemPrice().multiply(businessFeeDetail.getTaxRate());
+            String carNo = business.getCardNo();
+            if(StrUtil.isEmpty(business.getCardNo())){
+                carNo = business.getChinaCarNo();
+            }
             businessFeeDetail.setBusinessId(item.getBusinessId()).setBusinessNo(business.getNo())
-                    .setCarNo(business.getCardNo())
-                    .setItemPrice(item.getItemPrice()).setNoTaxPrice(noTaxPrice)
+                    .setBusinessItemNo(item.getNo())
+                    .setCarNo(carNo)
+                    .setItemPrice(item.getItemPrice()).setUnitPrice(item.getItemPrice()).setNoTaxPrice(noTaxPrice).setTaxPrice(taxPrice)
                     .setFeeType(feeType)
                     .setItemTypeId(item.getItemTypeId()).setItemTypeName(item.getItemTypeName())
                     .setItemId(item.getItemId()).setItemName(item.getItemName())
                     .setPayDay(toDay).setPayType(3).setCreateTime(now)
                     .setBusinessItemId(item.getId() + "")
-                    .setPickCustomerName(item.getPickCustomerName());
+                    .setPickCustomerName(item.getPickCustomerName())
+                    .setNum(1).setIsSettle(1).setPayMode(1).setPayTime(nowStr).setWeight(business.getNetWeight());
             tbFeeDetailsService.saveOrUpdate(businessFeeDetail);
         }
     }

TEMPAT SAMPAH
sp-server/src/main/resources/static/day-fee-new.xlsx