소스 검색

feat:运力实时调度列表排序、运力数量过滤

wangweiyu 4 년 전
부모
커밋
ad1a9a6b19

+ 3 - 2
src/main/java/com/aoyang/tms/controller/WorkOrderManageController.java

@@ -81,9 +81,10 @@ public class WorkOrderManageController {
     @ApiOperation(value = "运力调度统计汇总信息",notes="")
     @PostMapping("/statistics")
     public Result<TruckOrderStatisticsVO> statistics(@RequestHeader(value = "orgId") Long orgId,
-                                                     @RequestHeader(value = "userId") Long userId) {
+                                                     @RequestHeader(value = "userId") Long userId,
+                                                     @RequestBody WorkManagePageParam param) {
         log.info("获取运力调度统计汇总信息,调用/tms/work_order_manage/statistics orgId:{} ", orgId);
-        return new Result<>(workOrderService.getTruckOrderStatistics(orgId));
+        return new Result<>(workOrderService.getTruckOrderStatistics(param));
     }
 
     @ApiOperation(value = "车辆历史行程",notes="")

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

@@ -70,4 +70,13 @@ public class WorkManagePageParam {
 
     @ApiModelProperty(value = "未执行运单")
     private Integer unExecuted;
+
+    @ApiModelProperty(value = "")
+    private Integer orderType;
+
+    @ApiModelProperty(value = "")
+    private Integer type;
+
+    @ApiModelProperty(value = "")
+    private Integer orderStatus;
 }

+ 6 - 0
src/main/java/com/aoyang/tms/controller/vo/TruckOrderManageVO.java

@@ -103,4 +103,10 @@ public class TruckOrderManageVO implements Serializable {
     @ApiModelProperty(value = "托运方名称")
     private String shipperName;
 
+    @ApiModelProperty(value = "排序字段")
+    private String sortBy;
+
+    @ApiModelProperty(value = "排序方式,升序-ASC 降序-DESC。默认升序")
+    private String sortType = "ASC";
+
 }

+ 7 - 3
src/main/java/com/aoyang/tms/mapper/TruckMapper.java

@@ -25,10 +25,14 @@ public interface TruckMapper extends BaseMapper<Truck> {
 
     Page<Truck> listUnAllocatedTruck(@Param("page") Page page, @Param("orgId") Long orgId);
 
-    int getUnExecutedOrderTruckCount(@Param("orgId") Long orgId);
+    int getOrgOrderCount(@Param("param") WorkManagePageParam param);
 
-    int getUnAllocatedTruckCount(@Param("orgId") Long orgId);
+    int getTotalCount(@Param("param") WorkManagePageParam param);
 
-    int getUnAllocatedOrderCount(@Param("orgId") Long orgId, @Param("orderType") Integer type);
+    int getUnExecutedOrderTruckCount(@Param("param") WorkManagePageParam param);
+
+    int getUnAllocatedTruckCount(@Param("param") WorkManagePageParam param);
+
+    int getUnAllocatedOrderCount(@Param("param") WorkManagePageParam param);
 
 }

+ 1 - 1
src/main/java/com/aoyang/tms/service/WorkOrderService.java

@@ -67,7 +67,7 @@ public interface WorkOrderService extends IService<WorkOrder> {
      * @param orgId
      * @return
      */
-    TruckOrderStatisticsVO getTruckOrderStatistics(Long orgId);
+    TruckOrderStatisticsVO getTruckOrderStatistics(WorkManagePageParam orgId);
 
     /**
      * 分页查询运力调度统计列表

+ 30 - 19
src/main/java/com/aoyang/tms/service/impl/WorkOrderServiceImpl.java

@@ -130,41 +130,52 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
     }
 
     @Override
-    public TruckOrderStatisticsVO getTruckOrderStatistics(Long orgId) {
+    public TruckOrderStatisticsVO getTruckOrderStatistics(WorkManagePageParam param) {
+        Long orgId = param.getOrgId();
         TruckOrderStatisticsVO vo = new TruckOrderStatisticsVO();
-        vo.setTotal(commonService.findOrgTruckNumber(orgId, null));
+        int totalCount = truckMapper.getTotalCount(param);
+        vo.setTotal(totalCount);
         QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper();
         queryWrapper.eq("org_id", orgId);
         //装车
-        vo.setLoadWait(getOrgOrderCount(orgId, 1, WorkOrderEnum.ZHUANGCHE_WAIT.orderStatus()));
-        vo.setLoadGotoSpot(getOrgOrderCount(orgId, 1, WorkOrderEnum.GOTO_ZHUANGCHE_SPOT.orderStatus()));
-        vo.setLoadSubmit(getOrgOrderCount(orgId, 1, WorkOrderEnum.ZHUANGCHE_RESULT_SUBMIT.orderStatus()));
+        vo.setLoadWait(getOrgOrderCount(orgId, 1, WorkOrderEnum.ZHUANGCHE_WAIT.orderStatus(), param));
+        vo.setLoadGotoSpot(getOrgOrderCount(orgId, 1, WorkOrderEnum.GOTO_ZHUANGCHE_SPOT.orderStatus(), param));
+        vo.setLoadSubmit(getOrgOrderCount(orgId, 1, WorkOrderEnum.ZHUANGCHE_RESULT_SUBMIT.orderStatus(), param));
         vo.setLoadCount(vo.getLoadWait() + vo.getLoadGotoSpot() + vo.getLoadSubmit());
         //卸车
-        vo.setUnloadWait(getOrgOrderCount(orgId, 2, WorkOrderEnum.XIECHE_WAIT.orderStatus()));
-        vo.setUnloadGotoSpot(getOrgOrderCount(orgId, 2, WorkOrderEnum.GOTO_XIECHE_SPOT.orderStatus()));
-        vo.setUnloadSubmit(getOrgOrderCount(orgId, 2, WorkOrderEnum.XIECHE_RESULT_SUBMIT.orderStatus()));
+        vo.setUnloadWait(getOrgOrderCount(orgId, 2, WorkOrderEnum.XIECHE_WAIT.orderStatus(), param));
+        vo.setUnloadGotoSpot(getOrgOrderCount(orgId, 2, WorkOrderEnum.GOTO_XIECHE_SPOT.orderStatus(), param));
+        vo.setUnloadSubmit(getOrgOrderCount(orgId, 2, WorkOrderEnum.XIECHE_RESULT_SUBMIT.orderStatus(), param));
         vo.setUnloadCount(vo.getUnloadGotoSpot() + vo.getUnloadGotoSpot() + vo.getUnloadSubmit());
         //剩余运力
         vo.setSurplusCount(vo.getTotal() - vo.getLoadCount() - vo.getUnloadCount());
         //未执行运单
-        vo.setUnExecuted(truckMapper.getUnExecutedOrderTruckCount(orgId));
+        vo.setUnExecuted(truckMapper.getUnExecutedOrderTruckCount(param));
         //未派单
-        vo.setUnAllocated(truckMapper.getUnAllocatedTruckCount(orgId));
+        vo.setUnAllocated(truckMapper.getUnAllocatedTruckCount(param));
         //空车未派装车单
-        vo.setEmptyUnAllocated(truckMapper.getUnAllocatedOrderCount(orgId, 1));
+        param.setOrderType(1);
+        vo.setEmptyUnAllocated(truckMapper.getUnAllocatedOrderCount(param));
         //重车未派卸车单
-        vo.setHeavyUnAllocated(truckMapper.getUnAllocatedOrderCount(orgId, 2));
+        param.setOrderType(2);
+        vo.setHeavyUnAllocated(truckMapper.getUnAllocatedOrderCount(param));
         return vo;
     }
 
-    private int getOrgOrderCount(Long orgId, Integer type, Integer status) {
-        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<WorkOrder>().eq("org_id", orgId).
-                eq("order_status", status).lt("order_status", 40);
-        if (type != null) {
-            queryWrapper.eq("type", type);
-        }
-        return workOrderMapper.selectCount(queryWrapper);
+    private int getOrgOrderCount(Long orgId, Integer type, Integer status, WorkManagePageParam param) {
+//        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<WorkOrder>().eq("org_id", orgId).
+//                eq("order_status", status).lt("order_status", 40);
+//        if (type != null) {
+//            queryWrapper.eq("type", type);
+//        }
+//        if (param != null) {
+//            if (param.getDeptId() != null) {
+//                queryWrapper.eq("type", type);
+//            }
+//        }
+        param.setOrderType(type);
+        param.setOrderStatus(status);
+        return truckMapper.getOrgOrderCount(param);
     }
 
     @Override

+ 104 - 13
src/main/resources/mapper/TruckMapper.xml

@@ -136,9 +136,20 @@
         <where>
             <if test="param != null and param.spotId != null">
                 and tbl.spot_id = #{param.spotId}
-                ORDER BY tbl.queueNo is null, tbl.queueNo asc
             </if>
         </where>
+        ORDER BY
+        <choose>
+            <when test="param != null and param.spotId != null">
+                tbl.queueNo is null, tbl.queueNo asc
+            </when>
+            <when test="param != null and param.sortBy != null">
+                #{sortBy} #{sortType}
+            </when>
+            <otherwise>
+                tbl.createDate desc
+            </otherwise>
+        </choose>
     </select>
 
     <!-- 查询未派单车辆 -->
@@ -150,42 +161,122 @@
         WHERE truck.org_id = #{orgId} and wo.id is null
     </select>
 
+    <!-- 条件查询车辆数量 -->
+    <select id="getOrgOrderCount" parameterType="com.aoyang.tms.controller.param.WorkManagePageParam" resultType="java.lang.Integer">
+        SELECT count(1)
+        FROM (
+            select truck.truck_id from
+            truck
+            left join (
+            select * from tms_work_order wo where 40 > wo.order_status
+            order by order_status desc, plan_reach_time asc
+            ) two on truck.truck_id = two.truck_id
+            WHERE truck.org_id = #{param.orgId} and wo.id is null
+            <if test="param!=null and param.deptId!=null">
+                and truck.dept_id = #{param.deptId}
+            </if>
+            <if test="param!=null and param.carNumber!=null and param.carNumber!='' ">
+                and truck.car_number = #{param.carNumber}
+            </if>
+            <if test="param!=null and param.shipperId!=null">
+                and two.shipper_id = #{param.shipperId}
+            </if>
+            <if test="param!=null and param.orderStatus!=null">
+                and two.order_status = #{param.orderStatus}
+            </if>
+            <if test="param!=null and param.type!=null">
+                and two.type = #{param.type}
+            </if>
+            group by truck.truck_id
+        ) tbl
+    </select>
+
+    <!-- 查询总运力 -->
+    <select id="getTotalCount" parameterType="com.aoyang.tms.controller.param.WorkManagePageParam" resultType="java.lang.Integer">
+        SELECT count(1)
+        FROM (
+            select truck_id FROM  truck
+            left join (
+            select * from tms_work_order wo where 40 > wo.order_status
+            order by order_status desc, plan_reach_time asc
+            ) two on truck.truck_id = two.truck_id
+            WHERE truck.org_id = #{param.orgId}
+            <if test="param!=null and param.deptId!=null">
+                and truck.dept_id = #{param.deptId}
+            </if>
+            <if test="param!=null and param.carNumber!=null and param.carNumber!='' ">
+                and truck.car_number = #{param.carNumber}
+            </if>
+            <if test="param!=null and param.shipperId!=null">
+                and two.shipper_id = #{param.shipperId}
+            </if>
+            group by truck.truck_id
+        ) tbl
+    </select>
+
     <!-- 查询未执行派单车辆 -->
-    <select id="getUnExecutedOrderTruckCount" resultType="java.lang.Integer">
+    <select id="getUnExecutedOrderTruckCount" parameterType="com.aoyang.tms.controller.param.WorkManagePageParam" resultType="java.lang.Integer">
         SELECT count(1)
         FROM ( select id from truck left join tms_work_order wo on truck.truck_id = wo.truck_id and wo.order_status = 0
-        WHERE truck.org_id = #{orgId} and wo.id is not null
+        WHERE truck.org_id = #{param.orgId} and wo.id is not null
+        <if test="param!=null and param.deptId!=null">
+            and truck.dept_id = #{param.deptId}
+        </if>
+        <if test="param!=null and param.carNumber!=null and param.carNumber!='' ">
+            and truck.car_number = #{param.carNumber}
+        </if>
+        <if test="param!=null and param.shipperId!=null">
+            and wo.shipper_id = #{param.shipperId}
+        </if>
         group by truck.truck_id ) tbl
     </select>
 
     <!-- 查询未派单车辆 -->
-    <select id="getUnAllocatedTruckCount" resultType="java.lang.Integer">
+    <select id="getUnAllocatedTruckCount" parameterType="com.aoyang.tms.controller.param.WorkManagePageParam" resultType="java.lang.Integer">
         SELECT count(1)
         FROM
         truck left join tms_work_order wo on truck.truck_id = wo.truck_id and 40 > wo.order_status
-        WHERE truck.org_id = #{orgId} and wo.id is null
+        WHERE truck.org_id = #{param.orgId} and wo.id is null
+        <if test="param!=null and param.deptId!=null">
+            and truck.dept_id = #{param.deptId}
+        </if>
+        <if test="param!=null and param.carNumber!=null and param.carNumber!='' ">
+            and truck.car_number = #{param.carNumber}
+        </if>
+        <if test="param!=null and param.shipperId!=null">
+            and wo.shipper_id = #{param.shipperId}
+        </if>
     </select>
 
     <!-- 查询未派指定类型运单车车辆 -->
-    <select id="getUnAllocatedOrderCount" resultType="java.lang.Integer">
+    <select id="getUnAllocatedOrderCount" parameterType="com.aoyang.tms.controller.param.WorkManagePageParam" resultType="java.lang.Integer">
         SELECT count(1)
         FROM
         truck
         left join tms_work_order wo on truck.truck_id = wo.truck_id and 40 > wo.order_status
-        <if test="orderType != null and orderType == 1">
-            and wo.type = #{orderType}
+        <if test="param.orderType == 1">
+            and wo.type = #{param.orderType}
         </if>
-        <if test="orderType != null and orderType == 2">
-            and wo.type = #{orderType}
+        <if test="param.orderType == 2">
+            and wo.type = #{param.orderType}
         </if>
         left join tms_work_cycle wc on truck.truck_id = wc.truck_id and wc.status = 1
-        WHERE truck.org_id = #{orgId} and wo.id is null
-        <if test="orderType != null and orderType == 1">
+        WHERE truck.org_id = #{param.orgId} and wo.id is null
+        <if test="param.orderType == 1">
             and ( wc.jing_weight = 0 or wc.jing_weight is null )
         </if>
-        <if test="orderType != null and orderType == 2">
+        <if test="param.orderType == 2">
             and wc.jing_weight > 0
         </if>
+        <if test="param!=null and param.deptId!=null">
+            and truck.dept_id = #{param.deptId}
+        </if>
+        <if test="param!=null and param.shipperId!=null">
+            and wo.shipper_id = #{param.shipperId}
+        </if>
+        <if test="param!=null and param.carNumber!=null and param.carNumber!='' ">
+            and truck.car_number = #{param.carNumber}
+        </if>
     </select>
 
 </mapper>