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

取消派车-增加mongo数据修改

lengfaqiang преди 2 години
родител
ревизия
95af150fa7

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -222,8 +222,9 @@ public class AcceptCarriageOrderController {
      * @param ids 车辆运单id
      * @return
      */
-    @RequestMapping(value = "/cancelDelivery", method = RequestMethod.POST)
+    @RequestMapping(value = "/cancelDelivery", method = RequestMethod.GET)
     public HttpResult cancelDelivery(@NotBlank(message = "车辆运单id不能为空") @RequestParam("ids") String ids) {
+        log.info("承运订单-取消派车(撤回派车)/单趟撤回请求参数:{}",ids);
         List<String> lists = StringUtils.splitStrToList(ids, ",", String.class);
         try {
             return acceptCarriageOrderService.cancelDelivery(lists);

+ 2 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/AddOrderDTO.java

@@ -126,7 +126,7 @@ public class AddOrderDTO {
     /**
      * 合理损耗
      */
-    @Digits(integer = 10, fraction = 2, message = "合理损耗格式错误")
+    @Digits(integer = 7, fraction = 2, message = "合理损耗格式错误")
     @DecimalMin(value = "0.00", message = "合理损耗最小值为{value}")
     private BigDecimal loss;
 
@@ -139,7 +139,7 @@ public class AddOrderDTO {
     /**
      * 商品价值(扣亏货值)
      */
-    @Digits(integer = 10, fraction = 2, message = "扣亏货值格式错误")
+    @Digits(integer = 5, fraction = 2, message = "扣亏货值格式错误")
     @DecimalMin(value = "0.00", message = "扣亏货值最小值为{value}")
     private BigDecimal goodsPrice;
     /**

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

@@ -11,7 +11,7 @@ import java.util.Date;
 
 /**
  * @author zk
- * @desc 确认/绝接单
+ * @desc 确认/绝接单
  * @date 2023/7/25 0025
  */
 @Data

+ 7 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java

@@ -2,12 +2,14 @@ package com.sckw.transport.model.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.validation.constraints.Digits;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 
@@ -58,7 +60,8 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
      * 合理损耗
      */
 //    @NotNull(message = "合理损耗不能为空")
-    private Long loss;
+    @Digits(integer = 5, fraction = 2,message = "合理损耗格式填写错误")
+    private BigDecimal loss;
     /**
      * 合理损耗单位
      */
@@ -175,7 +178,7 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
      * 计划卸货时间
      */
     @NotNull(message = "计划卸货时间不能为空")
-    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date receiveGoodsDateTime;
 
@@ -183,7 +186,7 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
      * 计划发货时间
      */
     @NotNull(message = "计划发货时间不能为空")
-    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date shipmentsDateTime;
 
@@ -195,7 +198,7 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
     /**
      * 备注
      */
-    @Length(max = 200,message = "单据编号长度错误最大长度:{max}")
+    @Length(max = 200, message = "单据编号长度错误最大长度:{max}")
     private String remark;
     /**
      * 计费方式

+ 43 - 14
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -124,11 +124,17 @@ public class AcceptCarriageOrderService {
      */
     @Transactional(rollbackFor = Exception.class)
     public HttpResult subcontractConsignment(SubcontractConsignmentDTO bo) {
+        HttpResult httpResult = ValidUtil.serviceValid(bo);
+        if (!String.valueOf(HttpStatus.SUCCESS_CODE).equals(String.valueOf(httpResult.getCode()))) {
+            httpResult.setMsg(httpResult.getMsg());
+            httpResult.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
+            return httpResult;
+        }
         KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
                 .eq(KwtLogisticsOrder::getId, bo.getLOrderId()));
         if (logisticsOrder == null) {
             log.error("订单id查找失败:{},订单编号:{}", bo.getLOrderId(), bo.getLOrderNo());
-            throw new RuntimeException("单据错误,数据不存在");
+            throw new BusinessException("单据错误,数据不存在");
         }
         //todo  校验当前登录角色是否具有4P物流角色
         EntCacheResDto entCacheResDto = remoteSystemService.queryEntCacheById(LoginUserHolder.getEntId());
@@ -268,7 +274,7 @@ public class AcceptCarriageOrderService {
             logisticsOrder.setSubcontractAmount(new BigDecimal(NumberConstant.ZERO));
             logisticsOrder.setCarryingCapacity(0L);
         }
-        logisticsOrder.setLoss(bo.getLoss() == null ? null : new BigDecimal(bo.getLoss()));
+        logisticsOrder.setLoss(bo.getLoss() == null ? null : bo.getLoss());
         logisticsOrder.setLossUnit(bo.getLossUnit());
         logisticsOrder.setGoodsPrice(bo.getGoodsPrice() == null ? null : new BigDecimal(bo.getGoodsPrice()));
         BigDecimal decimal = new BigDecimal(NumberConstant.ZERO);
@@ -518,7 +524,7 @@ public class AcceptCarriageOrderService {
                 null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()).getValue()));
         order.setAmount(new BigDecimal(bo.getCarryingCapacity()));
         order.setBillingMode(bo.getBillingMode());
-        order.setLoss(new BigDecimal(bo.getLoss()));
+        order.setLoss(bo.getLoss());
 //        order.setLossUnit(bo.getLossUnit());
         order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()) == null ?
                 null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()).getValue());
@@ -955,16 +961,27 @@ public class AcceptCarriageOrderService {
                     .set(KwtWaybillOrder::getUpdateBy, LoginUserHolder.getUserId())
                     .set(KwtWaybillOrder::getUpdateTime, new Date()));
             /**变更单据状态*/
-            KwtWaybillOrderTrack orderTrack = new KwtWaybillOrderTrack();
-            orderTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
-            orderTrack.setWOrderId(Long.parseLong(id));
-            orderTrack.setStatus(CarWaybillEnum.REVOKED.getCode());
-            orderTrack.setDelFlag(NumberConstant.ZERO);
-            orderTrack.setCreateBy(LoginUserHolder.getUserId());
-            orderTrack.setCreateTime(new Date());
-            orderTrack.setUpdateBy(LoginUserHolder.getUserId());
-            orderTrack.setUpdateTime(new Date());
-            waybillOrderTrackMapper.insert(orderTrack);
+            KwtWaybillOrderTrack waybillOrderTrack = waybillOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
+                    .eq(KwtWaybillOrderTrack::getWOrderId, id)
+                    .eq(KwtWaybillOrderTrack::getStatus, CarWaybillEnum.REVOKED.getCode())
+            );
+            if (waybillOrderTrack == null) {
+                KwtWaybillOrderTrack orderTrack = new KwtWaybillOrderTrack();
+                orderTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
+                orderTrack.setWOrderId(Long.parseLong(id));
+                orderTrack.setStatus(CarWaybillEnum.REVOKED.getCode());
+                orderTrack.setDelFlag(NumberConstant.ZERO);
+                orderTrack.setCreateBy(LoginUserHolder.getUserId());
+                orderTrack.setCreateTime(new Date());
+                orderTrack.setUpdateBy(LoginUserHolder.getUserId());
+                orderTrack.setUpdateTime(new Date());
+                waybillOrderTrackMapper.insert(orderTrack);
+            }else {
+                waybillOrderTrack.setUpdateTime(new Date());
+                waybillOrderTrack.setUpdateBy(LoginUserHolder.getUserId());
+                waybillOrderTrackMapper.updateById(waybillOrderTrack);
+            }
+
             /**修改mongodb*/
             //mongodb更新订单状态
             SckwWaybillOrder updateParam = new SckwWaybillOrder();
@@ -972,9 +989,21 @@ public class AcceptCarriageOrderService {
                     .setUpdateBy(LoginUserHolder.getUserId()).setUpdateByName(LoginUserHolder.getUserName()).setUpdateTime(new Date());
             SckwBusSum busSum = new SckwBusSum();
             busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
-            busSum.setMethod(2);
+            busSum.setMethod(NumberConstant.TWO);
             busSum.setObject(updateParam);
             streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
+            SckwLogisticsOrder order = new SckwLogisticsOrder();
+            order.set_id(logisticsOrder.getId());
+            order.setLOrderId(logisticsOrder.getId());
+            order.setEntrustAmount(entrustAmount);
+            order.setSubcontractAmount(subcontractAmount);
+            order.setUpdateByName(LoginUserHolder.getUserName());
+            order.setUpdateTime(new Date());
+            SckwBusSum orderBusSum = new SckwBusSum();
+            orderBusSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+            orderBusSum.setMethod(NumberConstant.TWO);
+            orderBusSum.setObject(order);
+            streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
             result.put("status", HttpStatus.SUCCESS_CODE);
             result.put("message", "取消成功");
             list.add(result);

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

@@ -133,14 +133,15 @@
         FROM
         kwt_logistics_order a
         LEFT JOIN kwt_logistics_order_goods b ON a.id = b.l_order_id
+        LEFT JOIN kwt_logistics_order_unit d ON a.id = d.l_order_id
         LEFT JOIN kwt_logistics_order_contract c ON a.id=c.l_order_id
         <where>
-            a.del_flag = 0
+            a.del_flag = 0 and d.unit_type = 1
             <if test="dictId != null and dictId != ''">
                 AND a.payment = #{dictId}
             </if>
             <if test="logisticsOrderParam.companyId !=null and logisticsOrderParam.companyId != ''">
-                AND a.ent_id = #{logisticsOrderParam.companyId}
+                AND d.ent_id = #{logisticsOrderParam.companyId}
             </if>
             <if test="logisticsOrderParam.taxRate != null and logisticsOrderParam.taxRate != ''">
                 AND a.tax_rate = #{logisticsOrderParam.taxRate}
@@ -166,9 +167,10 @@
         FROM
         kwt_logistics_order a
         LEFT JOIN kwt_logistics_order_goods b ON a.id = b.l_order_id
+        LEFT JOIN kwt_logistics_order_unit d ON a.id = d.l_order_id
         LEFT JOIN kwt_logistics_order_contract c ON a.id=c.l_order_id
         <where>
-            a.del_flag = 0
+            a.del_flag = 0 and d.unit_type = 1
             <if test="dictId != null and dictId != ''">
                 AND a.payment = #{dictId}
             </if>