Browse Source

门卫新增type字段

donglang 1 month ago
parent
commit
caf3400425

+ 46 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/GatekeeperTypeEnum.java

@@ -0,0 +1,46 @@
+package com.sckw.core.model.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.EnumSet;
+
+/**
+ * @author lfdc
+ * @desc 车辆往来运单状态枚举
+ * @date 2023-07-14 14:07:23
+ */
+@Getter
+@AllArgsConstructor
+public enum GatekeeperTypeEnum {
+
+    /**
+     * 门卫装货单
+     */
+    LOADING(1,  "门卫装货单"),
+
+    /**
+     * 门卫卸货单
+     */
+    UNLOADING(5,  "门卫卸货单"),
+
+    ;
+
+    private final Integer code;
+
+    private final String destination;
+
+
+    public static String getDesc(Integer status) {
+        if (status == null) {
+            return null;
+        }
+        for (GatekeeperTypeEnum forkliftStatusEnum : EnumSet.allOf(GatekeeperTypeEnum.class)) {
+            if (forkliftStatusEnum.code.equals(status)) {
+                return forkliftStatusEnum.destination;
+            }
+        }
+        return null;
+    }
+
+}

+ 5 - 7
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

@@ -6,10 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.common.enums.enums.ErrorCodeEnum;
 import com.sckw.core.exception.BusinessPlatfromException;
-import com.sckw.core.model.enums.CarWaybillV1Enum;
-import com.sckw.core.model.enums.ForkliftStatusEnum;
-import com.sckw.core.model.enums.GatekeeperStatusEnum;
-import com.sckw.core.model.enums.LoadingTypeEnum;
+import com.sckw.core.model.enums.*;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.DateUtils;
 import com.sckw.core.utils.StringUtils;
@@ -172,7 +169,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
                 forkliftWaybillOrderRepository.save(forklift);
                 log.debug("铲车司机数据保存成功");
             } catch (Exception e) {
-                log.error("异步保存铲车司机数据失败!");
+                throw new BusinessPlatfromException(ErrorCodeEnum.DATA_SAVE_FAIL, "异步保存铲车司机数据失败!");
             }
         });
     }
@@ -184,7 +181,8 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
      */
     public void updateGatekeeperOrderStatus(KwtWaybillOrder waybillOrder) {
         log.info("推进门卫数据为已进场:{}", JSON.toJSONString(waybillOrder));
-        KwtGatekeeperWaybillOrder gatekeeper = gatekeeperWaybillOrderRepository.queryGatekeeperWaybillOrderByWOrderId(waybillOrder.getId());
+        KwtGatekeeperWaybillOrder gatekeeper = gatekeeperWaybillOrderRepository
+                .queryGatekeeperWaybillOrderByWOrderId(waybillOrder.getId(), GatekeeperTypeEnum.LOADING.getCode());
         if (gatekeeper == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.GATEKEEPER_ORDER_NOT_FOUND, "当前门卫订单数据不存在!");
         }
@@ -221,7 +219,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
                 waybillOrderWeighbridgeRepository.save(weighbridge);
                 log.debug("异步保存过磅数据保存成功");
             } catch (Exception e) {
-                log.error("异步保存过磅数据失败!");
+                throw new BusinessPlatfromException(ErrorCodeEnum.DATA_SAVE_FAIL, "异步保存过磅数据失败!");
             }
         });
     }

+ 3 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/EmptyLoadLeaveHandler.java

@@ -6,6 +6,7 @@ import com.sckw.core.common.enums.enums.ErrorCodeEnum;
 import com.sckw.core.exception.BusinessPlatfromException;
 import com.sckw.core.model.enums.CarWaybillV1Enum;
 import com.sckw.core.model.enums.GatekeeperStatusEnum;
+import com.sckw.core.model.enums.GatekeeperTypeEnum;
 import com.sckw.transport.model.KwtGatekeeperWaybillOrder;
 import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.KwtWaybillOrderSubtask;
@@ -53,7 +54,8 @@ public class EmptyLoadLeaveHandler extends AbstractWaybillOrderHandler<WaybillOr
      * @return
      */
     public void updateGatekeeperOrderStatus(KwtWaybillOrder waybillOrder) {
-        KwtGatekeeperWaybillOrder gatekeeper = gatekeeperWaybillOrderRepository.queryGatekeeperWaybillOrderByWOrderId(waybillOrder.getId());
+        KwtGatekeeperWaybillOrder gatekeeper = gatekeeperWaybillOrderRepository
+                .queryGatekeeperWaybillOrderByWOrderId(waybillOrder.getId(), GatekeeperTypeEnum.LOADING.getCode());
         if (gatekeeper == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.GATEKEEPER_ORDER_NOT_FOUND, "当前门卫订单数据不存在!");
         }

+ 3 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LeaveHandler.java

@@ -6,6 +6,7 @@ import com.sckw.core.common.enums.enums.ErrorCodeEnum;
 import com.sckw.core.exception.BusinessPlatfromException;
 import com.sckw.core.model.enums.CarWaybillV1Enum;
 import com.sckw.core.model.enums.GatekeeperStatusEnum;
+import com.sckw.core.model.enums.GatekeeperTypeEnum;
 import com.sckw.transport.model.KwtGatekeeperWaybillOrder;
 import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.KwtWaybillOrderSubtask;
@@ -53,7 +54,8 @@ public class LeaveHandler extends AbstractWaybillOrderHandler<WaybillOrderLeaveP
      * @return
      */
     public void updateGatekeeperOrderStatus(KwtWaybillOrder waybillOrder) {
-        KwtGatekeeperWaybillOrder gatekeeper = gatekeeperWaybillOrderRepository.queryGatekeeperWaybillOrderByWOrderId(waybillOrder.getId());
+        KwtGatekeeperWaybillOrder gatekeeper = gatekeeperWaybillOrderRepository
+                .queryGatekeeperWaybillOrderByWOrderId(waybillOrder.getId(), GatekeeperTypeEnum.LOADING.getCode());
         if (gatekeeper == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.GATEKEEPER_ORDER_NOT_FOUND, "当前门卫订单数据不存在!");
         }

+ 3 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LiftRodReleaseHandler.java

@@ -6,6 +6,7 @@ import com.sckw.core.common.enums.enums.ErrorCodeEnum;
 import com.sckw.core.exception.BusinessPlatfromException;
 import com.sckw.core.model.enums.CarWaybillV1Enum;
 import com.sckw.core.model.enums.GatekeeperStatusEnum;
+import com.sckw.core.model.enums.GatekeeperTypeEnum;
 import com.sckw.transport.model.KwtGatekeeperWaybillOrder;
 import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.KwtWaybillOrderSubtask;
@@ -74,7 +75,8 @@ public class LiftRodReleaseHandler extends AbstractWaybillOrderHandler<WaybillOr
      * @return
      */
     public void updateGatekeeperOrderStatus(KwtWaybillOrder waybillOrder, Boolean isEmptyLoadLeave) {
-        KwtGatekeeperWaybillOrder gatekeeper = gatekeeperWaybillOrderRepository.queryGatekeeperWaybillOrderByWOrderId(waybillOrder.getId());
+        KwtGatekeeperWaybillOrder gatekeeper = gatekeeperWaybillOrderRepository
+                .queryGatekeeperWaybillOrderByWOrderId(waybillOrder.getId(), GatekeeperTypeEnum.LOADING.getCode());
         if (gatekeeper == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.GATEKEEPER_ORDER_NOT_FOUND, "当前门卫订单数据不存在!");
         }

+ 45 - 47
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ReplenishHandler.java

@@ -56,54 +56,52 @@ public class ReplenishHandler extends AbstractWaybillOrderHandler<WaybillOrderRe
      * @param waybillOrder
      */
     private void createForkliftWaybill(KwtWaybillOrder waybillOrder) {
-        CompletableFuture.runAsync(() ->{
-            try {
-                log.debug("开始异步保存铲车司机数据,运单ID:{}", waybillOrder.getId());
-
-                KwtForkliftWaybillOrder forklift = new KwtForkliftWaybillOrder();
-                forklift.setFOrderNo("F" + System.currentTimeMillis());
-                forklift.setEntId(waybillOrder.getEntId());
-                forklift.setWOrderId(waybillOrder.getId());
-                forklift.setLOrderId(waybillOrder.getLOrderId());
-
-                //查询字典
-                Map<String, Map<String, String>> dictValueAndDictResDtoMap = remoteSystemService.queryDictByType(
-                        Arrays.asList(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), DictTypeEnum.GOODS_SPEC.getType()));
-                Map<String, String> goodsTypeMap= dictValueAndDictResDtoMap.getOrDefault(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), new HashMap<>());
-                Map<String, String> goodsSpecMap= dictValueAndDictResDtoMap.getOrDefault(DictTypeEnum.GOODS_SPEC.getType(), new HashMap<>());
-
-                // 查询商品信息
-                KwtLogisticsOrderGoods orderGoods = logisticsOrderGoodsRepository.queryByLogOrderId(waybillOrder.getLOrderId());
-                KwpGoods goods = goodsInfoService.getGoodsById(orderGoods.getGoodsId());
-                if (goods != null) {
-                    List<SysDictResDto> dictResDtoList = remoteSystemService.queryDictFrontAll(DictTypeEnum.GOODS_SPEC.getType(), goods.getSpec());
-                    forklift.setDictId(CollectionUtils.isNotEmpty(dictResDtoList) ? dictResDtoList.get(0).getId() : -1L);
-                    forklift.setGoodsId(goods.getId());
-                    forklift.setGoodsName(goods.getName()+"/"+goodsTypeMap.getOrDefault(goods.getGoodsType(),"")+"/"+goodsSpecMap.getOrDefault(goods.getSpec(), ""));
-                }
-                forklift.setLoadingType(LoadingTypeEnum.SUPPLEMENT.getCode());
-                forklift.setStatus(ForkliftStatusEnum.PENDING_ORDERS.getCode());
-                forklift.setWaybillAcceptTime(waybillOrder.getCreateTime());
-
-                // 任务量
-                KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybillOrder.getId());
-                forklift.setEntrustAmount(waybillSubtask.getEntrustAmount());
-                // 车辆类型
-                RTruckVo truckVo = remoteFleetService.findTruckByTruckNo(waybillOrder.getTruckNo());
-                if (truckVo != null) {
-                    forklift.setTruckType(truckVo.getTruckType());
-                    forklift.setCarAxis(truckVo.getCarAxis());
-                }
-                forklift.setCreateTime(new Date());
-                forklift.setCreateUser(waybillOrder.getDriverId());
-                forklift.setUpdateUser(waybillOrder.getDriverId());
-
-                forkliftWaybillOrderRepository.save(forklift);
-                log.debug("铲车司机数据保存成功");
-            } catch (Exception e) {
-                log.error("异步保存铲车司机数据失败!");
+        try {
+            log.debug("开始异步保存铲车司机数据,运单ID:{}", waybillOrder.getId());
+
+            KwtForkliftWaybillOrder forklift = new KwtForkliftWaybillOrder();
+            forklift.setFOrderNo("F" + System.currentTimeMillis());
+            forklift.setEntId(waybillOrder.getEntId());
+            forklift.setWOrderId(waybillOrder.getId());
+            forklift.setLOrderId(waybillOrder.getLOrderId());
+
+            //查询字典
+            Map<String, Map<String, String>> dictValueAndDictResDtoMap = remoteSystemService.queryDictByType(
+                    Arrays.asList(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), DictTypeEnum.GOODS_SPEC.getType()));
+            Map<String, String> goodsTypeMap= dictValueAndDictResDtoMap.getOrDefault(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), new HashMap<>());
+            Map<String, String> goodsSpecMap= dictValueAndDictResDtoMap.getOrDefault(DictTypeEnum.GOODS_SPEC.getType(), new HashMap<>());
+
+            // 查询商品信息
+            KwtLogisticsOrderGoods orderGoods = logisticsOrderGoodsRepository.queryByLogOrderId(waybillOrder.getLOrderId());
+            KwpGoods goods = goodsInfoService.getGoodsById(orderGoods.getGoodsId());
+            if (goods != null) {
+                List<SysDictResDto> dictResDtoList = remoteSystemService.queryDictFrontAll(DictTypeEnum.GOODS_SPEC.getType(), goods.getSpec());
+                forklift.setDictId(CollectionUtils.isNotEmpty(dictResDtoList) ? dictResDtoList.get(0).getId() : -1L);
+                forklift.setGoodsId(goods.getId());
+                forklift.setGoodsName(goods.getName()+"/"+goodsTypeMap.getOrDefault(goods.getGoodsType(),"")+"/"+goodsSpecMap.getOrDefault(goods.getSpec(), ""));
             }
-        });
+            forklift.setLoadingType(LoadingTypeEnum.SUPPLEMENT.getCode());
+            forklift.setStatus(ForkliftStatusEnum.PENDING_ORDERS.getCode());
+            forklift.setWaybillAcceptTime(waybillOrder.getCreateTime());
+
+            // 任务量
+            KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybillOrder.getId());
+            forklift.setEntrustAmount(waybillSubtask.getEntrustAmount());
+            // 车辆类型
+            RTruckVo truckVo = remoteFleetService.findTruckByTruckNo(waybillOrder.getTruckNo());
+            if (truckVo != null) {
+                forklift.setTruckType(truckVo.getTruckType());
+                forklift.setCarAxis(truckVo.getCarAxis());
+            }
+            forklift.setCreateTime(new Date());
+            forklift.setCreateUser(waybillOrder.getDriverId());
+            forklift.setUpdateUser(waybillOrder.getDriverId());
+
+            forkliftWaybillOrderRepository.save(forklift);
+            log.debug("铲车司机数据保存成功");
+        } catch (Exception e) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.DATA_SAVE_FAIL, "保存铲车司机数据失败!");
+        }
     }
 
     @Override

+ 1 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/TakingOrderHandler.java

@@ -158,6 +158,7 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
                     gatekeeper.setGoodsName(orderGoods.getGoodsName());
                 }
                 gatekeeper.setWaybillAcceptTime(waybillOrder.getCreateTime());
+                gatekeeper.setType(GatekeeperTypeEnum.LOADING.getCode());
                 gatekeeper.setStatus(GatekeeperStatusEnum.PENDING_ENTRY.getCode());
                 gatekeeper.setWaybillAcceptTime(waybillOrder.getCreateTime());
                 gatekeeper.setTruckType(truck.getTruckType());

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtGatekeeperWaybillOrder.java

@@ -58,6 +58,11 @@ public class KwtGatekeeperWaybillOrder implements Serializable {
      */
     private String goodsName;
 
+    /**
+     * 门卫类型(1-装货单,2-卸货单)
+     */
+    private Integer type;
+
     /**
      * 状态(1-待进场,5-已进场、10-待离场、15-空载待离场、20-已放行未离场、25-已离场、30-空载离场)
      */

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtGatekeeperWaybillOrderRepository.java

@@ -33,10 +33,11 @@ public class KwtGatekeeperWaybillOrderRepository extends ServiceImpl<KwtGatekeep
                         .orderByDesc(KwtGatekeeperWaybillOrder::getId));
     }
 
-    public KwtGatekeeperWaybillOrder queryGatekeeperWaybillOrderByWOrderId(Long wOrderId) {
+    public KwtGatekeeperWaybillOrder queryGatekeeperWaybillOrderByWOrderId(Long wOrderId, Integer type) {
         return getOne(
                 Wrappers.<KwtGatekeeperWaybillOrder>lambdaQuery()
                         .eq(KwtGatekeeperWaybillOrder::getWOrderId, wOrderId)
+                        .eq(KwtGatekeeperWaybillOrder::getType, type)
                         .orderByDesc(KwtGatekeeperWaybillOrder::getId)
                         .last("limit 1"));
     }