Переглянути джерело

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

lishiqiang 1 тиждень тому
батько
коміт
b57d1a7062
14 змінених файлів з 343 додано та 7 видалено
  1. 7 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/OrderJzDetailController.java
  2. 19 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/orderjzdetail/vo/OrderJzDetailBatchSignReqVO.java
  3. 4 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java
  4. 31 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderDownSmsOneJob.java
  5. 31 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderDownSmsSevenJob.java
  6. 35 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderUpSmsOneJob.java
  7. 31 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderUpSmsSevenJob.java
  8. 10 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDetailService.java
  9. 36 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDetailServiceImpl.java
  10. 23 3
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/orderjzdetail/OrderJzDispatchServiceImpl.java
  11. 2 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/SmsSendconfigService.java
  12. 91 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/SmsSendconfigServiceImpl.java
  13. 19 0
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml
  14. 4 4
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/orderjzdetail/OrderJzDetailMapper.xml

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

@@ -283,6 +283,13 @@ public class OrderJzDetailController {
     return success(orderJzDetailService.signOrderJzDetail(createReqVO));
   }
 
+  @PostMapping("/visitor/batch-sign")
+  @Operation(summary = "批量核销(一键核销)")
+  public CommonResult<Integer> batchVisitorSign(@Valid @RequestBody OrderJzDetailBatchSignReqVO reqVO) {
+    int count = orderJzDetailService.batchSignOrderJzDetail(reqVO.getIds(), reqVO.getSignRemark());
+    return success(count);
+  }
+
 
   @DeleteMapping("/visitor/sign/clean")
   @Operation(summary = "游客登记")

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

@@ -0,0 +1,19 @@
+package com.yc.ship.module.trade.controller.admin.orderjzdetail.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+@Schema(description = "管理后台 - 批量核销请求 VO")
+@Data
+public class OrderJzDetailBatchSignReqVO {
+
+    @Schema(description = "接站人员ID列表", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "请选择需要核销的游客")
+    private List<Long> ids;
+
+    @Schema(description = "核销备注", example = "批量核销")
+    private String signRemark;
+}

+ 4 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -249,4 +249,8 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
      * @return
      */
     List<Long> selectCanBuyInsuranceOrder();
+
+    List<Map<String, Object>> queryOrderLink(@Param("day") int day,@Param("direction")int direction);
+
+    List<Map<String, Object>> queryOrderJzPhone(@Param("day") int day,@Param("direction")int direction);
 }

+ 31 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderDownSmsOneJob.java

@@ -0,0 +1,31 @@
+package com.yc.ship.module.trade.job;
+
+import com.yc.ship.framework.quartz.core.handler.JobHandler;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
+import com.yc.ship.framework.tenant.core.job.TenantJob;
+import com.yc.ship.module.trade.service.smsSendconfig.SmsSendconfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+@Slf4j
+public class OrderDownSmsOneJob  implements JobHandler {
+    @Resource
+    private SmsSendconfigService smsSendconfigService;
+
+    @Override
+    @TenantIgnore
+    public String execute(String s){
+        log.info(">>>>>>>>>>>>>>>>>>>>>> OrderDownSmsOneJob Begin <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            smsSendconfigService.upSmsSendMsg(2,"SMS_505150033",1);
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> OrderDownSmsOneJob Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>>  OrderDownSmsOneJob End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+}

+ 31 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderDownSmsSevenJob.java

@@ -0,0 +1,31 @@
+package com.yc.ship.module.trade.job;
+
+import com.yc.ship.framework.quartz.core.handler.JobHandler;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
+import com.yc.ship.framework.tenant.core.job.TenantJob;
+import com.yc.ship.module.trade.service.smsSendconfig.SmsSendconfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+@Slf4j
+public class OrderDownSmsSevenJob  implements JobHandler {
+    @Resource
+    private SmsSendconfigService smsSendconfigService;
+
+    @Override
+    @TenantIgnore
+    public String execute(String s){
+        log.info(">>>>>>>>>>>>>>>>>>>>>> OrderDownSmsSevenJob Begin <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            smsSendconfigService.upSmsSendMsg(2,"SMS_504885367",7);
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> OrderDownSmsSevenJob Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>>  OrderDownSmsSevenJob End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+}

+ 35 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderUpSmsOneJob.java

@@ -0,0 +1,35 @@
+package com.yc.ship.module.trade.job;
+
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.yc.ship.framework.quartz.core.handler.JobHandler;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
+import com.yc.ship.framework.tenant.core.job.TenantJob;
+import com.yc.ship.module.trade.service.smsSendconfig.SmsSendconfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * 上水开航前1天短信通知
+ */
+@Component
+@Slf4j
+public class OrderUpSmsOneJob implements JobHandler {
+    @Resource
+    private SmsSendconfigService smsSendconfigService;
+
+    @Override
+    @TenantIgnore
+    public String execute(String s){
+        log.info(">>>>>>>>>>>>>>>>>>>>>> OrderUpSmsOneJob Begin <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            smsSendconfigService.upSmsSendMsg(1,"SMS_505090361",1);
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> OrderUpSmsOneJob Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>>  OrderUpSmsOneJob End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+}

+ 31 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderUpSmsSevenJob.java

@@ -0,0 +1,31 @@
+package com.yc.ship.module.trade.job;
+
+import com.yc.ship.framework.quartz.core.handler.JobHandler;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
+import com.yc.ship.framework.tenant.core.job.TenantJob;
+import com.yc.ship.module.trade.service.smsSendconfig.SmsSendconfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+@Slf4j
+public class OrderUpSmsSevenJob implements JobHandler {
+    @Resource
+    private SmsSendconfigService smsSendconfigService;
+
+    @Override
+    @TenantIgnore
+    public String execute(String s){
+        log.info(">>>>>>>>>>>>>>>>>>>>>> OrderUpSmsSevenJob Begin <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            smsSendconfigService.upSmsSendMsg(1,"SMS_504955351",7);
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> OrderUpSmsSevenJob Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>>  OrderUpSmsSevenJob End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+}

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

@@ -63,6 +63,16 @@ public interface OrderJzDetailService {
 
   Long signOrderJzDetail(OrderJzDetailSaveReqVO createReqVO);
 
+  /**
+   * 批量核销(一键核销)
+   * 对已选中的接站人员进行批量签到核销,已核销的跳过
+   *
+   * @param ids 接站人员ID列表
+   * @param signRemark 签到备注
+   * @return 实际核销成功数量
+   */
+  int batchSignOrderJzDetail(List<Long> ids, String signRemark);
+
   PageResult<OrderJzDetailDO> getOrderJzDetailPage2(OrderJzDetailPageReqVO pageReqVO);
 
   PageResult<?> getOrderJzDetailPage3(OrderJzDetailPageReqVO pageReqVO);

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

@@ -446,6 +446,42 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
         return detail.getId();
     }
 
+    @Override
+    public int batchSignOrderJzDetail(List<Long> ids, String signRemark) {
+        if (ids == null || ids.isEmpty()) {
+            return 0;
+        }
+        // 批量查询
+        List<OrderJzDetailDO> detailList = orderJzDetailMapper.selectBatchIds(ids);
+        if (detailList == null || detailList.isEmpty()) {
+            return 0;
+        }
+
+        // 检查已核销的人员,收集名称用于提示
+        List<String> alreadySignedNames = detailList.stream()
+                .filter(d -> StringUtils.isNotBlank(d.getSignTime()))
+                .map(OrderJzDetailDO::getName)
+                .collect(Collectors.toList());
+        if (!alreadySignedNames.isEmpty()) {
+            throw new RuntimeException("以下游客已核销,请勿重复核销:" + String.join("、", alreadySignedNames));
+        }
+
+        // 获取当前登录人信息
+        LoginUser loginUser = getLoginUser();
+        String signMan = MapUtils.getString(loginUser.getInfo(), LoginUser.INFO_KEY_NICKNAME);
+        String signTime = DateUtils.format(new Date(), DatePattern.NORM_DATETIME_PATTERN);
+
+        int count = 0;
+        for (OrderJzDetailDO detail : detailList) {
+            detail.setSignTime(signTime);
+            detail.setSignMan(signMan);
+            detail.setSignRemark(signRemark);
+            orderJzDetailMapper.updateById(detail);
+            count++;
+        }
+        return count;
+    }
+
     @Override
     public PageResult<OrderJzDetailDO> getOrderJzDetailPage2(OrderJzDetailPageReqVO pageReqVO) {
         IPage<OrderJzDetailDO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());

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

@@ -13,6 +13,7 @@ import com.yc.ship.module.trade.dal.dataobject.orderjzdetail.OrderJzDetailDO;
 import com.yc.ship.module.trade.dal.dataobject.orderjzdispatch.OrderJzDispatchDO;
 import com.yc.ship.module.trade.dal.mysql.orderjzdetail.OrderJzDetailMapper;
 import com.yc.ship.module.trade.dal.mysql.orderjzdispatch.OrderJzDispatchMapper;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -93,7 +94,7 @@ public class OrderJzDispatchServiceImpl implements OrderJzDispatchService {
         if (existingList != null && !existingList.isEmpty()) {
             // 已存在分车记录,更新并复用
             OrderJzDispatchDO existing = existingList.get(0);
-           /* OrderJzDispatchDO updateObj = OrderJzDispatchDO.builder()
+            OrderJzDispatchDO updateObj = OrderJzDispatchDO.builder()
                     .id(existing.getId())
                     .busNumber(info.getBusNumber())
                     .driverName(info.getDriverName())
@@ -103,7 +104,7 @@ public class OrderJzDispatchServiceImpl implements OrderJzDispatchService {
                     .passengerCount(existing.getPassengerCount() + batchReqVO.getOrderItems().size())
                     .remark(info.getRemark())
                     .build();
-            orderJzDispatchMapper.updateById(updateObj);*/
+            orderJzDispatchMapper.updateById(updateObj);
             dispatchId = existing.getId();
         } else {
             // 不存在,新建分车记录
@@ -125,6 +126,24 @@ public class OrderJzDispatchServiceImpl implements OrderJzDispatchService {
             dispatchId = orderJzDispatch.getId();
         }
 
+        // 校验并更新接站人员的分车ID
+        StringBuilder alreadyDispatchedNames = new StringBuilder();
+        for (OrderJzDispatchBatchReqVO.OrderItem item : batchReqVO.getOrderItems()) {
+            OrderJzDetailDO detail = orderJzDetailMapper.selectById(item.getId());
+            if (detail != null) {
+                // 校验是否已分车(dispatchId不为空且不为0表示已分车)
+                if (detail.getDispatchId() != null && detail.getDispatchId() != 0L) {
+                    if (alreadyDispatchedNames.length() > 0) {
+                        alreadyDispatchedNames.append("、");
+                    }
+                    alreadyDispatchedNames.append(detail.getName());
+                }
+            }
+        }
+        if (alreadyDispatchedNames.length() > 0) {
+            throw new RuntimeException("以下游客已分车,不能重复分车:" + alreadyDispatchedNames.toString());
+        }
+
         // 更新接站人员的分车ID
         for (OrderJzDispatchBatchReqVO.OrderItem item : batchReqVO.getOrderItems()) {
             OrderJzDetailDO detail = orderJzDetailMapper.selectById(item.getId());
@@ -175,7 +194,8 @@ public class OrderJzDispatchServiceImpl implements OrderJzDispatchService {
         if (dispatchId != null) {
 
             OrderJzDispatchDO orderJzDis = orderJzDispatchMapper.selectById(dispatchId);
-            Integer passengerCount = orderJzDis.getPassengerCount();
+
+            Integer passengerCount = ObjectUtils.isEmpty(orderJzDis) ? 0 : orderJzDis.getPassengerCount();
             if (passengerCount != null && passengerCount > 1) {
                 // 大于一人 更新分车记录表
                 orderJzDispatchMapper.updateById(OrderJzDispatchDO.builder()

+ 2 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/SmsSendconfigService.java

@@ -57,4 +57,6 @@ public interface SmsSendconfigService {
     PageResult<SmsSendconfigDO> getSmsSendconfigPage(SmsSendconfigPageReqVO pageReqVO);
 
     PageResult<SmsSendconfigQueryRespVO> querySendLogList(SmsSendconfigPageReqVO pageReqVO);
+
+    void upSmsSendMsg(int type, String code, int day);
 }

+ 91 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/SmsSendconfigServiceImpl.java

@@ -1,5 +1,6 @@
 package com.yc.ship.module.trade.service.smsSendconfig;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
@@ -11,6 +12,11 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.framework.mybatis.core.util.MyBatisUtils;
+import com.yc.ship.module.system.dal.dataobject.dict.DictDataDO;
+import com.yc.ship.module.system.dal.dataobject.sms.SmsTemplateDO;
+import com.yc.ship.module.system.dal.mysql.dict.DictDataMapper;
+import com.yc.ship.module.system.dal.mysql.sms.SmsTemplateMapper;
+import com.yc.ship.module.system.service.sms.SmsSendService;
 import com.yc.ship.module.trade.api.sms.dto.SmsReqDTO;
 import com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigPageReqVO;
 import com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO;
@@ -18,6 +24,7 @@ import com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigS
 import com.yc.ship.module.trade.dal.dataobject.smsProduct.SmsProductDO;
 import com.yc.ship.module.trade.dal.dataobject.smsSendLog.SmsSendLogDO;
 import com.yc.ship.module.trade.dal.dataobject.smsSendconfig.SmsSendconfigDO;
+import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
 import com.yc.ship.module.trade.dal.mysql.smsProduct.SmsProductMapper;
 import com.yc.ship.module.trade.dal.mysql.smsSendLog.SmsSendLogMapper;
 import com.yc.ship.module.trade.dal.mysql.smsSendconfig.SmsSendconfigMapper;
@@ -59,9 +66,20 @@ public class SmsSendconfigServiceImpl implements SmsSendconfigService {
     @Resource
     private SmsServiceImpl smsService;
 
+    @Resource
+    private SmsSendService smsSendService;
+
     @Resource
     private SmsSendLogMapper smsSendLogMapper;
 
+    @Resource
+    private TradeOrderMapper tradeOrderMapper;
+
+    @Resource
+    private SmsTemplateMapper smsTemplateMapper;
+    @Resource
+    private DictDataMapper dictDataMapper;
+
     @Override
     public Long createSmsSendconfig(SmsSendconfigSaveReqVO createReqVO) {
         // 插入
@@ -285,4 +303,77 @@ public class SmsSendconfigServiceImpl implements SmsSendconfigService {
         return new PageResult<>(page.getRecords(), page.getTotal());
     }
 
+    /**
+     * @param type 1 上水 2 下水
+     * @param code
+     * @param day 天数
+     */
+    @Override
+    @Async
+    public void upSmsSendMsg(int type, String code, int day) {
+        // 查询订单联系人
+        List<Map<String,Object>> linkList = tradeOrderMapper.queryOrderLink(day,type);
+        // 查询接站登记人
+        List<Map<String,Object>> jzPhoneList = tradeOrderMapper.queryOrderJzPhone(day,type);
+        // 查询短信配置
+        SmsTemplateDO smsTemplateDO = smsTemplateMapper.selectByCode(code);
+        // 合并两个列表并去重
+        Set<String> phoneSet = new HashSet<>();
+        Map<String, Map<String, Object>> phoneDataMap = new HashMap<>();
+
+        if (linkList != null) {
+            for (Map<String, Object> map : linkList) {
+                String phone = (String) map.get("link_mobile");
+                if (phone != null && !phone.isEmpty()) {
+                    phoneSet.add(phone);
+                }
+            }
+        }
+        if (jzPhoneList != null) {
+            for (Map<String, Object> map : jzPhoneList) {
+                String phone = (String) map.get("phone");
+                if (phone != null && !phone.isEmpty()) {
+                    phoneSet.add(phone);
+                    if (!phoneDataMap.containsKey(phone)) {
+                        phoneDataMap.put(phone, map);
+                    }
+                }
+            }
+        }
+        List<String> phoneList = new ArrayList<>(phoneSet);
+        List<String> params = smsTemplateDO.getParams();// ["【pick】","【time】"]
+        Map<String, Object> templateParams = new HashMap<>();
+        if(type == 1){
+            // 上水
+            // 获取上水抵达三峡游客中心 查询数据字典
+            List<DictDataDO> arriveDataLis = dictDataMapper.selectListByStatusAndDictType(0, "up_arrive");
+            if(day == -1){
+                // 获取上水登船时间 查询数据字典
+                List<DictDataDO> dictDataList = dictDataMapper.selectListByStatusAndDictType(0, "up_board");
+                templateParams.put(params.get(0), dictDataList.get(0).getLabel());
+                templateParams.put(params.get(1), arriveDataLis.get(0).getLabel());
+            }else{
+                templateParams.put(params.get(0), DateUtil.format(DateUtil.offsetDay(new Date(), day), "yyyy年MM月dd日"));
+                templateParams.put(params.get(1), arriveDataLis.get(0).getLabel());
+            }
+        }else{
+            // 下水
+            if(day == -1){
+                // 获取下水登船时间 查询数据字典
+                List<DictDataDO> dictDataList = dictDataMapper.selectListByStatusAndDictType(0, "down_board");
+                templateParams.put(params.get(0), dictDataList.get(0).getLabel());
+            }else{
+                templateParams.put(params.get(0), DateUtil.format(DateUtil.offsetDay(new Date(), day), "yyyy年MM月dd日"));
+            }
+        }
+        if(CollectionUtil.isNotEmpty(phoneList)){
+            for(String phone : phoneList){
+//                log.info("【短信发送】:phone:{}", phone);
+//                log.info("【短信发送】:templateParams:{}", templateParams);
+                smsSendService.sendSingleSmsToAdmin(phone, null, smsTemplateDO.getId(), templateParams);
+            }
+//            smsSendService.sendSingleSmsToAdmin("18071246889", null, smsTemplateDO.getId(), templateParams);
+        }
+    }
+
 }

+ 19 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -2576,5 +2576,24 @@
           and (is_insure is null)
           and travel_date BETWEEN now() and CONCAT(DATE_ADD(CURDATE(),INTERVAL 2 DAY), ' 23:59:59')
     </select>
+
+
+    <select id="queryOrderLink" resultType="java.util.Map">
+        select distinct td.link_mobile from trade_order td
+                                                LEFT JOIN product_voyage pv ON td.voyage_id = pv.id
+                                                LEFT JOIN resource_route rr ON pv.route_id = rr.id
+        where DATE_FORMAT(td.travel_date, '%Y-%m-%d') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL (-#{day}) DAY), '%Y-%m-%d')
+          and td.deleted='0' and td.link_mobile is not null and td.order_status >0 and rr.direction = #{direction};
+    </select>
+
+    <select id="queryOrderJzPhone" resultType="java.util.Map">
+        select distinct tzd.phone from trade_order td
+                                           left join trade_order_jz tz on tz.order_id = td.id
+                                           left join trade_order_jz_detail tzd on tzd.jz_id = tz.id and tzd.deleted='0'
+                                           LEFT JOIN product_voyage pv ON td.voyage_id = pv.id
+                                           LEFT JOIN resource_route rr ON pv.route_id = rr.id
+        where DATE_FORMAT(td.travel_date, '%Y-%m-%d') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL (-#{day}) DAY), '%Y-%m-%d')
+          and td.deleted='0' and tzd.phone is not null and td.order_status >0 and rr.direction = #{direction};
+    </select>
 </mapper>
 

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

@@ -13,7 +13,7 @@
         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,
         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, dj.remark as dispatchRemark
+        dj.receiver_name as receiverName, dj.receiver_phone as receiverPhone, d.sign_remark as dispatchRemark
         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
@@ -52,7 +52,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, 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,dj.remark as dispatchRemark
+        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,d.sign_remark as dispatchRemark
         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
@@ -114,7 +114,7 @@
         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,
         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, dj.remark as dispatchRemark
+        dj.receiver_name as receiverName, dj.receiver_phone as receiverPhone, d.sign_remark as dispatchRemark
         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
@@ -159,7 +159,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, 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,dj.remark as dispatchRemark
+        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,d.sign_remark as dispatchRemark
         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