提交 60781dca authored 作者: huyufan's avatar huyufan

数据大屏空车接口

上级 962fdd4c
package com.clx.performance.controller.largescreen;
import cn.hutool.json.JSONObject;
import com.clx.performance.service.OrderChildService;
import com.clx.user.feign.DriverFeign;
import com.clx.user.feign.UserClxFeign;
import com.clx.user.vo.pc.driver.truck.DriverTruckVo;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @ClassName GoodsOrderController
* @Description
* @Author kavin
* @Date 2023/9/17 17:16
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping("/pc/largescreen")
@Validated
@AllArgsConstructor
@Api(tags = "PC-大屏")
public class LargeScreenController {
private final DriverFeign driverFeign;
private final OrderChildService orderChildService;
@ApiOperation(value = "空车列表", notes = "<br>By:胡宇帆")
@GetMapping("/emptyCarList")
public List<JSONObject> emptyCarList() {
List<String> data = driverFeign.driverTruckList().getData();
return orderChildService.emptyCarList(data);
}
}
......@@ -155,4 +155,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
OrderChild getOrderCompleteLastTruck(String orderNo);
Long haveArriveReceiveChild(String orderNo);
List<OrderChild> selectListWithEmptyCarList();
}
......@@ -486,4 +486,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
query.lt(OrderChild :: getStatus,OrderChildEnum.Status.ARRIVE_RECEIVE.getCode());
return baseMapper.selectCount(query);
}
@Override
public List<OrderChild> selectListWithEmptyCarList() {
return baseMapper.selectList(lQrWrapper()
.le(OrderChild :: getStatus,OrderChildEnum.Status.UNSETTLE.getCode())
.ge(OrderChild :: getStatus,OrderChildEnum.Status.CREATED.getCode())
);
}
}
package com.clx.performance.service;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.app.*;
......@@ -9,8 +10,10 @@ import com.clx.performance.param.pc.PageMonitorOrderChildQCParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.app.*;
import com.clx.performance.vo.pc.*;
import com.clx.user.vo.pc.driver.truck.DriverTruckVo;
import java.util.List;
import java.util.Objects;
/**
......@@ -79,4 +82,6 @@ public interface OrderChildService {
List<OrderChild> selectInTransitOrderChild(String orderNo);
DriverCancelOrderChildInfo driverCancelOrderChildInfo(String orderChildNo);
List<JSONObject> emptyCarList(List<String> data);
}
package com.clx.performance.service.impl;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.enums.OrderEnum;
import com.clx.order.enums.ResultEnum;
import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderInfoVO;
......@@ -38,11 +40,13 @@ import com.clx.performance.service.settle.SettlementOwnerDetailService;
import com.clx.performance.struct.*;
import com.clx.performance.utils.gd.GdService;
import com.clx.performance.utils.spring.ApplicationContextUtils;
import com.clx.performance.utils.zjxl.ZjxlGpsService;
import com.clx.performance.vo.app.*;
import com.clx.performance.vo.pc.*;
import com.clx.user.enums.driver.DriverInfoEnum;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.clx.user.vo.feign.OwnerInfoFeignVO;
import com.clx.user.vo.pc.driver.truck.DriverTruckVo;
import com.msl.common.base.Optional;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.exception.ServiceSystemException;
......@@ -66,6 +70,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.TimeUnit;
......@@ -154,6 +159,12 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired
private FeignPaymentService feignPaymentService;
@Autowired
private TruckService truckService;
@Autowired
private ZjxlGpsService zjxlGpsService;
@Override
public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) {
......@@ -1245,6 +1256,42 @@ public class OrderChildServiceImpl implements OrderChildService {
return result;
}
@Override
public List<JSONObject> emptyCarList(List<String> data) {
String now = DateUtils.formatDateTime(LocalDateTime.now(), "yyyy-MM-dd HH:mm:ss").get();
List<OrderChild> orderChildList = orderChildDao.selectListWithEmptyCarList();
if (CollectionUtils.isEmpty(orderChildList)) {
return null;
}
List<String> list = orderChildList.stream().map(OrderChild::getTruckNo).collect(Collectors.toList());
List<JSONObject> result = new LinkedList<>();
int index = 0;
for (String truckNo : data) {
if (list.contains(truckNo)) {
continue;
}
List<TruckTraceDTO> truckTrace = zjxlGpsService.getTruckTrace(truckNo, now,
now);
if(CollectionUtils.isNotEmpty(truckTrace)){
JSONObject jsonObject = new JSONObject();
BigDecimal[] location = truckTrace.get(truckTrace.size() - 1).getLocation();
BigDecimal longitude = location[0].setScale(4, BigDecimal.ROUND_DOWN);
BigDecimal latitude = location[1].setScale(4, BigDecimal.ROUND_DOWN);
jsonObject.set("id", ++index);
jsonObject.set("lng", longitude);
jsonObject.set("lat", latitude);
jsonObject.set("info", "");
jsonObject.set("value", "");
jsonObject.set("iconField", "ok");
result.add(jsonObject);
}
}
return result;
}
/**
* 生成计费单
*/
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论