Răsfoiți Sursa

订单服务提供详情、更新订单状态、更新订单履约量dubbo接口

yzc 2 ani în urmă
părinte
comite
4791a3ef3c

+ 40 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/dubbo/TradeOrderInfoService.java

@@ -0,0 +1,40 @@
+package com.sckw.order.api.dubbo;
+
+import com.sckw.order.api.model.OrderDetailRes;
+import com.sckw.order.api.model.UpdateOrderAmountParam;
+
+/**
+ * @desc: 贸易订单信息相关dubbo
+ * @author: yzc
+ * @date: 2023-07-18 18:18
+ */
+public interface TradeOrderInfoService {
+
+    /**
+     * @desc: 获取订单详情
+     * @author: yzc
+     * @date: 2023-07-18 18:25
+     * @Param tOrderId:
+     * @return: com.sckw.order.api.model.OrderDetailRes
+     */
+    OrderDetailRes getOrderDetailById(Long tOrderId);
+
+    /**
+     * @desc: 更新订单状态
+     * @author: yzc
+     * @date: 2023-07-18 18:31
+     * @Param tOrderId:
+     * @Param status:
+     * @return: void
+     */
+    void updateOrderStatus(Long tOrderId, Integer status);
+
+    /**
+     * @desc: 更新订单委托量、已履约量
+     * @author: yzc
+     * @date: 2023-07-18 18:34
+     * @Param param:
+     * @return: void
+     */
+    void updateOrderAmount(UpdateOrderAmountParam param);
+}

+ 82 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/AddressInfoDetail.java

@@ -0,0 +1,82 @@
+package com.sckw.order.api.model;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * @desc: 地址信息详情
+ * @author: yzc
+ * @date: 2023-07-18 11:10
+ */
+@Getter
+@Setter
+@ToString
+public class AddressInfoDetail {
+
+    /**
+     * 地址类型label
+     */
+    private String addressTypeLabel;
+
+    /**
+     * 地址类型label
+     */
+    private String typeLabel;
+
+
+    /**
+     * 地址类型(1装货地址、2卸货地址)
+     */
+    private String addressType;
+
+    /**
+     * 地址名称
+     */
+    private String name;
+
+    /**
+     * 地址类型
+     */
+    private String type;
+
+    /**
+     * 联系人姓名
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 所在地区
+     */
+    private Integer cityCode;
+
+    /**
+     * 所属区域名称
+     */
+    private String cityName;
+
+    /**
+     * 详细地址
+     */
+    private String detailAddress;
+
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 电子围栏
+     */
+    private String fence;
+}

+ 41 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/ContractInfo.java

@@ -0,0 +1,41 @@
+package com.sckw.order.api.model;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * @desc: 合同信息
+ * @author: yzc
+ * @date: 2023-07-12 11:00
+ */
+@Getter
+@Setter
+@ToString
+public class ContractInfo {
+
+    /**
+     * 合同id
+     */
+    private Long contractId;
+
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 合同名称
+     */
+    private String contractName;
+
+    /**
+     * 合同签约方式
+     */
+    private String contractSigningWay;
+
+    /**
+     * 合同状态
+     */
+    private String contractStatus;
+}

+ 95 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/GoodsInfoDetailRes.java

@@ -0,0 +1,95 @@
+package com.sckw.order.api.model;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * @desc: 商品信息详情响应
+ * @author: yzc
+ * @date: 2023-07-18 11:09
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class GoodsInfoDetailRes {
+
+    /**
+     * 商品类型label
+     */
+    private String goodsTypeLabel;
+
+    /**
+     * 商品单位label
+     */
+    private String goodsUnitLabel;
+
+    /**
+     * 商品发票税率label
+     */
+    private String goodsTaxRateLabel;
+
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+
+    /**
+     * 商品编号
+     */
+    private String goodsCode;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品类型
+     */
+    private String goodsType;
+
+    /**
+     * 商品发票税率(%)
+     */
+    private BigDecimal goodsTaxRate;
+
+    /**
+     * 商品尺寸大小
+     */
+    private String goodsSpec;
+
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String unit;
+    /**
+     * 价格段id
+     */
+    private Long priceRangeId;
+
+    /**
+     * 订单成交单价
+     */
+    private BigDecimal unitPrice;
+
+    /**
+     * 商品skuId
+     */
+    private Long skuId;
+
+    /**
+     * 收款单位id
+     */
+    private Long collectionUnitId;
+
+    /**
+     * 收款单位名称
+     */
+    private String collectionUnit;
+
+}

+ 152 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/OrderDetailRes.java

@@ -0,0 +1,152 @@
+package com.sckw.order.api.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * @desc: 订单详情响应参数
+ * @author: yzc
+ * @date: 2023-07-07 15:35
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class OrderDetailRes {
+
+    /**
+     * 订单id
+     */
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 订单编号
+     */
+    private String tOrderNo;
+
+    /**
+     * 订单总量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 订单金额
+     */
+    private BigDecimal price;
+
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+
+    /**
+     * 交易方式label
+     */
+    private String tradingLabel;
+
+    /**
+     * 提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+
+    /**
+     * 提货方式label
+     */
+    private String pickupTypeLabel;
+
+    /**
+     * 交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+
+    /**
+     * 交付类型label
+     */
+    private String deliveryTypeLabel;
+
+    /**
+     * 开始日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate startTime;
+
+    /**
+     * 结束日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endTime;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 实际交付量
+     */
+    private BigDecimal actualAmount;
+
+    /**
+     * 订单创建来源类型(采购下单/销售代客下单)
+     */
+    private String source;
+
+    /**
+     * 订单创建来源label
+     */
+    private String sourceLabel;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 订单状态
+     */
+    private Integer status;
+
+    /**
+     * 订单状态label
+     */
+    private String statusLabel;
+
+    /**
+     * 商品信息
+     */
+    private GoodsInfoDetailRes goodsInfo;
+
+
+    /**
+     * 单位信息
+     */
+    private List<UnitInfoDetailRes> unitInfo;
+
+    /**
+     * 地址信息
+     */
+    private List<AddressInfoDetail> addressInfo;
+
+    /**
+     * 合同信息
+     */
+    private ContractInfo contractInfo;
+
+}

+ 47 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/UnitInfoDetailRes.java

@@ -0,0 +1,47 @@
+package com.sckw.order.api.model;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * @desc: 单位信息详情
+ * @author: yzc
+ * @date: 2023-07-18 11:10
+ */
+@Getter
+@Setter
+@ToString
+public class UnitInfoDetailRes {
+
+    /**
+     * 单位类型label
+     */
+    private String unitTypeLabel;
+
+    /**
+     * 单位类型(1销售单位、2采购单位)
+     */
+    private String unitType;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 联系人姓名
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+}

+ 33 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/UpdateOrderAmountParam.java

@@ -0,0 +1,33 @@
+package com.sckw.order.api.model;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.math.BigDecimal;
+
+/**
+ * @desc: 更新订单委托量、已履约量
+ * @author: yzc
+ * @date: 2023-07-18 18:33
+ */
+@Getter
+@Setter
+@ToString
+public class UpdateOrderAmountParam {
+
+    /**
+     * 订单id
+     */
+    private Long tOrderId;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 实际交付量
+     */
+    private BigDecimal actualAmount;
+}

+ 73 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/dubbo/TradeOrderInfoServiceImpl.java

@@ -0,0 +1,73 @@
+package com.sckw.order.dubbo;
+
+import com.alibaba.fastjson2.JSON;
+import com.sckw.core.exception.BusinessException;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.order.api.dubbo.TradeOrderInfoService;
+import com.sckw.order.api.model.OrderDetailRes;
+import com.sckw.order.api.model.UpdateOrderAmountParam;
+import com.sckw.order.model.KwoTradeOrder;
+import com.sckw.order.serivce.KwoTradeOrderService;
+import com.sckw.order.serivce.KwoTradeOrderTrackService;
+import com.sckw.stream.model.SckwBusSum;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.stream.function.StreamBridge;
+
+import java.util.Objects;
+
+/**
+ * @desc: 订单dubbo实现
+ * @author: yzc
+ * @date: 2023-07-18 18:26
+ */
+@DubboService(group = "design", version = "2.0.0")
+@Slf4j
+public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
+
+    @Autowired
+    private KwoTradeOrderService kwoTradeOrderService;
+    @Autowired
+    private StreamBridge streamBridge;
+    @Autowired
+    private KwoTradeOrderTrackService kwoTradeOrderTrackService;
+
+
+    @Override
+    public OrderDetailRes getOrderDetailById(Long tOrderId) {
+        return BeanUtils.copyProperties(kwoTradeOrderService.detail(tOrderId), OrderDetailRes.class);
+    }
+
+    @Override
+    public void updateOrderStatus(Long tOrderId, Integer status) {
+        KwoTradeOrder order = kwoTradeOrderService.getById(tOrderId);
+        if (Objects.isNull(order)) {
+            throw new BusinessException("订单不存在!");
+        }
+    }
+
+    @Override
+    public void updateOrderAmount(UpdateOrderAmountParam param) {
+        KwoTradeOrder order = kwoTradeOrderService.getById(param.getTOrderId());
+        if (Objects.isNull(order)) {
+            throw new BusinessException("订单不存在!");
+        }
+    }
+
+    /**
+     * @desc: mq保存mongodb
+     * @author: yzc
+     * @date: 2023-07-17 8:43
+     * @Param method:
+     * @Param order:
+     * @return: void
+     */
+    private void saveMongoDb(Integer method, Object order) {
+        SckwBusSum busSum = new SckwBusSum();
+        busSum.setBusSumType("tradeOrder");
+        busSum.setMethod(method);
+        busSum.setObject(order);
+        streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
+    }
+}

+ 1 - 1
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwOrderController.java

@@ -73,7 +73,7 @@ public class KwOrderController {
      * @return: com.sckw.core.web.response.HttpResult
      */
     @PostMapping(value = "/tradeOrderExport", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult export(@RequestBody TradeOrderListExportParam params) {
+    public HttpResult export(@RequestBody @Validated TradeOrderListExportParam params) {
         HttpServletResponse response = RequestHolder.getResponse();
         List<TradeOrderListExport> list = orderService.export(params);
         if (CollectionUtils.isNotEmpty(list)) {