Selaa lähdekoodia

修改京东接收

yzc 2 vuotta sitten
vanhempi
commit
3acf2164c3

+ 4 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/order/OrderInfoVo.java

@@ -2,6 +2,8 @@ package com.fjhx.params.order;
 
 import com.fjhx.entity.order.OrderDetails;
 import com.fjhx.entity.order.OrderInfo;
+import com.fjhx.entity.stock.StockTransfer;
+import com.fjhx.params.stock.StockTransferVo;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -22,4 +24,6 @@ public class OrderInfoVo extends OrderInfo {
      */
     private List<OrderDetails> orderDetailsList;
 
+    private List<StockTransferVo> stockTransferList;
+
 }

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

@@ -14,4 +14,8 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 public class StockTransferVo extends StockTransfer {
 
+    private String inUserName;
+    private String outUserName;
+    private String productName;
+
 }

+ 14 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/StockTransferController.java

@@ -6,6 +6,7 @@ import com.fjhx.entity.stock.StockTransfer;
 import com.fjhx.enums.stock.OutTypeEnum;
 import com.fjhx.params.stock.StockTransferAddDto;
 import com.fjhx.params.stock.StockTransferEx;
+import com.fjhx.params.stock.StockTransferVo;
 import com.fjhx.service.stock.StockTransferService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -37,6 +39,12 @@ public class StockTransferController {
         return R.success(page);
     }
 
+    @PostMapping("/page1")
+    public R page1(@RequestBody Condition condition) {
+        Page<StockTransferVo> page = stockTransferService.getPage1(condition);
+        return R.success(page);
+    }
+
     /**
      * 调仓
      */
@@ -56,6 +64,12 @@ public class StockTransferController {
         stockTransferService.receive(stockTransfer);
         return R.success();
     }
+    /**批量接收*/
+    @PostMapping("/receive1")
+    public R receive1(@RequestBody List<StockTransfer> stockTransferList) {
+        stockTransferService.receive1(stockTransferList);
+        return R.success();
+    }
 
     /**调仓明细*/
     @PostMapping("/detailed")

+ 5 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockTransferMapper.java

@@ -5,9 +5,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.stock.StockTransfer;
 import com.fjhx.params.stock.StockTransferEx;
+import com.fjhx.params.stock.StockTransferVo;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.awt.*;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -21,6 +24,7 @@ import java.util.Map;
 public interface StockTransferMapper extends BaseMapper<StockTransfer> {
 
     Page<Map<String, Object>> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Object> wrapper);
+    Page<StockTransferVo> getPage1(@Param("page") Page<Object> page, @Param("ew") IWrapper<Object> wrapper);
 
-    StockTransferEx detailed(@Param("ew") QueryWrapper queryWrapper);
+    List<StockTransferEx> detailed(@Param("ew") QueryWrapper queryWrapper);
 }

+ 30 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockTransferMapper.xml

@@ -33,4 +33,34 @@
             ${ew.customSqlSegment}
     </select>
 
+    <resultMap id="page1Map" type="com.fjhx.params.order.OrderInfoVo">
+        <id property="id" column="oi_id"/>
+        <result property="code" column="code"/>
+        <result property="amountMoney" column="amount_money"/>
+        <result property="status" column="status"/>
+
+        <collection property="stockTransferList" javaType="java.util.ArrayList" notNullColumn="id" ofType="com.fjhx.params.stock.StockTransferVo">
+            <id property="id" column="st_id"/>
+            <result property="productId" column="product_id"/>
+            <result property="outQuantity" column="out_quantity"/>
+            <result property="outWarehouseId" column="out_warehouse_id"/>
+            <result property="inWarehouseId" column="in_warehouse_id"/>
+            <result property="inQuantity" column="in_quantity"/>
+            <result property="inUser" column="in_user"/>
+            <result property="productName" column="name"/>
+
+        </collection>
+    </resultMap>
+    <select id="getPage1" resultMap="page1Map">
+        SELECT
+            *,
+            oi.id oi_id,
+            st.id st_id
+        FROM
+            order_info oi
+                JOIN stock_transfer st ON st.jd_order_info_id = oi.id
+                JOIN product_info pi ON st.product_id = pi.id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 4 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/StockTransferService.java

@@ -6,7 +6,9 @@ import com.fjhx.base.Condition;
 import com.fjhx.entity.stock.StockTransfer;
 import com.fjhx.params.stock.StockTransferAddDto;
 import com.fjhx.params.stock.StockTransferEx;
+import com.fjhx.params.stock.StockTransferVo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -20,6 +22,7 @@ import java.util.Map;
 public interface StockTransferService extends BaseService<StockTransfer> {
 
     Page<Map<String, Object>> getPage(Condition condition);
+    Page<StockTransferVo> getPage1(Condition condition);
 
     /**
      * 添加调仓记录
@@ -30,6 +33,7 @@ public interface StockTransferService extends BaseService<StockTransfer> {
      * 接收调仓
      */
     void receive(StockTransfer stockTransfer);
+    void receive1(List<StockTransfer> stockTransfer);
 
     /**调仓明细*/
     StockTransferEx detailed(StockTransfer stockTransfer);

+ 91 - 6
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockTransferServiceImpl.java

@@ -8,15 +8,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.base.Condition;
 import com.fjhx.constants.StatusConstant;
 import com.fjhx.entity.abnormal.AbnormalInfo;
+import com.fjhx.entity.order.OrderInfo;
 import com.fjhx.entity.product.ProductInfo;
 import com.fjhx.entity.stock.StockTransfer;
 import com.fjhx.entity.warehouse.Warehouse;
 import com.fjhx.enums.stock.InTypeEnum;
 import com.fjhx.mapper.stock.StockTransferMapper;
-import com.fjhx.params.stock.ChangeProduct;
-import com.fjhx.params.stock.StockChangeDto;
-import com.fjhx.params.stock.StockTransferAddDto;
-import com.fjhx.params.stock.StockTransferEx;
+import com.fjhx.params.order.OrderInfoVo;
+import com.fjhx.params.stock.*;
 import com.fjhx.service.abnormal.AbnormalInfoService;
 import com.fjhx.service.product.ProductInfoService;
 import com.fjhx.service.stock.StockService;
@@ -27,6 +26,7 @@ import com.fjhx.utils.UserClientUtil;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import com.fjhx.utils.wrapperUtil.KeywordData;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -34,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -96,6 +97,40 @@ public class StockTransferServiceImpl extends ServiceImpl<StockTransferMapper, S
 
         return page;
     }
+    //过滤出京东订单
+    @Override
+    public Page<StockTransferVo> getPage1(Condition condition) {
+        IWrapper<Object> wrapper = IWrapper.getWrapper(condition);
+        wrapper.eq("st", StockTransfer::getInWarehouseId);
+        wrapper.eq("st", StockTransfer::getOutWarehouseId);
+        wrapper.eq("st", StockTransfer::getInStatus);
+        wrapper.keyword(new KeywordData("pi", ProductInfo::getName), new KeywordData("pi", ProductInfo::getCode));
+        wrapper.orderByDesc("st", StockTransfer::getId);
+        wrapper.isNotNull("st.jd_order_info_id");
+
+
+        Page<StockTransferVo> page = baseMapper.getPage1(condition.getPage(), wrapper);
+        List<StockTransferVo> records = page.getRecords();
+        if (records.size() == 0) {
+            return page;
+        }
+
+//        List<Long> userIdList = new ArrayList<>();
+//        records.forEach(item -> {
+//            userIdList.add(Convert.toLong(item.getInUser()));
+//            userIdList.add(Convert.toLong(item.getCreateUser()));
+//        });
+//
+//        Map<Long, String> userNameMap = UserClientUtil.getUserNameMap(userIdList);
+//
+//        for (StockTransferVo item : records) {
+//            item.setInUserName(userNameMap.get(Convert.toLong(item.getInUser())));
+//            item.setOutUserName(userNameMap.get(Convert.toLong(item.getCreateUser())));
+//        }
+
+        return page;
+    }
+
 
     @Transactional(rollbackFor = Exception.class)
     @Override
@@ -171,18 +206,68 @@ public class StockTransferServiceImpl extends ServiceImpl<StockTransferMapper, S
         stockService.changeQuantity(stockChangeDto);
     }
 
+    /**批量接收*/
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void receive1(List<StockTransfer> dto) {
+
+        List<ChangeProduct> changeProductList = new ArrayList<>();
+        List<AbnormalInfo> abnormalInfoList = new ArrayList<>();
+
+        Map<Long, StockTransfer> stockTransferMap = dto.stream().collect(Collectors.toMap(StockTransfer::getId, Function.identity()));
+        List<Long> ids = dto.stream().map(StockTransfer::getId).collect(Collectors.toList());
+        List<StockTransfer> stockTransfers = listByIds(ids);
+        for(StockTransfer stockTransfer :stockTransfers){
+            Assert.eqTrue(StatusConstant.NO.equals(stockTransfer.getInStatus()), "物品已接收");
+
+            stockTransfer.setInUser(AuthUtil.getUserId());
+            stockTransfer.setInQuantity(stockTransferMap.get(stockTransfer.getId()).getInQuantity());
+            stockTransfer.setInTime(new Date());
+            stockTransfer.setInStatus(StatusConstant.YES);
+
+            ChangeProduct changeProduct = new ChangeProduct();
+            changeProduct.setBusinessId(stockTransfer.getId());
+            changeProduct.setProductId(stockTransfer.getProductId());
+            changeProduct.setQuantity(stockTransfer.getInQuantity());
+            changeProductList.add(changeProduct);
+
+            //调仓接收数量与发出数量不一致
+            if (stockTransfer.getInQuantity() != stockTransfer.getOutQuantity()) {
+                AbnormalInfo abnormalInfo = new AbnormalInfo();
+                abnormalInfo.setId(IdWorker.getId());
+                abnormalInfo.setType(30);
+                abnormalInfo.setLinkId(stockTransfer.getId());
+                abnormalInfo.setTitle("调仓接收数量与发出数量不一致");
+                abnormalInfoList.add(abnormalInfo);
+            }
+        }
+
+        updateBatchById(stockTransfers);
+        abnormalInfoService.saveBatch(abnormalInfoList);
+
+        StockChangeDto stockChangeDto = new StockChangeDto();
+        stockChangeDto.setDefaultWarehouseId(100l);
+//        stockChangeDto.setDefaultRemarks(stockTransfer.getRemark());
+        stockChangeDto.setTypeEnum(InTypeEnum.TRANSFER);
+        stockChangeDto.setChangeDetailsList(changeProductList);
+
+        stockService.changeQuantity(stockChangeDto);
+    }
+
     @Override
     public StockTransferEx detailed(StockTransfer stockTransfer){
         QueryWrapper queryWrapper = new QueryWrapper();
         queryWrapper.eq("st.id",stockTransfer.getId());
         queryWrapper.or();
         queryWrapper.eq("st.jd_order_info_id",stockTransfer.getId());
-        StockTransferEx detailed = baseMapper.detailed(queryWrapper);
+        List<StockTransferEx> detailedList = baseMapper.detailed(queryWrapper);
+        StockTransferEx detailed = detailedList.get(0);
         Warehouse inWarehouse = warehouseService.getById(detailed.getInWarehouseId());
         if(ObjectUtil.isNotEmpty(inWarehouse)) {
             detailed.setInWarehouseName(inWarehouse.getName());
         }
-        List<ProductInfo> productInfoList = productInfoService.list(q -> q.eq(ProductInfo::getId, detailed.getProductId()));
+        List<Long> ids = detailedList.stream().map(StockTransferEx::getProductId).collect(Collectors.toList());
+        List<ProductInfo> productInfoList = productInfoService.list(q -> q.in(ProductInfo::getId, ids));
         detailed.setProductInfoList(productInfoList);
         return detailed;
     }