Browse Source

现金余额基础功能

liyuan 5 months ago
parent
commit
a1dec11d88
23 changed files with 1150 additions and 0 deletions
  1. 27 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/dto/GreenRecyclingDTO.java
  2. 34 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/dto/GreenRecyclingItemDTO.java
  3. 114 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/entity/GreenRecycling.java
  4. 32 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/entity/GreenRecyclingItem.java
  5. 66 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/entity/GreenRecyclingRecord.java
  6. 20 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/vo/GreenRecyclingItemVO.java
  7. 18 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/vo/GreenRecyclingRecordVo.java
  8. 36 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/vo/GreenRecyclingVO.java
  9. 46 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/wrapper/GreenRecyclingItemWrapper.java
  10. 46 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/wrapper/GreenRecyclingWrapper.java
  11. 212 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/controller/GreenRecyclingController.java
  12. 44 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingItemMapper.java
  13. 24 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingItemMapper.xml
  14. 30 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingMapper.java
  15. 76 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingMapper.xml
  16. 23 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingRecordMapper.java
  17. 43 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingRecordMapper.xml
  18. 25 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/IGreenRecyclingItemService.java
  19. 22 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/IGreenRecyclingRecordService.java
  20. 53 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/IGreenRecyclingService.java
  21. 27 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/impl/GreenRecyclingItemServiceImpl.java
  22. 25 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/impl/GreenRecyclingRecordServiceImpl.java
  23. 107 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/impl/GreenRecyclingServiceImpl.java

+ 27 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/dto/GreenRecyclingDTO.java

@@ -0,0 +1,27 @@
+package org.springblade.salesPart.recycling.dto;
+
+import org.springblade.salesPart.recycling.entity.GreenRecycling;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 余额充值表数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class GreenRecyclingDTO extends GreenRecycling {
+	private static final long serialVersionUID = 1L;
+
+
+
+
+	private String createUserName;
+
+
+	private String updateUserName;
+
+
+}

+ 34 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/dto/GreenRecyclingItemDTO.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 org.springblade.salesPart.recycling.dto;
+
+import org.springblade.salesPart.recycling.entity.GreenRecyclingItem;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class GreenRecyclingItemDTO extends GreenRecyclingItem {
+	private static final long serialVersionUID = 1L;
+
+}

+ 114 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/entity/GreenRecycling.java

@@ -0,0 +1,114 @@
+package org.springblade.salesPart.recycling.entity;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 余额充值表实体类
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@Data
+@TableName("pjpf_green_recycling")
+@ApiModel(value = "GreenRecycling对象", description = "余额充值表")
+public class GreenRecycling implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+
+	/**
+	 * 租户
+	 */
+	@ApiModelProperty(value = "租户")
+	private String tenantId;
+
+	/**
+	 * 客户id
+	 */
+	@ApiModelProperty(value = "客户id")
+	private Long customerId;
+
+	/**
+	 * 客户名称
+	 */
+	@ApiModelProperty(value = "客户名称")
+	private String customerName;
+
+	/**
+	 * 总数量
+	 */
+	@ApiModelProperty(value = "总数量")
+	@NotNull(message = "总数量不能为0")
+	private Integer quantity;
+	/**
+	 * 总金额
+	 */
+	@ApiModelProperty(value = "总金额")
+	@NotNull(message = "总金额不能为0")
+	private BigDecimal amount;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+	/**
+	 * 图片集合
+	 */
+	@ApiModelProperty(value = "图片集合")
+	private String imgs;
+	/**
+	 * 单据号
+	 */
+	@ApiModelProperty(value = "单据号")
+	private String recyclingCode;
+	/**
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private Long createUser;
+	/**
+	 * 创建部门
+	 */
+	@ApiModelProperty(value = "创建部门")
+	private Long createDept;
+	/**
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	private LocalDateTime createTime;
+	/**
+	 * 更新人
+	 */
+	@ApiModelProperty(value = "更新人")
+	private Long updateUser;
+	/**
+	 * 更新时间
+	 */
+	@ApiModelProperty(value = "更新时间")
+	private LocalDateTime updateTime;
+	/**
+	 * 审核状态 0 未审核、1 未通过、2 通过
+	 */
+	@ApiModelProperty(value = "审核状态 0 未审核、1 未通过、2 通过")
+	private Integer status;
+	/**
+	 * 是否删除 1 是
+	 */
+	@ApiModelProperty(value = "是否删除 1 是")
+	private Integer isDeleted;
+
+
+}

+ 32 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/entity/GreenRecyclingItem.java

@@ -0,0 +1,32 @@
+package org.springblade.salesPart.recycling.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 实体类
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@Data
+@TableName("pjpf_green_recycling_item")
+@ApiModel(value = "GreenRecyclingItem对象", description = "GreenRecyclingItem对象")
+public class GreenRecyclingItem implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+	private Long pid;
+	private String productName;
+	private String tenantId;
+	private Integer productQuantity;
+	private BigDecimal productAmount;
+	private BigDecimal productPrice;
+
+
+}

+ 66 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/entity/GreenRecyclingRecord.java

@@ -0,0 +1,66 @@
+package org.springblade.salesPart.recycling.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author Rain
+ */
+@Data
+@TableName("pjpf_green_recycling_record")
+public class GreenRecyclingRecord implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键ID
+	 */
+	private Long id;
+
+	/**
+	 * 客户ID
+	 */
+	private Long customerId;
+
+	/**
+	 * 租户
+	 */
+	private String tenantId;
+
+	/**
+	 * 原额度
+	 */
+	private BigDecimal originalQuota;
+
+	/**
+	 * 变动额度
+	 */
+	private BigDecimal adjustableQuota;
+
+	/**
+	 * 变动后额度
+	 */
+	private BigDecimal adjustedQuota;
+
+	/**
+	 * 变动时间
+	 */
+	private LocalDateTime changeTime;
+
+	/**
+	 * 变动人
+	 */
+	private Long changeUser;
+
+	/**
+	 * 变动类型
+	 * 0 充值
+	 * 1 支出
+	 */
+	private Integer changeType;
+
+}

+ 20 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/vo/GreenRecyclingItemVO.java

@@ -0,0 +1,20 @@
+package org.springblade.salesPart.recycling.vo;
+
+import org.springblade.salesPart.recycling.entity.GreenRecyclingItem;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModel;
+
+/**
+ * 视图实体类
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "GreenRecyclingItemVO对象", description = "GreenRecyclingItemVO对象")
+public class GreenRecyclingItemVO extends GreenRecyclingItem {
+	private static final long serialVersionUID = 1L;
+
+}

+ 18 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/vo/GreenRecyclingRecordVo.java

@@ -0,0 +1,18 @@
+package org.springblade.salesPart.recycling.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.salesPart.recycling.entity.GreenRecyclingRecord;
+
+/**
+ * @author Rain
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class GreenRecyclingRecordVo extends GreenRecyclingRecord {
+
+	private String changeUserName;
+
+
+
+}

+ 36 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/vo/GreenRecyclingVO.java

@@ -0,0 +1,36 @@
+package org.springblade.salesPart.recycling.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.salesPart.recycling.entity.GreenRecycling;
+import org.springblade.salesPart.recycling.entity.GreenRecyclingItem;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 余额充值表视图实体类
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "GreenRecyclingVO对象", description = "余额充值表")
+public class GreenRecyclingVO extends GreenRecycling {
+	private static final long serialVersionUID = 1L;
+
+	@NotEmpty(message = "明细数据不能为空")
+	private List<GreenRecyclingItem> greenRecyclingItemList;
+
+
+	private String startDate;
+
+
+	private String endDate;
+
+
+	private List<String> createTimeList;
+
+}

+ 46 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/wrapper/GreenRecyclingItemWrapper.java

@@ -0,0 +1,46 @@
+/*
+ *      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 org.springblade.salesPart.recycling.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.salesPart.recycling.entity.GreenRecyclingItem;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingItemVO;
+import java.util.Objects;
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+public class GreenRecyclingItemWrapper extends BaseEntityWrapper<GreenRecyclingItem, GreenRecyclingItemVO>  {
+
+	public static GreenRecyclingItemWrapper build() {
+		return new GreenRecyclingItemWrapper();
+ 	}
+
+	@Override
+	public GreenRecyclingItemVO entityVO(GreenRecyclingItem greenRecyclingItem) {
+		//User createUser = UserCache.getUser(greenRecyclingItem.getCreateUser());
+		//User updateUser = UserCache.getUser(greenRecyclingItem.getUpdateUser());
+		//greenRecyclingItemVO.setCreateUserName(createUser.getName());
+		//greenRecyclingItemVO.setUpdateUserName(updateUser.getName());
+		return Objects.requireNonNull(BeanUtil.copy(greenRecyclingItem, GreenRecyclingItemVO.class));
+	}
+
+}

+ 46 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/recycling/wrapper/GreenRecyclingWrapper.java

@@ -0,0 +1,46 @@
+/*
+ *      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 org.springblade.salesPart.recycling.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.salesPart.recycling.entity.GreenRecycling;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingVO;
+import java.util.Objects;
+
+/**
+ * 余额充值表包装类,返回视图层所需的字段
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+public class GreenRecyclingWrapper extends BaseEntityWrapper<GreenRecycling, GreenRecyclingVO>  {
+
+	public static GreenRecyclingWrapper build() {
+		return new GreenRecyclingWrapper();
+ 	}
+
+	@Override
+	public GreenRecyclingVO entityVO(GreenRecycling greenRecycling) {
+		//User createUser = UserCache.getUser(greenRecycling.getCreateUser());
+		//User updateUser = UserCache.getUser(greenRecycling.getUpdateUser());
+		//greenRecyclingVO.setCreateUserName(createUser.getName());
+		//greenRecyclingVO.setUpdateUserName(updateUser.getName());
+		return Objects.requireNonNull(BeanUtil.copy(greenRecycling, GreenRecyclingVO.class));
+	}
+
+}

+ 212 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/controller/GreenRecyclingController.java

@@ -0,0 +1,212 @@
+package org.springblade.salesPart.recycling.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.salesPart.recycling.dto.GreenRecyclingDTO;
+import org.springblade.salesPart.recycling.entity.GreenRecyclingItem;
+import org.springblade.salesPart.recycling.service.IGreenRecyclingItemService;
+import org.springblade.salesPart.recycling.service.IGreenRecyclingRecordService;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingRecordVo;
+import org.springblade.salesPart.recycling.wrapper.GreenRecyclingWrapper;
+import org.springblade.system.entity.DictBiz;
+import org.springblade.system.feign.ISysClient;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.salesPart.recycling.entity.GreenRecycling;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingVO;
+import org.springblade.salesPart.recycling.service.IGreenRecyclingService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 余额充值表 控制器
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/green/recycling")
+@Api(value = "余额充值表", tags = "余额充值表接口")
+public class GreenRecyclingController extends BladeController {
+
+	private final IGreenRecyclingService greenRecyclingService;
+
+	private final IGreenRecyclingItemService greenRecyclingItemService;
+
+	private final IGreenRecyclingRecordService greenRecyclingRecordService;
+
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入greenRecycling")
+	public R<GreenRecyclingVO> detail(GreenRecycling greenRecycling) {
+		GreenRecycling detail = greenRecyclingService.getOne(Condition.getQueryWrapper(greenRecycling));
+		if (ObjectUtils.isEmpty(detail)) {
+			return R.fail("未找到回收单");
+		}
+		GreenRecyclingVO greenRecyclingVO = GreenRecyclingWrapper.build().entityVO(detail);
+		List<GreenRecyclingItem> greenRecyclingItemList = greenRecyclingItemService.list(new LambdaQueryWrapper<GreenRecyclingItem>()
+			.eq(GreenRecyclingItem::getPid, detail.getId())
+			.eq(GreenRecyclingItem::getTenantId, AuthUtil.getTenantId()));
+		greenRecyclingVO.setGreenRecyclingItemList(greenRecyclingItemList);
+		return R.data(greenRecyclingVO);
+	}
+
+	/**
+	 * 分页 余额充值表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入greenRecycling")
+	public R<IPage<GreenRecyclingVO>> list(GreenRecycling greenRecycling, Query query) {
+		IPage<GreenRecycling> pages = greenRecyclingService.page(Condition.getPage(query), Condition.getQueryWrapper(greenRecycling));
+		return R.data(GreenRecyclingWrapper.build().pageVO(pages));
+	}
+
+
+	/**
+	 * 自定义分页 余额充值表
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入greenRecycling")
+	public R<IPage<GreenRecyclingDTO>> page(GreenRecyclingVO greenRecyclingVO, Query query) {
+		greenRecyclingVO.setTenantId(AuthUtil.getTenantId());
+		IPage<GreenRecyclingDTO> pages = greenRecyclingService.selectGreenRecyclingPage(Condition.getPage(query), greenRecyclingVO);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 余额充值表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入greenRecycling")
+	public R<Long> save(@Valid @RequestBody GreenRecyclingVO greenRecycling) {
+		greenRecycling.setTenantId(AuthUtil.getTenantId());
+		greenRecycling.setCreateUser(AuthUtil.getUserId());
+		greenRecycling.setCreateTime(LocalDateTime.now());
+		return greenRecyclingService.saveAll(greenRecycling);
+	}
+
+	/**
+	 * 修改 余额充值表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入greenRecycling")
+	public R update(@Valid @RequestBody GreenRecycling greenRecycling) {
+		return R.status(greenRecyclingService.updateById(greenRecycling));
+	}
+
+	/**
+	 * 新增或修改 余额充值表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入greenRecycling")
+	public R submit(@Valid @RequestBody GreenRecycling greenRecycling) {
+		return R.status(greenRecyclingService.saveOrUpdate(greenRecycling));
+	}
+
+
+	/**
+	 * 删除 余额充值表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(greenRecyclingService.removeByIds(Func.toLongList(ids)));
+	}
+
+	/**
+	 * 删除 余额充值表
+	 */
+	@PostMapping("/delGreenRecycling")
+	@ApiOperationSupport(order = 8)
+	public R<GreenRecyclingItem> delGreenRecycling(@RequestParam("id") Long id) {
+		GreenRecycling greenRecycling = new GreenRecycling();
+		greenRecycling.setId(id);
+		greenRecycling.setIsDeleted(1);
+		greenRecycling.setTenantId(AuthUtil.getTenantId());
+		greenRecycling.setUpdateTime(LocalDateTime.now());
+		greenRecycling.setUpdateUser(AuthUtil.getUserId());
+		boolean isUpdate = greenRecyclingService.updateById(greenRecycling);
+		return isUpdate ? R.success("删除成功") : R.fail("删除失败");
+	}
+
+
+	/**
+	 * 获取充值明细表
+	 *
+	 * @param id 主表id
+	 * @return 结果
+	 */
+	@PostMapping("/getGreenRecyclingItemList")
+	@ApiOperationSupport(order = 9)
+	public R<List<GreenRecyclingItem>> getGreenRecyclingItemList(@RequestParam("id") Long id) {
+		List<GreenRecyclingItem> greenRecyclingItemList = greenRecyclingItemService.list(new LambdaQueryWrapper<GreenRecyclingItem>()
+			.eq(GreenRecyclingItem::getPid, id).eq(GreenRecyclingItem::getTenantId, AuthUtil.getTenantId()));
+		return R.data(greenRecyclingItemList);
+	}
+
+	/**
+	 * 充值审核
+	 *
+	 * @param greenRecycling 参数
+	 * @return 结果
+	 */
+	@PostMapping("/greenRecyclingAudit")
+	@ApiOperationSupport(order = 10)
+	public R<String> greenRecyclingAudit(@RequestBody GreenRecycling greenRecycling) {
+		greenRecycling.setUpdateTime(LocalDateTime.now());
+		greenRecycling.setUpdateUser(AuthUtil.getUserId());
+		return greenRecyclingService.greenRecyclingAudit(greenRecycling);
+	}
+
+
+	/**
+	 * 从字典中获取明细
+	 *
+	 * @return 结果
+	 */
+	@PostMapping("/greenRecyclingGoods")
+	@ApiOperationSupport(order = 11)
+	public R<List<DictBiz>> greenRecyclingGoods() {
+		return greenRecyclingService.greenRecyclingGoods();
+	}
+
+	/**
+	 * 查询余额使用记录
+	 *
+	 * @return 结果
+	 */
+	@PostMapping("/getCustomerGreenRecyclingRecordList")
+	@ApiOperationSupport(order = 12)
+	public R<List<GreenRecyclingRecordVo>> getCustomerGreenRecyclingRecordList(@RequestBody GreenRecyclingRecordVo greenRecyclingRecordVo) {
+		greenRecyclingRecordVo.setTenantId(AuthUtil.getTenantId());
+		return R.data(greenRecyclingRecordService.getCustomerGreenRecyclingRecordList(greenRecyclingRecordVo));
+	}
+
+
+}

+ 44 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingItemMapper.java

@@ -0,0 +1,44 @@
+/*
+ *      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 org.springblade.salesPart.recycling.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.springblade.salesPart.recycling.entity.GreenRecyclingItem;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingItemVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ *  Mapper 接口
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@Mapper
+public interface GreenRecyclingItemMapper extends BaseMapper<GreenRecyclingItem> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param greenRecyclingItem
+	 * @return
+	 */
+	List<GreenRecyclingItemVO> selectGreenRecyclingItemPage(IPage page, GreenRecyclingItemVO greenRecyclingItem);
+
+}

+ 24 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingItemMapper.xml

@@ -0,0 +1,24 @@
+<?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">
+<!--suppress ALL -->
+<mapper namespace="org.springblade.salesPart.recycling.mapper.GreenRecyclingItemMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="greenRecyclingItemResultMap" type="org.springblade.salesPart.recycling.entity.GreenRecyclingItem">
+        <result column="id" property="id"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="pid" property="pid"/>
+        <result column="product_name" property="productName"/>
+        <result column="product_quantity" property="productQuantity"/>
+        <result column="product_amount" property="productAmount"/>
+        <result column="product_price" property="productPrice"/>
+    </resultMap>
+
+
+    <select id="selectGreenRecyclingItemPage" resultMap="greenRecyclingItemResultMap">
+        select *
+        from pjpf_green_recycling_item
+        where is_deleted = 0
+    </select>
+
+</mapper>

+ 30 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingMapper.java

@@ -0,0 +1,30 @@
+package org.springblade.salesPart.recycling.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.salesPart.recycling.dto.GreenRecyclingDTO;
+import org.springblade.salesPart.recycling.entity.GreenRecycling;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ * 余额充值表 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@Mapper
+public interface GreenRecyclingMapper extends BaseMapper<GreenRecycling> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page           分页
+	 * @param greenRecyclingVO 参数
+	 * @return 结果
+	 */
+	List<GreenRecyclingDTO> selectGreenRecyclingPage(IPage page, @Param("dto") GreenRecyclingVO greenRecyclingVO);
+
+}

+ 76 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingMapper.xml

@@ -0,0 +1,76 @@
+<?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">
+<!--suppress ALL -->
+<mapper namespace="org.springblade.salesPart.recycling.mapper.GreenRecyclingMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="greenRecyclingResultMap" type="org.springblade.salesPart.recycling.entity.GreenRecycling">
+        <id column="id" property="id"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="customer_id" property="customerId"/>
+        <result column="customer_name" property="customerName"/>
+        <result column="quantity" property="quantity"/>
+        <result column="amount" property="amount"/>
+        <result column="remark" property="remark"/>
+        <result column="imgs" property="imgs"/>
+        <result column="recycling_code" property="recyclingCode"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+
+    <resultMap id="greenRecyclingResultDtoMap" type="org.springblade.salesPart.recycling.dto.GreenRecyclingDTO">
+        <id column="id" property="id"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="customer_id" property="customerId"/>
+        <result column="customer_name" property="customerName"/>
+        <result column="quantity" property="quantity"/>
+        <result column="amount" property="amount"/>
+        <result column="remark" property="remark"/>
+        <result column="imgs" property="imgs"/>
+        <result column="recycling_code" property="recyclingCode"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="createUserName" property="createUserName"/>
+        <result column="updateUserName" property="updateUserName"/>
+    </resultMap>
+
+
+    <select id="selectGreenRecyclingPage" resultMap="greenRecyclingResultDtoMap">
+        SELECT
+        gr.*,
+        bu.name as createUserName,
+        sbu.name as updateUserName
+        FROM
+        pjpf_green_recycling gr INNER JOIN blade_user bu on gr.create_user = bu.id and gr.tenant_id = bu.tenant_id
+        LEFT JOIN blade_user sbu on gr.update_user = sbu.id and gr.tenant_id = sbu.tenant_id
+        where gr.is_deleted = 0 and gr.tenant_id = #{dto.tenantId}
+        <if test="dto.startDate != null and dto.startDate != ''">
+            and gr.create_time >= #{dto.startDate}
+        </if>
+        <if test="dto.endDate != null and dto.endDate != ''">
+            and gr.create_time &lt;= #{dto.endDate}
+        </if>
+        <if test="dto.customerName != null and dto.customerName != ''">
+            and gr.customer_name like concat('%',#{dto.customerName},'%')
+        </if>
+        <if test="dto.status != null">
+            and gr.status = #{dto.status}
+        </if>
+        <if test="dto.quantity != null">
+            and gr.quantity = #{dto.quantity}
+        </if>
+        order by  gr.status asc, gr.create_time desc
+    </select>
+
+</mapper>

+ 23 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingRecordMapper.java

@@ -0,0 +1,23 @@
+package org.springblade.salesPart.recycling.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springblade.salesPart.recycling.entity.GreenRecyclingRecord;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingRecordVo;
+
+import java.util.List;
+
+/**
+ * @author Rain
+ */
+@Mapper
+public interface GreenRecyclingRecordMapper extends BaseMapper<GreenRecyclingRecord> {
+
+	/**
+	 * 获取客户充值记录
+	 *
+	 * @param greenRecyclingRecordVo 参数
+	 * @return 结果
+	 */
+	List<GreenRecyclingRecordVo> getCustomerGreenRecyclingRecordList(GreenRecyclingRecordVo greenRecyclingRecordVo);
+}

+ 43 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/mapper/GreenRecyclingRecordMapper.xml

@@ -0,0 +1,43 @@
+<?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">
+<!--suppress ALL -->
+<mapper namespace="org.springblade.salesPart.recycling.mapper.GreenRecyclingRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="greenRecyclingRecordResultMap" type="org.springblade.salesPart.recycling.entity.GreenRecyclingRecord">
+        <result column="id" property="id"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="customer_id" property="customerId"/>
+        <result column="original_quota" property="originalQuota"/>
+        <result column="adjustable_quota" property="adjustableQuota"/>
+        <result column="adjusted_quota" property="adjustedQuota"/>
+        <result column="change_time" property="changeTime"/>
+        <result column="change_user" property="changeUser"/>
+        <result column="change_type" property="changeType"/>
+    </resultMap>
+
+    <resultMap id="greenRecyclingRecordVoResultMap" type="org.springblade.salesPart.recycling.vo.GreenRecyclingRecordVo">
+        <result column="id" property="id"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="customer_id" property="customerId"/>
+        <result column="original_quota" property="originalQuota"/>
+        <result column="adjustable_quota" property="adjustableQuota"/>
+        <result column="adjusted_quota" property="adjustedQuota"/>
+        <result column="change_time" property="changeTime"/>
+        <result column="change_user" property="changeUser"/>
+        <result column="change_type" property="changeType"/>
+        <result column="name" property="changeUserName"/>
+    </resultMap>
+    <select id="getCustomerGreenRecyclingRecordList"
+            resultMap="greenRecyclingRecordVoResultMap"
+            parameterType="org.springblade.salesPart.recycling.vo.GreenRecyclingRecordVo">
+        SELECT grr.*,
+               bu.name
+        FROM pjpf_green_recycling_record grr
+                 LEFT JOIN blade_user bu ON grr.change_user = bu.id
+        WHERE grr.tenant_id = #{tenantId}
+
+    </select>
+
+
+</mapper>

+ 25 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/IGreenRecyclingItemService.java

@@ -0,0 +1,25 @@
+package org.springblade.salesPart.recycling.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.salesPart.recycling.entity.GreenRecyclingItem;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingItemVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 服务类
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+public interface IGreenRecyclingItemService extends IService<GreenRecyclingItem> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param greenRecyclingItem
+	 * @return
+	 */
+	IPage<GreenRecyclingItemVO> selectGreenRecyclingItemPage(IPage<GreenRecyclingItemVO> page, GreenRecyclingItemVO greenRecyclingItem);
+
+}

+ 22 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/IGreenRecyclingRecordService.java

@@ -0,0 +1,22 @@
+package org.springblade.salesPart.recycling.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.salesPart.recycling.entity.GreenRecyclingRecord;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingRecordVo;
+
+import java.util.List;
+
+/**
+ * @author Rain
+ */
+public interface IGreenRecyclingRecordService extends IService<GreenRecyclingRecord> {
+
+
+	/**
+	 * 获取客户余额充值记录列表
+	 *
+	 * @param greenRecyclingRecordVo 参数
+	 * @return 结果
+	 */
+	List<GreenRecyclingRecordVo> getCustomerGreenRecyclingRecordList(GreenRecyclingRecordVo greenRecyclingRecordVo);
+}

+ 53 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/IGreenRecyclingService.java

@@ -0,0 +1,53 @@
+package org.springblade.salesPart.recycling.service;
+
+import org.springblade.core.tool.api.R;
+import org.springblade.salesPart.recycling.dto.GreenRecyclingDTO;
+import org.springblade.salesPart.recycling.entity.GreenRecycling;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingVO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.system.entity.DictBiz;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 余额充值表 服务类
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+public interface IGreenRecyclingService extends IService<GreenRecycling> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page             分页
+	 * @param greenRecyclingVO 参数
+	 * @return 结果
+	 */
+	IPage<GreenRecyclingDTO> selectGreenRecyclingPage(IPage<GreenRecyclingDTO> page, GreenRecyclingVO greenRecyclingVO);
+
+	/**
+	 * 新增绿色回收订单
+	 *
+	 * @param greenRecycling 参数
+	 * @return 结果
+	 */
+	R<Long> saveAll(@Valid GreenRecyclingVO greenRecycling);
+
+	/**
+	 * 审核
+	 *
+	 * @param greenRecycling 参数
+	 * @return 结果
+	 */
+	R<String> greenRecyclingAudit(GreenRecycling greenRecycling);
+
+	/**
+	 * 获取商品列表
+	 *
+	 * @return 列表
+	 */
+	R<List<DictBiz>> greenRecyclingGoods();
+}

+ 27 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/impl/GreenRecyclingItemServiceImpl.java

@@ -0,0 +1,27 @@
+package org.springblade.salesPart.recycling.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.salesPart.recycling.entity.GreenRecyclingItem;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingItemVO;
+import org.springblade.salesPart.recycling.mapper.GreenRecyclingItemMapper;
+import org.springblade.salesPart.recycling.service.IGreenRecyclingItemService;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ *  服务实现类
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@Service
+@AllArgsConstructor
+public class GreenRecyclingItemServiceImpl extends ServiceImpl<GreenRecyclingItemMapper, GreenRecyclingItem> implements IGreenRecyclingItemService {
+
+	@Override
+	public IPage<GreenRecyclingItemVO> selectGreenRecyclingItemPage(IPage<GreenRecyclingItemVO> page, GreenRecyclingItemVO greenRecyclingItem) {
+		return page.setRecords(baseMapper.selectGreenRecyclingItemPage(page, greenRecyclingItem));
+	}
+
+}

+ 25 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/impl/GreenRecyclingRecordServiceImpl.java

@@ -0,0 +1,25 @@
+package org.springblade.salesPart.recycling.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.salesPart.recycling.entity.GreenRecyclingRecord;
+import org.springblade.salesPart.recycling.mapper.GreenRecyclingRecordMapper;
+import org.springblade.salesPart.recycling.service.IGreenRecyclingRecordService;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingRecordVo;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author Rain
+ */
+@Service
+@AllArgsConstructor
+public class GreenRecyclingRecordServiceImpl extends ServiceImpl<GreenRecyclingRecordMapper, GreenRecyclingRecord> implements IGreenRecyclingRecordService {
+
+
+	@Override
+	public List<GreenRecyclingRecordVo> getCustomerGreenRecyclingRecordList(GreenRecyclingRecordVo greenRecyclingRecordVo) {
+		return baseMapper.getCustomerGreenRecyclingRecordList(greenRecyclingRecordVo);
+	}
+}

+ 107 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/recycling/service/impl/GreenRecyclingServiceImpl.java

@@ -0,0 +1,107 @@
+package org.springblade.salesPart.recycling.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.common.enums.NumberEnum;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.salesPart.corps.mapper.CorpsDescMapper;
+import org.springblade.salesPart.entity.PjCorpsDesc;
+import org.springblade.salesPart.recycling.dto.GreenRecyclingDTO;
+import org.springblade.salesPart.recycling.entity.GreenRecycling;
+import org.springblade.salesPart.recycling.mapper.GreenRecyclingItemMapper;
+import org.springblade.salesPart.recycling.mapper.GreenRecyclingRecordMapper;
+import org.springblade.salesPart.recycling.vo.GreenRecyclingVO;
+import org.springblade.salesPart.recycling.mapper.GreenRecyclingMapper;
+import org.springblade.salesPart.recycling.service.IGreenRecyclingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.salesPart.util.WxParamUtil;
+import org.springblade.system.entity.DictBiz;
+import org.springblade.system.enums.DictBizEnum;
+import org.springblade.system.feign.IDictBizClient;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 余额充值表 服务实现类
+ *
+ * @author BladeX
+ * @since 2025-06-06
+ */
+@AllArgsConstructor
+@Service
+public class GreenRecyclingServiceImpl extends ServiceImpl<GreenRecyclingMapper, GreenRecycling> implements IGreenRecyclingService {
+
+	private GreenRecyclingItemMapper greenRecyclingItemMapper;
+
+	private CorpsDescMapper corpsDescMapper;
+
+	private IDictBizClient dictBizClient;
+
+	private GreenRecyclingRecordMapper greenRecyclingRecordMapper;
+
+
+
+	@Override
+	public IPage<GreenRecyclingDTO> selectGreenRecyclingPage(IPage<GreenRecyclingDTO> page, GreenRecyclingVO greenRecyclingVO) {
+		if (!CollectionUtils.isEmpty(greenRecyclingVO.getCreateTimeList())) {
+			greenRecyclingVO.setStartDate(greenRecyclingVO.getCreateTimeList().get(0));
+			greenRecyclingVO.setEndDate(greenRecyclingVO.getCreateTimeList().get(1));
+		}
+		return page.setRecords(baseMapper.selectGreenRecyclingPage(page, greenRecyclingVO));
+	}
+
+	@Override
+	public R<Long> saveAll(GreenRecyclingVO greenRecycling) {
+		int insertCount = baseMapper.insert(greenRecycling);
+		if (insertCount <= 0) {
+			return R.fail("新增回收单失败");
+		}
+		greenRecycling.getGreenRecyclingItemList().forEach(item -> {
+			item.setPid(greenRecycling.getId());
+			item.setTenantId(greenRecycling.getTenantId());
+			greenRecyclingItemMapper.insert(item);
+		});
+		return R.data(greenRecycling.getId());
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R<String> greenRecyclingAudit(GreenRecycling greenRecycling) {
+		if (Objects.isNull(greenRecycling.getId()) || Objects.isNull(greenRecycling.getStatus())) {
+			return R.fail("缺少必要参数,请推出刷新重进");
+		}
+		int updateCount = baseMapper.updateById(greenRecycling);
+		if (updateCount <= 0) {
+			return R.fail("审核失败");
+		}
+		GreenRecycling recycling = baseMapper.selectById(greenRecycling.getId());
+		if (greenRecycling.getStatus().equals(NumberEnum.TWO.number)) {
+			PjCorpsDesc srcCorps = corpsDescMapper.selectById(recycling.getCustomerId());
+			PjCorpsDesc corpsDesc = new PjCorpsDesc();
+			corpsDesc.setId(recycling.getCustomerId());
+			corpsDesc.setTenantId(recycling.getTenantId());
+			corpsDesc.setRecoveredBalance(srcCorps.getRecoveredBalance().add(recycling.getAmount()));
+			corpsDescMapper.updateById(corpsDesc);
+			greenRecyclingRecordMapper.insert(WxParamUtil.parseGreenRecyclingRecord(corpsDesc, AuthUtil.getUserId(),
+				srcCorps.getRecoveredBalance(), recycling.getAmount(), NumberEnum.Zero.number));
+		}
+		return R.success("审核成功");
+	}
+
+	@Override
+	public R<List<DictBiz>> greenRecyclingGoods() {
+		List<DictBiz> dictBizList = dictBizClient.getDictBizListByTenantId("green_recycling_goods", AuthUtil.getTenantId());
+		if (CollectionUtils.isEmpty(dictBizList)) {
+			return R.fail("未找到回收数据,请联系管理员维护");
+		}
+		return R.data(dictBizList);
+	}
+
+
+
+}