Pārlūkot izejas kodu

Merge branch 'dev_20260630' into dev_20260630_cxf

chenxiaofei 2 nedēļas atpakaļ
vecāks
revīzija
943078f43d
35 mainītis faili ar 1624 papildinājumiem un 3 dzēšanām
  1. 6 0
      sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/OrderPara.java
  2. 67 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcContractProxyController.java
  3. 13 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractProxyGoodsMapper.java
  4. 13 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractProxyMapper.java
  5. 13 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractProxyUnitMapper.java
  6. 152 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/KwcContractProxy.java
  7. 116 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/KwcContractProxyGoods.java
  8. 121 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/KwcContractProxyUnit.java
  9. 29 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/enums/ProxyStatusEnum.java
  10. 100 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ProxyContractAddReq.java
  11. 23 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ProxyContractAuditReq.java
  12. 21 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ProxyContractFinishReq.java
  13. 31 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ProxyContractPageReq.java
  14. 136 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/ProxyContractDetailResp.java
  15. 68 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/ProxyContractListResp.java
  16. 45 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractProxyGoodsRepository.java
  17. 62 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractProxyRepository.java
  18. 45 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractProxyUnitRepository.java
  19. 12 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractProxyGoodsService.java
  20. 26 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractProxyService.java
  21. 12 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractProxyUnitService.java
  22. 17 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/impl/KwcContractProxyGoodsServiceImpl.java
  23. 366 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/impl/KwcContractProxyServiceImpl.java
  24. 17 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/impl/KwcContractProxyUnitServiceImpl.java
  25. 28 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractProxyGoodsMapper.xml
  26. 33 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractProxyMapper.xml
  27. 29 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractProxyUnitMapper.xml
  28. 5 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrder.java
  29. 1 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/OrderListResDTO.java
  30. 2 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/TradeOrderListSelectDTO.java
  31. 4 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/TradeOrderListSelectParam.java
  32. 4 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/TradeOrderParam.java
  33. 1 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  34. 4 0
      sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml
  35. 2 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntFindPageReqVo.java

+ 6 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/OrderPara.java

@@ -1,5 +1,6 @@
 package com.sckw.order.api.model;
 package com.sckw.order.api.model;
 
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
@@ -20,4 +21,9 @@ public class OrderPara {
     private Long userId;
     private Long userId;
     @Schema(description = "贸易订单号")
     @Schema(description = "贸易订单号")
     private String orderNo;
     private String orderNo;
+    /**
+     * 是否代理 1-是 2-否
+     */
+    @TableField("is_agent")
+    private Integer isAgent;
 }
 }

+ 67 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcContractProxyController.java

@@ -0,0 +1,67 @@
+package com.sckw.contract.controller;
+
+import com.sckw.contract.model.vo.req.ProxyContractAddReq;
+import com.sckw.contract.model.vo.req.ProxyContractAuditReq;
+import com.sckw.contract.model.vo.req.ProxyContractFinishReq;
+import com.sckw.contract.model.vo.req.ProxyContractPageReq;
+import com.sckw.contract.model.vo.res.ProxyContractDetailResp;
+import com.sckw.contract.model.vo.res.ProxyContractListResp;
+import com.sckw.contract.service.KwcContractProxyService;
+import com.sckw.core.web.response.BaseResult;
+import com.sckw.core.web.response.result.PageDataResult;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("proxyContract")
+@RequiredArgsConstructor
+@Tag(name = "代理合同接口")
+public class KwcContractProxyController {
+
+    private final KwcContractProxyService kwcContractProxyService;
+
+    @PostMapping("add")
+    @Operation(summary = "新增代理合同")
+    public BaseResult<Long> add(@Valid @RequestBody ProxyContractAddReq req) {
+        return BaseResult.success(kwcContractProxyService.add(req));
+    }
+
+    @PostMapping("update")
+    @Operation(summary = "修改代理合同")
+    public BaseResult<Long> update(@Valid @RequestBody ProxyContractAddReq req) {
+        return BaseResult.success(kwcContractProxyService.update(req));
+    }
+
+    @PostMapping("audit")
+    @Operation(summary = "审核代理合同")
+    public BaseResult<Boolean> audit(@Valid @RequestBody ProxyContractAuditReq req) {
+        return BaseResult.success(kwcContractProxyService.audit(req));
+    }
+
+    @PostMapping("finish")
+    @Operation(summary = "审核代理合同")
+    public BaseResult<Boolean> finish(@Valid @RequestBody ProxyContractFinishReq req) {
+        return BaseResult.success(kwcContractProxyService.finish(req));
+    }
+
+    @PostMapping("delete")
+    @Operation(summary = "删除代理合同")
+    public BaseResult<Boolean> delete(@RequestParam("id") Long id) {
+        return BaseResult.success(kwcContractProxyService.delete(id));
+    }
+
+    @PostMapping("queryListByPage")
+    @Operation(summary = "分页查询代理合同")
+    public BaseResult<PageDataResult<ProxyContractListResp>> queryListByPage(@RequestBody ProxyContractPageReq req) {
+        return BaseResult.success(kwcContractProxyService.queryListByPage(req));
+    }
+
+    @GetMapping("queryDetail")
+    @Operation(summary = "查询代理合同详情")
+    public BaseResult<ProxyContractDetailResp> queryDetail(@RequestParam("id") Long id) {
+        return BaseResult.success(kwcContractProxyService.queryDetail(id));
+    }
+}

+ 13 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractProxyGoodsMapper.java

@@ -0,0 +1,13 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.KwcContractProxyGoods;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @date 2026-06-02 09:00:09
+* @author xucaiqin
+*/
+@Mapper
+public interface KwcContractProxyGoodsMapper extends BaseMapper<KwcContractProxyGoods> {
+}

+ 13 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractProxyMapper.java

@@ -0,0 +1,13 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.KwcContractProxy;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @date 2026-06-02 09:00:09
+* @author xucaiqin
+*/
+@Mapper
+public interface KwcContractProxyMapper extends BaseMapper<KwcContractProxy> {
+}

+ 13 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractProxyUnitMapper.java

@@ -0,0 +1,13 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.KwcContractProxyUnit;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @date 2026-06-02 09:00:09
+* @author xucaiqin
+*/
+@Mapper
+public interface KwcContractProxyUnitMapper extends BaseMapper<KwcContractProxyUnit> {
+}

+ 152 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/KwcContractProxy.java

@@ -0,0 +1,152 @@
+package com.sckw.contract.model;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 代理合同
+* @date 2026-06-02 09:00:09
+* @author xucaiqin
+*/
+@Schema(description="代理合同")
+@Data
+@TableName(value = "kwc_contract_proxy")
+public class KwcContractProxy {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @Schema(description="主键")
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    @TableField(value = "ent_id")
+    @Schema(description="企业id")
+    private Long entId;
+
+    /**
+     * 合同编号
+     */
+    @TableField(value = "contract_no")
+    @Schema(description="合同编号")
+    private String contractNo;
+
+    /**
+     * 合同名称
+     */
+    @TableField(value = "`name`")
+    @Schema(description="合同名称")
+    private String name;
+
+    /**
+     * 供应单位
+     */
+    @TableField(value = "supply_id")
+    @Schema(description="供应单位")
+    private Long supplyId;
+
+    /**
+     * 代理单位
+     */
+    @TableField(value = "proxy_id")
+    @Schema(description="代理单位")
+    private Long proxyId;
+
+    /**
+     * 签约时间
+     */
+    @TableField(value = "sign_time")
+    @Schema(description="签约时间")
+    private LocalDateTime signTime;
+
+    /**
+     * 开始日期
+     */
+    @TableField(value = "start_time")
+    @Schema(description="开始日期")
+    private LocalDateTime startTime;
+
+    /**
+     * 结束日期
+     */
+    @TableField(value = "end_time")
+    @Schema(description="结束日期")
+    private LocalDateTime endTime;
+
+    /**
+     * 数量
+     */
+    @TableField(value = "amount")
+    @Schema(description="数量")
+    private BigDecimal amount;
+
+    /**
+     * 已履约量
+     */
+    @TableField(value = "performed_amount")
+    @Schema(description="已履约量")
+    private BigDecimal performedAmount;
+
+    /**
+     * 合同文件
+     */
+    @TableField(value = "sign_file")
+    @Schema(description="合同文件")
+    private String signFile;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark")
+    @Schema(description="备注")
+    private String remark;
+
+    /**
+     * 状态 1待签约 2已签约 3已完结 4已作废
+     */
+    @TableField(value = "`status`")
+    @Schema(description="状态 1待签约 2已签约 3已完结 4已作废")
+    private Integer status;
+
+    /**
+     * 创建人
+     */
+    @TableField(value = "create_by")
+    @Schema(description="创建人")
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    @Schema(description="创建时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新人
+     */
+    @TableField(value = "update_by")
+    @Schema(description="更新人")
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(value = "update_time")
+    @Schema(description="更新时间")
+    private LocalDateTime updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    @TableField(value = "del_flag")
+    @Schema(description="是否删除(0未删除,1删除)")
+    @TableLogic(value = "0")
+    private Integer delFlag;
+}

+ 116 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/KwcContractProxyGoods.java

@@ -0,0 +1,116 @@
+package com.sckw.contract.model;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 物流合同商品信息
+ *
+ * @author xucaiqin
+ * @date 2026-06-02 09:00:09
+ */
+@Schema(description = "物流合同商品信息")
+@Data
+@TableName(value = "kwc_contract_proxy_goods")
+public class KwcContractProxyGoods {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @Schema(description = "主键")
+    private Long id;
+
+    /**
+     * 合同id(kwc_contract_logistics)
+     */
+    @TableField(value = "contract_id")
+    @Schema(description = "合同id(kwc_contract_logistics)")
+    private Long contractId;
+
+    /**
+     * 商品id
+     */
+    @TableField(value = "goods_id")
+    @Schema(description = "商品id")
+    private Long goodsId;
+
+    /**
+     * 商品名
+     */
+    @TableField(value = "goods_name")
+    @Schema(description = "商品名")
+    private String goodsName;
+
+    /**
+     * sku
+     */
+    @TableField(value = "sku_id")
+    @Schema(description = "sku")
+    private Long skuId;
+
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    @TableField(value = "unit")
+    @Schema(description = "单位(吨、方、箱、件)")
+    private String unit;
+
+    /**
+     * 代理数量
+     */
+    @TableField(value = "amount")
+    @Schema(description = "代理数量")
+    private BigDecimal amount;
+
+    /**
+     * 代理价格
+     */
+    @TableField(value = "price")
+    @Schema(description = "代理价格")
+    private BigDecimal price;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark")
+    @Schema(description = "备注")
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    @TableField(value = "`status`")
+    @Schema(description = "用户状态(0正常、1已锁)")
+    private Integer status;
+
+    @TableField(value = "create_by")
+    @Schema(description = "")
+    private Long createBy;
+
+    @TableField(value = "create_time")
+    @Schema(description = "")
+    private LocalDateTime createTime;
+
+    @TableField(value = "update_by")
+    @Schema(description = "")
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(value = "update_time")
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    @TableField(value = "del_flag")
+    @Schema(description = "是否删除(0未删除,1删除)")
+    @TableLogic(value = "0")
+    private Integer delFlag;
+}

+ 121 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/KwcContractProxyUnit.java

@@ -0,0 +1,121 @@
+package com.sckw.contract.model;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 代理合同企业信息
+* @date 2026-06-02 09:00:09
+* @author xucaiqin
+*/
+@Schema(description="代理合同企业信息")
+@Data
+@TableName(value = "kwc_contract_proxy_unit")
+public class KwcContractProxyUnit {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @Schema(description="主键")
+    private Long id;
+
+    /**
+     * 物流合同id
+     */
+    @TableField(value = "contract_id")
+    @Schema(description="物流合同id")
+    private Long contractId;
+
+    /**
+     * 单位类型 1-履约企业 2-代理企业
+     */
+    @TableField(value = "unit_type")
+    @Schema(description="单位类型 1-履约企业 2-代理企业")
+    private Integer unitType;
+
+    /**
+     * 企业id
+     */
+    @TableField(value = "ent_id")
+    @Schema(description="企业id")
+    private Long entId;
+
+    /**
+     * 企业名称
+     */
+    @TableField(value = "firm_name")
+    @Schema(description="企业名称")
+    private String firmName;
+    /**
+     * 联系人id
+     */
+    @TableField(value = "contacts_id")
+    @Schema(description="联系人id")
+    private Long contactsId;
+    /**
+     * 联系人姓名
+     */
+    @TableField(value = "contacts")
+    @Schema(description="联系人姓名")
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    @TableField(value = "phone")
+    @Schema(description="联系电话")
+    private String phone;
+
+    /**
+     * 签约电话
+     */
+    @TableField(value = "sign_phone")
+    @Schema(description="签约电话")
+    private String signPhone;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark")
+    @Schema(description="备注")
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    @TableField(value = "`status`")
+    @Schema(description="用户状态(0正常、1已锁)")
+    private Integer status;
+
+    @TableField(value = "create_by")
+    @Schema(description="")
+    private Long createBy;
+
+    @TableField(value = "create_time")
+    @Schema(description="")
+    private LocalDateTime createTime;
+
+    @TableField(value = "update_by")
+    @Schema(description="")
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(value = "update_time")
+    @Schema(description="更新时间")
+    private LocalDateTime updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    @TableField(value = "del_flag")
+    @Schema(description="是否删除(0未删除,1删除)")
+    @TableLogic(value = "0")
+    private Integer delFlag;
+
+
+}

+ 29 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/enums/ProxyStatusEnum.java

@@ -0,0 +1,29 @@
+package com.sckw.contract.model.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+
+@Getter
+@AllArgsConstructor
+public enum ProxyStatusEnum {
+
+    ISSUE(1, "待签约"),
+    SIGN(2, "已签约"),
+    SUCCESS(3, "已完结"),
+    DROW(4, "已作废"),
+    ;
+
+    private final Integer value;
+
+    private final String label;
+
+    public static String getLabel(Integer value) {
+        for (ProxyStatusEnum ele : ProxyStatusEnum.values()) {
+            if (ele.getValue().equals(value)) {
+                return ele.getLabel();
+            }
+        }
+        return null;
+    }
+}

+ 100 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ProxyContractAddReq.java

@@ -0,0 +1,100 @@
+package com.sckw.contract.model.vo.req;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class ProxyContractAddReq implements Serializable {
+    @Serial
+    private static final long serialVersionUID = -164929708905316981L;
+
+    @Schema(description = "合同ID(修改时必传)")
+    private Long id;
+
+    @Schema(description = "合同编号")
+    @NotBlank(message = "合同编号不能为空")
+    private String contractNo;
+
+    @Schema(description = "合同名称")
+    @NotBlank(message = "合同名称不能为空")
+    private String name;
+
+    @Schema(description = "供应单位ID")
+    @NotNull(message = "供应单位不能为空")
+    private Long supplyId;
+
+    @Schema(description = "代理单位ID")
+    @NotNull(message = "代理单位不能为空")
+    private Long proxyId;
+
+    @Schema(description = "签约时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime signTime;
+
+    @Schema(description = "开始日期")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime startTime;
+
+    @Schema(description = "结束日期")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime endTime;
+
+    @Schema(description = "数量")
+    private BigDecimal amount;
+
+    @Schema(description = "合同文件")
+    private String signFile;
+
+    @Schema(description = "备注")
+    private String remark;
+
+    @Schema(description = "状态 1待签约 2已签约 3已完结 4已作废")
+    private Integer status;
+
+    @Schema(description = "商品信息")
+    private List<ProxyGoodsInfo> goodsInfo;
+
+    @Data
+    public static class ProxyGoodsInfo implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 5795256361688794001L;
+
+        @Schema(description = "商品ID")
+        @NotNull(message = "商品ID不能为空")
+        private Long goodsId;
+
+        @Schema(description = "商品名称")
+        @NotBlank(message = "商品名称不能为空")
+        private String goodsName;
+
+        @Schema(description = "SKU ID")
+        private Long skuId;
+
+        @Schema(description = "单位(吨、方、箱、件)")
+        private String unit;
+
+        @Schema(description = "代理数量")
+        private BigDecimal amount;
+
+        @Schema(description = "代理价格")
+        private BigDecimal price;
+
+        @Schema(description = "备注")
+        private String remark;
+    }
+
+
+}

+ 23 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ProxyContractAuditReq.java

@@ -0,0 +1,23 @@
+package com.sckw.contract.model.vo.req;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class ProxyContractAuditReq implements Serializable {
+    @Serial
+    private static final long serialVersionUID = -3164072406841112429L;
+
+    @Schema(description = "合同ID")
+    @NotNull(message = "合同ID不能为空")
+    private Long id;
+
+    @Schema(description = "审核后状态 1-通过 2-拒绝")
+    @NotNull(message = "状态不能为空")
+    private Integer auditStatus;
+}
+

+ 21 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ProxyContractFinishReq.java

@@ -0,0 +1,21 @@
+package com.sckw.contract.model.vo.req;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class ProxyContractFinishReq implements Serializable {
+    @Serial
+    private static final long serialVersionUID = -3164072406841112429L;
+
+    @Schema(description = "合同ID")
+    @NotNull(message = "合同ID不能为空")
+    private Long id;
+
+
+}
+

+ 31 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ProxyContractPageReq.java

@@ -0,0 +1,31 @@
+package com.sckw.contract.model.vo.req;
+
+import com.sckw.core.web.request.PageReq;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProxyContractPageReq extends PageReq implements Serializable {
+    @Serial
+    private static final long serialVersionUID = -278974017847303226L;
+
+    @Schema(description = "合同编号")
+    private String contractNo;
+
+    @Schema(description = "合同名称")
+    private String contractName;
+
+    @Schema(description = "供应单位ID")
+    private Long supplyId;
+
+    @Schema(description = "代理单位ID")
+    private Long proxyId;
+
+    @Schema(description = "状态 1待签约 2已签约 3已完结 4已作废")
+    private Integer status;
+}

+ 136 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/ProxyContractDetailResp.java

@@ -0,0 +1,136 @@
+package com.sckw.contract.model.vo.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class ProxyContractDetailResp implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 8693831585846993146L;
+
+    @Schema(description = "主键")
+    private Long id;
+
+    @Schema(description = "合同编号")
+    private String contractNo;
+
+    @Schema(description = "合同名称")
+    private String name;
+
+    @Schema(description = "供应单位ID")
+    private Long supplyId;
+
+    @Schema(description = "代理单位ID")
+    private Long proxyId;
+
+    @Schema(description = "签约时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime signTime;
+
+    @Schema(description = "开始日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime startTime;
+
+    @Schema(description = "结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime endTime;
+
+    @Schema(description = "数量")
+    private BigDecimal amount;
+
+    @Schema(description = "已履约量")
+    private BigDecimal performedAmount;
+
+    @Schema(description = "合同文件")
+    private String signFile;
+
+    @Schema(description = "备注")
+    private String remark;
+
+    @Schema(description = "状态")
+    private Integer status;
+
+    @Schema(description = "创建人")
+    private Long createBy;
+
+    @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @Schema(description = "更新人")
+    private Long updateBy;
+
+    @Schema(description = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime updateTime;
+
+    @Schema(description = "商品信息")
+    private List<ProxyGoodsDetail> goodsInfo;
+
+    @Schema(description = "企业信息")
+    private List<ProxyUnitDetail> unitInfo;
+
+    @Data
+    public static class ProxyGoodsDetail implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 4523825232327369608L;
+
+        @Schema(description = "商品ID")
+        private Long goodsId;
+
+        @Schema(description = "商品名称")
+        private String goodsName;
+
+        @Schema(description = "SKU ID")
+        private Long skuId;
+
+        @Schema(description = "单位")
+        private String unit;
+
+        @Schema(description = "代理数量")
+        private BigDecimal amount;
+
+        @Schema(description = "代理价格")
+        private BigDecimal price;
+
+        @Schema(description = "备注")
+        private String remark;
+    }
+
+    @Data
+    public static class ProxyUnitDetail implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 247009323864913612L;
+
+        @Schema(description = "单位类型 1-履约企业 2-代理企业")
+        private Integer unitType;
+
+        @Schema(description = "企业ID")
+        private Long entId;
+
+        @Schema(description = "企业名称")
+        private String firmName;
+
+        @Schema(description = "联系人ID")
+        private Long contactsId;
+
+        @Schema(description = "联系人姓名")
+        private String contacts;
+
+        @Schema(description = "联系电话")
+        private String phone;
+
+        @Schema(description = "签约电话")
+        private String signPhone;
+
+        @Schema(description = "备注")
+        private String remark;
+    }
+}

+ 68 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/ProxyContractListResp.java

@@ -0,0 +1,68 @@
+package com.sckw.contract.model.vo.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class ProxyContractListResp implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 5738076869406996786L;
+
+    @Schema(description = "主键")
+    private Long id;
+
+    @Schema(description = "合同编号")
+    private String contractNo;
+
+    @Schema(description = "合同名称")
+    private String name;
+
+    @Schema(description = "供应单位ID")
+    private Long supplyId;
+
+    @Schema(description = "供应单位名称")
+    private String supplyName;
+
+    @Schema(description = "代理单位ID")
+    private Long proxyId;
+
+    @Schema(description = "代理单位名称")
+    private String proxyName;
+
+    @Schema(description = "签约时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime signTime;
+
+    @Schema(description = "开始日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime startTime;
+
+    @Schema(description = "结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime endTime;
+
+    @Schema(description = "数量")
+    private BigDecimal amount;
+
+    @Schema(description = "已履约量")
+    private BigDecimal performedAmount;
+
+    @Schema(description = "状态")
+    private Integer status;
+
+    @Schema(description = "状态描述")
+    private String statusDesc;
+
+    @Schema(description = "创建人")
+    private Long createBy;
+
+    @Schema(description = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+}

+ 45 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractProxyGoodsRepository.java

@@ -0,0 +1,45 @@
+package com.sckw.contract.repository;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sckw.contract.dao.KwcContractProxyGoodsMapper;
+import com.sckw.contract.model.KwcContractProxyGoods;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Set;
+
+@Repository
+public class KwcContractProxyGoodsRepository extends ServiceImpl<KwcContractProxyGoodsMapper, KwcContractProxyGoods> {
+
+    public List<KwcContractProxyGoods> queryByContractId(Long contractId) {
+        return list(Wrappers.<KwcContractProxyGoods>lambdaQuery()
+                .eq(KwcContractProxyGoods::getDelFlag, 0)
+                .eq(KwcContractProxyGoods::getContractId, contractId));
+    }
+
+    public List<KwcContractProxyGoods> queryByContractIds(Set<Long> contractIds) {
+        return list(Wrappers.<KwcContractProxyGoods>lambdaQuery()
+                .eq(KwcContractProxyGoods::getDelFlag, 0)
+                .in(KwcContractProxyGoods::getContractId, contractIds));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void saveGoods(List<KwcContractProxyGoods> goods) {
+        saveOrUpdateBatch(goods);
+    }
+
+    public void deleteByContractId(Long contractId) {
+        remove(Wrappers.<KwcContractProxyGoods>lambdaQuery()
+                .eq(KwcContractProxyGoods::getContractId, contractId));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void removeByContractId(Long contractId) {
+        KwcContractProxyGoods goods = new KwcContractProxyGoods();
+        goods.setDelFlag(1);
+        update(goods, Wrappers.<KwcContractProxyGoods>lambdaQuery()
+                .eq(KwcContractProxyGoods::getContractId, contractId));
+    }
+}

+ 62 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractProxyRepository.java

@@ -0,0 +1,62 @@
+package com.sckw.contract.repository;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sckw.contract.dao.KwcContractProxyMapper;
+import com.sckw.contract.model.KwcContractProxy;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Repository
+public class KwcContractProxyRepository extends ServiceImpl<KwcContractProxyMapper, KwcContractProxy> {
+
+    public IPage<KwcContractProxy> queryByPage(int pageNum, int pageSize, String contractNo, String contractName,
+                                                Long supplyId, Long proxyId, Integer status) {
+        return page(new Page<>(pageNum, pageSize), Wrappers.<KwcContractProxy>lambdaQuery()
+                .eq(KwcContractProxy::getDelFlag, 0)
+                .like(StringUtils.isNotBlank(contractNo), KwcContractProxy::getContractNo, contractNo)
+                .like(StringUtils.isNotBlank(contractName), KwcContractProxy::getName, contractName)
+                .eq(supplyId != null, KwcContractProxy::getSupplyId, supplyId)
+                .eq(proxyId != null, KwcContractProxy::getProxyId, proxyId)
+                .eq(status != null, KwcContractProxy::getStatus, status)
+                .orderByDesc(KwcContractProxy::getUpdateTime)
+                .orderByDesc(KwcContractProxy::getId));
+    }
+
+    public KwcContractProxy queryById(Long id) {
+        return getOne(Wrappers.<KwcContractProxy>lambdaQuery()
+                .eq(KwcContractProxy::getId, id)
+                .eq(KwcContractProxy::getDelFlag, 0));
+    }
+
+    public KwcContractProxy queryByContractNo(String contractNo) {
+        return getOne(Wrappers.<KwcContractProxy>lambdaQuery()
+                .eq(KwcContractProxy::getDelFlag, 0)
+                .eq(KwcContractProxy::getContractNo, contractNo)
+                .last("limit 1"));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void saveOrUpdateProxy(KwcContractProxy contractProxy) {
+        saveOrUpdate(contractProxy);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public boolean removeById(Long id) {
+        KwcContractProxy proxy = new KwcContractProxy();
+        proxy.setId(id);
+        proxy.setDelFlag(1);
+        return updateById(proxy);
+    }
+
+    public List<KwcContractProxy> queryByIds(List<Long> ids) {
+        return list(Wrappers.<KwcContractProxy>lambdaQuery()
+                .eq(KwcContractProxy::getDelFlag, 0)
+                .in(KwcContractProxy::getId, ids));
+    }
+}

+ 45 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractProxyUnitRepository.java

@@ -0,0 +1,45 @@
+package com.sckw.contract.repository;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sckw.contract.dao.KwcContractProxyUnitMapper;
+import com.sckw.contract.model.KwcContractProxyUnit;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Set;
+
+@Repository
+public class KwcContractProxyUnitRepository extends ServiceImpl<KwcContractProxyUnitMapper, KwcContractProxyUnit> {
+
+    public List<KwcContractProxyUnit> queryByContractId(Long contractId) {
+        return list(Wrappers.<KwcContractProxyUnit>lambdaQuery()
+                .eq(KwcContractProxyUnit::getContractId, contractId)
+                .eq(KwcContractProxyUnit::getDelFlag, 0));
+    }
+
+    public List<KwcContractProxyUnit> queryByContractIds(Set<Long> contractIds) {
+        return list(Wrappers.<KwcContractProxyUnit>lambdaQuery()
+                .eq(KwcContractProxyUnit::getDelFlag, 0)
+                .in(KwcContractProxyUnit::getContractId, contractIds));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void saveUnits(List<KwcContractProxyUnit> units) {
+        saveBatch(units);
+    }
+
+    public void removeByContractId(Long contractId) {
+        remove(Wrappers.<KwcContractProxyUnit>lambdaQuery()
+                .eq(KwcContractProxyUnit::getContractId, contractId));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteByContractId(Long contractId) {
+        KwcContractProxyUnit unit = new KwcContractProxyUnit();
+        unit.setDelFlag(1);
+        update(unit, Wrappers.<KwcContractProxyUnit>lambdaQuery()
+                .eq(KwcContractProxyUnit::getContractId, contractId));
+    }
+}

+ 12 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractProxyGoodsService.java

@@ -0,0 +1,12 @@
+package com.sckw.contract.service;
+
+import com.sckw.contract.model.KwcContractProxyGoods;
+import com.baomidou.mybatisplus.extension.service.IService;
+    /**
+* @date 2026-06-02 09:00:09
+* @author xucaiqin
+*/
+public interface KwcContractProxyGoodsService extends IService<KwcContractProxyGoods>{
+
+
+}

+ 26 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractProxyService.java

@@ -0,0 +1,26 @@
+package com.sckw.contract.service;
+
+import com.sckw.contract.model.vo.req.ProxyContractAddReq;
+import com.sckw.contract.model.vo.req.ProxyContractAuditReq;
+import com.sckw.contract.model.vo.req.ProxyContractFinishReq;
+import com.sckw.contract.model.vo.req.ProxyContractPageReq;
+import com.sckw.contract.model.vo.res.ProxyContractDetailResp;
+import com.sckw.contract.model.vo.res.ProxyContractListResp;
+import com.sckw.core.web.response.result.PageDataResult;
+
+public interface KwcContractProxyService  {
+
+    PageDataResult<ProxyContractListResp> queryListByPage(ProxyContractPageReq req);
+
+    ProxyContractDetailResp queryDetail(Long id);
+
+    Boolean audit(ProxyContractAuditReq req);
+
+    Long update(ProxyContractAddReq req);
+
+    Long add(ProxyContractAddReq req);
+
+    boolean delete(Long id);
+
+    Boolean finish(ProxyContractFinishReq req);
+}

+ 12 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractProxyUnitService.java

@@ -0,0 +1,12 @@
+package com.sckw.contract.service;
+
+import com.sckw.contract.model.KwcContractProxyUnit;
+import com.baomidou.mybatisplus.extension.service.IService;
+    /**
+* @date 2026-06-02 09:00:09
+* @author xucaiqin
+*/
+public interface KwcContractProxyUnitService extends IService<KwcContractProxyUnit>{
+
+
+}

+ 17 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/impl/KwcContractProxyGoodsServiceImpl.java

@@ -0,0 +1,17 @@
+package com.sckw.contract.service.impl;
+
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sckw.contract.model.KwcContractProxyGoods;
+import com.sckw.contract.dao.KwcContractProxyGoodsMapper;
+import com.sckw.contract.service.KwcContractProxyGoodsService;
+/**
+* @date 2026-06-02 09:00:09
+* @author xucaiqin
+*/
+@Service
+public class KwcContractProxyGoodsServiceImpl extends ServiceImpl<KwcContractProxyGoodsMapper, KwcContractProxyGoods> implements KwcContractProxyGoodsService{
+
+}

+ 366 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/impl/KwcContractProxyServiceImpl.java

@@ -0,0 +1,366 @@
+package com.sckw.contract.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.sckw.contract.model.KwcContractProxy;
+import com.sckw.contract.model.KwcContractProxyGoods;
+import com.sckw.contract.model.KwcContractProxyUnit;
+import com.sckw.contract.model.enums.ProxyStatusEnum;
+import com.sckw.contract.model.vo.req.ProxyContractAddReq;
+import com.sckw.contract.model.vo.req.ProxyContractAuditReq;
+import com.sckw.contract.model.vo.req.ProxyContractFinishReq;
+import com.sckw.contract.model.vo.req.ProxyContractPageReq;
+import com.sckw.contract.model.vo.res.ProxyContractDetailResp;
+import com.sckw.contract.model.vo.res.ProxyContractListResp;
+import com.sckw.contract.repository.KwcContractProxyGoodsRepository;
+import com.sckw.contract.repository.KwcContractProxyRepository;
+import com.sckw.contract.repository.KwcContractProxyUnitRepository;
+import com.sckw.contract.service.KwcContractProxyService;
+import com.sckw.core.exception.BusinessException;
+import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.core.web.response.result.PageDataResult;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * @author xucaiqin
+ * @date 2026-06-02 09:00:09
+ */
+@Service
+@RequiredArgsConstructor
+public class KwcContractProxyServiceImpl implements KwcContractProxyService {
+    private final KwcContractProxyRepository proxyRepository;
+    private final KwcContractProxyUnitRepository proxyUnitRepository;
+    private final KwcContractProxyGoodsRepository proxyGoodsRepository;
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+
+    @Override
+    public PageDataResult<ProxyContractListResp> queryListByPage(ProxyContractPageReq req) {
+        IPage<KwcContractProxy> page = proxyRepository.queryByPage(req.getPageNum(), req.getPageSize(), req.getContractNo(), req.getContractName(), req.getSupplyId(), req.getProxyId(), req.getStatus());
+
+        List<KwcContractProxy> records = page.getRecords();
+        if (CollectionUtils.isEmpty(records)) {
+            return PageDataResult.empty(req.getPageNum(), req.getPageSize());
+        }
+
+        List<KwcContractProxyUnit> allUnits = proxyUnitRepository.queryByContractIds(records.stream().map(KwcContractProxy::getId).collect(Collectors.toSet()));
+
+        Map<Long, KwcContractProxyUnit> supplyUnitMap = allUnits.stream().filter(u -> Objects.equals(u.getUnitType(), 1)).collect(Collectors.toMap(KwcContractProxyUnit::getContractId, Function.identity(), (a, b) -> a));
+
+        Map<Long, KwcContractProxyUnit> proxyUnitMap = allUnits.stream().filter(u -> Objects.equals(u.getUnitType(), 2)).collect(Collectors.toMap(KwcContractProxyUnit::getContractId, Function.identity(), (a, b) -> a));
+
+        List<ProxyContractListResp> list = records.stream().map(r -> {
+            ProxyContractListResp resp = new ProxyContractListResp();
+            resp.setId(r.getId());
+            resp.setContractNo(r.getContractNo());
+            resp.setName(r.getName());
+            resp.setSupplyId(r.getSupplyId());
+            resp.setProxyId(r.getProxyId());
+            resp.setSignTime(r.getSignTime());
+            resp.setStartTime(r.getStartTime());
+            resp.setEndTime(r.getEndTime());
+            resp.setAmount(r.getAmount());
+            resp.setPerformedAmount(r.getPerformedAmount());
+            resp.setStatus(r.getStatus());
+            resp.setStatusDesc(ProxyStatusEnum.getLabel(r.getStatus()));
+            resp.setCreateBy(r.getCreateBy());
+            resp.setCreateTime(r.getCreateTime());
+
+            KwcContractProxyUnit supplyUnit = supplyUnitMap.get(r.getId());
+            if (supplyUnit != null) {
+                resp.setSupplyName(supplyUnit.getFirmName());
+            }
+            KwcContractProxyUnit proxyUnit = proxyUnitMap.get(r.getId());
+            if (proxyUnit != null) {
+                resp.setProxyName(proxyUnit.getFirmName());
+            }
+            return resp;
+        }).collect(Collectors.toList());
+
+        return PageDataResult.of(page, list);
+    }
+
+    @Override
+    public ProxyContractDetailResp queryDetail(Long id) {
+        KwcContractProxy proxy = proxyRepository.queryById(id);
+        if (proxy == null) {
+            throw new BusinessException("代理合同不存在");
+        }
+
+        ProxyContractDetailResp resp = new ProxyContractDetailResp();
+        resp.setId(proxy.getId());
+        resp.setContractNo(proxy.getContractNo());
+        resp.setName(proxy.getName());
+        resp.setSupplyId(proxy.getSupplyId());
+        resp.setProxyId(proxy.getProxyId());
+        resp.setSignTime(proxy.getSignTime());
+        resp.setStartTime(proxy.getStartTime());
+        resp.setEndTime(proxy.getEndTime());
+        resp.setAmount(proxy.getAmount());
+        resp.setPerformedAmount(proxy.getPerformedAmount());
+        resp.setSignFile(proxy.getSignFile());
+        resp.setRemark(proxy.getRemark());
+        resp.setStatus(proxy.getStatus());
+        resp.setCreateBy(proxy.getCreateBy());
+        resp.setCreateTime(proxy.getCreateTime());
+        resp.setUpdateBy(proxy.getUpdateBy());
+        resp.setUpdateTime(proxy.getUpdateTime());
+
+        List<KwcContractProxyGoods> goodsList = proxyGoodsRepository.queryByContractId(id);
+        if (CollectionUtils.isNotEmpty(goodsList)) {
+            resp.setGoodsInfo(goodsList.stream().map(g -> {
+                ProxyContractDetailResp.ProxyGoodsDetail detail = new ProxyContractDetailResp.ProxyGoodsDetail();
+                detail.setGoodsId(g.getGoodsId());
+                detail.setGoodsName(g.getGoodsName());
+                detail.setSkuId(g.getSkuId());
+                detail.setUnit(g.getUnit());
+                detail.setAmount(g.getAmount());
+                detail.setPrice(g.getPrice());
+                detail.setRemark(g.getRemark());
+                return detail;
+            }).collect(Collectors.toList()));
+        }
+        List<KwcContractProxyUnit> unitList = proxyUnitRepository.queryByContractId(id);
+        if (CollectionUtils.isNotEmpty(unitList)) {
+            resp.setUnitInfo(unitList.stream().map(u -> {
+                ProxyContractDetailResp.ProxyUnitDetail detail = new ProxyContractDetailResp.ProxyUnitDetail();
+                detail.setUnitType(u.getUnitType());
+                detail.setEntId(u.getEntId());
+                detail.setFirmName(u.getFirmName());
+                detail.setContactsId(u.getContactsId());
+                detail.setContacts(u.getContacts());
+                detail.setPhone(u.getPhone());
+                detail.setSignPhone(u.getSignPhone());
+                detail.setRemark(u.getRemark());
+                return detail;
+            }).collect(Collectors.toList()));
+        }
+
+        return resp;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Long add(ProxyContractAddReq req) {
+        if (req.getId() != null) {
+            throw new BusinessException("新增时合同ID必须为空");
+        }
+
+        KwcContractProxy existProxy = proxyRepository.queryByContractNo(req.getContractNo());
+        if (existProxy != null) {
+            throw new BusinessException("合同编号已存在");
+        }
+
+        return saveOrUpdate(req, null);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Long update(ProxyContractAddReq req) {
+        if (req.getId() == null) {
+            throw new BusinessException("修改时合同ID不能为空");
+        }
+
+        KwcContractProxy proxy = proxyRepository.queryById(req.getId());
+        if (proxy == null) {
+            throw new BusinessException("代理合同不存在");
+        }
+
+        KwcContractProxy existProxy = proxyRepository.queryByContractNo(req.getContractNo());
+        if (existProxy != null && !Objects.equals(existProxy.getId(), req.getId())) {
+            throw new BusinessException("合同编号已存在");
+        }
+        if (!Objects.equals(proxy.getStatus(), ProxyStatusEnum.ISSUE.getValue())) {
+            throw new BusinessException("非待签约合同不允许修改");
+
+        }
+
+
+        return saveOrUpdate(req, proxy);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Boolean audit(ProxyContractAuditReq req) {
+        KwcContractProxy proxy = proxyRepository.queryById(req.getId());
+        if (proxy == null) {
+            throw new BusinessException("代理合同不存在");
+        }
+        if (!Objects.equals(proxy.getStatus(), ProxyStatusEnum.ISSUE.getValue())) {
+            throw new BusinessException("只有待签约状态才能审核");
+        }
+
+        Integer auditStatus = req.getAuditStatus();
+        if (!Objects.equals(auditStatus, 1) && !Objects.equals(auditStatus, 2)) {
+            throw new BusinessException("审核状态不合法");
+        }
+
+        proxy.setStatus(Objects.equals(auditStatus, 1) ? ProxyStatusEnum.SIGN.getValue() : ProxyStatusEnum.DROW.getValue());
+        proxy.setSignTime(Objects.equals(auditStatus, 1) ? LocalDateTime.now() : null);
+        proxy.setUpdateBy(LoginUserHolder.getUserId());
+        proxy.setUpdateTime(LocalDateTime.now());
+        proxyRepository.saveOrUpdateProxy(proxy);
+        return Boolean.TRUE;
+    }
+
+    private Long saveOrUpdate(ProxyContractAddReq req, KwcContractProxy existProxy) {
+        boolean isUpdate = existProxy != null;
+        KwcContractProxy proxy = isUpdate ? existProxy : new KwcContractProxy();
+
+        proxy.setContractNo(req.getContractNo());
+        proxy.setName(req.getName());
+        proxy.setSupplyId(req.getSupplyId());
+        proxy.setProxyId(req.getProxyId());
+        proxy.setSignTime(req.getSignTime());
+        proxy.setStartTime(req.getStartTime());
+        proxy.setEndTime(req.getEndTime());
+        BigDecimal totalAmount = BigDecimal.ZERO;
+        if (CollectionUtils.isNotEmpty(req.getGoodsInfo())) {
+            for (ProxyContractAddReq.ProxyGoodsInfo goodsInfo : req.getGoodsInfo()) {
+                if (goodsInfo != null && goodsInfo.getAmount() != null) {
+                    totalAmount = totalAmount.add(goodsInfo.getAmount());
+                }
+            }
+        }
+        proxy.setAmount(totalAmount);
+        proxy.setSignFile(req.getSignFile());
+        proxy.setRemark(req.getRemark());
+        if (!isUpdate) {
+            proxy.setStatus(ProxyStatusEnum.ISSUE.getValue());
+        }
+        proxy.setEntId(LoginUserHolder.getEntId());
+
+        LocalDateTime now = LocalDateTime.now();
+        if (isUpdate) {
+            proxy.setUpdateBy(LoginUserHolder.getUserId());
+            proxy.setUpdateTime(now);
+        } else {
+            proxy.setCreateBy(LoginUserHolder.getUserId());
+            proxy.setCreateTime(now);
+            proxy.setUpdateBy(LoginUserHolder.getUserId());
+            proxy.setUpdateTime(now);
+            proxy.setDelFlag(0);
+        }
+
+        proxyRepository.saveOrUpdateProxy(proxy);
+        Long contractId = proxy.getId();
+
+        proxyGoodsRepository.deleteByContractId(contractId);
+        if (CollectionUtils.isNotEmpty(req.getGoodsInfo())) {
+            List<KwcContractProxyGoods> goodsList = new ArrayList<>();
+            for (ProxyContractAddReq.ProxyGoodsInfo goodsInfo : req.getGoodsInfo()) {
+                KwcContractProxyGoods goods = new KwcContractProxyGoods();
+                goods.setContractId(contractId);
+                goods.setGoodsId(goodsInfo.getGoodsId());
+                goods.setGoodsName(goodsInfo.getGoodsName());
+                goods.setSkuId(goodsInfo.getSkuId());
+                goods.setUnit(goodsInfo.getUnit());
+                goods.setAmount(goodsInfo.getAmount());
+                goods.setPrice(goodsInfo.getPrice());
+                goods.setRemark(goodsInfo.getRemark());
+                goods.setStatus(0);
+                goods.setCreateBy(LoginUserHolder.getUserId());
+                goods.setCreateTime(now);
+                goods.setUpdateBy(LoginUserHolder.getUserId());
+                goods.setUpdateTime(now);
+                goods.setDelFlag(0);
+                goodsList.add(goods);
+            }
+            proxyGoodsRepository.saveGoods(goodsList);
+        }
+
+        proxyUnitRepository.removeByContractId(contractId);
+        Long supplyId = req.getSupplyId();
+        EntCacheResDto entCacheResDto = remoteSystemService.queryEntCacheById(supplyId);
+        Long proxyId = req.getProxyId();
+        EntCacheResDto entCacheResDto1 = remoteSystemService.queryEntCacheById(proxyId);
+
+        if (entCacheResDto == null) {
+            throw new BusinessException("供应单位信息不存在");
+        }
+        if (entCacheResDto1 == null) {
+            throw new BusinessException("代理单位信息不存在");
+        }
+
+        List<KwcContractProxyUnit> unitList = new ArrayList<>();
+
+        KwcContractProxyUnit supplyUnit = new KwcContractProxyUnit();
+        supplyUnit.setContractId(contractId);
+        supplyUnit.setUnitType(1);
+        supplyUnit.setEntId(supplyId);
+        supplyUnit.setFirmName(entCacheResDto.getFirmName());
+        supplyUnit.setContactsId(entCacheResDto.getContactsId());
+        supplyUnit.setContacts(entCacheResDto.getContacts());
+        supplyUnit.setPhone(entCacheResDto.getPhone());
+        supplyUnit.setSignPhone(entCacheResDto.getPhone());
+        supplyUnit.setStatus(0);
+        supplyUnit.setCreateBy(LoginUserHolder.getUserId());
+        supplyUnit.setCreateTime(now);
+        supplyUnit.setUpdateBy(LoginUserHolder.getUserId());
+        supplyUnit.setUpdateTime(now);
+        supplyUnit.setDelFlag(0);
+        unitList.add(supplyUnit);
+
+        KwcContractProxyUnit proxyUnit = new KwcContractProxyUnit();
+        proxyUnit.setContractId(contractId);
+        proxyUnit.setUnitType(2);
+        proxyUnit.setEntId(proxyId);
+        proxyUnit.setFirmName(entCacheResDto1.getFirmName());
+        proxyUnit.setContactsId(entCacheResDto1.getContactsId());
+        proxyUnit.setContacts(entCacheResDto1.getContacts());
+        proxyUnit.setPhone(entCacheResDto1.getPhone());
+        proxyUnit.setSignPhone(entCacheResDto1.getPhone());
+        proxyUnit.setStatus(0);
+        proxyUnit.setCreateBy(LoginUserHolder.getUserId());
+        proxyUnit.setCreateTime(now);
+        proxyUnit.setUpdateBy(LoginUserHolder.getUserId());
+        proxyUnit.setUpdateTime(now);
+        proxyUnit.setDelFlag(0);
+        unitList.add(proxyUnit);
+
+        proxyUnitRepository.saveUnits(unitList);
+
+        return contractId;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean delete(Long id) {
+        KwcContractProxy proxy = proxyRepository.queryById(id);
+        if (proxy == null) {
+            throw new BusinessException("代理合同不存在");
+        }
+        proxyGoodsRepository.removeByContractId(id);
+        proxyUnitRepository.deleteByContractId(id);
+        return proxyRepository.removeById(id);
+    }
+
+    @Override
+    public Boolean finish(ProxyContractFinishReq req) {
+        KwcContractProxy proxy = proxyRepository.queryById(req.getId());
+        if (proxy == null) {
+            throw new BusinessException("代理合同不存在");
+        }
+
+        proxy.setStatus(ProxyStatusEnum.SUCCESS.getValue());
+        proxy.setUpdateBy(LoginUserHolder.getUserId());
+        proxy.setUpdateTime(LocalDateTime.now());
+        proxyRepository.updateById(proxy);
+        return Boolean.TRUE;
+    }
+
+}

+ 17 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/impl/KwcContractProxyUnitServiceImpl.java

@@ -0,0 +1,17 @@
+package com.sckw.contract.service.impl;
+
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sckw.contract.model.KwcContractProxyUnit;
+import com.sckw.contract.dao.KwcContractProxyUnitMapper;
+import com.sckw.contract.service.KwcContractProxyUnitService;
+/**
+* @date 2026-06-02 09:00:09
+* @author xucaiqin
+*/
+@Service
+public class KwcContractProxyUnitServiceImpl extends ServiceImpl<KwcContractProxyUnitMapper, KwcContractProxyUnit> implements KwcContractProxyUnitService{
+
+}

+ 28 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractProxyGoodsMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.contract.dao.KwcContractProxyGoodsMapper">
+  <resultMap id="BaseResultMap" type="com.sckw.contract.model.KwcContractProxyGoods">
+    <!--@mbg.generated-->
+    <!--@Table kwc_contract_proxy_goods-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="contract_id" jdbcType="BIGINT" property="contractId" />
+    <result column="goods_id" jdbcType="BIGINT" property="goodsId" />
+    <result column="goods_name" jdbcType="VARCHAR" property="goodsName" />
+    <result column="sku_id" jdbcType="BIGINT" property="skuId" />
+    <result column="unit" jdbcType="VARCHAR" property="unit" />
+    <result column="amount" jdbcType="DECIMAL" property="amount" />
+    <result column="price" jdbcType="DECIMAL" property="price" />
+    <result column="remark" jdbcType="VARCHAR" property="remark" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="create_by" jdbcType="BIGINT" property="createBy" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_by" jdbcType="BIGINT" property="updateBy" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, contract_id, goods_id, goods_name, sku_id, unit, amount, price, remark, `status`, 
+    create_by, create_time, update_by, update_time, del_flag
+  </sql>
+</mapper>

+ 33 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractProxyMapper.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.contract.dao.KwcContractProxyMapper">
+  <resultMap id="BaseResultMap" type="com.sckw.contract.model.KwcContractProxy">
+    <!--@mbg.generated-->
+    <!--@Table kwc_contract_proxy-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="ent_id" jdbcType="BIGINT" property="entId" />
+    <result column="contract_no" jdbcType="VARCHAR" property="contractNo" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="supply_id" jdbcType="BIGINT" property="supplyId" />
+    <result column="proxy_id" jdbcType="BIGINT" property="proxyId" />
+    <result column="sign_time" jdbcType="TIMESTAMP" property="signTime" />
+    <result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
+    <result column="end_time" jdbcType="TIMESTAMP" property="endTime" />
+    <result column="amount" jdbcType="DECIMAL" property="amount" />
+    <result column="performed_amount" jdbcType="DECIMAL" property="performedAmount" />
+    <result column="sign_file" jdbcType="VARCHAR" property="signFile" />
+    <result column="remark" jdbcType="VARCHAR" property="remark" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="create_by" jdbcType="BIGINT" property="createBy" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_by" jdbcType="BIGINT" property="updateBy" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, ent_id, contract_no, `name`, supply_id, proxy_id, sign_time, start_time, end_time, 
+    amount, performed_amount, sign_file, remark, `status`, create_by, create_time, update_by, 
+    update_time, del_flag
+  </sql>
+</mapper>

+ 29 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractProxyUnitMapper.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.contract.dao.KwcContractProxyUnitMapper">
+  <resultMap id="BaseResultMap" type="com.sckw.contract.model.KwcContractProxyUnit">
+    <!--@mbg.generated-->
+    <!--@Table kwc_contract_proxy_unit-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="contract_id" jdbcType="BIGINT" property="contractId" />
+    <result column="unit_type" jdbcType="INTEGER" property="unitType" />
+    <result column="ent_id" jdbcType="BIGINT" property="entId" />
+    <result column="firm_name" jdbcType="VARCHAR" property="firmName" />
+    <result column="contacts" jdbcType="VARCHAR" property="contacts" />
+    <result column="phone" jdbcType="VARCHAR" property="phone" />
+    <result column="sign_phone" jdbcType="VARCHAR" property="signPhone" />
+    <result column="remark" jdbcType="VARCHAR" property="remark" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="create_by" jdbcType="BIGINT" property="createBy" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_by" jdbcType="BIGINT" property="updateBy" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
+    <result column="contacts_id" jdbcType="BIGINT" property="contactsId" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, contract_id, unit_type, ent_id, firm_name, contacts, phone, sign_phone, remark, 
+    `status`, create_by, create_time, update_by, update_time, del_flag, contacts_id
+  </sql>
+</mapper>

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

@@ -142,6 +142,11 @@ public class KwoTradeOrder extends BaseModel implements Serializable {
      */
      */
     @TableField("settlement")
     @TableField("settlement")
     private Integer settlement;
     private Integer settlement;
+    /**
+     * 是否代理 1-是 2-否
+     */
+    @TableField("is_agent")
+    private Integer isAgent;
 
 
     /**
     /**
      * 是否需要增派运力(0-否,1-是)
      * 是否需要增派运力(0-否,1-是)

+ 1 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/OrderListResDTO.java

@@ -150,7 +150,7 @@ public class OrderListResDTO {
      */
      */
     private Integer chargeType;
     private Integer chargeType;
 
 
-
+    private Integer isAgent;
     /**
     /**
      * 是否需要增派运力(0-否,1-是)
      * 是否需要增派运力(0-否,1-是)
      */
      */

+ 2 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/TradeOrderListSelectDTO.java

@@ -108,7 +108,8 @@ public class TradeOrderListSelectDTO {
      * 订单状态
      * 订单状态
      */
      */
     private Integer status;
     private Integer status;
-
+    @Schema(description = "是否代理")
+    private Integer isAgent;
     @Schema(description = "供应单位")
     @Schema(description = "供应单位")
     private Long saleEntId;
     private Long saleEntId;
 
 

+ 4 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/TradeOrderListSelectParam.java

@@ -38,4 +38,8 @@ public class TradeOrderListSelectParam extends TradeOrderListStatisticParam {
     private String orderNo;
     private String orderNo;
     @Schema(description = "贸易合同")
     @Schema(description = "贸易合同")
     private Long contractId;
     private Long contractId;
+
+    @Schema(description = "是否代理")
+    private Integer isAgent;
+
 }
 }

+ 4 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/TradeOrderParam.java

@@ -34,6 +34,10 @@ public class TradeOrderParam {
     @Schema(description = "贸易合同")
     @Schema(description = "贸易合同")
     private Long tradeContractId;
     private Long tradeContractId;
 
 
+    @NotNull(message = "贸易合同是否代理合同不能为空")
+    @Schema(description = "代理合同")
+    private Integer isAgent;
+
     @NotBlank(message = "贸易合同名称不能为空")
     @NotBlank(message = "贸易合同名称不能为空")
     @Schema(description = "贸易合同名称")
     @Schema(description = "贸易合同名称")
     private String tradeContractName;
     private String tradeContractName;

+ 1 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -2362,6 +2362,7 @@ public class KwoTradeOrderService {
             throw new BusinessException("商品发货地址信息不存在");
             throw new BusinessException("商品发货地址信息不存在");
         }
         }
         order.setSettlement(tradeContractResDto.getSettlement());
         order.setSettlement(tradeContractResDto.getSettlement());
+        order.setIsAgent(tradeOrderParam.getIsAgent());
         kwoTradeOrderMapper.insert(order);//贸易订单
         kwoTradeOrderMapper.insert(order);//贸易订单
 //        walletFreeze.setTTradeOrderId(order.getId());
 //        walletFreeze.setTTradeOrderId(order.getId());
 
 

+ 4 - 0
sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml

@@ -74,6 +74,7 @@
         a.end_time       AS endTime,
         a.end_time       AS endTime,
         a.remark         AS remark,
         a.remark         AS remark,
         a.unit           AS unit,
         a.unit           AS unit,
+        a.is_agent       as isAgent,
         a.create_by      AS createBy,
         a.create_by      AS createBy,
         a.create_time    AS createTime,
         a.create_time    AS createTime,
         a.add_vehicles   AS addVehicles,
         a.add_vehicles   AS addVehicles,
@@ -127,6 +128,9 @@
             <if test="query.buyEntId != null">
             <if test="query.buyEntId != null">
                 and d.ent_id = #{query.buyEntId}
                 and d.ent_id = #{query.buyEntId}
             </if>
             </if>
+            <if test="query.isAgent != null">
+                and a.is_agent = #{query.isAgent}
+            </if>
             <if test="query.contractId != null">
             <if test="query.contractId != null">
                 and f.contract_id = #{query.contractId}
                 and f.contract_id = #{query.contractId}
             </if>
             </if>

+ 2 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/req/EntFindPageReqVo.java

@@ -50,7 +50,8 @@ public class EntFindPageReqVo extends PageRequest implements Serializable {
     private String keywords;
     private String keywords;
 
 
     /**
     /**
-     * 企业类型1:供应商,2:采购商,3:4PL物流,4:3PL物流,多个用","隔开
+     * 字典 ent_type
+     * 企业类型1:供应商,2:采购商,3:4PL物流,4:代理属性
      */
      */
     private String entTypes;
     private String entTypes;