Просмотр исходного кода

feat:运力实时调度根据排队号排序

wangweiyu 4 лет назад
Родитель
Сommit
6d1c2b6fda

+ 7 - 0
src/main/java/com/aoyang/tms/controller/WorkerController.java

@@ -5,6 +5,7 @@ import com.aoyang.common.param.PageParam;
 import com.aoyang.common.result.Result;
 import com.aoyang.tms.common.ErrCodeEnum;
 import com.aoyang.tms.common.TmsTruckStatus;
+import com.aoyang.tms.common.WorkLogTypeEnum;
 import com.aoyang.tms.common.WorkOrderEnum;
 import com.aoyang.tms.controller.param.UpSignParam;
 import com.aoyang.tms.controller.vo.LocationVO;
@@ -185,6 +186,9 @@ public class WorkerController {
         restInfo.setCreaterName(utf8Name);
         restInfo.setCreateDate(LocalDateTime.now());
         Boolean flag = restInfoService.save(restInfo);
+        workLogService.logWorkCycleInfo(WorkLogTypeEnum.REST_START, null);
+        workLogService.logWorkCycleInfo(WorkLogTypeEnum.REST_START, null, workCycle.getId()+"",
+                DateUtils.betweenTime(restInfo.getStartTime(), restInfo.getEndTime()));
         return new Result<>(flag);
     }
 
@@ -210,6 +214,9 @@ public class WorkerController {
         truckRepairInfo.setCreaterName(utf8Name);
         truckRepairInfo.setCreateDate(LocalDateTime.now());
         Boolean flag = truckRepairInfoService.save(truckRepairInfo);
+        workLogService.logWorkCycleInfo(WorkLogTypeEnum.REPAIR_START, null);
+        workLogService.logWorkCycleInfo(WorkLogTypeEnum.REPAIR_START, null, workCycle.getId()+"",
+                DateUtils.betweenTime(truckRepairInfo.getStartTime(), truckRepairInfo.getEndTime()));
         return new Result<>(flag);
     }
 

+ 3 - 0
src/main/java/com/aoyang/tms/controller/param/WorkManagePageParam.java

@@ -28,6 +28,9 @@ public class WorkManagePageParam {
     @ApiModelProperty(value = "车牌号")
     private String carNumber;
 
+    @ApiModelProperty(value = "装车地点id")
+    private String spotId;
+
 
     @ApiModelProperty(value = "装车占用运力")
     private Integer loadCount;

+ 27 - 0
src/main/java/com/aoyang/tms/service/impl/WorkLogServiceImpl.java

@@ -5,6 +5,7 @@ import com.aoyang.tms.entity.WorkLog;
 import com.aoyang.tms.entity.WorkOrder;
 import com.aoyang.tms.mapper.WorkLogMapper;
 import com.aoyang.tms.service.WorkLogService;
+import com.aoyang.tms.util.DateUtils;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.BeanUtils;
@@ -239,6 +240,32 @@ public class WorkLogServiceImpl extends ServiceImpl<WorkLogMapper, WorkLog> impl
             workLog.setNote(content);
             workLog.setOrderId(workOrder.getId()+"");
             workLog.setCreateDate(LocalDateTime.now());
+        } else if (logType.equals(WorkLogTypeEnum.REPAIR_START) || logType.equals(WorkLogTypeEnum.REST_START)) {
+            // 开始"途中维修"
+            workLog.setCycleId(workOrder.getCycleId());
+            if (workOrder == null) {
+                log.error("记录行车日志错误:运单不存在");
+                return false;
+            }
+            BeanUtils.copyProperties(workOrder, workLog);
+            workLog.setId(null);
+            workLog.setOrderId(workOrder.getId()+"");
+            workLog.setCreateDate(LocalDateTime.now());
+        } else if (logType.equals(WorkLogTypeEnum.REPAIR_END) || logType.equals(WorkLogTypeEnum.REST_END)) {
+            // 结束"途中维修"
+            workLog.setCycleId(workOrder.getCycleId());
+            if (workOrder == null) {
+                log.error("记录行车日志错误:运单不存在");
+                return false;
+            }
+            BeanUtils.copyProperties(workOrder, workLog);
+            workLog.setId(null);
+            // 日志内容
+            String content = "用时:" + args[0];
+            workLog.setUrl(workOrder.getEndTripUrl());
+            workLog.setNote(content);
+            workLog.setOrderId(workOrder.getId()+"");
+            workLog.setCreateDate(LocalDateTime.now());
         } else {
             // 通用处理
             if (workOrder == null) {

+ 4 - 4
src/main/java/com/aoyang/tms/service/impl/WorkerServiceImpl.java

@@ -134,10 +134,6 @@ public class WorkerServiceImpl implements WorkerService {
         try {
             WorkOrder workOrder = workOrderService.getById(truckCheckInfo.getOrderId());
             if (workOrder != null) {
-                //1.车辆进入作业中状态
-                Truck truck = truckService.getById(workOrder.getTruckId());
-                truck.setTmsStatus(TmsTruckStatus.WORKING);
-                truckService.updateById(truck);
                 //3.更新订单,更新前往装车点时间
                 workOrder.setGotoSpotTime(LocalDateTime.now());
                 workOrderService.updateById(workOrder);
@@ -194,6 +190,10 @@ public class WorkerServiceImpl implements WorkerService {
                 workOrder.setEndTripUrl(workOrderParam.getEndTripUrl());
                 workOrder.setWorkStartTime(workOrderParam.getWorkStartTime());
                 workOrder.setWorkEndTime(workOrderParam.getWorkEndTime());
+                //1.车辆进入作业中状态
+                Truck truck = truckService.getById(workOrder.getTruckId());
+                truck.setTmsStatus(TmsTruckStatus.WORKING);
+                truckService.updateById(truck);
                 if (workOrder.getType() == 1) {
                     //3.订单进入前往装车点状态,
                     workOrder.setOrderStatus(WorkOrderEnum.ZHUANGCHE_RESULT_SUBMIT.orderStatus());

+ 9 - 1
src/main/resources/mapper/TruckMapper.xml

@@ -57,12 +57,13 @@
 
     <!-- 查询实时调度车辆列表 -->
     <select id="listTmsManageTruck" resultType="com.aoyang.tms.controller.vo.TruckOrderManageVO">
+        SELECT * FROM (
         SELECT
           truck.truck_id as truckId, truck.tms_status as tmsStatus, truck.org_id as orgId, truck.org_name as orgName, truck.org_short_name as orgShortName,
           truck.car_number as carNumber, truck.trailer_number as trailerNumber, truck.dept_id as deptId, truck.dept_name as deptName,
           two.id as orderId, two.order_status as orderStatus, two.order_no as orderNo, two.type, two.spot_id as spotId, two.spot_name as spotName,
           two.shipper_id as shipperId, two.shipper_name as shipperName,  two.update_date as updateDate, two.create_date as createDate, two.queue_no as queueNo, wc.id as cycleId,
-          case when wc.jing_weight > 0 then 1 else 0 end as weightFlag
+          case when wc.jing_weight > 0 then 1 else 0 end as weightFlag, two.spot_id
         FROM
         truck
         left join (
@@ -131,6 +132,13 @@
                 and wc.jing_weight > 0 and two.id is null
             </if>
         group by truck.truck_id
+        ) tbl
+        <where>
+            <if test="param != null and param.spotId != null">
+                and wc.jing_weight > 0 and two.id is null
+                ORDER BY tbl.queueNo is null, tbl.queueNo asc
+            </if>
+        </where>
     </select>
 
     <!-- 查询未派单车辆 -->