Browse Source

堆存、充电打冷等业务

qzyReal 2 years ago
parent
commit
413a37a99d
33 changed files with 421 additions and 162 deletions
  1. 1 1
      app-ui/pages/wx/pay.vue
  2. 7 1
      sp-admin/sa-frame/menu-list-sp.js
  3. 24 1
      sp-admin/sa-view/tb-business-car/tb-business-car-info.html
  4. 6 2
      sp-admin/sa-view/tb-business/tb-car-disincle-add.html
  5. 49 24
      sp-admin/sa-view/tb-business/tb-car-disincle-edit.html
  6. 11 7
      sp-admin/sa-view/tb-business/tb-car-disincle-info.html
  7. 7 7
      sp-admin/sa-view/tb-business/tb-car-disincle-judge.html
  8. 2 2
      sp-admin/sa-view/tb-business/tb-car-disincle-list.html
  9. 1 7
      sp-admin/sa-view/tb-goods/tb-goods-add.html
  10. 1 1
      sp-admin/sa-view/tb-goods/tb-goods-list.html
  11. 1 1
      sp-admin/sa-view/tb-item-type/tb-item-add.html
  12. 1 1
      sp-admin/sa-view/tb-item-type/tb-item-edit.html
  13. 2 0
      sp-admin/sa-view/tb-item-type/tb-item-type-add.html
  14. 1 0
      sp-admin/sa-view/tb-item-type/tb-item-type-list.html
  15. 2 2
      sp-server/src/main/java/com/pj/api/jh/service/JhService.java
  16. 17 13
      sp-server/src/main/java/com/pj/api/open/service/OpenService.java
  17. 4 12
      sp-server/src/main/java/com/pj/api/wx/service/WxService.java
  18. 4 0
      sp-server/src/main/java/com/pj/current/config/MyConfig.java
  19. 4 0
      sp-server/src/main/java/com/pj/project/sync/bo/ItemTypeBO.java
  20. 89 38
      sp-server/src/main/java/com/pj/project/tb_business/TbBusinessService.java
  21. 6 0
      sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarController.java
  22. 31 17
      sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarService.java
  23. 11 0
      sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItem.java
  24. 8 0
      sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemController.java
  25. 1 0
      sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemMapper.java
  26. 18 0
      sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemMapper.xml
  27. 66 6
      sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemService.java
  28. 10 9
      sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetailsService.java
  29. 15 3
      sp-server/src/main/java/com/pj/project/tb_item/TbItem.java
  30. 3 1
      sp-server/src/main/java/com/pj/project/tb_item/TbItemService.java
  31. 4 1
      sp-server/src/main/java/com/pj/project/tb_item_type/TbItemType.java
  32. 11 3
      sp-server/src/main/java/com/pj/project/tb_item_type/TbItemTypeService.java
  33. 3 2
      sp-server/src/main/resources/application-dev.yml

+ 1 - 1
app-ui/pages/wx/pay.vue

@@ -348,7 +348,7 @@
 				}).then(resp => {
 					let code = resp.code;
 					if (code !== 200) {
-						this.$common.toast('系统异常');
+						this.$common.toast(resp.msg);
 						return;
 					}
 					let data = resp.data;

+ 7 - 1
sp-admin/sa-frame/menu-list-sp.js

@@ -374,7 +374,8 @@ window.menuList.unshift({
 		name: '业务管理',
 		icon: 'el-icon-edit-outline',
 		parent: true,
-		childList: [{
+		childList: [
+			{
 				id: 'tb-car-disincle-list',
 				name: '业务管理',
 				url: 'sa-view/tb-business/tb-car-disincle-list.html',
@@ -429,6 +430,11 @@ window.menuList.unshift({
 				]
 			},
 			{
+				id: 'tb-abinet-record',
+				name: '存/取柜记录',
+				url: 'sa-view/tb-business/tb-abinet-record.html',
+			},
+			{
 				id: 'tb-supplement-list',
 				name: '补录订单',
 				url: 'sa-view/tb-business/tb-supplement-list.html',

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

@@ -109,8 +109,31 @@
 										</el-table-column>
 										<el-table-column prop="unit" label="计费标准" width="160">
 										</el-table-column>
-										<el-table-column prop="num" label="数量" width="160">
+										<el-table-column prop="cabinetNo" label="柜号" >
 										</el-table-column>
+										<el-table-column prop="cabinetType" label="取/存" >
+											<template slot-scope="s">
+												<label v-if="s.row.cabinetType==-1">-</label>
+												<label v-if="s.row.cabinetType==0">存柜</label>
+												<label v-if="s.row.cabinetType==1">取柜</label>
+											</template>
+										</el-table-column>
+										<el-table-column prop="cabinetType" label="柜状态" >
+											<template slot-scope="s">
+												<label v-if="s.row.cabinetStatus==0">未取</label>
+												<label v-if="s.row.cabinetStatus==1">已取</label>
+											</template>
+										</el-table-column>
+										<el-table-column prop="num" label="数量">
+										</el-table-column>
+										<el-table-column prop="coldStartTime" label="开始时间" width="160">
+										</el-table-column>
+										<sa-td name="开始时间图片" width="130" prop="startImage" type="img" >
+										</sa-td>
+										<el-table-column prop="coldEndTime" label="结束时间" width="160" >
+										</el-table-column>
+										<sa-td name="结束时间图片" width="130" prop="endImage" type="img" >
+										</sa-td>
 										<el-table-column prop="total" label="合计" width="120">
 										</el-table-column>
 										<el-table-column prop="payStatus" label="支付状态" width="100">

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

@@ -201,7 +201,7 @@
 												</div>
 											</div>
 											<div style="width: 360px;padding-bottom: 20px;"
-												v-if="(type.itemAlias&&(type.itemAlias=='bigHeadCar'||type.itemAlias=='coldTruck'||type.itemAlias.indexOf('Store')>-1))">
+												v-if="(type.itemAlias&&(type.itemAlias=='coldTruck'||type.itemAlias.indexOf('Store')>-1))">
 												<label class="c-label">
 													<span style="color: red;">*</span>
 													<span v-if="type.cabinetType&&type.cabinetType==1">结束时间:</span>
@@ -209,6 +209,9 @@
 												<el-date-picker type="datetime" v-model="type.coldStartTime"
 													:placeholder="type.cabinetType&&type.cabinetType==1?'结束时间':'开始时间'"></el-date-picker>
 											</div>
+											<div style="width: 360px;padding-bottom: 20px;" v-if="type.itemAlias&&type.itemAlias=='coldTruck'">
+												<sa-item type="img" name="开始时间图片" v-model="type.startImage"></sa-item>
+											</div>
 											<div style="width: 360px;padding-bottom: 20px;"></div>
 										</div>
 										<el-divider></el-divider>
@@ -599,7 +602,8 @@
 									cabinetNo: type.cabinetNo,
 									coldStartTime: type.coldStartTime,
 									itemAlias: type.itemAlias,
-									cabinetType: type.cabinetType
+									cabinetType: type.cabinetType,
+									startImage:type.startImage
 								}
 								selectList.push(obj);
 							}

+ 49 - 24
sp-admin/sa-view/tb-business/tb-car-disincle-edit.html

@@ -134,9 +134,11 @@
 									</el-table-column>
 									<el-table-column prop="carType" label="类型">
 									</el-table-column>
-									<el-table-column prop="driverName" label="司机姓名" v-if="car.list.length>0&&car.list[0].driverName">
+									<el-table-column prop="driverName" label="司机姓名"
+										v-if="car.list.length>0&&car.list[0].driverName">
 									</el-table-column>
-									<el-table-column prop="driverPhone" label="司机电话" v-if="car.list.length>0&&car.list[0].driverName">
+									<el-table-column prop="driverPhone" label="司机电话"
+										v-if="car.list.length>0&&car.list[0].driverName">
 									</el-table-column>
 									<el-table-column label="操作">
 										<template slot-scope="s">
@@ -186,29 +188,40 @@
 												<el-input v-model="type.cabinetNo" placeholder="柜号" clearable>
 												</el-input>
 											</div>
-											<div style="width: 360px;padding-bottom: 20px;" v-show="(type.itemAlias&&(type.itemAlias=='emptyStore'||type.itemAlias=='heavyStore'))">
+											<div style="width: 360px;padding-bottom: 20px;"
+												v-show="(type.itemAlias&&(type.itemAlias=='emptyStore'||type.itemAlias=='heavyStore'))">
 												<label class="c-label">
 													<span style="color: red;">*</span>
 													取/存:</label>
-													<el-select  v-model="type.cabinetType" disabled  placeholder="请选择">
-														<el-option v-for="item in type.cabinetTypeList" :key="item.value"
-															:label="item.name" :value="item.value">
-														</el-option>
-													</el-select>
+												<el-select v-model="type.cabinetType" disabled placeholder="请选择">
+													<el-option v-for="item in type.cabinetTypeList" :key="item.value"
+														:label="item.name" :value="item.value">
+													</el-option>
+												</el-select>
 											</div>
-											<div class="flex-item" v-if="(type.itemAlias&&(type.itemAlias=='bigHeadCar'||type.itemAlias=='coldTruck'||type.itemAlias.indexOf('Store')>-1))">
-												<label class="c-label">
-													<span style="color: red;">*</span>开始时间:</label>
-												<el-date-picker type="datetime" disabled v-model="type.coldStartTime"
-													placeholder="开始时间"></el-date-picker>
+											<div class="flex-item"
+												v-if="(type.itemAlias&&(type.itemAlias=='coldTruck'||type.itemAlias.indexOf('Store')>-1))">
+												<label class="c-label" v-if="type.itemAlias.indexOf('Store')>-1">
+													<span style="color: red;">*</span>存柜时间:</label>
+													<label class="c-label" v-else>
+														<span style="color: red;">*</span>开始时间:</label>
+												<el-date-picker type="datetime" disabled v-model="type.coldStartTime"></el-date-picker>
+											</div>
+											<div style="width: 360px;padding-bottom: 20px;"
+												v-if="type.itemAlias&&type.itemAlias=='coldTruck'">
+												<sa-item type="img" name="开始时间图片" v-model="type.startImage"></sa-item>
 											</div>
-											<div class="flex-item" 
-											v-if="(type.itemAlias&&(type.itemAlias=='coldTruck'||type.itemAlias.indexOf('Store')>-1))">
+											<div class="flex-item"
+												v-if="(type.itemAlias&&(type.itemAlias=='coldTruck'||type.itemAlias.indexOf('Store')>-1))">
 												<label class="c-label">
 													结束时间:</label>
 												<el-date-picker type="datetime" v-model="type.coldEndTime"
 													placeholder="结束时间"></el-date-picker>
 											</div>
+											<div style="width: 360px;padding-bottom: 20px;"
+												v-if="type.itemAlias&&type.itemAlias=='coldTruck'">
+												<sa-item type="img" name="结束时间图片" v-model="type.endImage"></sa-item>
+											</div>
 										</div>
 										<el-divider></el-divider>
 									</el-form-item>
@@ -248,7 +261,7 @@
 							<el-input v-model="car.form.driverName" placeholder="司机姓名">
 							</el-input>
 						</div>
-						<div class="c-item"  v-if="m.goodsName=='集装箱正面吊装'">
+						<div class="c-item" v-if="m.goodsName=='集装箱正面吊装'">
 							<label class="c-label">司机号码:</label>
 							<el-input v-model="car.form.driverPhone" placeholder="司机号码">
 							</el-input>
@@ -260,7 +273,7 @@
 					<el-button type="primary" @click="confirmAdd">确 定</el-button>
 				</span>
 			</el-dialog>
-			
+
 		</div>
 		<script>
 			var app = new Vue({
@@ -369,7 +382,7 @@
 								type.disabled = true;
 							}
 						}
-						this.validBefore();
+
 					},
 					confirmAdd() {
 						let list = this.car.list;
@@ -474,14 +487,23 @@
 										type.itemAlias = initItem.itemAlias;
 										type.coldStartTime = initItem.coldStartTime;
 										type.coldEndTime = initItem.coldEndTime;
-										type.cabinetType=initItem.cabinetType;
+										type.cabinetType = initItem.cabinetType;
+										type.businessItemId = initItem.id;
+										type.startImage = initItem.startImage;
+										type.endImage = initItem.endImage;
 									}
 								}
 							}
-							for(let i in list){
-								let type=list[i];
-								let cabinetTypeList=[{value:0,name:'存柜'},{value:1,name:'取柜'}];
-								type.cabinetTypeList=cabinetTypeList;
+							for (let i in list) {
+								let type = list[i];
+								let cabinetTypeList = [{
+									value: 0,
+									name: '存柜'
+								}, {
+									value: 1,
+									name: '取柜'
+								}];
+								type.cabinetTypeList = cabinetTypeList;
 							}
 							this.itemTypeList = list;
 							this.filterTypeList = JSON.parse(JSON.stringify(this.itemTypeList));
@@ -582,7 +604,10 @@
 									coldStartTime: type.coldStartTime,
 									coldEndTime: type.coldEndTime,
 									itemAlias: type.itemAlias,
-									cabinetType: type.cabinetType
+									cabinetType: type.cabinetType,
+									businessItemId: type.businessItemId,
+									startImage: type.startImage,
+									endImage: type.endImage
 								}
 								selectList.push(obj);
 							}

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

@@ -102,8 +102,8 @@
 									<el-table :data="m.cars" style="width: 100%">
 										<sa-td name="车牌号" prop="carNo"></sa-td>
 										<sa-td name="类型" prop="carType"></sa-td>
-										<sa-td name="司机姓名" prop="driverName"></sa-td>
-										<sa-td name="司机号码" prop="driverPhone" width=130></sa-td>
+										<sa-td name="司机姓名" prop="driverName" v-if="m.goodsCode=='A10003'"></sa-td>
+										<sa-td name="司机号码" prop="driverPhone" width=130 v-if="m.goodsCode=='A10003'"></sa-td>
 										<sa-td name="入场时间" prop="realInTime" width=180></sa-td>
 										<sa-td name="离场时间" prop="realOutTime" width=180></sa-td>
 										<el-table-column label="停车费">
@@ -143,16 +143,16 @@
 								</el-table-column>
 								<el-table-column prop="unit" label="计费标准">
 								</el-table-column>
-								<el-table-column prop="cabinetNo" label="柜号">
+								<el-table-column prop="cabinetNo" label="柜号" v-if="m.goodsCode=='A10003'">
 								</el-table-column>
-								<el-table-column prop="cabinetType" label="取/存">
+								<el-table-column prop="cabinetType" label="取/存" v-if="m.goodsCode=='A10003'">
 									<template slot-scope="s">
 										<label v-if="s.row.cabinetType==-1">-</label>
 										<label v-if="s.row.cabinetType==0">存柜</label>
 										<label v-if="s.row.cabinetType==1">取柜</label>
 									</template>
 								</el-table-column>
-								<el-table-column prop="cabinetType" label="柜状态">
+								<el-table-column prop="cabinetType" label="柜状态" v-if="m.goodsCode=='A10003'">
 									<template slot-scope="s">
 										<label v-if="s.row.cabinetStatus==0">未取</label>
 										<label v-if="s.row.cabinetStatus==1">已取</label>
@@ -160,10 +160,14 @@
 								</el-table-column>
 								<el-table-column prop="num" label="数量">
 								</el-table-column>
-								<el-table-column prop="coldStartTime" label="开始时间" width="160">
+								<el-table-column prop="coldStartTime" label="开始时间" width="160" v-if="m.goodsCode=='A10003'||m.goodsCode=='A10004'||m.goodsCode=='A10005'">
 								</el-table-column>
-								<el-table-column prop="coldEndTime" label="结束时间" width="160">
+								<sa-td name="开始时间图片" width="130" prop="startImage" type="img" v-if="m.goodsCode=='A10004'">
+								</sa-td>
+								<el-table-column prop="coldEndTime" label="结束时间" width="160" v-if="m.goodsCode=='A10003'||m.goodsCode=='A10004'||m.goodsCode=='A10005'">
 								</el-table-column>
+								<sa-td name="结束时间图片" width="130" prop="endImage" type="img" v-if="m.goodsCode=='A10004'">
+								</sa-td>
 								<el-table-column prop="total" label="合计">
 								</el-table-column>
 								<sa-td width="120" name="支付状态" prop="payStatus" type="enum"

+ 7 - 7
sp-admin/sa-view/tb-business/tb-car-disincle-judge.html

@@ -102,8 +102,8 @@
 									<el-table :data="m.cars" style="width: 100%">
 										<sa-td name="车牌号" prop="carNo"></sa-td>
 										<sa-td name="类型" prop="carType"></sa-td>
-										<sa-td name="司机姓名" prop="driverName"></sa-td>
-										<sa-td name="司机号码" prop="driverPhone" width=130></sa-td>
+										<sa-td name="司机姓名" prop="driverName" v-if="m.goodsCode=='A10003'"></sa-td>
+										<sa-td name="司机号码" prop="driverPhone" width=130 v-if="m.goodsCode=='A10003'"></sa-td>
 										<sa-td name="入场时间" prop="realInTime" width=180></sa-td>
 										<sa-td name="离场时间" prop="realOutTime" width=180></sa-td>
 										<el-table-column label="停车费">
@@ -143,24 +143,24 @@
 								</el-table-column>
 								<el-table-column prop="unit" label="计费标准">
 								</el-table-column>
-								<el-table-column prop="cabinetNo" label="柜号">
+								<el-table-column prop="cabinetNo" label="柜号" v-if="m.goodsCode=='A10003'">
 								</el-table-column>
-								<el-table-column prop="cabinetType" label="取/存">
+								<el-table-column prop="cabinetType" label="取/存" v-if="m.goodsCode=='A10003'">
 									<template slot-scope="s">
 										<label v-if="s.row.cabinetType==-1">-</label>
 										<label v-if="s.row.cabinetType==0">存柜</label>
 										<label v-if="s.row.cabinetType==1">取柜</label>
 									</template>
 								</el-table-column>
-								<el-table-column prop="cabinetType" label="柜状态">
+								<el-table-column prop="cabinetType" label="柜状态" v-if="m.goodsCode=='A10003'">
 									<template slot-scope="s">
 										<label v-if="s.row.cabinetStatus==0">未取</label>
 										<label v-if="s.row.cabinetStatus==1">已取</label>
 									</template>
 								</el-table-column>
-								<el-table-column prop="coldStartTime" label="开始时间" width="160">
+								<el-table-column prop="coldStartTime" label="开始时间" width="160" v-if="m.goodsCode=='A10003'||m.goodsCode=='A10004'||m.goodsCode=='A10005'">
 								</el-table-column>
-								<el-table-column prop="coldEndTime" label="结束时间" width="160">
+								<el-table-column prop="coldEndTime" label="结束时间" width="160" v-if="m.goodsCode=='A10003'||m.goodsCode=='A10004'||m.goodsCode=='A10005'">
 								</el-table-column>
 								<el-table-column prop="num" label="数量">
 								</el-table-column>

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

@@ -93,19 +93,19 @@
 					<sa-td name="客户名称" prop="customerName" width="190"></sa-td>
 					<sa-td name="合作伙伴" prop="pickCustomerName" width="190"></sa-td>
 					<sa-td name="货物名称" prop="businessGoodsName" width="160"></sa-td>
-					<sa-td name="业务项" prop="goodsName" width="160"></sa-td>
+					<sa-td name="业务项" prop="goodsName" width="180"></sa-td>
 					<el-table-column label="车牌号" width="160">
 						<template slot-scope="s">
 							<label>{{s.row.carNoStr}}</label>
 						</template>
 					</el-table-column>
-					<sa-td name="支付时间" prop="payTime" width="160"></sa-td>
 					<sa-td name="审核状态" prop="confirmJudge" type="enum" :jv="{0: '未审核', 1:'审核通过',2:'审核驳回'}">
 					</sa-td>
 					<sa-td name="审核时间" prop="confirmJudgeTime" width="160"></sa-td>
 					<!-- <sa-td name="确认" prop="adminConfirmInput" type="enum" :jv="{1: '已确认', 0: '未确认'}"></sa-td> -->
 					<sa-td name="业务费用(元)" prop="itemPrice" width="120"></sa-td>
 					<sa-td name="已支付(元)" prop="payMoney" width="140"></sa-td>
+					<sa-td name="支付时间" prop="payTime" width="160"></sa-td>
 					<sa-td name="业务状态" prop="hasError" type="enum" :jv="{1: '异常[#ff0000]', 0: '正常[#005500]'}"></sa-td>
 					<sa-td width="160" name="创建时间" prop="createTime"></sa-td>
 					</sa-td>

+ 1 - 7
sp-admin/sa-view/tb-goods/tb-goods-add.html

@@ -34,13 +34,7 @@
             <div class="c-title" v-else>数据修改</div>
             <el-form v-if="m">
                 <sa-item type="text" name="业务名称" v-model="m.name" br></sa-item>
-                <div class="c-item">
-                    <label class="c-label">付款步骤:</label>
-                    <el-select v-model="m.payStep" placeholder="请选择">
-                        <el-option :label="item.name" :value="item.id" v-for="(item,index) in stepList">
-                        </el-option>
-                    </el-select>
-                </div>
+                 <sa-item type="text" name="编号" v-model="m.code" br></sa-item>
                 <!-- <sa-item type="enum" name="状态" v-model="m.status" :jv="{1: '禁用', 2: '启用'}" jtype="3" br></sa-item> -->
                 <sa-item name="" class="s-ok" br>
                     <el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>

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

@@ -33,7 +33,7 @@
 					<el-table-column type="index" width="50">
 					</el-table-column>
 					<sa-td name="业务名称" prop="name" width="120"></sa-td>
-					<sa-td name="付款步骤" prop="payStep" type="enum" :jv="{1: '下单后', 2: '确认后'}" width="80"></sa-td>
+					<sa-td name="编号" prop="code" ></sa-td>
 					<sa-td name="载重" prop="needWeight" type="switch" :jv="{0: '选填[#005500]', 1: '必填[#ff0000]'}"
 						@change="s => updateNeedWeight(s.row)" width="90"></sa-td>
 					<sa-td name="规格" prop="needCarSize" type="switch" :jv="{0: '选填[#005500]', 1: '必填[#ff0000]'}"

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

@@ -155,7 +155,7 @@
                     if (list.length > 0) {
                         this.m.payType = list[0].id
                     }
-                    this.payTypeList = list.filter(obj => obj.id !== 4);
+                    this.payTypeList = list;
                 }.bind(this))
             },
             // 提交数据

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

@@ -146,7 +146,7 @@
             getPayTypeList() {
                 sa.ajax('/TbFeeStatistics/getFeeType', function (resp) {
                     let list = resp.data;
-                    this.payTypeList = list.filter(obj => obj.id !== 4);
+                    this.payTypeList = list;
                 }.bind(this))
             },
             // 提交数据

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

@@ -39,6 +39,8 @@
             <el-form v-if="m">
                 <sa-item type="text" name="项目名称" v-model="m.name" placeholder="请输入项目名称" br>
                 </sa-item>
+				<sa-item type="text" name="编号" v-model="m.aliasName" placeholder="请输入项目编号" br>
+				</sa-item>
                 <div class="c-item">
                     <label class="c-label">排序:</label>
                     <el-input-number class="item-num" v-model="m.sort" :step="1" :min="1" step-strictly>

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

@@ -32,6 +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"></sa-td>
+					<sa-td name="编号" prop="aliasName"></sa-td>
 					<el-table-column label="有效期" width="260px">
 						<template slot-scope="s">
 							{{s.row.startTime}}~{{s.row.endTime}}

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

@@ -147,9 +147,9 @@ public class JhService {
         if (StrUtil.isEmpty(desc)) {
             return "";
         }
-        if (desc.getBytes(Charset.forName("utf-8")).length > 128) {
+        if (desc.getBytes(Charset.forName("utf-8")).length > 120) {
             desc = StrUtil.sub(desc, 0, desc.lastIndexOf("-"));
-            desc = handlerDesc(desc);
+            return handlerDesc(desc);
         }
         return desc;
     }

+ 17 - 13
sp-server/src/main/java/com/pj/api/open/service/OpenService.java

@@ -14,6 +14,7 @@ import com.pj.constants.business.CarEnum;
 import com.pj.constants.business.GoodsEnum;
 import com.pj.constants.business.PayEnum;
 import com.pj.current.config.PartConfig;
+import com.pj.current.config.SystemObject;
 import com.pj.current.task.TaskService;
 import com.pj.project.sync.SyncService;
 import com.pj.project.sync.request.item.IOrderItem;
@@ -201,13 +202,12 @@ public class OpenService {
             log.error("请求返回【业务未审核】:{}", carNo);
             return ResultJson.error("业务未审核");
         }
-        BigDecimal hasPayPartMoney = tbBusinessCar.getMoney();
         if (businessList.isEmpty()) {
             //无业务车辆===>计算停车费
             //如果已经支付过,则从支付时间算起,重新计算停车费
             Date inTime = tbBusinessCar.getRealInTime();
-            if (hasPayPartMoney.compareTo(BigDecimal.ZERO) > 0) {
-                inTime = now;
+            if (CarEnum.PayTypeEnum.HAS_PAY_TYPE.getType().equals(tbBusinessCar.getPayType())) {
+                inTime = tbBusinessCar.getPayTime();
             }
             IOrderPriceRes res = tbBusinessService.getPartMoney(inTime, now, carNo, tbBusinessCar.getColor());
             double dif = res.getTotalOrderPrice().subtract(tbBusinessCar.getMoney()).doubleValue();
@@ -228,8 +228,8 @@ public class OpenService {
             //有业务的车--->都要交停车费
             //该车所有的业务都是到达卡口才进行扣费才会进入自动扣费
             Date inTime = tbBusinessCar.getRealInTime();
-            if (hasPayPartMoney.compareTo(BigDecimal.ZERO) > 0) {
-                inTime = now;
+            if (CarEnum.PayTypeEnum.HAS_PAY_TYPE.getType().equals(tbBusinessCar.getPayType())) {
+                inTime = tbBusinessCar.getPayTime();
             }
             partMoneyRes = tbBusinessService.getPartMoney(inTime, now, carNo, tbBusinessCar.getColor());
             double dif = partMoneyRes.getTotalOrderPrice().doubleValue();
@@ -243,23 +243,30 @@ public class OpenService {
             }
         }
         //============业务费计算是否交完
-        //businessList = businessList.stream().filter(tbBusiness -> tbBusiness.getPayStatus() != PayEnum.PayStatusEnum.HAS_PAY_CONFIRM.getCode()).collect(Collectors.toList());
-        List<String> businessIds = businessList.stream().map(TbBusiness::getId).collect(Collectors.toList());
-        List<TbBusinessItem> businessItems = tbBusinessItemService.findByBusinessId(businessIds);
         for (TbBusiness tbBusiness : businessList) {
+            List<TbBusinessItem> businessItems = tbBusinessItemService.findByBusinessId(tbBusiness.getId());
+            //柜车、栏车 则取对应的入场和离场时间为开始结束时间
+            businessItems.stream().filter(item -> StrUtil.equals(item.getItemAlias(), SystemObject.config.getCabinetCar()))
+                    .forEach(item -> {
+                        item.setColdStartTime(tbBusinessCar.getRealInTime()).setColdEndTime(now);
+                        //堆存业务的车辆====>免停车费
+                        tbBusinessCar.setPayType(CarEnum.PayTypeEnum.FEE_TYPE.getType()).setPay(1).setMoney(BigDecimal.ZERO);
+                        partMoneyRes.setTotalOrderPrice(BigDecimal.ZERO);
+                        tbBusinessItemService.updateById(item);
+                    });
             TbGoods tbGoods = tbGoodsService.getById(tbBusiness.getGoodsId());
             //重车离场限制
             int weiCarLeave = tbGoods.getVietnamCarLeave();
             //空车离场限制
             int emptyCarLeave = tbGoods.getChinaCarLeave();
-            boolean pay = tbBusiness.getPayMoney().doubleValue() >= tbBusiness.getItemPrice().doubleValue();
+            boolean pay = tbBusiness.getPayMoney().doubleValue()>0;
             //需要交业务费
             if (CarEnum.CarTypeEnum.WEIGHT_TYPE.getType().equals(carType)) {//==重车
                 if (GoodsEnum.LeaveEnum.PART_MONEY.getCode() != weiCarLeave
                         && !pay) {
                     RedisUtil.setByMINUTES(channel, carNo, 5);
                     tbBusinessItemService.buildExpenses(businessItems, expenses);
-                    log.error("越南车==重车:缴纳业务费用:{}", carNo);
+                    log.error("==重车:缴纳业务费用:{}", carNo);
                 }
             } else {
                 if (GoodsEnum.LeaveEnum.PART_MONEY.getCode() != emptyCarLeave
@@ -276,9 +283,6 @@ public class OpenService {
 
         BigDecimal businessMoney = businessRes.getTotalOrderPrice();
         BigDecimal total = businessMoney.add(carMoney);
-        //入场管理费。。。。
-        //ManagerBO dto = tbBusinessService.needPayManagerMoney(carNo, businessCarId, businessItems);
-        // total = dto.getPrice().add(total);
         if (total.doubleValue() > 0) {
             String desc = "请缴";
             if (businessMoney.doubleValue() > 0) {

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

@@ -232,6 +232,7 @@ public class WxService {
         if (StrUtil.isNotEmpty(attachStr)) {
             Attach attach = JSONUtil.toBean(attachStr, Attach.class);
             List<PriceBO> cars = JSONUtil.toList(attach.getC(), PriceBO.class);
+            BigDecimal partMoney=BigDecimal.ZERO;
             for (PriceBO bo1 : cars) {
                 TbBusinessCar car = tbBusinessCarService.getById(bo1.getId());
                 BigDecimal price = bo1.getP();
@@ -239,6 +240,7 @@ public class WxService {
                     log.error("付款金额不正确:{}", JSONUtil.toJsonStr(notifyBO));
                     continue;
                 }
+                partMoney=partMoney.add(price);
                 car.setPay(1).setMoney(price).setPayTime(payTime)
                         .setPayType(CarEnum.PayTypeEnum.HAS_PAY_TYPE.getType())
                         .setOutTradeNo(outTradeNo)
@@ -260,28 +262,18 @@ public class WxService {
                 List<TbBusinessItem> items = tbBusinessItemService.findByBusinessIdList(businessIds);
                 items = items.stream().filter(item -> item.getPayStatus() == 0).collect(Collectors.toList());
                 for (TbBusiness tbBusiness : businessList) {
-                    tbBusiness.setPayTime(payTime).setPayType(PayEnum.PayType.WX_PAY.getCode()).setConfirmInput(1).setConfirmInputTime(payTime)
+                    tbBusiness.setPayTime(payTime).setPayType(PayEnum.PayType.WX_PAY.getCode())
+                            .setConfirmInput(1).setConfirmInputTime(payTime)
                             .setPayMoney(tbBusiness.getItemPrice()).setPayOpenid(payopenid)
                             .setCalculateId(tbOrder.getCalculateId())
                             .setPayNo(transactionId).setOutTradeNo(outTradeNo);
                     tbBusiness.setPayStatus(PayEnum.PayStatusEnum.HAS_PAY_CONFIRM.getCode());
                     tbBusinessService.updateById(tbBusiness);
-                    List<TbBusinessCar> carList = tbBusinessCarService.findOtherBusinessCar(businessId);
-                    carList.forEach(tbBusinessCar -> {
-                        tbBusinessCar.setPay(1).setPayTime(finalPayTime).setPayOpenid(payopenid);
-                        tbBusinessCarService.updateById(tbBusinessCar);
-                    });
                 }
                 items.forEach(tbBusinessItem -> tbBusinessItem.setPayStatus(1).setPayTime(finalPayTime).setCalculateId(tbOrder.getCalculateId()));
                 tbFeeDetailsService.chargeBusinessFee(items, transactionId, outTradeNo, payTime, PayEnum.PayType.WX_PAY);//添加items的收费明细
                 tbBusinessItemService.updateBatchById(items);
             }
-            String i = attach.getI();
-            //入场管理费
-            if (StrUtil.isNotEmpty(i)) {
-                 ManagerBO managerBO = JSONUtil.toBean(i, ManagerBO.class);
-                   tbFeeDetailsService.chargeManagerFee(managerBO, businessId,transactionId, outTradeNo, payTime, PayEnum.PayType.WX_PAY);//添加cars的收费明细
-            }
             tbFeeStatisticsService.addOrUpdateStatistic(payTime, PayEnum.PayType.WX_PAY.getCode());//更新当前日期的日统计
         }
         tbOrder.setOrderStatus(orderStatus)

+ 4 - 0
sp-server/src/main/java/com/pj/current/config/MyConfig.java

@@ -90,5 +90,9 @@ public class MyConfig {
      * 大头车
      */
     private String  bigHeadCar;
+    /**
+     * 柜车、栏车
+     */
+    private String  cabinetCar;
 
 }

+ 4 - 0
sp-server/src/main/java/com/pj/project/sync/bo/ItemTypeBO.java

@@ -18,6 +18,10 @@ public class ItemTypeBO implements Serializable {
     private String label;
     private String level;
     private String partnersId;
+    /**
+     * 编号
+     */
+    private String aliasName;
     //0 启用 1禁用
     private int state=0;
     private Date startTime;

+ 89 - 38
sp-server/src/main/java/com/pj/project/tb_business/TbBusinessService.java

@@ -456,7 +456,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                     partMoney = new BigDecimal("0");
                 }
                 if (CarEnum.PayTypeEnum.HAS_PAY_TYPE.getType().equals(tbBusinessCar.getPayType())) {
-                    inTime=tbBusinessCar.getPayTime();
+                    inTime = tbBusinessCar.getPayTime();
                 }
                 if (partMoney.doubleValue() == 1) {
                     IOrderPriceRes partPriceRes = getPartMoney(inTime, outTime, tbBusinessCar.getCarNo(), tbBusinessCar.getColor());
@@ -508,11 +508,16 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                         continue;
                     }
                     tbBusinessItemService.buildDaysFceItem(businessItem, iOrderItem, startTime, endTime);
-                }else if (StrUtil.equals(itemAlias,SystemObject.config.getBigHeadCar())){
-                    tbBusinessItemService .buildDaysFceItem(businessItem, iOrderItem, startTime, endTime);
+                } else if (StrUtil.equals(itemAlias, SystemObject.config.getBigHeadCar())
+                        || StrUtil.equals(itemAlias, SystemObject.config.getCabinetCar())) {
+                    //大车头、柜车、栏车
+                    tbBusinessItemService.buildDaysFceItem(businessItem, iOrderItem, startTime, endTime);
+                    //不收停车费
+                    carMap.put("price", 0);
                 }
                 expenses.add(iOrderItem);
             }
+            result.put("carList", Collections.singleton(carMap));
             if (!expenses.isEmpty()) {
                 IOrderPriceRes orderPriceRes = syncService.orderPriceCal(expenses);
                 BigDecimal totalPrice = orderPriceRes.getTotalOrderPrice();
@@ -527,7 +532,16 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                     itemMap.put("pay", item.getPayStatus());
                     orderPriceRes.getFireResult().stream().filter(priceItem -> StrUtil.equals(item.getItemCode(), priceItem.getUniqExpenseId()))
                             .findAny().ifPresent(priceItem -> {
-                        itemMap.put("price", priceItem.getFirePrice().multiply(new BigDecimal(item.getNum())));
+                        BigDecimal price = priceItem.getFirePrice().multiply(new BigDecimal(item.getNum()));
+                        //柜车、栏车只有离场才知道多少钱
+                        if (StrUtil.equals(item.getItemAlias(),SystemObject.config.getCabinetCar())){
+                            TbBusiness tbBusiness = this.getById(item.getBusinessId());
+                            tbBusiness.setItemPrice(price);
+                            item.setTotal(price);
+                            tbBusinessItemService.updateById(item);
+                            this.updateById(tbBusiness);
+                        }
+                        itemMap.put("price", price);
                     });
                     itemList.add(itemMap);
                     TbBusinessSort tbBusinessSort = tbBusinessSortService.findByItemTypeId(item.getItemTypeId());
@@ -667,10 +681,16 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
         }
         int index = 1;
         int size = cars.size();
+        String goodsName = tbGoods.getName();
         for (TbItem tbItem : tbItems) {
             TbItem db = tbItemService.getById(tbItem.getId());
             String itemName = db.getItemName();
+            goodsName = goodsName + "—" + itemName;
             String alaisName = db.getItemAlias();
+            String startImage = tbItem.getStartImage();
+            if (StrUtil.equals(SystemObject.config.getColdItemAlias(), alaisName) && StrUtil.isEmpty(startImage)) {
+                throw new AjaxError("请上传开始时间图片");
+            }
             TbBusinessItem item = new TbBusinessItem();
             int cabinetType = tbItem.getCabinetType();
             if (!SystemObject.config.getEmptyStoreItemAlias().equals(alaisName)
@@ -680,7 +700,9 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
             int num = tbItem.getNum();
             String typeId = tbItem.getTypeId();
             TbItemType tbItemType = tbItemTypeService.getById(typeId);
-            BigDecimal itemTotalPrice = db.getPrice().multiply(new BigDecimal(num));
+            BigDecimal unitPrice = db.getPrice();
+            unitPrice = StrUtil.equals(db.getPattern(), "RULES") ? BigDecimal.ZERO : unitPrice;
+            BigDecimal itemTotalPrice = unitPrice.multiply(new BigDecimal(num));
             item.setNo(no + "0" + index).setPayTypeName(db.getPayTypeName())
                     .setPayType(db.getPayType())
                     .setBusinessType(db.getBusinessType()).setTaxRate(NumberUtil.div(db.getTaxRate().doubleValue(), 100D, 2));
@@ -690,7 +712,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                     .setItemName(db.getItemName()).setItemPrice(db.getPrice()).setRemark(tbItem.getRemark())
                     .setItemTypeId(typeId).setItemTypeName(tbItemType.getName()).setItemAlias(tbItem.getItemAlias())
                     .setUnit(db.getUnit()).setTotal(itemTotalPrice).setCreateTime(now)
-                    .setColdStartTime(tbItem.getColdStartTime());
+                    .setColdStartTime(tbItem.getColdStartTime()).setStartImage(startImage);
             if (partner != null) {
                 item.setPick(1).setPickCustomerId(pickCustomerId).setPickCustomerName(partner.getName())
                         .setPickBy(StpUserUtil.getCreateBy()).setPickTime(now);
@@ -705,6 +727,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                 TbBusinessItem tbBusinessItem = tbBusinessItemService.findTheLastRecordByCabinetNo(tbItem.getCabinetNo());
                 //堆存---》取柜
                 if (cabinetType == 1) {
+                    goodsName = goodsName + "(取柜)";
                     if (tbBusinessItem == null) {
                         throw new AjaxError("根据柜号" + tbItem.getCabinetNo() + "找不到堆存记录");
                     }
@@ -722,8 +745,21 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                             .setCabinetStatus(1);
                     tbBusinessItem.setColdEndTime(endTime)
                             .setCabinetStatus(1);
+                    //计算金额
+                    Date startTime = tbBusinessItem.getColdStartTime();
+                    if (startTime != null) {
+                        List<IOrderItem> expenses = new ArrayList<>();
+                        tbBusinessItemService.buildExpenses(Collections.singletonList(item), expenses);
+                        if (!expenses.isEmpty()) {
+                            IOrderPriceRes res = syncService.orderPriceCal(expenses);
+                            BigDecimal itemPrice = res.getTotalOrderPrice();
+                            item.setTotal(itemPrice);
+                            itemTotalPrice = itemPrice;
+                        }
+                    }
                     tbBusinessItemService.updateById(tbBusinessItem);
                 } else {
+                    goodsName = goodsName + "(存柜)";
                     //存柜
                     if (tbBusinessItem != null && tbBusinessItem.getCabinetStatus() == 0) {
                         throw new AjaxError("柜号" + tbItem.getCabinetNo() + "已存柜未取柜");
@@ -735,7 +771,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                     //业务费xxx都为0;
                     BigDecimal zero = BigDecimal.ZERO;
                     item.setColdStartTime(endTime).setItemPrice(zero)
-                            .setTotal(zero).setPayStatus(1).setPayTime(now);
+                            .setTotal(zero).setPayStatus(1);
                     //无需支付
                     item.setPayStatus(3);
                     itemTotalPrice = zero;
@@ -756,7 +792,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
         String declareNo = otherBusinessBO.getDeclareNo();
         tbBusiness.setCardSize(otherBusinessBO.getCarSize()).setNetWeight(otherBusinessBO.getNetWeight())
                 .setOperator(otherBusinessBO.getOperator()).setOperateTime(otherBusinessBO.getOperateTime())
-                .setNo(no).setGoodsName(tbGoods.getName()).setGoodsId(otherBusinessBO.getGoodsId())
+                .setNo(no).setGoodsName(goodsName).setGoodsId(otherBusinessBO.getGoodsId()).setGoodsCode(tbGoods.getCode())
                 .setBusinessGoodsName(otherBusinessBO.getBusinessGoodsName()).setBusinessGoodsNum(otherBusinessBO.getBusinessGoodsNum())
                 .setPayStep(tbGoods.getPayStep()).setDeclareNo(declareNo).setCardNo(otherBusinessBO.getCardNo());
         tbBusiness.setCreateTime(now).setCreateByCustomerId(StpUserUtil.getCustomerId())
@@ -859,6 +895,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
         }
         TbGoods tbGoods = tbGoodsService.getById(otherBusinessBO.getGoodsId());
         String carBuseinssNo = DateUtil.format(now, "yyyyMMddHHmm");
+        String goodsName = tbGoods.getName();
         List<TbBusinessItem> itemList = new ArrayList<>();
         if (PayEnum.PayStatusEnum.HAS_PAY_CONFIRM.getCode() != dbBusiness.getPayStatus()) {
             List<TbBusinessItem> businessItemList = tbBusinessItemService.findByBusinessId(id);
@@ -879,19 +916,28 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                 dbBusiness.setPickCustomerId(pickCustomerId).setPickCustomerName(partner.getName());
             }
             int size = cars.size();
+
             for (TbItem tbItem : tbItems) {
                 TbItem db = tbItemService.getById(tbItem.getId());
                 String alaisName = db.getItemAlias();
+                String itemName = db.getItemName();
+                goodsName = goodsName + "—" + itemName;
+                String endImage = tbItem.getEndImage();
+                if (StrUtil.equals(SystemObject.config.getColdItemAlias(), alaisName) && StrUtil.isEmpty(endImage)) {
+                    throw new AjaxError("请上传结束时间图片");
+                }
                 int cabinetType = tbItem.getCabinetType();
+                //如果不是正面吊--->则取/存操作设置为-1
                 if (!SystemObject.config.getEmptyStoreItemAlias().equals(alaisName)
                         && !SystemObject.config.getHeavyStoreItemAlias().equals(alaisName)) {
                     cabinetType = -1;
                 }
-                String itemName = db.getItemName();
                 TbBusinessItem item = new TbBusinessItem();
                 int num = tbItem.getNum();
                 TbItemType tbItemType = tbItemTypeService.getById(tbItem.getTypeId());
-                BigDecimal itemTotalPrice = db.getPrice().multiply(new BigDecimal(num));
+                BigDecimal unitPrice = db.getPrice();
+                unitPrice = StrUtil.equals(db.getPattern(), "RULES") ? BigDecimal.ZERO : unitPrice;
+                BigDecimal itemTotalPrice = unitPrice.multiply(new BigDecimal(num));
                 item.setNo(no + "0" + index).setPayTypeName(db.getPayTypeName()).setPayType(db.getPayType())
                         .setBusinessType(db.getBusinessType()).setTaxRate(NumberUtil.div(db.getTaxRate().doubleValue(), 100D, 2));
                 item.setItemCode(db.getItemCode()).setNum(num + "").setItemId(db.getId()).setBusinessId(dbBusiness.getId())
@@ -899,14 +945,16 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                         .setItemTypeId(tbItem.getTypeId()).setItemTypeName(tbItemType.getName())
                         .setCabinetNo(tbItem.getCabinetNo()).setItemAlias(tbItem.getItemAlias())
                         .setUnit(db.getUnit()).setTotal(itemTotalPrice).setCreateTime(now)
-                        .setCabinetType(cabinetType)
+                        .setCabinetType(cabinetType).setEndImage(endImage).setStartImage(tbItem.getStartImage())
                         .setColdStartTime(tbItem.getColdStartTime()).setColdEndTime(tbItem.getColdEndTime());
                 if (partner != null) {
                     item.setPick(1).setPickCustomerId(pickCustomerId).setPickCustomerName(partner.getName())
                             .setPickBy(StpUserUtil.getCreateBy()).setPickTime(now);
                 }
+                //装卸-->x车辆数量
                 if (SystemObject.config.getEveryCarPay().contains(itemName)) {
                     itemTotalPrice = itemTotalPrice.multiply(BigDecimal.valueOf(size));
+                    item.setTotal(itemTotalPrice);
                 }
 
                 Date startTime = item.getColdStartTime();
@@ -914,25 +962,28 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                 if (startTime != null && endTime != null) {
                     List<IOrderItem> expenses = new ArrayList<>();
                     tbBusinessItemService.buildExpenses(Collections.singletonList(item), expenses);
-                    if (!expenses.isEmpty()){
+                    if (!expenses.isEmpty()) {
                         IOrderPriceRes res = syncService.orderPriceCal(expenses);
-                        item.setTotal(res.getTotalOrderPrice());
-                        itemTotalPrice = res.getTotalOrderPrice();
+                        BigDecimal itemPrice = res.getTotalOrderPrice();
+                        item.setTotal(itemPrice);
+                        itemTotalPrice = itemPrice;
                     }
                 }
-                //堆存业务
+                //正面吊堆存业务
                 if (SystemObject.config.getEmptyStoreItemAlias().equals(alaisName)
                         || SystemObject.config.getHeavyStoreItemAlias().equals(alaisName)) {
                     //取柜--->根据柜号查询上一个存柜时间
                     TbBusinessItem tbBusinessItem = tbBusinessItemService.findTheLastRecordByCabinetNo(tbItem.getCabinetNo());
                     //堆存
-                    if (cabinetType == 1) {
+                    if (cabinetType == 1) {//取柜
                         if (tbBusinessItem == null) {
                             throw new AjaxError("根据柜号" + tbItem.getCabinetNo() + "找不到堆存记录");
                         }
+
                         if (endTime == null) {
                             throw new AjaxError("请输入取柜时间");
                         }
+                        goodsName = goodsName + "(取柜)";
                         item.setColdStartTime(tbBusinessItem.getColdStartTime())
                                 .setParentCabinetId(tbBusinessItem.getId())
                                 .setColdEndTime(endTime);
@@ -943,6 +994,14 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                         if (startTime == null) {
                             throw new AjaxError("请输入存柜时间");
                         }
+                        String businessItemId = tbItem.getBusinessItemId();
+                        if (StrUtil.isNotEmpty(businessItemId)
+                                && tbBusinessItem != null
+                                && !StrUtil.equals(businessItemId, tbBusinessItem.getId() + "")
+                                && tbBusinessItem.getColdEndTime() == null) {
+                            throw new AjaxError("箱规未取走,不能存入");
+                        }
+                        goodsName = goodsName + "(存柜)";
                         //业务费xxx都为0;
                         BigDecimal zero = BigDecimal.ZERO;
                         item.setColdStartTime(endTime).setItemPrice(zero)
@@ -964,9 +1023,6 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
         for (TbBusinessCar tbBusinessCar : cars) {
             String businessCarId = tbBusinessCar.getId();
             String carNo = tbBusinessCar.getCarNo();
-            for (TbBusinessItem item : itemList) {
-                checkOtherBusiness(item.getItemTypeId(), otherBusinessBO.getOperateTime(), dbBusiness.getId(), carNo);
-            }
             if (StrUtil.isNotEmpty(businessCarId)) {
                 //原来已存在的
                 TbBusinessCar dbBusinessCar = tbBusinessCarService.getById(businessCarId);
@@ -976,15 +1032,8 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
                     //把关联删除掉,然后添加新的关联
                     relationBusinessCarService.removeByBusinessIdAndCarId(dbBusiness.getId(), businessCarId);
                     TbBusinessCar otherCar = tbBusinessCarService.findTheLastRecord(carNo);
-                    if (otherCar == null ||//不存在或者已离场===>新建
-                            (otherCar.getRealInTime() != null && otherCar.getRealOutTime() != null)) {
-                        otherCar = new TbBusinessCar();
-                        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).setCarType(tbBusinessCar.getCarType())
-                                .setConfirmJudge(CarEnum.ConfirmJudgeEnum.NO_JUDGE.getCode());
-                        tbBusinessCarService.save(otherCar);
+                    if (otherCar == null) {
+                        throw new AjaxError("车辆【" + carNo + "】未入场");
                     } else {
                         List<TbBusiness> tbBusinessList = this.findOtherBusinessByCarId(businessCarId);
                         if (tbBusinessList.size() == 1 && dbBusinessCar.getRealInTime() == null) {
@@ -1003,12 +1052,8 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
             } else {
                 TbBusinessCar checkCar = tbBusinessCarService.findTheLastRecord(carNo);
                 //不存在或者已经离场的
-                if (checkCar == null ||
-                        (checkCar.getRealInTime() != null && checkCar.getRealOutTime() != null)) {
-                    checkCar = new TbBusinessCar();
-                    checkCar.setCreateTime(now).setPay(0).setBusinessType(1)
-                            .setConfirmJudge(CarEnum.ConfirmJudgeEnum.NO_JUDGE.getCode())
-                            .setNo(carBuseinssNo + RandomUtil.randomNumbers(4));
+                if (checkCar == null) {
+                    throw new AjaxError("车辆【" + carNo + "】未入场");
                 }
                 checkCar.setCarNo(carNo).setCarType(tbBusinessCar.getCarType()).setCarSize(tbBusinessCar.getCarSize())
                         .setNetWeight(tbBusinessCar.getNetWeight()).setCustomerId(dbBusiness.getCustomerId())
@@ -1022,7 +1067,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
         }
         if (!StrUtil.equals(dbBusiness.getGoodsId(), otherBusinessBO.getGoodsId())) {
             dbBusiness.setGoodsId(otherBusinessBO.getGoodsId())
-                    .setGoodsName(tbGoods.getName()).setPayStep(tbGoods.getPayStep());
+                    .setGoodsName(goodsName).setPayStep(tbGoods.getPayStep());
         }
         String customerId = otherBusinessBO.getCustomerId();
         if (StrUtil.isNotEmpty(customerId)) {
@@ -1037,7 +1082,7 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
 
         dbBusiness.setCardSize(otherBusinessBO.getCarSize()).setNetWeight(otherBusinessBO.getNetWeight())
                 .setOperator(otherBusinessBO.getOperator()).setOperateTime(otherBusinessBO.getOperateTime())
-                .setGoodsId(otherBusinessBO.getGoodsId())
+                .setGoodsId(otherBusinessBO.getGoodsId()).setGoodsCode(tbGoods.getCode()).setGoodsName(goodsName)
                 .setOwner(otherBusinessBO.getOwner()).setBusinessGoodsName(otherBusinessBO.getBusinessGoodsName())
                 .setBusinessGoodsNum(otherBusinessBO.getBusinessGoodsNum())
                 .setCardNo(otherBusinessBO.getCardNo());
@@ -1689,9 +1734,15 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
         //其他费项 装卸业务管理费” 进行预存款扣除
         for (TbBusinessItem item : tbBusinessItems) {
             String aliasName = item.getItemAlias();
-            if (StrUtil.equals(aliasName, SystemObject.config.getColdItemAlias())) {
+            //充电打冷,正面吊(取柜)必须得有开始时间+结束时间
+            if (StrUtil.equals(aliasName, SystemObject.config.getColdItemAlias())
+                    || (StrUtil.equals(aliasName, SystemObject.config.getEmptyStoreItemAlias())
+                    && item.getCabinetType() == 1)
+                    || (StrUtil.equals(aliasName, SystemObject.config.getHeavyStoreItemAlias())
+                    && item.getCabinetType() == 1)
+            ) {
                 if (item.getColdStartTime() == null || item.getColdEndTime() == null) {
-                    throw new AjaxError("请先录入打冷开始/结束时间");
+                    throw new AjaxError("请先点击【修改】,然后录入业务开始/结束时间");
                 }
             }
             //业务类型是装卸业务管理费且未支付的进行扣款

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

@@ -158,6 +158,12 @@ public class TbBusinessCarController {
         return AjaxJson.getSuccess();
     }
 
+    /**
+     * 更改放行记录
+     * @param t
+     * @return
+     * @throws Exception
+     */
     @RequestMapping("updateCarRecord")
     @SaCheckPermission(TbBusinessCar.PERMISSION_EDIT)
     public AjaxJson updateCarRecord(TbBusinessCar t) throws Exception {

+ 31 - 17
sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarService.java

@@ -280,9 +280,12 @@ public class TbBusinessCarService extends ServiceImpl<TbBusinessCarMapper, TbBus
             db.setInTimeSupplement(1).setInTimeSupplementTime(new Date());
             t.setInTimeSupplement(1).setInTimeSupplementTime(new Date());
         }
-        if (t.getRealInTime() != null && t.getRealOutTime() != null
-                && StrUtil.equals(db.getPayType(), CarEnum.PayTypeEnum.NO_PAY_TYPE.getType())) {
+        if (t.getRealInTime() != null && t.getRealOutTime() != null) {
             BigDecimal money = tbBusinessService.getPartMoney(t.getRealInTime(), t.getRealOutTime(), t.getCarNo(), t.getColor()).getTotalOrderPrice();
+            if (money.compareTo(BigDecimal.ZERO)==0){
+                t.setPayType(CarEnum.PayTypeEnum.FEE_TYPE.getType());
+                db.setPayType(CarEnum.PayTypeEnum.FEE_TYPE.getType());
+            }
             t.setMoney(money);
             db.setMoney(money);
         }
@@ -298,6 +301,31 @@ public class TbBusinessCarService extends ServiceImpl<TbBusinessCarMapper, TbBus
                 .setRemark(t.getRemark())
                 .setOutRemark(t.getOutRemark())
                 .setTimeUpdate(now);
+        if (db.getRealInTime() != null && db.getRealOutTime() != null) {
+            //对应的业务
+            List<TbBusiness> businessList = tbBusinessService.findOtherBusinessByCarId(t.getId());
+            for (TbBusiness tbBusiness : businessList) {
+                List<TbBusinessItem> businessItemList = tbBusinessItemService.findByBusinessId(tbBusiness.getId());
+                for (TbBusinessItem tbBusinessItem : businessItemList) {
+                    String aliasName = tbBusinessItem.getItemAlias();
+                    //如果是大头车,则计算业务费用===>同时免收停车费
+                    if (StrUtil.equals(SystemObject.config.getBigHeadCar(), aliasName)
+                    ||StrUtil.equals(SystemObject.config.getCabinetCar(), aliasName)) {
+                        tbBusinessItem.setColdStartTime(db.getRealInTime()).setColdEndTime(db.getRealOutTime());
+                        db.setPayType(CarEnum.PayTypeEnum.FEE_TYPE.getType()).setPay(1).setMoney(BigDecimal.ZERO);
+                        List<IOrderItem> expenses = new ArrayList<>();
+                        tbBusinessItemService.buildExpenses(Collections.singletonList(tbBusinessItem), expenses);
+                        if (!expenses.isEmpty()){
+                            IOrderPriceRes res = syncService.orderPriceCal(expenses);
+                            tbBusinessItem.setTotal(res.getTotalOrderPrice());
+                            tbBusiness.setItemPrice(res.getTotalOrderPrice());
+                            tbBusinessItemService.updateById(tbBusinessItem);
+                        }
+                    }
+                }
+                tbBusinessService.updateById(tbBusiness);
+            }
+        }
         //车牌没改
         if (StrUtil.equals(oldCarNo, newCarNo)) {
             tbBusinessCarMapper.updateRecord(db);
@@ -314,22 +342,8 @@ public class TbBusinessCarService extends ServiceImpl<TbBusinessCarMapper, TbBus
         }
         db.setCarNo(newCarNo);
         tbBusinessCarMapper.updateRecord(t);
-        List<TbBusiness> businessList = tbBusinessService.findOtherBusinessByCarId(t.getId());
-        String carStr = StrUtil.sub(newCarNo, 0, 1);
-        for (TbBusiness tbBusiness : businessList) {
-            if (!CAR_LIST.contains(carStr)) {
-                tbBusiness.setCardNo(newCarNo);
-            } else {
-                List<TbBusinessCar> cars = this.findOtherBusinessCar(t.getBusinessId());
-                String chinaCarNo = cars.stream().filter(obj -> CAR_LIST.contains(obj.getCarNo().substring(0, 1))).map(TbBusinessCar::getCarNo).collect(Collectors.joining("、"));
-                tbBusiness.setChinaCarNo(chinaCarNo);
-            }
-            tbBusinessService.updateById(tbBusiness);
 
-            List<TbFeeDetails> feeDetailsLIst = tbFeeDetailsService.getByBusinessIdAndCarNo(tbBusiness.getId(), oldCarNo);
-            feeDetailsLIst.forEach(fee -> fee.setCarNo(newCarNo));
-            tbFeeDetailsService.updateBatchById(feeDetailsLIst);
-        }
+
     }
 
     public List<TbBusinessCar> findTheNoBusinessCar(String carNo) {

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

@@ -146,6 +146,14 @@ public class TbBusinessItem extends Model<TbBusinessItem> implements Serializabl
 	 */
 	private String itemAlias;
 	/**
+	 * 开始时间图片
+	 */
+	private String startImage;
+	/**
+	 * 结束时间图片
+	 */
+	private String endImage;
+	/**
 	 * 打冷开始时间
 	 */
 	private Date coldStartTime;
@@ -174,6 +182,9 @@ public class TbBusinessItem extends Model<TbBusinessItem> implements Serializabl
 	@TableField(exist = false)
 	private String chinaCarNo;
 
+	@TableField(exist = false)
+	private String customerName;
+
 
 
 

+ 8 - 0
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemController.java

@@ -105,6 +105,14 @@ public class TbBusinessItemController {
         List<TbBusinessItem> list = tbBusinessItemService.getList(so.startPage());
         return AjaxJson.getPageData(so.getDataCount(), list);
     }
+    @RequestMapping("getCabinetRecord")
+    public AjaxJson getCabinetRecord(){
+        SoMap so = SoMap.getRequestSoMap();
+        List<TbBusinessItem> list = tbBusinessItemService.getCabinetRecord(so.startPage());
+        return AjaxJson.getPageData(so.getDataCount(), list);
+    }
+
+
 
     @RequestMapping("pickList")
     public AjaxJson pickList() {

+ 1 - 0
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemMapper.java

@@ -31,4 +31,5 @@ public interface TbBusinessItemMapper extends BaseMapper<TbBusinessItem> {
     List<TbBusinessItem> getList(SoMap so);
 
 
+    List<TbBusinessItem> getCabinetRecord(SoMap soMap);
 }

+ 18 - 0
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemMapper.xml

@@ -79,6 +79,24 @@
             <otherwise>a.id desc</otherwise>
         </choose>
     </select>
+    <select id="getCabinetRecord" resultType="com.pj.project.tb_business_item.TbBusinessItem">
+        select a.* ,b.goods_name,b.card_no,b.customer_name
+        from tb_business_item a,tb_business b where a.business_id=b.id
+        and a.cabinet_type !=-1
+        <if test="cabinetNo !=null and cabinetNo !=''">
+            and a.cabinet_no like concat('%',#{cabinetNo},'%')
+        </if>
+        <if test="carNo !=null and carNo !=''">
+            and b.card_no like concat('%',#{carNo},'%')
+        </if>
+        <if test="customerName !=null and customerName !=''">
+            and b.customer_name like concat('%',#{customerName},'%')
+        </if>
+        <if test="pickCustomerName !=null and pickCustomerName !=''">
+            and b.pick_customer_name like concat('%',#{pickCustomerName},'%')
+        </if>
+        order  by a.id desc
+    </select>
 
 
 </mapper>

+ 66 - 6
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemService.java

@@ -49,6 +49,9 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.io.File;
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
@@ -108,11 +111,33 @@ public class TbBusinessItemService extends ServiceImpl<TbBusinessItemMapper, TbB
 
 
     public void removeByBusinessId(String businessId) {
+        List<TbBusinessItem>list=this.findByBusinessId(businessId);
+        for (TbBusinessItem tbBusinessItem : list) {
+            TbBusinessItem childItem= this.findByParentCabinetId(tbBusinessItem.getId());
+            if (childItem!=null){
+                throw new AjaxError("柜号["+tbBusinessItem.getCabinetNo()+"]存在取柜关联,不能删除");
+            }
+            if (tbBusinessItem.getParentCabinetId()!=null){
+              TbBusinessItem pItem=  this.getById(tbBusinessItem.getParentCabinetId());
+              if (pItem!=null){
+                  //设置成未取柜
+                  pItem.setCabinetStatus(0);
+                  this.updateById(pItem);
+              }
+            }
+
+        }
         QueryWrapper<TbBusinessItem> ew = new QueryWrapper<>();
         ew.eq("business_id", businessId);
         this.remove(ew);
     }
 
+    private TbBusinessItem findByParentCabinetId(Long id) {
+        QueryWrapper<TbBusinessItem> ew = new QueryWrapper<>();
+        ew.lambda().eq(TbBusinessItem::getParentCabinetId,id);
+        return getOne(ew);
+    }
+
     public List<TbBusinessItem> findByBusinessId(String businessId) {
         QueryWrapper<TbBusinessItem> ew = new QueryWrapper<>();
         ew.eq("business_id", businessId);
@@ -325,7 +350,9 @@ public class TbBusinessItemService extends ServiceImpl<TbBusinessItemMapper, TbB
                 }
                 //空柜堆存、重箱堆存
                 buildDaysFceItem(item, orderItem, startTime, endTime);
-            }else if (StrUtil.equals(itemAlias,SystemObject.config.getBigHeadCar())){
+            }else if (StrUtil.equals(itemAlias,SystemObject.config.getBigHeadCar())
+                    ||StrUtil.equals(itemAlias,SystemObject.config.getCabinetCar())){
+                //大车头、柜车、栏车
                 buildDaysFceItem(item, orderItem, startTime, endTime);
             }
             orderItem.setUniqExpenseId(item.getItemCode())
@@ -343,23 +370,53 @@ public class TbBusinessItemService extends ServiceImpl<TbBusinessItemMapper, TbB
         if (startTime == null || endTime == null) {
             throw new BusinessException("时间未设置");
         }
-        long hour = DateUtil.between(startTime, endTime, DateUnit.HOUR);
-        long days = (hour / 24) + 1;
+        long minutes = DateUtil.between(startTime, endTime, DateUnit.MINUTE);
+        int base=24*60;
+        //整数天数
+        long days=minutes/base;
+        //余数
+        if (minutes%base>0){
+            days=days+1;
+        }
         IFactorItem factorItem = new IFactorItem();
         factorItem.setFacId(tbItemFac.getFacId() + "").setFacParams(days + "");
         orderItem.setFactors(Collections.singletonList(factorItem));
     }
 
+    public static void main(String[] args) {
+        Date startTime=DateUtil.parseDateTime("2023-05-05 00:00:00");
+        Date endTime=DateUtil.parseDateTime("2023-05-06 00:11:00");
+       LocalDateTime start= startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+       LocalDateTime end= endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+       long m= ChronoUnit.MINUTES.between(start,end);
+        long minutes = DateUtil.between(startTime, endTime,DateUnit.MINUTE);
+        int base=60;
+        //整数天数
+        long hour=minutes/base;
+        //余数
+        if (minutes%base>0){
+            hour=hour+1;
+        }
+        System.out.println(hour);
+    }
+
     public void buildColdFceItem(TbBusinessItem item, IOrderItem orderItem, Date startTime, Date endTime) {
         String uniqExpenseId = item.getItemCode();
         TbItemFac tbItemFac = tbItemFacService.findByItemIdAndUniqExpenseId(item.getItemId(), uniqExpenseId);
         if (tbItemFac == null) {
-            throw new BusinessException("充电打冷收费规则未配置");
+            throw new AjaxError("充电打冷收费规则未配置");
         }
         if (startTime == null || endTime == null) {
-            throw new BusinessException("充电打冷时间未设置");
+            throw new AjaxError("充电打冷时间未设置");
+        }
+        long minutes = DateUtil.between(startTime, endTime, DateUnit.MINUTE);
+        int base=60;
+        //整数天数
+        long hour=minutes/base;
+        //余数
+        if (minutes%base>0){
+            hour=hour+1;
         }
-        long hour = DateUtil.between(startTime, endTime, DateUnit.HOUR) + 1;
         IFactorItem factorItem = new IFactorItem();
         factorItem.setFacId(tbItemFac.getFacId() + "").setFacParams(hour + "");
         orderItem.setFactors(Collections.singletonList(factorItem));
@@ -375,4 +432,7 @@ public class TbBusinessItemService extends ServiceImpl<TbBusinessItemMapper, TbB
     }
 
 
+    public List<TbBusinessItem> getCabinetRecord(SoMap soMap) {
+        return tbBusinessItemMapper.getCabinetRecord(soMap);
+    }
 }

+ 10 - 9
sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetailsService.java

@@ -278,6 +278,7 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
             if (StrUtil.isEmpty(carNo)) {
                 carNo = business.getChinaCarNo();
             }
+            int num = item.getTotal().divide(item.getItemPrice(),1,BigDecimal.ROUND_UP).intValue();
             TbGoods businessCfg = tbGoodsService.getById(business.getGoodsId());
             if ((GoodsEnum.LeaveEnum.APART_BUSINESS.getCode().equals(businessCfg.getChinaCarLeave()))
                     && GoodsEnum.LeaveEnum.PART_MONEY.getCode().equals(businessCfg.getVietnamCarLeave())) {
@@ -299,7 +300,7 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
                     .setBusinessItemNo(item.getNo()).setBusinessCarId(businessCarIds).setBusinessCarNo(businessCarNos)
                     .setCarNo(carNo).setCalculateId(item.getCalculateId())
                     .setItemPrice(item.getTotal()).setUnitPrice(item.getItemPrice()).setNoTaxPrice(noTaxPrice).setTaxPrice(taxPrice)
-                    .setFeeType(feeType)
+                    .setFeeType(feeType).setNum(num)
                     .setItemTypeId(item.getItemTypeId()).setItemTypeName(item.getItemTypeName())
                     .setItemId(item.getItemId()).setItemName(item.getItemName())
                     .setPayDay(toDay).setPayType(payType.getCode()).setCreateTime(now).setUpdateTime(now)
@@ -308,7 +309,6 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
                     .setCustomerName(business.getCustomerName())
                     .setIsSettle(1).setPayMode(1).setPayTime(nowStr)
                     .setTransactionId(transactionId).setOutTradeNo(outTradeNo)
-                    .setNum(Integer.valueOf(item.getNum()))
                     .setModule(module);
             String type = StrUtil.isEmpty(businessFeeDetail.getId()) ? SyncTypeEnum.INSERT.getCode() : SyncTypeEnum.UPDATE.getCode();
             saveOrUpdate(businessFeeDetail);
@@ -320,16 +320,17 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
 
     /**
      * 预充值支付明细保存
+     *
      * @param item
      * @param tbBusinessCar
      * @param business
      * @return
      */
-    public TbFeeDetails savePrePayDetails(IOrderPriceRes res, TbBusinessItem item, TbBusinessCar tbBusinessCar, TbBusiness business, FeeTypeEnum feeTypeEnum){
-        Integer feeType =feeTypeEnum.getCode();
+    public TbFeeDetails savePrePayDetails(IOrderPriceRes res, TbBusinessItem item, TbBusinessCar tbBusinessCar, TbBusiness business, FeeTypeEnum feeTypeEnum) {
+        Integer feeType = feeTypeEnum.getCode();
         Double taxRate = item.getTaxRate();
-        BigDecimal totalPrice=res.getTotalOrderPrice();
-        Date now=new Date();
+        BigDecimal totalPrice = res.getTotalOrderPrice();
+        Date now = new Date();
         //添加此item的收费明细
         TbFeeDetails businessFeeDetail = new TbFeeDetails();
         businessFeeDetail.setTaxRate(BigDecimal.valueOf(taxRate));
@@ -359,15 +360,15 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
     }
 
     public List<TbFeeDetails> savePrePayDetails(IOrderPriceRes res, List<TbBusinessItem> itemList, TbBusinessCar tbBusinessCar, TbBusiness business, FeeTypeEnum feeTypeEnum) {
-        List<TbFeeDetails> feeDetailsList=new ArrayList<>();
+        List<TbFeeDetails> feeDetailsList = new ArrayList<>();
         for (TbBusinessItem item : itemList) {
-            TbFeeDetails  feeDetails=  savePrePayDetails(res, item, tbBusinessCar, business, feeTypeEnum);
+            TbFeeDetails feeDetails = savePrePayDetails(res, item, tbBusinessCar, business, feeTypeEnum);
             feeDetailsList.add(feeDetails);
         }
         return feeDetailsList;
     }
 
-        public String export(SoMap so) {
+    public String export(SoMap so) {
         Date now = new Date();
         String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm");
         String beginTime = so.getString("beginTime");

+ 15 - 3
sp-server/src/main/java/com/pj/project/tb_item/TbItem.java

@@ -60,7 +60,7 @@ public class TbItem extends Model<TbItem> implements Serializable {
     /**
      * 项目金额(元)
      */
-    private BigDecimal price;
+    private BigDecimal price=BigDecimal.ZERO;
     private String unit;
     private double carLength;
     private double maxWeight;
@@ -82,7 +82,7 @@ public class TbItem extends Model<TbItem> implements Serializable {
     private Double taxRate;
     private String typeName;
     private String itemAlias;
-
+    private String pattern;
     @TableField(exist = false)
     private List<TbItemFac> facList = new ArrayList<>();
 
@@ -94,6 +94,9 @@ public class TbItem extends Model<TbItem> implements Serializable {
     private String cabinetNo;
 
     @TableField(exist = false)
+    private String businessItemId;
+
+    @TableField(exist = false)
     private int cabinetType=-1;
 
     @TableField(exist = false)
@@ -118,6 +121,15 @@ public class TbItem extends Model<TbItem> implements Serializable {
 
     @TableField(exist = false)
     private int inc;
-
+    /**
+     * 开始时间图片
+     */
+    @TableField(exist = false)
+    private String startImage;
+    /**
+     * 结束时间图片
+     */
+    @TableField(exist = false)
+    private String endImage;
 
 }

+ 3 - 1
sp-server/src/main/java/com/pj/project/tb_item/TbItemService.java

@@ -139,6 +139,7 @@ public class TbItemService extends ServiceImpl<TbItemMapper, TbItem> implements
         if (tbItem == null) {
             tbItem = new TbItem();
         }
+        tbItem.setPattern(item.getPattern());
         String payType = tbItemType.getPayType();
         tbItem.setPayType(Integer.parseInt(payType))
                 .setPayTypeName(tbItemType.getPayTypeName());
@@ -182,7 +183,7 @@ public class TbItemService extends ServiceImpl<TbItemMapper, TbItem> implements
     private void doHanlder(List<IrulesItem> rules, TbItem tbItem, String uniqueExpenseId) {
         rules.forEach(irulesItem -> {
             Long facId = irulesItem.getFacId();
-            TbItemFac tbItemFac = tbItemFacService.getByFaceIdAnd(facId,uniqueExpenseId);
+            TbItemFac tbItemFac = tbItemFacService.getByFaceIdAnd(facId, uniqueExpenseId);
             if (tbItemFac == null) {
                 tbItemFac = new TbItemFac();
             }
@@ -262,6 +263,7 @@ public class TbItemService extends ServiceImpl<TbItemMapper, TbItem> implements
 
     /**
      * 根据变量名查询
+     *
      * @param itemAlias
      * @return
      */

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

@@ -84,7 +84,10 @@ public class TbItemType extends Model<TbItemType> implements Serializable {
      */
     private String payType = "0";
     private String payTypeName;
-
+    /**
+     * 统一计费中心编号
+     */
+    private String aliasName;
 
     @TableField(exist = false)
     private List<TbItem> items = new ArrayList<>();

+ 11 - 3
sp-server/src/main/java/com/pj/project/tb_item_type/TbItemTypeService.java

@@ -185,6 +185,8 @@ public class TbItemTypeService extends ServiceImpl<TbItemTypeMapper, TbItemType>
         log.info("解密业务类型:{}", JSONUtil.toJsonStr(itemTypeBO));
         String type = itemTypeBO.getSyncType();
         String code = itemTypeBO.getKeyId();
+        String aliasName = itemTypeBO.getAliasName();
+        String label = itemTypeBO.getLabel();
         TbItemType db = findByCode(code);
         int state = itemTypeBO.getState() == 0 ? 1 : 0;
         Date now = new Date();
@@ -196,14 +198,14 @@ public class TbItemTypeService extends ServiceImpl<TbItemTypeMapper, TbItemType>
             }
         } else if (StrUtil.equals(type, SyncTypeEnum.UPDATE.getCode())) {
             if (db != null) {
-                db.setStatus(state);
+                db.setStatus(state).setPayTypeName(label)
+                        .setName(itemTypeBO.getKeyName()).setAliasName(aliasName);
                 updateById(db);
             }
         } else {
             if (db == null) {
                 db = new TbItemType();
             }
-            String label = itemTypeBO.getLabel();
             TbFeeItem tbFeeItem = tbFeeItemService.findByName(label.trim());
             if (tbFeeItem == null) {
                 tbFeeItem = new TbFeeItem();
@@ -211,7 +213,7 @@ public class TbItemTypeService extends ServiceImpl<TbItemTypeMapper, TbItemType>
                 tbFeeItemService.save(tbFeeItem);
             }
             db.setSyncTime(now).setName(itemTypeBO.getKeyName()).setStatus(state).setCode(code)
-                    .setPayType(tbFeeItem.getId() + "").setPayTypeName(label)
+                    .setPayType(tbFeeItem.getId() + "").setPayTypeName(label).setAliasName(aliasName)
                     .setStartTime(itemTypeBO.getStartTime()).setEndTime(itemTypeBO.getEndTime());
             String partnerIds = itemTypeBO.getPartnersId();
             if (StrUtil.isNotEmpty(partnerIds)) {
@@ -229,6 +231,12 @@ public class TbItemTypeService extends ServiceImpl<TbItemTypeMapper, TbItemType>
 
     }
 
+    public TbItemType findByAliasName(String aliasName) {
+        QueryWrapper<TbItemType>ew=new QueryWrapper<>();
+        ew.lambda().eq(TbItemType::getAliasName,aliasName);
+        return getOne(ew);
+    }
+
     private void removeByCode(String code) {
         QueryWrapper<TbItemType> ew = new QueryWrapper<>();
         ew.lambda().eq(TbItemType::getCode, code);

+ 3 - 2
sp-server/src/main/resources/application-dev.yml

@@ -6,9 +6,9 @@ spring:
     # 数据源配置
     datasource:
         type: com.alibaba.druid.pool.DruidDataSource
-        url: jdbc:mysql://47.101.143.145:3306/pco?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
         username: root
-        password: 1qaz@WSX
+        password: 123456
         # 是否打开sql监控台  (生产环境请务必关闭此选项)
         druid:
             stat-view-servlet:
@@ -61,6 +61,7 @@ spring:
         empty-condole-item-alias: emptyCondole #集装箱吊装 (重 柜 )
         heavy-condole-item-alias: heavyCondole    #集装箱吊装 (空 柜 )
         big-head-car: bigHeadCar #大头车 --->按天收费
+        cabinet-car: cabinetCar #柜车、栏车
 part-config:
     base-price: 30 #基础费用
     extra-price: 10 #过夜额外收费