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

销售订单-采购订单逻辑修改
采购订单-撤销托运接口根据原型修改
采购订单-销售订单-车辆信息返回参数调整

lengfaqiang преди 2 години
родител
ревизия
0fce648520

+ 23 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/vo/BaseList.java

@@ -0,0 +1,23 @@
+package com.sckw.core.model.vo;
+
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+/**
+ * @author lfdc
+ * @description
+ * @date 2023-08-15 19:08:14
+ */
+@Data
+public class BaseList {
+    /**
+     * 数据id 逗号隔开
+     */
+    @NotBlank(message = "数据id不能为空")
+    private String ids;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 14 - 9
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java

@@ -2,7 +2,9 @@ package com.sckw.transport.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.vo.BaseList;
 import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.ExcelUtil;
@@ -96,16 +98,17 @@ public class LogisticsConsignmentController {
     /**
      * 采购订单-托运订单列表-撤销托运
      *
-     * @param ids 物流运单id
+     * @param baseList 物流运单ids
      * @return
      */
     @Validated
     @RequestMapping(value = "/purchaseCancelConsign", method = RequestMethod.POST)
     @GlobalTransactional(name = "default_tx_group")
-    public HttpResult purchaseCancelConsign(@RequestParam("ids") @NotBlank(message = "单据不能为空") List<String> ids) {
-        log.info("采购订单-托运订单列表-撤销托运:{}", JSONObject.toJSONString(ids));
+    public HttpResult purchaseCancelConsign(@Valid @RequestBody BaseList baseList) {
+        log.info("采购订单-托运订单列表-撤销托运:{}", JSONObject.toJSONString(baseList));
         try {
-            return logisticsConsignmentService.cancelConsign(ids, "1");
+            List<String> stringList = StringUtils.splitStrToList(baseList.getIds(), String.class);
+            return logisticsConsignmentService.cancelConsign(stringList, baseList.getRemark(), "1");
         } catch (Exception e) {
             log.error("采购订单-托运订单列表-撤销托运 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
@@ -114,6 +117,7 @@ public class LogisticsConsignmentController {
 
     /**
      * 购订单-车辆信息-销售订单ids
+     *
      * @param orderQuery
      * @return
      */
@@ -190,7 +194,7 @@ public class LogisticsConsignmentController {
      * @return
      */
     @RequestMapping(value = "/sellLogisticsOrder", method = RequestMethod.POST)
-    public HttpResult sellLogisticsOrder(@Valid @RequestBody OrderQuery query ) {
+    public HttpResult sellLogisticsOrder(@Valid @RequestBody OrderQuery query) {
         log.info("销售订单-托运订单列表 传递参数信息:{}", JSONObject.toJSONString(query));
         try {
             return logisticsConsignmentService.logisticsOrder(query.getIds(), query.getPage(), query.getPageSize(), "2");
@@ -241,12 +245,13 @@ public class LogisticsConsignmentController {
      * @param ids 物流订单id
      * @return
      */
-    @RequestMapping(value = "/sellCancelConsign", method = RequestMethod.GET)
+    @RequestMapping(value = "/sellCancelConsign", method = RequestMethod.POST)
     @GlobalTransactional(name = "default_tx_group")
-    public HttpResult sellCancelConsign(@RequestParam("ids") @NotBlank(message = "单据id不能为空") List<String> ids) {
-        log.info("销售订单-托运订单列表-撤销托运:{}", JSONObject.toJSONString(ids));
+    public HttpResult sellCancelConsign(@Valid @RequestBody BaseList baseList) {
+        log.info("销售订单-托运订单列表-撤销托运:{}", JSONObject.toJSONString(baseList));
         try {
-            return logisticsConsignmentService.cancelConsign(ids, "2");
+            List<String> stringList = StringUtils.splitStrToList(baseList.getIds(), String.class);
+            return logisticsConsignmentService.cancelConsign(stringList, baseList.getRemark(), "2");
         } catch (Exception e) {
             log.error("销售订单-车辆列表 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());

+ 3 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/CancelOrderDTO.java

@@ -12,9 +12,9 @@ import lombok.Data;
 
 @Data
 public class CancelOrderDTO {
-    @JsonProperty("orderNo")
-    @NotNull(message = "单据编号不能为空")
-    private String orderNo;
+//    @JsonProperty("orderNo")
+//    @NotNull(message = "单据编号不能为空")
+//    private String orderNo;
 
     @JsonProperty("id")
     @NotNull(message = "数据id不能为空")

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

@@ -1,5 +1,6 @@
 package com.sckw.transport.model.dto;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -15,19 +16,23 @@ public class LogisticsOrderDTO {
     /**
      * 物流订单id
      */
+    @JsonProperty("lOrderId")
     private String lOrderId;
     /**
      * 物流订单no
      */
+    @JsonProperty("lOrderNo")
     private String lOrderNo;
 
     /**
      * 贸易订单id
      */
+    @JsonProperty("tOrderId")
     private String tOrderId;
     /**
      * 贸易订单no
      */
+    @JsonProperty("tOrderNo")
     private String tOrderNo;
     /**
      * 单据状态

+ 9 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OrderCarDTO.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.model.dto;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
 /**
@@ -13,31 +14,38 @@ public class OrderCarDTO {
     /**
      * 物流订单id
      */
+    @JsonProperty("lOrderId")
     private String lOrderId;
     /**
      * 物流订单no
      */
+    @JsonProperty("lOrderNo")
     private String lOrderNo;
 
     /**
      * 贸易订单id
      */
+    @JsonProperty("tOrderId")
     private String tOrderId;
     /**
      * 贸易订单no
      */
+    @JsonProperty("tOrderNo")
     private String tOrderNo;
     /**
      * 车辆运单编号
      */
+    @JsonProperty("wOrderNo")
     private String wOrderNo;
     /**
      * 车辆运单id
      */
+    @JsonProperty("wOrderId")
     private String wOrderId;
     /**
      * 司机id
      */
+    @JsonProperty("driverId")
     private String driverId;
 
     /**
@@ -53,6 +61,7 @@ public class OrderCarDTO {
     /**
      * 车牌号
      */
+    @JsonProperty("truckNo")
     private String truckNo;
 
     /**

+ 6 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/UpdateDriverCarDTO.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.model.dto;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Pattern;
 import lombok.Data;
@@ -15,11 +16,13 @@ public class UpdateDriverCarDTO {
      * 运单id
      */
     @NotNull(message = "运单id不能为空!")
+    @JsonProperty("wOrderId")
     private String wOrderId;
     /**
      * 运单号
      */
     @NotNull(message = "运单号不能为空!")
+    @JsonProperty("wOrderNo")
     private String wOrderNo;
     /**
      * 运单状态
@@ -30,11 +33,13 @@ public class UpdateDriverCarDTO {
      * 车辆id
      */
     @NotNull(message = "车辆id不能为空!")
+    @JsonProperty("truckId")
     private String truckId;
     /**
      * 车牌号
      */
     @NotNull(message = "车牌号不能为空!")
+    @JsonProperty("truckNo")
     private String truckNo;
     /**
      * 车辆类型
@@ -50,6 +55,7 @@ public class UpdateDriverCarDTO {
      * 司机id
      */
     @NotNull(message = "司机id不能为空!")
+    @JsonProperty("driverId")
     private String driverId;
 
     /**

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -529,7 +529,7 @@ public class ConsignOrderService {
         statusList.add(CarWaybillEnum.APPROVAL_PASS.getCode());
         List<OrderCarDTO> list = kwtWaybillOrderMapper.selectWaybillOrderCarListGroupByTruckNo(stringList, statusList, orderDto.getPage() - 1, orderDto.getPageSize());
         if (CollectionUtils.isNotEmpty(list)) {
-            List<String> stringLists = list.stream().map(OrderCarDTO::getTruckNo).collect(Collectors.toList());
+            List<String> stringLists = list.stream().map(OrderCarDTO::getTruckNo).distinct().collect(Collectors.toList());
             Map<String, RTruckVo> truck = remoteFleetService.findTruck(stringLists);
             for (OrderCarDTO dto : list) {
                 dto.setLoadAmount(truck.get(dto.getTruckNo()) == null ?

+ 96 - 24
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -606,13 +606,15 @@ public class LogisticsConsignmentService {
         for (String id : stringList) {
             OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(id));
             /**
-             * 1销售展示是供应配送  0采购展示是采购自提
-             * 根据提货方式(1供应配送/0采购自提)
+             * 0销售展示是供应配送  1采购展示是采购自提
+             * 根据提货方式(0供应配送/1采购自提)
              * 决定托运数据是否展示
              *
              */
+            /**销售订单-供应配送的才能看*/
+            /**采购订单-采方自提的才能看*/
             boolean flag = false;
-            if (String.valueOf(NumberConstant.ONE).equals(orderDetailRes.getPickupType())) {
+            if (String.valueOf(NumberConstant.ZERO).equals(orderDetailRes.getPickupType())) {
                 flag = true;
             }
             List<LogisticsOrderDTO> list = new ArrayList<>();
@@ -620,9 +622,9 @@ public class LogisticsConsignmentService {
                 /**数据展示*/
                 list = kwtLogisticsOrderMapper.selectOrderListNotPage(id, type);
                 if (CollectionUtils.isNotEmpty(list)) {
-                    for (LogisticsOrderDTO logisticsOrderDTO : list) {
-                        logisticsOrderDTO.setStatus(LogisticsOrderEnum.getDestination(logisticsOrderDTO.getStatus()));
-                    }
+//                    for (LogisticsOrderDTO logisticsOrderDTO : list) {
+//                        logisticsOrderDTO.setStatus(LogisticsOrderEnum.getDestination(logisticsOrderDTO.getStatus()));
+//                    }
                     returnList.addAll(list);
                 }
             }
@@ -698,13 +700,15 @@ public class LogisticsConsignmentService {
         for (String id : stringList) {
             OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(id));
             /**
-             * 1销售展示是供应配送  0采购展示是采购自提
-             * 根据提货方式(1供应配送/0采购自提)
+             * 0销售展示是供应配送  1采购展示是采购自提
+             * 根据提货方式(0供应配送/1采购自提)
              * 决定托运数据是否展示
              *
              */
+            /**销售订单-供应配送的才能看*/
+            /**采购订单-采方自提的才能看*/
             boolean flag = false;
-            if (String.valueOf(NumberConstant.ZERO).equals(orderDetailRes.getPickupType())) {
+            if (String.valueOf(NumberConstant.ONE).equals(orderDetailRes.getPickupType())) {
                 flag = true;
             }
             List<LogisticsOrderDTO> list = new ArrayList<>();
@@ -712,9 +716,9 @@ public class LogisticsConsignmentService {
                 /**数据展示*/
                 list = kwtLogisticsOrderMapper.selectOrderListNotPage(id, type);
                 if (CollectionUtils.isNotEmpty(list)) {
-                    for (LogisticsOrderDTO logisticsOrderDTO : list) {
-                        logisticsOrderDTO.setStatus(LogisticsOrderEnum.getDestination(logisticsOrderDTO.getStatus()));
-                    }
+//                    for (LogisticsOrderDTO logisticsOrderDTO : list) {
+//                        logisticsOrderDTO.setStatus(LogisticsOrderEnum.getDestination(logisticsOrderDTO.getStatus()));
+//                    }
                     returnList.addAll(list);
                 }
             }
@@ -773,7 +777,7 @@ public class LogisticsConsignmentService {
         stringList = stringList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
         for (String id : stringList) {
             List<OrderCarDTO> list = waybillOrderMapper.selectWaybillOrderCarListNotPage(id);
-            List<String> collect = list.stream().map(OrderCarDTO::getTruckNo).collect(Collectors.toList());
+            List<String> collect = list.stream().map(OrderCarDTO::getTruckNo).distinct().collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(collect)) {
                 Map<String, RTruckVo> truck = remoteFleetService.findTruck(collect);
                 for (OrderCarDTO orderCarDTO : list) {
@@ -879,22 +883,24 @@ public class LogisticsConsignmentService {
     /**
      * 采购订单/销售订单-托运订单列表-撤销托运
      *
-     * @param ids  物流订单id
-     * @param type 单据操作类型
+     * @param ids    物流订单id
+     * @param remark 备注
+     * @param type   单据操作类型
      * @return
      */
-    public HttpResult cancelConsign(List<String> ids, String type) {
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResult cancelConsign(List<String> ids, String remark, String type) {
         if (CollectionUtils.isEmpty(ids) || ids.size() < NumberConstant.ONE) {
-            throw new RuntimeException("单据id不能为空");
+            throw new BusinessException("单据id不能为空");
         }
         List<JSONObject> list = new ArrayList<>();
         //1采购 2销售
         if (String.valueOf(NumberConstant.ONE).equals(type)) {
-            cancelConsignByOrder(ids, list);
+            cancelConsignByOrder(ids, remark, list);
         } else if (String.valueOf(NumberConstant.TWO).equals(type)) {
-            cancelConsignBySellOrder(ids, list);
+            cancelConsignBySellOrder(ids, remark, list);
         } else {
-            throw new RuntimeException("类型错误!");
+            throw new BusinessException("类型错误!");
         }
         return HttpResult.ok(list);
     }
@@ -904,7 +910,7 @@ public class LogisticsConsignmentService {
      *
      * @param ids
      */
-    private void cancelConsignBySellOrder(List<String> ids, List<JSONObject> list) {
+    private void cancelConsignBySellOrder(List<String> ids, String remark, List<JSONObject> list) {
         ids.forEach(s -> {
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("id", s);
@@ -931,9 +937,42 @@ public class LogisticsConsignmentService {
                     kwtLogisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
                     kwtLogisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
                             .eq(KwtLogisticsOrder::getId, kwtLogisticsOrder.getId())
-                            .set(KwtLogisticsOrder::getDelFlag, NumberConstant.ONE)
+                            .set(KwtLogisticsOrder::getStatus, LogisticsOrderEnum.CANCEL_ORDER.getCode())
                             .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
                             .set(KwtLogisticsOrder::getUpdateTime, new Date()));
+                    KwtLogisticsOrderTrack orderTrack = kwtLogisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
+                            .eq(KwtLogisticsOrderTrack::getLOrderId, s));
+                    if (orderTrack == null) {
+                        KwtLogisticsOrderTrack track = new KwtLogisticsOrderTrack();
+                        track.setId(new IdWorker(NumberConstant.ONE).nextId());
+                        track.setLOrderId(Long.valueOf(s));
+                        track.setRemark(remark);
+                        track.setStatus(LogisticsOrderEnum.CANCEL_ORDER.getCode());
+                        track.setCreateBy(LoginUserHolder.getUserId());
+                        track.setCreateTime(new Date());
+                        track.setUpdateBy(LoginUserHolder.getUserId());
+                        track.setUpdateTime(new Date());
+                    } else {
+                        orderTrack.setRemark(remark);
+                        orderTrack.setStatus(LogisticsOrderEnum.CANCEL_ORDER.getCode());
+                        orderTrack.setUpdateBy(LoginUserHolder.getUserId());
+                        orderTrack.setUpdateTime(new Date());
+                        kwtLogisticsOrderTrackMapper.updateById(orderTrack);
+                    }
+                    //mongoDb数据
+                    SckwLogisticsOrder logisticsOrder = new SckwLogisticsOrder();
+                    logisticsOrder.set_id(Long.valueOf(s));
+                    logisticsOrder.setLOrderId(Long.valueOf(s));
+                    logisticsOrder.setStatus(LogisticsOrderEnum.CANCEL_ORDER.getStatus());
+                    logisticsOrder.setUpdateByName(LoginUserHolder.getUserName());
+                    logisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
+                    logisticsOrder.setUpdateTime(new Date());
+                    SckwBusSum sckwBusSum = new SckwBusSum();
+                    sckwBusSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+                    sckwBusSum.setMethod(NumberConstant.TWO);
+                    sckwBusSum.setObject(logisticsOrder);
+                    streamBridge.send("sckw-busSum", JSON.toJSONString(sckwBusSum));
+
                     jsonObject.put("status", HttpStatus.SUCCESS_CODE);
                     jsonObject.put("message", "操作成功");
                 } else {
@@ -951,7 +990,7 @@ public class LogisticsConsignmentService {
      *
      * @param ids
      */
-    private void cancelConsignByOrder(List<String> ids, List<JSONObject> list) {
+    private void cancelConsignByOrder(List<String> ids, String remark, List<JSONObject> list) {
         ids.forEach(s -> {
             /**当前单据作废
              * 托运数量回归溯源
@@ -981,9 +1020,42 @@ public class LogisticsConsignmentService {
                     kwtLogisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
                     kwtLogisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
                             .eq(KwtLogisticsOrder::getId, kwtLogisticsOrder.getId())
-                            .set(KwtLogisticsOrder::getDelFlag, NumberConstant.ONE)
+                            .set(KwtLogisticsOrder::getStatus, LogisticsOrderEnum.CANCEL_ORDER.getCode())
                             .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
                             .set(KwtLogisticsOrder::getUpdateTime, new Date()));
+                    KwtLogisticsOrderTrack orderTrack = kwtLogisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
+                            .eq(KwtLogisticsOrderTrack::getLOrderId, s));
+                    if (orderTrack == null) {
+                        KwtLogisticsOrderTrack track = new KwtLogisticsOrderTrack();
+                        track.setId(new IdWorker(NumberConstant.ONE).nextId());
+                        track.setLOrderId(Long.valueOf(s));
+                        track.setRemark(remark);
+                        track.setStatus(LogisticsOrderEnum.CANCEL_ORDER.getCode());
+                        track.setCreateBy(LoginUserHolder.getUserId());
+                        track.setCreateTime(new Date());
+                        track.setUpdateBy(LoginUserHolder.getUserId());
+                        track.setUpdateTime(new Date());
+                    } else {
+                        orderTrack.setRemark(remark);
+                        orderTrack.setStatus(LogisticsOrderEnum.CANCEL_ORDER.getCode());
+                        orderTrack.setUpdateBy(LoginUserHolder.getUserId());
+                        orderTrack.setUpdateTime(new Date());
+                        kwtLogisticsOrderTrackMapper.updateById(orderTrack);
+                    }
+                    //mongoDb数据
+                    SckwLogisticsOrder logisticsOrder = new SckwLogisticsOrder();
+                    logisticsOrder.set_id(Long.valueOf(s));
+                    logisticsOrder.setLOrderId(Long.valueOf(s));
+                    logisticsOrder.setStatus(LogisticsOrderEnum.CANCEL_ORDER.getStatus());
+                    logisticsOrder.setUpdateByName(LoginUserHolder.getUserName());
+                    logisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
+                    logisticsOrder.setUpdateTime(new Date());
+                    SckwBusSum sckwBusSum = new SckwBusSum();
+                    sckwBusSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+                    sckwBusSum.setMethod(NumberConstant.TWO);
+                    sckwBusSum.setObject(logisticsOrder);
+                    streamBridge.send("sckw-busSum", JSON.toJSONString(sckwBusSum));
+
                     jsonObject.put("status", HttpStatus.SUCCESS_CODE);
                     jsonObject.put("message", "操作失败:" + httpResult.getMsg());
                 } else {

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -210,7 +210,7 @@ public class TransportCommonService {
         HttpResult result = new HttpResult();
         KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
                         .eq(KwtLogisticsOrder::getId, orderDto.getId())
-                        .eq(KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())
+                       /* .eq(KwtLogisticsOrder::getLOrderNo, orderDto.getOrderNo())*/
                 /**.eq(KwtLogisticsOrder::getEntId, LoginUserHolder.getEntId())*/);
         if (logisticsOrder == null) {
             result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);

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

@@ -87,7 +87,7 @@
                a.price,
                a.loss,
                a.goods_price as goodsPrice,
-               c.firm_name   as comanyName,
+               c.firm_name   as companyName,
                c.contacts,
                c.phone,
                a.create_by   as createBy,