|
@@ -4,33 +4,25 @@ import com.aoyang.common.param.PageParam;
|
|
|
import com.aoyang.common.result.Result;
|
|
import com.aoyang.common.result.Result;
|
|
|
import com.aoyang.tms.common.ErrCodeEnum;
|
|
import com.aoyang.tms.common.ErrCodeEnum;
|
|
|
import com.aoyang.tms.common.WorkOrderEnum;
|
|
import com.aoyang.tms.common.WorkOrderEnum;
|
|
|
-import com.aoyang.tms.controller.param.Truck;
|
|
|
|
|
-import com.aoyang.tms.controller.vo.LocationVO;
|
|
|
|
|
-import com.aoyang.tms.controller.vo.TruckOrderManageVO;
|
|
|
|
|
-import com.aoyang.tms.controller.vo.TruckOrderStatisticsVO;
|
|
|
|
|
-import com.aoyang.common.param.PageParam;
|
|
|
|
|
-import com.aoyang.tms.common.WorkOrderEnum;
|
|
|
|
|
|
|
+import com.aoyang.tms.controller.param.WorkManagePageParam;
|
|
|
|
|
+import com.aoyang.tms.controller.vo.*;
|
|
|
import com.aoyang.tms.controller.param.WorkOrderPageParam;
|
|
import com.aoyang.tms.controller.param.WorkOrderPageParam;
|
|
|
-import com.aoyang.tms.controller.vo.TruckDeptListVO;
|
|
|
|
|
-import com.aoyang.tms.controller.vo.WorkOrderPageListVO;
|
|
|
|
|
-import com.aoyang.tms.entity.Shipper;
|
|
|
|
|
-import com.aoyang.tms.entity.TruckDept;
|
|
|
|
|
-import com.aoyang.tms.entity.WorkOrder;
|
|
|
|
|
|
|
+import com.aoyang.tms.entity.*;
|
|
|
|
|
+import com.aoyang.tms.mapper.TruckMapper;
|
|
|
import com.aoyang.tms.mapper.WorkOrderMapper;
|
|
import com.aoyang.tms.mapper.WorkOrderMapper;
|
|
|
-import com.aoyang.tms.service.CommonService;
|
|
|
|
|
-import com.aoyang.tms.service.WorkOrderService;
|
|
|
|
|
|
|
+import com.aoyang.tms.service.*;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.*;
|
|
|
|
|
|
|
|
|
|
|
|
+import java.time.Duration;
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
@@ -48,9 +40,19 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
|
|
@Resource
|
|
@Resource
|
|
|
private CommonService commonService;
|
|
private CommonService commonService;
|
|
|
@Resource
|
|
@Resource
|
|
|
|
|
+ private TruckDriverService truckDriverService;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private TruckEscortService truckEscortService;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private TruckService truckService;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private TruckMapper truckMapper;
|
|
|
|
|
+ @Resource
|
|
|
private WorkOrderService workOrderService;
|
|
private WorkOrderService workOrderService;
|
|
|
@Resource
|
|
@Resource
|
|
|
private WorkOrderMapper workOrderMapper;
|
|
private WorkOrderMapper workOrderMapper;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private WorkOrderReadinfoService workOrderReadinfoService;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public TruckOrderStatisticsVO getTruckOrderStatistics(Long orgId) {
|
|
public TruckOrderStatisticsVO getTruckOrderStatistics(Long orgId) {
|
|
@@ -73,7 +75,7 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
|
|
//未执行运单
|
|
//未执行运单
|
|
|
vo.setUnExecuted(getOrgOrderCount(orgId, null, WorkOrderEnum.TODO.orderStatus()));
|
|
vo.setUnExecuted(getOrgOrderCount(orgId, null, WorkOrderEnum.TODO.orderStatus()));
|
|
|
//未派单
|
|
//未派单
|
|
|
- vo.setUnAllocated(0);
|
|
|
|
|
|
|
+ vo.setUnAllocated(truckMapper.getUnAllocatedTruckCount(orgId));
|
|
|
|
|
|
|
|
return vo;
|
|
return vo;
|
|
|
}
|
|
}
|
|
@@ -88,54 +90,61 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public Result<IPage<TruckOrderManageVO>> getTruckOrderStatistics(PageParam<Truck> pageParam) {
|
|
|
|
|
- if (pageParam.getParam() == null) {
|
|
|
|
|
|
|
+ public Result<IPage<TruckOrderManageVO>> getTruckOrderManageList(PageParam<WorkManagePageParam> pageParam) {
|
|
|
|
|
+ if (pageParam.getParam() == null || pageParam.getParam().getOrgId() == null) {
|
|
|
return new Result<>(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
|
|
return new Result<>(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
|
|
|
}
|
|
}
|
|
|
- // TODO strategy接口
|
|
|
|
|
- Result<IPage<Truck>> trucksResult = null;
|
|
|
|
|
- if (!commonService.verifyResult(trucksResult)) {
|
|
|
|
|
- return new Result<>(trucksResult.getCode(), trucksResult.getMessage());
|
|
|
|
|
- }
|
|
|
|
|
- IPage<Truck> records = trucksResult.getData();
|
|
|
|
|
- List<Truck> trucks = records.getRecords();
|
|
|
|
|
- IPage<TruckOrderManageVO> truckOrderRecords = new Page<TruckOrderManageVO>();
|
|
|
|
|
- if (records == null || trucks.size() == 0) {
|
|
|
|
|
- return new Result<>(truckOrderRecords);
|
|
|
|
|
- }
|
|
|
|
|
- truckOrderRecords.setTotal(records.getTotal());
|
|
|
|
|
- truckOrderRecords.setCurrent(records.getCurrent());
|
|
|
|
|
- truckOrderRecords.setSize(records.getSize());
|
|
|
|
|
|
|
+ // strategy接口
|
|
|
|
|
+ Page<Truck> page = new Page<>(pageParam.getPage(), pageParam.getSize());
|
|
|
|
|
+ IPage<TruckOrderManageVO> truckOrderRecords = truckMapper.listTmsManageTruck(page, pageParam.getParam());
|
|
|
List<TruckOrderManageVO> truckOrderList = new ArrayList<>();
|
|
List<TruckOrderManageVO> truckOrderList = new ArrayList<>();
|
|
|
- for (Truck truck : trucks) {
|
|
|
|
|
- TruckOrderManageVO vo = new TruckOrderManageVO();
|
|
|
|
|
- BeanUtils.copyProperties(truck, vo);
|
|
|
|
|
- QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper();
|
|
|
|
|
- queryWrapper.eq("truck_id", truck.getTruckId());
|
|
|
|
|
- List<Integer> statuses = new ArrayList<>();
|
|
|
|
|
- statuses.add(10);
|
|
|
|
|
- statuses.add(20);
|
|
|
|
|
- statuses.add(30);
|
|
|
|
|
- queryWrapper.in("order_status", statuses);
|
|
|
|
|
- WorkOrder order = workOrderService.getOne(queryWrapper);
|
|
|
|
|
- if (order != null) {
|
|
|
|
|
- vo.setCycleId(order.getCycleId());
|
|
|
|
|
- vo.setOrderNo(order.getOrderNo());
|
|
|
|
|
- vo.setOrderStatus(order.getOrderStatus());
|
|
|
|
|
- vo.setSpotId(order.getSpotId());
|
|
|
|
|
- vo.setSpotName(order.getSpotName());
|
|
|
|
|
- vo.setUpdateDate(order.getUpdateDate());
|
|
|
|
|
- if (order.getOrderStatus().equals(WorkOrderEnum.ZHUANGCHE_WAIT.orderStatus())) {
|
|
|
|
|
- // 等待中状态运单排队号
|
|
|
|
|
- vo.setQueueNo(order.getQueueNo());
|
|
|
|
|
|
|
+ for (TruckOrderManageVO vo : truckOrderList) {
|
|
|
|
|
+ LocationVO location = commonService.getLocation(vo.getTruckId());
|
|
|
|
|
+ if (location != null) {
|
|
|
|
|
+ vo.setLatitude(location.getLatitude());
|
|
|
|
|
+ vo.setLongitude(location.getLongitude());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (vo.getOrderId() != null) {
|
|
|
|
|
+ // 设置已读未读信息
|
|
|
|
|
+ List<TruckDriver> truckDrivers = truckDriverService.findTruckDrivers(vo.getTruckId());
|
|
|
|
|
+ List<ReadInfo> readInfos = new ArrayList<>();
|
|
|
|
|
+ for (TruckDriver driver : truckDrivers) {
|
|
|
|
|
+ QueryWrapper queryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq("order_id", vo.getOrderId());
|
|
|
|
|
+ queryWrapper.eq("user_id", vo.getOrderId());
|
|
|
|
|
+ WorkOrderReadinfo read = workOrderReadinfoService.getOne(queryWrapper);
|
|
|
|
|
+ ReadInfo readInfo = new ReadInfo();
|
|
|
|
|
+ readInfo.setDriverId(driver.getDriverId());
|
|
|
|
|
+ readInfo.setDriverName(driver.getDriverName());
|
|
|
|
|
+ readInfo.setDriverType(0);
|
|
|
|
|
+ if (read == null) {
|
|
|
|
|
+ readInfo.setReadFlag(0);
|
|
|
|
|
+ readInfo.setMinutes((int)Duration.between(vo.getCreateDate(), LocalDateTime.now()).toMinutes());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ readInfo.setReadFlag(1);
|
|
|
|
|
+ }
|
|
|
|
|
+ readInfos.add(readInfo);
|
|
|
}
|
|
}
|
|
|
- LocationVO location = commonService.getLocation(truck.getTruckId());
|
|
|
|
|
- if (location != null) {
|
|
|
|
|
- vo.setLatitude(location.getLatitude());
|
|
|
|
|
- vo.setLongitude(location.getLongitude());
|
|
|
|
|
|
|
+ List<TruckEscort> truckEscorts = truckEscortService.list(new QueryWrapper<TruckEscort>().eq("truck_id", vo.getTruckId()));
|
|
|
|
|
+ for (TruckEscort truckEscort : truckEscorts) {
|
|
|
|
|
+ QueryWrapper queryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq("order_id", vo.getOrderId());
|
|
|
|
|
+ queryWrapper.eq("user_id", vo.getOrderId());
|
|
|
|
|
+ WorkOrderReadinfo read = workOrderReadinfoService.getOne(queryWrapper);
|
|
|
|
|
+ ReadInfo readInfo = new ReadInfo();
|
|
|
|
|
+ readInfo.setDriverId(truckEscort.getUserId());
|
|
|
|
|
+ readInfo.setDriverName(truckEscort.getEscortName());
|
|
|
|
|
+ readInfo.setDriverType(1);
|
|
|
|
|
+ if (read == null) {
|
|
|
|
|
+ readInfo.setReadFlag(0);
|
|
|
|
|
+ readInfo.setMinutes((int)Duration.between(vo.getCreateDate(), LocalDateTime.now()).toMinutes());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ readInfo.setReadFlag(1);
|
|
|
|
|
+ }
|
|
|
|
|
+ readInfos.add(readInfo);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- truckOrderList.add(vo);
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
truckOrderRecords.setRecords(truckOrderList);
|
|
truckOrderRecords.setRecords(truckOrderList);
|