瀏覽代碼

1.经销商pc-形象店申请相关接口调试及修改
2.经销商pc-形象店申请增加提交审批接口
3.经销商pc-形象店申请增加撤销提交审批接口
4.门店app-商品列表,详情接口逻辑去掉其他仓库库存
5.门店app-商品添加购物车增加库区字段
6.经销商PC-首页公告列表接口,详情接口
7.禅道bug-3331-待出库/已出库订单的历史记录,最后的操作记录排最上面

纪新园 2 周之前
父節點
當前提交
79b287482d
共有 25 個文件被更改,包括 719 次插入212 次删除
  1. 5 4
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/imageStore/entity/BladeImageStoreApply.java
  2. 65 65
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/imageStore/entity/BladeImageStoreApplyAttachment.java
  3. 19 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/imageStore/vo/BladeImageStoreApplyVO.java
  4. 9 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/survey/vo/BladeSurveyOptionVO.java
  5. 8 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/survey/vo/BladeSurveyQuestionVO.java
  6. 9 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/survey/vo/BladeSurveyResultVO.java
  7. 27 0
      blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/survey/vo/BladeSurveyVO.java
  8. 12 0
      blade-service-api/gubersail-shop-app-api/src/main/java/com/gubersail/shop/app/api/shoppingCart/entity/ShopAppShoppingCart.java
  9. 0 2
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/imageStore/controller/BladeImageStoreApplyAttachmentController.java
  10. 47 52
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/imageStore/controller/BladeImageStoreApplyController.java
  11. 12 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/imageStore/service/IBladeImageStoreApplyService.java
  12. 178 4
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/imageStore/service/impl/BladeImageStoreApplyServiceImpl.java
  13. 15 72
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/notice/controller/BladeNoticeController.java
  14. 2 1
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/ship/service/impl/ShipServiceImpl.java
  15. 2 2
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/storage/controller/WarehouseController.java
  16. 2 2
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/survey/controller/BladeSurveyController.java
  17. 1 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/survey/service/IBladeSurveyService.java
  18. 39 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/survey/service/impl/BladeSurveyServiceImpl.java
  19. 51 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/ImageStoreApplyWrapper.java
  20. 51 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/SurveyOptionWrapper.java
  21. 51 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/SurveyQuestionWrapper.java
  22. 51 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/SurveyResultWrapper.java
  23. 51 0
      blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/SurveyWrapper.java
  24. 4 0
      blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/shoppingCart/service/impl/ShopAppShoppingCartServiceImpl.java
  25. 8 8
      blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/stock/service/impl/ShopAppTireStockDescServiceImpl.java

+ 5 - 4
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/imageStore/entity/BladeImageStoreApply.java

@@ -27,6 +27,7 @@ import lombok.Data;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * 形象店申请主表实体类
@@ -147,12 +148,12 @@ public class BladeImageStoreApply implements Serializable {
 	 * 审核时间
 	 */
 	@ApiModelProperty(value = "审核时间")
-	private LocalDateTime auditTime;
+	private Date auditTime;
 	/**
 	 * 提交时间
 	 */
 	@ApiModelProperty(value = "提交时间")
-	private LocalDateTime submitTime;
+	private Date submitTime;
 	/**
 	 * 备注
 	 */
@@ -172,7 +173,7 @@ public class BladeImageStoreApply implements Serializable {
 	 * 创建时间
 	 */
 	@ApiModelProperty(value = "创建时间")
-	private LocalDateTime createTime;
+	private Date createTime;
 	/**
 	 * 更新人
 	 */
@@ -182,7 +183,7 @@ public class BladeImageStoreApply implements Serializable {
 	 * 更新时间
 	 */
 	@ApiModelProperty(value = "更新时间")
-	private LocalDateTime updateTime;
+	private Date updateTime;
 	/**
 	 * 状态 1正常
 	 */

+ 65 - 65
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/imageStore/entity/BladeImageStoreApplyAttachment.java

@@ -16,15 +16,15 @@
  */
 package com.gubersail.dealer.admin.api.imageStore.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
-import java.io.Serializable;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
+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;
 
 /**
  * 形象店申请附件表实体类
@@ -40,81 +40,81 @@ public class BladeImageStoreApplyAttachment 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;
 	/**
-	* 申请单ID(逻辑外键 pc_blade_image_store_apply.id)
-	*/
-		@ApiModelProperty(value = "申请单ID(逻辑外键 pc_blade_image_store_apply.id)")
-		private Long applyId;
+	 * 申请单ID(逻辑外键 pc_blade_image_store_apply.id)
+	 */
+	@ApiModelProperty(value = "申请单ID(逻辑外键 pc_blade_image_store_apply.id)")
+	private Long applyId;
 	/**
-	* 原始文件名
-	*/
-		@ApiModelProperty(value = "原始文件名")
-		private String fileName;
+	 * 原始文件名
+	 */
+	@ApiModelProperty(value = "原始文件名")
+	private String fileName;
 	/**
-	* 文件访问URL
-	*/
-		@ApiModelProperty(value = "文件访问URL")
-		private String fileUrl;
+	 * 文件访问URL
+	 */
+	@ApiModelProperty(value = "文件访问URL")
+	private String fileUrl;
 	/**
-	* 文件类型 jpg/png/pdf/zip
-	*/
-		@ApiModelProperty(value = "文件类型 jpg/png/pdf/zip")
-		private String fileType;
+	 * 文件类型 jpg/png/pdf/zip
+	 */
+	@ApiModelProperty(value = "文件类型 jpg/png/pdf/zip")
+	private String fileType;
 	/**
-	* 文件大小(字节)
-	*/
-		@ApiModelProperty(value = "文件大小(字节)")
-		private Long fileSize;
+	 * 文件大小(字节)
+	 */
+	@ApiModelProperty(value = "文件大小(字节)")
+	private Long fileSize;
 	/**
-	* 附件类型 费用凭证/门店照片/合同/资质证书
-	*/
-		@ApiModelProperty(value = "附件类型 费用凭证/门店照片/合同/资质证书")
-		private String attachType;
+	 * 附件类型 费用凭证/门店照片/合同/资质证书
+	 */
+	@ApiModelProperty(value = "附件类型 费用凭证/门店照片/合同/资质证书")
+	private String attachType;
 	/**
-	* 备注
-	*/
-		@ApiModelProperty(value = "备注")
-		private String remark;
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
 	/**
-	* 创建人
-	*/
-		@ApiModelProperty(value = "创建人")
-		private Long createUser;
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private Long createUser;
 	/**
-	* 创建部门
-	*/
-		@ApiModelProperty(value = "创建部门")
-		private Long createDept;
+	 * 创建部门
+	 */
+	@ApiModelProperty(value = "创建部门")
+	private Long createDept;
 	/**
-	* 创建时间
-	*/
-		@ApiModelProperty(value = "创建时间")
-		private LocalDateTime createTime;
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
 	/**
-	* 更新人
-	*/
-		@ApiModelProperty(value = "更新人")
-		private Long updateUser;
+	 * 更新人
+	 */
+	@ApiModelProperty(value = "更新人")
+	private Long updateUser;
 	/**
-	* 更新时间
-	*/
-		@ApiModelProperty(value = "更新时间")
-		private LocalDateTime updateTime;
+	 * 更新时间
+	 */
+	@ApiModelProperty(value = "更新时间")
+	private Date updateTime;
 	/**
-	* 状态 1正常
-	*/
-		@ApiModelProperty(value = "状态 1正常")
-		private Integer status;
+	 * 状态 1正常
+	 */
+	@ApiModelProperty(value = "状态 1正常")
+	private Integer status;
 	/**
-	* 是否已删除
-	*/
-		@ApiModelProperty(value = "是否已删除")
-		private Integer isDeleted;
+	 * 是否已删除
+	 */
+	@ApiModelProperty(value = "是否已删除")
+	private Integer isDeleted;
 
 
 }

+ 19 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/imageStore/vo/BladeImageStoreApplyVO.java

@@ -16,11 +16,15 @@
  */
 package com.gubersail.dealer.admin.api.imageStore.vo;
 
+import com.gubersail.dealer.admin.api.claim.vo.BladeClaimAuditVO;
 import com.gubersail.dealer.admin.api.imageStore.entity.BladeImageStoreApply;
+import com.gubersail.dealer.admin.api.imageStore.entity.BladeImageStoreApplyAttachment;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 
+import java.util.List;
+
 /**
  * 形象店申请主表视图实体类
  *
@@ -33,4 +37,19 @@ import io.swagger.annotations.ApiModel;
 public class BladeImageStoreApplyVO extends BladeImageStoreApply {
 	private static final long serialVersionUID = 1L;
 
+
+	/**
+	 * 创建人名称
+	 */
+	private String createUserName;
+	/**
+	 * 更新人名称
+	 */
+	private String updateUserName;
+
+	/**
+	 * 形象店申请附件表
+	 */
+	private List<BladeImageStoreApplyAttachment> imageStoreApplyAttachmentList;
+
 }

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

@@ -33,4 +33,13 @@ import io.swagger.annotations.ApiModel;
 public class BladeSurveyOptionVO extends BladeSurveyOption {
 	private static final long serialVersionUID = 1L;
 
+	/**
+	 * 创建人名称
+	 */
+	private String createUserName;
+	/**
+	 * 更新人名称
+	 */
+	private String updateUserName;
+
 }

+ 8 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/survey/vo/BladeSurveyQuestionVO.java

@@ -33,4 +33,12 @@ import io.swagger.annotations.ApiModel;
 public class BladeSurveyQuestionVO extends BladeSurveyQuestion {
 	private static final long serialVersionUID = 1L;
 
+	/**
+	 * 创建人名称
+	 */
+	private String createUserName;
+	/**
+	 * 更新人名称
+	 */
+	private String updateUserName;
 }

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

@@ -33,4 +33,13 @@ import io.swagger.annotations.ApiModel;
 public class BladeSurveyResultVO extends BladeSurveyResult {
 	private static final long serialVersionUID = 1L;
 
+
+	/**
+	 * 创建人名称
+	 */
+	private String createUserName;
+	/**
+	 * 更新人名称
+	 */
+	private String updateUserName;
 }

+ 27 - 0
blade-service-api/gubersail-dealer-admin-api/src/main/java/com/gubersail/dealer/admin/api/survey/vo/BladeSurveyVO.java

@@ -16,11 +16,14 @@
  */
 package com.gubersail.dealer.admin.api.survey.vo;
 
+import com.gubersail.dealer.admin.api.imageStore.entity.BladeImageStoreApplyAttachment;
 import com.gubersail.dealer.admin.api.survey.entity.BladeSurvey;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 
+import java.util.List;
+
 /**
  * 调查问卷主表视图实体类
  *
@@ -33,4 +36,28 @@ import io.swagger.annotations.ApiModel;
 public class BladeSurveyVO extends BladeSurvey {
 	private static final long serialVersionUID = 1L;
 
+	/**
+	 * 创建人名称
+	 */
+	private String createUserName;
+	/**
+	 * 更新人名称
+	 */
+	private String updateUserName;
+
+	/**
+	 * 问卷选项表
+	 */
+	private List<BladeSurveyOptionVO> surveyOptionVOList;
+
+	/**
+	 * 问卷题目表
+	 */
+	private List<BladeSurveyQuestionVO> surveyQuestionVOList;
+
+	/**
+	 * 问卷填写结果
+	 */
+	private List<BladeSurveyResultVO> surveyResultVOList;
+
 }

+ 12 - 0
blade-service-api/gubersail-shop-app-api/src/main/java/com/gubersail/shop/app/api/shoppingCart/entity/ShopAppShoppingCart.java

@@ -251,4 +251,16 @@ public class ShopAppShoppingCart implements Serializable {
 	@ApiModelProperty(value = "是否是积分商品")
 	private String whetherIntegral;
 
+	/**
+	 * 库区id
+	 */
+	@ApiModelProperty(value = "库区id")
+	private Long reservoirAreaId;
+	/**
+	 * 库区
+	 */
+	@ApiModelProperty(value = "库区")
+	private String reservoirArea;
+
+
 }

+ 0 - 2
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/imageStore/controller/BladeImageStoreApplyAttachmentController.java

@@ -116,8 +116,6 @@ public class BladeImageStoreApplyAttachmentController extends BladeController {
 	 * 删除 形象店申请附件表
 	 */
 	@PostMapping("/remove")
-	@ApiOperationSupport(order = 8)
-	@ApiOperation(value = "删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		return R.status(bladeImageStoreApplyAttachmentService.removeByIds(Func.toLongList(ids)));
 	}

+ 47 - 52
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/imageStore/controller/BladeImageStoreApplyController.java

@@ -16,23 +16,24 @@
  */
 package com.gubersail.admin.imageStore.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.gubersail.admin.imageStore.service.IBladeImageStoreApplyService;
+import com.gubersail.dealer.admin.api.imageStore.entity.BladeImageStoreApply;
+import com.gubersail.dealer.admin.api.imageStore.vo.BladeImageStoreApplyVO;
 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.common.annotation.RepeatSubmit;
+import org.springblade.core.boot.ctrl.BladeController;
 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.imageStore.entity.BladeImageStoreApply;
-import com.gubersail.dealer.admin.api.imageStore.vo.BladeImageStoreApplyVO;
-import com.gubersail.admin.imageStore.service.IBladeImageStoreApplyService;
-import org.springblade.core.boot.ctrl.BladeController;
+
+import javax.validation.Valid;
 
 /**
  * 形象店申请主表 控制器
@@ -52,10 +53,8 @@ public class BladeImageStoreApplyController extends BladeController {
 	 * 详情
 	 */
 	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情", notes = "传入bladeImageStoreApply")
-	public R<BladeImageStoreApply> detail(BladeImageStoreApply bladeImageStoreApply) {
-		BladeImageStoreApply detail = bladeImageStoreApplyService.getOne(Condition.getQueryWrapper(bladeImageStoreApply));
+	public R<BladeImageStoreApplyVO> detail(BladeImageStoreApply bladeImageStoreApply) {
+		BladeImageStoreApplyVO detail = bladeImageStoreApplyService.detail(bladeImageStoreApply);
 		return R.data(detail);
 	}
 
@@ -63,63 +62,59 @@ public class BladeImageStoreApplyController extends BladeController {
 	 * 分页 形象店申请主表
 	 */
 	@GetMapping("/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页", notes = "传入bladeImageStoreApply")
-	public R<IPage<BladeImageStoreApply>> list(BladeImageStoreApply bladeImageStoreApply, Query query) {
-		IPage<BladeImageStoreApply> pages = bladeImageStoreApplyService.page(Condition.getPage(query), Condition.getQueryWrapper(bladeImageStoreApply));
+	public R<IPage<BladeImageStoreApply>> list(BladeImageStoreApplyVO bladeImageStoreApply, Query query) {
+		LambdaQueryWrapper<BladeImageStoreApply> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(BladeImageStoreApply::getIsDeleted, 0)
+			.like(ObjectUtils.isNotNull(bladeImageStoreApply.getApplyNo()), BladeImageStoreApply::getApplyNo, bladeImageStoreApply.getApplyNo())
+			.eq(ObjectUtils.isNotNull(bladeImageStoreApply.getApplicantType()), BladeImageStoreApply::getApplicantType, bladeImageStoreApply.getApplicantType())
+			.eq(ObjectUtils.isNotNull(bladeImageStoreApply.getCustomerId()), BladeImageStoreApply::getCustomerId, bladeImageStoreApply.getCustomerId())
+			.like(ObjectUtils.isNotNull(bladeImageStoreApply.getCustomerCode()), BladeImageStoreApply::getCustomerCode, bladeImageStoreApply.getCustomerCode())
+			.like(ObjectUtils.isNotNull(bladeImageStoreApply.getCustomerName()), BladeImageStoreApply::getCustomerName, bladeImageStoreApply.getCustomerName())
+			.like(ObjectUtils.isNotNull(bladeImageStoreApply.getContactName()), BladeImageStoreApply::getContactName, bladeImageStoreApply.getContactName())
+			.like(ObjectUtils.isNotNull(bladeImageStoreApply.getContactPhone()), BladeImageStoreApply::getContactPhone, bladeImageStoreApply.getContactPhone())
+			.eq(ObjectUtils.isNotNull(bladeImageStoreApply.getBrandId()), BladeImageStoreApply::getBrandId, bladeImageStoreApply.getBrandId())
+			.like(ObjectUtils.isNotNull(bladeImageStoreApply.getBrandName()), BladeImageStoreApply::getBrandName, bladeImageStoreApply.getBrandName())
+			.like(ObjectUtils.isNotNull(bladeImageStoreApply.getBrandCode()), BladeImageStoreApply::getBrandCode, bladeImageStoreApply.getBrandCode())
+			.eq(ObjectUtils.isNotNull(bladeImageStoreApply.getNeedReimburse()), BladeImageStoreApply::getNeedReimburse, bladeImageStoreApply.getNeedReimburse())
+			.eq(ObjectUtils.isNotNull(bladeImageStoreApply.getAuditStatus()), BladeImageStoreApply::getAuditStatus, bladeImageStoreApply.getAuditStatus())
+			.orderByDesc(BladeImageStoreApply::getCreateTime);
+		IPage<BladeImageStoreApply> pages = bladeImageStoreApplyService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
 	}
 
 	/**
-	 * 自定义分页 形象店申请主表
+	 * 新增或修改 形象店申请主表
 	 */
-	@GetMapping("/page")
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入bladeImageStoreApply")
-	public R<IPage<BladeImageStoreApplyVO>> page(BladeImageStoreApplyVO bladeImageStoreApply, Query query) {
-		IPage<BladeImageStoreApplyVO> pages = bladeImageStoreApplyService.selectBladeImageStoreApplyPage(Condition.getPage(query), bladeImageStoreApply);
-		return R.data(pages);
+	@PostMapping("/submit")
+	public R submit(@Valid @RequestBody BladeImageStoreApplyVO bladeImageStoreApply) {
+		return bladeImageStoreApplyService.submit(bladeImageStoreApply);
 	}
 
-	/**
-	 * 新增 形象店申请主表
-	 */
-	@PostMapping("/save")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "新增", notes = "传入bladeImageStoreApply")
-	public R save(@Valid @RequestBody BladeImageStoreApply bladeImageStoreApply) {
-		return R.status(bladeImageStoreApplyService.save(bladeImageStoreApply));
-	}
 
 	/**
-	 * 修改 形象店申请主表
+	 * 删除 形象店申请主表
 	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "修改", notes = "传入bladeImageStoreApply")
-	public R update(@Valid @RequestBody BladeImageStoreApply bladeImageStoreApply) {
-		return R.status(bladeImageStoreApplyService.updateById(bladeImageStoreApply));
+	@PostMapping("/remove")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return bladeImageStoreApplyService.deleteByIds(Func.toLongList(ids));
 	}
 
 	/**
-	 * 新增或修改 形象店申请主表
+	 * 提交审批
 	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "新增或修改", notes = "传入bladeImageStoreApply")
-	public R submit(@Valid @RequestBody BladeImageStoreApply bladeImageStoreApply) {
-		return R.status(bladeImageStoreApplyService.saveOrUpdate(bladeImageStoreApply));
+	@GetMapping("/submitApproval")
+	@RepeatSubmit
+	public R submitApproval(@RequestParam("id") Long id) {
+		return bladeImageStoreApplyService.submitApproval(id);
 	}
 
-
 	/**
-	 * 删除 形象店申请主表
+	 * 撤销审批
 	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 8)
-	@ApiOperation(value = "删除", notes = "传入ids")
-	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(bladeImageStoreApplyService.removeByIds(Func.toLongList(ids)));
+	@GetMapping("/revokeApproval")
+	@RepeatSubmit
+	public R revokeApproval(@RequestParam("id") Long id) {
+		return bladeImageStoreApplyService.revokeApproval(id);
 	}
 
 

+ 12 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/imageStore/service/IBladeImageStoreApplyService.java

@@ -20,6 +20,9 @@ import com.gubersail.dealer.admin.api.imageStore.entity.BladeImageStoreApply;
 import com.gubersail.dealer.admin.api.imageStore.vo.BladeImageStoreApplyVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.tool.api.R;
+
+import java.util.List;
 
 /**
  * 形象店申请主表 服务类
@@ -38,4 +41,13 @@ public interface IBladeImageStoreApplyService extends IService<BladeImageStoreAp
 	 */
 	IPage<BladeImageStoreApplyVO> selectBladeImageStoreApplyPage(IPage<BladeImageStoreApplyVO> page, BladeImageStoreApplyVO bladeImageStoreApply);
 
+    BladeImageStoreApplyVO detail(BladeImageStoreApply bladeImageStoreApply);
+
+	R submit(BladeImageStoreApplyVO bladeImageStoreApply);
+
+	R deleteByIds(List<Long> longList);
+
+	R submitApproval(Long id);
+
+	R revokeApproval(Long id);
 }

+ 178 - 4
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/imageStore/service/impl/BladeImageStoreApplyServiceImpl.java

@@ -16,13 +16,37 @@
  */
 package com.gubersail.admin.imageStore.service.impl;
 
-import com.gubersail.dealer.admin.api.imageStore.entity.BladeImageStoreApply;
-import com.gubersail.dealer.admin.api.imageStore.vo.BladeImageStoreApplyVO;
+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.imageStore.mapper.BladeImageStoreApplyMapper;
+import com.gubersail.admin.imageStore.service.IBladeImageStoreApplyAttachmentService;
 import com.gubersail.admin.imageStore.service.IBladeImageStoreApplyService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gubersail.admin.util.BillCodeUtil;
+import com.gubersail.admin.wrapper.ImageStoreApplyWrapper;
+import com.gubersail.admin.zcrm.customer.service.IViewCustomerSelService;
+import com.gubersail.dealer.admin.api.imageStore.entity.BladeImageStoreApply;
+import com.gubersail.dealer.admin.api.imageStore.entity.BladeImageStoreApplyAttachment;
+import com.gubersail.dealer.admin.api.imageStore.vo.BladeImageStoreApplyVO;
+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;
+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.List;
+import java.util.stream.Collectors;
 
 /**
  * 形象店申请主表 服务实现类
@@ -31,11 +55,161 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
  * @since 2025-09-15
  */
 @Service
+@AllArgsConstructor
 public class BladeImageStoreApplyServiceImpl extends ServiceImpl<BladeImageStoreApplyMapper, BladeImageStoreApply> implements IBladeImageStoreApplyService {
 
+	private final IUserClient userClient;
+
+	private final IBladeImageStoreApplyAttachmentService bladeImageStoreApplyAttachmentService;
+
+	private final IViewCustomerSelService viewCustomerSelService;
+
 	@Override
 	public IPage<BladeImageStoreApplyVO> selectBladeImageStoreApplyPage(IPage<BladeImageStoreApplyVO> page, BladeImageStoreApplyVO bladeImageStoreApply) {
 		return page.setRecords(baseMapper.selectBladeImageStoreApplyPage(page, bladeImageStoreApply));
 	}
 
+	@Override
+	public BladeImageStoreApplyVO detail(BladeImageStoreApply bladeImageStoreApply) {
+		//通过id查询数据
+		BladeImageStoreApply imageStoreApply = this.getById(bladeImageStoreApply.getId());
+		//数据实体类转换
+		BladeImageStoreApplyVO vo = ImageStoreApplyWrapper.build().entityVO(imageStoreApply);
+		R<User> createUserR = userClient.userInfoById(imageStoreApply.getCreateUser());
+		if (createUserR.isSuccess() && ObjectUtils.isNotNull(createUserR.getData())) {
+			vo.setCreateUserName(createUserR.getData().getRealName());
+		}
+		R<User> updateUserR = userClient.userInfoById(imageStoreApply.getUpdateUser());
+		if (updateUserR.isSuccess() && ObjectUtils.isNotNull(updateUserR.getData())) {
+			vo.setUpdateUserName(updateUserR.getData().getRealName());
+		}
+		//查询附件数据
+		List<BladeImageStoreApplyAttachment> claimAttachmentList = bladeImageStoreApplyAttachmentService.list(new LambdaQueryWrapper<BladeImageStoreApplyAttachment>()
+			.eq(BladeImageStoreApplyAttachment::getApplyId, bladeImageStoreApply.getId())
+			.eq(BladeImageStoreApplyAttachment::getIsDeleted, 0));
+		vo.setImageStoreApplyAttachmentList(claimAttachmentList.isEmpty() ? new ArrayList<>() : claimAttachmentList);
+		return vo;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R submit(BladeImageStoreApplyVO bladeImageStoreApply) {
+		BladeImageStoreApply imageStoreApply = new BladeImageStoreApply();
+		BeanUtil.copyProperties(bladeImageStoreApply, imageStoreApply);
+		//判断是否是第一次保存
+		if (imageStoreApply.getId() == null) {
+			// 获取 流水号
+			String billNo = BillCodeUtil.getBillCodeByType(SecureUtil.getTenantId(), "SQ");
+			if (!StringUtils.hasText(billNo) || billNo.length() < NumberEnum.FIFTEEN.number) {
+				return R.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), "生成系统编号失败");
+			}
+			imageStoreApply.setApplyNo(billNo);
+			imageStoreApply.setCreateTime(new Date());
+			imageStoreApply.setCreateUser(AuthUtil.getUserId());
+			imageStoreApply.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+			imageStoreApply.setAuditStatus(0);
+			//查询当前登录人信息
+			R<User> userR = userClient.userInfoById(AuthUtil.getUserId());
+			if (!userR.isSuccess() || ObjectUtils.isNull(userR.getData())) {
+				throw new RuntimeException("未查到当前登录人用户信息");
+			}
+			if (1 == imageStoreApply.getApplicantType()) {
+				//判断当前登录人角色是否是管理员
+				if (AuthUtil.getUserRole().contains("admin")) {
+					imageStoreApply.setCustomerId(AuthUtil.getUserId());
+					imageStoreApply.setCustomerCode("");
+					imageStoreApply.setCustomerName(userR.getData().getRealName());
+					imageStoreApply.setContactName(userR.getData().getRealName());
+					imageStoreApply.setContactPhone(userR.getData().getPhone());
+				} else {
+					//不是管理员角色需要按照用户信息中客户id查询客户信息
+					ViewCustomerSel customerSel = viewCustomerSelService.getOne(new LambdaQueryWrapper<ViewCustomerSel>()
+						.eq(ViewCustomerSel::getIsDeleted, 0)
+						.eq(ViewCustomerSel::getCustomerId, userR.getData().getCustomerId())
+						.orderByDesc(ViewCustomerSel::getCreateTime).last("LIMIT 1"));
+					if (customerSel == null) {
+						throw new RuntimeException("未查到客户档案信息");
+					}
+					imageStoreApply.setCustomerId(customerSel.getCustomerId());
+					imageStoreApply.setCustomerCode(customerSel.getCustomerCode());
+					imageStoreApply.setCustomerName(customerSel.getCustomerName());
+					imageStoreApply.setContactName(customerSel.getDescflexfieldPrivatedescseg1());
+					imageStoreApply.setContactPhone(customerSel.getDescflexfieldPrivatedescseg2());
+				}
+			}
+		} else {
+			imageStoreApply.setUpdateUser(AuthUtil.getUserId());
+			imageStoreApply.setUpdateTime(new Date());
+		}
+		//保存数据
+		this.saveOrUpdate(imageStoreApply);
+		//判断是否存在附件数据
+		if (ObjectUtils.isNotNull(bladeImageStoreApply.getImageStoreApplyAttachmentList()) && !bladeImageStoreApply.getImageStoreApplyAttachmentList().isEmpty()) {
+			for (BladeImageStoreApplyAttachment item : bladeImageStoreApply.getImageStoreApplyAttachmentList()) {
+				//添加理赔主表关联数据
+				item.setApplyId(imageStoreApply.getId());
+				//判断是否是第一次保存
+				if (item.getId() == null) {
+					item.setCreateTime(new Date());
+					item.setCreateUser(AuthUtil.getUserId());
+					item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+				} else {
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+				}
+			}
+			//批量保存理赔附件数据数据
+			bladeImageStoreApplyAttachmentService.saveOrUpdateBatch(bladeImageStoreApply.getImageStoreApplyAttachmentList());
+		}
+		return R.data(imageStoreApply);
+	}
+
+	@Override
+	public R deleteByIds(List<Long> longList) {
+		//删除主表
+		this.removeByIds(longList);
+		//查询附件数据明细
+		List<BladeImageStoreApplyAttachment> claimAttachmentList = bladeImageStoreApplyAttachmentService.list(new LambdaQueryWrapper<BladeImageStoreApplyAttachment>()
+			.in(BladeImageStoreApplyAttachment::getApplyId, longList)
+			.eq(BladeImageStoreApplyAttachment::getIsDeleted, 0));
+		//判断是否存在附件数据明细  true 删除明细数据
+		if (!claimAttachmentList.isEmpty()) {
+			bladeImageStoreApplyAttachmentService.removeByIds(claimAttachmentList.stream().map(BladeImageStoreApplyAttachment::getId)
+				.collect(Collectors.toList()));
+		}
+		return R.success("操作成功");
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R submitApproval(Long id) {
+		//通过id查询数据
+		BladeImageStoreApply imageStoreApply = this.getById(id);
+		//判断审核状态是否是录入状态
+		if (imageStoreApply.getAuditStatus() > 0) {
+			throw new RuntimeException("已提交审批,请勿重复审批");
+		}
+		imageStoreApply.setAuditStatus(1);
+		imageStoreApply.setUpdateTime(new Date());
+		imageStoreApply.setUpdateUser(AuthUtil.getUserId());
+		this.updateById(imageStoreApply);
+		return R.success("操作成功");
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R revokeApproval(Long id) {
+		//通过id查询数据
+		BladeImageStoreApply imageStoreApply = this.getById(id);
+		//判断审核状态是否是审核中
+		if (imageStoreApply.getAuditStatus() != 1) {
+			throw new RuntimeException("未提交审批,撤销失败");
+		}
+		imageStoreApply.setAuditStatus(0);
+		imageStoreApply.setUpdateTime(new Date());
+		imageStoreApply.setUpdateUser(AuthUtil.getUserId());
+		this.updateById(imageStoreApply);
+		return R.success("操作成功");
+	}
+
 }

+ 15 - 72
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/notice/controller/BladeNoticeController.java

@@ -17,25 +17,23 @@
 package com.gubersail.admin.notice.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.gubersail.admin.notice.service.IBladeNoticeService;
+import com.gubersail.dealer.admin.api.notice.entity.BladeNotice;
 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.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
-import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 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.notice.entity.BladeNotice;
-import com.gubersail.dealer.admin.api.notice.vo.BladeNoticeVO;
-import com.gubersail.admin.notice.service.IBladeNoticeService;
-import org.springblade.core.boot.ctrl.BladeController;
+
+import javax.validation.Valid;
+import java.util.List;
 
 /**
  * 系统公告主表 控制器
@@ -52,83 +50,28 @@ public class BladeNoticeController extends BladeController {
 	private final IBladeNoticeService bladeNoticeService;
 
 	/**
-	 * 详情
+	 * 公告详情
 	 */
 	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情", notes = "传入bladeNotice")
 	public R<BladeNotice> detail(BladeNotice bladeNotice) {
 		BladeNotice detail = bladeNoticeService.getOne(Condition.getQueryWrapper(bladeNotice));
 		return R.data(detail);
 	}
 
 	/**
-	 * 分页 系统公告主
+	 * 公告首页列
 	 */
 	@GetMapping("/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页", notes = "传入bladeNotice")
-	public R<IPage<BladeNotice>> list(BladeNotice bladeNotice, Query query) {
+	public R<List<BladeNotice>> list(BladeNotice bladeNotice) {
 		LambdaQueryWrapper<BladeNotice> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(BladeNotice::getIsDeleted, 0)
 			.eq(BladeNotice::getStatus, 1)
+			.eq(BladeNotice::getVisibleRoles, bladeNotice.getVisibleRoles())
+			.eq(ObjectUtils.isNotNull(bladeNotice.getBrandScope()), BladeNotice::getBrandScope, bladeNotice.getBrandScope())
 			.notLike(BladeNotice::getCustomerBlacklist, AuthUtil.getUserId())
 			.orderByDesc(BladeNotice::getCreateTime);
-		IPage<BladeNotice> pages = bladeNoticeService.page(Condition.getPage(query), lambdaQueryWrapper);
-		return R.data(pages);
+		List<BladeNotice> list = bladeNoticeService.list(lambdaQueryWrapper);
+		return R.data(list);
 	}
 
-	/**
-	 * 自定义分页 系统公告主表
-	 */
-	@GetMapping("/page")
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入bladeNotice")
-	public R<IPage<BladeNoticeVO>> page(BladeNoticeVO bladeNotice, Query query) {
-		IPage<BladeNoticeVO> pages = bladeNoticeService.selectBladeNoticePage(Condition.getPage(query), bladeNotice);
-		return R.data(pages);
-	}
-
-	/**
-	 * 新增 系统公告主表
-	 */
-	@PostMapping("/save")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "新增", notes = "传入bladeNotice")
-	public R save(@Valid @RequestBody BladeNotice bladeNotice) {
-		return R.status(bladeNoticeService.save(bladeNotice));
-	}
-
-	/**
-	 * 修改 系统公告主表
-	 */
-	@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "修改", notes = "传入bladeNotice")
-	public R update(@Valid @RequestBody BladeNotice bladeNotice) {
-		return R.status(bladeNoticeService.updateById(bladeNotice));
-	}
-
-	/**
-	 * 新增或修改 系统公告主表
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "新增或修改", notes = "传入bladeNotice")
-	public R submit(@Valid @RequestBody BladeNotice bladeNotice) {
-		return R.status(bladeNoticeService.saveOrUpdate(bladeNotice));
-	}
-
-
-	/**
-	 * 删除 系统公告主表
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 8)
-	@ApiOperation(value = "删除", notes = "传入ids")
-	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(bladeNoticeService.removeByIds(Func.toLongList(ids)));
-	}
-
-
 }

+ 2 - 1
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/ship/service/impl/ShipServiceImpl.java

@@ -108,7 +108,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 		LambdaQueryWrapper<PjHistory> historyLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		historyLambdaQueryWrapper.eq(PjHistory::getTenantId, AuthUtil.getTenantId())
 			.eq(PjHistory::getIsDeleted, 0)
-			.eq(PjHistory::getPid, detail.getId());
+			.eq(PjHistory::getPid, detail.getId())
+			.orderByDesc(PjHistory::getCreateTime);
 		vo.setHistoryList(historyMapper.selectList(historyLambdaQueryWrapper));
 		//附件
 		LambdaQueryWrapper<PjpfFiles> filesLambdaQueryWrapper = new LambdaQueryWrapper<>();

+ 2 - 2
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/storage/controller/WarehouseController.java

@@ -75,8 +75,8 @@ public class WarehouseController extends BladeController {
 	public R<IPage<Warehouse>> list(Warehouse warehouse, Query query) {
 		LambdaQueryWrapper<Warehouse> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(Warehouse::getIsDeleted, 0)
-			.eq(ObjectUtils.isNotNull(warehouse.getCname()),Warehouse::getCname, warehouse.getCname())
-			.eq(ObjectUtils.isNotNull(warehouse.getCode()),Warehouse::getCode, warehouse.getCode())
+			.like(ObjectUtils.isNotNull(warehouse.getCname()),Warehouse::getCname, warehouse.getCname())
+			.like(ObjectUtils.isNotNull(warehouse.getCode()),Warehouse::getCode, warehouse.getCode())
 			.eq(ObjectUtils.isNotNull(warehouse.getStorageId()),Warehouse::getStorageId, warehouse.getStorageId());
 		if (!AuthUtil.getUserRole().contains("admin")) {
 			lambdaQueryWrapper.in(Warehouse::getCreateDept,AuthUtil.getDeptId());

+ 2 - 2
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/survey/controller/BladeSurveyController.java

@@ -54,8 +54,8 @@ public class BladeSurveyController extends BladeController {
 	@GetMapping("/detail")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入bladeSurvey")
-	public R<BladeSurvey> detail(BladeSurvey bladeSurvey) {
-		BladeSurvey detail = bladeSurveyService.getOne(Condition.getQueryWrapper(bladeSurvey));
+	public R<BladeSurveyVO> detail(BladeSurvey bladeSurvey) {
+		BladeSurveyVO detail = bladeSurveyService.detail(bladeSurvey);
 		return R.data(detail);
 	}
 

+ 1 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/survey/service/IBladeSurveyService.java

@@ -38,4 +38,5 @@ public interface IBladeSurveyService extends IService<BladeSurvey> {
 	 */
 	IPage<BladeSurveyVO> selectBladeSurveyPage(IPage<BladeSurveyVO> page, BladeSurveyVO bladeSurvey);
 
+    BladeSurveyVO detail(BladeSurvey bladeSurvey);
 }

+ 39 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/survey/service/impl/BladeSurveyServiceImpl.java

@@ -16,11 +16,23 @@
  */
 package com.gubersail.admin.survey.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.gubersail.admin.survey.service.IBladeSurveyOptionService;
+import com.gubersail.admin.survey.service.IBladeSurveyQuestionService;
+import com.gubersail.admin.survey.service.IBladeSurveyResultService;
+import com.gubersail.admin.wrapper.ImageStoreApplyWrapper;
+import com.gubersail.admin.wrapper.SurveyWrapper;
+import com.gubersail.dealer.admin.api.imageStore.entity.BladeImageStoreApply;
+import com.gubersail.dealer.admin.api.imageStore.vo.BladeImageStoreApplyVO;
 import com.gubersail.dealer.admin.api.survey.entity.BladeSurvey;
 import com.gubersail.dealer.admin.api.survey.vo.BladeSurveyVO;
 import com.gubersail.admin.survey.mapper.BladeSurveyMapper;
 import com.gubersail.admin.survey.service.IBladeSurveyService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.api.R;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
@@ -31,11 +43,38 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
  * @since 2025-09-15
  */
 @Service
+@AllArgsConstructor
 public class BladeSurveyServiceImpl extends ServiceImpl<BladeSurveyMapper, BladeSurvey> implements IBladeSurveyService {
 
+	private final IUserClient userClient;
+
+	private final IBladeSurveyOptionService bladeSurveyOptionService;
+
+	private final IBladeSurveyQuestionService bladeSurveyQuestionService;
+
+	private final IBladeSurveyResultService bladeSurveyResultService;
+
 	@Override
 	public IPage<BladeSurveyVO> selectBladeSurveyPage(IPage<BladeSurveyVO> page, BladeSurveyVO bladeSurvey) {
 		return page.setRecords(baseMapper.selectBladeSurveyPage(page, bladeSurvey));
 	}
 
+	@Override
+	public BladeSurveyVO detail(BladeSurvey bladeSurvey) {
+		//通过id查询数据
+		BladeSurvey survey = this.getById(bladeSurvey.getId());
+		//数据实体类转换
+		BladeSurveyVO vo = SurveyWrapper.build().entityVO(survey);
+		R<User> createUserR = userClient.userInfoById(survey.getCreateUser());
+		if (createUserR.isSuccess() && ObjectUtils.isNotNull(createUserR.getData())) {
+			vo.setCreateUserName(createUserR.getData().getRealName());
+		}
+		R<User> updateUserR = userClient.userInfoById(survey.getUpdateUser());
+		if (updateUserR.isSuccess() && ObjectUtils.isNotNull(updateUserR.getData())) {
+			vo.setUpdateUserName(updateUserR.getData().getRealName());
+		}
+
+		return null;
+	}
+
 }

+ 51 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/ImageStoreApplyWrapper.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.complaint.entity.BladeComplaint;
+import com.gubersail.dealer.admin.api.complaint.vo.BladeComplaintVO;
+import com.gubersail.dealer.admin.api.imageStore.entity.BladeImageStoreApply;
+import com.gubersail.dealer.admin.api.imageStore.vo.BladeImageStoreApplyVO;
+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 ImageStoreApplyWrapper extends BaseEntityWrapper<BladeImageStoreApply, BladeImageStoreApplyVO> {
+
+	public static ImageStoreApplyWrapper build() {
+		return new ImageStoreApplyWrapper();
+	}
+
+	@Override
+	public BladeImageStoreApplyVO entityVO(BladeImageStoreApply entity) {
+		if (Objects.isNull(entity)) {
+			return null;
+		}
+		BladeImageStoreApplyVO vo = new BladeImageStoreApplyVO();
+		BeanUtils.copyProperties(entity, vo);
+		return vo;
+	}
+
+	public IPage<BladeImageStoreApplyVO> pageVO(IPage<BladeImageStoreApply> page) {
+		if (Objects.isNull(page)) {
+			return null;
+		}
+		IPage<BladeImageStoreApplyVO> voPage = new Page<>();
+		List<BladeImageStoreApplyVO> voList = BeanUtil.copy(page.getRecords(),BladeImageStoreApplyVO.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;
+	}
+
+}

+ 51 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/SurveyOptionWrapper.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.survey.entity.BladeSurvey;
+import com.gubersail.dealer.admin.api.survey.entity.BladeSurveyOption;
+import com.gubersail.dealer.admin.api.survey.vo.BladeSurveyOptionVO;
+import com.gubersail.dealer.admin.api.survey.vo.BladeSurveyVO;
+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 SurveyOptionWrapper extends BaseEntityWrapper<BladeSurveyOption, BladeSurveyOptionVO> {
+
+	public static SurveyOptionWrapper build() {
+		return new SurveyOptionWrapper();
+	}
+
+	@Override
+	public BladeSurveyOptionVO entityVO(BladeSurveyOption entity) {
+		if (Objects.isNull(entity)) {
+			return null;
+		}
+		BladeSurveyOptionVO vo = new BladeSurveyOptionVO();
+		BeanUtils.copyProperties(entity, vo);
+		return vo;
+	}
+
+	public IPage<BladeSurveyOptionVO> pageVO(IPage<BladeSurveyOption> page) {
+		if (Objects.isNull(page)) {
+			return null;
+		}
+		IPage<BladeSurveyOptionVO> voPage = new Page<>();
+		List<BladeSurveyOptionVO> voList = BeanUtil.copy(page.getRecords(),BladeSurveyOptionVO.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;
+	}
+
+}

+ 51 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/SurveyQuestionWrapper.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.survey.entity.BladeSurvey;
+import com.gubersail.dealer.admin.api.survey.entity.BladeSurveyQuestion;
+import com.gubersail.dealer.admin.api.survey.vo.BladeSurveyQuestionVO;
+import com.gubersail.dealer.admin.api.survey.vo.BladeSurveyVO;
+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 SurveyQuestionWrapper extends BaseEntityWrapper<BladeSurveyQuestion, BladeSurveyQuestionVO> {
+
+	public static SurveyQuestionWrapper build() {
+		return new SurveyQuestionWrapper();
+	}
+
+	@Override
+	public BladeSurveyQuestionVO entityVO(BladeSurveyQuestion entity) {
+		if (Objects.isNull(entity)) {
+			return null;
+		}
+		BladeSurveyQuestionVO vo = new BladeSurveyQuestionVO();
+		BeanUtils.copyProperties(entity, vo);
+		return vo;
+	}
+
+	public IPage<BladeSurveyQuestionVO> pageVO(IPage<BladeSurveyQuestion> page) {
+		if (Objects.isNull(page)) {
+			return null;
+		}
+		IPage<BladeSurveyQuestionVO> voPage = new Page<>();
+		List<BladeSurveyQuestionVO> voList = BeanUtil.copy(page.getRecords(),BladeSurveyQuestionVO.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;
+	}
+
+}

+ 51 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/SurveyResultWrapper.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.survey.entity.BladeSurvey;
+import com.gubersail.dealer.admin.api.survey.entity.BladeSurveyResult;
+import com.gubersail.dealer.admin.api.survey.vo.BladeSurveyResultVO;
+import com.gubersail.dealer.admin.api.survey.vo.BladeSurveyVO;
+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 SurveyResultWrapper extends BaseEntityWrapper<BladeSurveyResult, BladeSurveyResultVO> {
+
+	public static SurveyResultWrapper build() {
+		return new SurveyResultWrapper();
+	}
+
+	@Override
+	public BladeSurveyResultVO entityVO(BladeSurveyResult entity) {
+		if (Objects.isNull(entity)) {
+			return null;
+		}
+		BladeSurveyResultVO vo = new BladeSurveyResultVO();
+		BeanUtils.copyProperties(entity, vo);
+		return vo;
+	}
+
+	public IPage<BladeSurveyResultVO> pageVO(IPage<BladeSurveyResult> page) {
+		if (Objects.isNull(page)) {
+			return null;
+		}
+		IPage<BladeSurveyResultVO> voPage = new Page<>();
+		List<BladeSurveyResultVO> voList = BeanUtil.copy(page.getRecords(),BladeSurveyResultVO.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;
+	}
+
+}

+ 51 - 0
blade-service/gubersail-dealer-admin/src/main/java/com/gubersail/admin/wrapper/SurveyWrapper.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.survey.entity.BladeSurvey;
+import com.gubersail.dealer.admin.api.survey.vo.BladeSurveyVO;
+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 SurveyWrapper extends BaseEntityWrapper<BladeSurvey, BladeSurveyVO> {
+
+	public static SurveyWrapper build() {
+		return new SurveyWrapper();
+	}
+
+	@Override
+	public BladeSurveyVO entityVO(BladeSurvey entity) {
+		if (Objects.isNull(entity)) {
+			return null;
+		}
+		BladeSurveyVO vo = new BladeSurveyVO();
+		BeanUtils.copyProperties(entity, vo);
+		return vo;
+	}
+
+	public IPage<BladeSurveyVO> pageVO(IPage<BladeSurvey> page) {
+		if (Objects.isNull(page)) {
+			return null;
+		}
+		IPage<BladeSurveyVO> voPage = new Page<>();
+		List<BladeSurveyVO> voList = BeanUtil.copy(page.getRecords(),BladeSurveyVO.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;
+	}
+
+}

+ 4 - 0
blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/shoppingCart/service/impl/ShopAppShoppingCartServiceImpl.java

@@ -514,6 +514,10 @@ public class ShopAppShoppingCartServiceImpl extends ServiceImpl<ShopAppShoppingC
 		shoppingCart.setInventory(stockDesc.getBalanceQuantity());
 		shoppingCart.setTenantId(AuthUtil.getTenantId());
 		shoppingCart.setWhetherIntegral(goodsDesc.getWhetherIntegral());
+		shoppingCart.setStorageId(stockDesc.getStorageId());
+		shoppingCart.setStorageName(stockDesc.getStorageName());
+		shoppingCart.setReservoirArea(stockDesc.getReservoirArea());
+		shoppingCart.setReservoirAreaId(stockDesc.getReservoirAreaId());
 		LambdaQueryWrapper<ShopAppShoppingCart> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(ShopAppShoppingCart::getTenantId, AuthUtil.getTenantId())
 			.eq(ShopAppShoppingCart::getIsDeleted, 0)

+ 8 - 8
blade-service/gubersail-shop-app/src/main/java/com/gubersail/shop/app/stock/service/impl/ShopAppTireStockDescServiceImpl.java

@@ -110,11 +110,11 @@ public class ShopAppTireStockDescServiceImpl extends ServiceImpl<ShopAppTireStoc
 				.in("pid", brandIds).eq("is_deleted", 0));
 			voPage = ShopAppTireStockWrapper.build().pageVO(pages);
 			String priceSystem = corpsDesc.getPriceSystem();
-			List<Long> stockId = pages.getRecords().stream().map(ShopAppTireStockDesc::getId).collect(Collectors.toList());
+			/*List<Long> stockId = pages.getRecords().stream().map(ShopAppTireStockDesc::getId).collect(Collectors.toList());
 			List<ShopAppTireStockDesc> shopAppTireStockDescList = baseMapper.selectList(new LambdaQueryWrapper<ShopAppTireStockDesc>()
 				.eq(ShopAppTireStockDesc::getIsDeleted, 0)
 				.in(ShopAppTireStockDesc::getGoodsId, goodsId)
-				.notIn(ShopAppTireStockDesc::getId, stockId));
+				.notIn(ShopAppTireStockDesc::getId, stockId));*/
 			for (ShopAppTireStockDescVO item : voPage.getRecords()) {
 				if ("销售价1".equals(priceSystem)) {
 					item.setPrice(item.getPriceOne());
@@ -125,14 +125,14 @@ public class ShopAppTireStockDescServiceImpl extends ServiceImpl<ShopAppTireStoc
 				} else if ("销售价4".equals(priceSystem)) {
 					item.setPrice(item.getPriceFour());
 				}
-				if (!shopAppTireStockDescList.isEmpty()) {
+			/*	if (!shopAppTireStockDescList.isEmpty()) {
 					List<ShopAppTireStockDesc> shopAppTireStockDescs = shopAppTireStockDescList.stream()
 						.filter(e -> e.getGoodsId().equals(item.getGoodsId())).collect(Collectors.toList());
 					if (!shopAppTireStockDescs.isEmpty()) {
 						item.setTotal(shopAppTireStockDescs.stream().map(ShopAppTireStockDesc::getBalanceQuantity)
 							.reduce(BigDecimal.ZERO, BigDecimal::add));
 					}
-				}
+				}*/
 				if (!goodsFilesList.isEmpty()) {
 					item.setUrl(Objects.requireNonNull(goodsFilesList.stream()
 						.filter(e -> e.getPid().equals(item.getGoodsId()) && 1 == e.getMainImage())
@@ -188,10 +188,10 @@ public class ShopAppTireStockDescServiceImpl extends ServiceImpl<ShopAppTireStoc
 				.in("pid", shopAppTireStockDesc.getBrandId()).eq("is_deleted", 0));
 			stockDescVO = ShopAppTireStockWrapper.build().entityVO(shopAppTireStockDesc);
 			String priceSystem = corpsDesc.getPriceSystem();
-			List<ShopAppTireStockDesc> shopAppTireStockDescList = baseMapper.selectList(new LambdaQueryWrapper<ShopAppTireStockDesc>()
+			/*List<ShopAppTireStockDesc> shopAppTireStockDescList = baseMapper.selectList(new LambdaQueryWrapper<ShopAppTireStockDesc>()
 				.eq(ShopAppTireStockDesc::getIsDeleted, 0)
 				.in(ShopAppTireStockDesc::getGoodsId, shopAppTireStockDesc.getGoodsId())
-				.notIn(ShopAppTireStockDesc::getId, stockDesc.getId()));
+				.notIn(ShopAppTireStockDesc::getId, stockDesc.getId()));*/
 			if ("销售价1".equals(priceSystem)) {
 				stockDescVO.setPrice(stockDescVO.getPriceOne());
 			} else if ("销售价2".equals(priceSystem)) {
@@ -202,14 +202,14 @@ public class ShopAppTireStockDescServiceImpl extends ServiceImpl<ShopAppTireStoc
 				stockDescVO.setPrice(stockDescVO.getPriceFour());
 			}
 			ShopAppTireStockDescVO finalStockDescVO = stockDescVO;
-			if (!shopAppTireStockDescList.isEmpty()) {
+			/*if (!shopAppTireStockDescList.isEmpty()) {
 				List<ShopAppTireStockDesc> shopAppTireStockDescs = shopAppTireStockDescList.stream()
 					.filter(e -> e.getGoodsId().equals(finalStockDescVO.getGoodsId())).collect(Collectors.toList());
 				if (!shopAppTireStockDescs.isEmpty()) {
 					stockDescVO.setTotal(shopAppTireStockDescs.stream().map(ShopAppTireStockDesc::getBalanceQuantity)
 						.reduce(BigDecimal.ZERO, BigDecimal::add));
 				}
-			}
+			}*/
 			if (!goodsFilesList.isEmpty()) {
 				stockDescVO.setUrl(Objects.requireNonNull(goodsFilesList.stream()
 					.filter(e -> e.getPid().equals(finalStockDescVO.getGoodsId()) && 1 == e.getMainImage())