Browse Source

bug修复

qzyReal 2 years ago
parent
commit
98f98b09fc
34 changed files with 299 additions and 189 deletions
  1. 2 2
      app/pages/onely-disinfect/Index.vue
  2. 6 4
      app/pages/onely-disinfect/car-manager.vue
  3. 30 14
      app/pages/onely-disinfect/type-business-edit.vue
  4. 24 14
      app/pages/onely-disinfect/type-business.vue
  5. 20 14
      app/pages/wx/pay.vue
  6. 1 2
      app/pages/wx/payOrder.vue
  7. 1 1
      app/utils/request.js
  8. 33 45
      sp-admin/sa-view-sp/console/com-sta-data.vue
  9. 22 8
      sp-admin/sa-view-sp/console/console-main.html
  10. 1 1
      sp-admin/sa-view/car/tb-business-car-list.html
  11. 1 9
      sp-admin/sa-view/tb-business-car/tb-business-car-list.html
  12. 34 21
      sp-admin/sa-view/tb-business/tb-car-disincle-add.html
  13. 36 17
      sp-admin/sa-view/tb-business/tb-car-disincle-edit.html
  14. 2 2
      sp-admin/sa-view/tb-business/tb-car-disincle-info.html
  15. BIN
      sp-admin/static/icon/icon-car-empty.png
  16. BIN
      sp-admin/static/icon/icon-car-in.png
  17. BIN
      sp-admin/static/icon/icon-car-leave.png
  18. BIN
      sp-admin/static/icon/icon-car-weight.png
  19. BIN
      sp-admin/static/icon/icon-car.png
  20. BIN
      sp-admin/static/icon/icon-total.png
  21. 2 2
      sp-admin/static/sa.js
  22. 6 2
      sp-server/src/main/java/com/pj/api/open/service/OpenService.java
  23. 1 1
      sp-server/src/main/java/com/pj/api/wx/service/WxService.java
  24. 1 0
      sp-server/src/main/java/com/pj/project/tb_business/TbBusiness.java
  25. 1 1
      sp-server/src/main/java/com/pj/project/tb_business/TbBusinessController.java
  26. 1 0
      sp-server/src/main/java/com/pj/project/tb_business/TbBusinessMapper.xml
  27. 8 6
      sp-server/src/main/java/com/pj/project/tb_business/TbBusinessService.java
  28. 5 0
      sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarController.java
  29. 3 0
      sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarMapper.java
  30. 14 0
      sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarMapper.xml
  31. 12 22
      sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarService.java
  32. 14 0
      sp-server/src/main/java/com/pj/project/tb_business_car/statics/CarStatics.java
  33. 8 1
      sp-server/src/main/java/com/pj/project/tb_costomer/TbCostomerController.java
  34. 10 0
      sp-server/src/main/java/com/pj/project/tb_item_type/TbItemTypeService.java

+ 2 - 2
app/pages/onely-disinfect/Index.vue

@@ -2,7 +2,7 @@
 	<view>
 		<view class="box">
 			<view class="top" style="margin-top: -1rpx;">
-				<text class="title">其他业务</text>
+				<text class="title">业务管理</text>
 			</view>
 			<view class="add" @click="addFn">+添加</view>
 		</view>
@@ -58,7 +58,7 @@
 						v-if="businessItem.adminConfirmInput==0&&perList.indexOf('tb-flex-business-edit')!==-1"
 						@click="editFn(businessItem)">修改</view>
 					<view class="btn b4" v-if="businessItem.adminConfirmInput==0
-								&&perList.indexOf('tb-business-del')!==-1" @click="deleteFn(businessItem)">删除</view>
+								&&perList.indexOf('tb-flex-business-del')!==-1" @click="deleteFn(businessItem)">删除</view>
 				</view>
 			</view>
 		</view>

+ 6 - 4
app/pages/onely-disinfect/car-manager.vue

@@ -27,9 +27,8 @@
 					</picker>
 				</view>
 			</view>
-
-			<view class="item">
-				<view class="l"><text style="color: red;" v-if="needWeight==1&&carType.index==1">*</text>载重(kg):</view>
+			<view class="item" v-if="carType.index==1">
+				<view class="l"><text style="color: red;" >*</text>载重(kg):</view>
 				<view class="r">
 					<u-input placeholder="车辆载重" v-model="form.netWeight">
 					</u-input>
@@ -65,6 +64,7 @@
 		},
 		onLoad(options) {
 			this.form = JSON.parse(options.carJson);
+			console.log(this.form)
 			this.needCarSize = options.needCarSize;
 			this.needWeight = options.needWeight;
 			this.getCarType();
@@ -82,6 +82,7 @@
 			},
 			carTypeChange(e) {
 				var value = e.detail.value; //当前picker选中的值
+				console.log(value)
 				this.carType.index = value;
 			},
 			backFn(){
@@ -99,10 +100,11 @@
 					return false;
 				}
 				let needWeight = this.needWeight;
-				if (needWeight==1&&!data.netWeight&&this.carType.index==1) {
+				if (this.carType.index==1&&(!data.netWeight||data.netWeight<=0)) {
 					this.$common.toast('请填写车辆载重')
 					return false;
 				}
+				data.carType=this.carType.list[this.carType.index].name;
 				data.carNo=data.carNo.toUpperCase();
 				uni.navigateBack({
 					delta: 1,

+ 30 - 14
app/pages/onely-disinfect/type-business-edit.vue

@@ -4,7 +4,7 @@
 			<view class="top">
 				<text class="title">{{goods.name}}</text>
 			</view>
-			<view class="item"  v-if="goods.needDeclare==1">
+			<view class="item" v-if="goods.needDeclare==1">
 				<view class="l"><text style="color: red;" v-if="goods.needDeclare==1">*</text>申报单号:</view>
 				<view class="r">
 					<u-input placeholder="申报订单号" v-model="form.declareNo" clearable readonly>
@@ -98,7 +98,8 @@
 				合计:{{totalPrice}}元
 			</view>
 		</view>
-		<u-button type="primary" text="确定" @click="saveFn" v-show="perList.indexOf('tb-flex-business-edit')!==-1"></u-button>
+		<u-button type="primary" text="确定" @click="saveFn" v-show="perList.indexOf('tb-flex-business-edit')!==-1">
+		</u-button>
 		<!-- ---------------------------------------------------------- -->
 		<view class="bottom-safety"></view>
 		<u-picker :show="show" :columns="columns" @confirm="confirmFn" keyName="itemName" @cancel="show=false">
@@ -162,7 +163,8 @@
 			this.form.id = id;
 			this.customerId = uni.getStorageSync('customerId');
 			this.goods = JSON.parse(options.goodsJson);
-			this.getCustomerList();
+			
+			this.getOtherBusinessById();
 			let that = this;
 			uni.$on('getSelectDeclare', declare => {
 				that.$nextTick(() => {
@@ -174,12 +176,21 @@
 					that.handlerCar(car)
 				})
 			})
+
 		},
 		onShow() {
-			this.getOtherBusinessById();
+
 			this.perList = uni.getStorageSync('perList')
 		},
 		methods: {
+			addCar() {
+				this.car.list.push({
+					index: Math.random(),
+					id: '',
+					carNo: '',
+					index: 0
+				})
+			},
 			filterItems() {
 				let carList = this.car.list;
 				let filterTypeList = JSON.parse(JSON.stringify(this.allTypeList));
@@ -188,7 +199,7 @@
 					return;
 				}
 				let car = carList[0];
-				let checkCarList = carList.filter(car => car.carType.indexOf('空') == -1);
+				let checkCarList = carList.filter(car => car.carType && car.carType.indexOf('空') == -1);
 				if (checkCarList.length > 0) {
 					car = checkCarList[0];
 				}
@@ -217,6 +228,11 @@
 				}
 				this.typeList = tempList;
 			},
+			cleanItem(type) {
+				type.itemId = '';
+				type.itemName = '';
+				type.price = '';
+			},
 			getOtherBusinessById() {
 				this.$api.getOtherBusinessById({
 					id: this.form.id
@@ -226,6 +242,7 @@
 					let items = data.items;
 					this.form = data;
 					this.getTypeByGoodsId(items);
+					this.getCustomerList(data.customerId);
 				})
 			},
 			showSelect(item) {
@@ -272,20 +289,20 @@
 							}
 						}
 					}
+					this.allTypeList = JSON.parse(JSON.stringify(list));
 					this.typeList = list;
 				})
 			},
-			getCustomerList() {
+			getCustomerList(customerId) {
 				this.$api.getCustomerList({
 					pageNo: 1,
 					pageSize: 100
 				}).then(resp => {
 					let list = resp.data;
-					let customerId = this.customerId;
-					if (customerId !== '1') {
-						this.customer.index = list.map(obj => obj.id).indexOf(customerId);
-					}
+					console.log(list.map(obj => obj.id).indexOf(customerId))
+					this.customer.index = list.map(obj => obj.id).indexOf(customerId);
 					this.customer.customerList = list;
+					console.log(this.customer)
 				})
 			},
 			customerChange(e) {
@@ -381,7 +398,7 @@
 					this.$common.toast('请选择申报单');
 					return false;
 				}
-				if (!form.owner&&goods.needOwner==1) {
+				if (!form.owner && goods.needOwner == 1) {
 					this.$common.toast('请填写货主');
 					return false;
 				}
@@ -391,8 +408,7 @@
 					this.$common.toast('请录入作业时间');
 					return false;
 				}
-				console.log(operateTime.length)
-				if (operateTime.length < 12) {
+				if (operateTime && operateTime.length < 12) {
 					this.$common.toast('请录入准确的作业时间');
 					return false;
 				}
@@ -409,7 +425,7 @@
 						this.$common.toast('请补充' + car.carNo + '的规格');
 						return false;
 					}
-					if (needWeight == 1 && car.carType.indexOf('重') !== -1 && !car.netWeight) {
+					if (needWeight == 1 && car.carType&&car.carType.indexOf('重') !== -1 && !car.netWeight) {
 						this.$common.toast('请补充' + car.carNo + '载重');
 						return false;
 					}

+ 24 - 14
app/pages/onely-disinfect/type-business.vue

@@ -4,7 +4,7 @@
 			<view class="top">
 				<text class="title">{{goods.name}}</text>
 			</view>
-			<view class="item"  v-if="goods.needDeclare==1">
+			<view class="item" v-if="goods.needDeclare==1">
 				<view class="l"><text style="color: red;" v-if="goods.needDeclare==1">*</text>申报单号:</view>
 				<view class="r">
 					<u-input placeholder="申报订单号" v-model="form.declareNo" clearable readonly>
@@ -98,10 +98,11 @@
 				合计:{{totalPrice}}元
 			</view>
 		</view>
-		<u-button type="primary" text="确定" @click="saveFn" v-show="perList.indexOf('tb-flex-business-add')!==-1"></u-button>
+		<u-button type="primary" text="确定" @click="saveFn" v-show="perList.indexOf('tb-flex-business-add')!==-1">
+		</u-button>
 		<!-- ---------------------------------------------------------- -->
 		<view class="bottom-safety"></view>
-		<u-picker :show="show"  :columns="columns" @confirm="confirmFn" keyName="itemName" @cancel="show=false">
+		<u-picker :show="show" :columns="columns" @confirm="confirmFn" keyName="itemName" @cancel="show=false">
 		</u-picker>
 	</view>
 </template>
@@ -122,7 +123,7 @@
 					name: ''
 				},
 				typeList: [],
-				allTypeList:[],
+				allTypeList: [],
 				form: {
 					customerId: '',
 					declareNo: '',
@@ -178,6 +179,14 @@
 			})
 		},
 		methods: {
+			addCar() {
+				this.car.list.push({
+					index: Math.random(),
+					id: '',
+					carNo: '',
+					index: 0
+				})
+			},
 			filterItems() {
 				let carList = this.car.list;
 				let filterTypeList = JSON.parse(JSON.stringify(this.allTypeList));
@@ -186,7 +195,7 @@
 					return;
 				}
 				let car = carList[0];
-				let checkCarList = carList.filter(car => car.carType.indexOf('空') == -1);
+				let checkCarList = carList.filter(car =>car.carType&&car.carType.indexOf('空') == -1);
 				if (checkCarList.length > 0) {
 					car = checkCarList[0];
 				}
@@ -244,8 +253,8 @@
 				this.$api.getTypeByGoodsId({
 					goodsId: this.goods.id
 				}).then(resp => {
-					let list=resp.data;
-					this.allTypeList=JSON.parse(JSON.stringify(list));
+					let list = resp.data;
+					this.allTypeList = JSON.parse(JSON.stringify(list));
 					this.typeList = list;
 				})
 			},
@@ -287,9 +296,9 @@
 				this.filterItems();
 			},
 			handlerSelectDeclare(declare) {
-				let oldDeclareNo=this.form.declareNo;
-				if(oldDeclareNo&&oldDeclareNo!==declare.declareNo){
-					this.car.list=[];
+				let oldDeclareNo = this.form.declareNo;
+				if (oldDeclareNo && oldDeclareNo !== declare.declareNo) {
+					this.car.list = [];
 				}
 				this.form.declareNo = declare.declareNo;
 				this.form.cardNo = declare.carNo;
@@ -321,7 +330,8 @@
 						if (!exit) {
 							let car = {
 								carNo: carNo,
-								carType: '空车'
+								carType: '空车',
+								netWeight:0
 							}
 							this.car.list.push(car)
 						}
@@ -338,7 +348,7 @@
 				this.$common.to('/pages/onely-disinfect/car-manager?carJson=' + JSON.stringify(car) + "&needCarSize=" +
 					goods.needCarSize + '&needWeight=' + goods.needWeight)
 			},
-			
+
 			delCar(car) {
 				let list = this.car.list;
 				if (list.length == 1) {
@@ -356,7 +366,7 @@
 					this.$common.toast('请选择申报单');
 					return false;
 				}
-				if (!form.owner&&goods.needOwner==1) {
+				if (!form.owner && goods.needOwner == 1) {
 					this.$common.toast('请填写货主');
 					return false;
 				}
@@ -366,7 +376,7 @@
 					this.$common.toast('请录入作业时间');
 					return false;
 				}
-				if (operateTime.length < 12) {
+				if (operateTime&&operateTime.length < 12) {
 					this.$common.toast('请录入准确的作业时间');
 					return false;
 				}

+ 20 - 14
app/pages/wx/pay.vue

@@ -44,18 +44,24 @@
 						</u-checkbox>
 					</u-checkbox-group>
 				</view>
-				<u-checkbox-group placement="column" v-model="itemSelect">
-					<view v-for="(item,index) in item.list" :key="index">
-						<label class="c-item">
-							<view class="l">
-								<u-checkbox :customStyle="{marginBottom: '8px'}" disabled :name="item.id">
-								</u-checkbox>
-							</view>
-							<view class="c">{{item.name}}</view>
-							<view class="r">¥{{item.price}}</view>
-						</label>
-					</view>
-				</u-checkbox-group>
+				<view style="height: 600rpx;overflow-y: auto;">
+					<u-checkbox-group placement="column" v-model="itemSelect">
+						<view v-for="(item,index) in item.list" :key="index">
+							<label class="c-item">
+								<view class="l">
+									<u-checkbox :customStyle="{marginBottom: '8px'}" disabled :name="item.id">
+									</u-checkbox>
+								</view>
+								<view class="c">{{item.name}}</view>
+								<view class="r">¥{{item.price}}</view>
+							</label>
+						</view>
+					</u-checkbox-group>
+				</view>
+				
+			</view>
+			<view style="height: 60rpx;">
+				
 			</view>
 		</view>
 		<view v-if="showTips">
@@ -367,8 +373,8 @@
 	.c-item {
 		display: flex;
 		align-items: center;
-		margin: 15rpx 30rpx;
-		padding: 18rpx 30rpx;
+		margin: 5rpx 30rpx;
+		padding: 10rpx 30rpx;
 		border-radius: 10rpx;
 		background-color: #fff;
 		border: 1rpx solid #f5f5f5;

+ 1 - 2
app/pages/wx/payOrder.vue

@@ -46,8 +46,7 @@
 		</view>
 		<view v-if="form.adminConfirmInput==0">
 			<u-button type="info" v-if="customerId!=='1'">待确认</u-button>
-			<u-button type="primary" v-if="customerId=='1'
-			&&perList.indexOf('tb-business-confirm')!==-1" @click="adminConfirmFn">确认账单</u-button>
+			<u-button type="primary"  @click="adminConfirmFn">确认账单</u-button>
 		</view>
 		<view v-else>
 			<u-button type="primary" v-if="form.payStatus==1&&customerId!=='1'&&form.adminConfirmInput==1"

+ 1 - 1
app/utils/request.js

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

+ 33 - 45
sp-admin/sa-view-sp/console/com-sta-data.vue

@@ -3,55 +3,46 @@
 	<el-row :gutter="14">
 		<el-col :lg="4" :sm="8" :xs="24">
 			<div class="sa-wnk">
-				<img src="../../static/icon/icon-user.png" >
+				<img src="../../static/icon/icon-total.png" >
 				<div class="sa-wnk-tv">
-					<p class="sa-wnk-title">用户</p>
-					<p class="sa-wnk-value">{{sta.userCount}}</p>
+					<p class="sa-wnk-title">总车辆</p>
+					<p class="sa-wnk-value">{{car.totalCar}}</p>
 				</div>
 			</div>
 		</el-col>
-		<el-col :lg="4" :sm="8" :xs="24">
-			<div class="sa-wnk">
-				<img src="../../static/icon/icon-goods.png" >
-				<div class="sa-wnk-tv">
-					<p class="sa-wnk-title">商品</p>
-					<p class="sa-wnk-value">{{sta.goodsCount}}</p>
-				</div>
-			</div>
-		</el-col>
-		<el-col :lg="4" :sm="8" :xs="24">
+		<el-col :lg="5" :sm="8" :xs="24">
 			<div class="sa-wnk">
-				<img src="../../static/icon/icon-order.png" >
+				<img src="../../static/icon/icon-car-leave.png" >
 				<div class="sa-wnk-tv">
-					<p class="sa-wnk-title">订单</p>
-					<p class="sa-wnk-value">{{sta.orderCount}}</p>
+					<p class="sa-wnk-title">离场车辆</p>
+					<p class="sa-wnk-value">{{car.outCar}}</p>
 				</div>
 			</div>
 		</el-col>
-		<el-col :lg="4" :sm="8" :xs="24">
+		<el-col :lg="5" :sm="8" :xs="24">
 			<div class="sa-wnk">
-				<img src="../../static/icon/icon-article.png" >
+				<img src="../../static/icon/icon-car-in.png" >
 				<div class="sa-wnk-tv">
-					<p class="sa-wnk-title">文章</p>
-					<p class="sa-wnk-value">{{sta.articleCount}}</p>
+					<p class="sa-wnk-title">在场车辆</p>
+					<p class="sa-wnk-value">{{car.inCar}}</p>
 				</div>
 			</div>
 		</el-col>
-		<el-col :lg="4" :sm="8" :xs="24">
+		<el-col :lg="5" :sm="8" :xs="24">
 			<div class="sa-wnk">
-				<img src="../../static/icon/icon-comment.png" >
+				<img src="../../static/icon/icon-car-weight.png" >
 				<div class="sa-wnk-tv">
-					<p class="sa-wnk-title">评论</p>
-					<p class="sa-wnk-value">{{sta.commentCount}}</p>
+					<p class="sa-wnk-title">重车</p>
+					<p class="sa-wnk-value">{{car.weightCar}}</p>
 				</div>
 			</div>
 		</el-col>
-		<el-col :lg="4" :sm="8" :xs="24">
+		<el-col :lg="5" :sm="8" :xs="24">
 			<div class="sa-wnk">
-				<img src="../../static/icon/icon-money.png" >
+				<img src="../../static/icon/icon-car-empty.png" >
 				<div class="sa-wnk-tv">
-					<p class="sa-wnk-title">余额</p>
-					<p class="sa-wnk-value">{{sta.moneyCount}}</p>
+					<p class="sa-wnk-title">空车</p>
+					<p class="sa-wnk-value">{{car.emptyCar}}</p>
 				</div>
 			</div>
 		</el-col>
@@ -60,20 +51,25 @@
 
 <script>
 	module.exports = {
+		
 		data() {
 			return {
 				// 统计数据 
-				sta: {
-					userCount: 0,
-					goodsCount: 0,
-					orderCount: 0,
-					articleCount: 0,
-					commentCount: 0,
-					moneyCount: 0,
-				},
+				car:{
+					totalCar:0,
+					inCar:0,
+					outCar:0,
+					weightCar:0,
+					emptyCar:0
+				}
 			}
 		},
 		methods: {
+			getCarStatics(){
+				sa.ajax('/TbBusinessCar/staticsCar',function(resp){
+					this.car=resp.data;
+				}.bind(this))
+			},
 			// 数值跳动 
 			// 对象、属性、结束值、所用时间 
 			slowMotion: function(obj, prop, endValue, time) {
@@ -104,15 +100,7 @@
 			},
 		},
 		created() {
-			// 写入数据
-			this.setStaDataValue({
-				userCount: 12361,
-				goodsCount: 12541,
-				orderCount: 63222,
-				articleCount: 10368,
-				commentCount: 2048,
-				moneyCount: 13654.32,
-			});
+			this.getCarStatics();
 		}
 	}
 </script>

+ 22 - 8
sp-admin/sa-view-sp/console/console-main.html

@@ -1,13 +1,15 @@
 <!DOCTYPE html>
 <html>
 	<head>
-		<title>Sa-Admin 控制台</title>
 		<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="../../static/kj/element-ui/theme-chalk/index.css">
 		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
 		<style type="text/css">
 			.vue-box {
 				margin: 0;
@@ -54,10 +56,10 @@
 	</head>
 	<body>
 		<div class="vue-box" style="height: 980px;width: 100%;">
-			<div style="    text-align: center;
-    margin-top: 113px;
-    font-size: 60px;
-    letter-spacing: 30px;">
+			<div class="s-row s-row-1">
+			<com-sta-data></com-sta-data>
+			</div>
+			<div style="text-align: center; margin-top: 113px; font-size: 60px; letter-spacing: 30px;">
 				欢迎使用场站管理系统
 			</div>
 		</div>
@@ -81,9 +83,21 @@
 					// 'com-intro': httpVueLoader('com-intro.vue'),
 				},
 				el: '.vue-box',
-				data: {},
-				methods: {},
-				mounted: function() {}
+				data: {
+					car:{
+						totalCar:1,
+						inCar:2,
+						outCar:3,
+						weightCar:0,
+						emptyCar:0
+					}
+				},
+				methods: {
+				
+				},
+				mounted: function() {
+					
+				}
 			})
 
 			// 设置监听,改变窗口大小时重绘图表 

+ 1 - 1
sp-admin/sa-view/car/tb-business-car-list.html

@@ -28,7 +28,7 @@
 				<el-table class="data-table" ref="data-table" :data="dataList">
 					<sa-td name="车牌号" prop="carNo" width=120></sa-td>
 					<sa-td name="车辆规格" prop="carSize"></sa-td>
-					<sa-td width="130" name="支付状态" prop="pay" type="enum" :jv="{0: '未支付[#ff0000]', 1: '已支付[#005500]'}">
+					<sa-td width="130" name="支付状态" prop="payType">
 					</sa-td>
 					<sa-td width=100 name="车辆状态" prop="isLock" type="switch" :jv="{1: '锁定[#ff0000]', 0: '正常[#005500]'}"
 						@change="s => updateStatus(s.row)"></sa-td>

+ 1 - 9
sp-admin/sa-view/tb-business-car/tb-business-car-list.html

@@ -99,15 +99,7 @@
 							<label v-else>-</label>
 						</template>
 					</el-table-column>
-					<sa-td name="支付状态" prop="payType">
-						<template slot-scope="s">
-							<label v-if="s.row.payType.indexOf('免')!==-1">{{s.row.payType}}</label>
-							<label v-else>
-								<label v-if="s.row.money">已支付</label>
-								<label v-else>未支付</label>
-							</label>
-						</template>
-					</sa-td>
+					<sa-td name="支付状态" prop="payType"></sa-td>
 					<el-table-column label="操作" width="280px" fixed="right">
 						<template slot-scope="s">
 							<el-button class="c-btn" type="success" icon="el-icon-view" @click="get(s.row)">查看

+ 34 - 21
sp-admin/sa-view/tb-business/tb-car-disincle-add.html

@@ -70,10 +70,6 @@
 													</el-option>
 												</el-select>
 											</div>
-											<sa-item name="作业人员" placeholder="请输入作业人员" v-model="m.operator" br>
-											</sa-item>
-										</el-col>
-										<el-col span=8>
 											<div class="c-item" v-if="goods.needDeclare==1">
 												<label class="c-label">
 													<span style="color: red;">*</span>
@@ -86,12 +82,6 @@
 													<i class="el-icon-folder-add"></i>
 												</div>
 											</div>
-											<div class="c-item">
-												<label class="c-label"><span style="color: red;"
-														v-if="goods.needOperateTime==1">*</span>作业时间:</label>
-												<el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
-													v-model="m.operateTime"></el-date-picker>
-											</div>
 										</el-col>
 										<el-col span=8>
 											<div class="c-item">
@@ -112,6 +102,19 @@
 												</el-input>
 											</div>
 										</el-col>
+										<el-col span=8>
+											<div class="c-item">
+												<label class="c-label">作业人员:</label>
+												<el-input v-model="m.operator" placeholder="作业人员" clearable>
+												</el-input>
+											</div>
+											<div class="c-item">
+												<label class="c-label"><span style="color: red;"
+														v-if="goods.needOperateTime==1">*</span>作业时间:</label>
+												<el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
+													v-model="m.operateTime"></el-date-picker>
+											</div>
+										</el-col>
 									</el-row>
 								</div>
 							</el-card>
@@ -152,10 +155,10 @@
 								</div>
 								<div>
 									<el-form-item v-for="(type,index) in itemTypeList">
-										<el-row>
+										<el-row justify="center">
 											<el-col span="9">
 												<label style="color: red;"
-													v-if="type.need==1">*</label>{{type.name}}</label>
+													v-if="type.need==1">*</label><label>{{type.name}}:</label>
 												<el-select v-model="type.itemId" style="width: 120px;"
 													@change="itemChange(type)" placeholder="请选择">
 													<el-option v-for="item in type.items" :key="item.id"
@@ -175,8 +178,12 @@
 												</div>
 											</el-col>
 											<el-col span="8">
-												<sa-item type="textarea" name="备注" placeholder="请输入备注"
-													v-model="type.remark"></sa-item>
+												<div class="c-item"  style="position: relative;bottom: 10px;">
+													<label class="c-label">
+														备注:</label>
+													<el-input v-model="type.remark" placeholder="请输入备注" clearable>
+													</el-input>
+												</div>
 											</el-col>
 										</el-row>
 										<el-divider></el-divider>
@@ -251,7 +258,7 @@
 						</el-table-column>
 						<el-table-column prop="customerName" label="申报公司" width=200>
 						</el-table-column>
-						<el-table-column prop="sendUnit" label="货主"  width=200>
+						<el-table-column prop="sendUnit" label="货主" width=200>
 						</el-table-column>
 						<el-table-column prop="createTime" width="140" label="申报时间">
 						</el-table-column>
@@ -511,15 +518,12 @@
 							let items = type.items;
 							if (carType) {
 								items = items.filter(item => item.itemType && item.itemType.indexOf(carType) !== -1);
-								console.log(items)
 							}
 							if (carSize && carSize > 1) {
 								items = items.filter(item => item.minLength <= carSize && item.carLength >= carSize);
-								console.log(items)
 							}
 							if (netWeight && netWeight > 1 && carType.indexOf('空') == -1) {
 								items = items.filter(item => item.minWeight <= netWeight && item.maxWeight >= netWeight);
-								console.log(items)
 							}
 							let itemIds = items.map(item => item.id);
 							if (itemIds.indexOf(type.itemId) == -1) {
@@ -571,7 +575,7 @@
 						this.getTypeByGoodsId();
 					},
 					getTypeByGoodsId() {
-						sa.ajaxNoLoading('/TbItemType/getTypeByGoodsId', {
+						sa.ajax('/TbItemType/getTypeByGoodsId', {
 							goodsId: this.m.goodsId
 						}, function(resp) {
 							let list = resp.data;
@@ -631,7 +635,7 @@
 							sa.error('请选择作业时间');
 							return false;
 						}
-						if (!m.owner&&goods.needOwner==1) {
+						if (!m.owner && goods.needOwner == 1) {
 							sa.error('请填写货主');
 							return false;
 						}
@@ -639,6 +643,16 @@
 							sa.error('请录入车辆');
 							return false;
 						}
+						let needCarSize = goods.needCarSize;
+						let carList = this.car.list;
+						for (let i in carList) {
+							let car = carList[i];
+							if (needCarSize == 1 && !car.carSize) {
+								sa.error('请补充' + car.carNo + '规格');
+								return;
+							}
+
+						}
 						let typeList = this.itemTypeList;
 						let selectList = [];
 						for (let i in typeList) {
@@ -663,7 +677,6 @@
 								selectList.push(obj);
 							}
 						}
-						let carList = this.car.list;
 						m.itemJson = JSON.stringify(selectList);
 						m.carJson = JSON.stringify(carList);
 						let chinaCarNo = carList

+ 36 - 17
sp-admin/sa-view/tb-business/tb-car-disincle-edit.html

@@ -66,13 +66,9 @@
 													</el-option>
 												</el-select>
 											</div>
-											<sa-item name="作业人员" placeholder="请输入作业人员" v-model="m.operator" br>
-											</sa-item>
-										</el-col>
-										<el-col span=8>
 											<div class="c-item" v-if="goods.needDeclare==1">
 												<label class="c-label">
-													<span style="color: red;" v-if="goods.needDeclare==1">*</span>
+													<span style="color: red;">*</span>
 													申报单号:</label>
 												<el-input v-model="m.declareNo" placeholder="选择申报单"
 													:readonly="goods.needDeclare==1" clearable>
@@ -81,20 +77,13 @@
 													@click="handlerDeclare">
 													<i class="el-icon-folder-add"></i>
 												</div>
-
-											</div>
-											<div class="c-item">
-												<label class="c-label"><span style="color: red;"
-														v-if="goods.needOperateTime==1">*</span>作业时间:</label>
-												<el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
-													v-model="m.operateTime"></el-date-picker>
 											</div>
 										</el-col>
 										<el-col span=8>
 											<div class="c-item">
 												<label class="c-label"><span style="color: red;">*</span>客户:</label>
 												<el-select
-													:disabled="goods.needDeclare||m.declareNo||currentCustomerId!=1"
+													:disabled="goods.needDeclare||m.declareNo||currentCustomerId!='1'"
 													v-model="m.customerId" placeholder="请选择">
 													<el-option v-for="item in customerList" :key="item.id"
 														:label="item.name" :value="item.id">
@@ -109,6 +98,19 @@
 												</el-input>
 											</div>
 										</el-col>
+										<el-col span=8>
+											<div class="c-item">
+												<label class="c-label">作业人员:</label>
+												<el-input v-model="m.operator" placeholder="作业人员" clearable>
+												</el-input>
+											</div>
+											<div class="c-item">
+												<label class="c-label"><span style="color: red;"
+														v-if="goods.needOperateTime==1">*</span>作业时间:</label>
+												<el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
+													v-model="m.operateTime"></el-date-picker>
+											</div>
+										</el-col>
 									</el-row>
 								</div>
 							</el-card>
@@ -151,6 +153,7 @@
 									<el-form-item v-for="(type,index) in itemTypeList">
 										<el-row>
 											<el-col span="9">
+												<div style="margin-top: 30px;">
 												<label style="color: red;"
 													v-if="type.need==1">*</label>{{type.name}}</label>
 												<el-select v-model="type.itemId" style="width: 120px;"
@@ -159,8 +162,10 @@
 														:label="item.itemName" :value="item.id">
 													</el-option>
 												</el-select>
+												</div>
 											</el-col>
 											<el-col span="7">
+												<div style="margin-top: 30px;">
 												<el-input-number style="margin-left: 60px;" class="item-num"
 													v-model="type.num" :min="1" :max="10" size="mini"
 													:disabled="type.inc==0"></el-input-number>
@@ -170,10 +175,14 @@
 														style="margin-left: 5px;cursor: pointer">(<i
 															class="el-icon-delete"></i>)</label>
 												</div>
+												</div>
 											</el-col>
 											<el-col span="8">
-												<sa-item type="textarea" name="备注" placeholder="请输入备注"
-													v-model="type.remark"></sa-item>
+												<div class="c-item"  style="position: relative;bottom: 10px;">
+													<label class="c-label"> 备注:</label>
+													<el-input v-model="type.remark" placeholder="请输入备注" clearable>
+													</el-input>
+												</div>
 											</el-col>
 										</el-row>
 										<el-divider></el-divider>
@@ -561,7 +570,7 @@
 						this.getTypeByGoodsId();
 					},
 					getTypeByGoodsId() {
-						sa.ajaxNoLoading('/TbItemType/getTypeByGoodsId', {
+						sa.ajax('/TbItemType/getTypeByGoodsId', {
 							goodsId: this.m.goodsId
 						}, function(resp) {
 							let list = resp.data;
@@ -637,6 +646,16 @@
 							sa.error('请录入车辆');
 							return false;
 						}
+						let carList = this.car.list;
+						let needCarSize=goods.needCarSize;
+						for(let i in carList){
+							let car=carList[i];
+							if(needCarSize==1&&!car.carSize){
+								sa.error('请补充'+car.carNo+'规格');
+								return;
+							}
+							
+						}
 						let typeList = this.itemTypeList;
 						let selectList = [];
 						for (let i in typeList) {
@@ -657,7 +676,7 @@
 								selectList.push(obj);
 							}
 						}
-						let carList = this.car.list;
+						
 						m.itemJson = JSON.stringify(selectList);
 						m.carJson = JSON.stringify(carList);
 						let chinaCarNo = carList

+ 2 - 2
sp-admin/sa-view/tb-business/tb-car-disincle-info.html

@@ -47,6 +47,7 @@
 												<sa-info name="货主" br>{{m.owner}}</sa-info>
 												<sa-info name="业务编号" br>{{m.no}}</sa-info>
 												<sa-info name="录入时间" br>{{m.createTime}}</sa-info>
+												<sa-info name="录入人" br>{{m.createBy}}</sa-info>
 												<sa-info type="enum" style="margin-top: 0px;" name="支付状态" :value="m.payStatus"
 													:jv="{1: '未支付', 2: '已支付未确认', 3: '已支付已确认'}" br></sa-info>
 											</el-col>
@@ -65,8 +66,7 @@
 									<el-table :data="m.cars" style="width: 100%">
 										<sa-td name="车牌号" prop="carNo"></sa-td>
 										<sa-td name="车辆规格" prop="carSize"></sa-td>
-										<sa-td width="130" name="支付状态" prop="pay" type="enum"
-											:jv="{0: '未支付[#ff0000]', 1: '已支付[#005500]'}">
+										<sa-td width="130" name="支付状态" prop="payType">
 										</sa-td>
 										<sa-td width="120" name="车辆状态" prop="isLock" type="enum"
 											:jv="{1: '锁定[#ff0000]', 0: '正常[#005500]'}">

BIN
sp-admin/static/icon/icon-car-empty.png


BIN
sp-admin/static/icon/icon-car-in.png


BIN
sp-admin/static/icon/icon-car-leave.png


BIN
sp-admin/static/icon/icon-car-weight.png


BIN
sp-admin/static/icon/icon-car.png


BIN
sp-admin/static/icon/icon-total.png


+ 2 - 2
sp-admin/static/sa.js

@@ -19,10 +19,10 @@ var sa = {
 	}
 	// 正式生产环境
 	var cfg_prod = {
-		api_url: 'https://dxkaa1.bgigc.com/pro',
+		api_url: 'http://dxkaa1.gxbtka.com/pro',
 		web_url: 'http://www.baidu.com'
 	}
-	sa.cfg = cfg_dev; // 最终环境 , 上线前请选择正确的环境
+	sa.cfg = cfg_prod; // 最终环境 , 上线前请选择正确的环境
 })();
 
 

+ 6 - 2
sp-server/src/main/java/com/pj/api/open/service/OpenService.java

@@ -31,6 +31,8 @@ import com.pj.project.tb_car_no_color.TbCarNoColor;
 import com.pj.project.tb_car_no_color.TbCarNoColorService;
 import com.pj.project.tb_goods.TbGoods;
 import com.pj.project.tb_goods.TbGoodsService;
+import com.pj.project.tb_item.TbItem;
+import com.pj.project.tb_item_type.TbItemType;
 import com.pj.project4sp.global.BusinessException;
 import com.pj.project4sp.uploadfile.UploadConfig;
 import com.pj.utils.cache.RedisUtil;
@@ -111,8 +113,10 @@ public class OpenService {
                 || (tbBusinessCar.getRealInTime() != null && tbBusinessCar.getRealOutTime() == null)
                 || tbBusinessCar.getPay() == 1) {
             tbBusinessCar = new TbBusinessCar();
-            tbBusinessCar.setCarNo(carNo).setPay(0).setCarSize(0D).setIsLock(0).setCarCompany(tbCar != null ? tbCar.getCustomerName() : "临时")
-                    .setInChannel(channel).setRealInTime(now).setBasePartMoney(new BigDecimal("0")).setTimeUpdate(now)
+            tbBusinessCar.setCarNo(carNo).setPay(0).setCarSize(0D).setIsLock(0)
+                    .setCarCompany(tbCar != null ? tbCar.getCustomerName() : "临时")
+                    .setInChannel(channel).setRealInTime(now).setCarType(TbItem.ItemTypeEnum.EMPTY_TYPE.getType())
+                    .setBasePartMoney(new BigDecimal("0")).setTimeUpdate(now)
                     .setNo(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")) + RandomUtil.randomNumbers(4));
             tbBusinessCarService.save(tbBusinessCar);
             CoverBase64ToUrl(image, tbBusinessCar.getId(), carNo, 1);

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

@@ -229,7 +229,7 @@ public class WxService {
                     log.error("付款金额不正确:{}", JSONUtil.toJsonStr(notifyBO));
                     continue;
                 }
-                car.setPay(1).setMoney(car.getMoney().add(price)).setPayTime(now);
+                car.setPay(1).setMoney(car.getMoney().add(price)).setPayTime(now).setPayType(TbBusinessCar.PayTypeEnum.HAS_PAY_TYPE.getType());
                 tbBusinessCarService.updateById(car);
                 TbBusiness business = tbBusinessService.getById(car.getBusinessId());
                 if (business != null) {

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

@@ -197,6 +197,7 @@ public class TbBusiness extends Model<TbBusiness> implements Serializable {
     private BigDecimal totalMoney=new BigDecimal(0);
     private Date createTime;
     private String createBy;
+    private String createByCustomerId;
     private Integer confirmInput;
     private Date confirmInputTime;
     private String confirmInputBy;

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

@@ -189,7 +189,7 @@ public class TbBusinessController {
         SoMap so = SoMap.getRequestSoMap();
         String currentCustomerId = StpUserUtil.getCustomerId();
         if (!currentCustomerId.equals(UserTypeEnum.PLATFORM_ADMIN.getCustomerId())) {
-            so.put("customerId", currentCustomerId);
+            so.put("createByCustomerId", currentCustomerId);
         }
         List<TbBusiness> list = tbBusinessService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);

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

@@ -35,6 +35,7 @@
             <if test=' this.has("createTime") '>and date_format(create_time,'%Y-%m-%d') = #{createTime}</if>
             <if test=' this.has("businessType") '>and business_type = #{businessType}</if>
             <if test=' this.has("businessCarId") '>and business_car_id = #{businessCarId}</if>
+            <if test=' this.has("createByCustomerId") '>and create_by_customer_id = #{createByCustomerId}</if>
             <if test=' this.has("carNo") '>and (card_no like concat('%', #{carNo},'%') or china_car_no like concat('%', #{carNo},'%'))</if>
             <if test='adminConfirmInput !=null and adminConfirmInput>-1'>and admin_confirm_input = #{adminConfirmInput}</if>
             <if test='isCar==0'>

+ 8 - 6
sp-server/src/main/java/com/pj/project/tb_business/TbBusinessService.java

@@ -704,7 +704,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                 .setOperator(otherBusinessBO.getOperator()).setOperateTime(otherBusinessBO.getOperateTime())
                 .setNo(no).setGoodsName(tbGoods.getName()).setGoodsId(otherBusinessBO.getGoodsId())
                 .setPayStep(tbGoods.getPayStep()).setDeclareNo(declareNo).setCardNo(otherBusinessBO.getCardNo());
-        tbBusiness.setCreateTime(now).setBusinessType(TbBusiness.BusinessType.CAR_DISINCLE.getCode())
+        tbBusiness.setCreateTime(now).setCreateByCustomerId(StpUserUtil.getCustomerId())
                 .setItemPrice(price).setTotalMoney(price).setOwner(otherBusinessBO.getOwner());
         tbBusiness.setChinaCarNo(otherBusinessBO.getChinaCarNo());
         this.save(tbBusiness);
@@ -728,6 +728,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
             for (TbBusinessItem item : itemList) {
                 checkOtherBusiness(item.getItemTypeId(), otherBusinessBO.getOperateTime(), tbBusiness.getId(), carNo);
             }
+            db.setPayType(TbBusinessCar.PayTypeEnum.NO_PAY_TYPE.getType());
             if ((CAR_LIST.contains(carPrefix) && chinaCarPay == 0) || (!CAR_LIST.contains(carPrefix) && vietnamCarPay == 0)) {
                 db.setPayType(TbBusinessCar.PayTypeEnum.FEE_TYPE.getType());
             }
@@ -827,7 +828,8 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                 //原来已存在的
                 TbBusinessCar dbBusinessCar = tbBusinessCarService.getById(businessCarId);
                 //如果修改了车牌号
-                if (!StrUtil.equals(carNo, dbBusiness.getCardNo())) {
+                String dbCarNo=dbBusinessCar.getCarNo();
+                if (!dbCarNo.equals(carNo)) {
                     //把关联删除掉,然后添加新的关联
                     relationBusinessCarService.removeByBusinessIdAndCarId(dbBusiness.getId(),businessCarId);
                     TbBusinessCar otherCar = tbBusinessCarService.findTheLastRecord(carNo);
@@ -837,7 +839,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                         otherCar.setCreateTime(now).setPay(0).setNo(carBuseinssNo + RandomUtil.randomNumbers(4))
                                 .setCarNo(carNo).setCarType(tbBusinessCar.getCarType()).setCarSize(tbBusinessCar.getCarSize())
                                 .setNetWeight(tbBusinessCar.getNetWeight()).setCustomerId(dbBusiness.getCustomerId())
-                                .setTimeUpdate(now).setIsLock(0);
+                                .setTimeUpdate(now).setIsLock(0).setCarType(tbBusinessCar.getCarType());
                         if ((CAR_LIST.contains(carPrefix) && chinaCarPay == 0) || (!CAR_LIST.contains(carPrefix) && vietnamCarPay == 0)) {
                             otherCar.setPayType(TbBusinessCar.PayTypeEnum.FEE_TYPE.getType());
                         }
@@ -852,8 +854,8 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                     relationBusinessCar.setBusinessId(dbBusiness.getId()).setBusinessCarId(otherCar.getId());
                     relationBusinessCarService.save(relationBusinessCar);
                 } else {
-                    dbBusinessCar.setNetWeight(tbBusinessCar.getNetWeight()).setCarType(tbBusinessCar.getCarType())
-                            .setCarSize(tbBusinessCar.getCarSize());
+                    dbBusinessCar.setNetWeight(tbBusinessCar.getNetWeight()).setNetWeight(tbBusinessCar.getNetWeight())
+                            .setCarSize(tbBusinessCar.getCarSize()).setCarType(tbBusinessCar.getCarType());
                     tbBusinessCarService.updateById(dbBusinessCar);
                 }
             } else {
@@ -865,7 +867,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                 }
                 checkCar.setCarNo(carNo).setCarType(tbBusinessCar.getCarType()).setCarSize(tbBusinessCar.getCarSize())
                         .setNetWeight(tbBusinessCar.getNetWeight()).setCustomerId(dbBusiness.getCustomerId())
-                        .setTimeUpdate(now).setIsLock(0);
+                        .setTimeUpdate(now).setIsLock(0).setCarType(tbBusinessCar.getCarType());
                 if ((CAR_LIST.contains(carPrefix) && chinaCarPay == 0) || (!CAR_LIST.contains(carPrefix) && vietnamCarPay == 0)) {
                     checkCar.setPayType(TbBusinessCar.PayTypeEnum.FEE_TYPE.getType());
                 }

+ 5 - 0
sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarController.java

@@ -192,5 +192,10 @@ public class TbBusinessCarController {
         return AjaxJson.getSuccess();
     }
 
+    @RequestMapping("staticsCar")
+    public AjaxJson staticsCar(){
+        return AjaxJson.getSuccessData(tbBusinessCarService.staticsCar());
+    }
+
 
 }

+ 3 - 0
sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarMapper.java

@@ -2,6 +2,7 @@ package com.pj.project.tb_business_car;
 
 import java.util.List;
 
+import com.pj.project.tb_business_car.statics.CarStatics;
 import org.apache.ibatis.annotations.Mapper;
 
 import com.pj.utils.so.*;
@@ -44,4 +45,6 @@ public interface TbBusinessCarMapper extends BaseMapper<TbBusinessCar> {
     List<TbBusinessCar> findOtherBusinessCar(String businessId);
 
     List<TbBusinessCar> searchForPayCar(@Param("carNo")String carNo);
+
+    CarStatics staticsCar(@Param("weightCar")String weightCar,@Param("emptyCar")String emptyCar);
 }

+ 14 - 0
sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarMapper.xml

@@ -165,6 +165,20 @@
         AND b.business_id = c.id
         AND (c.pay_money &lt; c.item_price  or a.pay=0) AND a.car_no LIKE CONCAT('%',#{carNo},'%');
     </select>
+    <select id="staticsCar" resultType="com.pj.project.tb_business_car.statics.CarStatics">
+        SELECT
+            SUM(CASE  WHEN   real_in_time is not null THEN 1 ELSE 0 END ) as totalCar,
+
+            SUM(CASE  WHEN   real_out_time is not null and real_in_time is not null THEN 1 ELSE 0 END ) as outCar,
+
+            SUM(CASE  WHEN   real_out_time is null and real_in_time is not null THEN 1 ELSE 0 END ) as inCar,
+
+            SUM(CASE  WHEN   real_out_time is null and real_in_time is not null and car_type=#{weightCar} THEN 1 ELSE 0 END) as weightCar,
+
+            SUM(CASE  WHEN   real_out_time is null and real_in_time is not null and (car_type=#{emptyCar} or car_type='') THEN 1 ELSE 0 END) as emptyCar
+
+            FROM tb_business_car
+    </select>
 
 
 </mapper>

+ 12 - 22
sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarService.java

@@ -27,6 +27,7 @@ import com.pj.project.relation_business_car.RelationBusinessCar;
 import com.pj.project.relation_business_car.RelationBusinessCarService;
 import com.pj.project.tb_business.TbBusiness;
 import com.pj.project.tb_business.TbBusinessService;
+import com.pj.project.tb_business_car.statics.CarStatics;
 import com.pj.project.tb_business_item.TbBusinessItem;
 import com.pj.project.tb_business_item.TbBusinessItemService;
 import com.pj.project.tb_car.TbCar;
@@ -35,9 +36,11 @@ import com.pj.project.tb_car_no_color.TbCarNoColor;
 import com.pj.project.tb_car_no_color.TbCarNoColorService;
 import com.pj.project.tb_fee_details.TbFeeDetails;
 import com.pj.project.tb_fee_details.TbFeeDetailsService;
+import com.pj.project.tb_item.TbItem;
 import com.pj.project4sp.global.BusinessException;
 import com.pj.project4sp.uploadfile.UploadConfig;
 import com.pj.utils.so.SoMap;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -85,24 +88,7 @@ public class TbBusinessCarService extends ServiceImpl<TbBusinessCarMapper, TbBus
      * 查集合 - 根据条件(参数为空时代表忽略指定条件)
      */
     List<TbBusinessCar> getList(SoMap so) {
-        List<TbBusinessCar> list = tbBusinessCarMapper.getList(so);
-        for (TbBusinessCar tbBusinessCar : list) {
-            Date inTime = tbBusinessCar.getRealInTime();
-            Date outTime = tbBusinessCar.getRealOutTime();
-            if (inTime != null && outTime != null) {
-                LocalDateTime inDayTime = inTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
-                LocalDateTime outDayTime = outTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
-                long minutes = ChronoUnit.MINUTES.between(inDayTime, outDayTime);
-                PartConfig partConfig = SpringUtil.getBean(PartConfig.class);
-                if (minutes < partConfig.getFreeMinutes()) {
-                    tbBusinessCar.setPayType("免费");
-                    continue;
-                }
-            }
-            String type = tbBusinessCar.getPay() == null || tbBusinessCar.getPay() == 0 ? "未支付" : "已支付";
-            tbBusinessCar.setPayType(type);
-        }
-        return list;
+        return tbBusinessCarMapper.getList(so);
     }
 
     public TbBusinessCar findByBusinessIdAndCarNo(String businessId, String carNo) {
@@ -400,16 +386,20 @@ public class TbBusinessCarService extends ServiceImpl<TbBusinessCarMapper, TbBus
     }
 
     public void outCar(String id, String outChannel, Date realOutTime) {
-        Date now=new Date();
-        TbBusinessCar db=  this.getById(id);
+        Date now = new Date();
+        TbBusinessCar db = this.getById(id);
         db.setOutChannel(outChannel).setRealOutTime(realOutTime).setTimeUpdate(now);
         this.updateById(db);
     }
 
     public void inCar(String id, String inChannel, Date realInTime) {
-        TbBusinessCar db=  this.getById(id);
-        Date now=new Date();
+        TbBusinessCar db = this.getById(id);
+        Date now = new Date();
         db.setInChannel(inChannel).setRealInTime(realInTime).setTimeUpdate(now);
         this.updateById(db);
     }
+
+    public CarStatics staticsCar() {
+        return tbBusinessCarMapper.staticsCar(TbItem.ItemTypeEnum.WEIGHT_TYPE.getType(),TbItem.ItemTypeEnum.EMPTY_TYPE.getType());
+    }
 }

+ 14 - 0
sp-server/src/main/java/com/pj/project/tb_business_car/statics/CarStatics.java

@@ -0,0 +1,14 @@
+package com.pj.project.tb_business_car.statics;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class CarStatics implements Serializable {
+    private Integer totalCar;
+    private Integer inCar;
+    private Integer outCar;
+    private Integer weightCar;
+    private Integer emptyCar;
+}

+ 8 - 1
sp-server/src/main/java/com/pj/project/tb_costomer/TbCostomerController.java

@@ -1,6 +1,8 @@
 package com.pj.project.tb_costomer;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import cn.dev33.satoken.annotation.SaMode;
 import cn.hutool.core.util.StrUtil;
@@ -167,7 +169,12 @@ public class TbCostomerController {
     }
     @RequestMapping("getTypeList")
     public AjaxJson getTypeList(){
-        return AjaxJson.getSuccessData(TbCostomer.CustomerEnum.getList());
+        Map<String, String>defaultMap=new HashMap<>();
+        defaultMap.put("id",TbCostomer.CustomerEnum.BUSINESS_TYPE.getType());
+        defaultMap.put("name","默认");
+        List<Map<String, String>>list=TbCostomer.CustomerEnum.getList();
+        list.add(defaultMap);
+        return AjaxJson.getSuccessData(list);
     }
 
 }

+ 10 - 0
sp-server/src/main/java/com/pj/project/tb_item_type/TbItemTypeService.java

@@ -5,6 +5,8 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import cn.hutool.cache.CacheUtil;
+import cn.hutool.cache.impl.TimedCache;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -17,6 +19,7 @@ import com.pj.project.relation_type_item.RelationTypeItem;
 import com.pj.project.relation_type_item.RelationTypeItemService;
 import com.pj.project.tb_costomer.TbCostomer;
 import com.pj.project.tb_costomer.TbCostomerService;
+import com.pj.project.tb_district.TbDistrict;
 import com.pj.project.tb_item.TbItem;
 import com.pj.project.tb_item.TbItemService;
 import com.pj.utils.so.SoMap;
@@ -106,7 +109,13 @@ public class TbItemTypeService extends ServiceImpl<TbItemTypeMapper, TbItemType>
         super.updateById(t);
     }
 
+    TimedCache<String, List<TbItemType>> timedCache = CacheUtil.newTimedCache(20000);
+
     public List<TbItemType> getTypeByGoodsId(String goodsId) {
+        List<TbItemType> cacheList=timedCache.get(goodsId);
+        if (cacheList!=null&&cacheList.size()>0){
+            return cacheList;
+        }
         List<RelationGoodsType> relationGoodsTypes = relationGoodsTypeService.findByGoodsId(goodsId);
         if (relationGoodsTypes.isEmpty()) {
             return Collections.emptyList();
@@ -133,6 +142,7 @@ public class TbItemTypeService extends ServiceImpl<TbItemTypeMapper, TbItemType>
             tbItemType.setItems(items);
             itemTypeList.add(tbItemType);
         }
+        timedCache.put(goodsId,itemTypeList);
         return itemTypeList;
     }
 }