Explorar o código

订单确认单修改,接站定时任务推送

lishiqiang hai 5 días
pai
achega
965094c829

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

@@ -255,4 +255,6 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
     List<Map<String, Object>> queryOrderJzPhone(@Param("day") int day,@Param("direction")int direction);
 
     List<Map<String, Object>> queryOrderVisitorMobile(@Param("day") int day,@Param("direction") int direction);
+
+    List<Map<String, Object>> getTradeJz();
 }

+ 37 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderJzCreateJob.java

@@ -0,0 +1,37 @@
+package com.yc.ship.module.trade.job;
+
+import com.yc.ship.framework.quartz.core.handler.JobHandler;
+import com.yc.ship.framework.tenant.core.job.TenantJob;
+import com.yc.ship.module.trade.service.order.TradeOrderService;
+import com.yc.ship.module.trade.service.orderjzdetail.OrderJzDetailService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Component
+@Slf4j
+public class OrderJzCreateJob implements JobHandler {
+    @Resource
+    private OrderJzDetailService orderJzDetailService;
+
+    @Resource
+    private TradeOrderService tradeOrderService;
+
+
+    @Override
+    @TenantJob
+    public String execute(String param) {
+        List<Map<String, Object>> tradeJz = tradeOrderService.getTradeJz();
+        Map<Object, List<Map<String, Object>>> List = tradeJz.stream().collect(Collectors.groupingBy(map -> map.get("jz_id")));
+        for (Map.Entry<Object, List<Map<String, Object>>> entry : List.entrySet()) {
+            orderJzDetailService.sendJz(entry.getValue(), Long.parseLong(entry.getKey().toString()));
+        }
+
+        return "成功";
+    }
+
+}

+ 6 - 2
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/invoice/impl/InvoiceGroupServiceImpl.java

@@ -522,7 +522,8 @@ public class InvoiceGroupServiceImpl implements InvoiceGroupService {
         String secretKey = configApi.getPlatformConfigValueByKey("newinvoice.group.secretkey");
         String msg;
         try {
-            JSONObject reqBody = this.buildRequestParam(invoiceList, type, "", remark);
+//            JSONObject reqBody = this.buildRequestParam(invoiceList, type, "", remark);
+            JSONObject reqBody = this.buildRequestParamNew(invoiceList, type, "", remark);
             String batchNo = reqBody.getJSONObject("DDPCXX").getStr("DDQQPCH");
             log.error("发票开具请求参数reqBody={},secretKey={}", reqBody,secretKey);
             JSONObject resObj = this.doRequest(reqBody, method, secretKey);
@@ -1028,6 +1029,8 @@ public class InvoiceGroupServiceImpl implements InvoiceGroupService {
             jsonObject.set("DDMXXX", detailArray);
 //            reqDDZ.add(reqObj);
             reqDDZ.add(jsonObject);
+            log.error("请求参数:{}", reqDDZ);
+
             invoice.setCHjse(se);
             invoice.setCBhsje(taxExcludedAmounttotal);
         });
@@ -1092,7 +1095,8 @@ public class InvoiceGroupServiceImpl implements InvoiceGroupService {
         String paramStr = HttpUtil.toParams(sortedParams);
         url = url.replace("http://", "").replace("https://", "");
 //        String m = url.substring(url.lastIndexOf("/") + 1);
-//        url = "10.1.10.202:10000/sims-api/invoice/api/v6/sims-api/invoice/api/v6/" + m;
+//        url = "10.1.10.132:10000/sims-api/invoice/api/v6/" + m;
+        log.error("签名原文url:{}", url);
         //原文
         String riginalStr = StrUtil.builder().append(method).append(url).append("?").append(paramStr).toString();
         String sign = this.hmacSHA1(riginalStr, secretKey);

+ 3 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderService.java

@@ -13,6 +13,7 @@ import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
 
 import java.io.File;
 import java.util.List;
+import java.util.Map;
 
 /**
  * &#064;Description 订单交易service接口
@@ -73,6 +74,8 @@ public interface TradeOrderService {
 
     List<TradeOrderDO> getTradeOrderByExpire(String expiretime);
 
+    List<Map<String, Object>> getTradeJz();
+
     TradeOrderDO getLastOrderByOrderNo(String orderNo);
 
     String getOrderCount(TradeOrderPageReqVO pageReqVO);

+ 5 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java

@@ -1390,6 +1390,11 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         return tradeOrderMapper.getTradeOrderByExpire(expiretime);
     }
 
+    @Override
+    public List<Map<String, Object>> getTradeJz() {
+        return tradeOrderMapper.getTradeJz();
+    }
+
     @Override
     public TradeOrderDO getLastOrderByOrderNo(String orderNo) {
         List<TradeOrderDO> list = tradeOrderMapper.queryOrderByLast(orderNo);

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

@@ -7,6 +7,7 @@ import com.yc.ship.module.trade.dal.dataobject.orderjzdetail.OrderJzDetailDO;
 
 import javax.validation.Valid;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 订单接站人员名单 Service 接口
@@ -25,6 +26,8 @@ public interface OrderJzDetailService {
 
   Long createOrderJzDetail(List<OrderJzDetailSaveReqVO> createReqVOList);
 
+  void sendJz(List<Map<String, Object>> map,Long jzId);
+
   /**
    * 更新订单接站人员名单
    *

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

@@ -19,7 +19,6 @@ import com.yc.ship.framework.security.core.LoginUser;
 import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.OrderJzDetailPageReqVO;
 import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.OrderJzDetailSaveReqVO;
-import com.yc.ship.module.trade.controller.app.ota.vo.OtaVoucherVO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
 import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
 import com.yc.ship.module.trade.dal.dataobject.orderjzdetail.OrderJzDetailDO;
@@ -36,6 +35,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
+import java.nio.charset.StandardCharsets;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -106,9 +106,7 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
         long count = 0;
         String batchNo = IdUtil.getSnowflake(0, 0).nextIdStr();
         // 先删除当前传入游客的历史接站数据
-        List<Long> visitorIds = new ArrayList<>();
         for (OrderJzDetailSaveReqVO orderJzDetailSaveReqVO : createReqVOList) {
-            visitorIds.add(orderJzDetailSaveReqVO.getVisitorId());
             orderJzDetailMapper.delete(new LambdaQueryWrapper<OrderJzDetailDO>().eq(OrderJzDetailDO::getVisitorId, orderJzDetailSaveReqVO.getVisitorId()));
         }
         //处理三方系统退票
@@ -118,19 +116,26 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
             createOrderJzDetail(orderJzDetailSaveReqVO);
             count++;
         }
-        try {
-            cancelSupplierJz(visitorIds,orderJzDO.getId(),createReqVOList);
 
+        return count;
+    }
+
+
+    @Override
+    public void sendJz(List<Map<String, Object>> list, Long jzId) {
+        try {
+            List<Long> visitorIds = list.stream().map(item -> MapUtils.getLong(item, "visitorId")).collect(Collectors.toList());
+            cancelSupplierJz(visitorIds, jzId);
             //处理三方系统出票 二期接站
-            String supplierOrderId = createSupplierJz(createReqVOList, orderDo);
-            paySupplierJz(supplierOrderId, orderJzDO.getId(),createReqVOList);
+            String supplierOrderId = createSupplierJz(list);
+            paySupplierJz(supplierOrderId, jzId);
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return count;
     }
 
-    private String createSupplierJz(List<OrderJzDetailSaveReqVO> createReqVOList, TradeOrderDO tradeOrderDO) throws Exception {
+
+    private String createSupplierJz(List<Map<String, Object>> createReqVOList) throws Exception {
         Long id = null;
         String productId = "2034198456717037761";
         String method = "createOrder";
@@ -140,14 +145,16 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
         String bookname = "";
         String mobile = "";
         String idcard = "";
-        for (OrderJzDetailSaveReqVO orderJzDetailSaveReqVO : createReqVOList) {
-            id = orderJzDetailSaveReqVO.getJzId();
-            mobile = orderJzDetailSaveReqVO.getPhone();
-            idcard = orderJzDetailSaveReqVO.getIdCard();
+        String useDate = "";
+        for (Map<String, Object> orderJzDetailSaveReqVO : createReqVOList) {
+            id = MapUtils.getLong(orderJzDetailSaveReqVO, "jz_id");
+            mobile = MapUtils.getString(orderJzDetailSaveReqVO, "phone");
+            idcard = MapUtils.getString(orderJzDetailSaveReqVO, "id_card");
+            useDate = MapUtils.getString(orderJzDetailSaveReqVO, "use_date");
         }
         JSONObject rep_body = new JSONObject();
         rep_body.put("orderId", id);
-        rep_body.put("travelDate", tradeOrderDO.getTravelDate());
+        rep_body.put("travelDate", useDate);
         rep_body.put("travelTime", "");
         rep_body.put("quantity", createReqVOList.size());
         rep_body.put("productId", productId);
@@ -156,12 +163,13 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
         rep_body.put("idCard", idcard);
 
         JSONArray vistorList = new JSONArray();
-        for (OrderJzDetailSaveReqVO tradeVisitorDO : createReqVOList) {
+        for (Map<String, Object> tradeVisitorDO : createReqVOList) {
             JSONObject vistor = new JSONObject();
-            vistor.put("name", tradeVisitorDO.getName());
-            vistor.put("mobile", tradeVisitorDO.getPhone());
-            vistor.put("idCard", tradeVisitorDO.getIdCard());
-            if(tradeVisitorDO.getIdCard().length()!=18){
+            vistor.put("name", MapUtils.getString(tradeVisitorDO, "name"));
+            vistor.put("mobile", MapUtils.getString(tradeVisitorDO, "phone"));
+            String idCard = MapUtils.getString(tradeVisitorDO, "id_card");
+            vistor.put("idCard", idCard);
+            if (idCard.length() != 18) {
                 vistor.put("idType", "1");
             }
 
@@ -173,7 +181,7 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
         Long timestamp = System.currentTimeMillis() / 1000;
         String signStr = userId + method + timestamp + bodyStr + userKey;
         log.info("三峡二期系统预下单开始,signStr:{}", signStr);
-        String sign = MD5Utils.getMD5(signStr.getBytes("UTF-8"));
+        String sign = MD5Utils.getMD5(signStr.getBytes(StandardCharsets.UTF_8));
 
         JSONObject rep_head = new JSONObject();
         rep_head.put("user_id", userId);
@@ -207,16 +215,16 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
                 log.info(e.toString());
             }
             log.error("二期下单完成,响应body参数:{}", body);
-            JSONObject responseBody =JSONUtil.parseObj(body);
+            JSONObject responseBody = JSONUtil.parseObj(body);
             return responseBody.getStr("orderId");
         } else {
             log.error("二期下单失败,响应response参数:{}", res);
         }
-        return  null;
+        return null;
     }
 
 
-    private void paySupplierJz(String supplierOrderId, Long jzId,List<OrderJzDetailSaveReqVO> createReqVOList) throws Exception {
+    private void paySupplierJz(String supplierOrderId, Long jzId) throws Exception {
         String method = "payOrder";
         String createOrderUrl = "http://10.3.10.50/app-api/travelhub-ops-trade/trade/ota/zshl/212/" + method;
         String userId = "67fd6a5e6a2a453a98f288b08d571234";
@@ -263,8 +271,8 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
                 log.info(e.toString());
             }
             log.error("二期支付完成,响应body参数:{}", body);
-            JSONObject responseBody =JSONUtil.parseObj(body);
-            JSONArray vistors =responseBody.getJSONArray("visitPersons");
+            JSONObject responseBody = JSONUtil.parseObj(body);
+            JSONArray vistors = responseBody.getJSONArray("visitPersons");
             for (int i = 0; i < vistors.size(); i++) {
                 JSONObject vistor = vistors.getJSONObject(i);
                 String idCard = vistor.getStr("idCard");
@@ -276,15 +284,15 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
         }
     }
 
-    private void cancelSupplierJz(List<Long> visitorIds, Long jzId,List<OrderJzDetailSaveReqVO> createReqVOList) throws Exception {
+    private void cancelSupplierJz(List<Long> visitorIds, Long jzId) {
         String method = "cancelTicket";
         String createOrderUrl = "http://10.3.10.50/app-api/travelhub-ops-trade/trade/ota/zshl/212/" + method;
         String userId = "67fd6a5e6a2a453a98f288b08d571234";
         String userKey = "TFD9BEOK";
         List<OrderJzDetailDO> jzDetailList = orderJzDetailMapper.selectList(new QueryWrapper<OrderJzDetailDO>().in("visitor_id", visitorIds));
         Map<String, List<OrderJzDetailDO>> groupList = jzDetailList.stream().filter(item -> StringUtils.isNotBlank(item.getExtendOrderNo())).collect(Collectors.groupingBy(OrderJzDetailDO::getExtendOrderNo));
-        if(groupList.isEmpty()){
-            log.error("无可退二期票信息"+jzId);
+        if (groupList.isEmpty()) {
+            log.error("无可退二期票信息" + jzId);
             return;
         }
         groupList.forEach((supplierOrderId, list) -> {
@@ -338,7 +346,7 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
                 } else {
                     log.error("二期系统退票失败,响应response参数:{}", json);
                 }
-            }catch (Exception e){
+            } catch (Exception e) {
                 e.printStackTrace();
             }
         });

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -2649,7 +2649,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         orderData.put("totalMoney", totalMoney);
         orderData.put("creatorName", orderConfirmation.getCreatorName());
         orderData.put("auditorName", orderConfirmation.getAuditorName());
-        orderData.put("firstDate", DateUtil.format(org.apache.commons.lang3.time.DateUtils.addDays(Date.from(orderConfirmation.getUpdateTime().atZone(ZoneOffset.ofHours(8)).toInstant()), 7), "yyyy-MM-dd"));
+        orderData.put("firstDate", DateUtil.format(org.apache.commons.lang3.time.DateUtils.addDays(Date.from(orderConfirmation.getCreateTime().atZone(ZoneOffset.ofHours(8)).toInstant()), 7), "yyyy-MM-dd"));
         orderData.put("lastDate", DateUtil.format(org.apache.commons.lang3.time.DateUtils.addDays(Date.from(voyage.getStartTime().atZone(ZoneOffset.ofHours(8)).toInstant()), -21), "yyyy-MM-dd"));
         orderData.put("today", DateUtil.format(new Date(), "yyyy-MM-dd"));
 

+ 9 - 1
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -2189,7 +2189,7 @@
     <select id="selectConfirmationCountry"
             resultType="com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderConfirmationCountryRespVO">
         SELECT
-            t1.real_money actual_price,
+            t5.actual_price,
             t1.room_model_id,
             t2.short_name room_model_short_name,
             t2.NAME room_model_name,
@@ -2202,6 +2202,7 @@
             trade_order_room_model t1
                 LEFT JOIN resource_room_model t2 ON t1.room_model_id = t2.id  and t2.deleted = 0
                 LEFT JOIN trade_visitor t3 ON t1.room_index_id = t3.room_index_id  and t3.deleted = 0
+                LEFT JOIN trade_detail t5 on t3.id = t5.visitor_id and t5.deleted =0
                 LEFT JOIN area t4 ON t3.nationality = t4.id
         WHERE
             t1.order_id = #{orderId}
@@ -2606,5 +2607,12 @@
           and td.deleted='0' and (tv.mobile is not null and tv.mobile !='') and tv.deleted='0' and td.order_status in (0,1,2,3,6,7,8,9,12,13,14,15) and rr.direction = #{direction}
 
     </select>
+    <select id="getTradeJz" resultType="java.util.Map">
+        select t1.use_date,t3.batch_no,t3.jz_id,t3.`name`,t3.phone,t2.id visitorId,t3.id_card,t3.remark,t4.jz_link_name,t4.jz_address,t4.jz_link_phone from trade_detail t1 inner join trade_visitor t2 on t1.id = t2.detail_id
+        inner join trade_order_jz_detail t3 on t2.id = t3.visitor_id
+        inner join trade_order_jz t4 on t3.jz_id = t4.id
+        where t1.deleted=0 and t2.deleted=0 and t3.deleted =0
+        and t3.extend_order_no is null and DATE_FORMAT(t1.travel_date, '%Y-%m-%d') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL (1) DAY), '%Y-%m-%d')
+    </select>
 </mapper>