Commit 5b045e7b by zhiheng.zhang

益禾堂添加排队号

parent 67749415
......@@ -225,6 +225,14 @@ public class QueryOrdersResponse {
*/
private String queueIndex;
/**
* 预计排队时间,排队人数
*/
private String returnWords;
/**
* 排队进度百分比
*/
private String progress = "" ; //进度
/**
* 订单类型 1 外卖 2 预订单 3 商城 4 打包带走 5 店内就餐
*/
private Integer type;
......
......@@ -93,7 +93,7 @@
<!-- 商户门店sdk -->
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<version>3.3.5-SNAPSHOT</version>
<version>3.3.9-SNAPSHOT</version>
<artifactId>storecenter-sdk</artifactId>
</dependency>
<dependency>
......
......@@ -44,7 +44,7 @@ import java.util.concurrent.ThreadPoolExecutor;
@EnableSwagger2
@EnableCircuitBreaker
@SpringBootApplication
@EnableDiscoveryClient
//@EnableDiscoveryClient
@EnableAspectJAutoProxy
@ComponentScan({"cn.freemud", "com.freemud"})
@MapperScan({"cn.freemud.*.dao","com.freemud.sdk.api.assortment.orderdistributor.mapper","com.freemud.api.assortment.datamanager.manager",
......
......@@ -1430,6 +1430,9 @@ public class OrderAdapter {
responseVo.setEnableRefund(true);
}
responseVo.setMarketingType(ordersBean.getMarketingType());
responseVo.setReturnWords(ordersBean.getReturnWords());
responseVo.setProgress(ordersBean.getProgress());
responseVo.setQueueIndex(ordersBean.getQueueIndex());
list.add(responseVo);
});
return list;
......
......@@ -153,6 +153,14 @@ public class QueryOrderResponseVo {
*/
private String queueIndex;
/**
* 预计排队时间,排队人数
*/
private String returnWords;
/**
* 排队进度百分比
*/
private String progress = "" ; //进度
/**
* 申请退款按钮
*/
private Boolean buttonRefund;
......
......@@ -161,6 +161,7 @@ import org.springframework.stereotype.Service;
import tk.mybatis.mapper.util.StringUtil;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
......@@ -919,21 +920,63 @@ public class OrderServiceImpl implements Orderservice {
}
orderBean.setQueueIndex("");
// 查询待取餐订单才需要查询排队人数和订单状态扭转记录
if (QueryOrderStatus.TAKE_MEAL.getCode().equals(queryOrderDto.getQueryOrderStatus())) {
if (QueryOrderStatus.TAKE_MEAL.getCode().equals(queryOrderDto.getQueryOrderStatus()) ) {
String returnWords = "";
Integer queueIndex = 0; //订单数
Integer productSum = 0; //件数
Long pickUpTime = 0L; //预计
Integer totalSumTime = 0;
String progress = "" ; //进度
// 查询订单的排队人数
BaseQueryOrderRequest var1 = new BaseQueryOrderRequest();
var1.setOrderId(orderBean.getOid());
var1.setTrackingNo(LogTreadLocal.getTrackingNo());
// 取餐排队人数查询代码去除
/* BaseOrderResponse baseOrderResponse = orderCenterSdkService.queryOrderQueueIndex(var1);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.queryOrderQueueIndex(var1);
QueryOrderQueueIndexResponse response = new QueryOrderQueueIndexResponse();
response.setErrcode(baseOrderResponse.getErrcode());
response.setErrmsg(baseOrderResponse.getErrmsg());
response.setData(baseOrderResponse.getData() == null ? 0 : Integer.parseInt(baseOrderResponse.getData()));
if (RESPONSE_SUCCESS_CODE.equals(response.getErrcode())) {
String queueIndex = response.getData() == null ? "" : response.getData().toString();
orderBean.setQueueIndex(queueIndex);
}*/
queueIndex = response.getData() == null ? 0 : response.getData();
}
returnWords +="前方还有 " + queueIndex + " 单" ;
//开启制作时间 1 :是 , 2 :否"
JSONObject configuration = JSONObject.parseObject(storeResponseDto.getConfiguration());
Integer goodsAvgTimeOfMaking = 0 == configuration.getInteger("goodsAvgTimeOfMaking") ? 15 : configuration.getInteger("goodsAvgTimeOfMaking");
if(1 == configuration.getInteger("turnOnTimeOfMaking")) {
totalSumTime = queueIndex * goodsAvgTimeOfMaking * 60;
}else{
//查询当前门店下待接单的所有订单,计算当前订单的之前的件数
OrderConditionsReq es = new OrderConditionsReq();
es.setPartnerId(queryOrderVo.getPartnerId());
es.setStoreIds(Arrays.asList(orderBean.getShopId()));
es.setStartAcceptTimestamp(DateTimeUtil.parseDate(startDateStr,DateTimeUtil.YYYY_MM_DD_HH_MM_SS).getTime()/1000);
es.setEndAcceptTimestamp(orderBean.getGmtAccept());
es.setStartTimestamp(DateTimeUtil.parseDate(startDateStr,DateTimeUtil.YYYY_MM_DD_HH_MM_SS).getTime()/1000);
es.setEndTimestamp(DateTimeUtil.parseDate(endDateStr,DateTimeUtil.YYYY_MM_DD_HH_MM_SS).getTime()/1000);
es.setOrderStatus(OrderStatus.RECEIPT.getCode());
BaseDownLoadResponse<List<OrderInfoReqs>> acceptResponse = orderDownLoadSdkService.queryOrderByConditions(es, LogThreadLocal.getTrackingNo());
QueryOrdersResponse queryOrderResponse2 = orderAdapter.conventEs2queryOrderResponse(acceptResponse);
if (queryOrderResponse != null && RESPONSE_SUCCESS_CODE.equals(queryOrderResponse2.getErrcode()) && null != queryOrderResponse2.getData() && null != queryOrderResponse2.getData().getOrders() && queryOrderResponse2.getData().getOrders().size()>0) {
List<QueryOrdersResponse.DataBean.OrderBean> orderBeanList = queryOrderResponse2.getData().getOrders();
productSum = Integer.valueOf(orderBeanList.stream().mapToInt(product -> product.getProductList().size()).sum());
}
totalSumTime = queryOrderResponse2.getData().getCount() * productSum * goodsAvgTimeOfMaking * 60;
returnWords += " / " + productSum + " 件";
}
pickUpTime = orderBean.getGmtAccept() + Long.valueOf(totalSumTime);
SimpleDateFormat sdf = new SimpleDateFormat(DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);//要转换的时间格式
Date date = null;
try {
date = sdf.parse(sdf.format(pickUpTime));
} catch (ParseException e) {
date = new Date();
log.error("date error {}" ,e.getMessage());
}
returnWords += ",预计 " + date.getHours()+":" +date.getMinutes() + " 可取餐";
progress = String.valueOf((new Date().getTime() - orderBean.getGmtAccept()) / goodsAvgTimeOfMaking * 60 *100);
// 查询订单的操作状态
BaseQueryOrderRequest var2 = new BaseQueryOrderRequest();
var2.setOrderId(orderBean.getOid());
......@@ -946,6 +989,8 @@ public class OrderServiceImpl implements Orderservice {
if (RESPONSE_SUCCESS_CODE.equals(orderStatusTrackingInfoByOid.getErrcode())) {
orderStatusTracking(orderBean, orderStatusTrackingInfoByOid);
}
orderBean.setProgress(progress);
orderBean.setReturnWords(returnWords);
}
});
}
......
......@@ -88,6 +88,12 @@ public class OrderConditionsReq {
//订单更新结束时间戳(单位:秒)
private Long endUpdateTimestamp;
//订单接单时间戳(单位:秒)
private Long startAcceptTimestamp;
//订单接单时间戳(单位:秒)
private Long endAcceptTimestamp;
//是否打印 0:显示打印次数为0 1:显示打印次数大于0
private Byte printNum;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment