소스 검색

退货管理

caozj 2 년 전
부모
커밋
861f6433ad
47개의 변경된 파일1803개의 추가작업 그리고 19개의 파일을 삭제
  1. 71 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/quality/QualityController.java
  2. 71 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/quality/QualityDetailController.java
  3. 71 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/sales/SalesReturnController.java
  4. 71 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/sales/SalesReturnDetailController.java
  5. 51 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/enums/ArrivalDetailStatusEnum.java
  6. 0 10
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/po/ArrivalDetail.java
  7. 17 1
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/vo/ArrivalDetailVo.java
  8. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/dto/QualityDetailDto.java
  9. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/dto/QualityDetailSelectDto.java
  10. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/dto/QualityDto.java
  11. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/dto/QualitySelectDto.java
  12. 51 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/po/Quality.java
  13. 58 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/po/QualityDetail.java
  14. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/vo/QualityDetailVo.java
  15. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/vo/QualityVo.java
  16. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/dto/SalesReturnDetailDto.java
  17. 21 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/dto/SalesReturnDetailSelectDto.java
  18. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/dto/SalesReturnDto.java
  19. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/dto/SalesReturnSelectDto.java
  20. 54 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/enums/SalesReturnDetailStatusEnum.java
  21. 51 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/enums/SalesReturnStatusEnum.java
  22. 60 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/po/SalesReturn.java
  23. 48 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/po/SalesReturnDetail.java
  24. 61 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/vo/SalesReturnDetailVo.java
  25. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/vo/SalesReturnVo.java
  26. 6 5
      hx-purchase/src/main/java/com/fjhx/purchase/flow/PurchaseFlow.java
  27. 112 0
      hx-purchase/src/main/java/com/fjhx/purchase/flow/SalesReturnFlow.java
  28. 1 1
      hx-purchase/src/main/java/com/fjhx/purchase/flow/SubscribeFlow.java
  29. 34 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/quality/QualityDetailMapper.java
  30. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/quality/QualityMapper.java
  31. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/sales/SalesReturnDetailMapper.java
  32. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/sales/SalesReturnMapper.java
  33. 5 1
      hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalDetailServiceImpl.java
  34. 54 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/quality/QualityDetailService.java
  35. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/quality/QualityService.java
  36. 72 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/quality/impl/QualityDetailServiceImpl.java
  37. 112 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/quality/impl/QualityServiceImpl.java
  38. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/sales/SalesReturnDetailService.java
  39. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/sales/SalesReturnService.java
  40. 112 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/sales/impl/SalesReturnDetailServiceImpl.java
  41. 60 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/sales/impl/SalesReturnServiceImpl.java
  42. 6 0
      hx-purchase/src/main/java/com/fjhx/purchase/util/code/CodeEnum.java
  43. 4 1
      hx-purchase/src/main/resources/mapper/arrival/ArrivalDetailMapper.xml
  44. 31 0
      hx-purchase/src/main/resources/mapper/quality/QualityDetailMapper.xml
  45. 19 0
      hx-purchase/src/main/resources/mapper/quality/QualityMapper.xml
  46. 15 0
      hx-purchase/src/main/resources/mapper/sales/SalesReturnDetailMapper.xml
  47. 18 0
      hx-purchase/src/main/resources/mapper/sales/SalesReturnMapper.xml

+ 71 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/quality/QualityController.java

@@ -0,0 +1,71 @@
+package com.fjhx.purchase.controller.quality;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.quality.vo.QualityVo;
+import com.fjhx.purchase.entity.quality.dto.QualitySelectDto;
+import com.fjhx.purchase.entity.quality.dto.QualityDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.quality.QualityService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 质检 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@DS(SourceConstant.PURCHASE)
+@RestController
+@RequestMapping("/quality")
+public class QualityController {
+
+    @Autowired
+    private QualityService qualityService;
+
+    /**
+     * 质检分页
+     */
+    @PostMapping("/page")
+    public Page<QualityVo> page(@RequestBody QualitySelectDto dto) {
+        return qualityService.getPage(dto);
+    }
+
+    /**
+     * 质检明细
+     */
+    @PostMapping("/detail")
+    public QualityVo detail(@RequestBody BaseSelectDto dto) {
+        return qualityService.detail(dto.getId());
+    }
+
+    /**
+     * 质检新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody QualityDto qualityDto) {
+        qualityService.add(qualityDto);
+    }
+
+    /**
+     * 质检编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody QualityDto qualityDto) {
+        qualityService.edit(qualityDto);
+    }
+
+    /**
+     * 质检删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        qualityService.delete(dto.getId());
+    }
+
+}

+ 71 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/quality/QualityDetailController.java

@@ -0,0 +1,71 @@
+package com.fjhx.purchase.controller.quality;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.quality.vo.QualityDetailVo;
+import com.fjhx.purchase.entity.quality.dto.QualityDetailSelectDto;
+import com.fjhx.purchase.entity.quality.dto.QualityDetailDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.quality.QualityDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 质检明细单 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@DS(SourceConstant.PURCHASE)
+@RestController
+@RequestMapping("/qualityDetail")
+public class QualityDetailController {
+
+    @Autowired
+    private QualityDetailService qualityDetailService;
+
+    /**
+     * 质检明细单分页
+     */
+    @PostMapping("/page")
+    public Page<QualityDetailVo> page(@RequestBody QualityDetailSelectDto dto) {
+        return qualityDetailService.getPage(dto);
+    }
+
+    /**
+     * 质检明细单明细
+     */
+    @PostMapping("/detail")
+    public QualityDetailVo detail(@RequestBody BaseSelectDto dto) {
+        return qualityDetailService.detail(dto.getId());
+    }
+
+    /**
+     * 质检明细单新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody QualityDetailDto qualityDetailDto) {
+        qualityDetailService.add(qualityDetailDto);
+    }
+
+    /**
+     * 质检明细单编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody QualityDetailDto qualityDetailDto) {
+        qualityDetailService.edit(qualityDetailDto);
+    }
+
+    /**
+     * 质检明细单删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        qualityDetailService.delete(dto.getId());
+    }
+
+}

+ 71 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/sales/SalesReturnController.java

@@ -0,0 +1,71 @@
+package com.fjhx.purchase.controller.sales;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.sales.vo.SalesReturnVo;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnSelectDto;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.sales.SalesReturnService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 退货 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@DS(SourceConstant.PURCHASE)
+@RestController
+@RequestMapping("/salesReturn")
+public class SalesReturnController {
+
+    @Autowired
+    private SalesReturnService salesReturnService;
+
+    /**
+     * 退货分页
+     */
+    @PostMapping("/page")
+    public Page<SalesReturnVo> page(@RequestBody SalesReturnSelectDto dto) {
+        return salesReturnService.getPage(dto);
+    }
+
+    /**
+     * 退货明细
+     */
+    @PostMapping("/detail")
+    public SalesReturnVo detail(@RequestBody BaseSelectDto dto) {
+        return salesReturnService.detail(dto.getId());
+    }
+
+    /**
+     * 退货新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody SalesReturnDto salesReturnDto) {
+        salesReturnService.add(salesReturnDto);
+    }
+
+    /**
+     * 退货编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody SalesReturnDto salesReturnDto) {
+        salesReturnService.edit(salesReturnDto);
+    }
+
+    /**
+     * 退货删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        salesReturnService.delete(dto.getId());
+    }
+
+}

+ 71 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/sales/SalesReturnDetailController.java

@@ -0,0 +1,71 @@
+package com.fjhx.purchase.controller.sales;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.sales.vo.SalesReturnDetailVo;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnDetailSelectDto;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnDetailDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.sales.SalesReturnDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 到货明细单 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@DS(SourceConstant.PURCHASE)
+@RestController
+@RequestMapping("/salesReturnDetail")
+public class SalesReturnDetailController {
+
+    @Autowired
+    private SalesReturnDetailService salesReturnDetailService;
+
+    /**
+     * 到货明细单分页
+     */
+    @PostMapping("/page")
+    public Page<SalesReturnDetailVo> page(@RequestBody SalesReturnDetailSelectDto dto) {
+        return salesReturnDetailService.getPage(dto);
+    }
+
+    /**
+     * 到货明细单明细
+     */
+    @PostMapping("/detail")
+    public SalesReturnDetailVo detail(@RequestBody BaseSelectDto dto) {
+        return salesReturnDetailService.detail(dto.getId());
+    }
+
+    /**
+     * 到货明细单新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody SalesReturnDetailDto salesReturnDetailDto) {
+        salesReturnDetailService.add(salesReturnDetailDto);
+    }
+
+    /**
+     * 到货明细单编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody SalesReturnDetailDto salesReturnDetailDto) {
+        salesReturnDetailService.edit(salesReturnDetailDto);
+    }
+
+    /**
+     * 到货明细单删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        salesReturnDetailService.delete(dto.getId());
+    }
+
+}

+ 51 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/enums/ArrivalDetailStatusEnum.java

@@ -0,0 +1,51 @@
+package com.fjhx.purchase.entity.arrival.enums;
+
+import org.apache.commons.collections4.MapUtils;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 到货质检状态枚举
+ * 质检状态 0未质检 10部分质检 20全部质检
+ */
+public enum ArrivalDetailStatusEnum {
+    STATUS_0(0, "未质检"),
+    STATUS_10(10, "部分质检"),
+    STATUS_20(20,"全部质检"),
+    ;
+    private int key;
+
+    private String value;
+
+    private static Map<Integer, String> map = new LinkedHashMap<>();
+
+    ArrivalDetailStatusEnum(int key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    /**
+     * 获取枚举map
+     *
+     * @return
+     */
+    public static Map<Integer, String> getMap() {
+        if (MapUtils.isNotEmpty(map)) {
+            return map;
+        }
+        for (ArrivalDetailStatusEnum ms : values()) {
+            map.put(ms.key, ms.value);
+        }
+        return map;
+    }
+
+    public int getKey() {
+        return key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+}

+ 0 - 10
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/po/ArrivalDetail.java

@@ -46,16 +46,6 @@ public class ArrivalDetail extends BasePo {
     private Integer status;
 
     /**
-     * 合格数量
-     */
-    private BigDecimal qualifiedCount;
-
-    /**
-     * 不合格数量
-     */
-    private BigDecimal noQualifiedCount;
-
-    /**
      * 备注
      */
     private String remark;

+ 17 - 1
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/vo/ArrivalDetailVo.java

@@ -1,10 +1,11 @@
 package com.fjhx.purchase.entity.arrival.vo;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 到货明细单列表查询返回值实体
  *
@@ -59,4 +60,19 @@ public class ArrivalDetailVo extends ArrivalDetail {
      * 货品规格型号
      */
     private String productSpec;
+
+    /**
+     * 合格数量
+     */
+    private BigDecimal qualifiedCount;
+
+    /**
+     * 不合格数量
+     */
+    private BigDecimal noQualifiedCount;
+
+    /**
+     * 质检总数
+     */
+    private BigDecimal sumQualityCount;
 }

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/dto/QualityDetailDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.quality.dto;
+
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 质检明细单新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class QualityDetailDto extends QualityDetail {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/dto/QualityDetailSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.quality.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 质检明细单列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class QualityDetailSelectDto extends BaseSelectDto {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/dto/QualityDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.quality.dto;
+
+import com.fjhx.purchase.entity.quality.po.Quality;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 质检新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class QualityDto extends Quality {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/dto/QualitySelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.quality.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 质检列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class QualitySelectDto extends BaseSelectDto {
+
+}

+ 51 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/po/Quality.java

@@ -0,0 +1,51 @@
+package com.fjhx.purchase.entity.quality.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 质检
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+@TableName("quality")
+public class Quality extends BasePo {
+
+    /**
+     * 质检单编码
+     */
+    private String code;
+
+    /**
+     * 供应商ID
+     */
+    private Long supplyId;
+
+    /**
+     * 到货单ID
+     */
+    private Long arrivalId;
+
+    /**
+     * 状态 备用字段
+     */
+    private Integer status;
+
+    /**
+     * 质检明细
+     */
+    @TableField(exist = false)
+    private List<QualityDetail> qualityDetailList;
+
+}

+ 58 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/po/QualityDetail.java

@@ -0,0 +1,58 @@
+package com.fjhx.purchase.entity.quality.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 质检明细单
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+@TableName("quality_detail")
+public class QualityDetail extends BasePo {
+
+    /**
+     * 关联ID  产品ID/货品ID
+     */
+    private Long bussinessId;
+
+    /**
+     * 到货明细ID
+     */
+    private Long arrivalDetailId;
+
+    /**
+     * 质检主表ID
+     */
+    private Long qualityId;
+
+    /**
+     * 状态--备用
+     */
+    private Integer status;
+
+    /**
+     * 合格数量
+     */
+    private BigDecimal qualifiedCount;
+
+    /**
+     * 不合格数量
+     */
+    private BigDecimal noQualifiedCount;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/vo/QualityDetailVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.quality.vo;
+
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 质检明细单列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class QualityDetailVo extends QualityDetail {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/quality/vo/QualityVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.quality.vo;
+
+import com.fjhx.purchase.entity.quality.po.Quality;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 质检列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class QualityVo extends Quality {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/dto/SalesReturnDetailDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.sales.dto;
+
+import com.fjhx.purchase.entity.sales.po.SalesReturnDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 到货明细单新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class SalesReturnDetailDto extends SalesReturnDetail {
+
+}

+ 21 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/dto/SalesReturnDetailSelectDto.java

@@ -0,0 +1,21 @@
+package com.fjhx.purchase.entity.sales.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 到货明细单列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class SalesReturnDetailSelectDto extends BaseSelectDto {
+
+    /**
+     * 状态
+     */
+    private String status;
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/dto/SalesReturnDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.sales.dto;
+
+import com.fjhx.purchase.entity.sales.po.SalesReturn;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退货新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class SalesReturnDto extends SalesReturn {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/dto/SalesReturnSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.sales.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退货列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class SalesReturnSelectDto extends BaseSelectDto {
+
+}

+ 54 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/enums/SalesReturnDetailStatusEnum.java

@@ -0,0 +1,54 @@
+package com.fjhx.purchase.entity.sales.enums;
+
+import org.apache.commons.collections4.MapUtils;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 退货明细状态枚举
+ */
+public enum SalesReturnDetailStatusEnum {
+    STATUS_10(10, "审批中"),
+    STATUS_15(15, "驳回"),
+    STATUS_20(20,"待退货"),
+    STATUS_30(30,"部分退货"),
+    STATUS_40(40,"已退货"),
+
+    STATUS_50(50,"结束"),
+    ;
+    private int key;
+
+    private String value;
+
+    private static Map<Integer, String> map = new LinkedHashMap<>();
+
+    SalesReturnDetailStatusEnum(int key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    /**
+     * 获取枚举map
+     *
+     * @return
+     */
+    public static Map<Integer, String> getMap() {
+        if (MapUtils.isNotEmpty(map)) {
+            return map;
+        }
+        for (SalesReturnDetailStatusEnum ms : values()) {
+            map.put(ms.key, ms.value);
+        }
+        return map;
+    }
+
+    public int getKey() {
+        return key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+}

+ 51 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/enums/SalesReturnStatusEnum.java

@@ -0,0 +1,51 @@
+package com.fjhx.purchase.entity.sales.enums;
+
+import org.apache.commons.collections4.MapUtils;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 退货状态枚举
+ */
+public enum SalesReturnStatusEnum {
+    DRAFT(0, "草稿"),
+    UNDER_REVIEW(10, "审批中"),
+    REJECT(20, "驳回"),
+    PASS(30,"待退货")
+    ;
+    private int key;
+
+    private String value;
+
+    private static Map<Integer, String> map = new LinkedHashMap<>();
+
+    SalesReturnStatusEnum(int key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    /**
+     * 获取枚举map
+     *
+     * @return
+     */
+    public static Map<Integer, String> getMap() {
+        if (MapUtils.isNotEmpty(map)) {
+            return map;
+        }
+        for (SalesReturnStatusEnum ms : values()) {
+            map.put(ms.key, ms.value);
+        }
+        return map;
+    }
+
+    public int getKey() {
+        return key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+}

+ 60 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/po/SalesReturn.java

@@ -0,0 +1,60 @@
+package com.fjhx.purchase.entity.sales.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 退货
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+@TableName("sales_return")
+public class SalesReturn extends BasePo {
+
+    /**
+     * 退货单编码
+     */
+    private String code;
+
+    /**
+     * 供应商ID
+     */
+    private Long supplyId;
+
+    /**
+     * 操作人
+     */
+    private String returnName;
+
+    /**
+     * 状态 10审批中  20待退货  30部分退货  40已退货  50结束
+     */
+    private Integer status;
+
+    /**
+     * 审核通过时间
+     */
+    private Date approvedDate;
+
+    /**
+     * 流程id
+     */
+    private String processInstanceId;
+
+    /**
+     * 退货明细列表
+     */
+    @TableField(exist = false)
+    private List<SalesReturnDetail> salesReturnDetailList;
+}

+ 48 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/po/SalesReturnDetail.java

@@ -0,0 +1,48 @@
+package com.fjhx.purchase.entity.sales.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 到货明细单
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+@TableName("sales_return_detail")
+public class SalesReturnDetail extends BasePo {
+
+    /**
+     * 关联ID  产品ID/货品ID
+     */
+    private Long bussinessId;
+
+    /**
+     * 退货主表ID
+     */
+    private Long salesReturnId;
+
+    /**
+     * 到货数量
+     */
+    private BigDecimal count;
+
+    /**
+     * 状态 --备用
+     */
+    private Integer status;
+
+    /**
+     * 退货原因
+     */
+    private String remark;
+
+}

+ 61 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/vo/SalesReturnDetailVo.java

@@ -0,0 +1,61 @@
+package com.fjhx.purchase.entity.sales.vo;
+
+import com.fjhx.purchase.entity.sales.po.SalesReturnDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 到货明细单列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class SalesReturnDetailVo extends SalesReturnDetail {
+
+    /**
+     * 供应商ID
+     */
+    private Long supplyId;
+
+    /**
+     * 供应商名称
+     */
+    private String supplyName;
+
+    /**
+     * 退货单号
+     */
+    private String code;
+
+    /**
+     * 货品类型
+     */
+    private Integer productType;
+
+    /**
+     * 所属分类
+     */
+    private String productCategory;
+
+    /**
+     * 货品编码
+     */
+    private String productCode;
+
+    /**
+     * 货品名称
+     */
+    private String productName;
+
+    /**
+     * 单位
+     */
+    private String productUnit;
+
+    /**
+     * 货品规格型号
+     */
+    private String productSpec;
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/sales/vo/SalesReturnVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.sales.vo;
+
+import com.fjhx.purchase.entity.sales.po.SalesReturn;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退货列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@Getter
+@Setter
+public class SalesReturnVo extends SalesReturn {
+
+}

+ 6 - 5
hx-purchase/src/main/java/com/fjhx/purchase/flow/PurchaseFlow.java

@@ -57,11 +57,12 @@ public class PurchaseFlow extends FlowDelegate {
         purchase.setCode(CodeEnum.PURCHASE.getCode());
         purchase.setPurchaseStatus(PurchaseStatusEnum.UNDER_REVIEW.getKey());
         purchaseService.save(purchase);
-        if(CollectionUtils.isNotEmpty(purchase.getPurchaseDetailList())){
-            for(PurchaseDetail s : purchase.getPurchaseDetailList()){
+        List<PurchaseDetail> purchaseDetailList = purchase.getPurchaseDetailList();
+        if(CollectionUtils.isNotEmpty(purchaseDetailList)){
+            for(PurchaseDetail s : purchaseDetailList){
                 s.setPurchaseId(purchase.getId());
             }
-            purchaseDetailService.saveBatch(purchase.getPurchaseDetailList());
+            purchaseDetailService.saveBatch(purchaseDetailList);
         }
         return purchase.getId();
     }
@@ -81,11 +82,11 @@ public class PurchaseFlow extends FlowDelegate {
         if(ObjectUtils.isEmpty(purchase)){
             throw new ServiceException("采购单不存在");
         }
-        //修改购状态为审批通过
+        //修改购状态为审批通过
         purchase.setPurchaseStatus(PurchaseStatusEnum.PASS.getKey());
         purchase.setApprovedDate(new Date());
         purchaseService.updateById(purchase);
-        //修改购明细为待采购
+        //修改购明细为待采购
         PurchaseDetail detail = new PurchaseDetail();
         detail.setStatus(PurchaseDetailStatusEnum.PASS.getKey());
         purchaseDetailService.update(detail,Wrappers.<PurchaseDetail>query()

+ 112 - 0
hx-purchase/src/main/java/com/fjhx/purchase/flow/SalesReturnFlow.java

@@ -0,0 +1,112 @@
+package com.fjhx.purchase.flow;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.flow.core.FlowDelegate;
+import com.fjhx.purchase.entity.purchase.enums.PurchaseDetailStatusEnum;
+import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.entity.sales.enums.SalesReturnDetailStatusEnum;
+import com.fjhx.purchase.entity.sales.enums.SalesReturnStatusEnum;
+import com.fjhx.purchase.entity.sales.po.SalesReturn;
+import com.fjhx.purchase.entity.sales.po.SalesReturnDetail;
+import com.fjhx.purchase.service.sales.SalesReturnDetailService;
+import com.fjhx.purchase.service.sales.SalesReturnService;
+import com.fjhx.purchase.util.code.CodeEnum;
+import com.fjhx.wms.entity.stock.po.StockWait;
+import com.fjhx.wms.service.stock.StockWaitService;
+import com.obs.services.internal.ServiceException;
+import io.seata.spring.annotation.GlobalTransactional;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 退货流程
+ * @Author:caozj
+ * @DATE:2023/4/3 17:38
+ */
+@DS(SourceConstant.PURCHASE)
+@Component
+public class SalesReturnFlow extends FlowDelegate {
+
+    @Override
+    public String getFlowKey() {
+        return "sales_return_flow";
+    }
+
+
+    /**
+     * 发起流程
+     * @param flowId 流程ID
+     * @param submitData 申购数据
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Long start(Long flowId, JSONObject submitData) {
+        SalesReturnService salesReturnService = SpringUtil.getBean(SalesReturnService.class);
+        SalesReturnDetailService salesReturnDetailService = SpringUtil.getBean(SalesReturnDetailService.class);
+        SalesReturn salesReturn = submitData.toJavaObject(SalesReturn.class);
+        salesReturn.setCode(CodeEnum.SALES_RETURN.getCode());
+        salesReturnService.save(salesReturn);
+        List<SalesReturnDetail> salesReturnDetailList = salesReturn.getSalesReturnDetailList();
+        if(CollectionUtils.isNotEmpty(salesReturnDetailList)){
+            for(SalesReturnDetail s : salesReturnDetailList){
+                s.setSalesReturnId(salesReturn.getId());
+            }
+            salesReturnDetailService.saveBatch(salesReturnDetailList);
+        }
+        return salesReturn.getId();
+    }
+
+    /**
+     * 结束流程
+     * @param flowId 流程ID
+     * @param businessId 业务ID
+     * @param submitData 数据
+     */
+    @Override
+    @GlobalTransactional
+    public void end(Long flowId, Long businessId, JSONObject submitData) {
+        SalesReturnService salesReturnService = SpringUtil.getBean(SalesReturnService.class);
+        SalesReturnDetailService salesReturnDetailService = SpringUtil.getBean(SalesReturnDetailService.class);
+        StockWaitService stockWaitService = SpringUtil.getBean(StockWaitService.class);
+        //通过业务ID查询退货数据
+        SalesReturn salesReturn = salesReturnService.getById(businessId);
+        if(ObjectUtils.isEmpty(salesReturn)){
+            throw new ServiceException("退货单单不存在");
+        }
+        //修改退货状态为待退货
+        salesReturn.setStatus(SalesReturnStatusEnum.PASS.getKey());
+        salesReturn.setApprovedDate(new Date());
+        salesReturnService.updateById(salesReturn);
+        //修改退货明细状态为待退货
+        SalesReturnDetail detail = new SalesReturnDetail();
+        detail.setStatus(SalesReturnDetailStatusEnum.STATUS_20.getKey());
+        salesReturnDetailService.update(detail,Wrappers.<SalesReturnDetail>query()
+                .lambda().eq(SalesReturnDetail::getSalesReturnId,salesReturn.getId()));
+        List<SalesReturnDetail> salesReturnDetailList = salesReturnDetailService.list(Wrappers.<SalesReturnDetail>query()
+                        .lambda().eq(SalesReturnDetail::getSalesReturnId,salesReturn.getId()));
+        //添加一份待出库数据
+        List<StockWait> stockWaitList = new ArrayList<>();
+        for(SalesReturnDetail s:salesReturnDetailList){
+            StockWait stockWait = new StockWait();
+            stockWait.setProductId(s.getBussinessId());
+            stockWait.setBusinessId(s.getId());//到货明细ID
+            stockWait.setType(2);//入库
+            stockWait.setStatus(0);//待入库
+            stockWait.setBusinessType(4);//退货出库
+            stockWait.setQuantity(s.getCount());
+            stockWaitList.add(stockWait);
+        }
+        stockWaitService.saveBatch(stockWaitList);
+    }
+}

+ 1 - 1
hx-purchase/src/main/java/com/fjhx/purchase/flow/SubscribeFlow.java

@@ -55,7 +55,7 @@ public class SubscribeFlow extends FlowDelegate {
             for(SubscribeDetail s : SubscribeDetails){
                 s.setSubscribeId(subscribe.getId());
             }
-            subscribeDetailService.saveBatch(subscribe.getSubscribeDetailList());
+            subscribeDetailService.saveBatch(SubscribeDetails);
         }
         return subscribe.getId();
     }

+ 34 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/quality/QualityDetailMapper.java

@@ -0,0 +1,34 @@
+package com.fjhx.purchase.mapper.quality;
+
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.quality.vo.QualityDetailVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+
+
+/**
+ * <p>
+ * 质检明细单 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+public interface QualityDetailMapper extends BaseMapper<QualityDetail> {
+
+    /**
+     * 质检明细单分页
+     */
+    Page<QualityDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<QualityDetail> wrapper);
+
+    /**
+     * 获取当前到货明细总质检数量
+     * @param arrivalDetailId
+     * @return
+     */
+    BigDecimal getSumQualityCount(@Param("arrivalDetailId")Long arrivalDetailId);
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/quality/QualityMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.mapper.quality;
+
+import com.fjhx.purchase.entity.quality.po.Quality;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.quality.vo.QualityVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 质检 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+public interface QualityMapper extends BaseMapper<Quality> {
+
+    /**
+     * 质检分页
+     */
+    Page<QualityVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Quality> wrapper);
+
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/sales/SalesReturnDetailMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.mapper.sales;
+
+import com.fjhx.purchase.entity.sales.po.SalesReturnDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.sales.vo.SalesReturnDetailVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 到货明细单 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+public interface SalesReturnDetailMapper extends BaseMapper<SalesReturnDetail> {
+
+    /**
+     * 到货明细单分页
+     */
+    Page<SalesReturnDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<SalesReturnDetail> wrapper);
+
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/sales/SalesReturnMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.mapper.sales;
+
+import com.fjhx.purchase.entity.sales.po.SalesReturn;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.sales.vo.SalesReturnVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 退货 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+public interface SalesReturnMapper extends BaseMapper<SalesReturn> {
+
+    /**
+     * 退货分页
+     */
+    Page<SalesReturnVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<SalesReturn> wrapper);
+
+}

+ 5 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalDetailServiceImpl.java

@@ -14,6 +14,7 @@ import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.mapper.arrival.ArrivalDetailMapper;
 import com.fjhx.purchase.service.arrival.ArrivalDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.purchase.service.quality.QualityDetailService;
 import com.fjhx.supply.entity.supplier.po.SupplierInfo;
 import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.ruoyi.common.utils.StringUtils;
@@ -49,6 +50,8 @@ public class ArrivalDetailServiceImpl extends ServiceImpl<ArrivalDetailMapper, A
     @Autowired
     private ProductInfoService productInfoService;
 
+    @Autowired
+    private QualityDetailService qualityDetailService;
     /**
      * 分页
      * @param dto
@@ -61,6 +64,7 @@ public class ArrivalDetailServiceImpl extends ServiceImpl<ArrivalDetailMapper, A
             wrapper.eq("t1", PurchaseDetail::getStatus,dto.getStatus());
         }
         wrapper.orderByDesc("t1", ArrivalDetail::getCreateTime);
+        wrapper.groupBy("t1.id");
         Page<ArrivalDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ArrivalDetailVo> list = page.getRecords();
         if(CollectionUtils.isNotEmpty(list)){
@@ -109,9 +113,9 @@ public class ArrivalDetailServiceImpl extends ServiceImpl<ArrivalDetailMapper, A
         if(MapUtils.isNotEmpty(productMap)) {
             for(ArrivalDetail s:arrivalDetailList){
                 //查询出当前这款到货明细的质检总数
-
                 ArrivalDetailVo result = BeanUtil.toBean(s, ArrivalDetailVo.class);
                 ProductInfoVo p = productMap.get(s.getBussinessId()).get(0);
+                result.setSumQualityCount(qualityDetailService.getSumQualityCount(s.getId()));
                 result.setProductCategory(p.getClassifyName());
                 result.setProductCode(p.getCode());
                 result.setProductUnit(p.getUnit());

+ 54 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/quality/QualityDetailService.java

@@ -0,0 +1,54 @@
+package com.fjhx.purchase.service.quality;
+
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.quality.vo.QualityDetailVo;
+import com.fjhx.purchase.entity.quality.dto.QualityDetailSelectDto;
+import com.fjhx.purchase.entity.quality.dto.QualityDetailDto;
+
+import java.math.BigDecimal;
+
+
+/**
+ * <p>
+ * 质检明细单 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+public interface QualityDetailService extends BaseService<QualityDetail> {
+
+    /**
+     * 质检明细单分页
+     */
+    Page<QualityDetailVo> getPage(QualityDetailSelectDto dto);
+
+    /**
+     * 质检明细单明细
+     */
+    QualityDetailVo detail(Long id);
+
+    /**
+     * 质检明细单新增
+     */
+    void add(QualityDetailDto qualityDetailDto);
+
+    /**
+     * 质检明细单编辑
+     */
+    void edit(QualityDetailDto qualityDetailDto);
+
+    /**
+     * 质检明细单删除
+     */
+    void delete(Long id);
+
+    /**
+     * 获取当前到货明细总质检数量
+     * @param arrivalDetailId
+     * @return
+     */
+    BigDecimal getSumQualityCount(Long arrivalDetailId);
+}

+ 46 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/quality/QualityService.java

@@ -0,0 +1,46 @@
+package com.fjhx.purchase.service.quality;
+
+import com.fjhx.purchase.entity.quality.po.Quality;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.quality.vo.QualityVo;
+import com.fjhx.purchase.entity.quality.dto.QualitySelectDto;
+import com.fjhx.purchase.entity.quality.dto.QualityDto;
+
+
+/**
+ * <p>
+ * 质检 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+public interface QualityService extends BaseService<Quality> {
+
+    /**
+     * 质检分页
+     */
+    Page<QualityVo> getPage(QualitySelectDto dto);
+
+    /**
+     * 质检明细
+     */
+    QualityVo detail(Long id);
+
+    /**
+     * 质检新增
+     */
+    void add(Quality quality);
+
+    /**
+     * 质检编辑
+     */
+    void edit(QualityDto qualityDto);
+
+    /**
+     * 质检删除
+     */
+    void delete(Long id);
+
+}

+ 72 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/quality/impl/QualityDetailServiceImpl.java

@@ -0,0 +1,72 @@
+package com.fjhx.purchase.service.quality.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
+import com.fjhx.purchase.mapper.quality.QualityDetailMapper;
+import com.fjhx.purchase.service.quality.QualityDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.quality.vo.QualityDetailVo;
+import com.fjhx.purchase.entity.quality.dto.QualityDetailSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.quality.dto.QualityDetailDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.math.BigDecimal;
+
+
+/**
+ * <p>
+ * 质检明细单 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@DS(SourceConstant.PURCHASE)
+@Service
+public class QualityDetailServiceImpl extends ServiceImpl<QualityDetailMapper, QualityDetail> implements QualityDetailService {
+
+    @Override
+    public Page<QualityDetailVo> getPage(QualityDetailSelectDto dto) {
+        IWrapper<QualityDetail> wrapper = getWrapper();
+        wrapper.orderByDesc("qd", QualityDetail::getId);
+        Page<QualityDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public QualityDetailVo detail(Long id) {
+        QualityDetail QualityDetail = this.getById(id);
+        QualityDetailVo result = BeanUtil.toBean(QualityDetail, QualityDetailVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(QualityDetailDto qualityDetailDto) {
+        this.save(qualityDetailDto);
+    }
+
+    @Override
+    public void edit(QualityDetailDto qualityDetailDto) {
+        this.updateById(qualityDetailDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+    /**
+     * 获取当前到货明细总质检数量
+     * @param arrivalDetailId
+     * @return
+     */
+    @Override
+    public BigDecimal getSumQualityCount(Long arrivalDetailId) {
+        return baseMapper.getSumQualityCount(arrivalDetailId);
+    }
+
+}

+ 112 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/quality/impl/QualityServiceImpl.java

@@ -0,0 +1,112 @@
+package com.fjhx.purchase.service.quality.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.purchase.entity.arrival.enums.ArrivalDetailStatusEnum;
+import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
+import com.fjhx.purchase.entity.quality.po.Quality;
+import com.fjhx.purchase.entity.quality.po.QualityDetail;
+import com.fjhx.purchase.mapper.quality.QualityMapper;
+import com.fjhx.purchase.service.arrival.ArrivalDetailService;
+import com.fjhx.purchase.service.quality.QualityDetailService;
+import com.fjhx.purchase.service.quality.QualityService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.purchase.util.code.CodeEnum;
+import com.obs.services.internal.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.quality.vo.QualityVo;
+import com.fjhx.purchase.entity.quality.dto.QualitySelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.quality.dto.QualityDto;
+import cn.hutool.core.bean.BeanUtil;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * <p>
+ * 质检 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@DS(SourceConstant.PURCHASE)
+@Service
+public class QualityServiceImpl extends ServiceImpl<QualityMapper, Quality> implements QualityService {
+
+    @Autowired
+    private QualityDetailService qualityDetailService;
+
+    @Autowired
+    private ArrivalDetailService arrivalDetailService;
+
+    @Override
+    public Page<QualityVo> getPage(QualitySelectDto dto) {
+        IWrapper<Quality> wrapper = getWrapper();
+        wrapper.orderByDesc("q", Quality::getId);
+        Page<QualityVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public QualityVo detail(Long id) {
+        Quality Quality = this.getById(id);
+        QualityVo result = BeanUtil.toBean(Quality, QualityVo.class);
+        return result;
+    }
+
+    /**
+     * 添加
+     * @param quality
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void add(Quality quality) {
+        quality.setCode(CodeEnum.QUALITY.getCode());
+        this.save(quality);
+        List<QualityDetail> qualityDetailList = quality.getQualityDetailList();
+        if(CollectionUtils.isNotEmpty(qualityDetailList)){
+            List<ArrivalDetail> upAll = new ArrayList<>();
+            for(QualityDetail q:qualityDetailList){
+                if(q.getQualifiedCount().compareTo(BigDecimal.ZERO)==0
+                        &&q.getNoQualifiedCount().compareTo(BigDecimal.ZERO)==0){
+                    throw new ServiceException("当前质检数量不能为0");
+                }
+                q.setQualityId(quality.getId());
+                //赋值质检状态
+                BigDecimal qualityCount = qualityDetailService.getSumQualityCount(q.getArrivalDetailId());
+                //查询到货数量
+                ArrivalDetail arrivalDetail = arrivalDetailService.getById(q.getArrivalDetailId());
+                BigDecimal sum = qualityCount.add(q.getQualifiedCount().add(q.getNoQualifiedCount()));
+                ArrivalDetail up = new ArrivalDetail();
+                up.setId(q.getArrivalDetailId());
+                if(sum.compareTo(arrivalDetail.getCount())>-1){//如果质检数量大于等于到货数量
+                    up.setStatus(ArrivalDetailStatusEnum.STATUS_20.getKey());
+                }else{
+                    up.setStatus(ArrivalDetailStatusEnum.STATUS_10.getKey());
+                }
+                upAll.add(up);
+            }
+            arrivalDetailService.updateBatchById(upAll);
+            qualityDetailService.saveBatch(qualityDetailList);
+        }
+    }
+
+    @Override
+    public void edit(QualityDto qualityDto) {
+        this.updateById(qualityDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 46 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/sales/SalesReturnDetailService.java

@@ -0,0 +1,46 @@
+package com.fjhx.purchase.service.sales;
+
+import com.fjhx.purchase.entity.sales.po.SalesReturnDetail;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.sales.vo.SalesReturnDetailVo;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnDetailSelectDto;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnDetailDto;
+
+
+/**
+ * <p>
+ * 到货明细单 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+public interface SalesReturnDetailService extends BaseService<SalesReturnDetail> {
+
+    /**
+     * 到货明细单分页
+     */
+    Page<SalesReturnDetailVo> getPage(SalesReturnDetailSelectDto dto);
+
+    /**
+     * 到货明细单明细
+     */
+    SalesReturnDetailVo detail(Long id);
+
+    /**
+     * 到货明细单新增
+     */
+    void add(SalesReturnDetailDto salesReturnDetailDto);
+
+    /**
+     * 到货明细单编辑
+     */
+    void edit(SalesReturnDetailDto salesReturnDetailDto);
+
+    /**
+     * 到货明细单删除
+     */
+    void delete(Long id);
+
+}

+ 46 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/sales/SalesReturnService.java

@@ -0,0 +1,46 @@
+package com.fjhx.purchase.service.sales;
+
+import com.fjhx.purchase.entity.sales.po.SalesReturn;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.sales.vo.SalesReturnVo;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnSelectDto;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnDto;
+
+
+/**
+ * <p>
+ * 退货 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+public interface SalesReturnService extends BaseService<SalesReturn> {
+
+    /**
+     * 退货分页
+     */
+    Page<SalesReturnVo> getPage(SalesReturnSelectDto dto);
+
+    /**
+     * 退货明细
+     */
+    SalesReturnVo detail(Long id);
+
+    /**
+     * 退货新增
+     */
+    void add(SalesReturnDto salesReturnDto);
+
+    /**
+     * 退货编辑
+     */
+    void edit(SalesReturnDto salesReturnDto);
+
+    /**
+     * 退货删除
+     */
+    void delete(Long id);
+
+}

+ 112 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/sales/impl/SalesReturnDetailServiceImpl.java

@@ -0,0 +1,112 @@
+package com.fjhx.purchase.service.sales.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.item.entity.product.vo.ProductInfoVo;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
+import com.fjhx.purchase.entity.sales.po.SalesReturnDetail;
+import com.fjhx.purchase.mapper.sales.SalesReturnDetailMapper;
+import com.fjhx.purchase.service.sales.SalesReturnDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.supply.entity.supplier.po.SupplierInfo;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
+import com.ruoyi.common.utils.StringUtils;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.sales.vo.SalesReturnDetailVo;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnDetailSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnDetailDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 到货明细单 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@DS(SourceConstant.PURCHASE)
+@Service
+public class SalesReturnDetailServiceImpl extends ServiceImpl<SalesReturnDetailMapper, SalesReturnDetail> implements SalesReturnDetailService {
+
+    @Autowired
+    private SupplierInfoService supplierInfoService;
+
+    @Autowired
+    private ProductInfoService productInfoService;
+
+
+    @Override
+    public Page<SalesReturnDetailVo> getPage(SalesReturnDetailSelectDto dto) {
+        IWrapper<SalesReturnDetail> wrapper = getWrapper();
+        wrapper.orderByDesc("t1", SalesReturnDetail::getCreateTime);
+        if(StringUtils.isNotEmpty(dto.getStatus())){
+            wrapper.eq("t1",SalesReturnDetail::getStatus,dto.getStatus());
+        }
+        Page<SalesReturnDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<SalesReturnDetailVo> list = page.getRecords();
+        if(CollectionUtils.isNotEmpty(list)){
+            List<Long> supplyIds = list.stream().map(SalesReturnDetailVo::getSupplyId).collect(Collectors.toList());
+            List<SupplierInfo> supplierInfoList = supplierInfoService.list(Wrappers.<SupplierInfo>query().lambda().in(SupplierInfo::getId,supplyIds));
+            Map<Long,List<SupplierInfo>> supplyMap = supplierInfoList.stream().distinct().collect(Collectors.groupingBy(SupplierInfo::getId));
+            if(MapUtils.isNotEmpty(supplyMap)){
+                for(SalesReturnDetailVo p:list){
+                    List<SupplierInfo> supplys = supplyMap.getOrDefault(p.getSupplyId(),null);
+                    p.setSupplyName(supplys==null?null:supplys.get(0).getName());
+                }
+            }
+            //查询产品
+            List<Long> productIds = list.stream().map(SalesReturnDetailVo::getBussinessId).collect(Collectors.toList());
+            List<ProductInfoVo> productInfoVos = productInfoService.getListByProductIds(productIds);
+            Map<Long, List<ProductInfoVo>> productMap = productInfoVos.stream().collect(Collectors.groupingBy(ProductInfoVo::getId));
+            if(MapUtils.isNotEmpty(productMap)) {
+                for(SalesReturnDetailVo s:list){
+                    ProductInfoVo p = productMap.get(s.getBussinessId()).get(0);
+                    s.setProductCategory(p.getClassifyName());
+                    s.setProductCode(p.getCode());
+                    s.setProductUnit(p.getUnit());
+                    s.setProductType(p.getType());
+                    s.setProductName(p.getName());
+                    s.setProductSpec(p.getSpec());
+                }
+            }
+        }
+        return page;
+    }
+
+    @Override
+    public SalesReturnDetailVo detail(Long id) {
+        SalesReturnDetail SalesReturnDetail = this.getById(id);
+        SalesReturnDetailVo result = BeanUtil.toBean(SalesReturnDetail, SalesReturnDetailVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(SalesReturnDetailDto salesReturnDetailDto) {
+        this.save(salesReturnDetailDto);
+    }
+
+    @Override
+    public void edit(SalesReturnDetailDto salesReturnDetailDto) {
+        this.updateById(salesReturnDetailDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 60 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/sales/impl/SalesReturnServiceImpl.java

@@ -0,0 +1,60 @@
+package com.fjhx.purchase.service.sales.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.purchase.entity.sales.po.SalesReturn;
+import com.fjhx.purchase.mapper.sales.SalesReturnMapper;
+import com.fjhx.purchase.service.sales.SalesReturnService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.sales.vo.SalesReturnVo;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.sales.dto.SalesReturnDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 退货 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-11
+ */
+@DS(SourceConstant.PURCHASE)
+@Service
+public class SalesReturnServiceImpl extends ServiceImpl<SalesReturnMapper, SalesReturn> implements SalesReturnService {
+
+    @Override
+    public Page<SalesReturnVo> getPage(SalesReturnSelectDto dto) {
+        IWrapper<SalesReturn> wrapper = getWrapper();
+        wrapper.orderByDesc("sr", SalesReturn::getId);
+        Page<SalesReturnVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public SalesReturnVo detail(Long id) {
+        SalesReturn SalesReturn = this.getById(id);
+        SalesReturnVo result = BeanUtil.toBean(SalesReturn, SalesReturnVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(SalesReturnDto salesReturnDto) {
+        this.save(salesReturnDto);
+    }
+
+    @Override
+    public void edit(SalesReturnDto salesReturnDto) {
+        this.updateById(salesReturnDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 6 - 0
hx-purchase/src/main/java/com/fjhx/purchase/util/code/CodeEnum.java

@@ -8,8 +8,10 @@ import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fjhx.purchase.entity.arrival.po.Arrival;
 import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.entity.quality.po.Quality;
 import com.fjhx.purchase.service.arrival.ArrivalService;
 import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.purchase.service.quality.QualityService;
 import com.fjhx.purchase.service.subscribe.SubscribeService;
 import com.obs.services.internal.ServiceException;
 import lombok.Getter;
@@ -26,6 +28,10 @@ public enum CodeEnum {
     PURCHASE("PO", "yyMM-", "code", 3, PurchaseService.class),
     //到货
     ARRIVAL("PA", "yyMM-", "code", 3, ArrivalService.class),
+    //质检
+    QUALITY("ZJ", "yyMM-", "code", 3, QualityService.class),
+    //退货
+    SALES_RETURN("ZJ", "yyMM-", "code", 3, QualityService.class),
     ;
 
     CodeEnum(String prefix, String dateFormat, String codeFieldName, Integer length, Class<? extends IService<?>> serviceCls) {

+ 4 - 1
hx-purchase/src/main/resources/mapper/arrival/ArrivalDetailMapper.xml

@@ -5,10 +5,13 @@
         SELECT
             t1.*,
             t2.`code`,
-            t2.supply_id
+            t2.supply_id,
+            IFNULL( SUM( t3.qualified_count ), 0 ) AS qualifiedCount,
+            IFNULL( SUM( t3.no_qualified_count ), 0 ) AS noQualifiedCount
         FROM
             arrival_detail t1
         LEFT JOIN arrival t2 ON t1.arrival_id = t2.id
+        LEFT JOIN quality_detail t3 ON t1.id = t3.arrival_detail_id
             ${ew.customSqlSegment}
     </select>
 

+ 31 - 0
hx-purchase/src/main/resources/mapper/quality/QualityDetailMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.purchase.mapper.quality.QualityDetailMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.quality.vo.QualityDetailVo">
+        select
+            qd.id,
+            qd.bussiness_id,
+            qd.purchase_detail_id,
+            qd.arrival_id,
+            qd.count,
+            qd.status,
+            qd.qualified_count,
+            qd.no_qualified_count,
+            qd.remark,
+            qd.create_user,
+            qd.create_time,
+            qd.update_user,
+            qd.update_time
+        from quality_detail qd
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getSumQualityCount" resultType="java.math.BigDecimal">
+        SELECT
+            IFNULL(SUM(qualified_count+no_qualified_count),0) AS sumQualityCount
+        FROM
+            quality_detail
+        WHERE
+            arrival_detail_id = #{arrivalDetailId}
+    </select>
+</mapper>

+ 19 - 0
hx-purchase/src/main/resources/mapper/quality/QualityMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.purchase.mapper.quality.QualityMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.quality.vo.QualityVo">
+        select
+            q.id,
+            q.code,
+            q.supply_id,
+            q.arrival_id,
+            q.status,
+            q.create_user,
+            q.create_time,
+            q.update_user,
+            q.update_time
+        from quality q
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 15 - 0
hx-purchase/src/main/resources/mapper/sales/SalesReturnDetailMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.purchase.mapper.sales.SalesReturnDetailMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.sales.vo.SalesReturnDetailVo">
+        SELECT
+            t1.*,
+            t2.`code`,
+            t2.supply_id
+        FROM
+            sales_return_detail t1
+        LEFT JOIN sales_return t2 ON t1.sales_return_id = t2.id
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 18 - 0
hx-purchase/src/main/resources/mapper/sales/SalesReturnMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.purchase.mapper.sales.SalesReturnMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.sales.vo.SalesReturnVo">
+        select
+            sr.id,
+            sr.code,
+            sr.supply_id,
+            sr.status,
+            sr.create_user,
+            sr.create_time,
+            sr.update_user,
+            sr.update_time
+        from sales_return sr
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>