Browse Source

改动过的

huanglizhi 1 year ago
parent
commit
792f6d6a7e
26 changed files with 270 additions and 178 deletions
  1. 2 5
      module-erp/src/main/java/com/hys/app/controller/erp/use/OrderReturnManagerController.java
  2. 19 2
      module-erp/src/main/java/com/hys/app/controller/erp/use/task/OrderReturnTask.java
  3. 2 2
      module-erp/src/main/java/com/hys/app/converter/erp/OrderReturnItemConverter.java
  4. 13 1
      module-erp/src/main/java/com/hys/app/model/erp/dos/CollectingAccountDO.java
  5. 4 0
      module-erp/src/main/java/com/hys/app/model/erp/dos/OrderItemDO.java
  6. 1 1
      module-erp/src/main/java/com/hys/app/model/erp/dos/OrderReturnDO.java
  7. 7 1
      module-erp/src/main/java/com/hys/app/model/erp/dos/OrderReturnItemDO.java
  8. 4 0
      module-erp/src/main/java/com/hys/app/model/erp/dos/StockTransferProductDO.java
  9. 8 2
      module-erp/src/main/java/com/hys/app/model/erp/dos/WarehouseEntryProductDO.java
  10. 12 0
      module-erp/src/main/java/com/hys/app/model/erp/dto/CollectingAccountDTO.java
  11. 3 0
      module-erp/src/main/java/com/hys/app/model/erp/dto/OrderItemDTO.java
  12. 0 2
      module-erp/src/main/java/com/hys/app/model/erp/dto/OrderReturnDTO.java
  13. 2 0
      module-erp/src/main/java/com/hys/app/model/erp/dto/OrderReturnItemDTO.java
  14. 2 0
      module-erp/src/main/java/com/hys/app/model/erp/dto/StockTransferProductDTO.java
  15. 10 1
      module-erp/src/main/java/com/hys/app/model/erp/dto/WarehouseEntryProductDTO.java
  16. 1 1
      module-erp/src/main/java/com/hys/app/model/erp/vo/OrderReturnVO.java
  17. 9 0
      module-erp/src/main/java/com/hys/app/model/erp/vo/WarehouseEntryVO.java
  18. 1 1
      module-erp/src/main/java/com/hys/app/service/erp/OrderReturnItemManager.java
  19. 1 1
      module-erp/src/main/java/com/hys/app/service/erp/OrderReturnManager.java
  20. 27 28
      module-erp/src/main/java/com/hys/app/service/erp/impl/OrderManagerImpl.java
  21. 1 1
      module-erp/src/main/java/com/hys/app/service/erp/impl/OrderReturnItemManagerImpl.java
  22. 53 23
      module-erp/src/main/java/com/hys/app/service/erp/impl/OrderReturnManagerImpl.java
  23. 4 1
      module-erp/src/main/java/com/hys/app/service/erp/impl/StockTransferManagerImpl.java
  24. 76 97
      module-erp/src/main/java/com/hys/app/service/erp/impl/WarehouseEntryManagerImpl.java
  25. 6 6
      module-erp/src/main/java/com/hys/app/service/erp/impl/WarehouseOutManagerImpl.java
  26. 2 2
      sql/clearTable.sql

+ 2 - 5
module-erp/src/main/java/com/hys/app/controller/erp/use/OrderReturnManagerController.java

@@ -1,11 +1,10 @@
 package com.hys.app.controller.erp.use;
 
 import com.hys.app.framework.database.WebPage;
+import com.hys.app.model.erp.dto.OrderReturnDTO;
 import com.hys.app.model.erp.dto.OrderReturnQueryParams;
 import com.hys.app.model.erp.dto.OrderReturnStatisticsQueryParam;
-import com.hys.app.model.erp.enums.OrderReturnStatusEnum;
 import com.hys.app.model.erp.vo.OrderReturnVO;
-import com.hys.app.model.erp.dto.OrderReturnDTO;
 import com.hys.app.model.support.LogClient;
 import com.hys.app.model.support.validator.annotation.Log;
 import com.hys.app.service.erp.OrderReturnManager;
@@ -15,10 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
 
 /**
  * 订单退货API
@@ -57,7 +54,7 @@ public class OrderReturnManagerController {
 
     @ApiOperation(value = "查询")
     @GetMapping("/{id}")
-    public OrderReturnVO getDetail(@PathVariable String id) {
+    public OrderReturnVO getDetail(@PathVariable Long id) {
         return orderReturnManager.getDetail(id);
     }
 

+ 19 - 2
module-erp/src/main/java/com/hys/app/controller/erp/use/task/OrderReturnTask.java

@@ -5,11 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.hys.app.mapper.erp.OrderReturnMapper;
 import com.hys.app.model.erp.dos.OrderDO;
 import com.hys.app.model.erp.dos.OrderReturnDO;
+import com.hys.app.model.erp.dos.OrderReturnItemDO;
 import com.hys.app.model.erp.enums.ReturnOrderStatusEnum;
 import com.hys.app.model.erp.enums.SaleOrderStatusEnum;
 import com.hys.app.service.erp.OrderManager;
+import com.hys.app.service.erp.OrderReturnItemManager;
 import com.hys.app.service.erp.OrderReturnManager;
 import lombok.AllArgsConstructor;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
@@ -23,14 +26,14 @@ public class OrderReturnTask {
 
     private OrderReturnMapper orderReturnMapper;
     private OrderReturnManager orderReturnManager;
+    private OrderReturnItemManager orderReturnItemManager;
     private OrderManager orderManager;
 
     @Scheduled(cron = "0 0 1 * * ?")
     @Transactional(rollbackFor = Exception.class)
     public void executeTask() {
         //找到所有15天未关闭的售后订单
-        List<OrderReturnDO> list = orderReturnMapper.getAllNotClosedReturn();
-        list.forEach(item -> item.setStatus(ReturnOrderStatusEnum.SALE_AFTER_END));
+        List<OrderReturnDO> list = getOrderReturnDOS();
         if (orderReturnManager.updateBatchById(list)) {
             //找到所有售后单的订单
             List<Long> collect = list.stream().map(OrderReturnDO::getOrderId).collect(Collectors.toList());
@@ -49,4 +52,18 @@ public class OrderReturnTask {
             }
         }
     }
+
+    @NotNull
+    private List<OrderReturnDO> getOrderReturnDOS() {
+        List<OrderReturnDO> list = orderReturnMapper.getAllNotClosedReturn();
+        list.forEach(item -> {
+            //如果这个退货单没有退货明细就更改退货单的状态
+            List<OrderReturnItemDO> itemDOS = orderReturnItemManager.list(new LambdaQueryWrapper<OrderReturnItemDO>()
+                    .eq(OrderReturnItemDO::getOrderReturnId,item.getId()));
+            if (CollUtil.isEmpty(itemDOS)){
+                item.setStatus(ReturnOrderStatusEnum.SALE_AFTER_CANCEL);
+            }
+        });
+        return list;
+    }
 }

+ 2 - 2
module-erp/src/main/java/com/hys/app/converter/erp/OrderReturnItemConverter.java

@@ -31,7 +31,7 @@ public interface OrderReturnItemConverter {
 
     WebPage<OrderReturnItemVO> convert(WebPage<OrderReturnItemDO> webPage);
 
-    default OrderReturnItemDO convert(OrderReturnItemDTO orderReturnItemDTO, OrderItemDO orderItemDO, WarehouseEntryBatchDO batchDO, String orderReturnId) {
+    default OrderReturnItemDO convert(OrderReturnItemDTO orderReturnItemDTO, OrderItemDO orderItemDO, WarehouseEntryBatchDO batchDO, Long orderReturnId) {
         OrderReturnItemDO orderReturnItemDO = new OrderReturnItemDO();
 
         orderReturnItemDO.setOrderReturnId(orderReturnId);
@@ -58,7 +58,7 @@ public interface OrderReturnItemConverter {
         return orderReturnItemDO;
     }
 
-    default OrderReturnItemDO convert(WarehouseOutItemDO warehouseOutItemDO, OrderReturnItemDTO orderReturnItemDTO, String orderReturnId) {
+    default OrderReturnItemDO convert(WarehouseOutItemDO warehouseOutItemDO, OrderReturnItemDTO orderReturnItemDTO, Long orderReturnId) {
         OrderReturnItemDO orderReturnItemDO = new OrderReturnItemDO();
 
         orderReturnItemDO.setOrderReturnId(orderReturnId);

+ 13 - 1
module-erp/src/main/java/com/hys/app/model/erp/dos/CollectingAccountDO.java

@@ -1,5 +1,6 @@
 package com.hys.app.model.erp.dos;
 
+import com.alipay.api.domain.Invoice;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -41,5 +42,16 @@ public class CollectingAccountDO extends BaseDO {
     
     @ApiModelProperty(name = "remark", value = "备注")
     private String remark;
-    
+
+    @ApiModelProperty(name = "remark", value = "抬头")
+    private String  invoice;
+
+    @ApiModelProperty(name = "remark", value = "税号")
+    private String dutyParagraph;
+
+    @ApiModelProperty(name = "remark", value = "开户行")
+    private String bank;
+
+    @ApiModelProperty(name = "remark", value = "银行账号")
+    private String bankNo;
 }

+ 4 - 0
module-erp/src/main/java/com/hys/app/model/erp/dos/OrderItemDO.java

@@ -103,6 +103,10 @@ public class OrderItemDO implements Serializable {
     @ApiModelProperty(name = "return_num", value = "退货数量")
     private Integer returnNum = 0;
 
+    @ApiModelProperty(name = "not_return_num", value = "未退货数量")
+    private Integer notReturnNum = 0;
+
+
     @ApiModelProperty(name = "has_sale_after", value = "已退货数量")
     private Boolean hasSaleAfter = false;
 

+ 1 - 1
module-erp/src/main/java/com/hys/app/model/erp/dos/OrderReturnDO.java

@@ -33,7 +33,7 @@ public class OrderReturnDO extends BaseDO {
 
     @TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(hidden = true)
-    private String id;
+    private Long id;
 
     @ApiModelProperty(name = "sn", value = "退货单编号")
     private String sn;

+ 7 - 1
module-erp/src/main/java/com/hys/app/model/erp/dos/OrderReturnItemDO.java

@@ -26,7 +26,7 @@ public class OrderReturnItemDO implements Serializable {
     private String id;
 
     @ApiModelProperty(name = "order_return_id", value = "订单退货id")
-    private String orderReturnId;
+    private Long orderReturnId;
 
     @ApiModelProperty(name = "warehouse_entry_id", value = "入库单id")
     private Long warehouseEntryId;
@@ -97,7 +97,13 @@ public class OrderReturnItemDO implements Serializable {
     @ApiModelProperty(name = "return_num", value = "退货数量")
     private Integer returnNum;
 
+    @ApiModelProperty(name = "entry_num", value = "")
+    private Integer entryNum;
+
     @ApiModelProperty(name = "product_stock_id", value = "商品库存id")
     private Long productStockId;
 
+    @ApiModelProperty(name = "stock_num", value = "售后退回未入库数量")
+    private Integer  stockNum;
+
 }

+ 4 - 0
module-erp/src/main/java/com/hys/app/model/erp/dos/StockTransferProductDO.java

@@ -92,4 +92,8 @@ public class StockTransferProductDO implements Serializable {
     @ApiModelProperty(name = "product_stock_id", value = "商品库存id")
     private Long productStockId;
 
+
+    @ApiModelProperty(name = "stock_num", value = "调拨未入库数量")
+    private Integer  stockNum;
+
 }

+ 8 - 2
module-erp/src/main/java/com/hys/app/model/erp/dos/WarehouseEntryProductDO.java

@@ -43,7 +43,7 @@ public class WarehouseEntryProductDO implements Serializable {
     @ApiModelProperty(name = "product_id", value = "产品id")
     private Long productId;
 
-    @ApiModelProperty(name = "sn", value = "产品编号")
+    @ApiModelProperty(name = "sn", value = "入库批次编号")
     private String sn;
 
     @ApiModelProperty(name = "name", value = "产品名称")
@@ -120,7 +120,13 @@ public class WarehouseEntryProductDO implements Serializable {
     private ScanFormCodeTypeEnum scanOrderType;
 
     @ApiModelProperty(name = "order_num", value = "订单原数量")
-    private Long orderNum;
+    private Integer orderNum;
+
+    @ApiModelProperty(name = "order_num", value = "已入库数量")
+    private Integer entryNum;
+
+    @ApiModelProperty(name = "order_num", value = "未入库数量")
+    private Integer notEntryNum;
 
     @TableField(exist = false)
     private List<AreaStock> areaStockList;

+ 12 - 0
module-erp/src/main/java/com/hys/app/model/erp/dto/CollectingAccountDTO.java

@@ -37,5 +37,17 @@ public class CollectingAccountDTO {
     @ApiModelProperty(name = "remark", value = "备注")
     private String remark;
 
+    @ApiModelProperty(name = "remark", value = "抬头")
+    private String  invoice;
+
+    @ApiModelProperty(name = "remark", value = "税号")
+    private String dutyParagraph;
+
+    @ApiModelProperty(name = "remark", value = "开户行")
+    private String bank;
+
+    @ApiModelProperty(name = "remark", value = "银行账号")
+    private String bankNo;
+
 }
 

+ 3 - 0
module-erp/src/main/java/com/hys/app/model/erp/dto/OrderItemDTO.java

@@ -68,5 +68,8 @@ public class OrderItemDTO {
 
     private List<AreaStock> areaStockList;
 
+    @ApiModelProperty(name = "not_return_num", value = "未退货数量")
+    private Integer notReturnNum = 0;
+
 }
 

+ 0 - 2
module-erp/src/main/java/com/hys/app/model/erp/dto/OrderReturnDTO.java

@@ -45,8 +45,6 @@ public class OrderReturnDTO {
 
 
     @ApiModelProperty(name = "item_list", value = "退货项列表")
-    @NotEmpty(message = "退货项列表不能为空")
     private List<OrderReturnItemDTO> itemList;
-
 }
 

+ 2 - 0
module-erp/src/main/java/com/hys/app/model/erp/dto/OrderReturnItemDTO.java

@@ -28,6 +28,8 @@ public class OrderReturnItemDTO {
     @NotNull(message = "退货数量不能为空")
     private Integer orderNum;
 
+    private Long goodsId;
 
+    private Long productStockId;;
 }
 

+ 2 - 0
module-erp/src/main/java/com/hys/app/model/erp/dto/StockTransferProductDTO.java

@@ -32,6 +32,8 @@ public class StockTransferProductDTO {
     @ApiModelProperty(name = "product_stock_id", value = "product_stock_id不能为空")
     private Long productStockId;
 
+    private Long goodsId;
+
     
 }
 

+ 10 - 1
module-erp/src/main/java/com/hys/app/model/erp/dto/WarehouseEntryProductDTO.java

@@ -18,13 +18,16 @@ import java.util.List;
 @Data
 public class WarehouseEntryProductDTO {
 
+    @ApiModelProperty(name = "product_id", value = "shangpinID")
+    private Long goodsId;
+
     @ApiModelProperty(name = "product_id", value = "productId不能为空")
     @NotNull(message = "productId不能为空")
     private Long productId;
 
     @ApiModelProperty(name = "num", value = "本次入库数量")
     @NotNull(message = "本次入库数量不能为空")
-    @Min(value = 1, message = "入库数量最小为1")
+//    @Min(value = 1, message = "入库数量最小为1")
     private Integer num;
 
 
@@ -50,5 +53,11 @@ public class WarehouseEntryProductDTO {
     @ApiModelProperty(name = "order_item|_num", value = "订单原数量")
     private Long orderNum;
 
+    @ApiModelProperty(name = "order_num", value = "已入库数量")
+    private Integer entryNum;
+
+    @ApiModelProperty(name = "order_num", value = "未入库数量")
+    private Integer notEntryNum;
+
 }
 

+ 1 - 1
module-erp/src/main/java/com/hys/app/model/erp/vo/OrderReturnVO.java

@@ -29,7 +29,7 @@ public class OrderReturnVO extends OrderReturnDO {
 
 
     @ApiModelProperty(hidden = true)
-    private String id;
+    private Long id;
 
     @ApiModelProperty(name = "order_id", value = "要退货的订单")
     private Long orderId;

+ 9 - 0
module-erp/src/main/java/com/hys/app/model/erp/vo/WarehouseEntryVO.java

@@ -1,12 +1,14 @@
 package com.hys.app.model.erp.vo;
 
 import com.hys.app.model.erp.dos.WarehouseEntryDO;
+import com.hys.app.model.erp.dos.WarehouseEntryProductDO;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.ToString;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 入库单详情
@@ -25,6 +27,13 @@ public class WarehouseEntryVO extends WarehouseEntryDO {
     @ApiModelProperty(name = "product_list", value = "商品列表")
     private List<WarehouseEntryProductVO> productList;
 
+    @ApiModelProperty(name = "product_list", value = "批次入库明细")
+    private  Map<String, List<WarehouseEntryProductDO>> groupItem;
+
+
+    @ApiModelProperty(name = "product_list", value = "原订单详情(租赁返回,售后,调拨)")
+    private Object orderItemList;
+
     @ApiModelProperty(name = "batch_list", value = "批次列表")
     private List<WarehouseEntryBatchVO> batchList;
 

+ 1 - 1
module-erp/src/main/java/com/hys/app/service/erp/OrderReturnItemManager.java

@@ -59,6 +59,6 @@ public interface OrderReturnItemManager extends BaseService<OrderReturnItemDO> {
      * @param orderReturnId
      * @return
      */
-    List<OrderReturnItemDO> listByOrderReturnId(String orderReturnId);
+    List<OrderReturnItemDO> listByOrderReturnId(Long orderReturnId);
 }
 

+ 1 - 1
module-erp/src/main/java/com/hys/app/service/erp/OrderReturnManager.java

@@ -45,7 +45,7 @@ public interface OrderReturnManager extends BaseService<OrderReturnDO> {
      * @param id
      * @return 
      */
-    OrderReturnVO getDetail(String id);
+    OrderReturnVO getDetail(Long id);
 
     /**
      * 关闭订单 更改原订单的状态

+ 27 - 28
module-erp/src/main/java/com/hys/app/service/erp/impl/OrderManagerImpl.java

@@ -93,7 +93,10 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
         List<OrderItemDO> itemList = BeanUtils.toBean(orderDTO.getItemList(), OrderItemDO.class);
         //校验库存
 //        checkStock(orderDO,itemList);
-        itemList.forEach(item -> item.setOrderId(orderDO.getId()));
+        itemList.forEach(item -> {
+            item.setOrderId(orderDO.getId());
+            item.setNotReturnNum(item.getNum());
+        });
         orderItemManager.saveBatch(itemList);
         return orderDO.getId();
     }
@@ -346,7 +349,7 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
             stockDO.setLockedStock(stockDO.getLockedStock() + dto.getNum());
             stockDO.setUsableStock(stockDO.getActualStock() - stockDO.getLockedStock());
             if (OrderTypeEnum.TO_C.equals(aDo.getOrderType())) {
-                stockDO.setTransitStock(stockDO.getTransitStock()-dto.getNum());
+                stockDO.setTransitStock(stockDO.getTransitStock() - dto.getNum());
             }
         }
         if (OrderTypeEnum.TO_C.equals(aDo.getOrderType())) {
@@ -371,7 +374,7 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
         if (OrderTypeEnum.TO_C.equals(orderDO.getType())) {
             outDO.setType(WarehouseOutTypeEnum.HAIL_OUT);
             //生成入库单
-            createEntryWarehouse(orderDO.getId());
+            createEntryWarehouse(orderDO);
         } else if (OrderTypeEnum.TO_B.equals(orderDO.getType())) {
             outDO.setType(WarehouseOutTypeEnum.SALE_OUT);
         }
@@ -473,31 +476,27 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
 
     }
 
-    private void createEntryWarehouse(Long orderId ){
-        WarehouseEntryDO selected = warehouseEntryMapper.selectOne(new LambdaQueryWrapper<WarehouseEntryDO>()
-                .eq(WarehouseEntryDO::getOrderId,orderId)
-                .eq(WarehouseEntryDO::getType,WarehouseEntyrTypeEnum.HAIL_ENTRY)
-                .last("limit 1"));
-        if (ObjectUtil.isNull(selected)){
-            OrderDO orderDO = getById(orderId);
-            //生成入库单
-            WarehouseEntryDO warehouseEntryDO = new WarehouseEntryDO();
-            warehouseEntryDO.setWarehouseId(orderDO.getReturnWarehouseId());
-            warehouseEntryDO.setOrderId(orderDO.getId());
-            warehouseEntryDO.setType(WarehouseEntyrTypeEnum.HAIL_ENTRY);
-            warehouseEntryDO.setMemo("订单出库生成的入库单");
-            warehouseEntryDO.setSn(noGenerateManager.generate(NoBusinessTypeEnum.WarehouseEntry));
-            warehouseEntryMapper.insert(warehouseEntryDO);
-            // 保存入库单商品明细
-            List<OrderItemDO> list = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId,orderId));
-            List<WarehouseEntryProductDO> productList = BeanUtils.toBean(list, WarehouseEntryProductDO.class);
-            productList.forEach(item -> {
-                item.setWarehouseEntryId(warehouseEntryDO.getId());
-                Integer num = list.stream().filter(it -> it.getProductId().equals(item.getProductId())).findFirst().get().getNum();
-                item.setNum(num);
-            });
-            warehouseEntryProductManager.saveBatch(productList);
-        }
+    private void createEntryWarehouse(OrderDO orderDO) {
+        //生成入库单
+        WarehouseEntryDO warehouseEntryDO = new WarehouseEntryDO();
+        warehouseEntryDO.setWarehouseId(orderDO.getReturnWarehouseId());
+        warehouseEntryDO.setOrderId(orderDO.getId());
+        warehouseEntryDO.setType(WarehouseEntyrTypeEnum.HAIL_ENTRY);
+        warehouseEntryDO.setMemo("租赁订单出库生成的入库单");
+        warehouseEntryDO.setSn(noGenerateManager.generate(NoBusinessTypeEnum.WarehouseEntry));
+        warehouseEntryMapper.insert(warehouseEntryDO);
+        // 保存入库单商品明细
+        List<OrderItemDO> list = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderDO.getId()));
+        List<WarehouseEntryProductDO> productList = BeanUtils.toBean(list, WarehouseEntryProductDO.class);
+        productList.forEach(item -> {
+            item.setWarehouseEntryId(warehouseEntryDO.getId());
+            item.setScanOrderId(orderDO.getId());
+            item.setEntryNum(0);
+            item.setNotEntryNum(item.getNum());
+            Integer num = list.stream().filter(it -> it.getProductId().equals(item.getProductId())).findFirst().get().getNum();
+            item.setOrderNum(num);
+        });
+        warehouseEntryProductManager.saveBatch(productList);
     }
 
     @Override

+ 1 - 1
module-erp/src/main/java/com/hys/app/service/erp/impl/OrderReturnItemManagerImpl.java

@@ -63,7 +63,7 @@ public class OrderReturnItemManagerImpl extends BaseServiceImpl<OrderReturnItemM
     }
 
     @Override
-    public List<OrderReturnItemDO> listByOrderReturnId(String orderReturnId) {
+    public List<OrderReturnItemDO> listByOrderReturnId(Long orderReturnId) {
         return lambdaQuery().eq(OrderReturnItemDO::getOrderReturnId, orderReturnId).list();
     }
 

+ 53 - 23
module-erp/src/main/java/com/hys/app/service/erp/impl/OrderReturnManagerImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelWriter;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.hys.app.converter.erp.OrderReturnConverter;
@@ -20,6 +21,7 @@ import com.hys.app.framework.util.CurrencyUtil;
 import com.hys.app.framework.util.DateUtil;
 import com.hys.app.framework.util.PageConvert;
 import com.hys.app.mapper.erp.OrderReturnMapper;
+import com.hys.app.mapper.erp.WarehouseEntryMapper;
 import com.hys.app.model.base.rabbitmq.AmqpExchange;
 import com.hys.app.model.erp.dos.*;
 import com.hys.app.model.erp.dto.OrderReturnDTO;
@@ -66,6 +68,8 @@ public class OrderReturnManagerImpl extends BaseServiceImpl<OrderReturnMapper, O
     private OrderReturnMapper orderReturnMapper;
     private GoodsManager goodsManager;
     private ProductManager productManager;
+    private WarehouseEntryMapper warehouseEntryMapper;
+    private WarehouseEntryProductManager warehouseEntryProductManager;
 
     @Override
     public WebPage<OrderReturnVO> list(OrderReturnQueryParams queryParams) {
@@ -79,36 +83,62 @@ public class OrderReturnManagerImpl extends BaseServiceImpl<OrderReturnMapper, O
         if (ObjectUtil.isNull(aDo)) {
             throw new ServiceException("要发起售后的订单不存在");
         }
-        if (SaleOrderStatusEnum.SALE_AFTER_END.equals(aDo.getStatus())) {
-            throw new ServiceException("一个订单只能做一次售后");
-        }
-        //判断要退货的商品有没有超过订单数量的商品
-        for (OrderReturnItemDTO dto : orderReturnDTO.getItemList()) {
-            OrderItemDO itemDO = orderItemManager.getById(dto.getOrderItemId());
-            if (ObjectUtil.isNull(itemDO)) {
-                throw new ServiceException("退货的商品必须在订单里");
+        if (CollUtil.isNotEmpty(orderReturnDTO.getItemList())) {
+            //判断要退货的商品有没有超过订单数量的商品
+            List<OrderItemDO> arrayList = new ArrayList<>();
+            for (OrderReturnItemDTO dto : orderReturnDTO.getItemList()) {
+                OrderItemDO itemDO = orderItemManager.getById(dto.getOrderItemId());
+                if (ObjectUtil.isNull(itemDO)) {
+                    throw new ServiceException("退货的商品必须在订单里");
+                }
+                if (itemDO.getNum() <= dto.getReturnNum()) {
+                    throw new ServiceException("退貨的数量不能大于原订单的物品数量");
+                }
+                itemDO.setReturnNum(itemDO.getReturnNum() + dto.getReturnNum());
+                itemDO.setNotReturnNum(itemDO.getNum() - itemDO.getReturnNum());
+                itemDO.setHasSaleAfter(true);
+                arrayList.add(itemDO);
             }
-            if (itemDO.getNum() < dto.getReturnNum()) {
-                throw new ServiceException("退貨的数量不能大于原订单的物品数量");
+            orderItemManager.updateBatchById(arrayList);
+            //新增售后订单主题
+            OrderReturnDO returnDO = BeanUtil.copyProperties(orderReturnDTO, OrderReturnDO.class);
+            returnDO.setSn(noGenerateManager.generate(NoBusinessTypeEnum.OrderReturn, 66L));
+            save(returnDO);
+            // 保存退货单明细
+            List<OrderReturnItemDO> itemBean = BeanUtils.toBean(orderReturnDTO.getItemList(), OrderReturnItemDO.class);
+            itemBean.forEach(item -> item.setOrderReturnId(returnDO.getId()));
+            orderReturnItemManager.saveBatch(itemBean);
+            //如果不是租赁订单生成一张入库单
+            if (!aDo.getType().equals(OrderTypeEnum.TO_C)) {
+                //生成入库单
+                WarehouseEntryDO warehouseEntryDO = new WarehouseEntryDO();
+                warehouseEntryDO.setWarehouseId(aDo.getReturnWarehouseId());
+                warehouseEntryDO.setOrderId(returnDO.getId());
+                warehouseEntryDO.setType(WarehouseEntyrTypeEnum.SALE_AFTER);
+                warehouseEntryDO.setMemo("订单售后生成的入库单");
+                warehouseEntryDO.setSn(noGenerateManager.generate(NoBusinessTypeEnum.WarehouseEntry));
+                warehouseEntryMapper.insert(warehouseEntryDO);
+                // 保存入库单商品明细
+                List<WarehouseEntryProductDO> productList = BeanUtils.toBean(orderReturnDTO.getItemList(), WarehouseEntryProductDO.class);
+                productList.forEach(item -> {
+                    item.setWarehouseEntryId(warehouseEntryDO.getId());
+                    item.setScanOrderId(returnDO.getId());
+                    item.setEntryNum(0);
+                    item.setNotEntryNum(item.getReturnNum());
+                    Integer num = orderReturnDTO.getItemList().stream().filter(it -> it.getProductId().equals(item.getProductId())).findFirst().get().getReturnNum();
+                    item.setOrderNum(num);
+                });
+                warehouseEntryProductManager.saveBatch(productList);
+
+
             }
-            itemDO.setReturnNum(itemDO.getReturnNum()+dto.getReturnNum());
-            itemDO.setHasSaleAfter(true);
-            orderItemManager.updateById(itemDO);
         }
-
         //更改订单的状态
         aDo.setStatus(SaleOrderStatusEnum.SALE_AFTER_ING);
         orderManager.updateById(aDo);
-        //新增售后订单主题
-        OrderReturnDO returnDO = BeanUtil.copyProperties(orderReturnDTO, OrderReturnDO.class);
-        returnDO.setSn(noGenerateManager.generate(NoBusinessTypeEnum.OrderReturn, 66L));
-        save(returnDO);
-        // 保存退货单明细
-        List<OrderReturnItemDO> itemBean = BeanUtils.toBean(orderReturnDTO.getItemList(), OrderReturnItemDO.class);
-        itemBean.forEach(item -> item.setOrderReturnId(returnDO.getId()));
-        orderReturnItemManager.saveBatch(itemBean);
     }
 
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void edit(OrderReturnDTO orderReturnDTO) {
@@ -124,7 +154,7 @@ public class OrderReturnManagerImpl extends BaseServiceImpl<OrderReturnMapper, O
     }
 
     @Override
-    public OrderReturnVO getDetail(String id) {
+    public OrderReturnVO getDetail(Long id) {
         OrderReturnVO orderReturnVO = converter.convert(getById(id));
         List<OrderReturnItemVO> convert = itemConverter.convert(orderReturnItemManager.listByOrderReturnId(id));
         for (OrderReturnItemVO vo : convert) {

+ 4 - 1
module-erp/src/main/java/com/hys/app/service/erp/impl/StockTransferManagerImpl.java

@@ -149,8 +149,11 @@ public class StockTransferManagerImpl extends BaseServiceImpl<StockTransferMappe
         List<WarehouseEntryProductDO> productList = BeanUtils.toBean(stockTransferDTO.getProductList(), WarehouseEntryProductDO.class);
         productList.forEach(item -> {
             item.setWarehouseEntryId(warehouseEntryDO.getId());
+            item.setScanOrderId(aDo.getId());
+            item.setEntryNum(0);
+            item.setNotEntryNum(item.getNum());
             Integer num = doList.stream().filter(it -> it.getProductId().equals(item.getProductId())).findFirst().get().getNum();
-            item.setNum(num);
+            item.setOrderNum(num);
         });
         warehouseEntryProductManager.saveBatch(productList);
     }

+ 76 - 97
module-erp/src/main/java/com/hys/app/service/erp/impl/WarehouseEntryManagerImpl.java

@@ -3,6 +3,7 @@ package com.hys.app.service.erp.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelWriter;
@@ -19,6 +20,7 @@ import com.hys.app.framework.database.mybatisplus.base.BaseServiceImpl;
 import com.hys.app.framework.exception.ServiceException;
 import com.hys.app.framework.rabbitmq.MessageSender;
 import com.hys.app.framework.rabbitmq.MqMessage;
+import com.hys.app.framework.util.BeanUtils;
 import com.hys.app.framework.util.CurrencyUtil;
 import com.hys.app.framework.util.JsonUtil;
 import com.hys.app.framework.util.PageConvert;
@@ -32,9 +34,7 @@ import com.hys.app.model.erp.dos.*;
 import com.hys.app.model.erp.dto.*;
 import com.hys.app.model.erp.dto.message.WarehouseEntryAuditPassMessage;
 import com.hys.app.model.erp.enums.*;
-import com.hys.app.model.erp.vo.WarehouseEntryAllowable;
-import com.hys.app.model.erp.vo.WarehouseEntryStatistics;
-import com.hys.app.model.erp.vo.WarehouseEntryVO;
+import com.hys.app.model.erp.vo.*;
 import com.hys.app.model.goods.dos.CategoryDO;
 import com.hys.app.model.system.vo.SiteSetting;
 import com.hys.app.service.base.service.SettingManager;
@@ -89,6 +89,9 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
     private OrderItemManager orderItemManager;
     private RedisTemplate redisTemplate;
     private AreaStockManager areaStockManager;
+    private OrderReturnItemManager orderReturnItemManager;
+    private OrderReturnManager orderReturnManager;
+    private StockTransferProductManager stockTransferProductManager;
 
 
     @Override
@@ -159,6 +162,8 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
         for (WarehouseEntryProductDTO dto : warehouseEntryDTO.getProductList()) {
             WarehouseEntryProductDO productDO = BeanUtil.copyProperties(dto, WarehouseEntryProductDO.class);
             productDO.setProductId(dto.getProductId());
+            productDO.setEntryNum(productDO.getEntryNum() + productDO.getNum());
+            productDO.setNotEntryNum(productDO.getOrderNum() - productDO.getEntryNum());
             productDO.setWarehouseEntryId(warehouseEntryDO.getId());
             productList.add(productDO);
         }
@@ -166,7 +171,6 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
         //保存子表和序列号的关系
         warehouseEntryDTO.setId(warehouseEntryDO.getId());
         saveSnCode(warehouseEntryDTO.getId(), productList);
-
         if ("submit".equals(warehouseEntryDTO.getSaveOrSubmit())) {
             updateStock(warehouseEntryDTO, getById(warehouseEntryDO.getId()), productList);
         }
@@ -187,16 +191,6 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
                 }
             }
         }
-        //如果是调拨单得先出库才能入库,入库完之后改变调拨单得状态
-        if (WarehouseEntyrTypeEnum.TRANSFER_ENTRY.equals(warehouseEntryDO.getType())) {
-            WarehouseOutDO outDO = warehouseOutMapper.selectOne(new LambdaQueryWrapper<WarehouseOutDO>().eq(WarehouseOutDO::getOrderIdList, warehouseEntryDO.getOrderId()).last("limit 1"));
-            if ("N".equals(outDO.getHasSubmit())) {
-                throw new ServiceException("商品还未调拨出库");
-            }
-            StockTransferDO aDo = stockTransferMapper.selectById(warehouseEntryDO.getOrderId());
-            aDo.setStatus(TransferTypeEnum.HAS_TRANSFER);
-            stockTransferMapper.updateById(aDo);
-        }
 
         List<Long> collect = warehouseEntryDTO.getProductList().stream().map(WarehouseEntryProductDTO::getProductId).collect(Collectors.toList());
         List<ProductStockDO> stockDOList = productStockManager.list(new LambdaQueryWrapper<ProductStockDO>()
@@ -210,20 +204,21 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
             dto.setNum(productDO.getNum());
             arrayList.add(dto);
         }
-        productStockManager.updateActualStock(arrayList,null);
-        if (WarehouseEntyrTypeEnum.HAIL_ENTRY.equals(warehouseEntryDTO.getType())) {
-            arrayList.forEach(item ->item.setNum(-item.getNum()));
-            productStockManager.updateTransitStock(arrayList);
+        productStockManager.updateActualStock(arrayList, null);
+
+        //如果不是调拨入库,售后入库,调拨入库直接更爱入库单状态
+        if (!WarehouseEntyrTypeEnum.HAIL_ENTRY.equals(warehouseEntryDTO.getType()) &&
+                !WarehouseEntyrTypeEnum.SALE_AFTER.equals(warehouseEntryDTO.getType()) &&
+                !WarehouseEntyrTypeEnum.TRANSFER_ENTRY.equals(warehouseEntryDTO.getType())) {
+            //入库之后数据不能被操作
+            warehouseEntryDO.setHasSubmit("Y");
+            updateById(warehouseEntryDO);
         }
-        //入库之后数据不能被操作
-        warehouseEntryDO.setHasSubmit("Y");
-        updateById(warehouseEntryDO);
-
+        //如果有序列号更爱序列号的使用状态
         List<ItemSnCodeDO> list1 = itemSnCodeManager.list(new LambdaQueryWrapper<ItemSnCodeDO>().eq(ItemSnCodeDO::getEntryOutHouseId, warehouseEntryDO.getId()));
         if (CollUtil.isNotEmpty(list1)) {
             List<Long> collect1 = list1.stream().map(ItemSnCodeDO::getSnCodeId).collect(Collectors.toList());
             List<GoodsSnDO> list = goodsSnManager.list(new LambdaQueryWrapper<GoodsSnDO>().in(GoodsSnDO::getId, collect1));
-
             //更爱序列号状态
             for (GoodsSnDO aDo : list) {
                 aDo.setStatus(SnCodeStatusEnum.IN_WAREHOUSE);
@@ -232,39 +227,65 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
             }
             goodsSnManager.updateBatchById(list);
         }
-        //如果是租赁订单
+
+        //所欲已入库的商品
+        List<WarehouseEntryProductDO> entryProductDOS = warehouseEntryProductManager.list(new LambdaQueryWrapper<WarehouseEntryProductDO>()
+                .eq(WarehouseEntryProductDO::getScanOrderId, warehouseEntryDO.getOrderId()));
+
+        //售后订单如果是租赁订单 扣减在途库存 。判断更改售后订单的状态,入库单的状态
         if (WarehouseEntyrTypeEnum.HAIL_ENTRY.equals(warehouseEntryDTO.getType())) {
-            OrderDO aDo = orderManager.getById(warehouseEntryDTO.getOrderId());
-            List<OrderItemDO> list = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, aDo.getId()));
-
-            List<WarehouseEntryDO> entryDOS = list(new LambdaQueryWrapper<WarehouseEntryDO>()
-                    .eq(WarehouseEntryDO::getHasSubmit, "Y")
-                    .eq(WarehouseEntryDO::getOrderId, aDo.getId())
-                    .eq(WarehouseEntryDO::getType, WarehouseEntyrTypeEnum.HAIL_ENTRY));
-            List<Long> collected = entryDOS.stream().map(WarehouseEntryDO::getId).collect(Collectors.toList());
-            //todo 后面报失 租转买的商品须累加
-            List<WarehouseEntryProductDO> doList = warehouseEntryProductManager.list(new LambdaQueryWrapper<WarehouseEntryProductDO>()
-                    .in(WarehouseEntryProductDO::getWarehouseEntryId, collected));
-            List<OrderItemDO> objects = new ArrayList<>();
-            for (OrderItemDO itemDO : list) {
-                WarehouseEntryProductDTO warehouseEntryProductDTO = warehouseEntryDTO.getProductList().stream().filter(item -> item.getProductId().equals(itemDO.getProductId())).findFirst().get();
-                itemDO.setStockNum(itemDO.getStockNum()-warehouseEntryProductDTO.getNum());
-                if (itemDO.getStockNum() <= 0){
-                    itemDO.setHasReturn(1);
-                }
-//                Optional<WarehouseEntryProductDO> first = doList.stream().filter(item -> item.getScanOrderItemId().equals(itemDO.getId())).findFirst();
-//                if (first.isPresent()) {
-//                    if (first.get().getNum() == itemDO.getNum()) {
-//                        objects.add(itemDO);
-//                    }
-//                }
-            }
-            orderItemManager.updateBatchById(list);
-            //如果入库单的所有详细累加起来等于订单的详细 则该订单改为已完成
-            long count = list.stream().filter(item -> item.getHasReturn() == 1).count();
-            if (list.size() == count) {
+            //扣减在途库存
+            arrayList.forEach(item -> item.setNum(-item.getNum()));
+            productStockManager.updateTransitStock(arrayList);
+            long count = entryProductDOS.stream().filter(item -> item.getEntryNum() < item.getOrderNum()).count();
+            if (count == 0) {
+                OrderDO aDo = orderManager.getById(warehouseEntryDTO.getOrderId());
                 aDo.setStatus(SaleOrderStatusEnum.ORDER_END);
                 orderManager.updateById(aDo);
+                warehouseEntryDO.setHasSubmit("Y");
+                updateById(warehouseEntryDO);
+            }
+        }
+
+        //如果是租赁订单  扣减在途库存  判断更改订单的状态,入库单的状态
+        if (WarehouseEntyrTypeEnum.SALE_AFTER.equals(warehouseEntryDTO.getType())) {
+            OrderReturnDO orderReturnDO = orderReturnManager.getById(warehouseEntryDTO.getOrderId());
+
+            OrderDO aDo = orderManager.getById(orderReturnDO.getOrderId());
+            if (OrderTypeEnum.TO_C.equals(aDo.getType())) {
+                //若果售后订单类型是租赁订单更改在途库存状态
+                arrayList.forEach(item -> item.setNum(-item.getNum()));
+                productStockManager.updateTransitStock(arrayList);
+            }
+
+            long count = entryProductDOS.stream().filter(item -> item.getEntryNum() < item.getOrderNum()).count();
+            if (count == 0) {
+                orderReturnDO.setStatus(ReturnOrderStatusEnum.SALE_AFTER_END);
+                orderReturnManager.updateById(orderReturnDO);
+                warehouseEntryDO.setHasSubmit("Y");
+                updateById(warehouseEntryDO);
+            }
+            //如果这个订单没有正在进行中的守护订单,把订单的状态改为售后完成状态
+            long count1 = orderReturnManager.count(new LambdaQueryWrapper<OrderReturnDO>()
+                    .eq(OrderReturnDO::getStatus, ReturnOrderStatusEnum.SALE_AFTER_ING).eq(OrderReturnDO::getOrderId, aDo.getId()));
+            if (count1 <= 0) {
+                aDo.setStatus(SaleOrderStatusEnum.SALE_AFTER_END);
+                orderManager.updateById(aDo);
+            }
+        }
+        //如果是调拨单得先出库才能入库,全部入库更改入库单的状态,调拨单得状态
+        if (WarehouseEntyrTypeEnum.TRANSFER_ENTRY.equals(warehouseEntryDO.getType())) {
+            WarehouseOutDO outDO = warehouseOutMapper.selectOne(new LambdaQueryWrapper<WarehouseOutDO>().eq(WarehouseOutDO::getOrderIdList, warehouseEntryDO.getOrderId()).last("limit 1"));
+            if ("N".equals(outDO.getHasSubmit())) {
+                throw new ServiceException("商品还未调拨出库");
+            }
+            long count = entryProductDOS.stream().filter(item -> item.getEntryNum() < item.getOrderNum()).count();
+            if (count == 0) {
+                StockTransferDO transferDO = stockTransferMapper.selectById(warehouseEntryDTO.getOrderId());
+                transferDO.setStatus(TransferTypeEnum.HAS_TRANSFER);
+                stockTransferMapper.updateById(transferDO);
+                warehouseEntryDO.setHasSubmit("Y");
+                updateById(warehouseEntryDO);
             }
         }
         redisTemplate.delete(warehouseEntryDO.getId().toString());
@@ -507,22 +528,6 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
             if (!OrderTypeEnum.TO_C.equals(aDo.getType())) {
                 throw new ServiceException("该订单不是租赁订单");
             }
-            List<OrderItemDO> list = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, warehouseEntryDTO.getOrderId()));
-//            List<OrderItemDO> objects = new ArrayList<>();
-            warehouseEntryDTO.getProductList().forEach(item -> {
-                if (ObjectUtil.isNull(item.getScanOrderItemId())) {
-                    throw new ServiceException("租赁订单返回的商品必须在租赁订单里面");
-                }
-                Optional<OrderItemDO> first = list.stream().filter(it -> it.getId().equals(item.getScanOrderItemId())).findFirst();
-                if (!first.isPresent()) {
-                    throw new ServiceException("租赁订单返回的商品必须在租赁订单里面");
-                }
-//                OrderItemDO orderItemDO = first.get();
-//                orderItemDO.setHasReturn(1);
-//                objects.add(orderItemDO);
-            });
-//            //更改订单详情的是否返回 统计在途库存会用到
-//            orderItemManager.updateBatchById(objects);
         }
 
         //如果是售后订单
@@ -530,42 +535,16 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
             if (ObjectUtil.isNull(warehouseEntryDTO.getOrderId())) {
                 throw new ServiceException("售后退货:订单不能为空");
             }
-            OrderDO aDo = orderManager.getById(warehouseEntryDTO.getOrderId());
-            if (ObjectUtil.isNull(aDo)) {
+            OrderReturnDO byId = orderReturnManager.getById(warehouseEntryDTO.getOrderId());
+            if (ObjectUtil.isNull(byId)) {
                 throw new ServiceException("订单不存在");
             }
-            if (!SaleOrderStatusEnum.SALE_AFTER_ING.equals(aDo.getStatus()) &&
-                    !SaleOrderStatusEnum.SALE_AFTER_END.equals(aDo.getStatus()) &&
-                    !SaleOrderStatusEnum.SALE_AFTER_CANCEL.equals(aDo.getStatus()) ) {
-                throw new ServiceException("未发现该订单有退货记录");
-            }
-            List<OrderItemDO> list = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, warehouseEntryDTO.getOrderId()));
-            List<OrderItemDO> objects = new ArrayList<>();
-            warehouseEntryDTO.getProductList().forEach(item -> {
-                if (ObjectUtil.isNull(item.getScanOrderItemId())) {
-                    throw new ServiceException("退货商品返回的商品必须在租赁订单里面");
-                }
-                Optional<OrderItemDO> first = list.stream().filter(it -> it.getId().equals(item.getScanOrderItemId())).findFirst();
-                if (!first.isPresent()) {
-                    throw new ServiceException("退货商品返回的商品必须在租赁订单里面");
-                }
-                OrderItemDO orderItemDO = first.get();
-                int allReturnNum= item.getNum()+orderItemDO.getHasReturnNum();
-             if (allReturnNum>orderItemDO.getReturnNum()){
-                 throw new ServiceException("退货数量不能大于脱货订单的数量");
-             }
-                orderItemDO.setHasReturnNum(item.getNum()+orderItemDO.getHasReturnNum());
-                objects.add(orderItemDO);
-            });
-            //更改订单详情的是否返回 统计在途库存会用到
-            orderItemManager.updateBatchById(objects);
         }
 
         WarehouseDO warehouseDO = warehouseManager.getById(warehouseEntryDTO.getWarehouseId());
         if (warehouseDO == null) {
             throw new ServiceException("仓库不存在");
         }
-
         for (WarehouseEntryProductDTO dto : warehouseEntryDTO.getProductList()) {
             ProductDO productDO = productManager.getById(dto.getProductId());
             if (CollUtil.isNotEmpty(dto.getSnCodeList())) {

+ 6 - 6
module-erp/src/main/java/com/hys/app/service/erp/impl/WarehouseOutManagerImpl.java

@@ -183,21 +183,21 @@ public class WarehouseOutManagerImpl extends BaseServiceImpl<WarehouseOutMapper,
                 one.setUnLockedNum(one.getUnLockedNum() + aDo.getOutNum());
                 detailDOS.add(one);
             }
-            lockedStockDetailManager.updateBatchById(detailDOS);
             WarehouseOutProductDTO productDO = warehouseOutDTO.getProductList().stream().filter(item -> item.getProductId().equals(aDo.getProductId())).findFirst().get();
             StockDTO dto = new StockDTO();
             dto.setId(aDo.getProductStockId());
             dto.setNum(-productDO.getOutNum());
             arrayList.add(dto);
         }
+        lockedStockDetailManager.updateBatchById(detailDOS);
         //更爱可用库存实际库存冻结库存
         productStockManager.updateActualStock(arrayList, null);
         productStockManager.updateLockedStock(arrayList);
-        //更改在途库存
-        if (WarehouseOutTypeEnum.HAIL_OUT.equals(warehouseOutDTO.getType())) {
-            arrayList.forEach(item -> item.setNum(-item.getNum()));
-            productStockManager.updateTransitStock(arrayList);
-        }
+//        //更改在途库存
+//        if (WarehouseOutTypeEnum.HAIL_OUT.equals(warehouseOutDTO.getType())) {
+//            arrayList.forEach(item -> item.setNum(-item.getNum()));
+//            productStockManager.updateTransitStock(arrayList);
+//        }
         //入库之后数据不能被操作
         warehouseOutDO.setHasSubmit("Y");
         updateById(warehouseOutDO);

+ 2 - 2
sql/clearTable.sql

@@ -6,8 +6,8 @@ truncate erp_product;                       -- sku明细
 truncate erp_goods_sn;                      -- 序列号
 truncate erp_locked_stock_detail;           -- 冻结库存明细
 truncate erp_item_sn_code;                  -- 序列号绑定关系
-truncate erp_warehouse;                     -- 仓库
-truncate erp_warehouse_area;                -- 库位
+-- truncate erp_warehouse;                     -- 仓库
+-- truncate erp_warehouse_area;                -- 库位
 -- truncate erp_warehouse_area_type;           -- 库位类型