Browse Source

营收管理数据展示

fllmoyu 4 years ago
parent
commit
a066e1af21

+ 3 - 2
common/src/main/java/com/jpsoft/bus/modules/base/dao/OrderInfoDAO.java

@@ -5,6 +5,7 @@ import java.util.Date;
 import java.util.List;
 
 import cn.hutool.core.date.DateTime;
+import com.jpsoft.bus.modules.bus.entity.ShiftInfo;
 import com.jpsoft.bus.modules.bus.entity.VehicleInfo;
 import org.springframework.stereotype.Repository;
 import com.jpsoft.bus.modules.base.entity.OrderInfo;
@@ -31,9 +32,9 @@ public interface OrderInfoDAO {
 
 	OrderInfo findByPassengerId(String passengerId);
 
-    BigDecimal paySum(List<VehicleInfo> vehicleInfoList, String companyId,String payName, Date beginOfDay, Date endOfDay, Boolean settlementFlag);
+    BigDecimal paySum(List<VehicleInfo> vehicleInfoList, List<ShiftInfo> shiftInfoList, String companyId, String payName, Date beginOfDay, Date endOfDay, Boolean settlementFlag);
 
-    Integer payNum(List<VehicleInfo> vehicleInfoList,String companyId, String payName, Date beginOfDay, Date endOfDay, Boolean settlementFlag);
+    Integer payNum(List<VehicleInfo> vehicleInfoList,List<ShiftInfo> shiftInfoList,String companyId, String payName, Date beginOfDay, Date endOfDay, Boolean settlementFlag);
 
 	List<OrderInfo> findBySearchParams(Map<String, Object> searchParams);
 }

+ 3 - 2
common/src/main/java/com/jpsoft/bus/modules/base/service/OrderInfoService.java

@@ -8,6 +8,7 @@ import java.util.Map;
 import cn.hutool.core.date.DateTime;
 import com.jpsoft.bus.modules.base.entity.OrderInfo;
 import com.github.pagehelper.Page;
+import com.jpsoft.bus.modules.bus.entity.ShiftInfo;
 import com.jpsoft.bus.modules.bus.entity.VehicleInfo;
 import com.jpsoft.bus.modules.common.dto.Sort;
 
@@ -39,9 +40,9 @@ public interface OrderInfoService {
 	 */
 	Boolean refund(String orderId,String userId) throws Exception;
 
-    BigDecimal paySum(List<VehicleInfo> vehicleInfoList,String companyId, String payName, Date beginOfDay, Date endOfDay, Boolean settlementFlag);
+    BigDecimal paySum(List<VehicleInfo> vehicleInfoList, List<ShiftInfo> shiftInfoList, String companyId, String payName, Date beginOfDay, Date endOfDay, Boolean settlementFlag);
 
-	Integer payNum(List<VehicleInfo> vehicleInfoList,String companyId, String payName, Date beginOfDay, Date endOfDay,Boolean settlementFlag);
+	Integer payNum(List<VehicleInfo> vehicleInfoList,List<ShiftInfo> shiftInfoList,String companyId, String payName, Date beginOfDay, Date endOfDay,Boolean settlementFlag);
 
 	List<OrderInfo> findBySearchParams(Map<String, Object> searchParams,List<Sort> sortList);
 }

+ 5 - 4
common/src/main/java/com/jpsoft/bus/modules/base/service/impl/OrderInfoServiceImpl.java

@@ -12,6 +12,7 @@ import com.jpsoft.bus.modules.base.dao.OrderLogDAO;
 import com.jpsoft.bus.modules.base.entity.OrderLog;
 import com.jpsoft.bus.modules.base.service.OrderLogService;
 import com.jpsoft.bus.modules.bus.entity.PassengerInfo;
+import com.jpsoft.bus.modules.bus.entity.ShiftInfo;
 import com.jpsoft.bus.modules.bus.entity.VehicleInfo;
 import com.jpsoft.bus.modules.bus.service.PassengerInfoService;
 import com.jpsoft.bus.modules.pay.service.AlipayService;
@@ -162,13 +163,13 @@ public class OrderInfoServiceImpl implements OrderInfoService {
 	}
 
 	@Override
-	public BigDecimal paySum(List<VehicleInfo> vehicleInfoList,String companyId, String payName, Date beginOfDay, Date endOfDay,Boolean settlementFlag) {
-		return orderInfoDAO.paySum(vehicleInfoList,companyId,payName,beginOfDay,endOfDay,settlementFlag);
+	public BigDecimal paySum(List<VehicleInfo> vehicleInfoList, List<ShiftInfo> shiftInfoList, String companyId, String payName, Date beginOfDay, Date endOfDay, Boolean settlementFlag) {
+		return orderInfoDAO.paySum(vehicleInfoList,shiftInfoList,companyId,payName,beginOfDay,endOfDay,settlementFlag);
 	}
 
 	@Override
-	public Integer payNum(List<VehicleInfo> vehicleInfoList,String companyId, String payName, Date beginOfDay, Date endOfDay, Boolean settlementFlag) {
-		return orderInfoDAO.payNum(vehicleInfoList,companyId,payName,beginOfDay,endOfDay,settlementFlag);
+	public Integer payNum(List<VehicleInfo> vehicleInfoList,List<ShiftInfo> shiftInfoList,String companyId, String payName, Date beginOfDay, Date endOfDay, Boolean settlementFlag) {
+		return orderInfoDAO.payNum(vehicleInfoList,shiftInfoList,companyId,payName,beginOfDay,endOfDay,settlementFlag);
 	}
 
 	@Override

+ 2 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/dao/ShiftInfoDAO.java

@@ -23,4 +23,6 @@ public interface ShiftInfoDAO {
     List<ShiftInfo> findByRouteIdAndStatus(String routeId, String status);
 
     List<ShiftInfo> findByRouteIdAndStatusAndStartStationId(String routeId, String status, String startStationId);
+
+	List<ShiftInfo> findVehicleByDriverId(Long driverId);
 }

+ 8 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/service/ShiftInfoService.java

@@ -1,11 +1,13 @@
 package com.jpsoft.bus.modules.bus.service;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import com.jpsoft.bus.modules.bus.entity.ShiftInfo;
 import com.github.pagehelper.Page;
 import com.jpsoft.bus.modules.bus.entity.VehicleInfo;
 import com.jpsoft.bus.modules.common.dto.Sort;
+import com.jpsoft.bus.modules.merchant.entity.AccountInfo;
 
 public interface ShiftInfoService {
 	ShiftInfo get(String id);
@@ -16,6 +18,8 @@ public interface ShiftInfoService {
 	List<ShiftInfo> list();
 	Page<ShiftInfo> pageSearch(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
 
+	List<ShiftInfo> listSearch(Map<String, Object> searchParams,List<Sort> sortList);
+
     List<ShiftInfo> findByDriverIdAndStatus(Long driverId, String status);
 
     List<ShiftInfo> findByVehicleIdAndStatus(String vehicleId, String status);
@@ -29,4 +33,8 @@ public interface ShiftInfoService {
     void finishShift(ShiftInfo shiftInfo);
 
     void stationChange(ShiftInfo shiftInfo, String stationId);
+
+	List<ShiftInfo> findVehicleByDriverId(Long driverId);
+
+    List<ShiftInfo> findByVehicleDateAccount(Date startDate, Date endDate, AccountInfo accountInfo);
 }

+ 99 - 4
common/src/main/java/com/jpsoft/bus/modules/bus/service/impl/ShiftInfoServiceImpl.java

@@ -1,9 +1,6 @@
 package com.jpsoft.bus.modules.bus.service.impl;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
 import javax.annotation.Resource;
 
 import com.jpsoft.bus.modules.base.entity.MergeOrderInfo;
@@ -13,6 +10,7 @@ import com.jpsoft.bus.modules.base.service.OrderInfoService;
 import com.jpsoft.bus.modules.bus.dto.StationStatusDTO;
 import com.jpsoft.bus.modules.bus.entity.*;
 import com.jpsoft.bus.modules.bus.service.*;
+import com.jpsoft.bus.modules.merchant.entity.AccountInfo;
 import com.sun.xml.bind.v2.TODO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
@@ -33,6 +31,18 @@ public class ShiftInfoServiceImpl implements ShiftInfoService {
 	@Autowired
 	private GpsService gpsService;
 
+	@Autowired
+	private VehicleInfoService vehicleInfoService;
+
+	@Autowired
+	private CompanyInfoService companyInfoService;
+
+	@Autowired
+	private RouteAccountService routeAccountService;
+
+	@Autowired
+	private DriverInfoService driverInfoService;
+
 	@Autowired
 	private MergeOrderInfoService mergeOrderInfoService;
 
@@ -100,6 +110,11 @@ public class ShiftInfoServiceImpl implements ShiftInfoService {
         return page;
 	}
 
+	@Override
+	public List<ShiftInfo> listSearch(Map<String, Object> searchParams, List<Sort> sortList) {
+		 return shiftInfoDAO.search(searchParams,sortList);
+	}
+
 	@Override
 	public List<ShiftInfo> findByDriverIdAndStatus(Long driverId, String status) {
 		return shiftInfoDAO.findByDriverIdAndStatus(driverId,status);
@@ -284,4 +299,84 @@ public class ShiftInfoServiceImpl implements ShiftInfoService {
 			}
 		}
 	}
+
+	@Override
+	public List<ShiftInfo> findVehicleByDriverId(Long driverId) {
+		return shiftInfoDAO.findVehicleByDriverId(driverId);
+	}
+
+	@Override
+	public List<ShiftInfo> findByVehicleDateAccount(Date startDate, Date endDate, AccountInfo accountInfo) {
+
+		List<ShiftInfo> list = new ArrayList<>();
+		List<String> roleList = Arrays.asList(accountInfo.getRoles().split(","));
+
+		for (String roleId : roleList) {
+			if ("1".equals(roleId)){
+				DriverInfo driverInfo = driverInfoService.findByPhone(accountInfo.getPhone());
+				if (driverInfo != null){
+					Map<String,Object> searchParams = new HashMap<>();
+					searchParams.put("driverId",driverInfo.getId());
+					if (startDate != null){
+						searchParams.put("startTime",startDate);
+					}
+					if (endDate != null){
+						searchParams.put("endTime",endDate);
+					}
+					List<Sort> sortList = new ArrayList<>();
+					sortList.add(new Sort("a.create_time","desc"));
+					List<ShiftInfo> shiftInfoList = listSearch(searchParams,sortList);
+					if (shiftInfoList.size() >0) {
+						for (ShiftInfo shiftInfo : shiftInfoList){
+							if (!list.contains(shiftInfo)){
+								list.add(shiftInfo);
+							}
+						}
+					}
+				}
+
+			}
+			else {
+				List<VehicleInfo> vehicleInfoList = new ArrayList<>();
+				if ("2".equals(roleId)){
+					List<VehicleInfo> vehicleInfoList1 = vehicleInfoService.findByAccountId(accountInfo.getId());
+					vehicleInfoList.addAll(vehicleInfoList1);
+				}
+				if ("3".equals(roleId)){
+					List<RouteAccount> routeAccountList = routeAccountService.findByAccountId(accountInfo.getId());
+					if (routeAccountList.size() > 0) {
+						for (RouteAccount routeAccount : routeAccountList) {
+							List<VehicleInfo> vehicleInfoList1 =vehicleInfoService.findByRouteId(routeAccount.getRouteId());
+							vehicleInfoList.addAll(vehicleInfoList1);
+						}
+					}
+				}
+				if ("4".equals(roleId)){
+					CompanyInfo companyInfo = companyInfoService.get(accountInfo.getCompanyId());
+					List<VehicleInfo> vehicleInfoList1 = vehicleInfoService.findByCompanyId(companyInfo.getId());
+					vehicleInfoList.addAll(vehicleInfoList1);
+				}
+				Map<String,Object> searchParams = new HashMap<>();
+				searchParams.put("vehicleInfoList",vehicleInfoList);
+				if (startDate != null){
+					searchParams.put("startTime",startDate);
+				}
+				if (endDate != null){
+					searchParams.put("endTime",endDate);
+				}
+				List<Sort> sortList = new ArrayList<>();
+				sortList.add(new Sort("a.create_time","desc"));
+				List<ShiftInfo> shiftInfoList = listSearch(searchParams,sortList);
+				if (shiftInfoList.size() >0) {
+					for (ShiftInfo shiftInfo : shiftInfoList){
+						if (!list.contains(shiftInfo)){
+							list.add(shiftInfo);
+						}
+					}
+				}
+			}
+
+		}
+		return list;
+	}
 }

+ 204 - 134
common/src/main/java/com/jpsoft/bus/modules/bus/service/impl/VehicleInfoServiceImpl.java

@@ -1,165 +1,235 @@
 package com.jpsoft.bus.modules.bus.service.impl;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
 import javax.annotation.Resource;
 
 import com.jpsoft.bus.modules.bus.dto.VehicleDTO;
-import com.jpsoft.bus.modules.bus.entity.CompanyInfo;
-import com.jpsoft.bus.modules.bus.entity.RouteAccount;
-import com.jpsoft.bus.modules.bus.service.CompanyInfoService;
-import com.jpsoft.bus.modules.bus.service.RouteAccountService;
+import com.jpsoft.bus.modules.bus.entity.*;
+import com.jpsoft.bus.modules.bus.service.*;
 import com.jpsoft.bus.modules.merchant.entity.AccountInfo;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import com.jpsoft.bus.modules.bus.dao.VehicleInfoDAO;
-import com.jpsoft.bus.modules.bus.entity.VehicleInfo;
-import com.jpsoft.bus.modules.bus.service.VehicleInfoService;
 import com.github.pagehelper.Page;
 import com.jpsoft.bus.modules.common.dto.Sort;
 import com.github.pagehelper.PageHelper;
 
 @Transactional
-@Component(value="vehicleInfoService")
+@Component(value = "vehicleInfoService")
 public class VehicleInfoServiceImpl implements VehicleInfoService {
-	@Resource(name="vehicleInfoDAO")
-	private VehicleInfoDAO vehicleInfoDAO;
-
-	@Autowired
-	private CompanyInfoService companyInfoService;
-
-	@Autowired
-	private RouteAccountService routeAccountService;
-
-	@Override
-	public VehicleInfo get(String id) {
-		// TODO Auto-generated method stub
-		return vehicleInfoDAO.get(id);
-	}
-
-	@Override
-	public int insert(VehicleInfo model) {
-		// TODO Auto-generated method stub
-		//model.setId(UUID.randomUUID().toString());
-
-		return vehicleInfoDAO.insert(model);
-	}
-
-	@Override
-	public int update(VehicleInfo model) {
-		// TODO Auto-generated method stub
-		return vehicleInfoDAO.update(model);
-	}
-
-	@Override
-	public int delete(String id) {
-		// TODO Auto-generated method stub
-		return vehicleInfoDAO.delete(id);
-	}
-
-	@Override
-	public boolean exist(String id) {
-		// TODO Auto-generated method stub
-		int count = vehicleInfoDAO.exist(id);
-
-		return count > 0 ? true : false;
-	}
-
-	@Override
-	public List<VehicleInfo> list() {
-		// TODO Auto-generated method stub
-		return vehicleInfoDAO.list();
-	}
-
-	@Override
-	public Page<VehicleInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
-        Page<VehicleInfo> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
-            vehicleInfoDAO.search(searchParams,sortList);
+    @Resource(name = "vehicleInfoDAO")
+    private VehicleInfoDAO vehicleInfoDAO;
+
+    @Autowired
+    private DriverInfoService driverInfoService;
+
+    @Autowired
+    private ShiftInfoService shiftInfoService;
+
+    @Autowired
+    private CompanyInfoService companyInfoService;
+
+    @Autowired
+    private RouteAccountService routeAccountService;
+
+    @Override
+    public VehicleInfo get(String id) {
+        // TODO Auto-generated method stub
+        return vehicleInfoDAO.get(id);
+    }
+
+    @Override
+    public int insert(VehicleInfo model) {
+        // TODO Auto-generated method stub
+        //model.setId(UUID.randomUUID().toString());
+
+        return vehicleInfoDAO.insert(model);
+    }
+
+    @Override
+    public int update(VehicleInfo model) {
+        // TODO Auto-generated method stub
+        return vehicleInfoDAO.update(model);
+    }
+
+    @Override
+    public int delete(String id) {
+        // TODO Auto-generated method stub
+        return vehicleInfoDAO.delete(id);
+    }
+
+    @Override
+    public boolean exist(String id) {
+        // TODO Auto-generated method stub
+        int count = vehicleInfoDAO.exist(id);
+
+        return count > 0 ? true : false;
+    }
+
+    @Override
+    public List<VehicleInfo> list() {
+        // TODO Auto-generated method stub
+        return vehicleInfoDAO.list();
+    }
+
+    @Override
+    public Page<VehicleInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList) {
+        Page<VehicleInfo> page = PageHelper.startPage(pageNumber, pageSize, count).doSelectPage(() -> {
+            vehicleInfoDAO.search(searchParams, sortList);
         });
 
         return page;
-	}
-
-	@Override
-	public VehicleInfo findByCodeAndCarNum(String activationCode, String carNum) {
-		return vehicleInfoDAO.findByCodeAndCarNum(activationCode,carNum);
-	}
-
-	@Override
-	public VehicleInfo findByGpsDeviceNo(String gpsDeviceNo) {
-		return vehicleInfoDAO.findByGpsDeviceNo(gpsDeviceNo);
-	}
-	@Override
-	public void updateGps(VehicleInfo v) {
-		vehicleInfoDAO.updateGps(v);
-	}
-
-	@Override
-	public List<VehicleInfo> findByCompanyId(String companyId) {
-		return vehicleInfoDAO.findByCompanyId(companyId);
-	}
-
-	@Override
-	public VehicleInfo findByCarNum(String carNum){
-		return vehicleInfoDAO.findByCarNum(carNum);
-	}
-
-	@Override
-	public List<VehicleInfo> getRunningList() {
-		return vehicleInfoDAO.getRunningList();
-	}
-
-	@Override
-	public List<VehicleInfo> findByRouteId(String routeId) {
-		return vehicleInfoDAO.findByRouteId(routeId);
-	}
-
-	@Override
-	public List<VehicleInfo> findByAccountId(String accountId) {
-		return vehicleInfoDAO.findByAccountId(accountId);
-	}
-
-	@Override
-	public List<VehicleInfo> getAllVehicleByAccount(AccountInfo accountInfo) {
-
-		CompanyInfo companyInfo = companyInfoService.get(accountInfo.getCompanyId());
-		List<VehicleInfo> vehicleInfoList = findByCompanyId(companyInfo.getId());
-		List<VehicleInfo> list = new ArrayList<>();
-		if (vehicleInfoList.size()>0){
-			for (VehicleInfo vehicleInfo : vehicleInfoList){
-				list.add(vehicleInfo);
+    }
+
+    @Override
+    public VehicleInfo findByCodeAndCarNum(String activationCode, String carNum) {
+        return vehicleInfoDAO.findByCodeAndCarNum(activationCode, carNum);
+    }
+
+    @Override
+    public VehicleInfo findByGpsDeviceNo(String gpsDeviceNo) {
+        return vehicleInfoDAO.findByGpsDeviceNo(gpsDeviceNo);
+    }
+
+    @Override
+    public void updateGps(VehicleInfo v) {
+        vehicleInfoDAO.updateGps(v);
+    }
+
+    @Override
+    public List<VehicleInfo> findByCompanyId(String companyId) {
+        return vehicleInfoDAO.findByCompanyId(companyId);
+    }
+
+    @Override
+    public VehicleInfo findByCarNum(String carNum) {
+        return vehicleInfoDAO.findByCarNum(carNum);
+    }
+
+    @Override
+    public List<VehicleInfo> getRunningList() {
+        return vehicleInfoDAO.getRunningList();
+    }
+
+    @Override
+    public List<VehicleInfo> findByRouteId(String routeId) {
+        return vehicleInfoDAO.findByRouteId(routeId);
+    }
+
+    @Override
+    public List<VehicleInfo> findByAccountId(String accountId) {
+        return vehicleInfoDAO.findByAccountId(accountId);
+    }
+
+    @Override
+    public List<VehicleInfo> getAllVehicleByAccount(AccountInfo accountInfo) {
+
+        List<VehicleInfo> list = new ArrayList<>();
+
+
+        if (StringUtils.isNotBlank(accountInfo.getRoles())) {
+            //账户角色
+            List<String> roleList = Arrays.asList(accountInfo.getRoles().split(","));
+
+            for (String roleId : roleList) {
+                //司机
+                if ("1".equals(roleId)) {
+                    DriverInfo driverInfo = driverInfoService.findByPhone(accountInfo.getPhone());
+                    if (driverInfo != null) {
+                        List<ShiftInfo> shiftInfoList = shiftInfoService.findVehicleByDriverId(driverInfo.getId());
+                        if (shiftInfoList.size() > 0) {
+                            for (ShiftInfo shiftInfo : shiftInfoList) {
+                                VehicleInfo vehicleInfo = get(shiftInfo.getVehicleId());
+                                if (!list.contains(vehicleInfo)) {
+                                    list.add(vehicleInfo);
+                                }
+                            }
+                        }
+                    }
+                }
+                //车主
+                if ("2".equals(roleId)) {
+                    List<VehicleInfo> vehicleInfoList = findByAccountId(accountInfo.getId());
+                    if (vehicleInfoList.size() > 0) {
+                        for (VehicleInfo vehicleInfo : vehicleInfoList) {
+                            if (!list.contains(vehicleInfo)) {
+                                list.add(vehicleInfo);
+                            }
+                        }
+                    }
+                }
+                //车队长
+                if ("3".equals(roleId)) {
+                    List<RouteAccount> routeAccountList = routeAccountService.findByAccountId(accountInfo.getId());
+                    if (routeAccountList.size() > 0) {
+                        for (RouteAccount routeAccount : routeAccountList) {
+                            List<VehicleInfo> vehicleInfoList1 = findByRouteId(routeAccount.getRouteId());
+                            if (vehicleInfoList1.size() > 0) {
+                                for (VehicleInfo vehicleInfo : vehicleInfoList1) {
+                                    if (!list.contains(vehicleInfo)) {
+                                        list.add(vehicleInfo);
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                }
+                //管理人员
+                if ("4".equals(roleId)) {
+                    CompanyInfo companyInfo = companyInfoService.get(accountInfo.getCompanyId());
+                    List<VehicleInfo> vehicleInfoList = findByCompanyId(companyInfo.getId());
+
+                    if (vehicleInfoList.size() > 0) {
+                        for (VehicleInfo vehicleInfo : vehicleInfoList) {
+                            if (!list.contains(vehicleInfo)) {
+                                list.add(vehicleInfo);
+                            }
+                        }
+
+                    }
+                }
+
+            }
+        }
+			/*CompanyInfo companyInfo = companyInfoService.get(accountInfo.getCompanyId());
+			List<VehicleInfo> vehicleInfoList = findByCompanyId(companyInfo.getId());
+
+			if (vehicleInfoList.size()>0){
+				for (VehicleInfo vehicleInfo : vehicleInfoList){
+					list.add(vehicleInfo);
+				}
 			}
-		}
-
-		List<RouteAccount> routeAccountList = routeAccountService.findByAccountId(accountInfo.getId());
-		if (routeAccountList.size()>0){
-			for (RouteAccount routeAccount : routeAccountList){
-				List<VehicleInfo> vehicleInfoList1 = findByRouteId(routeAccount.getRouteId());
-				if (vehicleInfoList1.size()>0){
-					for (VehicleInfo vehicleInfo:vehicleInfoList1){
-						if (!list.contains(vehicleInfo)){
-							list.add(vehicleInfo);
+
+			List<RouteAccount> routeAccountList = routeAccountService.findByAccountId(accountInfo.getId());
+			if (routeAccountList.size()>0){
+				for (RouteAccount routeAccount : routeAccountList){
+					List<VehicleInfo> vehicleInfoList1 = findByRouteId(routeAccount.getRouteId());
+					if (vehicleInfoList1.size()>0){
+						for (VehicleInfo vehicleInfo:vehicleInfoList1){
+							if (!list.contains(vehicleInfo)){
+								list.add(vehicleInfo);
+							}
 						}
 					}
 				}
 			}
-		}
 
-		List<VehicleInfo> vehicleInfoList2 = findByAccountId(accountInfo.getId());
-		if (vehicleInfoList2.size() > 0){
-			for (VehicleInfo vehicleInfo : vehicleInfoList2){
-				if (!list.contains(vehicleInfo)){
-					list.add(vehicleInfo);
+			List<VehicleInfo> vehicleInfoList2 = findByAccountId(accountInfo.getId());
+			if (vehicleInfoList2.size() > 0){
+				for (VehicleInfo vehicleInfo : vehicleInfoList2){
+					if (!list.contains(vehicleInfo)){
+						list.add(vehicleInfo);
+					}
 				}
-			}
 
-		}
+			}
+		}*/
 
 
-		return list;
-	}
+        return list;
+    }
 }

+ 10 - 0
common/src/main/resources/mapper/base/OrderInfo.xml

@@ -301,6 +301,11 @@
 					#{item.id}
 				</foreach>
 			</if>
+			<if test="shiftInfoList!= null">
+				<foreach item="item" collection="shiftInfoList" open="and b.vehicle_shift_id in (" separator="," close=")">
+					#{item.id}
+				</foreach>
+			</if>
 			<if test="beginOfDay != null">
 				<![CDATA[
 			and	a.pay_time >= #{beginOfDay}
@@ -337,6 +342,11 @@
 					#{item.id}
 				</foreach>
 			</if>
+			<if test="shiftInfoList!= null">
+				<foreach item="item" collection="shiftInfoList" open="and b.vehicle_shift_id in (" separator="," close=")">
+					#{item.id}
+				</foreach>
+			</if>
 			<if test="beginOfDay != null">
 				<![CDATA[
 			and	a.pay_time >= #{beginOfDay}

+ 11 - 0
common/src/main/resources/mapper/bus/ShiftInfo.xml

@@ -151,6 +151,9 @@
 					#{item.id}
 				</foreach>
 			</if>
+			<if test="searchParams.driverId">
+				and a.driver_id = #{searchParams.driverId}
+			</if>
 			<if test="searchParams.startTime != null">
 				<![CDATA[
 					and a.create_time >= #{searchParams.startTime}
@@ -202,4 +205,12 @@
 		and start_station_id = #{startStationId}
 		]]>
 	</select>
+	<select id="findVehicleByDriverId" resultMap="ShiftInfoMap">
+		<![CDATA[
+		select * from bus_shift_info
+		where del_flag = 0
+		and driver_id = #{driverId}
+		GROUP BY vehicle_id
+		]]>
+	</select>
 </mapper>

+ 72 - 35
web/src/main/java/com/jpsoft/bus/modules/mobile/controller/MerchantApiController.java

@@ -272,25 +272,38 @@ public class MerchantApiController {
             }
 
             //      if (vehicleInfoList.size()>0){
-            //今日收益
-            BigDecimal todaySum = orderInfoService.paySum(vehicleInfoList, null, null, DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
-            if (todaySum != null) {
-                todayRevenue = todaySum;
+            List<ShiftInfo> shiftInfoList = shiftInfoService.findByVehicleDateAccount(DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()),accountInfo);
+
+            if (shiftInfoList.size()>0){
+                //今日收益
+                BigDecimal todaySum = orderInfoService.paySum(null, shiftInfoList,null, null, DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
+                if (todaySum != null) {
+                    todayRevenue = todaySum;
+                }
             }
-            //昨日收益
-            BigDecimal yesterdaySum = orderInfoService.paySum(vehicleInfoList, null, null, DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1)), DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1)), null);
-            if (yesterdaySum != null) {
-                yesterdayRevenue = yesterdaySum;
+
+            List<ShiftInfo> shiftInfoList1 = shiftInfoService.findByVehicleDateAccount(DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1)), DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1)),accountInfo);
+            if (shiftInfoList1.size()>0){
+                //昨日收益
+                BigDecimal yesterdaySum = orderInfoService.paySum(null, shiftInfoList1,null, null, DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1)), DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1)), null);
+                if (yesterdaySum != null) {
+                    yesterdayRevenue = yesterdaySum;
+                }
             }
 
-            //总收益
-            BigDecimal totalSum = orderInfoService.paySum(vehicleInfoList, null, null, null, new cn.hutool.core.date.DateTime(), null);
+            List<ShiftInfo> shiftInfoList2 = shiftInfoService.findByVehicleDateAccount(null, new cn.hutool.core.date.DateTime(),accountInfo);
+            if (shiftInfoList2.size()>0){
+                //总收益
+                BigDecimal totalSum = orderInfoService.paySum(null, shiftInfoList2,null, null, null, new cn.hutool.core.date.DateTime(), null);
 
-            if (totalSum != null) {
-                totalRevenue = totalSum;
+                if (totalSum != null) {
+                    totalRevenue = totalSum;
+                }
             }
 
 
+
+
             //      }
 
             Map<String, Object> map = new HashMap<>();
@@ -346,36 +359,41 @@ public class MerchantApiController {
             Integer num = 0;
 
 
+            List<ShiftInfo> shiftInfoList = shiftInfoService.findByVehicleDateAccount(DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), accountInfo);
             //  if (vehicleInfoList.size()>0){
+
+            if (shiftInfoList.size() > 0) {
+
+
             //微信
-            BigDecimal wechatSum = orderInfoService.paySum(vehicleInfoList, null, "wechat", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
+            BigDecimal wechatSum = orderInfoService.paySum(null, shiftInfoList, null, "wechat", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
             if (wechatSum != null) {
                 wechatRevenue = wechatSum;
             }
             //支付宝
-            BigDecimal alipaySum = orderInfoService.paySum(vehicleInfoList, null, "alipay", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
+            BigDecimal alipaySum = orderInfoService.paySum(null, shiftInfoList, null, "alipay", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
             if (alipaySum != null) {
                 alipayRevenue = alipaySum;
             }
 
             //现金
-            BigDecimal cashSum = orderInfoService.paySum(vehicleInfoList, null, "cash", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
+            BigDecimal cashSum = orderInfoService.paySum(null, shiftInfoList, null, "cash", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
             if (cashSum != null) {
                 cashRevenue = cashSum;
             }
 
             //车票
-            BigDecimal ticketSum = orderInfoService.paySum(vehicleInfoList, null, "ticket", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
+            BigDecimal ticketSum = orderInfoService.paySum(null, shiftInfoList, null, "ticket", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
             if (ticketSum != null) {
                 ticketRevenue = ticketSum;
             }
 
-            Integer ticketNum = orderInfoService.payNum(vehicleInfoList, null, null, DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
+            Integer ticketNum = orderInfoService.payNum(null, shiftInfoList, null, null, DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), null);
             if (ticketNum != null) {
                 num = ticketNum;
             }
 
-
+        }
             //      }
 
             Map<String, Object> map = new HashMap<>();
@@ -590,17 +608,22 @@ public class MerchantApiController {
             if (accountInfo == null) {
                 throw new Exception("请重新登录");
             }
+            List<VehicleDTO> list = new ArrayList<>();
 
-            List<VehicleInfo> vehicleInfoList = vehicleInfoService.getAllVehicleByAccount(accountInfo);
 
-            List<VehicleDTO> list = new ArrayList<>();
-            if (vehicleInfoList.size() > 0) {
-                for (VehicleInfo vehicleInfo : vehicleInfoList) {
-                    VehicleDTO vehicleDTO = new VehicleDTO();
-                    BeanUtils.copyProperties(vehicleInfo, vehicleDTO);
-                    list.add(vehicleDTO);
+            if (StringUtils.isNotBlank(accountInfo.getRoles())){
+                List<VehicleInfo> vehicleInfoList = vehicleInfoService.getAllVehicleByAccount(accountInfo);
+
+
+                if (vehicleInfoList.size() > 0) {
+                    for (VehicleInfo vehicleInfo : vehicleInfoList) {
+                        VehicleDTO vehicleDTO = new VehicleDTO();
+                        BeanUtils.copyProperties(vehicleInfo, vehicleDTO);
+                        list.add(vehicleDTO);
+                    }
                 }
             }
+
             messageResult.setData(list);
             messageResult.setResult(true);
             messageResult.setCode(200);
@@ -628,10 +651,19 @@ public class MerchantApiController {
         try {
 
             ProfitListDTO profitListDTO = new ProfitListDTO();
+            List<ProfitListDTO> list = new ArrayList<>();
+            BigDecimal revenue = BigDecimal.ZERO;
+            Date startDate = DateUtil.endOfDay(new Date());
+            Date newDate = DateUtil.beginOfMonth(new Date());
+            String dateDesc = DateUtil.format(newDate, "yyyy年MM月");
             AccountInfo accountInfo = accountInfoService.get(subject);
             if (accountInfo == null) {
                 throw new Exception("请重新登录");
             }
+
+            if (StringUtils.isBlank(accountInfo.getRoles())){
+                throw new Exception("账户未分配角色");
+            }
             CompanyInfo companyInfo = companyInfoService.get(accountInfo.getCompanyId());
             List<VehicleInfo> vehicleInfoList = new ArrayList<>();
             if (StringUtils.isNotBlank(vehicleId)) {
@@ -644,11 +676,13 @@ public class MerchantApiController {
             }
 
 
+
+
+
+
+
             int n = 0;
             //开始计算的日期
-            Date startDate = DateUtil.endOfDay(new Date());
-            Date newDate = DateUtil.beginOfMonth(new Date());
-            String dateDesc = DateUtil.format(newDate, "yyyy年MM月");
             if (StringUtils.isNotBlank(dateStr)) {
                 Date date = DateUtil.parse(dateStr, "yyyy-MM");
 
@@ -664,23 +698,24 @@ public class MerchantApiController {
                 n = DateUtil.thisDayOfMonth();
             }
 
-            BigDecimal revenue = BigDecimal.ZERO;
+
 
             profitListDTO.setDateDesc(dateDesc);
 
 
-            List<ProfitListDTO> list = new ArrayList<>();
+
             if (n > 0) {
                 for (int m = 0; m < n; m++) {
                     ProfitListDTO profitListDTO1 = new ProfitListDTO();
                     Date baseDate = DateUtil.offsetDay(startDate, -m);
                     Date baseStartDate = DateUtil.beginOfDay(baseDate);
                     BigDecimal baseSum = BigDecimal.ZERO;
-                    //  if (vehicleInfoList.size()>0){
-                    baseSum = orderInfoService.paySum(vehicleInfoList, null, payName, baseStartDate, baseDate, null);
+                    List<ShiftInfo> shiftInfoList = shiftInfoService.findByVehicleDateAccount(baseStartDate,baseDate,accountInfo);
+                      if (shiftInfoList.size()>0){
+                    baseSum = orderInfoService.paySum(null,shiftInfoList, null, payName, null, null, null);
 
 
-                    //    }
+                        }
 
                     profitListDTO1.setDateDesc(DateUtil.format(baseDate, "yyyy-MM-dd"));
                     profitListDTO1.setRevenue(baseSum == null ? BigDecimal.ZERO : baseSum);
@@ -914,9 +949,11 @@ public class MerchantApiController {
             }
             CompanyInfo companyInfo = companyInfoService.get(accountInfo.getCompanyId());
             List<VehicleInfo> vehicleInfoList = vehicleInfoService.findByCompanyId(companyInfo.getId());
+
+            List<ShiftInfo> shiftInfoList = shiftInfoService.findByVehicleDateAccount(DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()),accountInfo);
             //   if (vehicleInfoList.size()>0){
-            BigDecimal wechatTodaySum = orderInfoService.paySum(null, companyInfo.getId(), "wechat", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), false);
-            BigDecimal alipayTodaySum = orderInfoService.paySum(null, companyInfo.getId(), "alipay", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), false);
+            BigDecimal wechatTodaySum = orderInfoService.paySum(null,null, companyInfo.getId(), "wechat", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), false);
+            BigDecimal alipayTodaySum = orderInfoService.paySum(null, null,companyInfo.getId(), "alipay", DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()), false);
             todayRevenue = (wechatTodaySum == null ? BigDecimal.ZERO : wechatTodaySum).add(alipayTodaySum == null ? BigDecimal.ZERO : alipayTodaySum);
 
             //    }