Browse Source

去掉车辆审核内容

qzyReal 2 years ago
parent
commit
312533879a

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

@@ -0,0 +1,286 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>入境登记-详情</title>
+		<meta http-equiv="Content-Type" content="text/html; 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/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+		<script src="../../static/sa.js"></script>
+		<script src="../../static/kj/upload-util.js"></script>
+		<style type="text/css">
+			.c-panel .c-label {
+				width: 8em;
+			}
+		</style>
+	</head>
+	<body>
+		<div class="vue-box sbot" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<div class="c-panel">
+					<el-form v-if="m">
+						<el-row>
+							<el-collapse value='1'>
+								<el-collapse-item name="1">
+									<div slot="title">
+										基础资料
+									</div>
+									<div>
+										<el-row>
+											<el-col span="8">
+												<sa-info name="客户名称" br v-if="m.customerName">{{m.customerName}}
+												</sa-info>
+												<sa-info name="业务项目" br>{{m.goodsName}}</sa-info>
+												<!-- <sa-info name="作业时间" br>{{m.operateTime}}</sa-info> -->
+												<sa-info name="业务费用" br>{{m.itemPrice}}(元)</sa-info>
+												<sa-info name="货物名称" br v-if="m.businessGoodsName">
+													{{m.businessGoodsName}}
+												</sa-info>
+												<sa-info name="数量(件)" br v-if="m.businessGoodsNum">
+													{{m.businessGoodsNum}}
+												</sa-info>
+												<sa-info name="补录人" br v-if="m.supplementBy">{{m.supplementBy}}
+												</sa-info>
+												<sa-info name="补录时间" br v-if="m.supplementTime">{{m.supplementTime}}
+												</sa-info>
+												<sa-info name="补录原因" br v-if="m.supplementReason">{{m.supplementReason}}
+												</sa-info>
+												<sa-info type="enum" name="OA流程" :value="m.sendOa"
+													:jv="{0: '未发起', 1: '已发起'}" br v-if="m.supplementTime">
+												</sa-info>
+
+											</el-col>
+											<el-col span="8">
+												<sa-info name="企业" br v-if="m.pickCustomerName">{{m.pickCustomerName}}
+												</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 style="margin-top: 0;" type="enum" name="支付状态"
+													:value="m.payStatus" :jv="{1: '未支付', 2: '已支付未确认', 3: '已支付'}">
+												</sa-info>
+												<sa-info name="已支付金额(元)" br>{{m.payMoney}}</sa-info>
+												<sa-info name="支付时间" br>{{m.payTime}}</sa-info>
+												<sa-info name="发起人" br v-if="m.sendBy">{{m.sendBy}}</sa-info>
+												<sa-info name="发起时间" br v-if="m.sendTime">{{m.sendTime}}</sa-info>
+												<sa-info name="审批结果" br v-if="m.oaResult">{{m.oaResult}}</sa-info>
+												<sa-info name="审批意见" br v-if="m.oaContent">{{m.oaContent}}</sa-info>
+											</el-col>
+											<el-col span=8 >
+												<sa-info style="margin-top: 0;" type="enum" name="审核状态" :value="m.confirmJudge"
+													:jv="{0: '未审核', 1: '审核通过', 2: '审核驳回'}" br>
+												</sa-info>
+												<sa-info style="margin-top: 0;" name="审核人" br>
+													{{m.judgeBy}}
+												</sa-info>
+												<sa-info name="审核时间" br>{{m.confirmJudgeTime}}</sa-info>
+												<sa-info name="审核意见" br v-if="m.confirmJudgeContent">
+													{{m.confirmJudgeContent}}
+												</sa-info>
+											</el-col>
+										</el-row>
+									</div>
+								</el-collapse-item>
+							</el-collapse>
+
+						</el-row>
+						<el-row>
+							<el-collapse value='1'>
+								<el-collapse-item name="1">
+									<div slot="title">
+										车辆信息
+									</div>
+									<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="载重(kg)" prop="netWeight"></sa-td>
+										<sa-td name="规格(米)" prop="carSize"></sa-td>
+										<sa-td name="入场时间" prop="realInTime" width=180></sa-td>
+										<sa-td name="离场时间" prop="realOutTime" width=180></sa-td>
+										<el-table-column label="停车费">
+											<template slot-scope="s">
+												<label v-if="s.row.money">{{s.row.money}}</label>
+												<label v-else>-</label>
+											</template>
+										</el-table-column>
+										<sa-td width="130" name="支付状态" prop="payType">
+										</sa-td>
+										<el-table-column prop="payTime" label="支付时间" width="150">
+										</el-table-column>
+									</el-table>
+								</el-collapse-item>
+							</el-collapse>
+						</el-row>
+						<el-row>
+							<div style="display: flex;margin-top: 10px;">
+								<div>
+									具体业务项
+									<label
+										style="color: red; font-weight: bold;margin-left: 20px;">合计:({{m.itemPrice}}元)
+									</label>
+								</div>
+								<div>
+									<el-button v-if="sa.isAuth('tb-business-item-supplement&&m.hasError==1')" type="primary"
+										style="position: absolute;right: 40px;" @click="supplementFn">补录单
+									</el-button>
+								</div>
+							</div>
+							<el-table :data="tableData" style="width: 100%;margin-top: 20px;">
+								<el-table-column prop="itemTypeName" label="业务类型" width="180">
+								</el-table-column>
+								<el-table-column prop="itemName" label="车型" width="180">
+								</el-table-column>
+								<el-table-column prop="itemPrice" label="单价">
+								</el-table-column>
+								<el-table-column prop="unit" label="计费标准">
+								</el-table-column>
+								<el-table-column prop="cabinetNo" label="柜号">
+									
+								</el-table-column>
+								<el-table-column prop="num" label="数量">
+								</el-table-column>
+								<el-table-column prop="total" label="合计">
+								</el-table-column>
+								<sa-td width="120" name="支付状态" prop="payStatus" type="enum"
+									:jv="{0: '未支付[#ff0000]', 1: '已支付[#005500]', 4: '已退款[#ff0000]'}">
+								</sa-td>
+								<el-table-column prop="refundMoney" label="退款金额">
+								</el-table-column>
+								<el-table-column prop="payTime" label="支付时间" width="150">
+								</el-table-column>
+								<sa-td width="120" name="订单状态" prop="hasError" type="enum"
+									:jv="{0: '正常[#005500]', 1: '异常[#ff0000]'}">
+								</sa-td>
+								<el-table-column label="操作" width="60px" fixed="right">
+									<template slot-scope="s">
+										<el-button class="c-btn" type="warning" v-if="s.row.payStatus==0"
+											@click="delFn(s.row)">
+											删除
+										</el-button>
+									</template>
+								</el-table-column>
+							</el-table>
+						</el-row>
+					</el-form>
+				</div>
+			</div>
+			<!-- ------- 底部按钮 ------- -->
+			<div class="s-foot">
+				<!-- <el-button class="c-btn" type="success" icon="el-icon" @click="print()">打印单据</el-button> -->
+				<el-button v-if="sa.isAuth('tb-flex-business-judge')&&m.confirmJudge!=1"
+					class="c-btn" type="success" icon="el-icon" @click="pass()">审核通过</el-button>
+			<!-- 	<el-button v-if="sa.isAuth('tb-flex-business-judge')&&m.confirmJudge==1"
+					class="c-btn" type="warning" icon="el-icon" @click="callback()">审核驳回</el-button> -->
+				<el-button type="success" @click="sa.closeCurrIframe()">关闭</el-button>
+			</div>
+
+			<el-dialog title="上传凭据" :visible.sync="upload.visible" width="400">
+				<el-form>
+					<sa-item type="img-list" name="凭据图片" v-model="upload.form.ticket" br></sa-item>
+				</el-form>
+				<span slot="footer" class="dialog-footer">
+					<el-button @click="upload.visible=false">取 消</el-button>
+					<el-button type="primary" @click="ok()">确 定</el-button>
+				</span>
+			</el-dialog>
+
+		</div>
+		<script>
+			var app = new Vue({
+				components: {
+					"sa-info": httpVueLoader('../../sa-frame/com/sa-info.vue'),
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),
+					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),
+				},
+				el: '.vue-box',
+				data: {
+					id: sa.p('id', 0), // 获取数据ID
+					m: {},
+					tableData: [],
+					upload: {
+						visible: false,
+						form: {
+							id: '',
+							ticket: ''
+						}
+					}
+				},
+				methods: {
+					pass() {
+						sa.ajax('/TbBusiness/confirmJudgePass', {
+							id: this.id
+						}, function(res) {
+							sa.alert('审核通过', this.clean);
+						}.bind(this))
+					},
+					callback() {
+						let that = this;
+						layer.prompt({
+							title: '填写审核意见'
+						}, function(content, index) {
+							layer.close(index);
+							sa.ajax('/TbBusiness/callback', {
+								id: that.id,
+								judgeContent: content
+							}, function(res) {
+								sa.alert('已驳回', that.clean);
+							})
+						});
+					},
+					clean() {
+						parent.app.f5();
+						sa.closeCurrIframe();
+					},
+					delFn(data) {
+						sa.confirm('是否确认删除该收费项?', function() {
+							sa.ajax('/TbBusinessItem/del', {
+								id: data.id
+							}, function(res) {
+								sa.alert('已删除', this.getInfo());
+							}.bind(this));
+						}.bind(this));
+					},
+					print: function() {
+						sa.showIframe('打印收费单据', 'print.html?id=' + this.id, '1000px', '100%');
+					},
+					uploadFn(data) {
+						Object.assign(this.upload, {
+							visible: true,
+							form: data
+						})
+					},
+					del(data) {
+						sa.confirm('是否确认删除该收费项?', function() {
+							sa.ajax('/TbBusinessItem/del', {
+								id: data.id
+							}, function(res) {
+								sa.alert('已删除', this.getInfo());
+							}.bind(this));
+						}.bind(this));
+					},
+					supplementFn() {
+						sa.showIframe('补交费', 'tb-business-item-supplement.html?id=' + this.m.id, '600px', '70%');
+					},
+					getInfo() {
+						sa.ajax('/TbBusiness/getOtherBusinessById?id=' + this.id, function(res) {
+							this.m = res.data;
+							this.tableData = res.data.items;
+						}.bind(this))
+					}
+				},
+				mounted: function() {
+					this.getInfo()
+				}
+			})
+		</script>
+	</body>
+</html>

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

@@ -109,15 +109,15 @@
 					<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>
-					<el-table-column label="操作" width="230px" fixed="right">
+					<el-table-column label="操作" width="260px" fixed="right">
 						<template slot-scope="s">
 							<!-- <el-button class="c-btn" type="primary" v-if="sa.isAuth('tb-flex-business-confirm')
 								&&currentCustomerId=='1'&&s.row.adminConfirmInput==0" @click="confirmFn(s.row)">账单确认
 							</el-button> -->
 							
-							<el-button class="c-btn" type="primary" v-if="sa.isAuth('tb-business-confirm')
+							<!-- <el-button class="c-btn" type="primary" v-if="sa.isAuth('tb-business-confirm')
 									&&currentCustomerId=='1'&&s.row.adminConfirmInput==1" @click="checkConfirmFn(s.row)">查看账单
-							</el-button>
+							</el-button> -->
 							<el-button class="c-btn" type="success" @click="get(s.row)">查看</el-button>
 							<el-button class="c-btn" type="success" v-if="sa.isAuth('tb-flex-business-judge')&&s.row.confirmJudge!=1" @click="pass(s.row)">审核</el-button>
 							<el-button class="c-btn" type="warning" v-if="sa.isAuth('tb-flex-business-judge')&&s.row.confirmJudge==1" @click="callback(s.row)">驳回</el-button>
@@ -245,11 +245,8 @@
 				},
 				methods: {
 					pass(data) {
-						sa.ajax('/TbBusiness/confirmJudgePass', {
-							id: data.id
-						}, function(res) {
-							sa.alert('审核通过', this.f5);
-						}.bind(this))
+						this.stopTimmer();
+						sa.showIframe('审核业务', 'tb-car-disincle-judge.html?id=' + data.id, '1150px', '90%');
 					},
 					callback(data) {
 						let that = this;

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

@@ -62,6 +62,9 @@ public class MyConfig {
      * 每辆车都收费
      */
     private List<String> everyCarPay;
-
+    /**
+     * 停车费变量名
+     */
+    private String partItemAlias;
 
 }

+ 4 - 0
sp-server/src/main/java/com/pj/project/sync/response/item/IExpenseItem.java

@@ -97,6 +97,10 @@ public class IExpenseItem {
      * 版本号
      */
     private String version;
+    /**
+     * 变量名
+     */
+    private String aliasName;
 
     /**
      * 多规格规则

+ 5 - 82
sp-server/src/main/java/com/pj/project/tb_business/TbBusinessService.java

@@ -354,7 +354,11 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
             res.setOver24Hour(1);
             res.setHourDesc(PartFeeEnum.OUT_24_HOURS.getDesc());
         }
-        List<TbItemFac> list = tbItemFacService.list();
+        TbItem partItem=tbItemService.findByAliasName(SystemObject.config.getPartItemAlias());
+        if (partItem==null) {
+            throw new AjaxError("未配置停车费规则");
+        }
+        List<TbItemFac> list = tbItemFacService.getByItemId(partItem.getId());
         if (list.isEmpty()) {
             throw new AjaxError("未配置停车费规则");
         }
@@ -393,44 +397,6 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
         return res;
     }
 
-    /**
-     * 停车费因子构建
-     * qzyReal:
-     * 时长---hour;车长--carSize
-     * qzyReal:
-     * 颜色--carColor
-     *
-     * @param iTime
-     * @param oTime
-     * @param carSize
-     * @return
-     */
-    public List<IOrderItem> getPartExpenses(Date iTime, Date oTime, double carSize) {
-        long minutes = DateUtil.between(iTime, oTime, DateUnit.MINUTE);
-        double hours = NumberUtil.div(minutes, 60, 1);
-        List<IOrderItem> expenses = new ArrayList<>();
-        TbItem tbItem = tbItemService.getPartItem();
-        if (tbItem == null) {
-            throw new AjaxError("未配置停车费规则");
-        }
-        IOrderItem orderItem = new IOrderItem();
-        orderItem.setUniqExpenseId(tbItem.getItemCode()).setExpenseNum(1);
-        List<TbItemFac> facList = tbItemFacService.getByItemId(tbItem.getId());
-        List<IFactorItem> factors = new ArrayList<>();
-        facList.forEach(tbItemFac -> {
-            String operator = tbItemFac.getOperator();
-            IFactorItem iFactorItem = new IFactorItem();
-            iFactorItem.setFacId(tbItemFac.getId());
-            if (StrUtil.equals(operator, "carSize")) {
-                iFactorItem.setFacParams(carSize + "");
-            } else if (StrUtil.equals(operator, "hour")) {
-                iFactorItem.setFacParams(hours + "");
-            }
-            factors.add(iFactorItem);
-        });
-        orderItem.setFactors(factors);
-        return expenses;
-    }
 
 
     /**
@@ -575,49 +541,6 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
         return result;
     }
 
-    /**
-     * 是否需要交入场管理费
-     *
-     * @param carNo
-     * @return
-     */
-    public ManagerBO needPayManagerMoney(String carNo, String carId, List<TbBusinessItem> items) {
-        ManagerBO dto = new ManagerBO();
-        List<String> needItemTypeList = SystemObject.config.getManagerItemType();
-        //是否有相关业务,,,没有的话直接不用交入场管理费
-        boolean before = items.stream().anyMatch(item -> needItemTypeList.contains(item.getItemTypeName()));
-        if (!before) {
-            return dto;
-        }
-        String carPrefix = StrUtil.sub(carNo, 0, 1);
-        boolean isvietnamCar = !CAR_LIST.contains(carPrefix);
-        List<Integer> managerList = SystemObject.config.getManagerMoney();
-        //越南车是否需要支付
-        boolean verNeePay = managerList.contains(ManagerEnum.VER_PAY.getType());
-        //中国车是否需要支付
-        boolean chinaNeePay = managerList.contains(ManagerEnum.CHINA_PAY.getType());
-        //是否需要支付入场管理费
-        boolean need = isvietnamCar && verNeePay || !isvietnamCar && chinaNeePay;
-        dto.setNeed(need);
-        if (need) {
-            //查询出对应的费项
-            TbItem tbItem = tbItemService.findByName(SystemObject.config.getManagerWord());
-            if (tbItem != null) {
-                List<IOrderItem> itemList = new ArrayList<>();
-                IOrderItem iOrderItem = new IOrderItem();
-                iOrderItem.setExpenseNum(1).setUniqExpenseId(tbItem.getItemCode());
-                itemList.add(iOrderItem);
-                IOrderPriceRes managerPriceRes = syncService.orderPriceCal(itemList);
-                dto.setCalculateId(managerPriceRes.getCalculateId())
-                        .setPrice(managerPriceRes.getTotalOrderPrice())
-                        .setCarNo(carNo).setId(tbItem.getId())
-                        .setLabel(tbItem.getItemName() + "(入场管理费)")
-                        .setName(tbItem.getItemName()).setCarId(carId);
-            }
-        }
-        return dto;
-    }
-
     public List<TbBusiness> findOtherBusinessByCarId(String businessCarId) {
         return tbBusinessMapper.findOtherBusinessByCarId(businessCarId);
     }

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

@@ -252,9 +252,6 @@ public class TbBusinessCarService extends ServiceImpl<TbBusinessCarMapper, TbBus
     public void updateCarRecord(TbBusinessCar t) throws Exception {
         String outRemark = t.getOutRemark();
         TbBusinessCar db = this.getById(t.getId());
-        if (db.getConfirmJudge() == CarEnum.ConfirmJudgeEnum.JUDGE_PASS.getCode()) {
-            throw new BusinessException("车辆【" + db.getCarNo() + "】已审核,请驳回再录入业务");
-        }
         if (StrUtil.isEmpty(outRemark) && !Objects.equals(t.getRealOutTime(), db.getRealOutTime())) {
             throw new Exception("补录离场时间,出场确认说明必填");
         }

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

@@ -84,6 +84,7 @@ public class TbItem extends Model<TbItem> implements Serializable {
     private String itemType;
     private Double taxRate;
     private String typeName;
+    private String itemAlias;
 
     @TableField(exist = false)
     private List<TbItemFac> facList = new ArrayList<>();

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

@@ -100,8 +100,8 @@ public class TbItemService extends ServiceImpl<TbItemMapper, TbItem> implements
      */
     public void receive(String request) {
         IExpenseItem iExpenseItem = helpService.deCrypte(request, IExpenseItem.class);
-        TbItemType tbItemType = tbItemTypeService.findByCode(iExpenseItem.getBizTypeNo());
         log.info("detail:{}", JSONUtil.toJsonStr(iExpenseItem));
+        TbItemType tbItemType = tbItemTypeService.findByCode(iExpenseItem.getBizTypeNo());
         if (tbItemType == null) {
             log.error("类型不存在");
             return;
@@ -146,7 +146,7 @@ public class TbItemService extends ServiceImpl<TbItemMapper, TbItem> implements
         tbItem.setItemCode(code).setItemName(name).setUnit(item.getExpenseUnit()).setStatus(1)
                 .setInc(1).setNeedRemark(0).setPrice(item.getFixedPrice()).setMinLength(0).setCarLength(25)
                 .setMinWeight(0).setMaxWeight(999999).setTaxRate(item.getTaxRate().doubleValue())
-                .setTypeId(typeId)
+                .setTypeId(typeId).setItemAlias(item.getAliasName())
                 .setTypeName(tbItemType.getName())
                 .setItemType(CarEnum.CarTypeEnum.EMPTY_TYPE.getDesc() + "," + CarEnum.CarTypeEnum.WEIGHT_TYPE.getDesc());
         String businessType = tbItemType.getBusinessType();
@@ -182,7 +182,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.getByFaceId(facId);
+            TbItemFac tbItemFac = tbItemFacService.getByFaceIdAnd(facId,uniqueExpenseId);
             if (tbItemFac == null) {
                 tbItemFac = new TbItemFac();
             }
@@ -259,4 +259,15 @@ public class TbItemService extends ServiceImpl<TbItemMapper, TbItem> implements
         List<TbItem> list = list(ew);
         return list.isEmpty() ? null : list.get(0);
     }
+
+    /**
+     * 根据变量名查询
+     * @param itemAlias
+     * @return
+     */
+    public TbItem findByAliasName(String itemAlias) {
+        QueryWrapper<TbItem> ew = new QueryWrapper<>();
+        ew.lambda().eq(TbItem::getItemAlias, itemAlias);
+        return getOne(ew);
+    }
 }

+ 6 - 0
sp-server/src/main/java/com/pj/project/tb_item_fac/TbItemFacService.java

@@ -39,11 +39,17 @@ public class TbItemFacService extends ServiceImpl<TbItemFacMapper, TbItemFac> im
         return list(ew);
     }
 
+    @Deprecated
     public TbItemFac getByFaceId(Long facId) {
         QueryWrapper<TbItemFac> ew = new QueryWrapper<>();
         ew.lambda().eq(TbItemFac::getFacId, facId);
         return getOne(ew);
     }
+    public TbItemFac getByFaceIdAnd(Long facId,String uniqueExpenseId) {
+        QueryWrapper<TbItemFac> ew = new QueryWrapper<>();
+        ew.lambda().eq(TbItemFac::getFacId, facId).eq(TbItemFac::getUniqueExpenseId,uniqueExpenseId);
+        return getOne(ew);
+    }
 
     public void removeByItemId(String itemId) {
         QueryWrapper<TbItemFac> ew = new QueryWrapper<>();

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

@@ -54,6 +54,7 @@ spring:
         manager-item-type: "干杂货人工装卸,汽车吊"
         un-load-item: "装卸业务管理费"  #装卸管理费
         every-car-pay: "人工、机械装卸车辆"  #每辆车都收费
+        part-item-alias: partItem #停车费变量名
 part-config:
     base-price: 30 #基础费用
     extra-price: 10 #过夜额外收费
@@ -136,4 +137,4 @@ invoice-config:
     seller-name: 金蝶软件(中国)有限公司
     drawer: 白翠云
     payee: 沈丕莹
-    reviewer: 沈丕莹
+    reviewer: 沈丕莹