Parcourir la source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	hx-service/victoriatourist/src/main/java/com/fjhx/uitl/code/CodeEnum.java
24282 il y a 2 ans
Parent
commit
2848a69a58
37 fichiers modifiés avec 619 ajouts et 192 suppressions
  1. 14 2
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/constants/logistics/LogisticsConstant.java
  2. 1 1
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/apply/ApplyPurchase.java
  3. 28 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/logistics/LogisticsDetails.java
  4. 36 1
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/logistics/LogisticsInfo.java
  5. 1 1
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/purchase/Purchase.java
  6. 16 4
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/stock/StockJournal.java
  7. 3 3
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/enums/apply/ApplyPurchaseStatusEnum.java
  8. 4 3
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/enums/purchase/PurchaseStatusEnum.java
  9. 58 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/enums/stock/QualityStatusEnum.java
  10. 24 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/ManualInStockVo.java
  11. 34 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/PurchaseInStockVo.java
  12. 23 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/StockChangeVo.java
  13. 31 2
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/logistics/LogisticsInfoController.java
  14. 24 11
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/purchase/PurchaseController.java
  15. 24 3
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/ManualInStockController.java
  16. 30 10
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/PurchaseInStockController.java
  17. 0 4
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/apply/ApplyPurchaseMapper.java
  18. 0 19
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/apply/ApplyPurchaseMapper.xml
  19. 7 4
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsDetailsMapper.java
  20. 17 15
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsDetailsMapper.xml
  21. 11 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsInfoMapper.java
  22. 23 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsInfoMapper.xml
  23. 9 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockJournalMapper.java
  24. 28 5
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockJournalMapper.xml
  25. 0 6
      hx-service/victoriatourist/src/main/java/com/fjhx/service/apply/ApplyPurchaseService.java
  26. 6 31
      hx-service/victoriatourist/src/main/java/com/fjhx/service/apply/impl/ApplyPurchaseServiceImpl.java
  27. 5 8
      hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/LogisticsDetailsService.java
  28. 16 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/LogisticsInfoService.java
  29. 8 21
      hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsDetailsServiceImpl.java
  30. 53 1
      hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsInfoServiceImpl.java
  31. 8 7
      hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/PurchaseService.java
  32. 5 5
      hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/impl/PurchaseFlowServiceImpl.java
  33. 17 16
      hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/impl/PurchaseServiceImpl.java
  34. 8 1
      hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/StockJournalService.java
  35. 39 3
      hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockJournalServiceImpl.java
  36. 5 4
      hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockServiceImpl.java
  37. 3 1
      hx-service/victoriatourist/src/main/java/com/fjhx/uitl/code/CodeEnum.java

+ 14 - 2
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/constants/logistics/LogisticsConstant.java

@@ -9,13 +9,25 @@ public interface LogisticsConstant {
      * 状态
      */
     class Status {
-        //未完成
+        //未完成 / 未到货
         public static final Integer STATUS_0 = 0;
-        //已完成
+        //已完成 / 已到货
         public static final Integer STATUS_1 = 1;
     }
 
     /**
+     * 入库状态
+     */
+    class InStockStatus {
+        //未入库
+        public static final Integer STATUS_10 = 10;
+        //部分入库
+        public static final Integer STATUS_20 = 20;
+        //已入库
+        public static final Integer STATUS_30 = 30;
+    }
+
+    /**
      * 物流状态(快递100的状态)
      */
     class KD100Status {

+ 1 - 1
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/apply/ApplyPurchase.java

@@ -64,7 +64,7 @@ public class ApplyPurchase extends BaseEntity {
     private Long receiptWarehouseId;
 
     /**
-     * 状态:10、待采购;20、审批中;30、待发货;40、已发货;50、已完成
+     * 状态:10、待采购;20、已驳回;30、采购审批中;40、已采购;50、已完成
      */
     private Integer status;
 

+ 28 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/logistics/LogisticsDetails.java

@@ -59,5 +59,33 @@ public class LogisticsDetails extends BaseEntity {
     @TableLogic
     private Integer delFlag;
 
+    /**
+     * 采购数量
+     */
+    @TableField(exist = false)
+    private BigDecimal purchaseQuantity;
 
+    /**
+     * 物品ID
+     */
+    @TableField(exist = false)
+    private Long goodsId;
+
+    /**
+     * 物品编码
+     */
+    @TableField(exist = false)
+    private String goodsCode;
+
+    /**
+     * 物品名称
+     */
+    @TableField(exist = false)
+    private String goodsName;
+
+    /**
+     * 仓库ID
+     */
+    @TableField(exist = false)
+    private Long warehouseId;
 }

+ 36 - 1
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/logistics/LogisticsInfo.java

@@ -43,11 +43,16 @@ public class LogisticsInfo extends BaseEntity {
     private String code;
 
     /**
-     * 完成状态 1是 0否
+     * 状态:0、未完成 / 未到货;1、已完成 / 已到货
      */
     private Integer status;
 
     /**
+     * 入库状态:10、未入库;20、部分入库;30、已入库
+     */
+    private Integer inStockStatus;
+
+    /**
      * 物流公司编码
      */
     private String logisticsCompanyCode;
@@ -75,4 +80,34 @@ public class LogisticsInfo extends BaseEntity {
      */
     @TableField(exist = false)
     private List<FileInfo> fileInfos;
+
+    /**
+     * 采购单号
+     */
+    @TableField(exist = false)
+    private String purchaseCode;
+
+    /**
+     * 供应商ID
+     */
+    @TableField(exist = false)
+    private Long supplierId;
+
+    /**
+     * 供应商名称
+     */
+    @TableField(exist = false)
+    private String supplierName;
+
+    /**
+     * 物流公司名称
+     */
+    @TableField(exist = false)
+    private String logisticsCompanyName;
+
+    /**
+     * 采购员名称
+     */
+    @TableField(exist = false)
+    private String purchaseName;
 }

+ 1 - 1
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/purchase/Purchase.java

@@ -39,7 +39,7 @@ public class Purchase extends BaseEntity {
     private BigDecimal price;
 
     /**
-     * 状态:10、审批中;20、驳回;30、待发货;40、已发货;50、已完成
+     * 状态:10、审批中;20、驳回;30、未到货;40、部分到货;50、已到货;99、取消
      */
     private Integer status;
 

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

@@ -62,9 +62,9 @@ public class StockJournal extends BaseEntity {
     private BigDecimal actualQuantity;
 
     /**
-     * 是否已入库:0、否;1、是
+     * 质检状态:10、未质检;20、部分质检;30、已质检
      */
-    private Integer isInStock;
+    private Integer qualityStatus;
 
     /**
      * 备注
@@ -85,10 +85,10 @@ public class StockJournal extends BaseEntity {
     private String createName;
 
     /**
-     * 物品类型
+     * 物品编码
      */
     @TableField(exist = false)
-    private String goodsType;
+    private String goodsCode;
 
     /**
      * 物品名称
@@ -97,12 +97,24 @@ public class StockJournal extends BaseEntity {
     private String goodsName;
 
     /**
+     * 物品类型
+     */
+    @TableField(exist = false)
+    private Integer goodsType;
+
+    /**
      * 物品单位
      */
     @TableField(exist = false)
     private String goodsUnit;
 
     /**
+     * 物品规格
+     */
+    @TableField(exist = false)
+    private String goodsSpecs;
+
+    /**
      * 物流单号
      */
     @TableField(exist = false)

+ 3 - 3
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/enums/apply/ApplyPurchaseStatusEnum.java

@@ -12,9 +12,9 @@ import java.util.Map;
  */
 public enum ApplyPurchaseStatusEnum {
     STATUS_10(10, "待采购"),
-    STATUS_20(20, "审批中"),
-    STATUS_30(30, "待发货"),
-    STATUS_40(40, "已发货"),
+    STATUS_20(20, "采购审批中"),
+    STATUS_30(30, "已驳回"),
+    STATUS_40(40, "已采购"),
     STATUS_50(50, "已完成"),
     ;
 

+ 4 - 3
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/enums/purchase/PurchaseStatusEnum.java

@@ -13,9 +13,10 @@ import java.util.Map;
 public enum PurchaseStatusEnum {
     STATUS_10(10, "审批中"),
     STATUS_20(20, "驳回"),
-    STATUS_30(30, "待发货"),
-    STATUS_40(40, "已发货"),
-    STATUS_50(50, "已完成"),
+    STATUS_30(30, "未到货"),
+    STATUS_40(40, "部分到货"),
+    STATUS_50(50, "已到货"),
+    STATUS_99(99, "已取消"),
     ;
 
     private int key;

+ 58 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/enums/stock/QualityStatusEnum.java

@@ -0,0 +1,58 @@
+package com.fjhx.enums.stock;
+
+import cn.hutool.core.util.ObjectUtil;
+import lombok.Getter;
+import org.springblade.core.tool.utils.StringPool;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author 质检状态枚举
+ */
+@Getter
+public enum QualityStatusEnum {
+    STATUS_10(10, "未质检"),
+    STATUS_20(20, "部分质检"),
+    STATUS_30(30, "已质检"),
+
+    ;
+
+    private final int key;
+
+    private final String value;
+
+    QualityStatusEnum(int key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    private static final Map<Integer, QualityStatusEnum> CLASS_MAP = new HashMap<>();
+
+    static {
+        for (QualityStatusEnum value : QualityStatusEnum.values()) {
+            CLASS_MAP.put(value.getKey(), value);
+        }
+    }
+
+    /**
+     * 根据key获取枚举
+     */
+    public static QualityStatusEnum getEnumByKey(Integer type) {
+        return CLASS_MAP.get(type);
+    }
+
+    /**
+     * 通过key获取名称
+     */
+    public static String getValueByKey(Integer key) {
+        QualityStatusEnum inTypeEnum = CLASS_MAP.get(key);
+
+        if (ObjectUtil.isEmpty(inTypeEnum)) {
+            return StringPool.EMPTY;
+        }
+
+        return inTypeEnum.getValue();
+    }
+
+}

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

@@ -0,0 +1,24 @@
+package com.fjhx.params.stock;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ManualInStockVo {
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 产品列表
+     */
+    private List<ChangeProduct> changeProductList;
+}

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

@@ -0,0 +1,34 @@
+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;
+}

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

@@ -1,6 +1,7 @@
 package com.fjhx.params.stock;
 
 import com.fjhx.entity.stock.ManualVo;
+import com.fjhx.enums.stock.InTypeEnum;
 import com.fjhx.enums.stock.OutTypeEnum;
 import lombok.Data;
 
@@ -22,6 +23,28 @@ public class StockChangeVo {
     }
 
     /**
+     * 采购入库 初始
+     *
+     * @param list
+     */
+    public StockChangeVo(List<PurchaseInStockVo> list) {
+        typeEnum = InTypeEnum.PURCHASE;
+        changeDetailsList = list;
+    }
+
+    /**
+     * 手动入库 初始
+     *
+     * @param entity
+     */
+    public StockChangeVo(ManualInStockVo entity) {
+        defaultWarehouseId = entity.getWarehouseId();
+        defaultRemarks = entity.getRemarks();
+        typeEnum = InTypeEnum.MANUAL;
+        changeDetailsList = entity.getChangeProductList();
+    }
+
+    /**
      * 默认业务ID
      * 未指定业务ID时,会使用此业务ID
      */

+ 31 - 2
hx-service/victoriatourist/src/main/java/com/fjhx/controller/logistics/LogisticsInfoController.java

@@ -37,9 +37,15 @@ public class LogisticsInfoController {
         return R.success(result);
     }
 
+    /**
+     * 发货通知
+     *
+     * @param entity
+     * @return
+     */
     @PostMapping("/add")
-    public R add(@RequestBody LogisticsInfoVo logisticsInfoVo) {
-        logisticsInfoService.add(logisticsInfoVo);
+    public R add(@RequestBody LogisticsInfoVo entity) {
+        logisticsInfoService.add(entity);
         return R.success();
     }
 
@@ -61,5 +67,28 @@ public class LogisticsInfoController {
         return R.success(list);
     }
 
+    /**
+     * 查询物流单号下拉款
+     *
+     * @param entity
+     * @return
+     */
+    @PostMapping("/code/select")
+    public R codeSelect(@RequestBody LogisticsInfoVo entity) {
+        return R.success(logisticsInfoService.codeSelectByBusinessId(entity.getBusinessId()));
+    }
+
+    /**
+     * 到货通知
+     *
+     * @param entity
+     * @return
+     */
+    @PostMapping("/arrival/notice")
+    public R arrivalNotice(@RequestBody LogisticsInfoVo entity) {
+        entity.setStatus(LogisticsConstant.Status.STATUS_1);
+        return R.success(logisticsInfoService.updateById(entity));
+    }
+
 }
 

+ 24 - 11
hx-service/victoriatourist/src/main/java/com/fjhx/controller/purchase/PurchaseController.java

@@ -3,6 +3,7 @@ package com.fjhx.controller.purchase;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.apply.ApplyPurchase;
 import com.fjhx.entity.purchase.Purchase;
+import com.fjhx.enums.purchase.PurchaseStatusEnum;
 import com.fjhx.service.purchase.PurchaseService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +30,19 @@ public class PurchaseController {
     private PurchaseService purchaseService;
 
     /**
-     * 待发货列表
+     * 待采购列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    @PostMapping("/stay/purchase/page")
+    public R stayPurchasePage(@RequestBody Map<String, Object> condition) {
+        Page<ApplyPurchase> result = purchaseService.stayPurchasePage(condition);
+        return R.success(result);
+    }
+
+    /**
+     * 已采购列表
      *
      * @param condition 查询条件
      * @return
@@ -41,26 +54,26 @@ public class PurchaseController {
     }
 
     /**
-     * 待采购列表
+     * 取消
      *
-     * @param condition 查询条件
+     * @param entity
      * @return
      */
-    @PostMapping("/stay/purchase/page")
-    public R stayPurchasePage(@RequestBody Map<String, Object> condition) {
-        Page<ApplyPurchase> result = purchaseService.stayPurchasePage(condition);
-        return R.success(result);
+    @PostMapping("/cancel")
+    public R cancel(@RequestBody Purchase entity) {
+        purchaseService.cancelOrEnd(entity.getId(), PurchaseStatusEnum.STATUS_99.getKey());
+        return R.success();
     }
 
     /**
-     * 完成
+     * 结束
      *
      * @param entity
      * @return
      */
-    @PostMapping("/complete")
-    public R complete(@RequestBody Purchase entity) {
-        purchaseService.complete(entity.getId());
+    @PostMapping("/end")
+    public R end(@RequestBody Purchase entity) {
+        purchaseService.cancelOrEnd(entity.getId(), PurchaseStatusEnum.STATUS_50.getKey());
         return R.success();
     }
 }

+ 24 - 3
hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/ManualInStockController.java

@@ -1,7 +1,13 @@
 package com.fjhx.controller.stock;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
+import com.fjhx.entity.logistics.LogisticsInfo;
+import com.fjhx.entity.stock.StockJournal;
 import com.fjhx.enums.stock.InTypeEnum;
+import com.fjhx.params.stock.ManualInStockVo;
 import com.fjhx.params.stock.StockChangeVo;
+import com.fjhx.service.stock.StockJournalService;
 import com.fjhx.service.stock.StockService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,12 +24,27 @@ import org.springframework.web.bind.annotation.RestController;
 public class ManualInStockController {
 
     @Autowired
+    private StockJournalService stockJournalService;
+
+    @Autowired
     private StockService stockService;
 
+    /**
+     * 列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    @PostMapping("/page")
+    public R page(@RequestBody Condition condition) {
+        Page<StockJournal> result = stockJournalService.getManualInStockPage(condition);
+        return R.success(result);
+    }
+
     @PostMapping("/add")
-    public R add(@RequestBody StockChangeVo stockVo) {
-        stockVo.setTypeEnum(InTypeEnum.MANUAL);
-        stockService.changeQuantity(stockVo);
+    public R add(@RequestBody ManualInStockVo entity) {
+        StockChangeVo vo = new StockChangeVo(entity);
+        stockService.changeQuantity(vo);
         return R.success();
     }
 

+ 30 - 10
hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/PurchaseInStockController.java

@@ -2,10 +2,13 @@ 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.service.apply.ApplyPurchaseService;
 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;
@@ -15,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * 采购入库
@@ -25,7 +27,7 @@ import java.util.Map;
 public class PurchaseInStockController {
 
     @Autowired
-    private ApplyPurchaseService applyPurchaseService;
+    private LogisticsInfoService logisticsInfoService;
 
     @Autowired
     private LogisticsDetailsService logisticsDetailsService;
@@ -33,22 +35,40 @@ public class PurchaseInStockController {
     @Autowired
     private StockService stockService;
 
+    /**
+     * 列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
     @PostMapping("/page")
     public R page(@RequestBody Condition condition) {
-        Page<Map<String, Object>> result = applyPurchaseService.applyInPage(condition);
+        Page<LogisticsInfo> result = logisticsInfoService.getPurchaseInStockPage(condition);
         return R.success(result);
     }
 
-    @PostMapping("getLogisticsDetailsByLogisticsId")
-    public R getLogisticsDetailsByLogisticsId(@RequestBody Condition condition) {
-        List<Map<String, Object>> result = logisticsDetailsService.getLogisticsDetailsByLogisticsId(condition);
+    /**
+     * 物流单明细
+     *
+     * @param entity 查询条件
+     * @return
+     */
+    @PostMapping("/logistics/details")
+    public R logisticsDetails(@RequestBody LogisticsDetails entity) {
+        List<LogisticsDetails> result = logisticsDetailsService.getByLogisticsInfoId(entity.getLogisticsInfoId());
         return R.success(result);
     }
 
+    /**
+     * 入库
+     *
+     * @param list 参数
+     * @return
+     */
     @PostMapping("/add")
-    public R add(@RequestBody StockChangeVo stockVo) {
-        stockVo.setTypeEnum(InTypeEnum.PURCHASE);
-        stockService.changeQuantity(stockVo);
+    public R add(@RequestBody List<PurchaseInStockVo> list) {
+        StockChangeVo vo = new StockChangeVo(list);
+        stockService.changeQuantity(vo);
         return R.success();
     }
 

+ 0 - 4
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/apply/ApplyPurchaseMapper.java

@@ -6,8 +6,6 @@ import com.fjhx.entity.apply.ApplyPurchase;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
-import java.util.Map;
-
 /**
  * <p>
  * 申购单 Mapper 接口
@@ -20,6 +18,4 @@ public interface ApplyPurchaseMapper extends BaseMapper<ApplyPurchase> {
 
     Page<ApplyPurchase> getPage(@Param("page") Page<ApplyPurchase> page, @Param("ew") IWrapper<ApplyPurchase> wrapper);
 
-    Page<Map<String, Object>> applyInPage(@Param("page") Page<ApplyPurchase> page, @Param("ew") IWrapper<Object> wrapper);
-
 }

+ 0 - 19
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/apply/ApplyPurchaseMapper.xml

@@ -29,23 +29,4 @@
         ${ew.customSqlSegment}
     </select>
 
-    <select id="applyInPage" resultType="java.util.LinkedHashMap">
-        select ap.id,
-               ap.code,
-               pi.code                             productCode,
-               pi.name                             productName,
-               pi.type                             productType,
-               ap.quantity,
-               ap.receipt_quantity,
-               (ap.quantity - ap.receipt_quantity) not_receipt_quantity,
-               w.name                              warehouse_name,
-               receipt_time,
-               ap.create_user,
-               ap.status
-        from apply_purchase ap
-                 left join product_info pi on ap.goods_id = pi.id
-                 LEFT JOIN warehouse w ON ap.receipt_warehouse_id = w.id
-            ${ew.customSqlSegment}
-    </select>
-
 </mapper>

+ 7 - 4
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsDetailsMapper.java

@@ -2,11 +2,8 @@ package com.fjhx.mapper.logistics;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fjhx.entity.logistics.LogisticsDetails;
-import com.fjhx.utils.wrapperUtil.IWrapper;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -18,6 +15,12 @@ import java.util.Map;
  */
 public interface LogisticsDetailsMapper extends BaseMapper<LogisticsDetails> {
 
-    List<Map<String, Object>> getLogisticsDetailsByLogisticsId(@Param("ew") IWrapper<Object> wrapper);
+    /**
+     * 根据物流单ID查询物流明细
+     *
+     * @param logisticsInfoId 物流单ID
+     * @return
+     */
+    List<LogisticsDetails> getByLogisticsInfoId(Long logisticsInfoId);
 
 }

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

@@ -2,21 +2,23 @@
 <!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="getLogisticsDetailsByLogisticsId" resultType="java.util.LinkedHashMap">
-        select ld.id,
-               ap.code     applyPurchaseCode,
-               pi.code     productCode,
-               pi.name     productName,
-               pi.type     productType,
-               ap.receipt_warehouse_id warehouseId,
-               w.name      warehouseName,
-               ap.quantity applyPurchaseQuantity,
-               ld.shipment_quantity shipmentQuantity
-        from logistics_details ld
-                 left join apply_purchase ap on ld.apply_purchase_id = ap.id
-                 left join product_info pi on ap.goods_id = pi.id
-                 left join warehouse w on ap.receipt_warehouse_id = w.id
-            ${ew.customSqlSegment}
+    <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>
 
 </mapper>

+ 11 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsInfoMapper.java

@@ -1,7 +1,10 @@
 package com.fjhx.mapper.logistics;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.logistics.LogisticsInfo;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +16,12 @@ import com.fjhx.entity.logistics.LogisticsInfo;
  */
 public interface LogisticsInfoMapper extends BaseMapper<LogisticsInfo> {
 
+    /**
+     * 采购入库列表
+     *
+     * @param page    分页信息
+     * @param wrapper 查询条件
+     * @return
+     */
+    Page<LogisticsInfo> getPurchaseInStockPage(@Param("page") Page<LogisticsInfo> page, @Param("ew") IWrapper<LogisticsInfo> wrapper);
 }

+ 23 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsInfoMapper.xml

@@ -2,4 +2,27 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.mapper.logistics.LogisticsInfoMapper">
 
+    <!-- 采购入库列表 -->
+    <select id="getPurchaseInStockPage" resultType="com.fjhx.entity.logistics.LogisticsInfo">
+        SELECT
+            t1.id,
+            t1.business_id,
+            t1.`code`,
+            t1.in_stock_status,
+            t1.logistics_company_code,
+            t1.logistics_status,
+            t2.`code` purchaseCode,
+            t2.create_user,
+            t2.create_time,
+	        t3.id supplierId,
+	        t3.`name` supplierName,
+	        t4.`name` logisticsCompanyName
+        FROM
+            logistics_info t1
+            LEFT JOIN purchase t2 ON t1.business_id = t2.id
+            LEFT JOIN supplier t3 ON t2.supplier_id = t3.id
+	        LEFT JOIN logistics_company t4 ON t1.logistics_company_code = t4.`code`
+        ${ew.customSqlSegment}
+    </select>
+
 </mapper>

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

@@ -22,4 +22,13 @@ public interface StockJournalMapper extends BaseMapper<StockJournal> {
 
     Page<Map<String, Object>> getManualOutPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Object> wrapper);
 
+    /**
+     * 手动入库列表
+     *
+     * @param page    分页信息
+     * @param wrapper 查询条件
+     * @return
+     */
+    Page<StockJournal> getManualInStockPage(@Param("page") Page<StockJournal> page, @Param("ew") IWrapper<StockJournal> wrapper);
+
 }

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

@@ -20,11 +20,12 @@
             t2.`unit` goodsUnit,
             t3.logistics_info_code,
             t4.`name` warehouseName
-        FROM stock_journal t1
-                 LEFT JOIN product_info t2 ON t1.goods_id = t2.id
-                 LEFT JOIN logistics_details t3 ON t1.business_id = t3.id
-                 LEFT JOIN warehouse t4 on t1.warehouse_id = t4.id
-            ${ew.customSqlSegment}
+        FROM
+            stock_journal t1
+            LEFT JOIN product_info t2 ON t1.goods_id = t2.id
+            LEFT JOIN logistics_details t3 ON t1.business_id = t3.id
+            LEFT JOIN warehouse t4 on t1.warehouse_id = t4.id
+        ${ew.customSqlSegment}
     </select>
 
     <select id="getManualOutPage" resultType="java.util.Map">
@@ -42,4 +43,26 @@
             ${ew.customSqlSegment}
     </select>
 
+    <!-- 手动入库列表 -->
+    <select id="getManualInStockPage" resultType="com.fjhx.entity.stock.StockJournal">
+        SELECT
+            t1.id,
+            t1.`code`,
+            t1.change_quantity,
+            t1.create_user,
+            t1.create_time,
+            t1.goods_id,
+            t2.`code` goods_code,
+            t2.`name` goods_name,
+            t2.type goods_type,
+            t2.specs goods_specs,
+            t2.unit goods_unit,
+            t1.warehouse_id,
+            t3.`name` warehouse_name
+        FROM
+            stock_journal t1
+            LEFT JOIN product_info t2 ON t1.goods_id = t2.id
+            LEFT JOIN warehouse t3 ON t1.warehouse_id = t3.id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>

+ 0 - 6
hx-service/victoriatourist/src/main/java/com/fjhx/service/apply/ApplyPurchaseService.java

@@ -2,7 +2,6 @@ package com.fjhx.service.apply;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.BaseService;
-import com.fjhx.base.Condition;
 import com.fjhx.entity.apply.ApplyPurchase;
 import com.fjhx.params.apply.ApplyPurchaseVo;
 
@@ -28,11 +27,6 @@ public interface ApplyPurchaseService extends BaseService<ApplyPurchase> {
     void delete(ApplyPurchaseVo applyPurchaseVo);
 
     /**
-     * 申购入库分页
-     */
-    Page<Map<String, Object>> applyInPage(Condition condition);
-
-    /**
      * 待采购列表
      *
      * @param condition 查询条件

+ 6 - 31
hx-service/victoriatourist/src/main/java/com/fjhx/service/apply/impl/ApplyPurchaseServiceImpl.java

@@ -2,7 +2,6 @@ package com.fjhx.service.apply.impl;
 
 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.product.ProductInfo;
@@ -29,7 +28,12 @@ import org.springframework.stereotype.Service;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -122,35 +126,6 @@ public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, A
         removeById(applyPurchaseVo.getId());
     }
 
-    /**
-     * 申购入库分页
-     */
-    @Override
-    public Page<Map<String, Object>> applyInPage(Condition condition) {
-        IWrapper<Object> wrapper = IWrapper.getWrapper(condition);
-        wrapper
-                .func(q -> {
-                    Integer status = condition.getStatus();
-                    if (status == null) {
-                        q.in("ap", ApplyPurchase::getStatus,
-                                ApplyPurchaseStatusEnum.STATUS_30.getKey(),
-                                ApplyPurchaseStatusEnum.STATUS_40.getKey(),
-                                ApplyPurchaseStatusEnum.STATUS_50.getKey());
-                    } else {
-                        q.eq("ap", ApplyPurchase::getStatus);
-                    }
-                })
-                .eq("ap", ApplyPurchase::getReceiptWarehouseId, condition.getLong("warehouseId"))
-                .like("ap", ApplyPurchase::getCode)
-                .like("pi", ProductInfo::getName, condition.getStr("productName"))
-                .eq("ap", ApplyPurchase::getCreateUser)
-                .periodTime("ap", ApplyPurchase::getReceiptTime);
-
-        Page<Map<String, Object>> page = baseMapper.applyInPage(createPage(condition), wrapper);
-        UserClientUtil.setUserName(page.getRecords(), "createUser", "createUserName");
-        return page;
-    }
-
     @Override
     public ApplyPurchase getById(Serializable id) {
         ApplyPurchase purchase = super.getById(id);

+ 5 - 8
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/LogisticsDetailsService.java

@@ -2,7 +2,6 @@ package com.fjhx.service.logistics;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.BaseService;
-import com.fjhx.base.Condition;
 import com.fjhx.entity.logistics.LogisticsDetails;
 import com.fjhx.params.logistics.LogisticsDetailsVo;
 
@@ -28,13 +27,11 @@ public interface LogisticsDetailsService extends BaseService<LogisticsDetails> {
     void delete(LogisticsDetailsVo logisticsDetailsVo);
 
     /**
-     * 根据物流单id查询物流明细
+     * 根据物流单ID查询物流明细
+     *
+     * @param logisticsInfoId 物流单ID
+     * @return
      */
-    List<Map<String, Object>> getLogisticsDetailsByLogisticsId(Condition condition);
-
-    /**
-     * 提交入库数量
-     */
-    void submitLogisticsDetails(List<LogisticsDetails> logisticsDetailsList);
+    List<LogisticsDetails> getByLogisticsInfoId(Long logisticsInfoId);
 
 }

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

@@ -27,6 +27,14 @@ public interface LogisticsInfoService extends BaseService<LogisticsInfo> {
     void delete(LogisticsInfoVo logisticsInfoVo);
 
     /**
+     * 采购入库列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    Page<LogisticsInfo> getPurchaseInStockPage(Map<String, Object> condition);
+
+    /**
      * 根据采购ID查询
      *
      * @param purchaseIds 采购ID集合
@@ -49,4 +57,12 @@ public interface LogisticsInfoService extends BaseService<LogisticsInfo> {
      * @param state 物流状态
      */
     void updateStatusByCode(String code, Integer state);
+
+    /**
+     * 根据业务ID查询物流单号
+     *
+     * @param businessId 业务ID
+     * @return
+     */
+    List<LogisticsInfo> codeSelectByBusinessId(Long businessId);
 }

+ 8 - 21
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsDetailsServiceImpl.java

@@ -49,28 +49,15 @@ public class LogisticsDetailsServiceImpl extends ServiceImpl<LogisticsDetailsMap
         removeById(logisticsDetailsVo.getId());
     }
 
+    /**
+     * 根据物流单ID查询物流明细
+     *
+     * @param logisticsInfoId 物流单ID
+     * @return
+     */
     @Override
-    public List<Map<String, Object>> getLogisticsDetailsByLogisticsId(Condition condition) {
-        Long id = condition.getLong("id");
-        Assert.notEmpty(id, "物流单id不能为空");
-
-        IWrapper<Object> wrapper = IWrapper.getWrapper(condition);
-        wrapper.eq("ld.id", id);
-
-        return baseMapper.getLogisticsDetailsByLogisticsId(wrapper);
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public void submitLogisticsDetails(List<LogisticsDetails> logisticsDetailsList) {
-        saveBatch(logisticsDetailsList);
-
-        // 更新申购入库数量
-
-
-
-        // 更新库存
-
+    public List<LogisticsDetails> getByLogisticsInfoId(Long logisticsInfoId) {
+        return baseMapper.getByLogisticsInfoId(logisticsInfoId);
     }
 
 }

+ 53 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsInfoServiceImpl.java

@@ -4,13 +4,17 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.constants.logistics.LogisticsConstant;
+import com.fjhx.entity.apply.ApplyPurchase;
 import com.fjhx.entity.logistics.LogisticsInfo;
+import com.fjhx.entity.purchase.Purchase;
+import com.fjhx.enums.purchase.PurchaseStatusEnum;
 import com.fjhx.mapper.logistics.LogisticsInfoMapper;
 import com.fjhx.params.logistics.LogisticsInfoVo;
 import com.fjhx.service.logistics.LogisticsDetailsService;
 import com.fjhx.service.logistics.LogisticsInfoService;
 import com.fjhx.uitl.kd100.KD100Util;
 import com.fjhx.utils.FileClientUtil;
+import com.fjhx.utils.UserClientUtil;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.utils.Func;
@@ -47,6 +51,38 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
         return page(condition, wrapper);
     }
 
+    /**
+     * 采购入库列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    @Override
+    public Page<LogisticsInfo> getPurchaseInStockPage(Map<String, Object> condition) {
+
+        IWrapper<LogisticsInfo> wrapper = IWrapper.getWrapper(condition);
+        wrapper.eq("t1", LogisticsInfo::getStatus, LogisticsConstant.Status.STATUS_1)
+                .lt("t1", LogisticsInfo::getInStockStatus, LogisticsConstant.InStockStatus.STATUS_30)
+                .eq("t1", LogisticsInfo::getBusinessType, 1)
+                .ge("t2", Purchase::getStatus, PurchaseStatusEnum.STATUS_30.getKey())
+                .le("t2", Purchase::getStatus, PurchaseStatusEnum.STATUS_40.getKey())
+                .eq("t1", LogisticsInfo::getInStockStatus)
+                .and(Func.isNotEmpty(condition.get("keyword")), o -> o.apply("instr(t1.`code`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t2.`code`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t3.`name`, '" + condition.get("keyword") + "') > 0"))
+                .orderByDesc("t1", ApplyPurchase::getId);
+
+        Page<LogisticsInfo> page = baseMapper.getPurchaseInStockPage(createPage(condition), wrapper);
+        if (Func.isNotEmpty(page.getRecords())) {
+            Map<Long, String> userNameMap = UserClientUtil.getUserNameMap(page.getRecords(), LogisticsInfo::getCreateUser);
+            for (LogisticsInfo entity : page.getRecords()) {
+                if (Func.isNotEmpty(userNameMap) && Func.isNotEmpty(userNameMap.get(entity.getCreateUser()))) {
+                    entity.setPurchaseName(userNameMap.get(entity.getCreateUser()));
+                }
+            }
+        }
+
+        return page;
+    }
+
     @Transactional(rollbackFor = {Exception.class})
     @Override
     public void add(LogisticsInfoVo logisticsInfoVo) {
@@ -62,8 +98,8 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
             KD100Util.subscribe(logisticsInfoVo.getLogisticsCompanyCode(), logisticsInfoVo.getCode());
         }
         logisticsInfoVo.setLogisticsStatus(state);
-
         logisticsInfoVo.setStatus(LogisticsConstant.Status.STATUS_0);
+        logisticsInfoVo.setInStockStatus(LogisticsConstant.InStockStatus.STATUS_10);
         save(logisticsInfoVo);
 
         logisticsInfoVo.getDetails().forEach(o -> {
@@ -127,4 +163,20 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
     public void updateStatusByCode(String code, Integer state) {
         lambdaUpdate().set(LogisticsInfo::getStatus, state).eq(LogisticsInfo::getCode, code).update();
     }
+
+    /**
+     * 根据业务ID查询物流单号
+     *
+     * @param businessId 业务ID
+     * @return
+     */
+    @Override
+    public List<LogisticsInfo> codeSelectByBusinessId(Long businessId) {
+        return lambdaQuery()
+                .select(LogisticsInfo::getId, LogisticsInfo::getCode)
+                .eq(LogisticsInfo::getBusinessType, 1)
+                .eq(LogisticsInfo::getBusinessId, businessId)
+                .eq(LogisticsInfo::getStatus, LogisticsConstant.Status.STATUS_0)
+                .list();
+    }
 }

+ 8 - 7
hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/PurchaseService.java

@@ -18,20 +18,20 @@ import java.util.Map;
 public interface PurchaseService extends BaseService<Purchase> {
 
     /**
-     * 待发货列表
+     * 待采购列表
      *
      * @param condition 查询条件
      * @return
      */
-    Page<Purchase> getPage(Map<String, Object> condition);
+    Page<ApplyPurchase> stayPurchasePage(Map<String, Object> condition);
 
     /**
-     * 采购列表
+     * 采购列表
      *
      * @param condition 查询条件
      * @return
      */
-    Page<ApplyPurchase> stayPurchasePage(Map<String, Object> condition);
+    Page<Purchase> getPage(Map<String, Object> condition);
 
     /**
      * 获取审批详情
@@ -42,9 +42,10 @@ public interface PurchaseService extends BaseService<Purchase> {
     Purchase getFlowDetailsById(Long id);
 
     /**
-     * 完成采购
+     * 取消 或 结束
      *
-     * @param id 采购ID
+     * @param id     采购ID
+     * @param status 采购状态
      */
-    void complete(Long id);
+    void cancelOrEnd(Long id, Integer status);
 }

+ 5 - 5
hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/impl/PurchaseFlowServiceImpl.java

@@ -79,7 +79,7 @@ public class PurchaseFlowServiceImpl implements PurchaseFlowService {
                         //修改采购状态
                         purchaseService.lambdaUpdate().set(Purchase::getStatus, PurchaseStatusEnum.STATUS_30.getKey()).eq(Purchase::getId, id).update();
                         //修改申购状态
-                        applyPurchaseService.lambdaUpdate().set(ApplyPurchase::getStatus, ApplyPurchaseStatusEnum.STATUS_30.getKey()).eq(ApplyPurchase::getPurchaseId, id).update();
+                        applyPurchaseService.lambdaUpdate().set(ApplyPurchase::getStatus, ApplyPurchaseStatusEnum.STATUS_40.getKey()).eq(ApplyPurchase::getPurchaseId, id).update();
                     }
 
                     /**
@@ -106,10 +106,10 @@ public class PurchaseFlowServiceImpl implements PurchaseFlowService {
                         purchaseService.lambdaUpdate().set(Purchase::getStatus, PurchaseStatusEnum.STATUS_20.getKey()).set(Purchase::getDelFlag, CommonConstant.YesOrNo.YES).eq(Purchase::getId, id).update();
                         //修改申购状态
                         applyPurchaseService.lambdaUpdate()
-                                .set(ApplyPurchase::getStatus, ApplyPurchaseStatusEnum.STATUS_10.getKey())
-                                .set(ApplyPurchase::getUnitPrice, null)
-                                .set(ApplyPurchase::getPurchaseId, null)
-                                .set(ApplyPurchase::getPurchaseCode, null)
+                                .set(ApplyPurchase::getStatus, ApplyPurchaseStatusEnum.STATUS_30.getKey())
+//                                .set(ApplyPurchase::getUnitPrice, null)
+//                                .set(ApplyPurchase::getPurchaseId, null)
+//                                .set(ApplyPurchase::getPurchaseCode, null)
                                 .eq(ApplyPurchase::getPurchaseId, id)
                                 .update();
                         return true;

+ 17 - 16
hx-service/victoriatourist/src/main/java/com/fjhx/service/purchase/impl/PurchaseServiceImpl.java

@@ -41,7 +41,18 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
     private LogisticsInfoService logisticsInfoService;
 
     /**
-     * 待发货列表
+     * 待采购列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    @Override
+    public Page<ApplyPurchase> stayPurchasePage(Map<String, Object> condition) {
+        return applyPurchaseService.stayPurchasePage(condition);
+    }
+
+    /**
+     * 已采购列表
      *
      * @param condition 查询条件
      * @return
@@ -82,17 +93,6 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
     }
 
     /**
-     * 待采购列表
-     *
-     * @param condition 查询条件
-     * @return
-     */
-    @Override
-    public Page<ApplyPurchase> stayPurchasePage(Map<String, Object> condition) {
-        return applyPurchaseService.stayPurchasePage(condition);
-    }
-
-    /**
      * 获取审批详情
      *
      * @param id 采购ID
@@ -112,15 +112,16 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
     }
 
     /**
-     * 完成采购
+     * 取消 或 结束
      *
-     * @param id 采购ID
+     * @param id     采购ID
+     * @param status 采购状态
      */
     @Transactional(rollbackFor = {Exception.class})
     @Override
-    public void complete(Long id) {
+    public void cancelOrEnd(Long id, Integer status) {
         //修改采购状态
-        lambdaUpdate().set(Purchase::getStatus, PurchaseStatusEnum.STATUS_50.getKey()).eq(Purchase::getId, id).update();
+        lambdaUpdate().set(Purchase::getStatus, status).eq(Purchase::getId, id).update();
         //修改申购状态
         applyPurchaseService.lambdaUpdate().set(ApplyPurchase::getStatus, ApplyPurchaseStatusEnum.STATUS_50.getKey()).eq(ApplyPurchase::getPurchaseId, id).update();
     }

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

@@ -32,6 +32,13 @@ public interface StockJournalService extends BaseService<StockJournal> {
     /**
      * 获取手动出库分页
      */
-    Page<Map<String,Object>> getManualOutPage(Condition condition);
+    Page<Map<String, Object>> getManualOutPage(Condition condition);
 
+    /**
+     * 手动入库列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    Page<StockJournal> getManualInStockPage(Condition condition);
 }

+ 39 - 3
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockJournalServiceImpl.java

@@ -4,11 +4,11 @@ import cn.hutool.core.util.ObjectUtil;
 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.StatusConstant;
 import com.fjhx.constants.StockJournalTypeConstant;
 import com.fjhx.entity.stock.StockJournal;
 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;
@@ -92,7 +92,12 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
 
             if (typeEnum instanceof InTypeEnum) {
                 switch ((InTypeEnum) typeEnum) {
-
+                    case PURCHASE:
+                        code = CodeEnum.IN_PURCHASE.getCode();
+                        break;
+                    case MANUAL:
+                        code = CodeEnum.IN_JOURNAL.getCode();
+                        break;
                 }
             } else {
                 switch ((OutTypeEnum) typeEnum) {
@@ -134,7 +139,7 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
                     stockJournal.setType(StockJournalTypeConstant.IN);
                     stockJournal.setDetailsType(((InTypeEnum) typeEnum).getKey());
                     stockJournal.setActualQuantity(BigDecimal.ZERO);
-                    stockJournal.setIsInStock(StatusConstant.NO);
+                    stockJournal.setQualityStatus(QualityStatusEnum.STATUS_10.getKey());
                 } else {
                     stockJournal.setType(StockJournalTypeConstant.OUT);
                     stockJournal.setDetailsType(((OutTypeEnum) typeEnum).getKey());
@@ -180,4 +185,35 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
 
         return manualOutPage;
     }
+
+    /**
+     * 手动入库列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    @Override
+    public Page<StockJournal> getManualInStockPage(Condition condition) {
+        IWrapper<StockJournal> wrapper = IWrapper.getWrapper(condition);
+        wrapper.eq("t1", StockJournal::getType, StockJournalTypeConstant.IN)
+                .eq("t1", StockJournal::getDetailsType, InTypeEnum.MANUAL.getKey())
+                .eq("t1", StockJournal::getWarehouseId)
+                .ge("t1", StockJournal::getCreateTime, condition.get("startTime"))
+                .le("t1", StockJournal::getCreateTime, condition.get("endTime"))
+                .and(Func.isNotEmpty(condition.get("keyword")), o -> o.apply("instr(t2.`code`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t2.`name`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t3.`name`, '" + condition.get("keyword") + "') > 0"))
+                .orderByDesc("t1", StockJournal::getId);
+
+        Page<StockJournal> page = baseMapper.getManualInStockPage(createPage(condition), wrapper);
+        if (Func.isNotEmpty(page.getRecords())) {
+            //操作人名称map
+            Map<Long, String> userNameMap = UserClientUtil.getUserNameMap(page.getRecords(), StockJournal::getCreateUser);
+
+            for (StockJournal record : page.getRecords()) {
+                if (Func.isNotEmpty(userNameMap) && Func.isNotEmpty(userNameMap.get(record.getCreateUser()))) {
+                    record.setCreateName(userNameMap.get(record.getCreateUser()));
+                }
+            }
+        }
+        return page;
+    }
 }

+ 5 - 4
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockServiceImpl.java

@@ -18,7 +18,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * <p>
@@ -34,9 +38,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
     @Autowired
     private StockJournalServiceImpl stockJournalService;
 
-    // 添加流水记录锁
-    public static final Object ADD_JOURNAL_LOCK = new Object();
-
     @Override
     public Page<Stock> getPage(Map<String, Object> condition) {
 

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

@@ -49,10 +49,12 @@ public enum CodeEnum {
     S_OUT_JOURNAL("SO", "yyyyMM-", "code", 5, StockJournalService.class),
     // 手动入库流水单号
     IN_JOURNAL("I", "yyyyMM-", "code", 5, StockJournalService.class),
-    // 京东入库流水单号
+    // 京东入库流水单号,
     JD_IN_JOURNAL("JDI", "yyyyMM-", "code", 5, StockJournalService.class),
     // 销售入库流水单号
     S_IN_JOURNAL("SI", "yyyyMM-", "code", 5, StockJournalService.class),
+    //采购入库流水单号
+    IN_PURCHASE("POI", "yyyyMM-", "code", 5, StockJournalService.class),
     // 盘点单号
     CHECK_CODE("CK", "yyyyMM-", "code", 5, CheckInfoService.class);