|
|
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.aoyang.common.result.Result;
|
|
|
import com.aoyang.tms.common.WorkOrderEnum;
|
|
|
import com.aoyang.tms.controller.vo.LocationVO;
|
|
|
+import com.aoyang.tms.controller.vo.WorkOrderVO;
|
|
|
import com.aoyang.tms.controller.vo.WorkerInfo;
|
|
|
import com.aoyang.tms.entity.*;
|
|
|
import com.aoyang.tms.feign.StrategyFeignClient;
|
|
|
@@ -12,7 +13,9 @@ import com.aoyang.tms.feign.result.Org;
|
|
|
import com.aoyang.tms.feign.result.TmsMongoDoc;
|
|
|
import com.aoyang.tms.service.*;
|
|
|
import com.aoyang.tms.util.DateUtils;
|
|
|
+import com.aoyang.tms.util.RegionUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.http.HttpEntity;
|
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
@@ -20,6 +23,7 @@ import org.apache.http.client.methods.HttpGet;
|
|
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
import org.apache.http.impl.client.HttpClientBuilder;
|
|
|
import org.apache.http.util.EntityUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.data.domain.Sort;
|
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
import org.springframework.data.mongodb.core.query.Criteria;
|
|
|
@@ -61,6 +65,14 @@ public class CommonServiceImpl implements CommonService {
|
|
|
private WorkOrderService workOrderService;
|
|
|
@Resource
|
|
|
private WorkCycleService workCycleService;
|
|
|
+ @Resource
|
|
|
+ private CommonService commonService;
|
|
|
+ @Resource
|
|
|
+ private TruckCheckInfoService truckCheckInfoService;
|
|
|
+ @Resource
|
|
|
+ private WorkSpotService workSpotService;
|
|
|
+ @Resource
|
|
|
+ private WorkOrderReadinfoService workOrderReadinfoService;
|
|
|
|
|
|
|
|
|
final static String BAIDUMAP_AK = "Zvd6FzmertUwjhZih5Zfq0D8uTUhvqsH";
|
|
|
@@ -179,7 +191,7 @@ public class CommonServiceImpl implements CommonService {
|
|
|
if (locationVO != null) {
|
|
|
workerInfo.setLatitude(locationVO.getLatitude());
|
|
|
workerInfo.setLongitude(locationVO.getLongitude());
|
|
|
- workerInfo.setLastTime(locationVO.getDate()+"");
|
|
|
+ workerInfo.setLastTime(locationVO.getDate() + "");
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -187,6 +199,67 @@ public class CommonServiceImpl implements CommonService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public WorkOrderVO findOrderInfo(Long userId, String userName, WorkOrder workOrderParam) {
|
|
|
+ WorkOrderVO vo = new WorkOrderVO();
|
|
|
+ WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
|
|
|
+ if (workOrder != null) {
|
|
|
+ BeanUtils.copyProperties(workOrder, vo);
|
|
|
+ //调度员联系电话
|
|
|
+ User user = commonService.findUser(workOrder.getCreater());
|
|
|
+ if (user != null) {
|
|
|
+ vo.setDispatcherPhone(user.getMobile());
|
|
|
+ }
|
|
|
+ //卸车点联系人电话
|
|
|
+ String regionData = "";
|
|
|
+ WorkSpot workSpot = workSpotService.getById(workOrder.getSpotId());
|
|
|
+ if (workSpot != null) {
|
|
|
+ vo.setXiecheContactName(workSpot.getContactName());
|
|
|
+ vo.setXiecheContactPhone(workSpot.getContactPhone());
|
|
|
+ vo.setSpotAddress(workSpot.getAddress());
|
|
|
+ regionData = workSpot.getRegionData();
|
|
|
+ }
|
|
|
+ //取ExecuteTime第一条GPS上报时间作为开始运单时间,累计用时
|
|
|
+ LocationVO locationVO = commonService.getLocationByDate(workOrder.getTruckId(), workOrder.getExecuteTime());
|
|
|
+ if (locationVO != null) {
|
|
|
+ vo.setTime(DateUtils.betweenTime(locationVO.getDate(), LocalDateTime.now()));
|
|
|
+ vo.setLatitude(locationVO.getLatitude());
|
|
|
+ vo.setLongitude(locationVO.getLongitude());
|
|
|
+ } else {
|
|
|
+ if (workOrder.getExecuteTime() != null) {
|
|
|
+ vo.setTime(DateUtils.betweenTime(workOrder.getExecuteTime(), LocalDateTime.now()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ WorkOrderReadinfo workOrderReadinfo = workOrderReadinfoService.findWorkOrderReadinfo(userId, workOrderParam.getId());
|
|
|
+ if (workOrderReadinfo != null) {
|
|
|
+ vo.setReadFlag(1);
|
|
|
+ }
|
|
|
+ List<String> routeGps = commonService.getLocationtrip(workOrder.getTruckId(), workOrder.getGotoSpotTime(), LocalDateTime.now());
|
|
|
+ vo.setRouteGps(routeGps);
|
|
|
+
|
|
|
+ //判断是否在当前围栏
|
|
|
+ LocationVO location = getLocation(workOrder.getTruckId());
|
|
|
+ double pointLon = Double.valueOf(location.getLongitude());
|
|
|
+ double pointLat = Double.valueOf(location.getLatitude());
|
|
|
+ if (StringUtils.isNotBlank(regionData)) {
|
|
|
+ regionData = regionData.replace("\"", "");
|
|
|
+ regionData = regionData.replace("[", "");
|
|
|
+ regionData = regionData.replace("]", "");
|
|
|
+ String[] regionDataArray = regionData.split(";");
|
|
|
+ Double[] lon = new Double[regionDataArray.length];
|
|
|
+ Double[] lat = new Double[regionDataArray.length];
|
|
|
+ for (int i = 0; i < regionDataArray.length; i++) {
|
|
|
+ lon[i] = Double.valueOf(regionDataArray[i].split(",")[0]);
|
|
|
+ lat[i] = Double.valueOf(regionDataArray[i].split(",")[1]);
|
|
|
+ }
|
|
|
+ boolean flag = RegionUtil.isInPolygon(pointLon, pointLat, lon, lat);
|
|
|
+ vo.setIsInPolygon(flag);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return vo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public Integer findOrgTruckNumber(Long orgId, Long deptId) {
|
|
|
Truck truck = new Truck();
|
|
|
truck.setOrgId(orgId);
|