Преглед на файлове

提交新增合同文件校验

chenxiaofei преди 1 месец
родител
ревизия
0f654adfa4

+ 1 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -227,6 +227,7 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
         kwfTruckRoute.setEntId(params.getEntId());
         kwfTruckRoute.setStartPoint(params.getStartPoint());
         kwfTruckRoute.setUnloadingPoint(params.getUnloadingPoint());
+        kwfTruckRoute.setTruckId(params.getTruckId());
         kwfTruckRoute.setTruckNo(params.getTruckNo());
         kwfTruckRoute.setShortestTime(params.getShortestTime());
         kwfTruckRoute.setPointInfo(params.getPointInfo());

+ 2 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruckRoute.java

@@ -79,5 +79,7 @@ public class KwfTruckRoute {
     private String pointInfo;
     @TableField("truck_no")
     private String truckNo;
+    @TableField("truck_id")
+    private Long truckId;
 
 }

+ 5 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTruckRouteDto.java

@@ -73,12 +73,17 @@ public class KwfTruckRouteDto {
      */
 
     private Integer delFlag;
+
+
+    private String truckNo;
     /**
      * 车队id列表
      */
+    @TableField(exist = false)
     private Set<Long> fleetIds;
     /**
      * 司机id列表
      */
+    @TableField(exist = false)
     private Set<Long> driverIds;
 }

+ 2 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/repository/KwfTruckRouteRepository.java

@@ -26,6 +26,8 @@ public class KwfTruckRouteRepository extends ServiceImpl<KwfTruckRouteMapper, Kw
                 .in(CollectionUtils.isNotEmpty(kwfTruckRoute.getFleetIds()),KwfTruckRoute::getFleetId, kwfTruckRoute.getFleetIds())
                 .in(CollectionUtils.isNotEmpty(kwfTruckRoute.getDriverIds()),KwfTruckRoute::getDriverId, kwfTruckRoute.getDriverIds())
                 .eq(KwfTruckRoute::getDelFlag,0)
+                .eq(KwfTruckRoute::getEntId, kwfTruckRoute.getEntId())
+                .like(StringUtils.isNotBlank(kwfTruckRoute.getTruckNo()),KwfTruckRoute::getTruckNo, kwfTruckRoute.getTruckNo())
                 .like(StringUtils.isNotBlank(kwfTruckRoute.getStartPoint()),KwfTruckRoute::getStartPoint, kwfTruckRoute.getStartPoint())
                 .like(StringUtils.isNotBlank(kwfTruckRoute.getUnloadingPoint()),KwfTruckRoute::getUnloadingPoint, kwfTruckRoute.getUnloadingPoint()));
     }

+ 9 - 2
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckRouteService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.sckw.core.model.base.BaseModel;
 import com.sckw.core.utils.DateUtils;
 import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.fleet.model.*;
 import com.sckw.fleet.model.dto.KwfTruckRouteDto;
@@ -44,16 +45,22 @@ public class KwfTruckRouteService {
 
     public PageDataResult<QueryTruckRoteVo> pageTruckRoute(QueryTruckRoteReq req) {
         log.info("分页查询车辆惯用路线,参数:{}", JSON.toJSONString(req));
+        Long entId = LoginUserHolder.getEntId();
         //获取司机id
         Set<Long> driveIds = getDriveIds(req);
         //获取车队id
         Set<Long> fleetIds = getFleetIds(req);
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getFleetId())){
+            fleetIds.add(Long.valueOf(req.getFleetId()));
+        }
 
         KwfTruckRouteDto kwfTruckRoute = new KwfTruckRouteDto();
         kwfTruckRoute.setFleetIds(fleetIds);
         kwfTruckRoute.setDriverIds(driveIds);
         kwfTruckRoute.setStartPoint(req.getStartPoint());
         kwfTruckRoute.setUnloadingPoint(req.getUnloadingPoint());
+        kwfTruckRoute.setTruckNo(req.getTruckNo());
+        kwfTruckRoute.setEntId(entId);
         IPage<KwfTruckRoute> truckRoutePage = truckRouteRepository.pageTruckRoute(req.getPageNum(), req.getPageSize(), kwfTruckRoute);
         List<KwfTruckRoute> records = truckRoutePage.getRecords();
         if (CollectionUtils.isEmpty(records)){
@@ -111,12 +118,12 @@ public class KwfTruckRouteService {
      */
     private Set<Long> getDriveIds(QueryTruckRoteReq req) {
         if (StringUtils.isBlank(req.getDriverName())) {
-            return Collections.emptySet();
+            return new HashSet<>();
         }
         //查询司机信息
         List<KwfDriver> drivers = driverRepository.findDriverByName(req.getDriverName());
         if (CollectionUtils.isEmpty(drivers)) {
-            return Collections.emptySet();
+            return new HashSet<>();
         }
         return drivers.stream()
                 .map(BaseModel::getId)

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/ReviewWaybillOrderReq.java

@@ -41,4 +41,14 @@ public class ReviewWaybillOrderReq implements Serializable {
      */
     @Schema(description = "单据地址 多个用逗号隔开")
     private String addressUrl;
+    /**
+     * 上传人
+     */
+    @Schema(description = "上传人")
+    private String uploadUser;
+    /**
+     * 上传时间
+     */
+    @Schema(description = "上传时间")
+    private String uploadTime;
 }

+ 59 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDetailResp.java

@@ -5,6 +5,7 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @author :chenXiaoFei
@@ -102,4 +103,62 @@ public class WaybillOrderDetailResp implements Serializable {
     @Schema(description = "卸货量")
     private String unloadAmount;
 
+    /**
+     * 托运企业
+     */
+    @Schema(description = "托运企业")
+    private String transEntName;
+    /**
+     * 承运企业
+     */
+    @Schema(description = "承运企业")
+   private String carrierEntName;
+    /**
+     * 过磅记录
+     */
+    @Schema(description = "过磅记录")
+    private List<WeighingRecord> weighingRecords;
+
+    /**
+     * 单据信息
+     */
+    @Schema(description = "单据信息")
+    private BillInfo billInfo;
+    @Data
+    public static class WeighingRecord implements Serializable{
+        @Serial
+        private static final long serialVersionUID = -2336627824004942658L;
+
+        /**
+         * 过磅时间
+         */
+        @Schema(description = "过磅时间")
+        private String weighingTime;
+        /**
+         * 过磅描述
+         */
+        @Schema(description = "过磅描述")
+        private String weighingDesc;
+
+    }
+    @Data
+    public static class BillInfo implements  Serializable{
+        @Serial
+        private static final long serialVersionUID = 327264843861102865L;
+        /**
+         * 上传人名称
+         */
+        @Schema(description = "上传人名称")
+        private String uploadByLabel;
+        /**
+         * 上传时间
+         */
+        @Schema(description = "上传时间")
+        private String uploadTime;
+        /**
+         * 单据地址
+         */
+        @Schema(description = "单据地址")
+        private String billUrl;
+    }
 }

+ 65 - 8
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -3311,8 +3311,27 @@ public class KwtWaybillOrderV1Service {
                     Function.identity(), (x, y) -> x));
         }
 
+        //查询企业信息
+        List<KwtLogisticsOrderUnit> unitList = kwtLogisticsOrderUnitRepository.queryByLOrderId(logOrder.getId());
+        Map<String, KwtLogisticsOrderUnit> logisticsOrderUnitMap = Maps.newHashMap() ;
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
+            logisticsOrderUnitMap = unitList.stream()
+                    .collect(Collectors.toMap(x -> x.getLOrderId() + "-" + x.getUnitType(), Function.identity(), (x, y) -> x));
+        }
+
+        //查询轨迹
+        List<KwtWaybillOrderNode> kwtWaybillOrderNodes = waybillOrderNodeRepository.queryNodesByOrderId(billOrder.getId(), subtask.getId());
+        List<KwtWaybillOrderNode> nodeList = Lists.newArrayList() ;
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(kwtWaybillOrderNodes)){
+            nodeList = kwtWaybillOrderNodes.stream()
+                    .sorted(Comparator.comparing(KwtWaybillOrderNode::getCreateTime))
+                    .collect(Collectors.toList());
+        }
+
+        //查询用户
+        UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(subtask.getUnloadOperator());
         return getWaybillOrderDetailResp( subtask,billOrder, logOrder, truck, fleet, goods,
-                keyAndAddressMap,kwpGoods);
+                keyAndAddressMap,kwpGoods,logisticsOrderUnitMap,nodeList,userCacheResDto);
     }
 
     @NotNull
@@ -3322,7 +3341,10 @@ public class KwtWaybillOrderV1Service {
                                                                      RTruckVo truck, RFleetVo fleet,
                                                                      KwtLogisticsOrderGoods goods,
                                                                      Map<String, KwtWaybillOrderAddress> keyAndAddressMap,
-                                                                     KwpGoods kwpGoods ) {
+                                                                     KwpGoods kwpGoods,
+                                                                     Map<String, KwtLogisticsOrderUnit> logisticsOrderUnitMap,
+                                                                     List<KwtWaybillOrderNode> nodeList,
+                                                                     UserCacheResDto userCacheResDto) {
         WaybillOrderDetailResp waybillOrderDetailResp = new WaybillOrderDetailResp();
         waybillOrderDetailResp.setWaybillOrderId(String.valueOf(billOrder.getId()));
         waybillOrderDetailResp.setWaybillOrderNo(billOrder.getWOrderNo());
@@ -3350,6 +3372,23 @@ public class KwtWaybillOrderV1Service {
                 subtask.getLoadAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "");
         waybillOrderDetailResp.setUnloadAmount(Objects.nonNull(subtask.getUnloadAmount()) ?
                 subtask.getUnloadAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "");
+
+        KwtLogisticsOrderUnit transEnt = logisticsOrderUnitMap.getOrDefault(logOrder.getId() + "-" + UnitTypeEnum.CONSIGN.getCode(), new KwtLogisticsOrderUnit());
+        KwtLogisticsOrderUnit carrierEnt = logisticsOrderUnitMap.getOrDefault(logOrder.getId() + "-" + UnitTypeEnum.CARRIAGE.getCode(), new KwtLogisticsOrderUnit());
+        waybillOrderDetailResp.setTransEntName(transEnt.getFirmName());
+        waybillOrderDetailResp.setCarrierEntName(carrierEnt.getFirmName());
+        List<WaybillOrderDetailResp.WeighingRecord> records = nodeList.stream().map(node -> {
+            WaybillOrderDetailResp.WeighingRecord weighingRecord = new WaybillOrderDetailResp.WeighingRecord();
+            weighingRecord.setWeighingTime(DateUtils.format(node.getCreateTime(), DateUtils.DATE_TIME_PATTERN));
+            weighingRecord.setWeighingDesc(node.getRemark());
+            return weighingRecord;
+        }).collect(Collectors.toList());
+        waybillOrderDetailResp.setWeighingRecords(records);
+        WaybillOrderDetailResp.BillInfo billInfo = new WaybillOrderDetailResp.BillInfo();
+        billInfo.setUploadByLabel(Objects.nonNull(userCacheResDto) ? userCacheResDto.getName() : "" );
+        billInfo.setUploadTime(DateUtils.format(subtask.getUnloadUploadTime(),DateUtils.DATE_TIME_PATTERN));
+        billInfo.setBillUrl(subtask.getUnloadUrl());
+        waybillOrderDetailResp.setBillInfo(billInfo);
         return waybillOrderDetailResp;
     }
 
@@ -3371,11 +3410,20 @@ public class KwtWaybillOrderV1Service {
         updateOrder.setId(billOrder.getId());
         KwtWaybillOrderSubtask updateSubtask = new KwtWaybillOrderSubtask();
         updateSubtask.setId(subtask.getId());
-        KwtWaybillOrderTicket kwtWaybillOrderTicket = new KwtWaybillOrderTicket();
+        //KwtWaybillOrderTicket kwtWaybillOrderTicket = new KwtWaybillOrderTicket();
         //单证审核 运单当前状态是已卸货,传入的订单是已完成
         if (Objects.equals(status, CarWaybillV1Enum.WAIT_UNLOADING.getCode()) && Objects.equals(billOrder.getStatus(), CarWaybillV1Enum.COMPLETION_LOADING.getCode())){
             updateOrder.setStatus( status);
             updateSubtask.setStatus(status);
+            if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getAddressUrl())){
+                subtask.setUnloadUrl(req.getAddressUrl());
+            }
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(req.getUploadUser())){
+                subtask.setUnloadOperator(Long.valueOf(req.getUploadUser()));
+            }
+            if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getUploadTime())){
+                subtask.setUnloadUploadTime(DateUtils.parse(req.getUploadTime(), DateUtils.DATE_TIME_PATTERN));
+            }
             boolean b = kwtWaybillOrderRepository.updateById(updateOrder) && kwtWaybillOrderSubtaskRepository.updateById(updateSubtask);
             //修改物流订单数据
             KwtLogisticsOrder kwtLogistics= kwtLogisticsOrderRepository.queryByLogisticsOrderId(subtask.getLOrderId());
@@ -3397,18 +3445,27 @@ public class KwtWaybillOrderV1Service {
             updateOrder.setStatus(status);
             updateSubtask.setStatus(status);
             updateSubtask.setUnloadAmount(Objects.nonNull(req.getUnloadAmount()) ? new BigDecimal(req.getUnloadAmount()) : null);
+            if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getAddressUrl())){
+                subtask.setUnloadUrl(req.getAddressUrl());
+            }
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(req.getUploadUser())){
+                subtask.setUnloadOperator(Long.valueOf(req.getUploadUser()));
+            }
+            if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getUploadTime())){
+                subtask.setUnloadUploadTime(DateUtils.parse(req.getUploadTime(), DateUtils.DATE_TIME_PATTERN));
+            }
             boolean b = kwtWaybillOrderRepository.updateById(updateOrder) && kwtWaybillOrderSubtaskRepository.updateById(updateSubtask);
-            kwtWaybillOrderTicket.setWOrderId(waybillId);
-            kwtWaybillOrderTicket.setUrls(req.getAddressUrl());
-            kwtWaybillOrderTicket.setUploadingTime(new Date());
-            Boolean b1 = kwtWaybillOrderTicketRepository.updateByBillOrderIdAndType(kwtWaybillOrderTicket, 2);
+//            kwtWaybillOrderTicket.setWOrderId(waybillId);
+//            kwtWaybillOrderTicket.setUrls(req.getAddressUrl());
+//            kwtWaybillOrderTicket.setUploadingTime(new Date());
+//            Boolean b1 = kwtWaybillOrderTicketRepository.updateByBillOrderIdAndType(kwtWaybillOrderTicket, 2);
             // 存储记录
             Long currentRoleId = LoginUserHolder.getCurrentRoleId();
             KwsRoleDto kwsRoleDto = remoteSystemService.queryByRoleIdAndEntId(currentRoleId);
             String roleName =  Objects.nonNull(kwsRoleDto) ? kwsRoleDto.getName() : "";
             String remark = "供应方,【"+roleName+"】【"+LoginUserHolder.getUserName()+"】已审核单证";
             saveNode(billOrder, subtask, status,remark);
-            if (!b || !b1){
+            if (!b ){
                throw new BusinessException("完整单证失败");
             }
             return Boolean.TRUE;