Browse Source

经销商PC投诉申报接口调试,增加门店标签管理接口,增加经销商app模块

纪新园 2 weeks ago
parent
commit
451c46c131
25 changed files with 841 additions and 250 deletions
  1. 1 1
      blade-common/src/main/java/org/springblade/common/constant/LandConstant.java
  2. 114 116
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/complaint/entity/BladeComplaint.java
  3. 9 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/complaint/vo/BladeComplaintVO.java
  4. 34 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/corps/dto/CorpsLabelDTO.java
  5. 84 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/corps/entity/CorpsLabel.java
  6. 31 33
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/corps/entity/PjCorpsDesc.java
  7. 36 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/corps/vo/CorpsLabelVO.java
  8. 0 17
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/excel/CorpsDescImportExcel.java
  9. 20 0
      blade-service-api/gubersail-dealer-app-api/pom.xml
  10. 1 0
      blade-service-api/pom.xml
  11. 0 1
      blade-service/blade-factory/src/main/java/org/springblade/factory/service/impl/ZcrmViewCustomerSelServiceImpl.java
  12. 26 2
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/claim/service/impl/BladeClaimServiceImpl.java
  13. 84 5
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/complaint/controller/BladeComplaintController.java
  14. 7 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/complaint/service/IBladeComplaintService.java
  15. 67 8
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/complaint/service/impl/BladeComplaintServiceImpl.java
  16. 0 5
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/controller/CorpsDescController.java
  17. 126 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/controller/CorpsLabelController.java
  18. 42 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/mapper/CorpsLabelMapper.java
  19. 23 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/mapper/CorpsLabelMapper.xml
  20. 41 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/service/ICorpsLabelService.java
  21. 0 60
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/service/impl/CorpsDescServiceImpl.java
  22. 41 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/service/impl/CorpsLabelServiceImpl.java
  23. 1 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/lead/controller/BladeSalesLeadController.java
  24. 2 2
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/lead/service/impl/BladeSalesLeadServiceImpl.java
  25. 51 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/ComplaintWrapper.java

+ 1 - 1
blade-common/src/main/java/org/springblade/common/constant/LandConstant.java

@@ -50,6 +50,6 @@ public interface LandConstant {
 	/**
 	 * 默认密码
 	 */
-	String USER_PASSWORD = "123456";
+	String USER_PASSWORD = "Kbs@888";
 
 }

+ 114 - 116
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/complaint/entity/BladeComplaint.java

@@ -16,18 +16,16 @@
  */
 package com.gubersail.dealer.admin.api.complaint.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import java.util.Date;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
 
 /**
  * 投诉主表实体类
@@ -43,124 +41,124 @@ public class BladeComplaint implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	* 主键ID(系统继承)
-	*/
-		@ApiModelProperty(value = "主键ID(系统继承)")
-		@TableId(value = "id", type = IdType.AUTO)
+	 * 主键ID(系统继承)
+	 */
+	@ApiModelProperty(value = "主键ID(系统继承)")
+	@TableId(value = "id", type = IdType.AUTO)
 	private Long id;
 	/**
-	* 投诉单号(业务唯一)
-	*/
-		@ApiModelProperty(value = "投诉单号(业务唯一)")
-		private String complaintNo;
+	 * 投诉单号(业务唯一)
+	 */
+	@ApiModelProperty(value = "投诉单号(业务唯一)")
+	private String complaintNo;
 	/**
-	* 投诉人类型 1终端消费者 2门店 3经销商
-	*/
-		@ApiModelProperty(value = "投诉人类型 1终端消费者 2门店 3经销商")
-		private Boolean complainantType;
+	 * 投诉人类型 1终端消费者 2门店 3经销商
+	 */
+	@ApiModelProperty(value = "投诉人类型 1终端消费者 2门店 3经销商")
+	private Boolean complainantType;
 	/**
-	* 投诉人客户ID
-	*/
-		@ApiModelProperty(value = "投诉人客户ID")
-		@TableField("CUSTOMER_ID")
+	 * 投诉人客户ID
+	 */
+	@ApiModelProperty(value = "投诉人客户ID")
+	@TableField("CUSTOMER_ID")
 	private Long customerId;
 	/**
-	* 客户编码
-	*/
-		@ApiModelProperty(value = "客户编码")
-		@TableField("CUSTOMER_CODE")
+	 * 客户编码
+	 */
+	@ApiModelProperty(value = "客户编码")
+	@TableField("CUSTOMER_CODE")
 	private String customerCode;
 	/**
-	* 客户名称
-	*/
-		@ApiModelProperty(value = "客户名称")
-		@TableField("CUSTOMER_NAME")
+	 * 客户名称
+	 */
+	@ApiModelProperty(value = "客户名称")
+	@TableField("CUSTOMER_NAME")
 	private String customerName;
 	/**
-	* 联系人姓名
-	*/
-		@ApiModelProperty(value = "联系人姓名")
-		private String contactName;
-	/**
-	* 联系人电话
-	*/
-		@ApiModelProperty(value = "联系人电话")
-		private String contactPhone;
-	/**
-	* 投诉标题
-	*/
-		@ApiModelProperty(value = "投诉标题")
-		private String title;
-	/**
-	* 问题描述
-	*/
-		@ApiModelProperty(value = "问题描述")
-		private String content;
-	/**
-	* 投诉类型(质量/物流/服务/其他)
-	*/
-		@ApiModelProperty(value = "投诉类型(质量/物流/服务/其他)")
-		private String complaintType;
-	/**
-	* 可见范围位运算
-	*/
-		@ApiModelProperty(value = "可见范围位运算")
-		private Integer visibleScope;
-	/**
-	* 投诉状态
-	*/
-		@ApiModelProperty(value = "投诉状态")
-		private Boolean status;
-	/**
-	* 回复状态
-	*/
-		@ApiModelProperty(value = "回复状态")
-		private Boolean replyStatus;
-	/**
-	* 关闭原因
-	*/
-		@ApiModelProperty(value = "关闭原因")
-		private String closeReason;
-	/**
-	* 提交时间
-	*/
-		@ApiModelProperty(value = "提交时间")
-		private Date submitTime;
-	/**
-	* 备注
-	*/
-		@ApiModelProperty(value = "备注")
-		private String remark;
-	/**
-	* 创建人
-	*/
-		@ApiModelProperty(value = "创建人")
-		private Long createUser;
-	/**
-	* 创建部门
-	*/
-		@ApiModelProperty(value = "创建部门")
-		private Long createDept;
-	/**
-	* 创建时间
-	*/
-		@ApiModelProperty(value = "创建时间")
-		private Date createTime;
-	/**
-	* 更新人
-	*/
-		@ApiModelProperty(value = "更新人")
-		private Long updateUser;
-	/**
-	* 更新时间
-	*/
-		@ApiModelProperty(value = "更新时间")
-		private Date updateTime;
-	/**
-	* 是否已删除
-	*/
-		@ApiModelProperty(value = "是否已删除")
-		private Integer isDeleted;
+	 * 联系人姓名
+	 */
+	@ApiModelProperty(value = "联系人姓名")
+	private String contactName;
+	/**
+	 * 联系人电话
+	 */
+	@ApiModelProperty(value = "联系人电话")
+	private String contactPhone;
+	/**
+	 * 投诉标题
+	 */
+	@ApiModelProperty(value = "投诉标题")
+	private String title;
+	/**
+	 * 问题描述
+	 */
+	@ApiModelProperty(value = "问题描述")
+	private String content;
+	/**
+	 * 投诉类型(质量/物流/服务/其他)
+	 */
+	@ApiModelProperty(value = "投诉类型(质量/物流/服务/其他)")
+	private String complaintType;
+	/**
+	 * 可见范围位运算
+	 */
+	@ApiModelProperty(value = "可见范围位运算")
+	private Integer visibleScope;
+	/**
+	 * 投诉状态
+	 */
+	@ApiModelProperty(value = "投诉状态")
+	private Integer status;
+	/**
+	 * 回复状态
+	 */
+	@ApiModelProperty(value = "回复状态")
+	private Integer replyStatus;
+	/**
+	 * 关闭原因
+	 */
+	@ApiModelProperty(value = "关闭原因")
+	private String closeReason;
+	/**
+	 * 提交时间
+	 */
+	@ApiModelProperty(value = "提交时间")
+	private Date submitTime;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+	/**
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private Long createUser;
+	/**
+	 * 创建部门
+	 */
+	@ApiModelProperty(value = "创建部门")
+	private Long createDept;
+	/**
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
+	/**
+	 * 更新人
+	 */
+	@ApiModelProperty(value = "更新人")
+	private Long updateUser;
+	/**
+	 * 更新时间
+	 */
+	@ApiModelProperty(value = "更新时间")
+	private Date updateTime;
+	/**
+	 * 是否已删除
+	 */
+	@ApiModelProperty(value = "是否已删除")
+	private Integer isDeleted;
 
 
 }

+ 9 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/complaint/vo/BladeComplaintVO.java

@@ -47,4 +47,13 @@ public class BladeComplaintVO extends BladeComplaint {
 	 */
 	private List<BladeComplaintReply> complaintReplyList;
 
+	/**
+	 * 创建人名称
+	 */
+	private String createUserName;
+	/**
+	 * 更新人名称
+	 */
+	private String updateUserName;
+
 }

+ 34 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/corps/dto/CorpsLabelDTO.java

@@ -0,0 +1,34 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package com.gubersail.dealer.admin.api.corps.dto;
+
+import com.gubersail.dealer.admin.api.corps.entity.CorpsLabel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 标签管理表数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2025-09-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class CorpsLabelDTO extends CorpsLabel {
+	private static final long serialVersionUID = 1L;
+
+}

+ 84 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/corps/entity/CorpsLabel.java

@@ -0,0 +1,84 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package com.gubersail.dealer.admin.api.corps.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 标签管理表实体类
+ *
+ * @author BladeX
+ * @since 2025-09-17
+ */
+@Data
+@TableName("pjpf_corps_label")
+@ApiModel(value = "CorpsLabel对象", description = "标签管理表")
+public class CorpsLabel implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+	/**
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private Long createUser;
+	/**
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
+	/**
+	 * 修改人
+	 */
+	@ApiModelProperty(value = "修改人")
+	private Long updateUser;
+	/**
+	 * 修改时间
+	 */
+	@ApiModelProperty(value = "修改时间")
+	private Date updateTime;
+	/**
+	 * 是否已删除(0 否 1是)
+	 */
+	@ApiModelProperty(value = "是否已删除(0 否 1是)")
+	private Integer isDeleted;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remarks;
+	/**
+	 * 状态
+	 */
+	@ApiModelProperty(value = "状态")
+	private String status;
+	/**
+	 * 标签
+	 */
+	@ApiModelProperty(value = "标签")
+	private String label;
+
+
+}

+ 31 - 33
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/corps/entity/PjCorpsDesc.java

@@ -107,16 +107,6 @@ public class PjCorpsDesc implements Serializable {
 	@ApiModelProperty(value = "客户类型")
 	private String corpType;
 	/**
-	 * 信用额度
-	 */
-	@ApiModelProperty(value = "信用额度")
-	private BigDecimal creditLimit;
-	/**
-	 * 账期
-	 */
-	@ApiModelProperty(value = "账期")
-	private Integer accountPeriod;
-	/**
 	 * 业务员id
 	 */
 	@ApiModelProperty(value = "业务员id")
@@ -138,12 +128,6 @@ public class PjCorpsDesc implements Serializable {
 	private String salesCompanyName;
 
 	/**
-	 * 使用信用额度
-	 */
-	@ApiModelProperty(value = "使用信用额度")
-	private BigDecimal useCreditLimit;
-
-	/**
 	 * 首字母
 	 */
 	@ApiModelProperty(value = "首字母")
@@ -173,17 +157,6 @@ public class PjCorpsDesc implements Serializable {
 	private BigDecimal pointsBalance;
 
 	/**
-	 * 是否使用额度(0否1是)
-	 */
-	@ApiModelProperty(value = "是否使用额度")
-	private String ifLimitAmount;
-
-	/**
-	 * 额度
-	 */
-	@ApiModelProperty(value = "额度")
-	private BigDecimal limitAmount;
-	/**
 	 * 品牌
 	 */
 	@ApiModelProperty(value = "品牌")
@@ -213,17 +186,42 @@ public class PjCorpsDesc implements Serializable {
 	@ApiModelProperty(value = "维度")
 	private String dimension;
 
-
 	/**
-	 * 回收余额
+	 * 门店标签
 	 */
-	private BigDecimal recoveredBalance;
+	@ApiModelProperty(value = "门店标签")
+	private String label;
 
 	/**
-	 * 资源仓,多个仓库id
+	 * 店面属性
 	 */
-	private String resourceWarehouse;
-
+	@ApiModelProperty(value = "店面属性")
+	private String storeAttributes;
+	/**
+	 * 连锁属性
+	 */
+	@ApiModelProperty(value = "连锁属性")
+	private String chainAttribute;
+	/**
+	 * 签约级别
+	 */
+	@ApiModelProperty(value = "签约级别")
+	private String signingLevel;
+	/**
+	 * 签约条数
+	 */
+	@ApiModelProperty(value = "签约条数")
+	private BigDecimal signingNumber;
+	/**
+	 * 签约期限止
+	 */
+	@ApiModelProperty(value = "签约期限止")
+	private Date signingPeriodEnd;
 
+	/**
+	 * 签约期限起
+	 */
+	@ApiModelProperty(value = "签约期限起")
+	private Date signingPeriodStart;
 
 }

+ 36 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/corps/vo/CorpsLabelVO.java

@@ -0,0 +1,36 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package com.gubersail.dealer.admin.api.corps.vo;
+
+import com.gubersail.dealer.admin.api.corps.entity.CorpsLabel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModel;
+
+/**
+ * 标签管理表视图实体类
+ *
+ * @author BladeX
+ * @since 2025-09-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "CorpsLabelVO对象", description = "标签管理表")
+public class CorpsLabelVO extends CorpsLabel {
+	private static final long serialVersionUID = 1L;
+
+}

+ 0 - 17
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/excel/CorpsDescImportExcel.java

@@ -66,22 +66,5 @@ public class CorpsDescImportExcel implements Serializable {
 	@ExcelProperty(value = "地址")
 	private String address;
 
-	/**
-	 * 账期
-	 */
-	@ExcelProperty(value = "账期")
-	private Integer accountPeriod;
-
-	/**
-	 * 信用额度
-	 */
-	@ExcelProperty(value = "信用额度")
-	private BigDecimal creditLimit;
-
-	/**
-	 * 使用信用额度
-	 */
-	@ExcelProperty(value = "使用信用额度")
-	private BigDecimal useCreditLimit;
 
 }

+ 20 - 0
blade-service-api/gubersail-dealer-app-api/pom.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springblade</groupId>
+        <artifactId>blade-service-api</artifactId>
+        <version>2.8.2.RELEASE</version>
+    </parent>
+
+    <artifactId>gubersail-dealer-app-api</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+</project>

+ 1 - 0
blade-service-api/pom.xml

@@ -25,6 +25,7 @@
         <module>blade-u9cloud-api</module>
         <module>gubersail-dealer-admin-api</module>
         <module>blade-factory-api</module>
+        <module>gubersail-dealer-app-api</module>
     </modules>
 
     <dependencies>

+ 0 - 1
blade-service/blade-factory/src/main/java/org/springblade/factory/service/impl/ZcrmViewCustomerSelServiceImpl.java

@@ -3,7 +3,6 @@ package org.springblade.factory.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.AllArgsConstructor;
-import org.springblade.common.utils.RedisUtil;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.redis.cache.BladeRedis;
 import org.springblade.factory.entity.ViewCustomerSel;

+ 26 - 2
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/claim/service/impl/BladeClaimServiceImpl.java

@@ -26,10 +26,12 @@ import com.gubersail.admin.claim.service.IBladeClaimAuditService;
 import com.gubersail.admin.claim.service.IBladeClaimService;
 import com.gubersail.admin.util.BillCodeUtil;
 import com.gubersail.admin.wrapper.ClaimWrapper;
+import com.gubersail.admin.zcrm.customer.service.IViewCustomerSelService;
 import com.gubersail.dealer.admin.api.claim.entity.BladeClaim;
 import com.gubersail.dealer.admin.api.claim.entity.BladeClaimAttachment;
 import com.gubersail.dealer.admin.api.claim.entity.BladeClaimAudit;
 import com.gubersail.dealer.admin.api.claim.vo.BladeClaimVO;
+import com.gubersail.dealer.admin.api.zcrm.customer.entity.ViewCustomerSel;
 import lombok.AllArgsConstructor;
 import org.springblade.common.enums.NumberEnum;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -65,6 +67,8 @@ public class BladeClaimServiceImpl extends ServiceImpl<BladeClaimMapper, BladeCl
 
 	private final IUserClient userClient;
 
+	private final IViewCustomerSelService viewCustomerSelService;
+
     @Override
 	public IPage<BladeClaimVO> selectBladeClaimPage(IPage<BladeClaimVO> page, BladeClaimVO bladeClaim) {
 		return page.setRecords(baseMapper.selectBladeClaimPage(page, bladeClaim));
@@ -85,8 +89,28 @@ public class BladeClaimServiceImpl extends ServiceImpl<BladeClaimMapper, BladeCl
 			claim.setClaimNo(billNo);
 			claim.setCreateTime(new Date());
 			claim.setCreateUser(AuthUtil.getUserId());
-			if (ObjectUtils.isNull(claim.getSourceId())){
-				claim.setSourceId(0L);
+			//查询当前登录人信息
+			R<User> userR = userClient.userInfoById(AuthUtil.getUserId());
+			if (!userR.isSuccess() || ObjectUtils.isNull(userR.getData())) {
+				throw new RuntimeException("未查到当前登录人用户信息");
+			}
+			//判断当前登录人角色是否是管理员
+			if (AuthUtil.getUserRole().contains("admin")) {
+				claim.setSourceId(AuthUtil.getUserId());
+				claim.setSourceCode("");
+				claim.setSourceName(userR.getData().getRealName());
+			} else {
+				//不是管理员角色需要按照用户信息中客户id查询客户信息
+				ViewCustomerSel customerSel = viewCustomerSelService.getOne(new LambdaQueryWrapper<ViewCustomerSel>()
+					.eq(ViewCustomerSel::getIsDeleted, 0)
+					.eq(ViewCustomerSel::getCustomerId, userR.getData().getCustomerId())
+					.last("LIMIT 1"));
+				if (customerSel == null) {
+					throw new RuntimeException("未查到客户档案信息");
+				}
+				claim.setSourceId(customerSel.getCustomerId());
+				claim.setSourceCode(customerSel.getCustomerCode());
+				claim.setSourceName(customerSel.getCustomerName());
 			}
 		} else {
 			BladeClaim dataSourceClaim = baseMapper.selectOne(new LambdaQueryWrapper<BladeClaim>().select(BladeClaim::getId, BladeClaim::getVersion)

+ 84 - 5
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/complaint/controller/BladeComplaintController.java

@@ -16,6 +16,13 @@
  */
 package com.gubersail.admin.complaint.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gubersail.admin.wrapper.ClaimWrapper;
+import com.gubersail.admin.wrapper.ComplaintWrapper;
+import com.gubersail.dealer.admin.api.claim.entity.BladeClaim;
+import com.gubersail.dealer.admin.api.claim.vo.BladeClaimVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -27,6 +34,8 @@ import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.gubersail.dealer.admin.api.complaint.entity.BladeComplaint;
@@ -34,6 +43,11 @@ import com.gubersail.dealer.admin.api.complaint.vo.BladeComplaintVO;
 import com.gubersail.admin.complaint.service.IBladeComplaintService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
 /**
  * 投诉主表 控制器
  *
@@ -48,14 +62,16 @@ public class BladeComplaintController extends BladeController {
 
 	private final IBladeComplaintService bladeComplaintService;
 
+	private final IUserClient userClient;
+
 	/**
 	 * 详情
 	 */
 	@GetMapping("/detail")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入bladeComplaint")
-	public R<BladeComplaint> detail(BladeComplaint bladeComplaint) {
-		BladeComplaint detail = bladeComplaintService.getOne(Condition.getQueryWrapper(bladeComplaint));
+	public R<BladeComplaintVO> detail(BladeComplaint bladeComplaint) {
+		BladeComplaintVO detail = bladeComplaintService.detail(bladeComplaint);
 		return R.data(detail);
 	}
 
@@ -65,9 +81,56 @@ public class BladeComplaintController extends BladeController {
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入bladeComplaint")
-	public R<IPage<BladeComplaint>> list(BladeComplaint bladeComplaint, Query query) {
-		IPage<BladeComplaint> pages = bladeComplaintService.page(Condition.getPage(query), Condition.getQueryWrapper(bladeComplaint));
-		return R.data(pages);
+	public R<IPage<BladeComplaintVO>> list(BladeComplaintVO bladeComplaint, Query query) {
+		LambdaQueryWrapper<BladeComplaint> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(BladeComplaint::getIsDeleted, 0)
+			.eq(ObjectUtils.isNotNull(bladeComplaint.getComplaintType()), BladeComplaint::getComplaintType, bladeComplaint.getComplaintType())
+			.like(ObjectUtils.isNotNull(bladeComplaint.getComplaintNo()), BladeComplaint::getComplaintNo, bladeComplaint.getComplaintNo())
+			.eq(ObjectUtils.isNotNull(bladeComplaint.getComplainantType()), BladeComplaint::getComplainantType, bladeComplaint.getComplainantType())
+			.like(ObjectUtils.isNotNull(bladeComplaint.getContactName()), BladeComplaint::getContactName, bladeComplaint.getContactName())
+			.like(ObjectUtils.isNotNull(bladeComplaint.getContactPhone()), BladeComplaint::getContactPhone, bladeComplaint.getContactPhone())
+			.like(ObjectUtils.isNotNull(bladeComplaint.getCustomerName()), BladeComplaint::getCustomerName, bladeComplaint.getCustomerName())
+			.like(ObjectUtils.isNotNull(bladeComplaint.getReplyStatus()), BladeComplaint::getReplyStatus, bladeComplaint.getReplyStatus())
+			.eq(ObjectUtils.isNotNull(bladeComplaint.getStatus()), BladeComplaint::getStatus, bladeComplaint.getStatus())
+			.like(ObjectUtils.isNotNull(bladeComplaint.getTitle()), BladeComplaint::getTitle, bladeComplaint.getTitle())
+			.orderByDesc(BladeComplaint::getSubmitTime);
+		IPage<BladeComplaint> pages = bladeComplaintService.page(Condition.getPage(query), lambdaQueryWrapper);
+		IPage<BladeComplaintVO> voPage = new Page<>();
+		if (!pages.getRecords().isEmpty()) {
+			//查询数据返回实体转换
+			voPage = ComplaintWrapper.build().pageVO(pages);
+			//获取返回数据创建人,修改人id
+			List<Long> userIdList = new ArrayList<>();
+			List<Long> createUserList = pages.getRecords().stream().map(BladeComplaint::getCreateUser).filter(Objects::nonNull)
+				.distinct().collect(Collectors.toList());
+			//创建人id
+			if (!createUserList.isEmpty()){
+				userIdList.addAll(createUserList);
+			}
+			List<Long> updateUserList = pages.getRecords().stream().map(BladeComplaint::getUpdateUser).filter(Objects::nonNull)
+				.distinct().collect(Collectors.toList());
+			//修改人id
+			if (!updateUserList.isEmpty()){
+				userIdList.addAll(updateUserList);
+			}
+			if (!userIdList.isEmpty()){
+				//获取id对应用户数据
+				List<User> userList = userClient.userListGetByIds(userIdList);
+				for (BladeComplaintVO item : voPage.getRecords()) {
+					if (!userList.isEmpty()){
+						//赋值创建人名称
+						if (ObjectUtils.isNotNull(item.getCreateUser())){
+							userList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().ifPresent(user -> item.setCreateUserName(user.getRealName()));
+						}
+						//赋值修改人名称
+						if (ObjectUtils.isNotNull(item.getUpdateUser())){
+							userList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst().ifPresent(user -> item.setUpdateUserName(user.getRealName()));
+						}
+					}
+				}
+			}
+		}
+		return R.data(voPage);
 	}
 
 	/**
@@ -122,5 +185,21 @@ public class BladeComplaintController extends BladeController {
 		return R.status(bladeComplaintService.removeByIds(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 提交投诉
+	 */
+	@GetMapping("/submitComplaint")
+	public R submitComplaint(@RequestParam("id")Long id) {
+		return bladeComplaintService.submitComplaint(id);
+	}
+
+	/**
+	 * 撤销投诉
+	 */
+	@GetMapping("/revokeComplaint")
+	public R revokeComplaint(@RequestParam("id")Long id) {
+		return bladeComplaintService.revokeComplaint(id);
+	}
+
 
 }

+ 7 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/complaint/service/IBladeComplaintService.java

@@ -16,6 +16,7 @@
  */
 package com.gubersail.admin.complaint.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.gubersail.dealer.admin.api.complaint.entity.BladeComplaint;
 import com.gubersail.dealer.admin.api.complaint.vo.BladeComplaintVO;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -40,4 +41,10 @@ public interface IBladeComplaintService extends IService<BladeComplaint> {
 	IPage<BladeComplaintVO> selectBladeComplaintPage(IPage<BladeComplaintVO> page, BladeComplaintVO bladeComplaint);
 
 	R submit(BladeComplaintVO bladeComplaint);
+
+	BladeComplaintVO detail(BladeComplaint complaint);
+
+	R submitComplaint(Long id);
+
+	R revokeComplaint(Long id);
 }

+ 67 - 8
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/complaint/service/impl/BladeComplaintServiceImpl.java

@@ -17,34 +17,35 @@
 package com.gubersail.admin.complaint.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gubersail.admin.complaint.mapper.BladeComplaintMapper;
 import com.gubersail.admin.complaint.service.IBladeComplaintAttachmentService;
 import com.gubersail.admin.complaint.service.IBladeComplaintReplyService;
+import com.gubersail.admin.complaint.service.IBladeComplaintService;
 import com.gubersail.admin.util.BillCodeUtil;
-import com.gubersail.dealer.admin.api.claim.entity.BladeClaim;
-import com.gubersail.dealer.admin.api.claim.entity.BladeClaimAttachment;
-import com.gubersail.dealer.admin.api.claim.entity.BladeClaimAudit;
+import com.gubersail.admin.wrapper.ComplaintWrapper;
 import com.gubersail.dealer.admin.api.complaint.entity.BladeComplaint;
 import com.gubersail.dealer.admin.api.complaint.entity.BladeComplaintAttachment;
 import com.gubersail.dealer.admin.api.complaint.entity.BladeComplaintReply;
 import com.gubersail.dealer.admin.api.complaint.vo.BladeComplaintVO;
-import com.gubersail.admin.complaint.mapper.BladeComplaintMapper;
-import com.gubersail.admin.complaint.service.IBladeComplaintService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.common.enums.NumberEnum;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
+import java.util.ArrayList;
 import java.util.Date;
-import java.util.Objects;
+import java.util.List;
 
 /**
  * 投诉主表 服务实现类
@@ -60,6 +61,8 @@ public class BladeComplaintServiceImpl extends ServiceImpl<BladeComplaintMapper,
 
 	private final IBladeComplaintReplyService bladeComplaintReplyService;
 
+	private final IUserClient userClient;
+
 	@Override
 	public IPage<BladeComplaintVO> selectBladeComplaintPage(IPage<BladeComplaintVO> page, BladeComplaintVO bladeComplaint) {
 		return page.setRecords(baseMapper.selectBladeComplaintPage(page, bladeComplaint));
@@ -124,4 +127,60 @@ public class BladeComplaintServiceImpl extends ServiceImpl<BladeComplaintMapper,
 		return R.data(complaint);
 	}
 
+	@Override
+	public BladeComplaintVO detail(BladeComplaint complaint) {
+		//通过id查询理赔数据
+		BladeComplaint bladeComplaint = this.getById(complaint.getId());
+		//数据实体类转换
+		BladeComplaintVO bladeComplaintVO = ComplaintWrapper.build().entityVO(bladeComplaint);
+		R<User> createUserR = userClient.userInfoById(bladeComplaint.getCreateUser());
+		if (createUserR.isSuccess() && ObjectUtils.isNotNull(createUserR.getData())) {
+			bladeComplaintVO.setCreateUserName(createUserR.getData().getRealName());
+		}
+		R<User> updateUserR = userClient.userInfoById(bladeComplaint.getUpdateUser());
+		if (updateUserR.isSuccess() && ObjectUtils.isNotNull(updateUserR.getData())) {
+			bladeComplaintVO.setUpdateUserName(updateUserR.getData().getRealName());
+		}
+		//查询投诉附件数据
+		List<BladeComplaintAttachment> complaintAttachmentList = bladeComplaintAttachmentService.list(new LambdaQueryWrapper<BladeComplaintAttachment>()
+			.eq(BladeComplaintAttachment::getComplaintId, bladeComplaint.getId())
+			.eq(BladeComplaintAttachment::getIsDeleted, 0));
+		bladeComplaintVO.setComplaintAttachmentList(complaintAttachmentList.isEmpty() ? new ArrayList<>() : complaintAttachmentList);
+		//查询投诉回复记录数据
+		List<BladeComplaintReply> complaintReplyList = bladeComplaintReplyService.list(new LambdaQueryWrapper<BladeComplaintReply>()
+			.eq(BladeComplaintReply::getComplaintId, bladeComplaint.getId())
+			.eq(BladeComplaintReply::getIsDeleted, 0)
+			.orderByDesc(BladeComplaintReply::getCreateTime));
+		bladeComplaintVO.setComplaintReplyList(complaintReplyList.isEmpty() ? new ArrayList<>() : complaintReplyList);
+		return bladeComplaintVO;
+	}
+
+	@Override
+	public R submitComplaint(Long id) {
+		//通过id查询理赔数据
+		BladeComplaint complaint = this.getById(id);
+		if (complaint.getStatus() > 0 && complaint.getStatus() < 4) {
+			throw new RuntimeException("已提交,请勿重复提交");
+		}
+		complaint.setStatus(1);
+		complaint.setUpdateTime(new Date());
+		complaint.setUpdateUser(AuthUtil.getUserId());
+		this.updateById(complaint);
+		return R.success("操作成功");
+	}
+
+	@Override
+	public R revokeComplaint(Long id) {
+		//通过id查询理赔数据
+		BladeComplaint complaint = this.getById(id);
+		if (complaint.getStatus() != 1) {
+			throw new RuntimeException("未提交投诉,撤销失败");
+		}
+		complaint.setStatus(4);
+		complaint.setUpdateTime(new Date());
+		complaint.setUpdateUser(AuthUtil.getUserId());
+		this.updateById(complaint);
+		return R.success("操作成功");
+	}
+
 }

+ 0 - 5
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/controller/CorpsDescController.java

@@ -83,10 +83,8 @@ public class CorpsDescController extends BladeController {
 		IPage<CorpsDescVO> pages = corpsDescService.selectCorpsDescPage(Condition.getPage(query), corpsDesc);
 
 		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
-			List<Long> ids = new ArrayList<>();
 			List<Long> corpsIds = new ArrayList<>();
 			for (CorpsDescVO item : pages.getRecords()) {
-				ids.add(item.getDeliveryWarehouseId());
 				corpsIds.add(item.getId());
 			}
 			List<PjCorpsTypeDesc> pjCorpsTypeDescList = corpsTypeDescService.list(new LambdaQueryWrapper<PjCorpsTypeDesc>()
@@ -216,9 +214,6 @@ public class CorpsDescController extends BladeController {
 			if (Objects.isNull(corpsDescVO.getSalesmanId())) {
 				return R.fail("请为客户维护业务员");
 			}
-			if (Objects.isNull(corpsDescVO.getDeliveryWarehouseId())) {
-				return R.fail("请为客户维护发货仓库");
-			}
 		}
 		return corpsDescService.submit(corpsDescVO);
 	}

+ 126 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/controller/CorpsLabelController.java

@@ -0,0 +1,126 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package com.gubersail.admin.corp.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import javax.validation.Valid;
+
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gubersail.dealer.admin.api.corps.entity.CorpsLabel;
+import com.gubersail.dealer.admin.api.corps.vo.CorpsLabelVO;
+import com.gubersail.admin.corp.service.ICorpsLabelService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+/**
+ * 标签管理表 控制器
+ *
+ * @author BladeX
+ * @since 2025-09-17
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/corpslabel")
+@Api(value = "标签管理表", tags = "标签管理表接口")
+public class CorpsLabelController extends BladeController {
+
+	private final ICorpsLabelService corpsLabelService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入corpsLabel")
+	public R<CorpsLabel> detail(CorpsLabel corpsLabel) {
+		CorpsLabel detail = corpsLabelService.getOne(Condition.getQueryWrapper(corpsLabel));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 标签管理表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入corpsLabel")
+	public R<IPage<CorpsLabel>> list(CorpsLabel corpsLabel, Query query) {
+		IPage<CorpsLabel> pages = corpsLabelService.page(Condition.getPage(query), Condition.getQueryWrapper(corpsLabel));
+		return R.data(pages);
+	}
+
+	/**
+	 * 自定义分页 标签管理表
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入corpsLabel")
+	public R<IPage<CorpsLabelVO>> page(CorpsLabelVO corpsLabel, Query query) {
+		IPage<CorpsLabelVO> pages = corpsLabelService.selectCorpsLabelPage(Condition.getPage(query), corpsLabel);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 标签管理表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入corpsLabel")
+	public R save(@Valid @RequestBody CorpsLabel corpsLabel) {
+		return R.status(corpsLabelService.save(corpsLabel));
+	}
+
+	/**
+	 * 修改 标签管理表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入corpsLabel")
+	public R update(@Valid @RequestBody CorpsLabel corpsLabel) {
+		return R.status(corpsLabelService.updateById(corpsLabel));
+	}
+
+	/**
+	 * 新增或修改 标签管理表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入corpsLabel")
+	public R submit(@Valid @RequestBody CorpsLabel corpsLabel) {
+		return R.status(corpsLabelService.saveOrUpdate(corpsLabel));
+	}
+
+
+	/**
+	 * 删除 标签管理表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(corpsLabelService.removeByIds(Func.toLongList(ids)));
+	}
+
+
+}

+ 42 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/mapper/CorpsLabelMapper.java

@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package com.gubersail.admin.corp.mapper;
+
+import com.gubersail.dealer.admin.api.corps.entity.CorpsLabel;
+import com.gubersail.dealer.admin.api.corps.vo.CorpsLabelVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ * 标签管理表 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2025-09-17
+ */
+public interface CorpsLabelMapper extends BaseMapper<CorpsLabel> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param corpsLabel
+	 * @return
+	 */
+	List<CorpsLabelVO> selectCorpsLabelPage(IPage page, CorpsLabelVO corpsLabel);
+
+}

+ 23 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/mapper/CorpsLabelMapper.xml

@@ -0,0 +1,23 @@
+<?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.gubersail.admin.corp.mapper.CorpsLabelMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="corpsLabelResultMap" type="com.gubersail.dealer.admin.api.corps.entity.CorpsLabel">
+        <id column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="remarks" property="remarks"/>
+        <result column="status" property="status"/>
+        <result column="label" property="label"/>
+    </resultMap>
+
+
+    <select id="selectCorpsLabelPage" resultMap="corpsLabelResultMap">
+        select * from pjpf_corps_label where is_deleted = 0
+    </select>
+
+</mapper>

+ 41 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/service/ICorpsLabelService.java

@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package com.gubersail.admin.corp.service;
+
+import com.gubersail.dealer.admin.api.corps.entity.CorpsLabel;
+import com.gubersail.dealer.admin.api.corps.vo.CorpsLabelVO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 标签管理表 服务类
+ *
+ * @author BladeX
+ * @since 2025-09-17
+ */
+public interface ICorpsLabelService extends IService<CorpsLabel> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param corpsLabel
+	 * @return
+	 */
+	IPage<CorpsLabelVO> selectCorpsLabelPage(IPage<CorpsLabelVO> page, CorpsLabelVO corpsLabel);
+
+}

+ 0 - 60
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/service/impl/CorpsDescServiceImpl.java

@@ -77,9 +77,6 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 			corpsDescVO.setCorpsAddrList(corpsAddrService.list(new QueryWrapper<PjCorpsAddr>().eq("pid", corpsDesc.getId()).eq("is_deleted", 0)));
 			//获取客户附件
 			corpsDescVO.setCorpsFilesList(corpsFilesService.list(new QueryWrapper<PjCorpsFiles>().eq("pid", corpsDesc.getId()).eq("is_deleted", 0)));
-			if (org.springframework.util.StringUtils.hasText(desc.getResourceWarehouse())) {
-				corpsDescVO.setResourceWarehouseList(JSONArray.parseArray(desc.getResourceWarehouse(), Long.class));
-			}
 			//获取客户类别
 			List<String> longs = corpsTypeDescService.selectTypeId(corpsDesc.getId());
 			corpsDescVO.setCorpsTypeId(String.join(",", longs));
@@ -176,9 +173,6 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 			.eq(PjCorpsDesc::getSalesCompanyId, AuthUtil.getTenantId())
 			.eq(PjCorpsDesc::getCname, corpsDesc.getCname()));
 		//保存客户信息
-		if (!org.springframework.util.CollectionUtils.isEmpty(corpsDescVO.getResourceWarehouseList())) {
-			corpsDesc.setResourceWarehouse(JSONArray.toJSONString(corpsDescVO.getResourceWarehouseList()));
-		}
 		if (corpsDesc.getId() == null) {
 			if (!pjCorpsDesc.isEmpty()) {
 				throw new RuntimeException("客户" + corpsDesc.getCname() + "已存在,请勿重复添加!");
@@ -199,51 +193,6 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 			corpsDesc.setUpdateTime(date);
 			corpsDesc.setCreateDept(Long.valueOf(SecureUtil.getDeptId()));
 			corpsDesc.setUpdateUser(AuthUtil.getUserId());
-
-			/*List<PjOrder> orderList = orderMapper.selectList(new LambdaQueryWrapper<PjOrder>()
-				.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
-				.eq(PjOrder::getIsDeleted, 0)
-				.eq(PjOrder::getCustomerId, corpsDesc.getId()));
-			if (!orderList.isEmpty()) {
-				List<PjOrder> orders = orderList.stream().filter(item -> !corpsDesc.getCname().equals(item.getCustomerName()))
-					.collect(Collectors.toList());
-				for (PjOrder item : orders) {
-					item.setCustomerName(corpsDesc.getCname());
-					item.setUpdateTime(new Date());
-					item.setUpdateUser(AuthUtil.getUserId());
-					item.setUpdateUserName(AuthUtil.getUserName());
-					orderMapper.updateById(item);
-				}
-			}
-			List<PjShip> shipList = shipMapper.selectList(new LambdaQueryWrapper<PjShip>()
-				.eq(PjShip::getTenantId, AuthUtil.getTenantId())
-				.eq(PjShip::getIsDeleted, 0)
-				.eq(PjShip::getCustomerId, corpsDesc.getId()));
-			if (!shipList.isEmpty()) {
-				List<PjShip> ships = shipList.stream().filter(item -> !corpsDesc.getCname().equals(item.getCustomerName()))
-					.collect(Collectors.toList());
-				for (PjShip item : ships) {
-					item.setCustomerName(corpsDesc.getCname());
-					item.setUpdateTime(new Date());
-					item.setUpdateUser(AuthUtil.getUserId());
-					item.setUpdateUserName(AuthUtil.getUserName());
-					shipMapper.updateById(item);
-				}
-			}
-			List<PjSettlement> settlementList = settlementMapper.selectList(new LambdaQueryWrapper<PjSettlement>()
-				.eq(PjSettlement::getTenantId, AuthUtil.getTenantId())
-				.eq(PjSettlement::getIsDeleted, 0)
-				.eq(PjSettlement::getCorpId, corpsDesc.getId()));
-			if (!settlementList.isEmpty()) {
-				List<PjSettlement> settlements = settlementList.stream().filter(item -> !corpsDesc.getCname().equals(item.getCorpName()))
-					.collect(Collectors.toList());
-				for (PjSettlement item : settlements) {
-					item.setCorpName(corpsDesc.getCname());
-					item.setUpdateTime(new Date());
-					item.setUpdateUser(AuthUtil.getUserId());
-					settlementMapper.updateById(item);
-				}
-			}*/
 		}
 		this.saveOrUpdate(corpsDesc);
 		Long pId = corpsDesc.getId();
@@ -342,7 +291,6 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 			corpsDesc.setTel(e.getTel());
 			corpsDesc.setTenantId(AuthUtil.getTenantId());
 			corpsDesc.setPriceSystem(e.getPriceSystem());
-			corpsDesc.setAccountPeriod(e.getAccountPeriod());
 			//获得业务员
 			if (StringUtils.isNotBlank(e.getSalesmanName())) {
 				User user1 = user.stream().filter(item -> item.getRealName().equals(e.getSalesmanName())).findFirst().orElse(null);
@@ -354,8 +302,6 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 			}
 			corpsDesc.setSalesCompanyId(salesCompanyId);
 			corpsDesc.setSalesCompanyName(salesCompanyName);
-			corpsDesc.setCreditLimit(e.getCreditLimit());
-			corpsDesc.setUseCreditLimit(e.getUseCreditLimit());
 			corpsDesc.setCorpType("KH");
 			if (ObjectUtils.isNotNull(e.getBrandName())) {
 				List<String> list = Arrays.asList(e.getBrandName().split(","));
@@ -908,17 +854,11 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 			return;
 		}
 		List<String> list = Arrays.asList(corpsDesc.getCorpsTypeId().split(","));
-		if (!list.isEmpty()) {
-			return;
-		}
 		corpsTypeDescService.remove(new QueryWrapper<PjCorpsTypeDesc>().eq("corp_id", corpsDesc.getId()));
 		List<PjCorpsTypeDesc> typeDescList = corpsTypeDescService.list(new QueryWrapper<PjCorpsTypeDesc>().eq("corp_id", pId)
 			.in("corp_type_id", list));
 		List<PjCorpsTypeDesc> typeDescListNew = new ArrayList<>();
 		list.forEach(item -> {
-			if (typeDescList.isEmpty()) {
-				return;
-			}
 			PjCorpsTypeDesc typeDesc = typeDescList.stream().filter(e -> item.equals(e.getCorpTypeId() + "")).findFirst().orElse(null);
 			if (typeDesc != null) {
 				typeDesc.setCorpTypeId(Long.valueOf(item));

+ 41 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/corp/service/impl/CorpsLabelServiceImpl.java

@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package com.gubersail.admin.corp.service.impl;
+
+import com.gubersail.dealer.admin.api.corps.entity.CorpsLabel;
+import com.gubersail.dealer.admin.api.corps.vo.CorpsLabelVO;
+import com.gubersail.admin.corp.mapper.CorpsLabelMapper;
+import com.gubersail.admin.corp.service.ICorpsLabelService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 标签管理表 服务实现类
+ *
+ * @author BladeX
+ * @since 2025-09-17
+ */
+@Service
+public class CorpsLabelServiceImpl extends ServiceImpl<CorpsLabelMapper, CorpsLabel> implements ICorpsLabelService {
+
+	@Override
+	public IPage<CorpsLabelVO> selectCorpsLabelPage(IPage<CorpsLabelVO> page, CorpsLabelVO corpsLabel) {
+		return page.setRecords(baseMapper.selectCorpsLabelPage(page, corpsLabel));
+	}
+
+}

+ 1 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/lead/controller/BladeSalesLeadController.java

@@ -85,6 +85,7 @@ public class BladeSalesLeadController extends BladeController {
 			.eq(ObjectUtils.isNotNull(bladeSalesLead.getGroupName()), BladeSalesLead::getGroupName, bladeSalesLead.getGroupName())
 			.eq(ObjectUtils.isNotNull(bladeSalesLead.getCustomerId()), BladeSalesLead::getCustomerId, bladeSalesLead.getCustomerId())
 			.like(ObjectUtils.isNotNull(bladeSalesLead.getContactName()), BladeSalesLead::getContactName, bladeSalesLead.getContactName())
+			.like(ObjectUtils.isNotNull(bladeSalesLead.getCustomerName()), BladeSalesLead::getCustomerName, bladeSalesLead.getCustomerName())
 			.like(ObjectUtils.isNotNull(bladeSalesLead.getContactPhone()), BladeSalesLead::getContactPhone, bladeSalesLead.getContactPhone())
 			.eq(ObjectUtils.isNotNull(bladeSalesLead.getPriority()), BladeSalesLead::getPriority, bladeSalesLead.getPriority())
 			.eq(ObjectUtils.isNotNull(bladeSalesLead.getSource()), BladeSalesLead::getSource, bladeSalesLead.getSource())

+ 2 - 2
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/lead/service/impl/BladeSalesLeadServiceImpl.java

@@ -127,8 +127,8 @@ public class BladeSalesLeadServiceImpl extends ServiceImpl<BladeSalesLeadMapper,
 				if (customerSel == null) {
 					throw new RuntimeException("未查到客户档案信息");
 				}
-				salesLead.setContactName(customerSel.getDescflexfieldPrivatedescseg1());
-				salesLead.setContactPhone(customerSel.getDescflexfieldPrivatedescseg2());
+				salesLead.setContactName(customerSel.getDescflexfieldPrivatedescseg1() == null?"":customerSel.getDescflexfieldPrivatedescseg1());
+				salesLead.setContactPhone(customerSel.getDescflexfieldPrivatedescseg2() == null?"":customerSel.getDescflexfieldPrivatedescseg2());
 				salesLead.setCustomerId(customerSel.getCustomerId());
 				salesLead.setCustomerCode(customerSel.getCustomerCode());
 				salesLead.setCustomerName(customerSel.getCustomerName());

+ 51 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/ComplaintWrapper.java

@@ -0,0 +1,51 @@
+package com.gubersail.admin.wrapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gubersail.dealer.admin.api.claim.entity.BladeClaim;
+import com.gubersail.dealer.admin.api.claim.vo.BladeClaimVO;
+import com.gubersail.dealer.admin.api.complaint.entity.BladeComplaint;
+import com.gubersail.dealer.admin.api.complaint.vo.BladeComplaintVO;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springframework.beans.BeanUtils;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author :jixinyuan
+ * @date : 2025/9/10
+ */
+public class ComplaintWrapper extends BaseEntityWrapper<BladeComplaint, BladeComplaintVO> {
+
+	public static ComplaintWrapper build() {
+		return new ComplaintWrapper();
+	}
+
+	@Override
+	public BladeComplaintVO entityVO(BladeComplaint entity) {
+		if (Objects.isNull(entity)) {
+			return null;
+		}
+		BladeComplaintVO complaintVO = new BladeComplaintVO();
+		BeanUtils.copyProperties(entity, complaintVO);
+		return complaintVO;
+	}
+
+	public IPage<BladeComplaintVO> pageVO(IPage<BladeComplaint> page) {
+		if (Objects.isNull(page)) {
+			return null;
+		}
+		IPage<BladeComplaintVO> voPage = new Page<>();
+		List<BladeComplaintVO> voList = BeanUtil.copy(page.getRecords(),BladeComplaintVO.class);
+		voPage.setRecords(voList);
+		voPage.setPages(page.getPages());
+		voPage.setCurrent(page.getCurrent());
+		voPage.setTotal(page.getTotal());
+		voPage.setTotal(page.getTotal());
+		voPage.setSize(page.getSize());
+		return voPage;
+	}
+
+}