parent
d05e9db96f
commit
0efe7b0fc3
|
|
@ -1,6 +1,9 @@
|
||||||
package com.cpxt.web.task;
|
package com.cpxt.web.task;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONArray;
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.cpxt.biz.domain.BizCar;
|
import com.cpxt.biz.domain.BizCar;
|
||||||
import com.cpxt.biz.domain.BizCarState;
|
import com.cpxt.biz.domain.BizCarState;
|
||||||
|
|
@ -21,6 +24,8 @@ import org.springframework.stereotype.Component;
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Component("getLocationTask")
|
@Component("getLocationTask")
|
||||||
|
|
@ -28,11 +33,19 @@ public class GetLocationTask {
|
||||||
|
|
||||||
// 域名
|
// 域名
|
||||||
private static final String ADDRESS = "http://api.e6yun.com/";
|
private static final String ADDRESS = "http://api.e6yun.com/";
|
||||||
|
|
||||||
|
private static final String APP_KEY_JSON = "[{ 'APP_KEY':'FEB9F91D-BCD7-4DC2-97D1-CB599EEAF9D5','SECRET_KEY':'A8211E8F-9E95-4C80-9414-CD5E1F675FEF' }, " +
|
||||||
|
"{ 'APP_KEY':'ECB3CDEA-ACD1-4E62-840D-717DCFBEAE79','SECRET_KEY':'BE3544F5-C488-41E8-9DA5-0172BF767210' }]";
|
||||||
// 公钥
|
// 公钥
|
||||||
private static final String APP_KEY = "FEB9F91D-BCD7-4DC2-97D1-CB599EEAF9D5";
|
private static final String APP_KEY = "FEB9F91D-BCD7-4DC2-97D1-CB599EEAF9D5";
|
||||||
// 密钥
|
// 密钥
|
||||||
private static final String SECRET_KEY = "A8211E8F-9E95-4C80-9414-CD5E1F675FEF";
|
private static final String SECRET_KEY = "A8211E8F-9E95-4C80-9414-CD5E1F675FEF";
|
||||||
|
|
||||||
|
// 公钥
|
||||||
|
private static final String APP_KEY2 = "ECB3CDEA-ACD1-4E62-840D-717DCFBEAE79";
|
||||||
|
// 密钥
|
||||||
|
private static final String SECRET_KEY2 = "BE3544F5-C488-41E8-9DA5-0172BF767210";
|
||||||
|
|
||||||
/*添加代码 begin*/
|
/*添加代码 begin*/
|
||||||
private static GetLocationTask getLocationTask;
|
private static GetLocationTask getLocationTask;
|
||||||
|
|
||||||
|
|
@ -54,110 +67,121 @@ public class GetLocationTask {
|
||||||
|
|
||||||
// 同步车辆定位数据
|
// 同步车辆定位数据
|
||||||
public void syncLocationData(){
|
public void syncLocationData(){
|
||||||
// 创建 E6SdkApi 以使用SDK API
|
JSONArray array = JSONUtil.parseArray(APP_KEY_JSON);
|
||||||
E6SdkApi e6SdkApi = new E6SdkApi(ADDRESS, APP_KEY, SECRET_KEY);
|
for (int i = 0; i < array.size(); i++) {
|
||||||
try {
|
JSONObject apikey = array.getJSONObject(i);
|
||||||
// 通过 e6SdkApi 来使用API
|
|
||||||
GetVehicleInfoVO vehicleInfoVO = e6SdkApi.GetVehcileInfo("-1");
|
|
||||||
System.out.println(vehicleInfoVO);
|
|
||||||
|
|
||||||
if (Helper.FInt(vehicleInfoVO.getCode())==1){
|
String APPKEY = apikey.getStr("APP_KEY");
|
||||||
List<VehicleInfoResp> list = vehicleInfoVO.getData();
|
String APPSECRET = apikey.getStr("SECRET_KEY");
|
||||||
for (VehicleInfoResp info : list) {
|
|
||||||
String carNo = info.getVehicleNO();
|
|
||||||
|
|
||||||
BizCar dbcar = getLocationTask.carMapper.selectByCarNo(carNo);
|
// 创建 E6SdkApi 以使用SDK API
|
||||||
if (dbcar!=null){
|
E6SdkApi e6SdkApi = new E6SdkApi(ADDRESS, APPKEY, APPSECRET);
|
||||||
BizCarState newstate = new BizCarState();
|
try {
|
||||||
|
// 通过 e6SdkApi 来使用API
|
||||||
|
GetVehicleInfoVO vehicleInfoVO = e6SdkApi.GetVehcileInfo("-1");
|
||||||
|
System.out.println(vehicleInfoVO);
|
||||||
|
|
||||||
newstate.setCarId(dbcar.getId());
|
if (Helper.FInt(vehicleInfoVO.getCode())==1){
|
||||||
newstate.setCarNo(dbcar.getCarNo());
|
List<VehicleInfoResp> list = vehicleInfoVO.getData();
|
||||||
newstate.setVin(dbcar.getVin());
|
for (VehicleInfoResp info : list) {
|
||||||
newstate.setVehicleNo(info.getVehicleNO());
|
String serialNo = info.getEquipCode();
|
||||||
newstate.setRegName(info.getRegName());
|
|
||||||
if (!Helper.NStr(info.getGpsTime()).equals(""))
|
BizCar dbcar = getLocationTask.carMapper.selectBySerialNo(serialNo);
|
||||||
newstate.setGpsTime(DateUtils.parseDate(Helper.NStr(info.getGpsTime()).replace(".0","")));
|
if (dbcar!=null){
|
||||||
newstate.setSpeed(Helper.FLong(info.getSpeed()));
|
Long carId = dbcar.getId();
|
||||||
newstate.setOdometer(BigDecimal.valueOf(Helper.FDouble(info.getOdometer())));
|
// String carNo = dbcar.getCarNo();
|
||||||
newstate.setLat(info.getLat02());
|
BizCarState newstate = new BizCarState();
|
||||||
newstate.setLon(info.getLon02());
|
|
||||||
newstate.setDirection(Helper.FInt(info.getDirection()));
|
newstate.setCarId(dbcar.getId());
|
||||||
newstate.setStatus(info.getStatus());
|
newstate.setCarNo(dbcar.getCarNo());
|
||||||
newstate.setPlaceName(info.getPlaceName());
|
newstate.setVin(dbcar.getVin());
|
||||||
newstate.setProvice(info.getProvice());
|
newstate.setVehicleNo(info.getVehicleNO());
|
||||||
newstate.setCity(info.getCity());
|
newstate.setRegName(info.getRegName());
|
||||||
newstate.setDistrict(info.getDistrict());
|
if (!Helper.NStr(info.getGpsTime()).equals(""))
|
||||||
newstate.setRoadName(info.getRoadName());
|
newstate.setGpsTime(DateUtils.parseDate(Helper.NStr(info.getGpsTime()).replace(".0","")));
|
||||||
newstate.setT1(info.getT1());
|
newstate.setSpeed(Helper.FLong(info.getSpeed()));
|
||||||
newstate.setT2(info.getT2());
|
newstate.setOdometer(BigDecimal.valueOf(Helper.FDouble(info.getOdometer())));
|
||||||
newstate.setT3(info.getT3());
|
newstate.setLat(info.getLat02());
|
||||||
newstate.setT4(info.getT4());
|
newstate.setLon(info.getLon02());
|
||||||
newstate.setT5(info.getT5());
|
newstate.setDirection(Helper.FInt(info.getDirection()));
|
||||||
newstate.setT6(info.getT6());
|
newstate.setStatus(info.getStatus());
|
||||||
newstate.setT7(info.getT7());
|
newstate.setPlaceName(info.getPlaceName());
|
||||||
newstate.setT8(info.getT8());
|
newstate.setProvice(info.getProvice());
|
||||||
newstate.setLat02(info.getLat());
|
newstate.setCity(info.getCity());
|
||||||
newstate.setLon02(info.getLon());
|
newstate.setDistrict(info.getDistrict());
|
||||||
newstate.setAreaName(info.getAreaName());
|
newstate.setRoadName(info.getRoadName());
|
||||||
newstate.setTime1(info.getTime1());
|
newstate.setT1(info.getT1());
|
||||||
newstate.setTime2(info.getTime2());
|
newstate.setT2(info.getT2());
|
||||||
newstate.setTime3(info.getTime3());
|
newstate.setT3(info.getT3());
|
||||||
newstate.setTime4(info.getTime4());
|
newstate.setT4(info.getT4());
|
||||||
newstate.setTime5(info.getTime5());
|
newstate.setT5(info.getT5());
|
||||||
newstate.setTime6(info.getTime6());
|
newstate.setT6(info.getT6());
|
||||||
newstate.setTime7(info.getTime7());
|
newstate.setT7(info.getT7());
|
||||||
newstate.setTime8(info.getTime8());
|
newstate.setT8(info.getT8());
|
||||||
newstate.setH1(info.getH1());
|
newstate.setLat02(info.getLat());
|
||||||
newstate.setH2(info.getH2());
|
newstate.setLon02(info.getLon());
|
||||||
newstate.setH3(info.getH3());
|
newstate.setAreaName(info.getAreaName());
|
||||||
newstate.setH4(info.getH4());
|
newstate.setTime1(info.getTime1());
|
||||||
newstate.setH5(info.getH5());
|
newstate.setTime2(info.getTime2());
|
||||||
newstate.setH6(info.getH6());
|
newstate.setTime3(info.getTime3());
|
||||||
newstate.setH7(info.getH7());
|
newstate.setTime4(info.getTime4());
|
||||||
newstate.setH8(info.getH8());
|
newstate.setTime5(info.getTime5());
|
||||||
newstate.setHt1(info.getHt1());
|
newstate.setTime6(info.getTime6());
|
||||||
newstate.setHt2(info.getHt2());
|
newstate.setTime7(info.getTime7());
|
||||||
newstate.setHt3(info.getHt3());
|
newstate.setTime8(info.getTime8());
|
||||||
newstate.setHt4(info.getHt4());
|
newstate.setH1(info.getH1());
|
||||||
newstate.setHt5(info.getHt5());
|
newstate.setH2(info.getH2());
|
||||||
newstate.setHt6(info.getHt6());
|
newstate.setH3(info.getH3());
|
||||||
newstate.setHt7(info.getHt7());
|
newstate.setH4(info.getH4());
|
||||||
newstate.setHt8(info.getHt8());
|
newstate.setH5(info.getH5());
|
||||||
newstate.setDeviceTypeStr(info.getDeviceTypeStr());
|
newstate.setH6(info.getH6());
|
||||||
newstate.setEquipCode(info.getEquipCode());
|
newstate.setH7(info.getH7());
|
||||||
newstate.setOil(info.getOil());
|
newstate.setH8(info.getH8());
|
||||||
newstate.setHeight(Helper.FLong(info.getHeight()));
|
newstate.setHt1(info.getHt1());
|
||||||
newstate.setStopSec(Helper.FInt(info.getStopSec()));
|
newstate.setHt2(info.getHt2());
|
||||||
newstate.setAcc(info.getAcc());
|
newstate.setHt3(info.getHt3());
|
||||||
newstate.setOhm(info.getOhm());
|
newstate.setHt4(info.getHt4());
|
||||||
newstate.setCurAccSta(info.getCurAccSta());
|
newstate.setHt5(info.getHt5());
|
||||||
newstate.setCommIds(info.getCommIds());
|
newstate.setHt6(info.getHt6());
|
||||||
|
newstate.setHt7(info.getHt7());
|
||||||
|
newstate.setHt8(info.getHt8());
|
||||||
|
newstate.setDeviceTypeStr(info.getDeviceTypeStr());
|
||||||
|
newstate.setEquipCode(info.getEquipCode());
|
||||||
|
newstate.setOil(info.getOil());
|
||||||
|
newstate.setHeight(Helper.FLong(info.getHeight()));
|
||||||
|
newstate.setStopSec(Helper.FInt(info.getStopSec()));
|
||||||
|
newstate.setAcc(info.getAcc());
|
||||||
|
newstate.setOhm(info.getOhm());
|
||||||
|
newstate.setCurAccSta(info.getCurAccSta());
|
||||||
|
newstate.setCommIds(info.getCommIds());
|
||||||
|
|
||||||
|
// 更新实时定位信息
|
||||||
|
BizCarState carState = getLocationTask.stateMapper.selectBizCarStateByCarId(carId);
|
||||||
|
if (carState!=null){
|
||||||
|
newstate.setId(carState.getId());
|
||||||
|
getLocationTask.stateMapper.updateById(newstate);
|
||||||
|
}else{
|
||||||
|
getLocationTask.stateMapper.insert(newstate);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 插入轨迹信息
|
||||||
|
try {
|
||||||
|
TrackTemp track = new TrackTemp();
|
||||||
|
PropertyUtils.copyProperties(track, newstate);
|
||||||
|
getLocationTask.trackMapper.insertTrack(track);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
// 更新实时定位信息
|
|
||||||
BizCarState carState = getLocationTask.stateMapper.selectByCarNo(carNo);
|
|
||||||
if (carState!=null){
|
|
||||||
newstate.setId(carState.getId());
|
|
||||||
getLocationTask.stateMapper.updateById(newstate);
|
|
||||||
}else{
|
|
||||||
getLocationTask.stateMapper.insert(newstate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 插入轨迹信息
|
|
||||||
try {
|
|
||||||
TrackTemp track = new TrackTemp();
|
|
||||||
PropertyUtils.copyProperties(track, newstate);
|
|
||||||
getLocationTask.trackMapper.insertTrack(track);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (ApiException e) {
|
||||||
|
// 异常捕获
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (ApiException e) {
|
|
||||||
// 异常捕获
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,13 @@ import com.cpxt.biz.domain.BizCustomerWarehouse;
|
||||||
import com.cpxt.biz.domain.BizOrder;
|
import com.cpxt.biz.domain.BizOrder;
|
||||||
import com.cpxt.biz.domain.BizOrderTask;
|
import com.cpxt.biz.domain.BizOrderTask;
|
||||||
import com.cpxt.biz.mapper.*;
|
import com.cpxt.biz.mapper.*;
|
||||||
|
import com.cpxt.common.utils.DateUtils;
|
||||||
import com.cpxt.common.utils.Helper;
|
import com.cpxt.common.utils.Helper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -57,6 +59,15 @@ public class OrderTask {
|
||||||
for (Long shopId : shopIds ) {
|
for (Long shopId : shopIds ) {
|
||||||
BizOrder order = new BizOrder();
|
BizOrder order = new BizOrder();
|
||||||
order.setOrderSn(getNewOrderSn());
|
order.setOrderSn(getNewOrderSn());
|
||||||
|
if (task.getOrderDateMode()==2){
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.add(Calendar.DAY_OF_YEAR, 1);
|
||||||
|
Date tomorrow = calendar.getTime();
|
||||||
|
order.setOrderDate(tomorrow);
|
||||||
|
}else{
|
||||||
|
order.setOrderDate(new Date());
|
||||||
|
}
|
||||||
|
|
||||||
order.setCustomerId(task.getCustomerId());
|
order.setCustomerId(task.getCustomerId());
|
||||||
order.setCustomerName(task.getCustomerName());
|
order.setCustomerName(task.getCustomerName());
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,21 @@ public class StatTask {
|
||||||
private StatCarMapper statCarMapper;
|
private StatCarMapper statCarMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private StatDriverMapper statDriverMapper;
|
private StatDriverMapper statDriverMapper;
|
||||||
|
@Autowired
|
||||||
|
private BizOrderMapper orderMapper;
|
||||||
|
@Autowired
|
||||||
|
private BizCustomerMapper customerMapper;
|
||||||
|
@Autowired
|
||||||
|
private BizCustomerRouteMapper routeMapper;
|
||||||
|
@Autowired
|
||||||
|
private BizCustomerShopMapper shopMapper;
|
||||||
|
@Autowired
|
||||||
|
private BizCustomerStateMapper customerStateMapper;
|
||||||
|
@Autowired
|
||||||
|
private BizCustomerRouteStateMapper routeStateMapper;
|
||||||
|
@Autowired
|
||||||
|
private BizCustomerShopStateMapper shopStateMapper;
|
||||||
|
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init(){
|
public void init(){
|
||||||
|
|
@ -56,6 +71,132 @@ public class StatTask {
|
||||||
statTask.driverMapper = this.driverMapper;
|
statTask.driverMapper = this.driverMapper;
|
||||||
statTask.stateMapper = this.stateMapper;
|
statTask.stateMapper = this.stateMapper;
|
||||||
statTask.trackMapper = this.trackMapper;
|
statTask.trackMapper = this.trackMapper;
|
||||||
|
statTask.orderMapper = this.orderMapper;
|
||||||
|
statTask.customerMapper = this.customerMapper;
|
||||||
|
statTask.routeMapper = this.routeMapper;
|
||||||
|
statTask.shopMapper = this.shopMapper;
|
||||||
|
statTask.customerStateMapper = this.customerStateMapper;
|
||||||
|
statTask.routeStateMapper = this.routeStateMapper;
|
||||||
|
statTask.shopStateMapper = this.shopStateMapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void statCustomerData(){
|
||||||
|
Date now = new Date();
|
||||||
|
|
||||||
|
// 统计各路线平均配送时间
|
||||||
|
List<Map> route_avgtime_list = statTask.routeStateMapper.selectAvgTimes();
|
||||||
|
for (Map item : route_avgtime_list) {
|
||||||
|
int routeId = Helper.FInt(item.get("route_id"));
|
||||||
|
int avgtimes = Helper.FInt(item.get("avgtimes"));
|
||||||
|
if (routeId>0) {
|
||||||
|
BizCustomerRouteState routeState = statTask.routeStateMapper.selectOneByRouteId(routeId);
|
||||||
|
if (routeState==null || routeState.getId()==0)
|
||||||
|
routeState = new BizCustomerRouteState();
|
||||||
|
|
||||||
|
routeState.setRouteId(routeId);
|
||||||
|
routeState.setAvgTimes(avgtimes);
|
||||||
|
|
||||||
|
if (Helper.FInt(routeState.getId())>0)
|
||||||
|
statTask.routeStateMapper.updateById(routeState);
|
||||||
|
else
|
||||||
|
statTask.routeStateMapper.insert(routeState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 统计各路线今日订单数据
|
||||||
|
List<Map> route_order_count_list = statTask.routeStateMapper.selectOrderCount();
|
||||||
|
for (Map item : route_order_count_list) {
|
||||||
|
int routeId = Helper.FInt(item.get("route_id"));
|
||||||
|
int order_count = Helper.FInt(item.get("order_count"));
|
||||||
|
int finish_count = Helper.FInt(item.get("finish_count"));
|
||||||
|
|
||||||
|
if (routeId>0) {
|
||||||
|
BizCustomerRouteState routeState = statTask.routeStateMapper.selectOneByRouteId(routeId);
|
||||||
|
if (routeState==null || routeState.getId()==0)
|
||||||
|
routeState = new BizCustomerRouteState();
|
||||||
|
|
||||||
|
routeState.setRouteId(routeId);
|
||||||
|
routeState.setTodayOrders(order_count);
|
||||||
|
routeState.setFinishOrders(finish_count);
|
||||||
|
|
||||||
|
if (Helper.FInt(routeState.getId())>0)
|
||||||
|
statTask.routeStateMapper.updateById(routeState);
|
||||||
|
else
|
||||||
|
statTask.routeStateMapper.insert(routeState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 统计各路线当前订单数据
|
||||||
|
List<Map> route_order_list = statTask.routeStateMapper.selectCurrentOrder();
|
||||||
|
for (Map item : route_order_list) {
|
||||||
|
int routeId = Helper.FInt(item.get("route_id"));
|
||||||
|
String orderSn = Helper.NStr(item.get("order_sn"));
|
||||||
|
int carId = Helper.FInt(item.get("car_id"));
|
||||||
|
int driverId = Helper.FInt(item.get("driver_id"));
|
||||||
|
int copilotId = Helper.FInt(item.get("copilot_id"));
|
||||||
|
|
||||||
|
if (routeId>0) {
|
||||||
|
BizCustomerRouteState routeState = statTask.routeStateMapper.selectOneByRouteId(routeId);
|
||||||
|
if (routeState==null || routeState.getId()==0)
|
||||||
|
routeState = new BizCustomerRouteState();
|
||||||
|
|
||||||
|
routeState.setRouteId(routeId);
|
||||||
|
routeState.setCurrentOrder(orderSn);
|
||||||
|
routeState.setCurrentCarId(carId);
|
||||||
|
routeState.setCurrentDriverId(driverId);
|
||||||
|
routeState.setCurrentCopilotId(copilotId);
|
||||||
|
|
||||||
|
if (Helper.FInt(routeState.getId())>0)
|
||||||
|
statTask.routeStateMapper.updateById(routeState);
|
||||||
|
else
|
||||||
|
statTask.routeStateMapper.insert(routeState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 统计各门店平均配送时间
|
||||||
|
List<Map> shop_avgtime_list = statTask.shopStateMapper.selectAvgTimes();
|
||||||
|
for (Map item : shop_avgtime_list) {
|
||||||
|
int shopId = Helper.FInt(item.get("shop_id"));
|
||||||
|
int avgtimes = Helper.FInt(item.get("avgtimes"));
|
||||||
|
if (shopId>0) {
|
||||||
|
BizCustomerShopState state = statTask.shopStateMapper.selectOneByShopId(shopId);
|
||||||
|
if (state==null || state.getId()==0)
|
||||||
|
state = new BizCustomerShopState();
|
||||||
|
|
||||||
|
state.setShopId(shopId);
|
||||||
|
state.setAvgTimes(avgtimes);
|
||||||
|
|
||||||
|
if (Helper.FInt(state.getId())>0)
|
||||||
|
statTask.shopStateMapper.updateById(state);
|
||||||
|
else
|
||||||
|
statTask.shopStateMapper.insert(state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 统计各门店平均配送时间
|
||||||
|
List<Map> shop_order_list = statTask.shopStateMapper.selectCurrentOrder();
|
||||||
|
for (Map item : shop_order_list) {
|
||||||
|
int shopId = Helper.FInt(item.get("shop_id"));
|
||||||
|
int avgtimes = Helper.FInt(item.get("avgtimes"));
|
||||||
|
if (shopId>0) {
|
||||||
|
BizCustomerShopState state = statTask.shopStateMapper.selectOneByShopId(shopId);
|
||||||
|
if (state==null || state.getId()==0)
|
||||||
|
state = new BizCustomerShopState();
|
||||||
|
|
||||||
|
state.setShopId(shopId);
|
||||||
|
state.setIsFinish(Helper.FInt(item.get("order_status"))==3?1:0);
|
||||||
|
state.setCurrentOrder(Helper.NStr(item.get("order_sn")));
|
||||||
|
state.setCurrentCarId(Helper.FInt(item.get("car_id")));
|
||||||
|
state.setCurrentDriverId(Helper.FInt(item.get("driver_id")));
|
||||||
|
state.setCurrentCopilotId(Helper.FInt(item.get("copilot_id")));
|
||||||
|
|
||||||
|
if (Helper.FInt(state.getId())>0)
|
||||||
|
statTask.shopStateMapper.updateById(state);
|
||||||
|
else
|
||||||
|
statTask.shopStateMapper.insert(state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 定时统计车辆使用情况
|
// 定时统计车辆使用情况
|
||||||
|
|
|
||||||
|
|
@ -291,6 +291,11 @@ public class BizOrder
|
||||||
/** 备注 */
|
/** 备注 */
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@Excel(name = "所属日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||||
|
private Date orderDate;
|
||||||
|
|
||||||
// 下单开始时间
|
// 下单开始时间
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String beginTime;
|
private String beginTime;
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,9 @@ public interface BizCarMapper extends BaseMapper<BizCar>
|
||||||
@Select("select * from biz_car where car_no = #{carNo}")
|
@Select("select * from biz_car where car_no = #{carNo}")
|
||||||
BizCar selectByCarNo(String carNo);
|
BizCar selectByCarNo(String carNo);
|
||||||
|
|
||||||
|
@Select("select * from biz_car where serial_no = #{serialNo}")
|
||||||
|
BizCar selectBySerialNo(String serialNo);
|
||||||
|
|
||||||
@Select("select * from ${tableName} where gps_time >= #{startTime} and gps_time <= #{endTime}")
|
@Select("select * from ${tableName} where gps_time >= #{startTime} and gps_time <= #{endTime}")
|
||||||
List<Map> selectBizTrackList(@Param("tableName") String tableName,@Param("startTime") String startTime,@Param("endTime") String endTime);
|
List<Map> selectBizTrackList(@Param("tableName") String tableName,@Param("startTime") String startTime,@Param("endTime") String endTime);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@ package com.cpxt.biz.mapper;
|
||||||
import com.cpxt.biz.domain.BizCustomerRouteState;
|
import com.cpxt.biz.domain.BizCustomerRouteState;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author LuoJian
|
* @author LuoJian
|
||||||
|
|
@ -13,6 +17,22 @@ import org.apache.ibatis.annotations.Mapper;
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface BizCustomerRouteStateMapper extends BaseMapper<BizCustomerRouteState> {
|
public interface BizCustomerRouteStateMapper extends BaseMapper<BizCustomerRouteState> {
|
||||||
|
|
||||||
|
@Select("select * from biz_customer_route_state where route_id = #{routeId}")
|
||||||
|
BizCustomerRouteState selectOneByRouteId(int routeId);
|
||||||
|
|
||||||
|
@Select("select route_id, ROUND(AVG(TIME_TO_SEC(TIMEDIFF(arrive_time, start_time ))),0) AS avgtimes from biz_order " +
|
||||||
|
" where order_status = 3 and start_time is not null and arrive_time is not null group by route_id")
|
||||||
|
List<Map> selectAvgTimes();
|
||||||
|
|
||||||
|
@Select("select route_id, count(id) order_count, sum(case when order_status = 3 then 1 else 0 end) finish_count " +
|
||||||
|
" from biz_order where order_date = curdate() group by route_id ")
|
||||||
|
List<Map> selectOrderCount();
|
||||||
|
|
||||||
|
@Select("select * from (select distinct order_sn,order_status, route_id,car_id, driver_id, copilot_id " +
|
||||||
|
" from biz_order where order_date = curdate() and (order_status = '1' or order_status = '2') " +
|
||||||
|
" order by create_time asc ) as t group by t.route_id ")
|
||||||
|
List<Map> selectCurrentOrder();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,13 @@
|
||||||
package com.cpxt.biz.mapper;
|
package com.cpxt.biz.mapper;
|
||||||
|
|
||||||
|
import com.cpxt.biz.domain.BizCustomerRouteState;
|
||||||
import com.cpxt.biz.domain.BizCustomerShopState;
|
import com.cpxt.biz.domain.BizCustomerShopState;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author LuoJian
|
* @author LuoJian
|
||||||
|
|
@ -13,6 +18,21 @@ import org.apache.ibatis.annotations.Mapper;
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface BizCustomerShopStateMapper extends BaseMapper<BizCustomerShopState> {
|
public interface BizCustomerShopStateMapper extends BaseMapper<BizCustomerShopState> {
|
||||||
|
|
||||||
|
@Select("select * from biz_customer_shop_state where shop_id = #{routeId}")
|
||||||
|
BizCustomerShopState selectOneByShopId(int shopId);
|
||||||
|
|
||||||
|
@Select("select shop_id, ROUND(AVG(TIME_TO_SEC(TIMEDIFF(arrive_time, start_time ))),0) AS avgtimes from biz_order " +
|
||||||
|
" where order_status = 3 and start_time is not null and arrive_time is not null group by shop_id")
|
||||||
|
List<Map> selectAvgTimes();
|
||||||
|
|
||||||
|
@Select("select shop_id, count(id) order_count, sum(case when order_status = 3 then 1 else 0 end) finish_count " +
|
||||||
|
" from biz_order where order_date = curdate() group by shop_id ")
|
||||||
|
List<Map> selectOrderCount();
|
||||||
|
|
||||||
|
@Select("select * from (select distinct order_sn,order_status, shop_id, car_id, driver_id, copilot_id " +
|
||||||
|
" from biz_order where order_date = curdate() and (order_status = '1' or order_status = '2') " +
|
||||||
|
" order by create_time asc ) as t group by t.shop_id ")
|
||||||
|
List<Map> selectCurrentOrder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue