24282 2 лет назад
Родитель
Сommit
c53e7f5210
41 измененных файлов с 777 добавлено и 339 удалено
  1. 1 1
      hx-common/code-generator/src/main/java/com/fjhx/modular/Victoriatourist.java
  2. 25 9
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/quality/QualityDetails.java
  3. 56 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/quality/QualityInfo.java
  4. 4 4
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/stock/StockJournal.java
  5. 17 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityDetailsEx.java
  6. 17 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityDetailsVo.java
  7. 3 3
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityInfoEx.java
  8. 3 3
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityInfoVo.java
  9. 18 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/GetLogisticsDetailsDto.java
  10. 76 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/GetLogisticsDetailsVo.java
  11. 55 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/InStockAdd.java
  12. 0 34
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/PurchaseInStockVo.java
  13. 0 12
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/StockChangeVo.java
  14. 0 66
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/quality/QualityController.java
  15. 48 0
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/quality/QualityDetailsController.java
  16. 48 0
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/quality/QualityInfoController.java
  17. 21 20
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/PurchaseInStockController.java
  18. 2 1
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsDetailsMapper.java
  19. 13 17
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsDetailsMapper.xml
  20. 16 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/quality/QualityDetailsMapper.java
  21. 5 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/quality/QualityDetailsMapper.xml
  22. 3 3
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/quality/QualityInfoMapper.java
  23. 1 1
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/quality/QualityInfoMapper.xml
  24. 9 8
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockJournalMapper.java
  25. 9 20
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockJournalMapper.xml
  26. 3 4
      hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/LogisticsDetailsService.java
  27. 3 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/LogisticsInfoService.java
  28. 6 4
      hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsDetailsServiceImpl.java
  29. 97 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsInfoServiceImpl.java
  30. 28 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/QualityDetailsService.java
  31. 28 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/QualityInfoService.java
  32. 0 28
      hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/QualityService.java
  33. 48 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/impl/QualityDetailsServiceImpl.java
  34. 48 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/impl/QualityInfoServiceImpl.java
  35. 0 48
      hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/impl/QualityServiceImpl.java
  36. 9 8
      hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/StockJournalService.java
  37. 3 1
      hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/StockService.java
  38. 36 37
      hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockJournalServiceImpl.java
  39. 3 2
      hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockServiceImpl.java
  40. 3 1
      hx-service/victoriatourist/src/main/java/com/fjhx/uitl/code/CodeEnum.java
  41. 12 4
      hx-service/victoriatourist/src/main/java/com/fjhx/uitl/kd100/KD100Util.java

+ 1 - 1
hx-common/code-generator/src/main/java/com/fjhx/modular/Victoriatourist.java

@@ -12,7 +12,7 @@ public class Victoriatourist {
         CodeGenerator.MODULAR_NAME = "victoriatourist";
 
         // 需要生成的表名称,多表用,隔开
-        CodeGenerator.INCLUDE = "form_overflow_loss";
+        CodeGenerator.INCLUDE = "quality_details";
 
         // mysql连接
         CodeGenerator.MYSQL_URL = "36.134.91.96:17330";

+ 25 - 9
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/quality/Quality.java → hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/quality/QualityDetails.java

@@ -13,30 +13,46 @@ import lombok.EqualsAndHashCode;
 
 /**
  * <p>
- * 质检
+ * 质检明细
  * </p>
  *
  * @author ${author}
- * @since 2022-12-23
+ * @since 2023-02-13
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-public class Quality extends BaseEntity {
+public class QualityDetails extends BaseEntity {
+
 
     /**
-     * 质检单号
+     * 质检id
      */
-    private String code;
+    private Long qualityInfoId;
 
     /**
-     * 出入库流水记录ID
+     * 出入库流水明细id
      */
     private Long stockJournalId;
 
     /**
-     * 物品ID
+     * 物流明细id
+     */
+    private Long logisticsDetailsId;
+
+    /**
+     * 产品id
+     */
+    private Long productInfoId;
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 需要质检数量
      */
-    private Long goodsId;
+    private BigDecimal totalQuantity;
 
     /**
      * 合格数量
@@ -46,7 +62,7 @@ public class Quality extends BaseEntity {
     /**
      * 不合格数量
      */
-    private BigDecimal unqualifiedQuantity;
+    private BigDecimal disqualificationQuantity;
 
     /**
      * 逻辑删除 0未删除 1已删除

+ 56 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/quality/QualityInfo.java

@@ -0,0 +1,56 @@
+package com.fjhx.entity.quality;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fjhx.base.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 质检
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-02-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class QualityInfo extends BaseEntity {
+
+
+    /**
+     * 质检单号
+     */
+    private String code;
+
+    /**
+     * 采购单id
+     */
+    private Long logisticsInfoId;
+
+    /**
+     * 采购单编号
+     */
+    private String logisticsInfoCode;
+
+    /**
+     * 状态 1未质检 2部分质检 3已质检
+     */
+    private Integer status;
+
+    /**
+     * 质检结果 1合格 2不合格
+     */
+    private Integer resultType;
+
+    /**
+     * 逻辑删除 0未删除 1已删除
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer delFlag;
+
+
+}

+ 4 - 4
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/stock/StockJournal.java

@@ -61,10 +61,10 @@ public class StockJournal extends BaseEntity {
      */
     private BigDecimal actualQuantity;
 
-    /**
-     * 质检状态:10、未质检;20、部分质检;30、已质检
-     */
-    private Integer qualityStatus;
+    // /**
+    //  * 质检状态:10、未质检;20、部分质检;30、已质检
+    //  */
+    // private Integer qualityStatus;
 
     /**
      * 出入库金额

+ 17 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityDetailsEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.quality;
+
+import com.fjhx.entity.quality.QualityDetails;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 质检明细
+ *
+ * @author ${author}
+ * @since 2023-02-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class QualityDetailsEx extends QualityDetails {
+
+}

+ 17 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityDetailsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.quality;
+
+import com.fjhx.entity.quality.QualityDetails;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 质检明细
+ *
+ * @author ${author}
+ * @since 2023-02-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class QualityDetailsVo extends QualityDetails {
+
+}

+ 3 - 3
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityEx.java → hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityInfoEx.java

@@ -1,6 +1,6 @@
 package com.fjhx.params.quality;
 
-import com.fjhx.entity.quality.Quality;
+import com.fjhx.entity.quality.QualityInfo;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -8,10 +8,10 @@ import lombok.EqualsAndHashCode;
  * 质检
  *
  * @author ${author}
- * @since 2022-12-23
+ * @since 2023-02-13
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-public class QualityEx extends Quality {
+public class QualityInfoEx extends QualityInfo {
 
 }

+ 3 - 3
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityVo.java → hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityInfoVo.java

@@ -1,6 +1,6 @@
 package com.fjhx.params.quality;
 
-import com.fjhx.entity.quality.Quality;
+import com.fjhx.entity.quality.QualityInfo;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -8,10 +8,10 @@ import lombok.EqualsAndHashCode;
  * 质检
  *
  * @author ${author}
- * @since 2022-12-23
+ * @since 2023-02-13
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-public class QualityVo extends Quality {
+public class QualityInfoVo extends QualityInfo {
 
 }

+ 18 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/GetLogisticsDetailsDto.java

@@ -0,0 +1,18 @@
+package com.fjhx.params.stock;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class GetLogisticsDetailsDto {
+
+    /**
+     * 物流单id
+     *
+     * @table logistics_details
+     * @field logistics_info_id
+     */
+    private Long logisticsInfoId;
+
+}

+ 76 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/GetLogisticsDetailsVo.java

@@ -0,0 +1,76 @@
+package com.fjhx.params.stock;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+public class GetLogisticsDetailsVo {
+
+    /**
+     * 物流明细
+     *
+     * @table logistics_details
+     * @field id
+     */
+    private Long id;
+
+    /**
+     * 本次发货
+     *
+     * @table logistics_details
+     * @field shipment_quantity
+     */
+    private BigDecimal shipmentQuantity;
+
+    /**
+     * 已入库数量
+     *
+     * @table logistics_details
+     * @field receipt_quantity
+     */
+    private BigDecimal receiptQuantity;
+
+    /**
+     * 采购数量
+     *
+     * @table apply_purchase
+     * @field quantity
+     */
+    private BigDecimal purchaseQuantity;
+
+    /**
+     * 收货仓库ID
+     *
+     * @table apply_purchase
+     * @field receipt_warehouse_id
+     */
+    private Long receiptWarehouseId;
+
+    /**
+     * 物品id
+     *
+     * @table product_info
+     * @field id
+     */
+    private Long goodsId;
+
+    /**
+     * 物品名称
+     *
+     * @table product_info
+     * @field code
+     */
+    private String goodsCode;
+
+    /**
+     * 物品编码
+     *
+     * @table product_info
+     * @field name
+     */
+    private String goodsName;
+
+}

+ 55 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/InStockAdd.java

@@ -0,0 +1,55 @@
+package com.fjhx.params.stock;
+
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class InStockAdd {
+
+    @NotNull(message = "物流id不能为空")
+    private Long logisticsInfoId;
+
+    @Valid
+    @NotEmpty(message = "入库明细不能为空")
+    private List<InStockAddDetails> list;
+
+    @Data
+    public static class InStockAddDetails implements StockChangeVo.ChangeDetails {
+
+        /**
+         * 业务ID
+         */
+        @NotNull(message = "物流明细id不能为空")
+        private Long businessId;
+
+        /**
+         * 物品ID
+         */
+        @NotNull(message = "物品id不能为空")
+        private Long goodsId;
+
+        /**
+         * 仓库ID
+         */
+        @NotNull(message = "仓库id不能为空")
+        private Long warehouseId;
+
+        /**
+         * 入库数量
+         */
+        @NotNull(message = "入库数量不能为空")
+        private BigDecimal changeQuantity;
+
+        /**
+         * 备注
+         */
+        private String remarks;
+
+    }
+
+}

+ 0 - 34
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/PurchaseInStockVo.java

@@ -1,34 +0,0 @@
-package com.fjhx.params.stock;
-
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-@Data
-public class PurchaseInStockVo implements StockChangeVo.ChangeDetails {
-
-    /**
-     * 业务ID
-     */
-    private Long businessId;
-
-    /**
-     * 物品ID
-     */
-    private Long goodsId;
-
-    /**
-     * 仓库ID
-     */
-    private Long warehouseId;
-
-    /**
-     * 入库数量
-     */
-    private BigDecimal changeQuantity;
-
-    /**
-     * 备注
-     */
-    private String remarks;
-}

+ 0 - 12
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/StockChangeVo.java

@@ -23,19 +23,7 @@ public class StockChangeVo {
     }
 
     /**
-     * 采购入库 初始
-     *
-     * @param list
-     */
-    public StockChangeVo(List<PurchaseInStockVo> list) {
-        typeEnum = InTypeEnum.PURCHASE;
-        changeDetailsList = list;
-    }
-
-    /**
      * 手动入库 初始
-     *
-     * @param entity
      */
     public StockChangeVo(ManualInStockVo entity) {
         defaultWarehouseId = entity.getWarehouseId();

+ 0 - 66
hx-service/victoriatourist/src/main/java/com/fjhx/controller/quality/QualityController.java

@@ -1,66 +0,0 @@
-package com.fjhx.controller.quality;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.entity.quality.Quality;
-import com.fjhx.entity.stock.StockJournal;
-import com.fjhx.params.quality.QualityVo;
-import com.fjhx.service.quality.QualityService;
-import com.fjhx.service.stock.StockJournalService;
-import org.springblade.core.tool.api.R;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Map;
-
-/**
- * <p>
- * 质检 前端控制器
- * </p>
- *
- * @author ${author}
- * @since 2022-12-23
- */
-@RestController
-@RequestMapping("/quality")
-public class QualityController {
-
-    @Autowired
-    private QualityService qualityService;
-
-    @Autowired
-    private StockJournalService stockJournalService;
-
-    @PostMapping("/page")
-    public R page(@RequestBody Map<String, Object> condition) {
-        Page<Quality> result = qualityService.getPage(condition);
-        return R.success(result);
-    }
-
-    @PostMapping("/add")
-    public R add(@RequestBody QualityVo qualityVo) {
-        qualityService.add(qualityVo);
-        return R.success();
-    }
-
-    @PostMapping("/edit")
-    public R edit(@RequestBody QualityVo qualityVo) {
-        qualityService.edit(qualityVo);
-        return R.success();
-    }
-
-    @PostMapping("/delete")
-    public R delete(@RequestBody QualityVo qualityVo) {
-        qualityService.delete(qualityVo);
-        return R.success();
-    }
-
-    @PostMapping("/arrival/page")
-    public R arrivalPage(@RequestBody Map<String, Object> condition) {
-        Page<StockJournal> result = stockJournalService.getArrivalQualityPage(condition);
-        return R.success(result);
-    }
-}
-

+ 48 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/controller/quality/QualityDetailsController.java

@@ -0,0 +1,48 @@
+package com.fjhx.controller.quality;
+
+import com.fjhx.service.quality.QualityDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 质检明细 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-02-13
+ */
+@RestController
+@RequestMapping("/qualityDetails")
+public class QualityDetailsController {
+
+    @Autowired
+    private QualityDetailsService qualityDetailsService;
+
+    // @PostMapping("/page")
+    // public R page(@RequestBody Map<String, Object> condition){
+    //     Page<QualityDetails> result = qualityDetailsService.getPage(condition);
+    //     return R.success(result);
+    // }
+    //
+    // @PostMapping("/add")
+    // public R add(@RequestBody QualityDetailsVo qualityDetailsVo){
+    //     qualityDetailsService.add(qualityDetailsVo);
+    //     return R.success();
+    // }
+    //
+    // @PostMapping("/edit")
+    // public R edit(@RequestBody QualityDetailsVo qualityDetailsVo){
+    //     qualityDetailsService.edit(qualityDetailsVo);
+    //     return R.success();
+    // }
+    //
+    // @PostMapping("/delete")
+    // public R delete(@RequestBody QualityDetailsVo qualityDetailsVo){
+    //     qualityDetailsService.delete(qualityDetailsVo);
+    //     return R.success();
+    // }
+
+}
+

+ 48 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/controller/quality/QualityInfoController.java

@@ -0,0 +1,48 @@
+package com.fjhx.controller.quality;
+
+import com.fjhx.service.quality.QualityInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 质检 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-02-13
+ */
+@RestController
+@RequestMapping("/qualityInfo")
+public class QualityInfoController {
+
+    @Autowired
+    private QualityInfoService qualityInfoService;
+
+    // @PostMapping("/page")
+    // public R page(@RequestBody Map<String, Object> condition){
+    //     Page<QualityInfo> result = qualityInfoService.getPage(condition);
+    //     return R.success(result);
+    // }
+    //
+    // @PostMapping("/add")
+    // public R add(@RequestBody QualityInfoVo qualityInfoVo){
+    //     qualityInfoService.add(qualityInfoVo);
+    //     return R.success();
+    // }
+    //
+    // @PostMapping("/edit")
+    // public R edit(@RequestBody QualityInfoVo qualityInfoVo){
+    //     qualityInfoService.edit(qualityInfoVo);
+    //     return R.success();
+    // }
+    //
+    // @PostMapping("/delete")
+    // public R delete(@RequestBody QualityInfoVo qualityInfoVo){
+    //     qualityInfoService.delete(qualityInfoVo);
+    //     return R.success();
+    // }
+
+}
+

+ 21 - 20
hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/PurchaseInStockController.java

@@ -2,16 +2,15 @@ package com.fjhx.controller.stock;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.Condition;
-import com.fjhx.entity.logistics.LogisticsDetails;
 import com.fjhx.entity.logistics.LogisticsInfo;
-import com.fjhx.enums.stock.InTypeEnum;
-import com.fjhx.params.stock.PurchaseInStockVo;
-import com.fjhx.params.stock.StockChangeVo;
+import com.fjhx.params.stock.GetLogisticsDetailsDto;
+import com.fjhx.params.stock.GetLogisticsDetailsVo;
+import com.fjhx.params.stock.InStockAdd;
 import com.fjhx.service.logistics.LogisticsDetailsService;
 import com.fjhx.service.logistics.LogisticsInfoService;
-import com.fjhx.service.stock.StockService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -32,9 +31,6 @@ public class PurchaseInStockController {
     @Autowired
     private LogisticsDetailsService logisticsDetailsService;
 
-    @Autowired
-    private StockService stockService;
-
     /**
      * 列表
      *
@@ -47,28 +43,33 @@ public class PurchaseInStockController {
         return R.success(result);
     }
 
+    // /**
+    //  * 物流单明细
+    //  *
+    //  * @param entity 查询条件
+    //  * @return
+    //  */
+    // @PostMapping("/logistics/details")
+    // public R logisticsDetails(@RequestBody LogisticsDetails entity) {
+    //     List<LogisticsDetails> result = logisticsDetailsService.getByLogisticsInfoId(entity.getLogisticsInfoId());
+    //     return R.success(result);
+    // }
+
     /**
      * 物流单明细
-     *
-     * @param entity 查询条件
-     * @return
      */
-    @PostMapping("/logistics/details")
-    public R logisticsDetails(@RequestBody LogisticsDetails entity) {
-        List<LogisticsDetails> result = logisticsDetailsService.getByLogisticsInfoId(entity.getLogisticsInfoId());
+    @PostMapping("/getLogisticsDetails")
+    public R getLogisticsDetails(@RequestBody GetLogisticsDetailsDto getLogisticsDetailsDto) {
+        List<GetLogisticsDetailsVo> result = logisticsDetailsService.getByLogisticsInfoId(getLogisticsDetailsDto);
         return R.success(result);
     }
 
     /**
      * 入库
-     *
-     * @param list 参数
-     * @return
      */
     @PostMapping("/add")
-    public R add(@RequestBody List<PurchaseInStockVo> list) {
-        StockChangeVo vo = new StockChangeVo(list);
-        stockService.changeQuantity(vo);
+    public R add(@Validated @RequestBody InStockAdd inStockAdd) {
+        logisticsInfoService.inStock(inStockAdd);
         return R.success();
     }
 

+ 2 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsDetailsMapper.java

@@ -2,6 +2,7 @@ package com.fjhx.mapper.logistics;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fjhx.entity.logistics.LogisticsDetails;
+import com.fjhx.params.stock.GetLogisticsDetailsVo;
 
 import java.util.List;
 
@@ -21,6 +22,6 @@ public interface LogisticsDetailsMapper extends BaseMapper<LogisticsDetails> {
      * @param logisticsInfoId 物流单ID
      * @return
      */
-    List<LogisticsDetails> getByLogisticsInfoId(Long logisticsInfoId);
+    List<GetLogisticsDetailsVo> getByLogisticsInfoId(Long logisticsInfoId);
 
 }

+ 13 - 17
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsDetailsMapper.xml

@@ -2,23 +2,19 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.mapper.logistics.LogisticsDetailsMapper">
 
-    <select id="getByLogisticsInfoId" resultType="com.fjhx.entity.logistics.LogisticsDetails">
-        SELECT
-            t1.id,
-            t1.shipment_quantity,
-            t2.quantity purchaseQuantity,
-            t3.id goodsId,
-            t3.`code` goodsCode,
-            t3.`name` goodsName,
-            t4.id warehouseId
-        FROM
-            logistics_details t1
-            LEFT JOIN apply_purchase t2 ON t1.apply_purchase_id = t2.id
-            LEFT JOIN product_info t3 ON t2.goods_id = t3.id
-            LEFT JOIN warehouse t4 ON t2.receipt_warehouse_id = t4.id
-        <where>
-            t1.logistics_info_id = #{logisticsInfoId}
-        </where>
+    <select id="getByLogisticsInfoId" resultType="com.fjhx.params.stock.GetLogisticsDetailsVo">
+        select ld.id                   id,
+               ld.shipment_quantity    shipmentQuantity,
+               ld.receipt_quantity     receiptQuantity,
+               ap.quantity             purchaseQuantity,
+               ap.receipt_warehouse_id receiptWarehouseId,
+               pi.id                   goodsId,
+               pi.code                 goodsCode,
+               pi.name                 goodsName
+        from logistics_details ld
+                 left join apply_purchase ap on ap.id = ld.apply_purchase_id
+                 left join product_info pi on pi.id = ap.goods_id
+        where ld.logistics_info_id = #{logisticsInfoId}
     </select>
 
 </mapper>

+ 16 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/quality/QualityDetailsMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper.quality;
+
+import com.fjhx.entity.quality.QualityDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 质检明细 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-02-13
+ */
+public interface QualityDetailsMapper extends BaseMapper<QualityDetails> {
+
+}

+ 5 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/quality/QualityDetailsMapper.xml

@@ -0,0 +1,5 @@
+<?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.mapper.quality.QualityDetailsMapper">
+
+</mapper>

+ 3 - 3
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/quality/QualityMapper.java → hx-service/victoriatourist/src/main/java/com/fjhx/mapper/quality/QualityInfoMapper.java

@@ -1,6 +1,6 @@
 package com.fjhx.mapper.quality;
 
-import com.fjhx.entity.quality.Quality;
+import com.fjhx.entity.quality.QualityInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
@@ -9,8 +9,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * </p>
  *
  * @author ${author}
- * @since 2022-12-23
+ * @since 2023-02-13
  */
-public interface QualityMapper extends BaseMapper<Quality> {
+public interface QualityInfoMapper extends BaseMapper<QualityInfo> {
 
 }

+ 1 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/quality/QualityMapper.xml → hx-service/victoriatourist/src/main/java/com/fjhx/mapper/quality/QualityInfoMapper.xml

@@ -1,5 +1,5 @@
 <?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.mapper.quality.QualityMapper">
+<mapper namespace="com.fjhx.mapper.quality.QualityInfoMapper">
 
 </mapper>

+ 9 - 8
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockJournalMapper.java

@@ -33,12 +33,13 @@ public interface StockJournalMapper extends BaseMapper<StockJournal> {
 
     Page<Map<String, Object>> inOutDocument(@Param("page") Page<Object> page, @Param("ew") IWrapper<Object> wrapper);
 
-    /**
-     * 到货质检列表
-     *
-     * @param page    分页信息
-     * @param wrapper 查询条件
-     * @return
-     */
-    Page<StockJournal> getArrivalQualityPage(@Param("page") Page<StockJournal> page, @Param("ew") IWrapper<StockJournal> wrapper);
+    // /**
+    //  * 到货质检列表
+    //  *
+    //  * @param page    分页信息
+    //  * @param wrapper 查询条件
+    //  * @return
+    //  */
+    // Page<StockJournal> getArrivalQualityPage(@Param("page") Page<StockJournal> page, @Param("ew") IWrapper<StockJournal> wrapper);
+
 }

+ 9 - 20
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockJournalMapper.xml

@@ -67,26 +67,15 @@
     </select>
 
     <!-- 到货质检列表 -->
-    <select id="getArrivalQualityPage" resultType="com.fjhx.entity.stock.StockJournal">
-        SELECT
-            t1.`code`,
-            t1.warehouse_id,
-	        t1.quality_status,
-            t1.create_user,
-            t1.create_time,
-            t2.purchase_id,
-            t3.`code` purchaseCode,
-            t3.supplier_id,
-            t4.`name` supplierName,
-            t5.`name` warehouseName
-        FROM
-            stock_journal t1
-            LEFT JOIN logistics_details t2 ON t1.business_id = t2.id
-            LEFT JOIN purchase t3 ON t2.purchase_id = t3.id
-            LEFT JOIN supplier t4 ON t3.supplier_id = t4.id
-            LEFT JOIN warehouse t5 ON t1.warehouse_id = t5.id
-        ${ew.customSqlSegment}
-    </select>
+<!--    <select id="getArrivalQualityPage" resultType="com.fjhx.entity.stock.StockJournal">-->
+<!--        SELECT t3.code-->
+<!--        FROM stock_journal t1-->
+<!--                 INNER JOIN logistics_details t2 ON t1.business_id = t2.id-->
+<!--                 LEFT JOIN purchase t3 ON t2.purchase_id = t3.id-->
+<!--                 LEFT JOIN supplier t4 ON t3.supplier_id = t4.id-->
+<!--                 LEFT JOIN warehouse t5 ON t1.warehouse_id = t5.id-->
+<!--            ${ew.customSqlSegment}-->
+<!--    </select>-->
 
     <select id="inOutDocument" resultType="java.util.Map">
         select sj.code,

+ 3 - 4
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/LogisticsDetailsService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.BaseService;
 import com.fjhx.entity.logistics.LogisticsDetails;
 import com.fjhx.params.logistics.LogisticsDetailsVo;
+import com.fjhx.params.stock.GetLogisticsDetailsDto;
+import com.fjhx.params.stock.GetLogisticsDetailsVo;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -29,11 +31,8 @@ public interface LogisticsDetailsService extends BaseService<LogisticsDetails> {
 
     /**
      * 根据物流单ID查询物流明细
-     *
-     * @param logisticsInfoId 物流单ID
-     * @return
      */
-    List<LogisticsDetails> getByLogisticsInfoId(Long logisticsInfoId);
+    List<GetLogisticsDetailsVo> getByLogisticsInfoId(GetLogisticsDetailsDto getLogisticsDetailsDto);
 
     /**
      * 获取已发货数量map

+ 3 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/LogisticsInfoService.java

@@ -5,6 +5,7 @@ import com.fjhx.base.BaseService;
 import com.fjhx.entity.logistics.LogisticsInfo;
 import com.fjhx.params.logistics.DeliverDetailsVo;
 import com.fjhx.params.logistics.LogisticsInfoVo;
+import com.fjhx.params.stock.InStockAdd;
 
 import java.util.List;
 import java.util.Map;
@@ -77,4 +78,6 @@ public interface LogisticsInfoService extends BaseService<LogisticsInfo> {
      */
     void arrivalNotice(LogisticsInfoVo entity);
 
+    void inStock(InStockAdd inStockAdd);
+
 }

+ 6 - 4
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsDetailsServiceImpl.java

@@ -5,7 +5,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.entity.logistics.LogisticsDetails;
 import com.fjhx.mapper.logistics.LogisticsDetailsMapper;
 import com.fjhx.params.logistics.LogisticsDetailsVo;
+import com.fjhx.params.stock.GetLogisticsDetailsDto;
+import com.fjhx.params.stock.GetLogisticsDetailsVo;
 import com.fjhx.service.logistics.LogisticsDetailsService;
+import com.fjhx.utils.Assert;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import org.springframework.stereotype.Service;
 
@@ -50,12 +53,11 @@ public class LogisticsDetailsServiceImpl extends ServiceImpl<LogisticsDetailsMap
 
     /**
      * 根据物流单ID查询物流明细
-     *
-     * @param logisticsInfoId 物流单ID
-     * @return
      */
     @Override
-    public List<LogisticsDetails> getByLogisticsInfoId(Long logisticsInfoId) {
+    public List<GetLogisticsDetailsVo> getByLogisticsInfoId(GetLogisticsDetailsDto getLogisticsDetailsDto) {
+        Long logisticsInfoId = getLogisticsDetailsDto.getLogisticsInfoId();
+        Assert.notEmpty(logisticsInfoId, "物流信息id不能为空");
         return baseMapper.getByLogisticsInfoId(logisticsInfoId);
     }
 

+ 97 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsInfoServiceImpl.java

@@ -11,15 +11,25 @@ import com.fjhx.entity.logistics.LogisticsDetails;
 import com.fjhx.entity.logistics.LogisticsInfo;
 import com.fjhx.entity.product.ProductInfo;
 import com.fjhx.entity.purchase.Purchase;
+import com.fjhx.entity.quality.QualityDetails;
+import com.fjhx.entity.quality.QualityInfo;
+import com.fjhx.entity.stock.StockJournal;
 import com.fjhx.enums.purchase.PurchaseStatusEnum;
+import com.fjhx.enums.stock.InTypeEnum;
 import com.fjhx.mapper.logistics.LogisticsInfoMapper;
 import com.fjhx.params.logistics.DeliverDetailsVo;
 import com.fjhx.params.logistics.LogisticsInfoVo;
+import com.fjhx.params.stock.InStockAdd;
+import com.fjhx.params.stock.StockChangeVo;
 import com.fjhx.service.apply.ApplyPurchaseService;
 import com.fjhx.service.logistics.LogisticsDetailsService;
 import com.fjhx.service.logistics.LogisticsInfoService;
 import com.fjhx.service.product.ProductInfoService;
 import com.fjhx.service.purchase.PurchaseService;
+import com.fjhx.service.quality.QualityDetailsService;
+import com.fjhx.service.quality.QualityInfoService;
+import com.fjhx.service.stock.StockService;
+import com.fjhx.uitl.code.CodeEnum;
 import com.fjhx.uitl.kd100.KD100Util;
 import com.fjhx.utils.Assert;
 import com.fjhx.utils.FileClientUtil;
@@ -59,6 +69,15 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
     @Autowired
     private PurchaseService purchaseService;
 
+    @Autowired
+    private StockService stockService;
+
+    @Autowired
+    private QualityInfoService qualityInfoService;
+
+    @Autowired
+    private QualityDetailsService qualityDetailsService;
+
     @Override
     public Page<LogisticsInfo> getPage(Map<String, Object> condition) {
 
@@ -306,4 +325,82 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
 
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void inStock(InStockAdd inStockAdd) {
+        List<InStockAdd.InStockAddDetails> list = inStockAdd.getList();
+        Long logisticsInfoId = inStockAdd.getLogisticsInfoId();
+
+        StockChangeVo stockChangeVo = new StockChangeVo();
+        stockChangeVo.setTypeEnum(InTypeEnum.PURCHASE);
+        stockChangeVo.setChangeDetailsList(list);
+        List<StockJournal> stockJournals = stockService.changeQuantity(stockChangeVo);
+
+        // 修改入库数量
+        Map<Long, BigDecimal> collect = list.stream().collect(Collectors.toMap(
+                InStockAdd.InStockAddDetails::getBusinessId,
+                InStockAdd.InStockAddDetails::getChangeQuantity
+        ));
+
+        List<LogisticsDetails> logisticsDetails = logisticsDetailsService.list(
+                q -> q.eq(LogisticsDetails::getLogisticsInfoId, logisticsInfoId));
+
+        // 本次采购入库是否完成
+        boolean completeFlag = true;
+
+        for (LogisticsDetails logisticsDetail : logisticsDetails) {
+
+            // 发货数量
+            BigDecimal shipmentQuantity = logisticsDetail.getShipmentQuantity();
+
+            // 入库数量
+            BigDecimal receiptQuantity = logisticsDetail.getReceiptQuantity();
+
+            // 本次入库数量
+            BigDecimal bigDecimal = ObjectUtil.defaultIfNull(collect.get(logisticsDetail.getId()), BigDecimal.ZERO);
+
+            int compareTo = receiptQuantity.add(bigDecimal).compareTo(shipmentQuantity);
+            if (compareTo > 0) {
+                throw new ServiceException("入库数量不能超过发货数量");
+            } else if (compareTo < 0) {
+                completeFlag = false;
+            }
+
+            // 添加发货数量
+            logisticsDetail.setReceiptQuantity(receiptQuantity.add(bigDecimal));
+        }
+
+        // 修改入库状态
+        LogisticsInfo logisticsInfo = getById(logisticsInfoId);
+        Integer inStockStatus = completeFlag ? LogisticsConstant.InStockStatus.STATUS_30 : LogisticsConstant.InStockStatus.STATUS_20;
+        if (!inStockStatus.equals(logisticsInfo.getInStockStatus())) {
+            logisticsInfo.setInStockStatus(inStockStatus);
+            updateById(logisticsInfo);
+        }
+
+        // 添加质检
+        QualityInfo qualityInfo = new QualityInfo();
+        qualityInfo.setCode(CodeEnum.QUALITY.getCode());
+        qualityInfo.setLogisticsInfoId(logisticsInfoId);
+        qualityInfo.setLogisticsInfoCode(logisticsInfo.getCode());
+        qualityInfo.setResultType(1);
+        qualityInfo.setResultType(1);
+        qualityInfoService.save(qualityInfo);
+
+        // 添加质检明细
+        List<QualityDetails> qualityDetailsList = stockJournals.stream().map(item -> {
+            QualityDetails qualityDetails = new QualityDetails();
+            qualityDetails.setQualityInfoId(qualityInfo.getId());
+            qualityDetails.setStockJournalId(item.getId());
+            qualityDetails.setLogisticsDetailsId(item.getBusinessId());
+            qualityDetails.setProductInfoId(item.getGoodsId());
+            qualityDetails.setWarehouseId(item.getWarehouseId());
+            qualityDetails.setTotalQuantity(item.getChangeQuantity());
+            qualityDetails.setQualifiedQuantity(BigDecimal.ZERO);
+            qualityDetails.setDisqualificationQuantity(BigDecimal.ZERO);
+            return qualityDetails;
+        }).collect(Collectors.toList());
+        qualityDetailsService.saveBatch(qualityDetailsList);
+    }
+
 }

+ 28 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/QualityDetailsService.java

@@ -0,0 +1,28 @@
+package com.fjhx.service.quality;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.quality.QualityDetails;
+import com.fjhx.params.quality.QualityDetailsVo;
+import com.fjhx.base.BaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 质检明细 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-02-13
+ */
+public interface QualityDetailsService extends BaseService<QualityDetails> {
+
+    Page<QualityDetails> getPage(Map<String, Object> condition);
+
+    void add(QualityDetailsVo qualityDetailsVo);
+
+    void edit(QualityDetailsVo qualityDetailsVo);
+
+    void delete(QualityDetailsVo qualityDetailsVo);
+
+}

+ 28 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/QualityInfoService.java

@@ -0,0 +1,28 @@
+package com.fjhx.service.quality;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.quality.QualityInfo;
+import com.fjhx.params.quality.QualityInfoVo;
+import com.fjhx.base.BaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 质检 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-02-13
+ */
+public interface QualityInfoService extends BaseService<QualityInfo> {
+
+    Page<QualityInfo> getPage(Map<String, Object> condition);
+
+    void add(QualityInfoVo qualityInfoVo);
+
+    void edit(QualityInfoVo qualityInfoVo);
+
+    void delete(QualityInfoVo qualityInfoVo);
+
+}

+ 0 - 28
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/QualityService.java

@@ -1,28 +0,0 @@
-package com.fjhx.service.quality;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.entity.quality.Quality;
-import com.fjhx.params.quality.QualityVo;
-import com.fjhx.base.BaseService;
-
-import java.util.Map;
-
-/**
- * <p>
- * 质检 服务类
- * </p>
- *
- * @author ${author}
- * @since 2022-12-23
- */
-public interface QualityService extends BaseService<Quality> {
-
-    Page<Quality> getPage(Map<String, Object> condition);
-
-    void add(QualityVo qualityVo);
-
-    void edit(QualityVo qualityVo);
-
-    void delete(QualityVo qualityVo);
-
-}

+ 48 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/impl/QualityDetailsServiceImpl.java

@@ -0,0 +1,48 @@
+package com.fjhx.service.quality.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.quality.QualityDetails;
+import com.fjhx.params.quality.QualityDetailsVo;
+import com.fjhx.mapper.quality.QualityDetailsMapper;
+import com.fjhx.service.quality.QualityDetailsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 质检明细 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-02-13
+ */
+@Service
+public class QualityDetailsServiceImpl extends ServiceImpl<QualityDetailsMapper, QualityDetails> implements QualityDetailsService {
+
+    @Override
+    public Page<QualityDetails> getPage(Map<String, Object> condition) {
+
+        IWrapper<QualityDetails> wrapper = IWrapper.getWrapper(condition);
+
+        return page(condition, wrapper);
+    }
+
+    @Override
+    public void add(QualityDetailsVo qualityDetailsVo) {
+        save(qualityDetailsVo);
+    }
+
+    @Override
+    public void edit(QualityDetailsVo qualityDetailsVo) {
+        updateById(qualityDetailsVo);
+    }
+
+    @Override
+    public void delete(QualityDetailsVo qualityDetailsVo) {
+        removeById(qualityDetailsVo.getId());
+    }
+
+}

+ 48 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/impl/QualityInfoServiceImpl.java

@@ -0,0 +1,48 @@
+package com.fjhx.service.quality.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.quality.QualityInfo;
+import com.fjhx.params.quality.QualityInfoVo;
+import com.fjhx.mapper.quality.QualityInfoMapper;
+import com.fjhx.service.quality.QualityInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 质检 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2023-02-13
+ */
+@Service
+public class QualityInfoServiceImpl extends ServiceImpl<QualityInfoMapper, QualityInfo> implements QualityInfoService {
+
+    @Override
+    public Page<QualityInfo> getPage(Map<String, Object> condition) {
+
+        IWrapper<QualityInfo> wrapper = IWrapper.getWrapper(condition);
+
+        return page(condition, wrapper);
+    }
+
+    @Override
+    public void add(QualityInfoVo qualityInfoVo) {
+        save(qualityInfoVo);
+    }
+
+    @Override
+    public void edit(QualityInfoVo qualityInfoVo) {
+        updateById(qualityInfoVo);
+    }
+
+    @Override
+    public void delete(QualityInfoVo qualityInfoVo) {
+        removeById(qualityInfoVo.getId());
+    }
+
+}

+ 0 - 48
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/impl/QualityServiceImpl.java

@@ -1,48 +0,0 @@
-package com.fjhx.service.quality.impl;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.entity.quality.Quality;
-import com.fjhx.params.quality.QualityVo;
-import com.fjhx.mapper.quality.QualityMapper;
-import com.fjhx.service.quality.QualityService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.utils.wrapperUtil.IWrapper;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-
-/**
- * <p>
- * 质检 服务实现类
- * </p>
- *
- * @author ${author}
- * @since 2022-12-23
- */
-@Service
-public class QualityServiceImpl extends ServiceImpl<QualityMapper, Quality> implements QualityService {
-
-    @Override
-    public Page<Quality> getPage(Map<String, Object> condition) {
-
-        IWrapper<Quality> wrapper = IWrapper.getWrapper(condition);
-
-        return page(condition, wrapper);
-    }
-
-    @Override
-    public void add(QualityVo qualityVo) {
-        save(qualityVo);
-    }
-
-    @Override
-    public void edit(QualityVo qualityVo) {
-        updateById(qualityVo);
-    }
-
-    @Override
-    public void delete(QualityVo qualityVo) {
-        removeById(qualityVo.getId());
-    }
-
-}

+ 9 - 8
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/StockJournalService.java

@@ -7,6 +7,7 @@ import com.fjhx.entity.stock.StockJournal;
 import com.fjhx.params.stock.StockChangeVo;
 import com.fjhx.params.stock.StockJournalVo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -27,7 +28,7 @@ public interface StockJournalService extends BaseService<StockJournal> {
 
     void delete(StockJournalVo stockJournalVo);
 
-    void addJournal(StockChangeVo stockChangeVo);
+    List<StockJournal> addJournal(StockChangeVo stockChangeVo);
 
     /**
      * 获取手动出库分页
@@ -42,13 +43,13 @@ public interface StockJournalService extends BaseService<StockJournal> {
      */
     Page<StockJournal> getManualInStockPage(Condition condition);
 
-    /**
-     * 到货质检列表
-     *
-     * @param condition 查询条件
-     * @return
-     */
-    Page<StockJournal> getArrivalQualityPage(Map<String, Object> condition);
+    // /**
+    //  * 到货质检列表
+    //  *
+    //  * @param condition 查询条件
+    //  * @return
+    //  */
+    // Page<StockJournal> getArrivalQualityPage(Map<String, Object> condition);
 
     /**
      * 出入库单据

+ 3 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/StockService.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.BaseService;
 import com.fjhx.base.Condition;
 import com.fjhx.entity.stock.Stock;
+import com.fjhx.entity.stock.StockJournal;
 import com.fjhx.params.stock.*;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -26,7 +28,7 @@ public interface StockService extends BaseService<Stock> {
 
     void delete(StockVo stockVo);
 
-    void changeQuantity(StockChangeVo stockChangeVo);
+    List<StockJournal> changeQuantity(StockChangeVo stockChangeVo);
 
     Page<Map<String, Object>> pageByWarehouseId(Condition condition);
 

+ 36 - 37
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockJournalServiceImpl.java

@@ -5,14 +5,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.base.Condition;
 import com.fjhx.constants.StockJournalTypeConstant;
-import com.fjhx.entity.apply.ApplyPurchase;
-import com.fjhx.entity.purchase.Purchase;
 import com.fjhx.entity.stock.Stock;
 import com.fjhx.entity.stock.StockJournal;
-import com.fjhx.enums.purchase.PurchaseStatusEnum;
 import com.fjhx.enums.stock.InTypeEnum;
 import com.fjhx.enums.stock.OutTypeEnum;
-import com.fjhx.enums.stock.QualityStatusEnum;
 import com.fjhx.mapper.stock.StockJournalMapper;
 import com.fjhx.params.stock.StockChangeVo;
 import com.fjhx.params.stock.StockJournalVo;
@@ -89,8 +85,10 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
 
     /**
      * 添加流水记录
+     *
+     * @return
      */
-    public void addJournal(StockChangeVo stockChangeVo) {
+    public List<StockJournal> addJournal(StockChangeVo stockChangeVo) {
         List<? extends StockChangeVo.ChangeDetails> changeDetailsList = stockChangeVo.getChangeDetailsList();
         Enum<?> typeEnum = stockChangeVo.getTypeEnum();
 
@@ -152,12 +150,10 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
                 }
 
                 StockJournal stockJournal = new StockJournal();
-
                 if (typeEnum instanceof InTypeEnum) {
                     stockJournal.setType(StockJournalTypeConstant.IN);
                     stockJournal.setDetailsType(((InTypeEnum) typeEnum).getKey());
                     stockJournal.setActualQuantity(BigDecimal.ZERO);
-                    stockJournal.setQualityStatus(QualityStatusEnum.STATUS_10.getKey());
                 } else {
                     stockJournal.setType(StockJournalTypeConstant.OUT);
                     stockJournal.setDetailsType(((OutTypeEnum) typeEnum).getKey());
@@ -175,6 +171,7 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
 
             saveBatch(stockJournalList);
         }
+        return stockJournalList;
     }
 
     @Override
@@ -236,36 +233,38 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
         return page;
     }
 
-    /**
-     * 到货质检列表
-     *
-     * @param condition 查询条件
-     * @return
-     */
-    @Override
-    public Page<StockJournal> getArrivalQualityPage(Map<String, Object> condition) {
-        IWrapper<StockJournal> wrapper = IWrapper.getWrapper(condition);
-        wrapper.eq("t1", StockJournal::getType, StockJournalTypeConstant.IN)
-                .eq("t1", StockJournal::getDetailsType, InTypeEnum.PURCHASE.getKey())
-                .ge("t3", Purchase::getStatus, PurchaseStatusEnum.STATUS_30.getKey())
-                .le("t3", Purchase::getStatus, PurchaseStatusEnum.STATUS_40.getKey())
-                .eq("t1", StockJournal::getQualityStatus)
-                .and(Func.isNotEmpty(condition.get("keyword")), o -> o.apply("instr(t3.`code`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t4.`name`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t5.`name`, '" + condition.get("keyword") + "') > 0"))
-                .groupBy("t1.`code`")
-                .orderByDesc("t1", ApplyPurchase::getCode);
-
-        Page<StockJournal> page = baseMapper.getArrivalQualityPage(createPage(condition), wrapper);
-        if (Func.isNotEmpty(page.getRecords())) {
-            Map<Long, String> userNameMap = UserClientUtil.getUserNameMap(page.getRecords(), StockJournal::getCreateUser);
-            for (StockJournal entity : page.getRecords()) {
-                if (Func.isNotEmpty(userNameMap) && Func.isNotEmpty(userNameMap.get(entity.getCreateUser()))) {
-                    entity.setCreateName(userNameMap.get(entity.getCreateUser()));
-                }
-            }
-        }
-
-        return page;
-    }
+    // /**
+    //  * 到货质检列表
+    //  *
+    //  * @param condition 查询条件
+    //  * @return
+    //  */
+    // @Override
+    // public Page<StockJournal> getArrivalQualityPage(Map<String, Object> condition) {
+    //     IWrapper<StockJournal> wrapper = IWrapper.getWrapper(condition);
+    //     wrapper.eq("t1", StockJournal::getType, StockJournalTypeConstant.IN)
+    //             .eq("t1", StockJournal::getDetailsType, InTypeEnum.PURCHASE.getKey())
+    //             .keyword(
+    //                     new KeywordData("t3.`code`"),
+    //                     new KeywordData("t4.`name`"),
+    //                     new KeywordData("t5.`name`")
+    //             )
+    //             .groupBy("t1.`code`")
+    //             .orderByDesc("t1", ApplyPurchase::getCode);
+    //
+    //     Page<StockJournal> page = baseMapper.getArrivalQualityPage(createPage(condition), wrapper);
+    //     List<StockJournal> records = page.getRecords();
+    //     if (records.size() == 0) {
+    //         return page;
+    //     }
+    //
+    //     Map<Long, String> userNameMap = UserClientUtil.getUserNameMap(records, BaseEntity::getCreateUser);
+    //
+    //     for (StockJournal record : records) {
+    //         record.setCreateName(userNameMap.get(record.getCreateUser()));
+    //     }
+    //     return page;
+    // }
 
     @Override
     public Page<Map<String, Object>> inOutDocument(Condition condition) {

+ 3 - 2
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockServiceImpl.java

@@ -10,6 +10,7 @@ import com.fjhx.constants.StatusConstant;
 import com.fjhx.entity.product.ProductCombination;
 import com.fjhx.entity.product.ProductInfo;
 import com.fjhx.entity.stock.Stock;
+import com.fjhx.entity.stock.StockJournal;
 import com.fjhx.entity.warehouse.Warehouse;
 import com.fjhx.enums.stock.InTypeEnum;
 import com.fjhx.mapper.stock.StockMapper;
@@ -73,14 +74,14 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void changeQuantity(StockChangeVo stockChangeVo) {
+    public List<StockJournal> changeQuantity(StockChangeVo stockChangeVo) {
         Assert.notEmpty(stockChangeVo.getChangeDetailsList(), "变更数量数量列表为空");
         // 合并变更数量
         Map<String, Stock> map = mergeChangeQuantity(stockChangeVo);
         // 变更数量
         ChangeQuantity(map, stockChangeVo.getTypeEnum());
         // 添加流水记录
-        stockJournalService.addJournal(stockChangeVo);
+        return stockJournalService.addJournal(stockChangeVo);
     }
 
     @Override

+ 3 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/uitl/code/CodeEnum.java

@@ -13,6 +13,7 @@ import com.fjhx.service.order.OrderInfoService;
 import com.fjhx.service.product.ProductInfoService;
 import com.fjhx.service.product.ProductSpuService;
 import com.fjhx.service.purchase.PurchaseService;
+import com.fjhx.service.quality.QualityInfoService;
 import com.fjhx.service.stock.StockJournalService;
 import com.fjhx.service.supplier.SupplierService;
 import com.fjhx.utils.Assert;
@@ -64,7 +65,8 @@ public enum CodeEnum {
     FORM_OVERFLOW("LR", "yyyyMM-", "code", 5, FormOverflowLossService.class),
     // 报损单号
     FORM_LOSS("FL", "yyyyMM-", "code", 5, FormOverflowLossService.class),
-
+    // 质检单号
+    QUALITY("QA", "yyyyMM-", "code", 5, QualityInfoService.class),
 
     ;
 

+ 12 - 4
hx-service/victoriatourist/src/main/java/com/fjhx/uitl/kd100/KD100Util.java

@@ -174,12 +174,20 @@ public class KD100Util {
     }
 
     public static Integer getLogisticsStatus(String logisticsCompanyCode, String code) {
-        //查询快递100的物流信息
-        JSONObject result = KD100Util.queryTrack(logisticsCompanyCode, code);
-        Integer state = result.getInteger("state");
+        Integer itemState = -1;
+
+        // 查询快递100的物流信息
+        try {
+            JSONObject result = KD100Util.queryTrack(logisticsCompanyCode, code);
+            itemState = result.getInteger("state");
+        } catch (Exception e) {
+
+        }
+
+        Integer state = itemState;
         new Thread(() -> {
             if (!Objects.equals(state, LogisticsConstant.KD100Status.STATUS_3)) {
-                //如果不是已签收状态,则开启订阅(物流状态跟踪并推送)
+                // 如果不是已签收状态,则开启订阅(物流状态跟踪并推送)
                 KD100Util.subscribe(logisticsCompanyCode, code, new Date());
             }
         }).start();