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

1、车辆运单操作接口自测调整-正常流程

zk 2 лет назад
Родитель
Сommit
4d63b2c4d9

+ 1 - 2
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java

@@ -417,8 +417,7 @@ public class SckwLogisticsOrder {
     /**
      * 是否删除(0未删除,1删除)
      */
-    @TableLogic("0")
-    private String delFlag = "0";
+    private String delFlag;
 
     /**
      * 关联的承运订单号

+ 6 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WaybillOrderTicketDto.java

@@ -1,11 +1,14 @@
 package com.sckw.transport.model.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.DecimalMin;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Size;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -62,7 +65,9 @@ public class WaybillOrderTicketDto {
      * 装卸货时间
      */
     @JsonProperty("time")
-    @NotBlank(message = "时间不能为空")
+    @JsonFormat(locale="zh", pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @NotNull(message = "时间不能为空")
     private Date time;
 
     /**

+ 67 - 22
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -23,10 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 
 /**
  * @author zk
@@ -473,26 +470,26 @@ public class KwtWaybillOrderService {
         //int level = checkLogisticsLevel(logisticsOrder);
         String pids = logisticsOrder.getPids();
         if (StringUtils.isNotBlank(pids)) {
-            String [] idArray = pids.split(",");
+            String [] idArray = pids.split(Global.COMMA);
             for (String id : idArray) {
                 KwtLogisticsOrder order = logisticsOrderDao.selectById(id);
                 //承运订单-待派车
                 if (logisticsOrder.getStatus() == LogisticsOrderEnum.WAIT_DELIVERY.getCode()) {
                     //承运订单不存在分包:更新当前承运订单状态及委派量entrustAmount
-                    if (order.getId() == logisticsOrder.getId()) {
+                    //if (order.getId() == logisticsOrder.getId()) {
                         //承运订单已委派量
                         BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
                         logisticsOrder.setEntrustAmount(entrustAmount.add(ranksAmount));
-                    }
+                    //}
                     /**承运订单:待派车->运输中**/
                     logisticsOrder.setStatus(LogisticsOrderEnum.IN_TRANSIT.getCode());
-                    logisticsOrderDao.updateById(order);
+                    logisticsOrderDao.updateById(logisticsOrder);
 
                     /**承运订单状态记录**/
                     KwtLogisticsOrderTrack orderTrack = new KwtLogisticsOrderTrack();
-                    orderTrack.setLOrderId(order.getId());
-                    orderTrack.setStatus(order.getStatus());
-                    orderTrack.setRemark(LogisticsOrderEnum.getName(order.getStatus()));
+                    orderTrack.setLOrderId(logisticsOrder.getId());
+                    orderTrack.setStatus(logisticsOrder.getStatus());
+                    orderTrack.setRemark(LogisticsOrderEnum.getName(logisticsOrder.getStatus()));
                     logisticsOrderTrackDao.insert(orderTrack);
 
                     /**Mongodb数据更新**/
@@ -992,6 +989,7 @@ public class KwtWaybillOrderService {
         ticket.setType(Global.NUMERICAL_ONE);
         ticket.setAmount(waybillOrder.getLoadAmount());
         ticket.setUrls(params.getUrls());
+        ticket.setTime(params.getTime());
         waybillOrderTicketDao.insert(ticket);
 
         /**4更新承运订单entrustAmount**/
@@ -1096,6 +1094,7 @@ public class KwtWaybillOrderService {
         ticket.setType(Global.NUMERICAL_TWO);
         ticket.setAmount(waybillOrder.getUnloadAmount());
         ticket.setUrls(params.getUrls());
+        ticket.setTime(params.getTime());
         waybillOrderTicketDao.insert(ticket);
 
         /**4更新承运订单entrustAmount**/
@@ -1134,7 +1133,7 @@ public class KwtWaybillOrderService {
 
         /**6发送消息**/
 
-        return HttpResult.ok("货成功!");
+        return HttpResult.ok("货成功!");
     }
 
     /**
@@ -1257,6 +1256,7 @@ public class KwtWaybillOrderService {
         if (!LogisticsOrderEnum.transportCompleted(logisticsOrder.getStatus())
                 && logisticsOrder.getAmount().subtract(subcontractAmount).compareTo(waybillCount.getLoadAmount()) <= 0
                 && subcontractBool) {
+            //---------------------------------------------zk 2023-08-01 全量可运
             /**1-2下级分包承运订单运输完成**/
             logisticsOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
             logisticsOrderDao.updateById(logisticsOrder);
@@ -1272,8 +1272,12 @@ public class KwtWaybillOrderService {
         //车辆运单统计
         /**1-4Mongodb数据更新**/
         //车辆运单统计
-        waybillCount = waybillOrderDao.findWaybillOrderCount( new HashMap(){{put("lOrderId", logisticsOrder.getId());
-            put("unloadCountStatus", 1); put("upperlOrderId", logisticsOrder.getId()); }});
+        Map queryParams = new HashMap();
+        queryParams.put("lOrderId", logisticsOrder.getId());
+        queryParams.put("unloadCountStatus", 1);
+        queryParams.put("upperlOrderId", logisticsOrder.getId());
+        waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
+
         //2承运订单
         SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
         lOrder.setLoadTime(waybillCount.getLoadTime());
@@ -1290,12 +1294,13 @@ public class KwtWaybillOrderService {
         //获取所有上级物流订单ID(当前物流订单ID除外)
         String pids = logisticsOrder.getPids();
         if (StringUtils.isNotBlank(pids)) {
-            List<Long> idArray = (List)Arrays.asList(pids);
-            for (Long id : idArray) {
+            String [] idArray = pids.split(Global.COMMA);
+            for (String id : idArray) {
+                Long pid = Long.parseLong(id);
                 //当前物流订单ID除外
-                if (id != lOrderId) {
+                if (!pid.equals(lOrderId)) {
                     /**校验当前承运订单是否运输完成**/
-                    checkLogisticsByStatusV1(id);
+                    checkLogisticsByStatusV1(pid);
                 }
             }
         }
@@ -1308,7 +1313,7 @@ public class KwtWaybillOrderService {
      * @date 2023/7/26
      **/
     public HttpResult editTicket(WaybillOrderTicketDto params) {
-        /**校验**/
+        /**1校验**/
         KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
         if (waybillOrder == null) {
             return HttpResult.error("车辆运单信息不存在!");
@@ -1318,17 +1323,35 @@ public class KwtWaybillOrderService {
             return HttpResult.error("车辆运单榜单信息不存在!");
         }
 
-        /**更新车辆运单信息**/
+        /**2更新车辆运单信息**/
         waybillOrder.setLoadAmount(params.getType() == 1 ? params.getAmount() : waybillOrder.getLoadAmount());
         waybillOrder.setUnloadAmount(params.getType() == 2 ? params.getAmount() : waybillOrder.getUnloadAmount());
         waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
         waybillOrderDao.updateById(waybillOrder);
 
-        /**更新榜单信息**/
+        /**3更新榜单信息**/
         BeanUtils.copyProperties(params, ticket);
         waybillOrderTicketDao.updateById(ticket);
 
-        /**更新承运订单装卸货量**/
+        /**4更新承运订单信息**/
+        Map queryParams = new HashMap();
+        queryParams.put("lOrderId", waybillOrder.getLOrderId());
+        queryParams.put("loadCountStatus", params.getType() == 1 ? 1 : null);
+        queryParams.put("unloadCountStatus", params.getType() == 2 ? 1 : null);
+        WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
+
+        //更新卸货量/卸货时间/亏吨/亏吨扣款
+        KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
+        logisticsOrder.setLoadAmount(waybillCount.getLoadAmount());
+        logisticsOrder.setLoadTime(waybillCount.getLoadTime());
+        logisticsOrder.setUnloadAmount(waybillCount.getUnloadAmount());
+        logisticsOrder.setUnloadTime(waybillCount.getUnloadTime());
+        logisticsOrder.setDeficitAmount(waybillCount.getDeficitAmount());
+        BigDecimal deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
+                logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
+        logisticsOrder.setDeficitPrice(deficitPrice);
+        logisticsOrderDao.updateById(logisticsOrder);
+
         //有更新装卸货量才会更新物流订单量
         if (waybillOrder.getLoadAmount().compareTo(params.getAmount()) != 0
                 || waybillOrder.getUnloadAmount().compareTo(params.getAmount()) != 0) {
@@ -1336,6 +1359,28 @@ public class KwtWaybillOrderService {
             checkLogisticsByStatusV1(waybillOrder.getLOrderId());
         }
 
+
+        /**5Mongodb数据更新**/
+        //1车辆运单
+        SckwWaybillOrder wOrder = new SckwWaybillOrder();
+        wOrder.set_id(waybillOrder.getId());
+        wOrder.setLoadAmount(waybillOrder.getLoadAmount());
+        wOrder.setLoadTime(params.getType() == 1 ? params.getTime() : null);
+        wOrder.setUnloadUrls(params.getType() == 1 ? params.getUrls() : null);
+        wOrder.setUnloadAmount(waybillOrder.getUnloadAmount());
+        wOrder.setUnloadTime(params.getType() == 2 ? params.getTime() : null);
+        wOrder.setLoadUrls(params.getType() == 2 ? params.getUrls() : null);
+        wOrder.setDeficitAmount(waybillOrder.getDeficitAmount());
+        editSckwWaybillOrder(wOrder, waybillOrder, 2);
+
+        //2承运订单
+        SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
+        lOrder.setUnloadTime(logisticsOrder.getUnloadTime());
+        lOrder.setUnloadAmount(logisticsOrder.getUnloadAmount());
+        lOrder.setDeficitAmount(logisticsOrder.getDeficitAmount());
+        lOrder.setDeficitPrice(logisticsOrder.getDeficitPrice());
+        editSckwLogisticsOrder(lOrder, logisticsOrder);
+
         return HttpResult.ok("修改单证成功!");
     }
 

+ 3 - 3
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -161,13 +161,13 @@
             and lo.id = #{lOrderId, jdbcType=BIGINT}
         </if>
         <if test="passStatus != null and passStatus != ''">
-            wo.status = 8
+            and wo.status = 8
         </if>
         <if test="loadCountStatus != null and loadCountStatus != ''">
-            wo.status in (5, 6, 7, 8, 12)
+            and wo.status in (5, 6, 7, 8, 12)
         </if>
         <if test="unloadCountStatus != null and unloadCountStatus != ''">
-            wo.status in (7, 8, 12)
+            and wo.status in (7, 8, 12)
         </if>
         <if test="upperlOrderId != null and upperlOrderId != ''">
             and FIND_IN_SET(#{upperlOrderId, jdbcType=BIGINT}, pids)

+ 2 - 2
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderTicketMapper.xml

@@ -31,10 +31,10 @@
         from kwt_waybill_order_ticket
         where del_flag = 0
         <if test="wOrderId != null and wOrderId != ''">
-            and w_order_id != #{wOrderId, jdbcType=BIGINT}
+            and w_order_id = #{wOrderId, jdbcType=BIGINT}
         </if>
         <if test="type != null and type != ''">
-            and type != #{type, jdbcType=INTEGER}
+            and type = #{type, jdbcType=INTEGER}
         </if>
     </select>
 </mapper>