Browse Source

Merge branch 'main' of http://47.98.207.247:3000/lsq/ship-ota-server into main

luofeiyun 1 week ago
parent
commit
050efa0695

+ 19 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/OrderJzDetailController.java

@@ -228,6 +228,11 @@ public class OrderJzDetailController {
       vo.setRemark(detail.getRemark());
       vo.setSignTime(detail.getSignTime());
       vo.setDispatchNo(detail.getDispatchNo());
+      vo.setBusNumber(detail.getBusNumber());
+        vo.setDriverName(detail.getDriverName());
+        vo.setDriverPhone(detail.getDriverPhone());
+        vo.setReceiverName(detail.getReceiverName());
+        vo.setReceiverPhone(detail.getReceiverPhone());
       vo.setReservationInfo(detail.getRemark());
 
       // 站点字典转义
@@ -387,6 +392,11 @@ public class OrderJzDetailController {
       vo.setRemark(detail.getRemark());
       vo.setSignTime(detail.getSignTime());
       vo.setDispatchNo(detail.getDispatchNo());
+        vo.setBusNumber(detail.getBusNumber());
+        vo.setDriverName(detail.getDriverName());
+        vo.setDriverPhone(detail.getDriverPhone());
+        vo.setReceiverName(detail.getReceiverName());
+        vo.setReceiverPhone(detail.getReceiverPhone());
       vo.setReservationInfo(detail.getRemark());
 
       // 站点字典转义
@@ -453,5 +463,14 @@ public class OrderJzDetailController {
     ExcelUtils.write(response, "分车记录.xls", "数据", OrderJzDispatchRecordRespVO.class, list);
   }
 
+  // ==================== 分车记录编辑接口 ====================
+
+  @PostMapping("/dispatch/record/update")
+  @Operation(summary = "更新分车记录")
+  /*@PreAuthorize("@ss.hasPermission('trade:order-jz-detail:dispatch')")*/
+  public CommonResult<Boolean> updateDispatchRecord(@Valid @RequestBody OrderJzDispatchSaveReqVO updateReqVO) {
+    orderJzDispatchService.updateDispatchRecord(updateReqVO);
+    return success(true);
+  }
 
 }

+ 17 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/vo/OrderJzDetailExportVO.java

@@ -38,7 +38,23 @@ public class OrderJzDetailExportVO {
     @ExcelProperty(value = "分车号", index = 9)
     private String dispatchNo;
 
-    @ExcelProperty(value = "预约情况", index = 10)
+    @ExcelProperty(value = "车牌号", index = 10)
+    private String busNumber;
+
+    @ExcelProperty(value = "司机姓名", index = 11)
+    private String driverName;
+
+    @ExcelProperty(value = "司机联系电话", index = 12)
+    private String driverPhone;
+
+    @ExcelProperty(value = "接站人员", index = 13)
+    private String receiverName;
+
+    @ExcelProperty(value = "接站人电话", index = 14)
+    private String receiverPhone;
+
+
+    @ExcelProperty(value = "预约情况", index = 15)
     private String reservationInfo;
 
 }

+ 3 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/vo/OrderJzDispatchRecordRespVO.java

@@ -12,6 +12,9 @@ import java.io.Serializable;
 @ExcelIgnoreUnannotated
 public class OrderJzDispatchRecordRespVO implements Serializable {
 
+    @Schema(description = "分车记录ID", example = "1")
+    private Long id;
+
     @Schema(description = "分车号", example = "1号车")
     @ExcelProperty(value = "分车号", index = 0)
     private String dispatchNo;

+ 17 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/orderjzdetail/OrderJzDetailDO.java

@@ -84,6 +84,8 @@ public class OrderJzDetailDO extends BaseDO {
      */
     private String extendTicketNo;
 
+
+
     /**
      * 分车ID
      */
@@ -120,4 +122,19 @@ public class OrderJzDetailDO extends BaseDO {
     @TableField(exist = false)
     private String roomModelName;
 
+    @TableField(exist = false)
+    private String busNumber;
+
+    @TableField(exist = false)
+    private String driverName;
+
+    @TableField(exist = false)
+    private String driverPhone;
+
+    @TableField(exist = false)
+    private String receiverName;
+
+    @TableField(exist = false)
+    private String receiverPhone;
+
 }

+ 7 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDispatchService.java

@@ -69,5 +69,12 @@ public interface OrderJzDispatchService {
      */
     List<OrderJzDispatchRecordRespVO> getDispatchRecordExportList(OrderJzDispatchPageReqVO pageReqVO);
 
+    /**
+     * 更新分车记录
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateDispatchRecord(@Valid OrderJzDispatchSaveReqVO updateReqVO);
+
 
 }

+ 33 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDispatchServiceImpl.java

@@ -1,6 +1,8 @@
 package com.yc.ship.module.trade.service.orderjzdetail;
 
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.OrderJzDispatchBatchReqVO;
 import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.OrderJzDispatchPageReqVO;
@@ -184,5 +186,36 @@ public class OrderJzDispatchServiceImpl implements OrderJzDispatchService {
         return orderJzDispatchMapper.selectDispatchRecordPage(pageReqVO, 0, Integer.MAX_VALUE);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateDispatchRecord(@Valid OrderJzDispatchSaveReqVO updateReqVO) {
+        // 构建更新条件
+        LambdaUpdateWrapper<OrderJzDispatchDO> updateWrapper = new LambdaUpdateWrapper<>();
+
+        // 如果有分车组团号,通过分车号、分车组团号、id三个条件更新
+        if (StrUtil.isNotBlank(updateReqVO.getGroupNo())) {
+            updateWrapper.eq(OrderJzDispatchDO::getDispatchNo, updateReqVO.getDispatchNo())
+                    .eq(OrderJzDispatchDO::getGroupNo, updateReqVO.getGroupNo())
+                    .eq(OrderJzDispatchDO::getId, updateReqVO.getId());
+        } else {
+            // 如果没有分车组团号,通过分车号、id两个条件更新
+            updateWrapper.eq(OrderJzDispatchDO::getDispatchNo, updateReqVO.getDispatchNo())
+                    .eq(OrderJzDispatchDO::getId, updateReqVO.getId());
+        }
+
+        // 构建更新对象
+        OrderJzDispatchDO updateObj = OrderJzDispatchDO.builder()
+                .busNumber(updateReqVO.getBusNumber())
+                .driverName(updateReqVO.getDriverName())
+                .driverPhone(updateReqVO.getDriverPhone())
+                .receiverName(updateReqVO.getReceiverName())
+                .receiverPhone(updateReqVO.getReceiverPhone())
+                .remark(updateReqVO.getRemark())
+                .build();
+
+        // 执行更新
+        orderJzDispatchMapper.update(updateObj, updateWrapper);
+    }
+
 
 }

+ 4 - 3
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/orderjzdetail/OrderJzDetailMapper.xml

@@ -20,6 +20,7 @@
         inner join trade_visitor u on u.credential_no = d.id_card and u.order_id = oz.order_id
         left join resource_room_model rm on u.room_model_id = rm.id
         left join trade_order_jz_dispatch dj on d.dispatch_id = dj.id
+        inner join trade_detail td on td.order_id = o.id and td.product_id != 2034458675435925505
         where d.deleted = 0 and o.voyage_id = #{vo.voyageId}
         <if test="vo.idCard != null">
             and d.id_card like concat('%', #{vo.idCard}, '%')
@@ -50,7 +51,7 @@
     <select id="selectVisitorExportList"
             resultType="com.yc.ship.module.trade.dal.dataobject.orderjzdetail.OrderJzDetailDO">
         select distinct d.* , r.direction , rm.name as room_model_name,
-        SUBSTRING_INDEX(o.order_no, '-', -1) as orderNo, dj.dispatch_no as dispatchNo, dj.group_no as groupNo
+        SUBSTRING_INDEX(o.order_no, '-', -1) as orderNo, dj.dispatch_no as dispatchNo, dj.group_no as groupNo, dj.bus_number as busNumber,dj.driver_name as driverName,dj.driver_phone as driverPhone,dj.receiver_name as receiverName,dj.receiver_phone as receiverPhone
         from trade_order_jz_detail d
         inner join trade_order_jz oz on d.jz_id = oz.id
         inner join trade_order o on o.deleted = 0 and o.id = oz.order_id
@@ -59,7 +60,7 @@
         inner join trade_visitor u on u.credential_no = d.id_card and u.order_id = oz.order_id
         left join resource_room_model rm on u.room_model_id = rm.id
         left join trade_order_jz_dispatch dj on d.dispatch_id = dj.id
-        inner join trade_detail td on td.order_id = o.id and td.product_id = 2034458675435925505
+        inner join trade_detail td on td.order_id = o.id and td.product_id != 2034458675435925505
         where d.deleted = 0 and o.voyage_id = #{vo.voyageId}
         <if test="vo.idCard != null and vo.idCard != ''">
             and d.id_card like concat('%', #{vo.idCard}, '%')
@@ -157,7 +158,7 @@
     <select id="selectGiftExportList"
             resultType="com.yc.ship.module.trade.dal.dataobject.orderjzdetail.OrderJzDetailDO">
         select distinct d.* , r.direction , rm.name as room_model_name,
-        SUBSTRING_INDEX(o.order_no, '-', -1) as orderNo, dj.dispatch_no as dispatchNo, dj.group_no as groupNo
+        SUBSTRING_INDEX(o.order_no, '-', -1) as orderNo, dj.dispatch_no as dispatchNo, dj.group_no as groupNo, dj.bus_number as busNumber,dj.driver_name as driverName,dj.driver_phone as driverPhone,dj.receiver_name as receiverName,dj.receiver_phone as receiverPhone
         from trade_order_jz_detail d
         inner join trade_order_jz oz on d.jz_id = oz.id
         inner join trade_order o on o.deleted = 0 and o.id = oz.order_id

+ 32 - 24
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/orderjzdispatch/OrderJzDispatchMapper.xml

@@ -56,47 +56,55 @@
     <select id="selectDispatchRecordPage"
             resultType="com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.OrderJzDispatchRecordRespVO">
         SELECT
-            MAX(dispatch_no) AS dispatchNo,
-            MAX(group_no) AS groupNo,
-            MAX(bus_number) AS busNumber,
-            SUM(passenger_count) AS passengerCount,
-            MAX(driver_name) AS driverName,
-            MAX(driver_phone) AS driverPhone,
-            MAX(receiver_name) AS receiverName,
-            MAX(receiver_phone) AS receiverPhone,
-            MAX(remark) AS remark
-        FROM trade_order_jz_dispatch
+             MAX(tojd.id) AS id,
+            MAX(tojd.dispatch_no) AS dispatchNo,
+            MAX(tojd.group_no) AS groupNo,
+            MAX(tojd.bus_number) AS busNumber,
+            count(d.dispatch_id) AS passengerCount,
+            MAX(tojd.driver_name) AS driverName,
+            MAX(tojd.driver_phone) AS driverPhone,
+            MAX(tojd.receiver_name) AS receiverName,
+            MAX(tojd.receiver_phone) AS receiverPhone,
+            MAX(tojd.remark) AS remark
+        FROM trade_order_jz_dispatch tojd inner join trade_order_jz_detail d on tojd.id = d.dispatch_id
+        inner join trade_order_jz oz on d.jz_id = oz.id
+        inner join trade_order o on o.deleted = 0 and o.id = oz.order_id
         <where>
-            deleted = 0
-            AND dispatch_no IS NOT NULL
-            AND dispatch_no != ''
+            tojd.deleted = 0
+            AND tojd.dispatch_no IS NOT NULL
+            AND tojd.dispatch_no != ''
             <if test="reqVO.voyageId != null">
-                AND voyage_id = #{reqVO.voyageId}
+                AND tojd.voyage_id = #{reqVO.voyageId}
             </if>
             <if test="reqVO.dispatchNo != null and reqVO.dispatchNo != ''">
-                AND dispatch_no LIKE CONCAT('%', #{reqVO.dispatchNo}, '%')
+                AND tojd.dispatch_no LIKE CONCAT('%', #{reqVO.dispatchNo}, '%')
             </if>
         </where>
-        GROUP BY dispatch_no,group_no
-        ORDER BY MAX(id) DESC
+        GROUP BY tojd.dispatch_no,tojd.group_no
+        ORDER BY MAX(tojd.id) DESC
         LIMIT #{limit} OFFSET #{offset}
     </select>
 
     <!-- 查询分车记录总数 -->
     <select id="selectDispatchRecordCount" resultType="java.lang.Long">
-        SELECT COUNT(DISTINCT dispatch_no)
-        FROM trade_order_jz_dispatch
+        SELECT
+        count(distinct tojd.id)
+        FROM trade_order_jz_dispatch tojd inner join trade_order_jz_detail d on tojd.id = d.dispatch_id
+        inner join trade_order_jz oz on d.jz_id = oz.id
+        inner join trade_order o on o.deleted = 0 and o.id = oz.order_id
         <where>
-            deleted = 0
-            AND dispatch_no IS NOT NULL
-            AND dispatch_no != ''
+            tojd.deleted = 0
+            AND tojd.dispatch_no IS NOT NULL
+            AND tojd.dispatch_no != ''
             <if test="reqVO.voyageId != null">
-                AND voyage_id = #{reqVO.voyageId}
+                AND tojd.voyage_id = #{reqVO.voyageId}
             </if>
             <if test="reqVO.dispatchNo != null and reqVO.dispatchNo != ''">
-                AND dispatch_no LIKE CONCAT('%', #{reqVO.dispatchNo}, '%')
+                AND tojd.dispatch_no LIKE CONCAT('%', #{reqVO.dispatchNo}, '%')
             </if>
         </where>
+        GROUP BY tojd.dispatch_no,tojd.group_no
+        ORDER BY MAX(tojd.id) DESC
     </select>
 
 </mapper>