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

订单管理相关接口请求参数响应参数

yzc 2 лет назад
Родитель
Сommit
c1ef209acc
24 измененных файлов с 848 добавлено и 105 удалено
  1. 39 13
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java
  2. 1 1
      sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwBusSum.java
  3. 1 1
      sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwMessage.java
  4. 117 17
      sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java
  5. 5 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrderUnit.java
  6. 53 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AcceptanceOrderParam.java
  7. 2 2
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AddressInfo.java
  8. 31 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/CompleteOrderParam.java
  9. 30 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/ContractInfo.java
  10. 84 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/GoodsInfo.java
  11. 23 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListExportParam.java
  12. 25 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListSelectParam.java
  13. 72 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListStatisticParam.java
  14. 21 28
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/PurchaseOrderParam.java
  15. 25 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/RejectOrderParam.java
  16. 1 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UnitInfo.java
  17. 72 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UpdateOrderParam.java
  18. 7 7
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/ValetOrderParam.java
  19. 39 10
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetailRes.java
  20. 145 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderListRes.java
  21. 45 6
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  22. 1 1
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddGoodsParam.java
  23. 1 6
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/UpdateGoodsParam.java
  24. 8 12
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

+ 39 - 13
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java

@@ -60,17 +60,17 @@ public class SckwTradeOrder{
     /**
      * 订单交易方式(预付款、货到付款)
      */
-    private Long trading;
+    private String trading;
 
     /**
      * 订单提货方式(采方自提、供应配送)
      */
-    private Long pickupType;
+    private String pickupType;
 
     /**
      * 订单交付类型(签发交付、签收交付)
      */
-    private Long deliveryType;
+    private String deliveryType;
 
     /**
      * 订单开始日期
@@ -95,7 +95,7 @@ public class SckwTradeOrder{
     /**
      * 订单创建来源类型(采购下单/销售代客下单)
      */
-    private Integer source;
+    private String source;
 
     /**
      * 状态
@@ -135,12 +135,8 @@ public class SckwTradeOrder{
     /**
      * 商品类型
      */
-    private Long goodsType;
+    private String goodsType;
 
-    /**
-     * 商品行业
-     */
-    private Long goodsIndustry;
 
     /**
      * 商品尺寸大小
@@ -160,7 +156,7 @@ public class SckwTradeOrder{
     /**
      * 合同主键
      */
-    private Integer contractId;
+    private Long contractId;
 
     /**
      * 合同编号
@@ -217,10 +213,25 @@ public class SckwTradeOrder{
      */
     private String supplyPhone;
 
+    /**
+     * 装货地址名称
+     */
+    private String loadName;
+
     /**
      * 装货地址类型
      */
-    private Long loadType;
+    private String loadType;
+
+    /**
+     * 装货联系人姓名
+     */
+    private String loadContacts;
+
+    /**
+     * 装货联系电话
+     */
+    private String loadPhone;
 
     /**
      * 装货所在地区
@@ -248,9 +259,24 @@ public class SckwTradeOrder{
     private String loadLng;
 
     /**
-     * 卸货地址类型
+     * 装货地址名称
+     */
+    private String unloadName;
+
+    /**
+     * 装货地址类型
+     */
+    private String unloadType;
+
+    /**
+     * 装货联系人姓名
+     */
+    private String unloadContacts;
+
+    /**
+     * 装货联系电话
      */
-    private Long unloadType;
+    private String unloadPhone;
 
     /**
      * 卸货所在地区

+ 1 - 1
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwBusSum.java

@@ -22,7 +22,7 @@ public class SckwBusSum {
     /**
      * 操作对象(1新增/2修改)
      */
-    private int method;
+    private Integer method;
 
     /**
      * 业务汇总数据对象

+ 1 - 1
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwMessage.java

@@ -60,7 +60,7 @@ public class SckwMessage {
     /**
      * 移动端推送
      */
-    private boolean appPush;
+    private Boolean appPush;
 
     /**
      * 推送设备id

+ 117 - 17
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -1,15 +1,15 @@
 package com.sckw.order.controller;
 
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.order.model.vo.req.PurchaseOrderParam;
-import com.sckw.order.model.vo.req.UpdateOrderParam;
-import com.sckw.order.model.vo.req.ValetOrderParam;
+import com.sckw.order.model.vo.req.*;
 import com.sckw.order.serivce.KwoTradeOrderService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.MediaType;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * @desc: 贸易订单相关
  * @author: yzc
@@ -36,30 +36,29 @@ public class KwoTradeOrderController {
     }
 
     /**
-     * @desc: 代客下单草稿
+     * @desc: 采购下单提交
      * @author: yzc
      * @date: 2023-07-07 15:29
-     * @Param valetOrderParam:
+     * @Param purchaseOrderParam:
      * @return: com.sckw.core.web.response.HttpResult
      */
-    @PostMapping(value = "/addValetOrderDraft", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult addValetOrderDraft(@RequestBody ValetOrderParam valetOrderParam) {
-        kwoTradeOrderService.addValetOrderDraft(valetOrderParam);
-        return HttpResult.ok("代客下单草稿保存成功");
+    @PostMapping(value = "/addPurchaseOrderSubmit", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult addPurchaseOrderSubmit(@RequestBody @Validated PurchaseOrderParam purchaseOrderParam) {
+        kwoTradeOrderService.addPurchaseOrderSubmit(purchaseOrderParam);
+        return HttpResult.ok("采购下单提交成功");
     }
 
-
     /**
-     * @desc: 采购下单提交
+     * @desc: 代客下单草稿
      * @author: yzc
      * @date: 2023-07-07 15:29
-     * @Param purchaseOrderParam:
+     * @Param valetOrderParam:
      * @return: com.sckw.core.web.response.HttpResult
      */
-    @PostMapping(value = "/addPurchaseOrderSubmit", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult addPurchaseOrderSubmit(@RequestBody @Validated PurchaseOrderParam purchaseOrderParam) {
-        kwoTradeOrderService.addPurchaseOrderSubmit(purchaseOrderParam);
-        return HttpResult.ok("采购下单提交成功");
+    @PostMapping(value = "/addValetOrderDraft", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult addValetOrderDraft(@RequestBody ValetOrderParam valetOrderParam) {
+        kwoTradeOrderService.addValetOrderDraft(valetOrderParam);
+        return HttpResult.ok("代客下单草稿保存成功");
     }
 
 
@@ -98,7 +97,108 @@ public class KwoTradeOrderController {
     @PostMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult update(@RequestBody @Validated UpdateOrderParam updateOrderParam) {
         kwoTradeOrderService.update(updateOrderParam);
-        return HttpResult.ok("修改成功");
+        return HttpResult.ok("订单修改成功");
+    }
+
+    /**
+     * @desc: 订单受理
+     * @author: yzc
+     * @date: 2023-07-12 11:16
+     * @Param acceptanceOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/acceptanceOrder", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult acceptanceOrder(@RequestBody @Validated AcceptanceOrderParam acceptanceOrderParam) {
+        kwoTradeOrderService.acceptanceOrder(acceptanceOrderParam);
+        return HttpResult.ok("订单受理成功");
+    }
+
+    /**
+     * @desc: 驳回订单
+     * @author: yzc
+     * @date: 2023-07-12 11:22
+     * @Param rejectOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/rejectOrder", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult rejectOrder(@RequestBody @Validated RejectOrderParam rejectOrderParam) {
+        kwoTradeOrderService.rejectOrder(rejectOrderParam);
+        return HttpResult.ok("订单驳回成功");
+    }
+
+    /**
+     * @desc: 驳回订单原因查询
+     * @author: yzc
+     * @date: 2023-07-12 11:22
+     * @Param id:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @GetMapping("/rejectReason")
+    public HttpResult rejectReason(@RequestParam Long id) {
+        return HttpResult.ok(kwoTradeOrderService.rejectReason(id));
+    }
+
+    /**
+     * @desc: 完结订单
+     * @author: yzc
+     * @date: 2023-07-12 17:29
+     * @Param completeOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/completeOrder", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult completeOrder(@RequestBody @Validated CompleteOrderParam completeOrderParam) {
+        kwoTradeOrderService.completeOrder(completeOrderParam);
+        return HttpResult.ok("订单完结成功");
+    }
+
+    /**
+     * @desc: 分页查询
+     * @author: yzc
+     * @date: 2023-07-12 17:31
+     * @Param completeOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/select", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult select(@RequestBody @Validated OrderListSelectParam orderListSelectParam) {
+        return HttpResult.ok(kwoTradeOrderService.select(orderListSelectParam));
+    }
+
+    /**
+     * @desc: 订单统计
+     * @author: yzc
+     * @date: 2023-07-12 17:31
+     * @Param completeOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/statistic", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult statistic(@RequestBody @Validated OrderListStatisticParam orderListStatisticParam) {
+        return HttpResult.ok(kwoTradeOrderService.statistic(orderListStatisticParam));
+    }
+
+    /**
+     * @desc: 订单列表导出
+     * @author: yzc
+     * @date: 2023-07-12 17:32
+     * @Param completeOrderParam:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/export", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult export(@RequestBody @Validated CompleteOrderParam completeOrderParam) {
+        kwoTradeOrderService.export(completeOrderParam);
+        return HttpResult.ok("订单完结成功");
+    }
+
+    /**
+     * @desc: 批量删除
+     * @author: yzc
+     * @date: 2023-07-12 17:34
+     * @Param ids:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @GetMapping("/batchDelete")
+    public HttpResult batchDelete(@RequestParam List<Long> ids) {
+        kwoTradeOrderService.batchDelete(ids);
+        return HttpResult.ok("订单批量删除成功");
     }
 
 }

+ 5 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrderUnit.java

@@ -39,6 +39,11 @@ public class KwoTradeOrderUnit extends BaseModel {
      */
     private Long entId;
 
+    /**
+     * 顶级企业ID
+     */
+    private Long topEntId;
+
     /**
      * 企业名称
      */

+ 53 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AcceptanceOrderParam.java

@@ -0,0 +1,53 @@
+package com.sckw.order.model.vo.req;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * @desc: 受理订单请求参数
+ * @author: yzc
+ * @date: 2023-07-12 11:08
+ */
+@Getter
+@Setter
+@ToString
+public class AcceptanceOrderParam {
+
+    @NotNull(message = "订单id不能为空")
+    private Long id;
+
+    @NotNull(message = "订单总量不能为空")
+    private BigDecimal amount;
+
+    @NotNull(message = "订单成交单价不能为空")
+    private BigDecimal unitPrice;
+
+    @NotNull(message = "订单金额不能为空")
+    private BigDecimal price;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @NotNull(message = "开始时间不能为空")
+    private LocalDate startTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @NotNull(message = "结束时间不能为空")
+    private LocalDate endTime;
+
+    @NotNull(message = "提货方式不能为空")
+    private String pickupType;
+
+    @NotBlank(message = "交付类型不能为空")
+    private String deliveryType;
+
+    @NotNull(message = "合同信息不能为空")
+    @Valid
+    private ContractInfo contractInfo;
+}

+ 2 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/AddressInfo.java

@@ -20,7 +20,7 @@ public class AddressInfo {
      * 地址类型(1装货地址、2卸货地址)
      */
     @NotNull(message = "地址类型不能为空")
-    private Integer addressType;
+    private String addressType;
 
     /**
      * 地址名称
@@ -32,7 +32,7 @@ public class AddressInfo {
      * 地址类型
      */
     @NotNull(message = "地址类型不能为空")
-    private Long type;
+    private String type;
 
     /**
      * 联系人姓名

+ 31 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/CompleteOrderParam.java

@@ -0,0 +1,31 @@
+package com.sckw.order.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.Length;
+
+import java.math.BigDecimal;
+
+/**
+ * @desc: 订单完结请求参数
+ * @author: yzc
+ * @date: 2023-07-12 17:26
+ */
+@Getter
+@Setter
+@ToString
+public class CompleteOrderParam {
+
+    @NotNull(message = "订单id不能为为空")
+    private Long id;
+
+    @NotBlank(message = "实际交付量不能为空")
+    private BigDecimal actualAmount;
+
+    @Length(min = 1, max = 200, message = "驳回原因不能为空且最多200字")
+    private String remark;
+
+}

+ 30 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/ContractInfo.java

@@ -0,0 +1,30 @@
+package com.sckw.order.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * @desc: 合同信息
+ * @author: yzc
+ * @date: 2023-07-12 11:00
+ */
+@Getter
+@Setter
+@ToString
+public class ContractInfo {
+
+    @NotNull(message = "合同id不能为空")
+    private Long contractId;
+
+    @NotBlank(message = "合同编号不能为空")
+    private String contractNo;
+
+    @NotBlank(message = "合同名称不能为空")
+    private String contractName;
+
+    @NotBlank(message = "合同签约方式不能为空")
+    private String contractSigningWay;
+}

+ 84 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/GoodsInfo.java

@@ -0,0 +1,84 @@
+package com.sckw.order.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.math.BigDecimal;
+
+/**
+ * @desc: 商品信息
+ * @author: yzc
+ * @date: 2023-07-12 10:17
+ */
+@Getter
+@Setter
+@ToString
+public class GoodsInfo {
+    /**
+     * 商品id
+     */
+    @NotNull(message = "商品id不能为空")
+    private Long goodsId;
+
+    /**
+     * 商品编号
+     */
+    @NotBlank(message = "商品编号不能为空")
+    private String goodsCode;
+
+    /**
+     * 商品名称
+     */
+    @NotBlank(message = "商品名称不能为空")
+    private String goodsName;
+
+    /**
+     * 商品类型
+     */
+    @NotBlank(message = "商品类型不能为空")
+    private String goodsType;
+
+    /**
+     * 商品发票税率(%)
+     */
+    @NotNull(message = "商品发票税率不能为空")
+    private BigDecimal goodsTaxRate;
+
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    @NotBlank(message = "商品单位不能为空")
+    private String unit;
+    /**
+     * 价格段id
+     */
+    @NotNull(message = "价格段id不能为空")
+    private Long priceRangeId;
+
+    /**
+     * 订单成交单价
+     */
+    @NotNull(message = "订单成交单价不能为空")
+    private BigDecimal unitPrice;
+
+    /**
+     * 商品skuId
+     */
+    private Long skuId;
+
+    /**
+     * 收款单位id
+     */
+    @NotNull(message = "收款单位id不能为空")
+    private Long collectionUnitId;
+
+    /**
+     * 收款单位名称
+     */
+    @NotBlank(message = "收款单位名称不能为空")
+    private String collectionUnit;
+
+}

+ 23 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListExportParam.java

@@ -0,0 +1,23 @@
+package com.sckw.order.model.vo.req;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.List;
+
+/**
+ * @desc: 订单列表导出请求参数
+ * @author: yzc
+ * @date: 2023-07-12 17:41
+ */
+@Getter
+@Setter
+@ToString
+public class OrderListExportParam extends OrderListStatisticParam {
+
+    /**
+     * 订单id集合
+     */
+    private List<Long> ids;
+}

+ 25 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListSelectParam.java

@@ -0,0 +1,25 @@
+package com.sckw.order.model.vo.req;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * @desc: 订单列表分页请求参数
+ * @author: yzc
+ * @date: 2023-07-12 17:38
+ */
+@Getter
+@Setter
+@ToString
+public class OrderListSelectParam extends OrderListStatisticParam {
+
+    /**
+     * 当前页码
+     */
+    private int page = 1;
+    /**
+     * 每页数量
+     */
+    private int pageSize = 10;
+}

+ 72 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListStatisticParam.java

@@ -0,0 +1,72 @@
+package com.sckw.order.model.vo.req;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @desc: 订单列表统计请求参数
+ * @author: yzc
+ * @date: 2023-07-12 17:37
+ */
+@Getter
+@Setter
+@ToString
+public class OrderListStatisticParam {
+
+    /**
+     * 订单类型(1销售订单、2采购订单)
+     */
+    private Integer orderType;
+
+    /**
+     * 订单编号、单位、商品名称(模糊匹配共用)
+     */
+    private String keywords;
+    /**
+     * 创建时间开始(yyyy-MM-dd)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startCreateTime;
+
+    /**
+     * 创建时间结束(yyyy-MM-dd)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endCreateTime;
+
+    /**
+     * 装货地址id集合
+     */
+    private List<Long> shippingAddressIds;
+
+    /**
+     * 装货地址id集合
+     */
+    private List<Long> unloadingAddressIds;
+
+    /**
+     * 交易方式(预付款、货到付款)集合
+     */
+    private List<String> tradings;
+
+    /**
+     * 提货方式(采方自提、供应配送)集合
+     */
+    private List<String> pickupTypes;
+
+    /**
+     * 交付类型(签发交付、签收交付)集合
+     */
+    private List<String> deliveryTypes;
+
+    /**
+     * 下单方式(0自主下单/1代客下单)集合
+     */
+    private List<String> sources;
+
+}

+ 21 - 28
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/PurchaseOrderParam.java

@@ -9,6 +9,7 @@ import jakarta.validation.constraints.Size;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
+import org.hibernate.validator.constraints.Length;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -25,51 +26,35 @@ import java.util.List;
 public class PurchaseOrderParam {
 
     /**
-     * 商品id
+     * 商品信息
      */
-    @NotNull(message = "商品id不能为空")
-    private Long goodsId;
-    /**
-     * 单位(吨、方、箱、件)
-     */
-    @NotBlank(message = "单位不能为空")
-    private String unit;
-    /**
-     * 价格段id
-     */
-    @NotNull(message = "价格段id不能为空")
-    private Long priceRangeId;
-    /**
-     * 商品skuId
-     */
-    private Long skuId;
+    @Valid
+    @NotNull(message = "商品信息不能为空")
+    private GoodsInfo goodsInfo;
+
     /**
      * 订单总量
      */
     @NotNull(message = "订单总量不能为空")
     private BigDecimal amount;
     /**
-     * 商品单价
+     * 订单金额
      */
-    @NotNull(message = "商品单价不能为空")
+    @NotNull(message = "订单金额不能为空")
     private BigDecimal price;
-    /**
-     * 交易方式(预付款、货到付款)
-     */
-    @NotNull(message = "交易方式不能为空")
-    private Long trading;
+
     /**
      * 单位信息
      */
     @NotEmpty(message = "单位信息不能为空")
-    @Size(min = 2,max = 2,message = "单位信息只能有两条")
+    @Size(min = 2, max = 2, message = "单位信息只能有两条")
     @Valid
     private List<UnitInfo> unitInfo;
     /**
      * 地址信息
      */
     @NotEmpty(message = "地址信息不能为空")
-    @Size(min = 2,max = 2,message = "地址信息只能有两条")
+    @Size(min = 2, max = 2, message = "地址信息只能有两条")
     @Valid
     private List<AddressInfo> addressInfo;
     /**
@@ -87,10 +72,18 @@ public class PurchaseOrderParam {
     /**
      * 提货方式(采方自提、供应配送)
      */
-    @NotNull(message = "提货方式不能为空")
-    private Long pickupType;
+    @NotBlank(message = "提货方式不能为空")
+    private String pickupType;
+
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    @NotNull(message = "交易方式不能为空")
+    private String trading;
     /**
      * 备注
      */
+    @Length(max = 200, message = "备注最多支持200字")
     private String remark;
+
 }

+ 25 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/RejectOrderParam.java

@@ -0,0 +1,25 @@
+package com.sckw.order.model.vo.req;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.Length;
+
+/**
+ * @desc: 订单驳回参数
+ * @author: yzc
+ * @date: 2023-07-12 11:18
+ */
+@Getter
+@Setter
+@ToString
+public class RejectOrderParam {
+
+    @NotNull(message = "订单id不能为为空")
+    private Long id;
+
+    @Length(min = 1, max = 200, message = "驳回原因不能为空且最多200字")
+    private String remark;
+
+}

+ 1 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UnitInfo.java

@@ -20,7 +20,7 @@ public class UnitInfo {
      * 单位类型(1销售单位、2采购单位)
      */
     @NotNull(message = "单位类型不能为空")
-    private Integer unitType;
+    private String unitType;
 
     /**
      * 企业id

+ 72 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/UpdateOrderParam.java

@@ -1,8 +1,16 @@
 package com.sckw.order.model.vo.req;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
+import org.hibernate.validator.constraints.Length;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
 
 /**
  * @desc: 修改订单请求参数
@@ -14,5 +22,69 @@ import lombok.ToString;
 @ToString
 public class UpdateOrderParam {
 
+    @NotNull(message = "订单id不能为空")
+    private Long id;
+
+    /**
+     * 操作类型0保存、1提交
+     */
+    @NotNull(message = "操作类型不能为空")
+    private Integer operateType;
+
+    /**
+     * 商品信息
+     */
+    private GoodsInfo goodsInfo;
+
+    /**
+     * 订单总量
+     */
+    private BigDecimal amount;
+    /**
+     * 订单金额
+     */
+    private BigDecimal price;
+
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+
+    /**
+     * 提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+
+    /**
+     * 交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+
+    /**
+     * 单位信息
+     */
+    @Size(max = 2, message = "单位信息只能有两条")
+    private List<UnitInfo> unitInfo;
+    /**
+     * 地址信息
+     */
+    @Size(max = 2, message = "地址信息只能有两条")
+    private List<AddressInfo> addressInfo;
+    /**
+     * 开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate startTime;
+    /**
+     * 结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endTime;
+
+    /**
+     * 备注
+     */
+    @Length(max = 200, message = "备注最多支持200字")
+    private String remark;
 
 }

+ 7 - 7
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/ValetOrderParam.java

@@ -1,5 +1,7 @@
 package com.sckw.order.model.vo.req;
 
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
@@ -15,13 +17,11 @@ import lombok.ToString;
 @ToString
 public class ValetOrderParam extends PurchaseOrderParam {
 
-    @NotNull(message = "交付类型不能为空")
-    private Long deliveryType;
+    @NotBlank(message = "交付类型不能为空")
+    private String deliveryType;
 
-    @NotNull(message = "合同id不能为空")
-    private Long contractId;
-
-    @NotNull(message = "合同编号不能为空")
-    private String contractNo;
+    @NotNull(message = "合同信息不能为空")
+    @Valid
+    private ContractInfo contractInfo;
 
 }

+ 39 - 10
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetail.java → sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetailRes.java

@@ -1,5 +1,10 @@
 package com.sckw.order.model.vo.res;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sckw.order.model.vo.req.AddressInfo;
+import com.sckw.order.model.vo.req.ContractInfo;
+import com.sckw.order.model.vo.req.GoodsInfo;
+import com.sckw.order.model.vo.req.UnitInfo;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -7,9 +12,10 @@ import lombok.experimental.Accessors;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.util.List;
 
 /**
- * @desc: 订单详情
+ * @desc: 订单详情响应参数
  * @author: yzc
  * @date: 2023-07-07 15:35
  */
@@ -17,7 +23,7 @@ import java.time.LocalDate;
 @Setter
 @ToString
 @Accessors(chain = true)
-public class OrderDetail {
+public class OrderDetailRes {
 
     /**
      * 订单id
@@ -35,38 +41,55 @@ public class OrderDetail {
     private BigDecimal amount;
 
     /**
-     * 单位(吨、方、件、箱、其他)
+     * 订单金额
      */
-    private String unit;
+    private BigDecimal price;
 
     /**
-     * 价格
+     * 商品信息
      */
-    private BigDecimal price;
+    private GoodsInfo goodsInfo;
+
+    /**
+     * 单位信息
+     */
+    private List<UnitInfo> unitInfo;
+
+    /**
+     * 地址信息
+     */
+    private List<AddressInfo> addressInfo;
+
+    /**
+     * 合同信息
+     */
+    private ContractInfo contractInfo;
 
     /**
      * 交易方式(预付款、货到付款)
      */
-    private Long trading;
+    private String trading;
 
     /**
      * 提货方式(采方自提、供应配送)
      */
-    private Long pickupType;
+    private String pickupType;
 
     /**
      * 交付类型(签发交付、签收交付)
      */
-    private Long deliveryType;
+    private String deliveryType;
 
     /**
      * 开始日期
      */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate startTime;
 
     /**
      * 结束日期
      */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate endTime;
 
     /**
@@ -82,6 +105,12 @@ public class OrderDetail {
     /**
      * 订单创建来源类型(采购下单/销售代客下单)
      */
-    private Integer source;
+    private String source;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
 
 }

+ 145 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderListRes.java

@@ -0,0 +1,145 @@
+package com.sckw.order.model.vo.res;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * @desc: 订单列表响应参数
+ * @author: yzc
+ * @date: 2023-07-12 17:45
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class OrderListRes {
+
+    /**
+     * 订单id
+     */
+    private Long id;
+    /**
+     * 订单状态
+     */
+    private String status;
+    /**
+     * 订单编号
+     */
+    private String tOrderNo;
+    /**
+     * 采购单位
+     */
+    private String purchaseUnit;
+    /**
+     * 销售单位
+     */
+    private String saleUnit;
+    /**
+     * 交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+    /**
+     * 提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+    /**
+     * 托运状态
+     */
+    private String consignmentStatus;
+    /**
+     * 下单方式(自主下单/代客下单)
+     */
+    private String source;
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+    /**
+     * 合同id
+     */
+    private Long contractId;
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+    /**
+     * 合同编号
+     */
+    private String contractName;
+    /**
+     * 签约方式(线上签约、线下签约)
+     */
+    private String signingWay;
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String unit;
+    /**
+     * 订单成交单价
+     */
+    private BigDecimal unitPrice;
+    /**
+     * 订单金额
+     */
+    private BigDecimal price;
+    /**
+     * 订单总量
+     */
+    private BigDecimal orderAmount;
+    /**
+     * 订单总量
+     */
+    private BigDecimal amount;
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+    /**
+     * 实际交付量
+     */
+    private BigDecimal actualAmount;
+    /**
+     * 归属项目
+     */
+    private String beLongingProject;
+    /**
+     * 装货地点
+     */
+    private String loadingPlace;
+    /**
+     * 卸货地点
+     */
+    private String unloadingPlace;
+    /**
+     * 计划开始时间
+     */
+    private String startTime;
+    /**
+     * 计划结束时间
+     */
+    private String endTime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String creatByName;
+    /**
+     * 创建时间
+     */
+    private String createTime;
+}

+ 45 - 6
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -1,14 +1,18 @@
 package com.sckw.order.serivce;
 
+import com.sckw.core.model.vo.TableStatisticRes;
 import com.sckw.order.dao.KwoTradeOrderMapper;
-import com.sckw.order.model.vo.req.PurchaseOrderParam;
-import com.sckw.order.model.vo.req.UpdateOrderParam;
-import com.sckw.order.model.vo.req.ValetOrderParam;
-import com.sckw.order.model.vo.res.OrderDetail;
+import com.sckw.order.model.vo.req.*;
+import com.sckw.order.model.vo.res.OrderDetailRes;
+import com.sckw.order.model.vo.res.OrderListRes;
+import com.sckw.stream.model.SckwBusSum;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * @desc: 交易订单(采购订单/销售订单)service
  * @author: yzc
@@ -20,6 +24,7 @@ import org.springframework.stereotype.Service;
 public class KwoTradeOrderService {
 
     private final KwoTradeOrderMapper kwoTradeOrderMapper;
+    private final StreamBridge streamBridge;
 
     /**
      * @desc: 采购下单草稿
@@ -29,7 +34,7 @@ public class KwoTradeOrderService {
      * @return: void
      */
     public void addPurchaseOrderDraft(PurchaseOrderParam purchaseOrderParam) {
-
+        SckwBusSum sckwBusSum = new SckwBusSum();
     }
 
     /**
@@ -72,7 +77,7 @@ public class KwoTradeOrderService {
      * @Param id:
      * @return: com.sckw.order.model.vo.res.OrderDetail
      */
-    public OrderDetail detail(Long id) {
+    public OrderDetailRes detail(Long id) {
         return null;
     }
 
@@ -86,4 +91,38 @@ public class KwoTradeOrderService {
     public void update(UpdateOrderParam updateOrderParam) {
 
     }
+
+    public void acceptanceOrder(AcceptanceOrderParam acceptanceOrderParam) {
+
+    }
+
+    public void rejectOrder(RejectOrderParam rejectOrderParam) {
+
+    }
+
+    public String rejectReason(Long id) {
+        return null;
+    }
+
+    public void completeOrder(CompleteOrderParam completeOrderParam) {
+
+    }
+
+
+    public List<OrderListRes> select(OrderListSelectParam orderListSelectParam) {
+        return null;
+    }
+
+    public TableStatisticRes statistic(OrderListStatisticParam orderListStatisticParam) {
+        return null;
+    }
+
+
+    public void export(CompleteOrderParam completeOrderParam) {
+
+    }
+
+    public void batchDelete(List<Long> ids) {
+
+    }
 }

+ 1 - 1
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddGoodsParam.java

@@ -105,7 +105,7 @@ public class AddGoodsParam {
     /**
      * 备注
      */
-    @Length(max = 100, message = "备注最多支持100字")
+    @Length(max = 200, message = "备注最多支持200字")
     private String remark;
 
     /**

+ 1 - 6
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/UpdateGoodsParam.java

@@ -26,11 +26,6 @@ public class UpdateGoodsParam {
     @NotNull(message = "商品id不能为空")
     private Long id;
 
-    /**
-     * 商品状态
-     */
-    @NotNull(message = "商品状态不能为空")
-    private Integer status;
     /**
      * 商品名称
      */
@@ -101,7 +96,7 @@ public class UpdateGoodsParam {
     /**
      * 备注
      */
-    @Length(max = 100, message = "备注最多支持100字")
+    @Length(max = 200, message = "备注最多支持200字")
     private String remark;
 
     /**

+ 8 - 12
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -14,6 +14,7 @@ import com.sckw.core.model.vo.TableStatisticRes;
 import com.sckw.core.model.vo.TableTop;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.NumberUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.excel.utils.DateUtil;
@@ -94,7 +95,7 @@ public class KwpGoodsService {
         KwpGoods goods = BeanUtils.copyProperties(addGoodsParam, KwpGoods.class);
         Integer cityCode = addGoodsParam.getAddressInfo().getCityCode();
         SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
-        goods.setProvinceCode(area.getProvinceCode()).setEntId(entId)
+        goods.setCode(NumberUtils.createRandomVcode()).setProvinceCode(area.getProvinceCode()).setEntId(entId)
                 .setAddedTime(new Date()).setStatus(GoodsStatusEnum.PUT_ON_SHELVES.getCode());
         kwpGoodsMapper.insert(goods);
         addGoodsOtherInfo(goods.getId(), addGoodsParam);
@@ -201,20 +202,15 @@ public class KwpGoodsService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void update(UpdateGoodsParam param) {
-        if (Objects.equals(param.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())) {
-            judgeParameters(param);
-        }
-        KwpGoods kwpGoods = getGoodsById(param.getId());
-        if (Objects.isNull(kwpGoods)) {
+        KwpGoods goods = getGoodsById(param.getId());
+        if (Objects.isNull(goods)) {
             throw new BusinessException("当前商品不存在!");
         }
-        if (Objects.equals(kwpGoods.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())) {
-            throw new BusinessException("当前商品为上架状态,不可修改!");
-        }
-        KwpGoods goods = BeanUtils.copyProperties(param, KwpGoods.class);
-        if (Objects.equals(param.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())) {
-            goods.setAddedTime(new Date());
+        if (Objects.equals(goods.getStatus(), GoodsStatusEnum.PUT_ON_SHELVES.getCode())
+                || Objects.equals(goods.getStatus(), GoodsStatusEnum.TAKE_OFF_SHELVES.getCode())) {
+            judgeParameters(param);
         }
+        BeanUtils.copyProperties(param, goods);
         if (Objects.nonNull(param.getAddressInfo())) {
             Integer cityCode = param.getAddressInfo().getCityCode();
             SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);