caozj 2 rokov pred
rodič
commit
89835e5526
29 zmenil súbory, kde vykonal 924 pridanie a 18 odobranie
  1. 5 0
      hx-purchase/pom.xml
  2. 69 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/arrival/ArrivalController.java
  3. 68 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/arrival/ArrivalDetailController.java
  4. 6 6
      hx-purchase/src/main/java/com/fjhx/purchase/controller/purchase/PurchaseDetailController.java
  5. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/dto/ArrivalDetailDto.java
  6. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/dto/ArrivalDetailSelectDto.java
  7. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/dto/ArrivalDto.java
  8. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/dto/ArrivalSelectDto.java
  9. 56 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/po/Arrival.java
  10. 63 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/po/ArrivalDetail.java
  11. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/vo/ArrivalDetailVo.java
  12. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/vo/ArrivalVo.java
  13. 4 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/dto/PurchaseDetailSelectDto.java
  14. 16 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/dto/PurchaseSelectDto.java
  15. 3 1
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/enums/PurchaseStatusEnum.java
  16. 6 1
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/Purchase.java
  17. 43 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/PurchaseDetail.java
  18. 33 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/arrival/ArrivalDetailMapper.java
  19. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/arrival/ArrivalMapper.java
  20. 55 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/ArrivalDetailService.java
  21. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/ArrivalService.java
  22. 70 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalDetailServiceImpl.java
  23. 126 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalServiceImpl.java
  24. 6 6
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/PurchaseDetailService.java
  25. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseDetailServiceImpl.java
  26. 58 3
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java
  27. 8 1
      hx-purchase/src/main/java/com/fjhx/purchase/util/code/CodeEnum.java
  28. 31 0
      hx-purchase/src/main/resources/mapper/arrival/ArrivalDetailMapper.xml
  29. 19 0
      hx-purchase/src/main/resources/mapper/arrival/ArrivalMapper.xml

+ 5 - 0
hx-purchase/pom.xml

@@ -33,6 +33,11 @@
             <groupId>com.fjhx</groupId>
             <artifactId>hx-supply</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-wms</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 69 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/arrival/ArrivalController.java

@@ -0,0 +1,69 @@
+package com.fjhx.purchase.controller.arrival;
+
+import com.fjhx.purchase.entity.arrival.po.Arrival;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.arrival.vo.ArrivalVo;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalSelectDto;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.arrival.ArrivalService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 到货 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+@RestController
+@RequestMapping("/arrival")
+public class ArrivalController {
+
+    @Autowired
+    private ArrivalService arrivalService;
+
+    /**
+     * 到货分页
+     */
+    @PostMapping("/page")
+    public Page<ArrivalVo> page(@RequestBody ArrivalSelectDto dto) {
+        return arrivalService.getPage(dto);
+    }
+
+    /**
+     * 到货明细
+     */
+    @PostMapping("/detail")
+    public ArrivalVo detail(@RequestBody BaseSelectDto dto) {
+        return arrivalService.detail(dto.getId());
+    }
+
+    /**
+     * 到货新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody Arrival arrival) {
+        arrivalService.add(arrival);
+    }
+
+    /**
+     * 到货编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ArrivalDto arrivalDto) {
+        arrivalService.edit(arrivalDto);
+    }
+
+    /**
+     * 到货删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        arrivalService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/arrival/ArrivalDetailController.java

@@ -0,0 +1,68 @@
+package com.fjhx.purchase.controller.arrival;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailSelectDto;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.arrival.ArrivalDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 到货明细单 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+@RestController
+@RequestMapping("/arrivalDetail")
+public class ArrivalDetailController {
+
+    @Autowired
+    private ArrivalDetailService arrivalDetailService;
+
+    /**
+     * 到货明细单分页
+     */
+    @PostMapping("/page")
+    public Page<ArrivalDetailVo> page(@RequestBody ArrivalDetailSelectDto dto) {
+        return arrivalDetailService.getPage(dto);
+    }
+
+    /**
+     * 到货明细单明细
+     */
+    @PostMapping("/detail")
+    public ArrivalDetailVo detail(@RequestBody BaseSelectDto dto) {
+        return arrivalDetailService.detail(dto.getId());
+    }
+
+    /**
+     * 到货明细单新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ArrivalDetailDto arrivalDetailDto) {
+        arrivalDetailService.add(arrivalDetailDto);
+    }
+
+    /**
+     * 到货明细单编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ArrivalDetailDto arrivalDetailDto) {
+        arrivalDetailService.edit(arrivalDetailDto);
+    }
+
+    /**
+     * 到货明细单删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        arrivalDetailService.delete(dto.getId());
+    }
+
+}

+ 6 - 6
hx-purchase/src/main/java/com/fjhx/purchase/controller/purchase/PurchaseDetailController.java

@@ -14,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * <p>
- * 申购单 前端控制器
+ * 采购明细 前端控制器
  * </p>
  *
  * @author 
@@ -29,7 +29,7 @@ public class PurchaseDetailController {
     private PurchaseDetailService purchaseDetailService;
 
     /**
-     * 申购单分页
+     * 采购明细分页
      */
     @PostMapping("/page")
     public Page<PurchaseDetailVo> page(@RequestBody PurchaseDetailSelectDto dto) {
@@ -37,7 +37,7 @@ public class PurchaseDetailController {
     }
 
     /**
-     * 申购单明细
+     * 采购明细明细
      */
     @PostMapping("/detail")
     public PurchaseDetailVo detail(@RequestBody BaseSelectDto dto) {
@@ -45,7 +45,7 @@ public class PurchaseDetailController {
     }
 
     /**
-     * 申购单新增
+     * 采购明细新增
      */
     @PostMapping("/add")
     public void add(@RequestBody PurchaseDetailDto purchaseDetailDto) {
@@ -53,7 +53,7 @@ public class PurchaseDetailController {
     }
 
     /**
-     * 申购单编辑
+     * 采购明细编辑
      */
     @PostMapping("/edit")
     public void edit(@RequestBody PurchaseDetailDto purchaseDetailDto) {
@@ -61,7 +61,7 @@ public class PurchaseDetailController {
     }
 
     /**
-     * 申购单删除
+     * 采购明细删除
      */
     @PostMapping("/delete")
     public void delete(@RequestBody BaseSelectDto dto) {

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/dto/ArrivalDetailDto.java

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

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/dto/ArrivalDetailSelectDto.java

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

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/dto/ArrivalDto.java

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

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/dto/ArrivalSelectDto.java

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

+ 56 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/po/Arrival.java

@@ -0,0 +1,56 @@
+package com.fjhx.purchase.entity.arrival.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-07
+ */
+@Getter
+@Setter
+@TableName("arrival")
+public class Arrival extends BasePo {
+
+    /**
+     * 采购编码
+     */
+    private String code;
+
+    /**
+     * 供应商ID
+     */
+    private Long supplyId;
+
+    /**
+     * 采购单ID
+     */
+    private Long purchaseId;
+
+    /**
+     * 状态 备用字段
+     */
+    private Integer status;
+
+    /**
+     * 到货明细列表
+     */
+    @TableField(exist = false)
+    private List<ArrivalDetail> arrivalDetailList;
+
+    /**
+     * 到货状态
+     */
+    @TableField(exist = false)
+    private Integer arrivalStatus;
+}

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

@@ -0,0 +1,63 @@
+package com.fjhx.purchase.entity.arrival.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-07
+ */
+@Getter
+@Setter
+@TableName("arrival_detail")
+public class ArrivalDetail extends BasePo {
+
+    /**
+     * 关联ID  产品ID/货品ID
+     */
+    private Long bussinessId;
+
+    /**
+     * 到货主表ID
+     */
+    private Long arrivalId;
+
+    /**
+     * 采购明细ID
+     */
+    private Long purchaseDetailId;
+
+    /**
+     * 到货数量
+     */
+    private BigDecimal count;
+
+    /**
+     * 质检状态 0未质检 10部分质检 20全部质检
+     */
+    private Integer status;
+
+    /**
+     * 合格数量
+     */
+    private BigDecimal qualifiedCount;
+
+    /**
+     * 不合格数量
+     */
+    private BigDecimal noQualifiedCount;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

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

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.arrival.vo;
+
+import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 到货明细单列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+@Getter
+@Setter
+public class ArrivalDetailVo extends ArrivalDetail {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/vo/ArrivalVo.java

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

+ 4 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/dto/PurchaseDetailSelectDto.java

@@ -14,4 +14,8 @@ import lombok.Setter;
 @Setter
 public class PurchaseDetailSelectDto extends BaseSelectDto {
 
+    /**
+     * 质检状态
+     */
+    private String status;
 }

+ 16 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/dto/PurchaseSelectDto.java

@@ -14,4 +14,20 @@ import lombok.Setter;
 @Setter
 public class PurchaseSelectDto extends BaseSelectDto {
 
+    /**
+     * 采购状态
+     */
+    private Integer purchaseStatus;
+
+    /**
+     * 到货状态
+     */
+    private Integer arrivalStatus;
+
+    /**
+     * 付款状态
+     */
+    private Integer payStatus;
+
+
 }

+ 3 - 1
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/enums/PurchaseStatusEnum.java

@@ -12,7 +12,9 @@ public enum PurchaseStatusEnum {
     DRAFT(0, "草稿"),
     UNDER_REVIEW(10, "审批中"),
     REJECT(20, "驳回"),
-    PASS(30,"通过"),
+    PASS(30,"已采购"),
+    CENCELLATION(88,"作废"),
+    TERMINATION(99,"终止"),
     ;
     private int key;
 

+ 6 - 1
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/Purchase.java

@@ -3,6 +3,8 @@ package com.fjhx.purchase.entity.purchase.po;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.domain.BasePo;
+
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -67,7 +69,10 @@ public class Purchase extends BasePo {
      */
     private Integer arrivalStatus;
 
-
+    /**
+     * 采购总金额
+     */
+    private BigDecimal amount;
     /**
      * 审核通过时间
      */

+ 43 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/PurchaseDetail.java

@@ -1,5 +1,6 @@
 package com.fjhx.purchase.entity.purchase.po;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;
 
@@ -66,4 +67,46 @@ public class PurchaseDetail extends BasePo {
      */
     private String remark;
 
+    /**
+     * 货品类型
+     */
+    @TableField(exist = false)
+    private Integer productType;
+
+    /**
+     * 所属分类
+     */
+    @TableField(exist = false)
+    private String productCategory;
+
+    /**
+     * 货品编码
+     */
+    @TableField(exist = false)
+    private String productCode;
+
+    /**
+     * 货品名称
+     */
+    @TableField(exist = false)
+    private String productName;
+
+    /**
+     * 单位
+     */
+    @TableField(exist = false)
+    private String productUnit;
+
+    /**
+     * 货品规格型号
+     */
+    @TableField(exist = false)
+    private String productSpec;
+
+    /**
+     * 到货总量
+     */
+    @TableField(exist = false)
+    private BigDecimal sumArrivalCount;
+
 }

+ 33 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/arrival/ArrivalDetailMapper.java

@@ -0,0 +1,33 @@
+package com.fjhx.purchase.mapper.arrival;
+
+import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+
+
+/**
+ * <p>
+ * 到货明细单 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+public interface ArrivalDetailMapper extends BaseMapper<ArrivalDetail> {
+
+    /**
+     * 到货明细单分页
+     */
+    Page<ArrivalDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ArrivalDetail> wrapper);
+
+    /**
+     * 统计到货明细总数
+     * @return
+     */
+    BigDecimal getSumCount(@Param("purchaseDetailId")Long purchaseDetailId,@Param("businessId")Long businessId);
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/arrival/ArrivalMapper.java

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

+ 55 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/ArrivalDetailService.java

@@ -0,0 +1,55 @@
+package com.fjhx.purchase.service.arrival;
+
+import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailSelectDto;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailDto;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+
+
+/**
+ * <p>
+ * 到货明细单 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+public interface ArrivalDetailService extends BaseService<ArrivalDetail> {
+
+    /**
+     * 到货明细单分页
+     */
+    Page<ArrivalDetailVo> getPage(ArrivalDetailSelectDto dto);
+
+    /**
+     * 到货明细单明细
+     */
+    ArrivalDetailVo detail(Long id);
+
+    /**
+     * 到货明细单新增
+     */
+    void add(ArrivalDetailDto arrivalDetailDto);
+
+    /**
+     * 到货明细单编辑
+     */
+    void edit(ArrivalDetailDto arrivalDetailDto);
+
+    /**
+     * 到货明细单删除
+     */
+    void delete(Long id);
+
+    /**
+     * 统计到货明细总数
+     * @return
+     */
+    BigDecimal getSumCount(Long purchaseDetailId, Long businessId);
+
+}

+ 46 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/ArrivalService.java

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

+ 70 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalDetailServiceImpl.java

@@ -0,0 +1,70 @@
+package com.fjhx.purchase.service.arrival.impl;
+
+import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
+import com.fjhx.purchase.mapper.arrival.ArrivalDetailMapper;
+import com.fjhx.purchase.service.arrival.ArrivalDetailService;
+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.arrival.vo.ArrivalDetailVo;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.math.BigDecimal;
+
+
+/**
+ * <p>
+ * 到货明细单 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-07
+ */
+@Service
+public class ArrivalDetailServiceImpl extends ServiceImpl<ArrivalDetailMapper, ArrivalDetail> implements ArrivalDetailService {
+
+    @Override
+    public Page<ArrivalDetailVo> getPage(ArrivalDetailSelectDto dto) {
+        IWrapper<ArrivalDetail> wrapper = getWrapper();
+        wrapper.orderByDesc("ad", ArrivalDetail::getId);
+        Page<ArrivalDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public ArrivalDetailVo detail(Long id) {
+        ArrivalDetail ArrivalDetail = this.getById(id);
+        ArrivalDetailVo result = BeanUtil.toBean(ArrivalDetail, ArrivalDetailVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(ArrivalDetailDto arrivalDetailDto) {
+        this.save(arrivalDetailDto);
+    }
+
+    @Override
+    public void edit(ArrivalDetailDto arrivalDetailDto) {
+        this.updateById(arrivalDetailDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+    /**
+     * 统计到货明细总数
+     * @param purchaseDetailId
+     * @param businessId
+     * @return
+     */
+    @Override
+    public BigDecimal getSumCount(Long purchaseDetailId, Long businessId) {
+        return baseMapper.getSumCount(purchaseDetailId,businessId);
+    }
+
+}

+ 126 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalServiceImpl.java

@@ -0,0 +1,126 @@
+package com.fjhx.purchase.service.arrival.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.fjhx.purchase.entity.arrival.po.Arrival;
+import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.mapper.arrival.ArrivalMapper;
+import com.fjhx.purchase.service.arrival.ArrivalDetailService;
+import com.fjhx.purchase.service.arrival.ArrivalService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.purchase.service.purchase.PurchaseDetailService;
+import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.purchase.util.code.CodeEnum;
+import com.fjhx.wms.entity.stock.po.StockWait;
+import com.fjhx.wms.service.stock.StockWaitService;
+import io.seata.spring.annotation.GlobalTransactional;
+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.arrival.vo.ArrivalVo;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalDto;
+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-07
+ */
+@Service
+public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> implements ArrivalService {
+
+    @Autowired
+    private StockWaitService stockWaitService;
+
+    @Autowired
+    private ArrivalDetailService arrivalDetailService;
+
+    @Autowired
+    private PurchaseDetailService purchaseDetailService;
+
+    @Autowired
+    private PurchaseService purchaseService;
+
+
+    @Override
+    public Page<ArrivalVo> getPage(ArrivalSelectDto dto) {
+        IWrapper<Arrival> wrapper = getWrapper();
+        wrapper.orderByDesc("a", Arrival::getId);
+        Page<ArrivalVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public ArrivalVo detail(Long id) {
+        Arrival Arrival = this.getById(id);
+        ArrivalVo result = BeanUtil.toBean(Arrival, ArrivalVo.class);
+        return result;
+    }
+
+    /**
+     * 添加
+     * @param arrival
+     */
+    @GlobalTransactional
+    @Override
+    public void add(Arrival arrival) {
+        arrival.setCode(CodeEnum.ARRIVAL.getCode());
+        this.save(arrival);
+        //修改采购状态
+        Purchase purchase = new Purchase();
+        purchase.setArrivalStatus(arrival.getArrivalStatus());
+        purchase.setId(arrival.getPurchaseId());
+        purchaseService.updateById(purchase);
+        //取出到货明细
+        List<ArrivalDetail> arrivalDetailList = arrival.getArrivalDetailList();
+        if(CollectionUtils.isNotEmpty(arrivalDetailList)){
+            List<StockWait> stockWaitList = new ArrayList<>();
+            for(ArrivalDetail d:arrivalDetailList){
+                //todo 这一块是做了采购到货状态修改。前端已经完成
+                //查询采购明细
+//                PurchaseDetail purchaseDetail = purchaseDetailService.getById(d.getPurchaseDetailId());
+                //查询当前到货总数--修改对应得申购状态
+//                BigDecimal arrivalCount = arrivalDetailService.getSumCount(d.getPurchaseDetailId(),d.getBussinessId());
+//                BigDecimal sumArrivalCount = arrivalCount.add(d.getCount());
+//                if(sumArrivalCount.compareTo(purchaseDetail.getCount())<0){//判断到货数量是否大于等于采购数量
+//
+//
+//                }
+                d.setArrivalId(arrival.getId());
+                StockWait stockWait = new StockWait();
+                stockWait.setProductId(d.getBussinessId());
+                stockWait.setBusinessId(d.getId());//到货明细ID
+                stockWait.setType(1);//入库
+                stockWait.setStatus(0);//待入库
+                stockWait.setBusinessType(3);//采购到货
+                stockWait.setQuantity(d.getCount());
+                stockWaitList.add(stockWait);
+            }
+            arrivalDetailService.saveBatch(arrivalDetailList);
+            stockWaitService.saveBatch(stockWaitList);
+        }
+    }
+
+    @Override
+    public void edit(ArrivalDto arrivalDto) {
+        this.updateById(arrivalDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 6 - 6
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/PurchaseDetailService.java

@@ -10,7 +10,7 @@ import com.fjhx.purchase.entity.purchase.dto.PurchaseDetailDto;
 
 /**
  * <p>
- * 申购单 服务类
+ * 采购明细 服务类
  * </p>
  *
  * @author 
@@ -19,27 +19,27 @@ import com.fjhx.purchase.entity.purchase.dto.PurchaseDetailDto;
 public interface PurchaseDetailService extends BaseService<PurchaseDetail> {
 
     /**
-     * 申购单分页
+     * 采购明细分页
      */
     Page<PurchaseDetailVo> getPage(PurchaseDetailSelectDto dto);
 
     /**
-     * 申购单明细
+     * 采购明细明细
      */
     PurchaseDetailVo detail(Long id);
 
     /**
-     * 申购单新增
+     * 采购明细新增
      */
     void add(PurchaseDetailDto purchaseDetailDto);
 
     /**
-     * 申购单编辑
+     * 采购明细编辑
      */
     void edit(PurchaseDetailDto purchaseDetailDto);
 
     /**
-     * 申购单删除
+     * 采购明细删除
      */
     void delete(Long id);
 

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseDetailServiceImpl.java

@@ -1,11 +1,13 @@
 package com.fjhx.purchase.service.purchase.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.mapper.purchase.PurchaseDetailMapper;
 import com.fjhx.purchase.service.purchase.PurchaseDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
 import io.seata.spring.annotation.GlobalTransactional;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -31,6 +33,9 @@ public class PurchaseDetailServiceImpl extends ServiceImpl<PurchaseDetailMapper,
     @Override
     public Page<PurchaseDetailVo> getPage(PurchaseDetailSelectDto dto) {
         IWrapper<PurchaseDetail> wrapper = getWrapper();
+        if(StringUtils.isNotEmpty(dto.getStatus())){
+            wrapper.eq("pd",PurchaseDetail::getStatus,dto.getStatus());
+        }
         wrapper.orderByDesc("pd", PurchaseDetail::getId);
         Page<PurchaseDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         return page;

+ 58 - 3
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

@@ -3,18 +3,24 @@ package com.fjhx.purchase.service.purchase.impl;
 import cn.hutool.extra.spring.SpringUtil;
 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.item.entity.product.po.ProductInfo;
+import com.fjhx.item.entity.product.vo.ProductInfoVo;
+import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
 import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.mapper.purchase.PurchaseMapper;
+import com.fjhx.purchase.service.arrival.ArrivalDetailService;
 import com.fjhx.purchase.service.purchase.PurchaseDetailService;
 import com.fjhx.purchase.service.purchase.PurchaseService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.purchase.util.code.CodeEnum;
 import com.fjhx.supply.entity.supplier.po.SupplierInfo;
 import com.fjhx.supply.service.supplier.SupplierInfoService;
+import com.obs.services.internal.ServiceException;
 import io.seata.spring.annotation.GlobalTransactional;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +32,7 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.fjhx.purchase.entity.purchase.dto.PurchaseDto;
 import cn.hutool.core.bean.BeanUtil;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -46,6 +53,14 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
     @Autowired
     private SupplierInfoService supplierInfoService;
 
+    @Autowired
+    private PurchaseDetailService purchaseDetailService;
+
+    @Autowired
+    private ProductInfoService productInfoService;
+
+    @Autowired
+    private ArrivalDetailService arrivalDetailService;
     /**
      * 列表
      * @param dto
@@ -54,7 +69,16 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
     @Override
     public Page<PurchaseVo> getPage(PurchaseSelectDto dto) {
         IWrapper<Purchase> wrapper = getWrapper();
-        wrapper.orderByDesc("p", Purchase::getId);
+        wrapper.orderByDesc("p", Purchase::getCreateTime);
+        if(ObjectUtils.isNotEmpty(dto.getPurchaseStatus())){
+            wrapper.eq("p",Purchase::getPurchaseStatus,dto.getPurchaseStatus());
+        }
+        if(ObjectUtils.isNotEmpty(dto.getArrivalStatus())){
+            wrapper.eq("p",Purchase::getArrivalStatus,dto.getArrivalStatus());
+        }
+        if(ObjectUtils.isNotEmpty(dto.getPayStatus())){
+            wrapper.eq("p",Purchase::getPayStatus,dto.getPayStatus());
+        }
         Page<PurchaseVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<PurchaseVo> list = page.getRecords();
         if(CollectionUtils.isNotEmpty(list)){
@@ -78,8 +102,39 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
      */
     @Override
     public PurchaseVo detail(Long id) {
-        Purchase Purchase = this.getById(id);
-        PurchaseVo result = BeanUtil.toBean(Purchase, PurchaseVo.class);
+        Purchase purchase = this.getById(id);
+        if(ObjectUtils.isEmpty(purchase)){
+            throw new ServiceException("采购单不存在");
+        }
+        //查询出供应商名称
+        SupplierInfo info = supplierInfoService.getById(purchase.getSupplyId());
+        PurchaseVo result = BeanUtil.toBean(purchase, PurchaseVo.class);
+        result.setSupplyName(info.getName());
+        //查询出采购明细列表
+        List<PurchaseDetail> purchaseDetailList = purchaseDetailService.
+                list(Wrappers.<PurchaseDetail>query().lambda().eq(PurchaseDetail::getPurchaseId,id));
+        //查询出产品
+        if(CollectionUtils.isNotEmpty(purchaseDetailList)){
+            List<Long> productIds = purchaseDetailList.stream().map(PurchaseDetail::getBussinessId).collect(Collectors.toList());
+            List<ProductInfoVo> productInfos = productInfoService.getListByProductIds(productIds);
+            Map<Long,List<ProductInfoVo>> productMap = productInfos.stream().distinct().collect(Collectors.groupingBy(ProductInfoVo::getId));
+            if(MapUtils.isNotEmpty(productMap)){
+                for(PurchaseDetail p:purchaseDetailList){
+                    //查询出到货总量
+                    BigDecimal sumArrivalCount = arrivalDetailService.getSumCount(p.getId(),p.getBussinessId());
+                    p.setSumArrivalCount(sumArrivalCount);
+                    List<ProductInfoVo> productInfoVos = productMap.getOrDefault(p.getBussinessId(),null);
+                    ProductInfoVo vo = productInfoVos.get(0);
+                    p.setProductCode(vo.getCode());
+                    p.setProductName(vo.getName());
+                    p.setProductType(vo.getType());
+                    p.setProductCategory(vo.getClassifyName());
+                    p.setProductUnit(vo.getUnit());
+                    p.setProductSpec(vo.getSpec());
+                }
+            }
+        }
+        result.setPurchaseDetailList(purchaseDetailList);
         return result;
     }
 

+ 8 - 1
hx-purchase/src/main/java/com/fjhx/purchase/util/code/CodeEnum.java

@@ -6,6 +6,10 @@ import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.util.ObjectUtil;
 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.service.arrival.ArrivalService;
+import com.fjhx.purchase.service.purchase.PurchaseService;
 import com.fjhx.purchase.service.subscribe.SubscribeService;
 import com.obs.services.internal.ServiceException;
 import lombok.Getter;
@@ -18,7 +22,10 @@ public enum CodeEnum {
 
     //申购
     SUBSCRIBE("PR", "yyMM-", "code", 3, SubscribeService.class),
-    PURCHASE("PO", "yyMM-", "code", 3, SubscribeService.class),
+    //采购
+    PURCHASE("PO", "yyMM-", "code", 3, PurchaseService.class),
+    //到货
+    ARRIVAL("PA", "yyMM-", "code", 3, ArrivalService.class),
     ;
 
     CodeEnum(String prefix, String dateFormat, String codeFieldName, Integer length, Class<? extends IService<?>> serviceCls) {

+ 31 - 0
hx-purchase/src/main/resources/mapper/arrival/ArrivalDetailMapper.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.arrival.ArrivalDetailMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo">
+        select
+            ad.id,
+            ad.bussiness_id,
+            ad.arrival_id,
+            ad.count,
+            ad.status,
+            ad.qualified_count,
+            ad.no_qualified_count,
+            ad.remark,
+            ad.create_user,
+            ad.create_time,
+            ad.update_user,
+            ad.update_time
+        from arrival_detail ad
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getSumCount" resultType="java.math.BigDecimal">
+        SELECT
+            IFNULL(SUM( count ) ,0) AS sumArrivalCount
+        FROM
+            arrival_detail
+        WHERE
+            purchase_detail_id = #{purchaseDetailId}
+          AND bussiness_id = #{businessId}
+    </select>
+</mapper>

+ 19 - 0
hx-purchase/src/main/resources/mapper/arrival/ArrivalMapper.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.arrival.ArrivalMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.arrival.vo.ArrivalVo">
+        select
+            a.id,
+            a.code,
+            a.supply_id,
+            a.purchase_id,
+            a.status,
+            a.create_user,
+            a.create_time,
+            a.update_user,
+            a.update_time
+        from arrival a
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>