Forráskód Böngészése

支付金额大于0限制

qzyReal 3 éve
szülő
commit
47500944a4
25 módosított fájl, 187 hozzáadás és 249 törlés
  1. 3 0
      app/apis/api.js
  2. 1 1
      app/manifest.json
  3. 1 1
      app/pages/business-order/business-order.vue
  4. 15 0
      app/pages/onely-disinfect/Index.vue
  5. 46 195
      app/pages/onely-disinfect/disinfect-Index.vue
  6. 33 1
      app/pages/onely-disinfect/type-business-edit.vue
  7. 11 7
      app/pages/onely-disinfect/type-business.vue
  8. 0 6
      app/pages/wx/payOrder.vue
  9. 2 2
      app/utils/request.js
  10. 10 0
      sp-admin/sa-view/tb-item-type/tb-item-add.html
  11. 1 10
      sp-admin/sa-view/tb-item-type/tb-item-type-list.html
  12. 1 0
      sp-admin/sa-view/tb-item-type/tb-item.html
  13. 2 1
      sp-admin/sa-view/tb-item/tb-item-list.html
  14. 1 0
      sp-server/src/main/java/com/pj/api/bo/OtherBusinessEditBO.java
  15. 5 3
      sp-server/src/main/java/com/pj/api/h5/ApiController.java
  16. 6 3
      sp-server/src/main/java/com/pj/api/jh/service/JhService.java
  17. 3 2
      sp-server/src/main/java/com/pj/api/wx/service/WxService.java
  18. 1 0
      sp-server/src/main/java/com/pj/project/relation_type_item/RelationTypeItem.java
  19. 1 0
      sp-server/src/main/java/com/pj/project/tb_business/TbBusinessService.java
  20. 6 0
      sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItem.java
  21. 12 3
      sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatistics.java
  22. 5 1
      sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatisticsController.java
  23. 12 12
      sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatisticsService.java
  24. 8 1
      sp-server/src/main/java/com/pj/project/tb_item/TbItem.java
  25. 1 0
      sp-server/src/main/java/com/pj/project/tb_item_type/TbItemType.java

+ 3 - 0
app/apis/api.js

@@ -198,6 +198,9 @@ export default {
 	},
 	getOtherBusinessById(data){
 		return ajax.get('/TbBusiness/getOtherBusinessById',data)
+	},
+	getItemTypeList(data){
+		return ajax.get('/TbItemType/getList',data)
 	}
 	
 }

+ 1 - 1
app/manifest.json

@@ -85,7 +85,7 @@
     "vueVersion" : "2",
     "h5" : {
         "router" : {
-            "base" : "/h5/",
+            "base" : "/test/",
             "mode" : "history"
         },
         "devServer" : {

+ 1 - 1
app/pages/business-order/business-order.vue

@@ -30,7 +30,7 @@
 					</view>
 					<view class="item">
 						<text class="p1">载重:</text>
-						<text class="p2">{{businessItem.netWeight}}()</text>
+						<text class="p2">{{businessItem.netWeight}}(kg)</text>
 					</view>
 					<view class="item">
 						<text class="p1">账单确认:</text>

+ 15 - 0
app/pages/onely-disinfect/Index.vue

@@ -4,6 +4,7 @@
 			<view class="top" style="margin-top: -1rpx;">
 				<text class="title">灵活业务</text>
 			</view>
+			<view class="add" @click="addFn">+添加</view>
 		</view>
 		<!-- 		<u-sticky offset-top="0">
 			<u-tabs :list="tabs" @change="change" :current="current" :is-scroll="false"></u-tabs>
@@ -112,6 +113,9 @@
 			return true;
 		},
 		methods: {
+			addFn(){
+				this.$common.to('/pages/onely-disinfect/disinfect-Index')
+			},
 			toDetail(data) {
 				this.$common.to('/pages/onely-disinfect/type-business-info?id=' + data.id)
 			},
@@ -204,6 +208,17 @@
 </script>
 
 <style lang="scss">
+	.add {
+		position: absolute;
+		right: 40rpx;
+		top: -60rpx;
+		z-index: 999;
+		border: 1rpx solid #359aff;
+		border-radius: 8rpx;
+		color: #c8e4ff;
+		padding: 10rpx 20rpx;
+		font-size: 28rpx;
+	}
 	.card-box {
 		display: flex;
 		width: 100%;

+ 46 - 195
app/pages/onely-disinfect/disinfect-Index.vue

@@ -2,195 +2,64 @@
 	<view>
 		<view class="box">
 			<view class="top">
-				<text class="title">灵活业务</text>
-			</view>
-			<view class="item-line">
-				基本信息
-			</view>
-			<view class="item">
-				<view class="l"><text style="color: red;">*</text>车牌号:</view>
-				<view class="r">
-					<u-input placeholder="请填写车牌号" v-model="form.carNo" />
-				</view>
-			</view>
-			<view class="item">
-				<view class="l"><text style="color: red;">*</text>车辆类型:</view>
-				<view class="r">
-					<picker class="p-picker" id="qy" @change="bindPickerChange($event)" :value="type.index"
-						:range="type.list" range-key="name">
-						<text class="p-text">{{type.list[type.index]}}</text>
-						<u-icon class="p-icon" name="arrow-down-fill" size="20"></u-icon>
-					</picker>
-				</view>
-			</view>
-			<view class="item-line">
-				业务项
-			</view>
-			<view class="item" v-for="item in itemList" :key="item.id">
-				<view class="l" style="flex: 6;">{{item.itemName}}:
-				</view>
-				<view class="r">
-					<view style="margin-left: 20rpx;">
-						{{item.price}}元
-					</view>
-				</view>
-			</view>
-			<view class="item">
-				<view class="l">停车费:
-				</view>
-				<view class="r">
-					<view style="margin-left: 20rpx;">
-						30元
-					</view>
-				</view>
+				<text class="title">业务项</text>
 			</view>
 		</view>
-		<view v-if="!form.adminConfirmInput">
-			<u-button type="primary" v-if="!obj" text="保存" @click="saveFn"></u-button>
-			<!-- <u-button type="primary" v-if="obj" text="修改" @click="saveFn"></u-button> -->
-			<u-button type="primary" v-if="obj" text="确认账单" @click="confirmFn" style="margin-top: 20rpx;"></u-button>
-			<u-button type="info" text="重置" @click="resetFn" style="margin-top: 20rpx;"></u-button>
+		<view class="card-box">
+			<uni-list>
+				<uni-list-item v-for="(item,index) in typeList"  link="reLaunch" @click="onClick(item)" >
+					<template v-slot:body>{{item.name}}</template>
+				</uni-list-item>
+			</uni-list>
 		</view>
-		<!-- ---------------------------------------------------------- -->
-		<view class="bottom-safety"></view>
-
+		<noData v-if="typeList.length==0"></noData>
+		<u-loadmore style="margin: 30rpx;" :status="status" />
 	</view>
+
 </template>
 
 <script>
 	export default {
 		data() {
 			return {
-				type: {
-					index: 0,
-					list: ['空车', '载货']
-				},
-				obj: null,
-				form: {
-					carNo: ''
+				status: 'loadmore',
+				customemrId: '1',
+				typeList:[],
+				p: {
+					business: 0,
+					pageNo: 1,
+					pageSize: 3,
+					dataCount: 0
 				},
-				itemList: [],
-				list: []
-			}
-		},
-		onLoad(options) {
-			let data = options.json;
-			if (data) {
-				this.obj = JSON.parse(options.json)
 			}
 		},
-		mounted() {
-			this.getTypeList();
+		onShow() {
+			this.getItemTypeList();
 		},
 		onBackPress() {
-			this.$common.to('/pages/onely-disinfect/Index');
+			this.$common.to('/pages/onely-disinfect/Index')
 			return true;
 		},
 		methods: {
-			bindPickerChange(e) {
-				let index = e.detail.value;
-				this.type.index = index //当前picker选中的值
-				if (index == 0) {
-					this.itemList = this.list.filter(obj => obj.itemName.indexOf('车头车厢') !== -1)
-				} else {
-					this.itemList = this.list.filter(obj => obj.itemName.indexOf('车头消杀') !== -1)
-				}
-			},
-			getTypeList() {
-				this.$api.getItemList({
-					business: 0
-				}).then(resp => {
-					let list = resp.data;
-					let itemList = [];
-					for (let i in list) {
-						let item = list[i];
-						itemList.push(item.items[0]);
-					}
-					this.list = itemList;
-					this.itemList = itemList.filter(obj => obj.itemName.indexOf('车头车厢') !== -1);
-					if (this.obj) {
-						this.form.carNo = this.obj.carNo;
-						this.form.businessCarId = this.obj.businessCarId;
-						this.form.adminConfirmInput = this.obj.adminConfirmInput;
-						this.form.id = this.obj.id;
-						let index = this.type.list.indexOf(this.obj.goodsName);
-						this.type.index = index
-						if (index == 0) {
-							this.itemList = this.list.filter(obj => obj.itemName.indexOf('车头车厢') !== -1)
-						} else {
-							this.itemList = this.list.filter(obj => obj.itemName.indexOf('车头消杀') !== -1)
-						}
-					}
-				})
-			},
-			resetFn() {
-				this.form.carNo = '';
-				this.type.index = 0;
-				this.itemList = this.list;
+			onClick(item){
+				this.$common.to('/pages/onely-disinfect/type-business?typeId='+item.id)
 			},
-			saveFn() {
-				if (!this.form.carNo) {
-					this.$common.toast('请输入车牌号')
-					return;
-				}
-				this.form.itemJson = JSON.stringify(this.itemList);
-				this.form.carType = this.type.list[this.type.index]
-				let that = this;
-				let content = this.obj ? '确认修改该业务?' : '确认录入该车辆的消杀业务?'
-				uni.showModal({
-					title: '提示',
-					content: content,
-					success(res) {
-						if (res.confirm) {
-							if (!that.obj) {
-								that.addFn();
-							} else {
-								that.editFn()
-							}
-
-						}
-					}
-				})
-			},
-			addFn() {
-				this.$api.addCarDisinfect(this.$common.removeNull(this.form)).then(resp => {
-					if (resp.code == 200) {
-						this.$common.to('/pages/onely-disinfect/addSuccess')
-					}
-				})
-			},
-			confirmFn() {
-				let that = this;
-				uni.showModal({
-					title: '提示',
-					content: '是否确认该账单?',
-					success(res) {
-						if (res.confirm) {
-							that.$api.adminConfirm({
-								ids: that.form.id
-							}).then(resp => {
-								if (resp.code == 200) {
-									that.$common.toast('已确认');
-									setTimeout(() => {
-										that.$common.to('/pages/onely-disinfect/Index')
-									}, 1500)
-								}
-							})
-						}
-					}
-				})
-			},
-			editFn() {
-				this.$api.editCarDisinfect(this.$common.removeNull(this.form)).then(resp => {
-					if (resp.code == 200) {
-						this.$common.toast('修改成功');
-						setTimeout(() => {
-							this.$common.to('/pages/onely-disinfect/Index')
-						}, 1500)
-					}
+			getItemTypeList(){
+				this.$api.getItemTypeList(this.p).then(resp=>{
+					this.typeList=resp.data;
 				})
 			}
 		},
+		//上拉加载更多,分页模拟数据
+		onReachBottom() {
+			if (parseInt(this.p.dataCount) > parseInt(this.p.pageSize) * parseInt(this.p.pageNo)) {
+				this.status = 'loading';
+				this.p.pageSize += 5;
+				this.getCarDisinFect();
+			} else {
+				this.status = 'nomore';
+			}
+		}
 
 	}
 </script>
@@ -200,34 +69,16 @@
 		background-color: #fff;
 	}
 
-	.hs-item {
-		text-align: center;
-	}
-
-	.item-line {
-		color: #a2a2a2;
-		padding: 5px 0 10px 29px;
-		border-bottom: 1px solid #E5E5E5;
-	}
-
-	.hj {
-		padding: 50rpx;
-		font-size: 40rpx;
-		color: red;
-		font-weight: bold;
-	}
-
-	.save-btn {
-		background-color: #ff4200;
-		height: 88rpx;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		margin: 60rpx;
-		color: #fff;
-		font-size: 30rpx;
-		font-weight: bold;
-		border-radius: 10rpx;
+	.add {
+		position: absolute;
+		right: 40rpx;
+		top: -60rpx;
+		z-index: 999;
+		border: 1rpx solid #359aff;
+		border-radius: 8rpx;
+		color: #c8e4ff;
+		padding: 10rpx 20rpx;
+		font-size: 28rpx;
 	}
 
 	@import '@/common/common.scss'

+ 33 - 1
app/pages/onely-disinfect/type-business-edit.vue

@@ -7,6 +7,16 @@
 			<view class="item-line">
 				基本信息
 			</view>
+			<view class="item" v-if="customerId==='1'">
+				<view class="l"><text style="color: red;">*</text>客户:</view>
+				<view class="r">
+					<picker  v-if="customer.list.length>0" class="p-picker" @change="customerChange($event)"
+						:value="customer.index" :range="customer.list" range-key="name">
+						<text class="p-text">{{customer.list[customer.index].name}}</text>
+						<u-icon class="p-icon" name="arrow-down-fill" size="20"></u-icon>
+					</picker>
+				</view>
+			</view>
 			<view class="item">
 				<view class="l"><text style="color: red;">*</text>车牌号:</view>
 				<view class="r">
@@ -83,7 +93,11 @@
 					index: 1,
 					list: ['空车', '载货']
 				},
-				obj: null,
+				customerId:'1',
+				customer: {
+					index: 0,
+					list: []
+				},
 				form: {
 					carNo: '',
 					carSize: '',
@@ -115,6 +129,7 @@
 		onLoad(options) {
 			this.form.id = options.id;
 			this.getOtherBusinessById();
+			this.customerId=uni.getStorageSync('customerId');
 			let that = this;
 			uni.$on('getRemark', data => {
 				that.$nextTick(function() {
@@ -128,6 +143,15 @@
 			return true;
 		},
 		methods: {
+			getCustomerList() {
+				let p={judgeStatus: 2,pageNo:1,pageSize:30,	type: 0}
+				this.$api.getCustomerList(p).then(resp => {
+					let list=resp.data;
+					this.customer.list = list;
+					console.log(list)
+					this.customer.index=list.map(obj=>obj.id).indexOf(this.form.customerId);
+				})
+			},
 			openRemarkFn(data) {
 				this.$common.to('/pages/onely-disinfect/add-remark?itemId=' + data.id + '&title=' + data.itemName +
 					'&remark=' + data.remark + '&mustRemark=' + data.mustRemark)
@@ -157,6 +181,10 @@
 				let index = e.detail.value;
 				this.type.index = index //当前picker选中的值
 			},
+			customerChange(e){
+				let index = e.detail.value;
+				this.customer.index = index //当前picker选中的值
+			},
 			saveFn() {
 				if (!this.form.carNo) {
 					this.$common.toast('请输入车牌号')
@@ -176,6 +204,9 @@
 				this.form.itemTypeId = this.itemType.id;
 				this.form.items = list;
 				this.form.carType = this.type.list[this.type.index]
+				if(this.customerId=='1'){
+					this.form.customerId = this.customer.list[this.customer.index].id;
+				}
 				let that = this;
 				let content = '确认修改该业务'
 				uni.showModal({
@@ -199,6 +230,7 @@
 					this.itemType.id = data.itemTypeId;
 					this.type.index = this.type.list.indexOf(data.carType)
 					this.getItemType();
+					this.getCustomerList();
 				})
 			},
 			editFn() {

+ 11 - 7
app/pages/onely-disinfect/type-business.vue

@@ -4,13 +4,14 @@
 			<view class="top">
 				<text class="title">{{itemType.name}}</text>
 			</view>
+			
 			<view class="item-line">
 				基本信息
 			</view>
-			<view class="item" v-if="form.customerId=='1'">
+			<view class="item" v-if="customerId=='1'">
 				<view class="l"><text style="color: red;">*</text>客户:</view>
 				<view class="r">
-					<picker v-if="customer.list.length>0" class="p-picker" @change="bindPickerChange($event)"
+					<picker v-if="customer.list.length>0" class="p-picker" @change="customerChange($event)"
 						:value="customer.index" :range="customer.list" range-key="name">
 						<text class="p-text">{{customer.list[customer.index].name}}</text>
 						<u-icon class="p-icon" name="arrow-down-fill" size="20"></u-icon>
@@ -97,9 +98,9 @@
 					index: 0,
 					list: []
 				},
-				obj: null,
+				customerId: '1',
 				form: {
-					customerId: '1',
+					customerId: '',
 					carNo: '',
 					carSize: '',
 					carWeight: ''
@@ -133,7 +134,7 @@
 			let typeId = options.typeId;
 			this.itemType.id = typeId;
 			this.getItemType();
-			if (customerId == '1') {
+			if (!customerId||customerId == '1') {
 				this.getCustomerList();
 			}
 			let that = this;
@@ -172,9 +173,12 @@
 			},
 			bindPickerChange(e) {
 				let index = e.detail.value;
-				console.log(index)
 				this.type.index = index //当前picker选中的值
 			},
+			customerChange(e){
+				let index = e.detail.value;
+				this.customer.index = index //当前picker选中的值
+			},
 			saveFn() {
 				if (!this.form.carNo) {
 					this.$common.toast('请输入车牌号')
@@ -191,7 +195,7 @@
 				let itemList = this.itemType.items;
 				let checkList = this.checkList;
 				let list = itemList.filter(obj => checkList.indexOf(obj.id) !== -1);
-				if(this.customer.list.length>0){
+				if(this.customerId=='1'){
 					this.form.customerId = this.customer.list[this.customer.index].id;
 				}
 				this.form.itemTypeId = this.itemType.id;

+ 0 - 6
app/pages/wx/payOrder.vue

@@ -152,12 +152,6 @@
 			confirmFn() {
 				let p = {
 					b: this.wx.id,
-					c: JSON.stringify(this.form.cars.map(obj => {
-						return {
-							id: obj.id,
-							p: obj.basePartMoney
-						}
-					})),
 					money: this.form.totalMoney,
 					tradeType: "JSAPI",
 					openid: this.wx.openid

+ 2 - 2
app/utils/request.js

@@ -1,5 +1,5 @@
-const server = 'http://127.0.0.1:8099/pro';
-// const server = 'https://pco.aseanbusiness.cn/pro';
+// const server = 'http://127.0.0.1:8099/pro';
+const server = 'https://pco.aseanbusiness.cn/pro';
 // const server = 'https://dxkaa1.bgigc.com/pro';
 
 import common from '../common/js/common.js';

+ 10 - 0
sp-admin/sa-view/tb-item-type/tb-item-add.html

@@ -39,6 +39,16 @@
 					<div class="c-title" v-else>数据修改</div>
 					<el-form v-if="m">
 						<sa-item type="text" name="明细名称" v-model="m.itemName" placeholder="请输入项目名称" br></sa-item>
+						<sa-td name="业务分类" prop="businessType" width="200px">
+							<template slot-scope="s">
+								<el-select :disabled="!sa.isAuth('tb-item-type-edit')" multiple v-model="s.row.type"
+									placeholder="收费项" @change="businessChange(s.row)">
+									<el-option v-for="item in businessTypeList" :key="item.value" :value="item.value"
+										:label="item.name">
+									</el-option>
+								</el-select>
+							</template>
+						</sa-td>
 						<sa-item type="text" name="计价单位" v-model="m.unit" placeholder="请输入计量单位" br></sa-item>
 						<div class="c-item">
 							<label class="c-label">计费金额(元):</label>

+ 1 - 10
sp-admin/sa-view/tb-item-type/tb-item-type-list.html

@@ -32,16 +32,7 @@
 				<el-table class="data-table" ref="data-table" :data="dataList">
 					<el-table-column type="index" width="50"></el-table-column>
 					<sa-td name="项目名称" prop="name" width="200px"></sa-td>
-					<sa-td name="业务分类" prop="businessType" width="200px">
-						<template slot-scope="s">
-							<el-select :disabled="!sa.isAuth('tb-item-type-edit')" multiple v-model="s.row.type"
-								placeholder="收费项" @change="businessChange(s.row)">
-								<el-option v-for="item in businessTypeList" :key="item.value" :value="item.value"
-									:label="item.name">
-								</el-option>
-							</el-select>
-						</template>
-					</sa-td>
+					
 					<sa-td name="税率" prop="taxRate"></sa-td>
 					<sa-td name="排序" prop="sort"></sa-td>
 					<el-table-column label="操作" fixed="right" width="260px">

+ 1 - 0
sp-admin/sa-view/tb-item-type/tb-item.html

@@ -42,6 +42,7 @@
 							<label>{{s.row.minWeight}}—{{s.row.maxWeight}}</label>
 						</template>
 					</sa-td>
+					
 					<sa-td name="明细数量" prop="inc" type="switch" :jv="{1: '多个[#005500]', 0: '单个[#ff0000]'}"
 						@change="s => updateNum(s.row)"></sa-td>
 					<sa-td name="是否必须" prop="need" type="switch" :jv="{1: '是[#005500]', 0: '否[#ff0000]'}"

+ 2 - 1
sp-admin/sa-view/tb-item/tb-item-list.html

@@ -42,7 +42,7 @@
 					<!-- <sa-td name="项目编号" prop="code"></sa-td> -->
 					<sa-td name="收费项" prop="code">
                         <template slot-scope="s">
-                          <el-select v-model="s.row.items[0].id" placeholder="收费项">
+                          <el-select v-if="s.row.items.length>0" v-model="s.row.items[0].id" placeholder="收费项">
                           	<el-option v-for="item in s.row.items" :key="item.id" :value="item.id"
                           		:label="item.itemName+' '+item.price+item.unit">
                           	</el-option>
@@ -66,6 +66,7 @@
 					p: { // 查询参数  
 						id: '', // 主键
 						name: '', // 项目名称 
+						business:1,
 						pageNo: 1, // 当前页 
 						pageSize: 20, // 页大小 
 						sortType: 0 // 排序方式 

+ 1 - 0
sp-server/src/main/java/com/pj/api/bo/OtherBusinessEditBO.java

@@ -14,6 +14,7 @@ import java.util.List;
 public class OtherBusinessEditBO implements Serializable {
     private String id;
     private String carNo;
+    private String customerId;
     private Double carSize;
     private String itemTypeId;
     private String carType;

+ 5 - 3
sp-server/src/main/java/com/pj/api/h5/ApiController.java

@@ -83,9 +83,11 @@ public class ApiController {
     @RequestMapping(value = "getCustomerList")
     public AjaxJson getCustomerList() {
         SoMap so = SoMap.getRequestSoMap();
-        String currentCustomerId = StpUserUtil.getCustomerId();
-        if (!currentCustomerId.equals(UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
-            so.put("id", currentCustomerId);
+        if (StpUserUtil.isLogin()){
+            String currentCustomerId = StpUserUtil.getCustomerId();
+            if (!currentCustomerId.equals(UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
+                so.put("id", currentCustomerId);
+            }
         }
         List<TbCostomer> list = apiService.getCustomerList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);

+ 6 - 3
sp-server/src/main/java/com/pj/api/jh/service/JhService.java

@@ -66,7 +66,7 @@ public class JhService {
             return wxService.prePay(request);
         }
         String money = request.getParameter("money");
-        if (Integer.parseInt(money)<=0){
+        if (Double.valueOf(money) <= 0) {
             throw new BusinessException("金额不正确");
         }
         String openid = request.getParameter("openid");
@@ -146,7 +146,7 @@ public class JhService {
 
     @Async
     public void notifyResult(JhNotifyBO bo) {
-        String orderStatus=bo.getTradeStatus();
+        String orderStatus = bo.getTradeStatus();
         if (!"SUCCESS".equals(orderStatus) && !"FINISH".equals(orderStatus)) {
             return;
         }
@@ -161,10 +161,11 @@ public class JhService {
         tbOrder.setOrderStatus(orderStatus)
                 .setTransactionId(bo.getBankTrxNo())
                 .setCompleteDate(bo.getSuccessTime());
+        tbOrderService.updateById(tbOrder);
     }
 
     public void refund(String outTradeNo) {
-        String url=jhConfig.getServerUrl()+"/uaps-web-gateway/refund/initRefund";
+        String url = jhConfig.getServerUrl() + "/uaps-web-gateway/refund/initRefund";
         Map<String, Object> params = new HashMap<>();
         params.put("businessMerchantNo", jhConfig.getBusinessMerchantNo());
         params.put("outTradeNo", outTradeNo);
@@ -172,4 +173,6 @@ public class JhService {
         params.put("businessMerchantNo", jhConfig.getBusinessMerchantNo());
 
     }
+
+
 }

+ 3 - 2
sp-server/src/main/java/com/pj/api/wx/service/WxService.java

@@ -85,7 +85,7 @@ public class WxService {
     public Map<String, String> prePay(HttpServletRequest request) throws Exception {
         String tradeType = request.getParameter("tradeType");
         String money = request.getParameter("money");
-        if (Integer.parseInt(money)<=0){
+        if (Double.valueOf(money)<=0){
             throw new BusinessException("金额不正确");
         }
         String openid = request.getParameter("openid");
@@ -204,7 +204,7 @@ public class WxService {
             for (PriceBO bo1 : cars) {
                 TbBusinessCar car = tbBusinessCarService.getById(bo1.getId());
                 BigDecimal price = bo1.getP();
-                if (price.doubleValue()<=0){
+                if (price==null||price.doubleValue()<=0){
                     log.error("付款金额不正确:{}",JSONUtil.toJsonStr(notifyBO));
                     continue;
                 }
@@ -237,6 +237,7 @@ public class WxService {
                 tbAccountService.recharge(chargeBO.getId(), chargeBO.getC(), TbChargeRecord.Ch.WECHAT.getType(), money);
             }
         }
+
     }
 
 

+ 1 - 0
sp-server/src/main/java/com/pj/project/relation_type_item/RelationTypeItem.java

@@ -63,6 +63,7 @@ public class RelationTypeItem extends Model<RelationTypeItem> implements Seriali
 
 
 
+
 	
 
 

+ 1 - 0
sp-server/src/main/java/com/pj/project/tb_business/TbBusinessService.java

@@ -576,6 +576,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
         List<TbBusinessCar> cars = tbBusinessCarService.findByBusinessId(id);
         OtherBusinessEditBO otherBusinessBO = new OtherBusinessEditBO();
         otherBusinessBO.setId(tbBusiness.getId());
+        otherBusinessBO.setCustomerId(tbBusiness.getCustomerId());
         otherBusinessBO.setCarNo(cars.get(0)
                 .getCarNo()).setCarWeight(tbBusiness.getNetWeight())
                 .setCarSize(tbBusiness.getCardSize()).setCarType(tbBusiness.getGoodsName())

+ 6 - 0
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItem.java

@@ -103,6 +103,12 @@ public class TbBusinessItem extends Model<TbBusinessItem> implements Serializabl
 	private String no;
 	private String remark;
 
+	/**
+	 * 收费分类
+	 */
+	private Integer payType;
+	private String payTypeName;
+
 	@TableField(exist = false)
 	private String goodsName;
 	@TableField(exist = false)

+ 12 - 3
sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatistics.java

@@ -2,7 +2,7 @@ package com.pj.project.tb_fee_statistics;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
-import java.util.Date;
+import java.util.*;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -115,7 +115,7 @@ public class TbFeeStatistics implements Serializable {
     @Getter
     @AllArgsConstructor
     //(1=核酸检测,2=消杀作业,3=装卸作业,4=停车费,5=过磅费)
-    public static enum feeType{
+    public static enum FeeTypeEnum{
         NUCLEIC_FEE(1,"核酸检测"),
         DISINFECT_FEE(2,"消杀作业"),
         STEVEDORE_FEE(3,"装卸作业"),
@@ -137,7 +137,16 @@ public class TbFeeStatistics implements Serializable {
     }
 
 
-
+	public static List<Map<String, Object>> getList() {
+		List<Map<String, Object>> list = new ArrayList<>();
+		for (TbFeeStatistics.FeeTypeEnum feeTypeEnum : TbFeeStatistics.FeeTypeEnum.values()) {
+			Map<String, Object> map = new HashMap<>();
+			map.put("id", feeTypeEnum.getCode());
+			map.put("name", feeTypeEnum.getDesc());
+			list.add(map);
+		}
+		return list;
+	}
 
 
 	

+ 5 - 1
sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatisticsController.java

@@ -125,7 +125,11 @@ public class TbFeeStatisticsController {
 		return AjaxJson.getByLine(line);
 	}
 	
-	
+
+	@RequestMapping(value = "getFeeType")
+	public AjaxJson getFeeType(){
+		return AjaxJson.getSuccessData(TbFeeStatistics.getList());
+	}
 	
 	
 	

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

@@ -104,7 +104,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
         List<TbFeeStatistics> monthFees = tbFeeStatisticsMapper.getMonth(so);
         for (TbFeeStatistics fee : monthFees) {
             BigDecimal taxRate = BigDecimal.valueOf(TbFeeStatistics.taxRate.BUSINESS.getValue());
-            if(fee.getFeeType() == TbFeeStatistics.feeType.PARK_FEE.getCode()){
+            if(fee.getFeeType() == TbFeeStatistics.FeeTypeEnum.PARK_FEE.getCode()){
                 taxRate = BigDecimal.valueOf(TbFeeStatistics.taxRate.PARK.getValue());
             }
             BigDecimal taxes = fee.getStatisticsMoney().divide(taxRate.add(BigDecimal.valueOf(1)),2, BigDecimal.ROUND_HALF_UP).multiply(taxRate);
@@ -119,7 +119,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
         List<TbFeeStatistics> yearFees = tbFeeStatisticsMapper.getYear(so);
         for (TbFeeStatistics fee : yearFees) {
             BigDecimal taxRate = BigDecimal.valueOf(TbFeeStatistics.taxRate.BUSINESS.getValue());
-            if(fee.getFeeType() == TbFeeStatistics.feeType.PARK_FEE.getCode()){
+            if(fee.getFeeType() == TbFeeStatistics.FeeTypeEnum.PARK_FEE.getCode()){
                 taxRate = BigDecimal.valueOf(TbFeeStatistics.taxRate.PARK.getValue());
             }
             BigDecimal taxes = fee.getStatisticsMoney().divide(taxRate.add(BigDecimal.valueOf(1)),2, BigDecimal.ROUND_HALF_UP).multiply(taxRate);
@@ -143,7 +143,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
         String toDay = DateUtil.format(now, "yyyy-MM-dd");
         String thisYear = StrUtil.sub(toDay, 0, 4);
         String thisMonth = StrUtil.sub(toDay, 0, 7);
-        TbFeeStatistics parkFee = this.getByDayAndFeeType(toDay, TbFeeStatistics.feeType.PARK_FEE.getCode());
+        TbFeeStatistics parkFee = this.getByDayAndFeeType(toDay, TbFeeStatistics.FeeTypeEnum.PARK_FEE.getCode());
         if (parkFee == null) {
             parkFee = new TbFeeStatistics();
             parkFee.setTaxRate(BigDecimal.valueOf(TbFeeStatistics.taxRate.PARK.getValue()));
@@ -171,7 +171,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
 //        BigDecimal noTaxMoney = parkFee.getTaxMoney().subtract(parkFee.getTaxMoney().multiply(parkFee.getTaxRate()));
         parkFee.setNoTaxMoney(noTaxMoney).setTaxes(taxes);
         parkFee.setDayTime(now).setMonth(thisMonth).setYear(thisYear).setDay(toDay)
-                .setFeeType(TbFeeStatistics.feeType.PARK_FEE.getCode()).setItemTypeName(TbFeeStatistics.feeType.PARK_FEE.getDesc())
+                .setFeeType(TbFeeStatistics.FeeTypeEnum.PARK_FEE.getCode()).setItemTypeName(TbFeeStatistics.FeeTypeEnum.PARK_FEE.getDesc())
                 .setPayType(3);
         this.saveOrUpdate(parkFee);
     }
@@ -203,17 +203,17 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
             int feeType = -1;
             String itemType = item.getItemTypeName();
             if (itemType.contains("核酸")) {
-                feeType = TbFeeStatistics.feeType.NUCLEIC_FEE.getCode();
+                feeType = TbFeeStatistics.FeeTypeEnum.NUCLEIC_FEE.getCode();
             } else if (itemType.contains("消毒") || itemType.contains("消杀")) {
-                feeType = TbFeeStatistics.feeType.DISINFECT_FEE.getCode();
+                feeType = TbFeeStatistics.FeeTypeEnum.DISINFECT_FEE.getCode();
             } else if (itemType.contains("装卸")) {
-                feeType = TbFeeStatistics.feeType.STEVEDORE_FEE.getCode();
+                feeType = TbFeeStatistics.FeeTypeEnum.STEVEDORE_FEE.getCode();
             } else if (StrUtil.equals(itemType, "特殊车辆") || StrUtil.equals(itemType, "汽车吊")) {
-                feeType = TbFeeStatistics.feeType.STEVEDORE_FEE.getCode();
+                feeType = TbFeeStatistics.FeeTypeEnum.STEVEDORE_FEE.getCode();
             } else if (itemType.contains("入场管理")) {
-                feeType = TbFeeStatistics.feeType.MANAGE_FEE.getCode();
+                feeType = TbFeeStatistics.FeeTypeEnum.MANAGE_FEE.getCode();
             } else if(StrUtil.equals(itemType, "充电打冷")) {
-                feeType = TbFeeStatistics.feeType.CHARGE_FEE.getCode();
+                feeType = TbFeeStatistics.FeeTypeEnum.CHARGE_FEE.getCode();
             }
             TbFeeStatistics businessFee = this.getByDayAndFeeType(toDay, feeType);
             if (businessFee == null) {
@@ -277,11 +277,11 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
         List<TbFeeDetails> list = tbFeeDetailsService.list(qw);
         Integer totalNum = 0;
         for (TbFeeDetails feeDetail : list) {
-            if(feeDetail.getFeeType() == TbFeeStatistics.feeType.PARK_FEE.getCode()){
+            if(feeDetail.getFeeType() == TbFeeStatistics.FeeTypeEnum.PARK_FEE.getCode()){
                 totalNum = totalNum + feeDetail.getNum();
             }
         }
-        TbFeeStatistics feeStatistics = getByDayAndFeeType(day, TbFeeStatistics.feeType.PARK_FEE.getCode());
+        TbFeeStatistics feeStatistics = getByDayAndFeeType(day, TbFeeStatistics.FeeTypeEnum.PARK_FEE.getCode());
         feeStatistics.setNum(totalNum);
         this.updateById(feeStatistics);
         return feeStatistics;

+ 8 - 1
sp-server/src/main/java/com/pj/project/tb_item/TbItem.java

@@ -64,7 +64,14 @@ public class TbItem extends Model<TbItem> implements Serializable {
     private double minWeight;
     private int status;
     private String killId;
-
+    /**
+     * 业务分类
+     */
+    private String businessType;
+    /**
+     * 收费分类
+     */
+    private Integer payType;
     @TableField(exist = false)
     private String remark;
 

+ 1 - 0
sp-server/src/main/java/com/pj/project/tb_item_type/TbItemType.java

@@ -61,6 +61,7 @@ public class TbItemType extends Model<TbItemType> implements Serializable {
 	private int need;
 	private String code;
 	private Integer inc=0;
+
 	/**
 	 * 业务类型1,消杀;2装卸;0默认
 	 */