Browse Source

收班时修改乘客下车状态

fllmoyu 4 years ago
parent
commit
20d88ae7c0

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

@@ -23,4 +23,6 @@ public interface PassengerInfoDAO {
     List<PassengerInfo> findByOpenIdAndStatus(String openId, String status,String payStatus);
 
 	List<PassengerInfo> findByOpenIdAndVehicleShiftId(String openId, String vehicleShiftId, String status, String payStatus);
+
+    List<PassengerInfo> findByShiftIdAndStatus(String shiftId, String status);
 }

+ 14 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/dto/PassengerRecordDTO.java

@@ -29,6 +29,20 @@ public class PassengerRecordDTO {
 
     private BigDecimal totalFee;
 
+    private String status;
+
+    private String statusName;
+
+    public String getStatusName(String status){
+        String statusName = "未过期";
+
+        if (!"1".equals(status)){
+            statusName = "已过期";
+        }
+
+        return statusName;
+    }
+
 
     public String getTicketTypeName(String ticketType){
         String ticketTypeName = "成人票";

+ 2 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/service/PassengerInfoService.java

@@ -37,4 +37,6 @@ public interface PassengerInfoService {
     List<PassengerInfo> findByOpenIdAndStatus(String openId, String status,String payStatus);
 
 	List<PassengerInfo> findByOpenIdAndVehicleShiftId(String openId, String vehicleShiftId, String status,String payStatus);
+
+    List<PassengerInfo> findByShiftIdAndStatus(String shiftId, String status);
 }

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

@@ -25,4 +25,6 @@ public interface ShiftInfoService {
     List<ShiftInfo> findByRouteIdAndStatus(String routeId, String status);
 
     List<ShiftInfo> findByRouteIdAndStatusAndStartStationId(String routeId, String status, String startStationId);
+
+    void finishShift(ShiftInfo shiftInfo);
 }

+ 5 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/service/impl/PassengerInfoServiceImpl.java

@@ -484,4 +484,9 @@ public class PassengerInfoServiceImpl implements PassengerInfoService {
     public List<PassengerInfo> findByOpenIdAndVehicleShiftId(String openId, String vehicleShiftId, String status, String payStatus) {
         return passengerInfoDAO.findByOpenIdAndVehicleShiftId(openId,vehicleShiftId,status,payStatus);
     }
+
+    @Override
+    public List<PassengerInfo> findByShiftIdAndStatus(String shiftId, String status) {
+        return passengerInfoDAO.findByShiftIdAndStatus(shiftId,status);
+    }
 }

+ 27 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/service/impl/ShiftInfoServiceImpl.java

@@ -7,8 +7,10 @@ import java.util.UUID;
 import javax.annotation.Resource;
 
 import com.jpsoft.bus.modules.bus.dto.StationStatusDTO;
+import com.jpsoft.bus.modules.bus.entity.PassengerInfo;
 import com.jpsoft.bus.modules.bus.entity.VehicleInfo;
 import com.jpsoft.bus.modules.bus.service.GpsService;
+import com.jpsoft.bus.modules.bus.service.PassengerInfoService;
 import com.sun.xml.bind.v2.TODO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +32,9 @@ public class ShiftInfoServiceImpl implements ShiftInfoService {
 	@Autowired
 	private GpsService gpsService;
 
+	@Autowired
+	private PassengerInfoService passengerInfoService;
+
 	@Override
 	public ShiftInfo get(String id) {
 		// TODO Auto-generated method stub
@@ -129,4 +134,26 @@ public class ShiftInfoServiceImpl implements ShiftInfoService {
 	public List<ShiftInfo> findByRouteIdAndStatusAndStartStationId(String routeId, String status, String startStationId) {
 		return shiftInfoDAO.findByRouteIdAndStatusAndStartStationId(routeId,status,startStationId);
 	}
+
+	@Override
+	public void finishShift(ShiftInfo shiftInfo) {
+
+
+		shiftInfo.setStatus("2");
+		shiftInfo.setFinishTime(new Date());
+		shiftInfo.setUpdateTime(new Date());
+		update(shiftInfo);
+
+		//修改当前班次下所有未下次乘客为下车状态
+		List<PassengerInfo> passengerInfoList = passengerInfoService.findByShiftIdAndStatus(shiftInfo.getId(),"1");
+		if (passengerInfoList.size()>0){
+			for (PassengerInfo passengerInfo : passengerInfoList){
+				passengerInfo.setStatus("2");
+				passengerInfo.setDownTime(new Date());
+				passengerInfo.setUpdateTime(new Date());
+				passengerInfo.setUpdateBy(shiftInfo.getUpdateBy());
+				passengerInfoService.update(passengerInfo);
+			}
+		}
+	}
 }

+ 9 - 0
common/src/main/resources/mapper/bus/PassengerInfo.xml

@@ -255,4 +255,13 @@
         and t3.id_ = #{vehicleShiftId}
         order by t1.create_time asc
     </select>
+
+    <select id="findByShiftIdAndStatus" resultMap="PassengerInfoMap">
+        <![CDATA[
+        select * from bus_passenger_info
+        where del_flag = 0
+        and vehicle_shift_id = #{shiftId}
+        and status_ = #{status}
+        ]]>
+    </select>
 </mapper>

+ 7 - 3
web/src/main/java/com/jpsoft/bus/modules/driver/controller/DriverApiController.java

@@ -1118,15 +1118,19 @@ public class DriverApiController {
             if (shiftInfoList.size() == 0){
                 throw new Exception("车辆没有相关班次信息");
             }
-
             ShiftInfo shiftInfo = shiftInfoList.get(0);
+            shiftInfo.setUpdateBy(subject);
+            //收班
+            shiftInfoService.finishShift(shiftInfo);
+
 
-            shiftInfo.setStatus("2");
+
+            /*shiftInfo.setStatus("2");
             shiftInfo.setFinishTime(new Date());
             shiftInfo.setUpdateTime(new Date());
             shiftInfo.setUpdateBy(subject);
 
-            shiftInfoService.update(shiftInfo);
+            shiftInfoService.update(shiftInfo);*/
 
             //todo 填写具体代码
             messageResult.setData(shiftInfo.getFinishTime());

+ 2 - 0
web/src/main/java/com/jpsoft/bus/modules/mobile/controller/PassengerApiController.java

@@ -1411,6 +1411,8 @@ public class PassengerApiController {
                     passengerRecordDTO.setGoodTicket(orderInfo.getGoodsTicket());
                     passengerRecordDTO.setPayTime(DateUtil.format(orderInfo.getPayTime(), "yyyy-MM-dd HH:mm:ss"));
                     passengerRecordDTO.setTotalFee(orderInfo.getTotalFee());
+                    passengerRecordDTO.setStatus(passengerInfo.getStatus());
+                    passengerRecordDTO.setStatusName(passengerRecordDTO.getStatusName(passengerInfo.getStatus()));
                     list.add(passengerRecordDTO);
 
                 }