Przeglądaj źródła

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

# Conflicts:
#	sp-admin/sa-view/tb-item/tb-item-list.html
#	sp-admin/sa-view/tb-partner/tb-business-item-list.html
#	sp-server/app.pid
#	sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemService.java
qzyReal 3 lat temu
rodzic
commit
ea77bcc453

+ 134 - 0
sp-admin/sa-view/tb-business/tb-business-item-list.html

@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>业务作业项-列表</title>
+		<meta charset="utf-8">
+		<meta name="viewport"
+			content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css & js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/httpVueLoader.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+	</head>
+	<body>
+		<div class="vue-box" style="display: none;" :style="'display: block;'">
+			<div class="c-panel">
+				<!-- ------------- 检索参数 ------------- -->
+				<div class="c-title">检索参数</div>
+				<el-form ref="form" :model='p' @submit.native.prevent>
+					<sa-item type="text" name="项目名称" v-model="p.itemName"></sa-item>
+					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>
+					<el-button style="display: inline;" type="info" icon="el-icon-refresh" @click="sa.f5()">重置
+					</el-button>
+				</el-form>
+				<!-- ------------- 快捷按钮 ------------- -->
+				<div class="fast-btn">
+					<el-button type="warning" icon="el-icon-download" @click="sa.exportExcel()">导出</el-button>
+				</div>
+				<!-- ------------- 数据列表 ------------- -->
+				<el-table class="data-table" ref="data-table" :data="dataList">
+					<sa-td name="合作伙伴" prop="pickCustomerName"></sa-td>
+					<sa-td name="项目类型" prop="itemTypeName"></sa-td>
+					<sa-td name="具体项目" prop="itemName"></sa-td>
+					<sa-td name="计费标准" prop="unit">
+						<template slot-scope="s">
+							{{s.row.itemPrice}}{{s.row.unit}}
+						</template>
+					</sa-td>
+				<!-- 	<sa-td name="状态" prop="status" type="enum" :jv="{0: '未完成', 1: '已完成'}"></sa-td>
+					<sa-td name="作业时间" prop="operateTime"></sa-td> -->
+					<sa-td name="创建时间" prop="createTime"></sa-td>
+					<sa-td name="接单时间" prop="pickTime"></sa-td>
+					<sa-td name="确认时间" prop="confirmTime"></sa-td>
+					<el-table-column label="操作" fixed="right" width="100px">
+						<template slot-scope="s">
+							<el-button class="c-btn" type="primary" @click="pickFn(s.row)" v-if="s.row.pick == 1 && s.row.confirm == 0">确认</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
+				<!-- ------------- 分页 ------------- -->
+				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()">
+				</sa-item>
+			</div>
+		</div>
+		<script>
+			var app = new Vue({
+				components: {
+					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),
+					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue'),
+				},
+				el: '.vue-box',
+				data: {
+					businessId: sa.p('businessId', 0),
+					p: { // 查询参数  
+						id: '', // 主键 
+						itemName: '', // 项目名称
+						pageNo: 1, // 当前页 
+						pageSize: 10, // 页大小 
+						sortType: 9 // 排序方式 
+					},
+					dataCount: 0,
+					dataList: [], // 数据集合 
+				},
+				methods: {
+					pickFn (data){
+						sa.confirm('是否确认该业务项?', function() {
+							sa.ajax('/TbBusinessItem/confirm',{id: data.id}, function(res){
+								sa.ok('已确认');
+								this.f5();
+							}.bind(this));
+						}.bind(this));
+					},
+					// 刷新
+					f5: function() {
+						sa.ajax('/TbBusiness/getById?id=' + this.businessId, sa.removeNull(this.p), function(res) {
+							this.dataList = res.data.items; // 数据
+							this.dataCount = res.dataCount; // 数据总数 
+							sa.f5TableHeight(); // 刷新表格高度 
+						}.bind(this));
+					},
+					// 查看
+					get: function(data) {
+						sa.showIframe('数据详情', 'tb-business-item-info.html?id=' + data.id, '1050px', '90%');
+					},
+					// 查看 - 根据选中的
+					getBySelect: function(data) {
+						var selection = this.$refs['data-table'].selection;
+						if (selection.length == 0) {
+							return sa.msg('请选择一条数据')
+						}
+						this.get(selection[0]);
+					},
+					// 批量删除
+					deleteByIds: function() {
+						// 获取选中元素的id列表 
+						let selection = this.$refs['data-table'].selection;
+						let ids = sa.getArrayField(selection, 'id');
+						if (selection.length == 0) {
+							return sa.msg('请至少选择一条数据')
+						}
+						// 提交删除 
+						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {
+							sa.ajax('/TbBusinessItem/deleteByIds', {
+								ids: ids.join(',')
+							}, function(res) {
+								sa.arrayDelete(this.dataList, selection);
+								sa.ok('删除成功');
+								sa.f5TableHeight(); // 刷新表格高度 
+							}.bind(this))
+						}.bind(this));
+					},
+				},
+				created: function() {
+					this.f5();
+					sa.onInputEnter();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 4 - 0
sp-admin/sa-view/tb-business/tb-business-list.html

@@ -77,6 +77,7 @@
 							<el-button class="c-btn" type="success" v-if="perCode.indexOf('tb-business-pay')!=-1
 								&&s.row.payStatus==1&&s.row.confirmInput==1&&currentCustomerId!='1'" @click="payFn(s.row)">
 								马上支付</el-button>
+							<el-button class="c-btn" type="primary" @click="itemFn(s.row)">业务项</el-button>
 							<el-button class="c-btn" type="primary" @click="carFn(s.row)">车辆管理
 							</el-button>
 							<el-button class="c-btn" type="success" @click="get(s.row)">查看</el-button>
@@ -259,6 +260,9 @@
 					}
 				},
 				methods: {
+					itemFn(data) {
+						sa.showIframe('业务项', 'tb-business-item-list.html?businessId=' + data.id, '1050px', '95%');
+					},
 					carFn(data) {
 						sa.showIframe('车辆管理', '../car/tb-business-car-list.html?id=' + data.id+'&payStatus='+data.payStatus, '1050px', '95%');
 					},

+ 8 - 3
sp-admin/sa-view/tb-item/tb-item-list.html

@@ -29,7 +29,7 @@
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList">
 					<sa-td name="项目名称" prop="name" width="300px"></sa-td>
-					<sa-td name="业务类型" prop="businessType">
+                    <sa-td name="业务类型" prop="businessType">
 						<template slot-scope="s">
 							<el-select multiple v-model="s.row.type" placeholder="收费项" @change="businessChange(s.row)">
 								<el-option v-for="item in businessTypeList" :key="item.value" :value="item.value"
@@ -38,15 +38,20 @@
 							</el-select>
 						</template>
 					</sa-td>
+                    <sa-td name="税率" prop="taxRate"></sa-td>
+
 					<!-- <sa-td name="项目编号" prop="code"></sa-td> -->
 					<sa-td name="收费项" prop="code">
-						<template slot-scope="s">
+                        <template slot-scope="s">
+                            <el-button class="c-btn" type="primary" icon="el-icon-edit" @click="update(s.row)">详细
+                            </el-button>
+                        </template>
+                    </el-table-column> -->
 							<el-select v-model="s.row.items[0].id" placeholder="收费项">
 								<el-option v-for="item in s.row.items" :key="item.id" :value="item.id"
 									:label="item.itemName+' '+item.price+item.unit">
 								</el-option>
 							</el-select>
-						</template>
 					</sa-td>
 				</el-table>
 				<!-- ------------- 分页 ------------- -->

+ 3 - 3
sp-admin/sa-view/tb-partner/tb-business-item-list.html

@@ -27,7 +27,7 @@
 					</el-button>
 				</el-form>
 				<!-- ------------- 快捷按钮 ------------- -->
-
+				<sa-item type="fast-btn" show="export"></sa-item>
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList">
 					<sa-td name="单号" prop="no" width="160"></sa-td>
@@ -42,7 +42,7 @@
 							{{s.row.itemPrice}}{{s.row.unit}}
 						</template>
 					</sa-td>
-					<!-- 	<sa-td name="状态" prop="status" type="enum" :jv="{0: '未完成', 1: '已完成'}"></sa-td>
+				<!-- 	<sa-td name="状态" prop="status" type="enum" :jv="{0: '未完成', 1: '已完成'}"></sa-td>
 					<sa-td name="作业时间" prop="operateTime"></sa-td> -->
 					<sa-td name="创建时间" prop="createTime" width="160"></sa-td>
 					<sa-td name="接单时间" prop="pickTime" width="160"></sa-td>
@@ -80,7 +80,7 @@
 						itemName: '', // 项目名称 
 						pageNo: 1, // 当前页 
 						pageSize: 10, // 页大小 
-						sortType: 10 // 排序方式 
+						sortType: 10 // 排序方式
 					},
 					dataCount: 0,
 					dataList: [], // 数据集合 

+ 1 - 0
sp-server/src/main/java/com/pj/current/config/PartConfig.java

@@ -14,6 +14,7 @@ public class PartConfig {
     private Double freeCarLength;
     private BigDecimal basePrice;
     private BigDecimal extraPrice;
+    private BigDecimal taxRate;
     private String  nightEnd;
     private long freeMinutes;
 

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

@@ -77,4 +77,6 @@ public class TbBusinessItemController {
     }
 
 
+
+
 }

+ 13 - 18
sp-server/src/main/java/com/pj/project/tb_business_item/TbBusinessItemService.java

@@ -54,27 +54,22 @@ public class TbBusinessItemService extends ServiceImpl<TbBusinessItemMapper, TbB
     @Lazy
     private WxService wxService;
 
-    /**
-     * 增
-     */
-    int add(TbBusinessItem t) {
-        return tbBusinessItemMapper.add(t);
-    }
+	/** 增 */
+	int add(TbBusinessItem t){
+		return tbBusinessItemMapper.add(t);
+	}
 
 
-    /**
-     * 改
-     */
-    int update(TbBusinessItem t) {
-        return tbBusinessItemMapper.update(t);
-    }
 
-    /**
-     * 查
-     */
-    TbBusinessItem getById(String id) {
-        return tbBusinessItemMapper.getById(id);
-    }
+	/** 改 */
+	int update(TbBusinessItem t){
+		return tbBusinessItemMapper.update(t);
+	}
+
+	/** 查 */
+	TbBusinessItem getById(String id){
+		return tbBusinessItemMapper.getById(id);
+	}
 
     /**
      * 查集合 - 根据条件(参数为空时代表忽略指定条件)

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

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.pj.api.wx.bo.PriceBO;
+import com.pj.current.config.PartConfig;
 import com.pj.project.tb_business.TbBusiness;
 import com.pj.project.tb_business.TbBusinessService;
 import com.pj.project.tb_business_car.TbBusinessCar;
@@ -30,44 +31,59 @@ import javax.annotation.Resource;
 
 /**
  * Service: tb_fee_statistics -- 收费统计表
- * @author lzm 
+ *
+ * @author lzm
  */
 @Service
 @Transactional
 public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, TbFeeStatistics> implements IService<TbFeeStatistics> {
 
-	/** 底层 Mapper 对象 */
-	@Autowired
-	TbFeeStatisticsMapper tbFeeStatisticsMapper;
-	@Resource
+    /**
+     * 底层 Mapper 对象
+     */
+    @Autowired
+    TbFeeStatisticsMapper tbFeeStatisticsMapper;
+    @Resource
     TbBusinessCarService tbBusinessCarService;
-	@Resource
+    @Resource
     TbBusinessService tbBusinessService;
     @Resource
     TbFeeDetailsService tbFeeDetailsService;
+    @Resource
+    private PartConfig partConfig;
 
-	/** 增 */
-	int add(TbFeeStatistics t){
-		return tbFeeStatisticsMapper.add(t);
-	}
+    /**
+     * 增
+     */
+    int add(TbFeeStatistics t) {
+        return tbFeeStatisticsMapper.add(t);
+    }
 
-	/** 删 */
-	int delete(Long id){
-		return tbFeeStatisticsMapper.delete(id);
-	}
+    /**
+     * 删
+     */
+    int delete(Long id) {
+        return tbFeeStatisticsMapper.delete(id);
+    }
 
-	/** 改 */
-	int update(TbFeeStatistics t){
-		return tbFeeStatisticsMapper.update(t);
-	}
+    /**
+     * 改
+     */
+    int update(TbFeeStatistics t) {
+        return tbFeeStatisticsMapper.update(t);
+    }
 
-	/** 查 */
-	TbFeeStatistics getById(Long id){
-		return tbFeeStatisticsMapper.getById(id);
-	}
+    /**
+     * 查
+     */
+    TbFeeStatistics getById(Long id) {
+        return tbFeeStatisticsMapper.getById(id);
+    }
 
-	/** 查集合 - 根据条件(参数为空时代表忽略指定条件) */  
-	List<TbFeeStatistics> getList(SoMap so) {
+    /**
+     * 查集合 - 根据条件(参数为空时代表忽略指定条件)
+     */
+    List<TbFeeStatistics> getList(SoMap so) {
         return tbFeeStatisticsMapper.getList(so);
     }
 
@@ -79,7 +95,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
         return tbFeeStatisticsMapper.getYear(so);
     }
 
-    public TbFeeStatistics getByDayAndFeeType(String day, Integer feeType){
+    public TbFeeStatistics getByDayAndFeeType(String day, Integer feeType) {
 //        TbFeeStatistics Fee = tbFeeStatisticsMapper.getByDayAndFeeType(Day, feeType);
         QueryWrapper<TbFeeStatistics> qw = new QueryWrapper<>();
         qw.eq("day", day);
@@ -88,20 +104,20 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
     }
 
     @Async
-    public void countParkFee(List<PriceBO> cars){
+    public void countParkFee(List<PriceBO> cars) {
         Date now = new Date();
         String toDay = DateUtil.format(now, "yyyy-MM-dd");
         String thisYear = StrUtil.sub(toDay, 0, 4);
         String thisMonth = StrUtil.sub(toDay, 0, 7);
         TbFeeStatistics parkFee = this.getByDayAndFeeType(toDay, TbFeeStatistics.feeType.PARK_FEE.getCode());
-        if(parkFee == null){
+        if (parkFee == null) {
             parkFee = new TbFeeStatistics();
-            parkFee.setTaxRate(new BigDecimal(0.09));
+            parkFee.setTaxRate(partConfig.getTaxRate());
         }
         for (PriceBO bo1 : cars) {
             BigDecimal price = bo1.getP();
             TbBusinessCar car = tbBusinessCarService.getById(bo1.getId());
-            if(car.getMoney().compareTo(new BigDecimal(0)) == 0){
+            if (car.getMoney().compareTo(new BigDecimal(0)) == 0) {
                 parkFee.setNum(parkFee.getNum() + 1);
             }
             parkFee.setTaxMoney(parkFee.getTaxMoney().add(price));
@@ -115,7 +131,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
     }
 
     @Async
-    public void countBusinessFee(List<TbBusinessItem> items){
+    public void countBusinessFee(List<TbBusinessItem> items) {
         Date now = new Date();
         String toDay = DateUtil.format(now, "yyyy-MM-dd");
         String thisYear = StrUtil.sub(toDay, 0, 4);
@@ -123,19 +139,19 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
         for (TbBusinessItem item : items) {
             int feeType = -1;
             String itemType = item.getItemTypeName();
-            if(itemType.contains("核酸")){
+            if (itemType.contains("核酸")) {
                 feeType = TbFeeStatistics.feeType.NUCLEIC_FEE.getCode();
-            } else if(itemType.contains("消毒")){
+            } else if (itemType.contains("消毒")) {
                 feeType = TbFeeStatistics.feeType.DISINFECT_FEE.getCode();
-            } else if(itemType.contains("装卸")){
+            } else if (itemType.contains("装卸")) {
                 feeType = TbFeeStatistics.feeType.STEVEDORE_FEE.getCode();
-            } else if(StrUtil.equals(itemType, "特殊车辆") || StrUtil.equals(itemType, "充电打冷") || StrUtil.equals(itemType, "汽车吊" )){
+            } else if (StrUtil.equals(itemType, "特殊车辆") || StrUtil.equals(itemType, "充电打冷") || StrUtil.equals(itemType, "汽车吊")) {
                 feeType = TbFeeStatistics.feeType.STEVEDORE_FEE.getCode();
-            } else if(itemType.contains("入场管理")){
+            } else if (itemType.contains("入场管理")) {
                 feeType = TbFeeStatistics.feeType.MANAGE_FEE.getCode();
             }
             TbFeeStatistics businessFee = this.getByDayAndFeeType(toDay, feeType);
-            if(businessFee == null){
+            if (businessFee == null) {
                 businessFee = new TbFeeStatistics();
                 businessFee.setTaxRate(new BigDecimal(0.06));
             }
@@ -151,7 +167,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
             //添加此item的收费明细
             TbBusiness business = tbBusinessService.getById(item.getBusinessId());
             TbFeeDetails businessFeeDetail = tbFeeDetailsService.getByBusinessIdAndCarNoAndItemType(item.getBusinessId(), business.getCardNo(), item.getItemTypeId());
-            if(businessFeeDetail == null){
+            if (businessFeeDetail == null) {
                 businessFeeDetail = new TbFeeDetails();
             }
             businessFeeDetail.setBusinessId(item.getBusinessId()).setBusinessNo(business.getNo())

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

@@ -1,6 +1,7 @@
 package com.pj.project.tb_item_type;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -47,7 +48,12 @@ public class TbItemType extends Model<TbItemType> implements Serializable {
 	/**
 	 * 名称 
 	 */
-	private String name;	
+	private String name;
+
+    /**
+     * 税率
+     */
+    private BigDecimal taxRate = new BigDecimal(0);
 
 	/**
 	 * 是否必须(0=否,1=是) 

+ 5 - 3
sp-server/src/main/java/com/pj/project/tb_item_type/TbItemTypeMapper.xml

@@ -5,8 +5,8 @@
 	<!-- 增 [G] -->
 	<insert id="add">
 		insert into 
-		tb_item_type (id, name, need)
-		values (#{id}, #{name}, #{need})
+		tb_item_type (id, name, need, tax_rate)
+		values (#{id}, #{name}, #{need}, #{taxRate})
 	</insert>
 
 	<!-- 删 -->
@@ -20,7 +20,8 @@
 		update tb_item_type set
 		id = #{id}, 
 		name = #{name}, 
-		need = #{need}, 
+		need = #{need},
+		tax_rate = #{taxRate},
 		where id = #{id}
 	</update>
 
@@ -33,6 +34,7 @@
 		<result property="id" column="id" />
 		<result property="name" column="name" />
 		<result property="need" column="need" />
+        <result property="taxRate" column="tax_rate" />
 		<collection property="items" ofType="com.pj.project.tb_item.TbItem" column="id" select="getItems"/>
 	</resultMap>
 	

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

@@ -53,6 +53,7 @@ part-config:
     night-end: 06:00:00 #夜间结束时间
     free-minutes: 30
     free-car-length: 4.2
+    tax-rate: 0.09
 car:
     max-length: 20
     max-weight: 50