فهرست منبع

收费明细bug修改,放行记录显示图片

lzm 3 سال پیش
والد
کامیت
8430adf890
18فایلهای تغییر یافته به همراه145 افزوده شده و 39 حذف شده
  1. 8 1
      sp-admin/sa-view/tb-business-car/tb-business-car-add.html
  2. 2 2
      sp-admin/sa-view/tb-business-car/tb-business-car-info.html
  3. 2 1
      sp-admin/sa-view/tb-business-car/tb-business-car-list.html
  4. 8 2
      sp-admin/sa-view/tb-fee-statistics/tb-fee-details-list.html
  5. 6 1
      sp-admin/sa-view/tb-fee-statistics/tb-fee-statistics-list.html
  6. 5 1
      sp-server/src/main/java/com/pj/api/open/service/OpenService.java
  7. 2 1
      sp-server/src/main/java/com/pj/api/service/ApiService.java
  8. 2 2
      sp-server/src/main/java/com/pj/api/wx/service/WxService.java
  9. 7 0
      sp-server/src/main/java/com/pj/project/tb_business/TbBusinessService.java
  10. 1 0
      sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCar.java
  11. 14 2
      sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarService.java
  12. 1 0
      sp-server/src/main/java/com/pj/project/tb_fee_details/ExportFeeDetailDTO.java
  13. 12 0
      sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetails.java
  14. 53 15
      sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetailsService.java
  15. 1 1
      sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatistics.java
  16. 21 10
      sp-server/src/main/java/com/pj/project/tb_fee_statistics/TbFeeStatisticsService.java
  17. BIN
      sp-server/src/main/resources/static/day-fee-new.xlsx
  18. BIN
      sp-server/src/main/resources/static/day-fee.xlsx

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

@@ -14,6 +14,7 @@
 		<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/kj/upload-util.js"></script>
 		<style type="text/css">
 			.c-panel .el-form .c-label {
 				width: 7em !important;
@@ -56,10 +57,13 @@
 							<label class="c-label">入场时间:</label>
 							<el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" v-model="m.realInTime"></el-date-picker>
 						</div>
-						<div class="c-item" v-if="id>0 && m.isLock==0 && m.pay==1" >
+						<sa-item  type="img" name="入场图片" v-model="m.inImage" br></sa-item>
+
+						<div class="c-item" v-if="(id>0&&m.businessId!=null&&m.isLock==0&&m.pay==1) || (id>0&&m.businessId==null)" >
 							<label class="c-label">离场时间:</label>
 							<el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" v-model="m.realOutTime"></el-date-picker>
 						</div>
+						<sa-item v-if="(id>0&&m.businessId!=null&&m.isLock==0&&m.pay==1) || (id>0&&m.businessId==null)" type="img" name="出场图片" v-model="m.outImage" br></sa-item>
 						<sa-item name="" class="s-ok" br>
 							<el-button type="primary" icon="el-icon-plus" @click="ok()">保存</el-button>
 						</sa-item>
@@ -88,10 +92,13 @@
 						driverName: '', //  
 						money: '', //  
 						driverPhone: '', //
+						image: '',
 						realInTime: '',
 						realOutTime: '',
 						pay: '',
 						isLock: '',
+						inImage: '',
+						outImage: '',
 					}, // 实体对象
 				},
 				methods: {

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

@@ -32,7 +32,7 @@
 								<sa-info name="入场时间" br>{{m.realInTime}}</sa-info>
 								<sa-info name="离场时间" br>{{m.realOutTime}}</sa-info>
 								<sa-info name="停车费" br>{{m.money}}元</sa-info>
-									<sa-info type="img" name="入场图片" :value="m.inImage" br></sa-info>
+								<sa-info type="img" name="入场图片" :value="m.inImage" br></sa-info>
 							</el-col>
 							<el-col span=12>
 								<sa-info name="联系人" br>{{m.driverName}}</sa-info>
@@ -41,7 +41,7 @@
 									<label v-if="m.isLock==1">锁定</label>
 									<label v-else>正常</label>
 								</sa-info>
-									<sa-info type="img" name="离场图片" :value="m.outImage" br></sa-info>
+								<sa-info type="img" name="离场图片" :value="m.outImage" br></sa-info>
 							</el-col>
 						</el-row>
 					</el-form>

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

@@ -36,6 +36,7 @@
 				</el-form>
 				<!-- ------------- 数据列表 ------------- -->
 				<el-table class="data-table" ref="data-table" :data="dataList">
+					<sa-td name="编号" prop="no" width=140></sa-td>
 					<sa-td name="车牌号" prop="carNo" width=120></sa-td>
 					<sa-td name="车辆规格" prop="carSize"></sa-td>
 					<sa-td width="130" name="支付状态" prop="pay" type="enum" :jv="{0: '未支付[#ff0000]', 1: '已支付[#005500]'}">
@@ -83,7 +84,7 @@
 						id: '', //  
 						businessId: sa.p('id', ''), //  
 						carNo: '', //  
-						pay:'',  
+						pay:'',
 						pageNo: 1, // 当前页 
 						pageSize: 10, // 页大小 
 						sortType: 0 // 排序方式 

+ 8 - 2
sp-admin/sa-view/tb-fee-statistics/tb-fee-details-list.html

@@ -88,8 +88,14 @@
 					<sa-td name="不含税金额(元)" prop="noTaxPrice" ></sa-td>
 					<sa-td name="收款方式" prop="payType" type="enum" :jv="{3: '微信支付'}"></sa-td>
 					<sa-td name="收款种类" prop="payMode" type="enum" :jv="{1: '直接收款'}"></sa-td>
-					<sa-td name="系统流水号" prop="" ></sa-td>
-					<sa-td name="订单编号" prop="businessNo" width="140px" ></sa-td>
+<!--					<sa-td name="系统流水号" prop="tradeNo" width="140px" ></sa-td>-->
+					<el-table-column label="系统流水号" width="140px">
+						<template slot-scope="s">
+							<span v-if="s.row.businessId != null && s.row.businessId != ''" >{{s.row.businessNo}}</span>
+							<span v-else>{{s.row.businessCarNo}}</span>
+						</template>
+					</el-table-column>
+					<sa-td name="订单编号" prop="transactionId" width="220px" ></sa-td>
 					<sa-td name="作业编号" prop="businessItemNo" width="145px" ></sa-td>
 					<sa-td name="企业名称" prop="pickCustomerName" ></sa-td>
 					<sa-td name="发票号" prop="" ></sa-td>

+ 6 - 1
sp-admin/sa-view/tb-fee-statistics/tb-fee-statistics-list.html

@@ -62,7 +62,12 @@
 					<sa-td name="日期" type="date" prop="dayTime" ></sa-td>
 					<sa-td name="数量" prop="num" ></sa-td>
 					<sa-td name="含税收入(元)" prop="taxMoney" ></sa-td>
-					<sa-td name="税率" prop="taxRate" ></sa-td>
+<!--					<sa-td name="税率" prop="taxRate" ></sa-td>-->
+					<el-table-column label="税率(%)" >
+						<template slot-scope="s">
+							<span>{{s.row.taxRate * 100}}</span>
+						</template>
+					</el-table-column>
 					<sa-td name="不含税收入(元)" prop="noTaxMoney" ></sa-td>
 					<sa-td name="支付方式" prop="payType" type="enum" :jv="{3: '微信支付'}"></sa-td>
 <!--					<el-table-column label="操作" fixed="right"  width="240px">-->

+ 5 - 1
sp-server/src/main/java/com/pj/api/open/service/OpenService.java

@@ -3,6 +3,7 @@ package com.pj.api.open.service;
 import cn.hutool.cache.CacheUtil;
 import cn.hutool.cache.impl.TimedCache;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import com.pj.api.open.ResultJson;
 import com.pj.api.open.bo.CheckCarNumberBO;
@@ -27,6 +28,8 @@ import javax.annotation.Resource;
 import javax.xml.crypto.Data;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -69,7 +72,8 @@ public class OpenService {
         if (tbBusinessCar == null || (tbBusinessCar.getRealInTime() != null && tbBusinessCar.getRealOutTime() != null)) {
             tbBusinessCar = new TbBusinessCar();
             tbBusinessCar.setCarNo(carNo).setPay(0).setCarSize(3D).setIsLock(0).setInImage(image)
-                    .setInChannel(channel).setRealInTime(now).setBasePartMoney(new BigDecimal("0"));
+                    .setInChannel(channel).setRealInTime(now).setBasePartMoney(new BigDecimal("0"))
+                    .setNo(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")) + RandomUtil.randomNumbers(4));
             tbBusinessCarService.save(tbBusinessCar);
             return;
         }

+ 2 - 1
sp-server/src/main/java/com/pj/api/service/ApiService.java

@@ -302,7 +302,8 @@ public class ApiService {
             tbBusiness.setCardNo(carNo);
         }
         tbBusinessService.save(tbBusiness);
-        db.setBusinessId(tbBusiness.getId());
+        db.setBusinessId(tbBusiness.getId())
+        .setNo(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")) + RandomUtil.randomNumbers(4));
         tbBusinessCarService.save(db);
         itemList.forEach(tbBusinessItem -> tbBusinessItem.setBusinessId(tbBusiness.getId()));
         tbBusinessItemService.saveBatch(itemList);

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

@@ -212,11 +212,11 @@ public class WxService {
                     tbBusinessService.updateById(business);
                 }
             }
-            tbFeeDetailsService.chargeParkFee(cars);//添加cars的收费明细
+            tbFeeDetailsService.chargeParkFee(cars, transactionId);//添加cars的收费明细
             String businessId = attach.getB();
             if (StrUtil.isNotEmpty(businessId)) {
                 List<TbBusinessItem> items = tbBusinessItemService.findByBusinessId(businessId);
-                tbFeeStatisticsService.countBusinessFee(items);//业务费日统计
+                tbFeeStatisticsService.countBusinessFee(items, transactionId);//业务费日统计
                 items.forEach(tbBusinessItem -> tbBusinessItem.setPayStatus(1).setPayTime(now));
                 tbBusinessItemService.updateBatchById(items);
                 TbBusiness tbBusiness = tbBusinessService.getById(businessId);

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

@@ -211,6 +211,10 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
             tbBusinessCar.setBusinessId(t.getId());
             tbBusinessCar.setCarNo(carNo);
             tbBusinessCar.setBusinessId(t.getId()).setCustomerId(t.getCustomerId());
+            if(StrUtil.isEmpty(tbBusinessCar.getNo())){
+                tbBusinessCar.setNo(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")) + RandomUtil.randomNumbers(4));
+            }
+
         });
         String yueCarNo = t.getCardNo().toUpperCase();
         TbBusinessCar yueCar = tbBusinessCarService.findInAndNoBusinessCar(yueCarNo);
@@ -221,6 +225,9 @@ public class TbBusinessService extends ServiceImpl<TbBusinessMapper, TbBusiness>
             }
         }
         yueCar.setBusinessId(t.getId()).setCarSize(t.getCardSize()).setCarNo(yueCarNo).setCustomerId(t.getCustomerId());
+        if(StrUtil.isEmpty(yueCar.getNo())){
+            yueCar.setNo(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")) + RandomUtil.randomNumbers(4));
+        }
         carList.add(yueCar);
         tbBusinessCarService.saveOrUpdateBatch(carList);
         BigDecimal initCarPartMoney = partConfig.getBasePrice();

+ 1 - 0
sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCar.java

@@ -104,6 +104,7 @@ public class TbBusinessCar extends Model<TbBusinessCar> implements Serializable
 	private String inImage;
 	private String outImage;
 
+	private String no;
 
 
 

+ 14 - 2
sp-server/src/main/java/com/pj/project/tb_business_car/TbBusinessCarService.java

@@ -1,8 +1,12 @@
 package com.pj.project.tb_business_car;
 
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -135,6 +139,7 @@ public class TbBusinessCarService extends ServiceImpl<TbBusinessCarMapper, TbBus
         tbBusiness.setChinaPartMoney(tbBusiness.getChinaPartMoney().add(partConfig.getBasePrice()))
                 .setTotalMoney(tbBusiness.getTotalMoney().add(partConfig.getBasePrice()));
         tbBusinessService.updateById(tbBusiness);
+        t.setNo(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")) + RandomUtil.randomNumbers(4));
         this.save(t);
     }
 
@@ -210,7 +215,8 @@ public class TbBusinessCarService extends ServiceImpl<TbBusinessCarMapper, TbBus
         if (db != null) {
             throw new Exception("该车有未完成业务");
         }
-        t.setPay(0);
+        t.setCarNo(carNo).setPay(0).setCarSize(3D).setIsLock(0).setBasePartMoney(new BigDecimal("0"))
+                .setNo(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm")) + RandomUtil.randomNumbers(4));
         this.save(t);
     }
 
@@ -233,7 +239,7 @@ public class TbBusinessCarService extends ServiceImpl<TbBusinessCarMapper, TbBus
         if (businessCar != null && !StrUtil.equals(t.getId(), businessCar.getId())) {
             throw new Exception("车辆已存在");
         }
-
+        t.setCarNo(carNo);
         this.updateById(t);
         TbBusiness tbBusiness = tbBusinessService.getById(t.getBusinessId());
         if(tbBusiness != null) {
@@ -249,6 +255,12 @@ public class TbBusinessCarService extends ServiceImpl<TbBusinessCarMapper, TbBus
             List<TbFeeDetails> feeDetailsLIst = tbFeeDetailsService.getByBusinessIdAndCarNo(businessId, oldCarNo);
             feeDetailsLIst.forEach(fee -> fee.setCarNo(carNo));
             tbFeeDetailsService.updateBatchById(feeDetailsLIst);
+        } else{
+            TbFeeDetails feeDetail = tbFeeDetailsService.getByBusinessCarIdAndCarNoAndFeeType(t.getId(), oldCarNo, TbFeeDetails.fee.PARK_FEE.getCode());
+            if(feeDetail != null){
+                feeDetail.setCarNo(carNo);
+                tbFeeDetailsService.updateById(feeDetail);
+            }
         }
 
     }

+ 1 - 0
sp-server/src/main/java/com/pj/project/tb_fee_details/ExportFeeDetailDTO.java

@@ -38,6 +38,7 @@ public class ExportFeeDetailDTO {
     private String payMode;
     private String businessNo;
     private String payTime;
+    private String tradeNo;
 
 
 

+ 12 - 0
sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetails.java

@@ -162,6 +162,18 @@ public class TbFeeDetails implements Serializable {
      */
     private String invoice;
 
+    /**
+     * 微信支付订单号
+     */
+    private String transactionId;
+
+    /**
+     *
+     */
+    private String businessCarId;
+
+    private String businessCarNo;
+
 
 
     @Getter

+ 53 - 15
sp-server/src/main/java/com/pj/project/tb_fee_details/TbFeeDetailsService.java

@@ -3,6 +3,7 @@ package com.pj.project.tb_fee_details;
 import java.io.File;
 import java.io.InputStream;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 
 import cn.hutool.core.date.DateUtil;
@@ -21,6 +22,7 @@ import com.pj.project.tb_business.TbBusinessService;
 import com.pj.project.tb_business_car.TbBusinessCar;
 import com.pj.project.tb_business_car.TbBusinessCarService;
 import com.pj.project.tb_business_item.TbBusinessItem;
+import com.pj.project.tb_fee_statistics.TbFeeStatistics;
 import com.pj.project4sp.uploadfile.UploadUtil;
 import com.pj.utils.so.SoMap;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -120,8 +122,16 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
         return getOne(qw);
     }
 
+    public TbFeeDetails getByBusinessCarIdAndCarNoAndFeeType(String businessCarId, String carNo, Integer feeType){
+        QueryWrapper<TbFeeDetails> qw = new QueryWrapper<>();
+        qw.eq("business_car_id", businessCarId);
+        qw.eq("car_no", carNo);
+        qw.eq("fee_type", feeType);
+        return getOne(qw);
+    }
+
 
-    public void chargeParkFee(List<PriceBO> cars) {
+    public void chargeParkFee(List<PriceBO> cars, String transactionId) {
         Date now = new Date();
         String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");
         String toDay = DateUtil.format(now, "yyyy-MM-dd");
@@ -129,19 +139,26 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
             TbBusinessCar car = tbBusinessCarService.getById(bo1.getId());
             TbBusiness business = tbBusinessService.getById(car.getBusinessId());
             String carNo = car.getCarNo();
-            TbFeeDetails parkFee = getByBusinessIdAndCarNoAndFeeType(car.getBusinessId(), carNo, TbFeeDetails.fee.PARK_FEE.getCode());
-            if (parkFee == null) {
+            TbFeeDetails parkFee;
+            if(business != null){
+                parkFee = getByBusinessIdAndCarNoAndFeeType(car.getBusinessId(), carNo, TbFeeDetails.fee.PARK_FEE.getCode());
+            }else {
+                parkFee = getByBusinessCarIdAndCarNoAndFeeType(car.getId(), carNo, TbFeeDetails.fee.PARK_FEE.getCode());
+            }
+            if(parkFee == null){
                 parkFee = new TbFeeDetails();
                 parkFee.setTaxRate(partConfig.getTaxRate());
             }
-            BigDecimal noTaxPrice = car.getMoney().subtract(car.getMoney().multiply(parkFee.getTaxRate()));
-            BigDecimal taxPrice = car.getMoney().multiply(parkFee.getTaxRate());
-            parkFee.setBusinessId(car.getBusinessId())
+            BigDecimal taxPrice = car.getMoney().divide(BigDecimal.valueOf(1).add(parkFee.getTaxRate()),2, BigDecimal.ROUND_HALF_UP).multiply(parkFee.getTaxRate());
+            BigDecimal noTaxPrice = car.getMoney().subtract(taxPrice);
+            parkFee.setBusinessId(car.getBusinessId()).setBusinessCarId(car.getId())
                     .setCarNo(car.getCarNo())
                     .setItemPrice(car.getMoney()).setUnitPrice(car.getMoney()).setNoTaxPrice(noTaxPrice).setTaxPrice(taxPrice)
                     .setFeeType(TbFeeDetails.fee.PARK_FEE.getCode()).setItemTypeName("停车业务")
                     .setPayDay(toDay).setPayType(3).setCreateTime(now)
-                    .setNum(1).setIsSettle(1).setPayMode(1).setPayTime(nowStr);
+                    .setNum(1).setIsSettle(1).setPayMode(1).setPayTime(nowStr)
+                    .setTransactionId(transactionId)
+                    .setBusinessCarNo(car.getNo());
             if (business!=null){
                 parkFee.setWeight(business.getNetWeight()).setBusinessNo(business.getNo());
             }
@@ -152,6 +169,7 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
     //@Async
     public void chargeBusinessFee(List<TbBusinessItem> items) {
         Date now = new Date();
+        String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");
         String toDay = DateUtil.format(now, "yyyy-MM-dd");
         for (TbBusinessItem item : items) {
             int feeType = -1;
@@ -170,18 +188,32 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
                 feeType = TbFeeDetails.fee.CHARGE_FEE.getCode();
             }
             TbBusiness business = tbBusinessService.getById(item.getBusinessId());
-            TbFeeDetails businessFee = getByBusinessIdAndCarNoAndItemType(item.getBusinessId(), business.getCardNo(), item.getItemTypeId());
-            if (businessFee == null) {
-                businessFee = new TbFeeDetails();
+            TbFeeDetails businessFeeDetail = this.getByBusinessIdAndCarNoAndItemType(item.getBusinessId(), business.getCardNo(), item.getItemTypeId());
+            if (businessFeeDetail == null) {
+                businessFeeDetail = new TbFeeDetails();
+                businessFeeDetail.setTaxRate(BigDecimal.valueOf(TbFeeStatistics.taxRate.BUSINESS.getValue()));
+            }
+            BigDecimal taxPrice = item.getItemPrice()
+                    .divide(BigDecimal.valueOf(1).add(businessFeeDetail.getTaxRate()),2, BigDecimal.ROUND_HALF_UP)
+                    .multiply(businessFeeDetail.getTaxRate());
+            BigDecimal noTaxPrice = item.getItemPrice().subtract(taxPrice);
+
+            String carNo = business.getCardNo();
+            if(StrUtil.isEmpty(business.getCardNo())){
+                carNo = business.getChinaCarNo();
             }
-            businessFee.setBusinessId(item.getBusinessId()).setBusinessNo(business.getNo())
-                    .setCarNo(business.getCardNo())
-                    .setItemPrice(item.getItemPrice())
+            businessFeeDetail.setBusinessId(item.getBusinessId()).setBusinessNo(business.getNo())
+                    .setBusinessItemNo(item.getNo())
+                    .setCarNo(carNo)
+                    .setItemPrice(item.getItemPrice()).setUnitPrice(item.getItemPrice()).setNoTaxPrice(noTaxPrice).setTaxPrice(taxPrice)
                     .setFeeType(feeType)
                     .setItemTypeId(item.getItemTypeId()).setItemTypeName(item.getItemTypeName())
                     .setItemId(item.getItemId()).setItemName(item.getItemName())
-                    .setPayDay(toDay).setPayType(3).setCreateTime(now);
-            saveOrUpdate(businessFee);
+                    .setPayDay(toDay).setPayType(3).setCreateTime(now)
+                    .setBusinessItemId(item.getId() + "")
+                    .setPickCustomerName(item.getPickCustomerName())
+                    .setNum(1).setIsSettle(1).setPayMode(1).setPayTime(nowStr).setWeight(business.getNetWeight());
+            this.saveOrUpdate(businessFeeDetail);
         }
     }
 
@@ -205,6 +237,12 @@ public class TbFeeDetailsService extends ServiceImpl<TbFeeDetailsMapper, TbFeeDe
                     .setWeight(feeDetails.getWeight()).setNum(feeDetails.getNum()).setUnitPrice(feeDetails.getUnitPrice())
                     .setSettle("已结算").setTaxRate(feeDetails.getTaxRate().multiply(new BigDecimal(100)))
                     .setTaxPrice(feeDetails.getTaxPrice()).setNoTaxPrice(feeDetails.getNoTaxPrice()).setPayTime(feeDetails.getPayTime());
+            if(!StrUtil.isEmpty(feeDetails.getBusinessId())){
+                detailDTO.setBusinessNo(feeDetails.getBusinessNo());
+            }else {
+                detailDTO.setBusinessNo(feeDetails.getBusinessCarNo());
+            }
+
             exportList.add(detailDTO);
         }
 

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

@@ -85,7 +85,7 @@ public class TbFeeStatistics implements Serializable {
     private Integer num = 0;
 
 	/**
-	 * 税款 
+	 * 含税收入
 	 */
 	public BigDecimal taxMoney = new BigDecimal(0);
 

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

@@ -112,7 +112,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
         TbFeeStatistics parkFee = this.getByDayAndFeeType(toDay, TbFeeStatistics.feeType.PARK_FEE.getCode());
         if (parkFee == null) {
             parkFee = new TbFeeStatistics();
-            parkFee.setTaxRate(new BigDecimal(TbFeeStatistics.taxRate.PARK.getValue()));
+            parkFee.setTaxRate(BigDecimal.valueOf(TbFeeStatistics.taxRate.PARK.getValue()));
         }
         for (PriceBO bo1 : cars) {
             BigDecimal price = bo1.getP();
@@ -122,7 +122,11 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
             }
             parkFee.setTaxMoney(parkFee.getTaxMoney().add(price));
         }
-        BigDecimal noTaxMoney = parkFee.getTaxMoney().subtract(parkFee.getTaxMoney().multiply(parkFee.getTaxRate()));
+        BigDecimal taxes = parkFee.getTaxMoney()
+                .divide(BigDecimal.valueOf(1).add(parkFee.getTaxRate()),2, BigDecimal.ROUND_HALF_UP)
+                .multiply(parkFee.getTaxRate());
+        BigDecimal noTaxMoney = parkFee.getTaxMoney().subtract(taxes);
+//        BigDecimal noTaxMoney = parkFee.getTaxMoney().subtract(parkFee.getTaxMoney().multiply(parkFee.getTaxRate()));
         parkFee.setNoTaxMoney(noTaxMoney);
         parkFee.setDayTime(now).setMonth(thisMonth).setYear(thisYear).setDay(toDay)
                 .setFeeType(TbFeeStatistics.feeType.PARK_FEE.getCode()).setItemTypeName(TbFeeStatistics.feeType.PARK_FEE.getDesc())
@@ -131,7 +135,7 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
     }
 
     //@Async
-    public void countBusinessFee(List<TbBusinessItem> items) {
+    public void countBusinessFee(List<TbBusinessItem> items, String transactionId) {
         Date now = new Date();
         String nowStr = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");
         String toDay = DateUtil.format(now, "yyyy-MM-dd");
@@ -156,11 +160,15 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
             TbFeeStatistics businessFee = this.getByDayAndFeeType(toDay, feeType);
             if (businessFee == null) {
                 businessFee = new TbFeeStatistics();
-                businessFee.setTaxRate(new BigDecimal(TbFeeStatistics.taxRate.BUSINESS.getValue()));
+                businessFee.setTaxRate(BigDecimal.valueOf(TbFeeStatistics.taxRate.BUSINESS.getValue()));
             }
-            businessFee.setTaxMoney(businessFee.getTaxMoney().add(item.getItemPrice()));
+            businessFee.setTaxMoney(businessFee.getTaxMoney().add(item.getItemPrice()));//含税收入
             businessFee.setNum(businessFee.getNum() + 1);
-            BigDecimal noTaxMoney = businessFee.getTaxMoney().subtract(businessFee.getTaxMoney().multiply(businessFee.getTaxRate()));
+            BigDecimal taxes = businessFee.getTaxMoney()
+                    .divide(BigDecimal.valueOf(1).add(businessFee.getTaxRate()),2, BigDecimal.ROUND_HALF_UP)
+                    .multiply(businessFee.getTaxRate());
+            BigDecimal noTaxMoney = businessFee.getTaxMoney().subtract(taxes);
+
             businessFee.setNoTaxMoney(noTaxMoney);
             businessFee.setDayTime(now).setMonth(thisMonth).setYear(thisYear).setDay(toDay)
                     .setFeeType(feeType)
@@ -173,11 +181,13 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
             TbFeeDetails businessFeeDetail = tbFeeDetailsService.getByBusinessIdAndCarNoAndItemType(item.getBusinessId(), business.getCardNo(), item.getItemTypeId());
             if (businessFeeDetail == null) {
                 businessFeeDetail = new TbFeeDetails();
-                businessFeeDetail.setTaxRate(new BigDecimal(TbFeeStatistics.taxRate.BUSINESS.getValue()));
+                businessFeeDetail.setTaxRate(BigDecimal.valueOf(TbFeeStatistics.taxRate.BUSINESS.getValue()));
             }
 
-            BigDecimal noTaxPrice = item.getItemPrice().subtract(item.getItemPrice().multiply(businessFeeDetail.getTaxRate()));
-            BigDecimal taxPrice = item.getItemPrice().multiply(businessFeeDetail.getTaxRate());
+            BigDecimal taxPrice = item.getItemPrice()
+                    .divide(BigDecimal.valueOf(1).add(businessFeeDetail.getTaxRate()),2, BigDecimal.ROUND_HALF_UP)
+                    .multiply(businessFeeDetail.getTaxRate());
+            BigDecimal noTaxPrice = item.getItemPrice().subtract(taxPrice);
             String carNo = business.getCardNo();
             if(StrUtil.isEmpty(business.getCardNo())){
                 carNo = business.getChinaCarNo();
@@ -192,7 +202,8 @@ public class TbFeeStatisticsService extends ServiceImpl<TbFeeStatisticsMapper, T
                     .setPayDay(toDay).setPayType(3).setCreateTime(now)
                     .setBusinessItemId(item.getId() + "")
                     .setPickCustomerName(item.getPickCustomerName())
-                    .setNum(1).setIsSettle(1).setPayMode(1).setPayTime(nowStr).setWeight(business.getNetWeight());
+                    .setNum(1).setIsSettle(1).setPayMode(1).setPayTime(nowStr).setWeight(business.getNetWeight())
+                    .setTransactionId(transactionId);
             tbFeeDetailsService.saveOrUpdate(businessFeeDetail);
         }
     }

BIN
sp-server/src/main/resources/static/day-fee-new.xlsx


BIN
sp-server/src/main/resources/static/day-fee.xlsx