Browse Source

改动过的

huanglizhi 1 năm trước cách đây
mục cha
commit
7b8c685393

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

@@ -35,7 +35,7 @@ public class OrderCustomerFee extends BaseDO {
     private Long orderId;
 
     @ApiModelProperty("附件地址")
-    private String  file_url;
+    private String  fileUrl;
 
     @ApiModelProperty("报销费用")
     private BigDecimal money;

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

@@ -124,7 +124,7 @@ public class OrderItemDO implements Serializable {
     private Date endTime;
 
     @ApiModelProperty(name = "has_return", value = "租赁订单详情是否返回")
-    private Boolean hasReturn;
+    private Integer hasReturn;
 
     private Integer stockNum;
 

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

@@ -62,6 +62,8 @@ public class OrderItemDTO {
 
     private Integer dayNum;
 
+    private Integer stockNum;
+
     private String areaStock;;
 
     private List<AreaStock> areaStockList;

+ 35 - 2
module-erp/src/main/java/com/hys/app/service/erp/impl/OrderManagerImpl.java

@@ -15,6 +15,7 @@ import com.hys.app.framework.database.mybatisplus.base.BaseServiceImpl;
 import com.hys.app.framework.exception.ServiceException;
 import com.hys.app.framework.util.BeanUtils;
 import com.hys.app.mapper.erp.OrderMapper;
+import com.hys.app.mapper.erp.WarehouseEntryMapper;
 import com.hys.app.mapper.erp.WarehouseOutMapper;
 import com.hys.app.mapper.goods.GoodsMapper;
 import com.hys.app.model.erp.dos.*;
@@ -66,6 +67,8 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
     private OrderCustomerFeeManager orderCustomerFeeManager;
     private RedisTemplate redisTemplate;
     private AreaStockManager areaStockManager;
+    private WarehouseEntryMapper warehouseEntryMapper;
+    private WarehouseEntryProductManager warehouseEntryProductManager;
 
     @Override
     public WebPage<OrderVO> list(OrderQueryParams queryParams) {
@@ -349,7 +352,7 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
         if (OrderTypeEnum.TO_C.equals(aDo.getOrderType())) {
             List<OrderItemDO> list2 = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderDO.getId()));
             list2.forEach(item -> {
-                item.setHasReturn(false);
+                item.setHasReturn(0);
                 item.setStockNum(item.getNum());
             });
             orderItemManager.updateBatchById(list2);
@@ -367,6 +370,8 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
         WarehouseOutDO outDO = new WarehouseOutDO();
         if (OrderTypeEnum.TO_C.equals(orderDO.getType())) {
             outDO.setType(WarehouseOutTypeEnum.HAIL_OUT);
+            //生成入库单
+            createEntryWarehouse(orderDO.getId());
         } else if (OrderTypeEnum.TO_B.equals(orderDO.getType())) {
             outDO.setType(WarehouseOutTypeEnum.SALE_OUT);
         }
@@ -465,6 +470,34 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
         orderDO.setStatus(SaleOrderStatusEnum.SENDING);
         updateById(orderDO);
         redisTemplate.delete(sendOrderId.toString());
+
+    }
+
+    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);
+        }
     }
 
     @Override
@@ -508,7 +541,7 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
             scanOrder(orderVO);
         }
 
-        if (OrderTypeEnum.TO_C.equals(orderDO.getType()) && SaleOrderStatusEnum.SENDING.equals(orderDO.getStatus())) {
+        if (OrderTypeEnum.TO_C.equals(orderDO.getType()) && SaleOrderStatusEnum.TO_BE_RETURN.equals(orderDO.getStatus())) {
             orderVO.setScanOrderType("return");
             scanOrder(orderVO);
         }

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

@@ -250,23 +250,23 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
                 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(true);
-                }
-                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);
-                    }
+                    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);
             //如果入库单的所有详细累加起来等于订单的详细 则该订单改为已完成
-            if (list.size() == objects.size()) {
+            long count = list.stream().filter(item -> item.getHasReturn() == 1).count();
+            if (list.size() == count) {
                 aDo.setStatus(SaleOrderStatusEnum.ORDER_END);
                 orderManager.updateById(aDo);
             }
         }
-
         redisTemplate.delete(warehouseEntryDO.getId().toString());
     }
 
@@ -508,7 +508,7 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
                 throw new ServiceException("该订单不是租赁订单");
             }
             List<OrderItemDO> list = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, warehouseEntryDTO.getOrderId()));
-            List<OrderItemDO> objects = new ArrayList<>();
+//            List<OrderItemDO> objects = new ArrayList<>();
             warehouseEntryDTO.getProductList().forEach(item -> {
                 if (ObjectUtil.isNull(item.getScanOrderItemId())) {
                     throw new ServiceException("租赁订单返回的商品必须在租赁订单里面");
@@ -517,12 +517,12 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
                 if (!first.isPresent()) {
                     throw new ServiceException("租赁订单返回的商品必须在租赁订单里面");
                 }
-                OrderItemDO orderItemDO = first.get();
-                orderItemDO.setHasReturn(true);
-                objects.add(orderItemDO);
+//                OrderItemDO orderItemDO = first.get();
+//                orderItemDO.setHasReturn(1);
+//                objects.add(orderItemDO);
             });
-            //更改订单详情的是否返回 统计在途库存会用到
-            orderItemManager.updateBatchById(objects);
+//            //更改订单详情的是否返回 统计在途库存会用到
+//            orderItemManager.updateBatchById(objects);
         }
 
         //如果是售后订单

+ 4 - 15
module-erp/src/main/java/com/hys/app/service/kuaidiniao/KuaiDiNiaoServiceImpl.java

@@ -15,16 +15,13 @@ import com.hys.app.converter.erp.OrderConverter;
 import com.hys.app.framework.context.user.AdminUserContext;
 import com.hys.app.framework.database.BaseQueryParam;
 import com.hys.app.framework.exception.ServiceException;
+import com.hys.app.framework.util.BeanUtils;
 import com.hys.app.framework.util.ScriptUtil;
 import com.hys.app.mapper.erp.KdnMapper;
 import com.hys.app.mapper.goods.ProductMapper;
 import com.hys.app.model.erp.dos.*;
-import com.hys.app.model.erp.enums.OrderTypeEnum;
-import com.hys.app.model.erp.enums.SaleOrderSendStatusEnum;
-import com.hys.app.model.erp.enums.SaleOrderStatusEnum;
-import com.hys.app.service.erp.ItemSnCodeManager;
-import com.hys.app.service.erp.OrderManager;
-import com.hys.app.service.erp.OrderSendManager;
+import com.hys.app.model.erp.enums.*;
+import com.hys.app.service.erp.*;
 import com.hys.app.service.kuaidiniao.entity.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -86,17 +83,8 @@ public class KuaiDiNiaoServiceImpl implements KuaiDiNiaoService {
 
     @Autowired
     private OrderConverter converter;
-
-    @Autowired
-    private ItemSnCodeManager itemSnCodeManager;
-
-    @Autowired
-    private ProductMapper productMapper;
-
     @Autowired
     private KdnMapper kdnMapper;
-
-
     private static final Logger log = LoggerFactory.getLogger(ScriptUtil.class);
 
 
@@ -405,6 +393,7 @@ public class KuaiDiNiaoServiceImpl implements KuaiDiNiaoService {
         return base;
     }
 
+
     private Boolean checkDesign(OrderSendDO aDo, String dataSign) {
         try {
             PreOrderModel model = new PreOrderModel();