Quellcode durchsuchen

待入库导出

yzc vor 1 Jahr
Ursprung
Commit
f211624eac

+ 11 - 0
hx-wms/src/main/java/com/fjhx/wms/controller/stock/StockWaitController.java

@@ -15,6 +15,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
 
 /**
  * <p>
@@ -105,4 +108,12 @@ public class StockWaitController {
         stockWaitService.endInStock(dto.getId());
     }
 
+    /**
+     * 待入库导出excel
+     */
+    @PostMapping("/inStockWaitExportExcel")
+    public void inStockWaitExportExcel(@RequestBody List<Long> ids, HttpServletResponse httpServletResponse) {
+        stockWaitService.inStockWaitExportExcel(httpServletResponse, ids);
+    }
+
 }

+ 13 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/emums/StockWaitType.java

@@ -3,6 +3,8 @@ package com.fjhx.wms.entity.stock.emums;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
+import java.util.HashMap;
+
 @AllArgsConstructor
 @Getter
 public enum StockWaitType {
@@ -36,4 +38,15 @@ public enum StockWaitType {
      */
     private final String linkBusinessTableName;
 
+    private static HashMap<String, String> hashMap = new HashMap<>();
+    static {
+        for (StockWaitType value : StockWaitType.values()) {
+            hashMap.put(String.valueOf(value.detailType), value.detailTypeRemark);
+        }
+    }
+
+    public static String getEnum(String code) {
+        return hashMap.get(code);
+    }
+
 }

+ 46 - 0
hx-wms/src/main/java/com/fjhx/wms/entity/stock/vo/InStockWaitExportExcel.java

@@ -0,0 +1,46 @@
+package com.fjhx.wms.entity.stock.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class InStockWaitExportExcel {
+
+    @ColumnWidth(20)
+    @ExcelProperty("来源")
+    private String businessType;
+
+    @ColumnWidth(20)
+    @ExcelProperty("单号")
+    private String businessCode;
+
+    @ColumnWidth(20)
+    @ExcelProperty("物流/快递公司")
+    private String logisticsCompanyName;
+
+    @ColumnWidth(20)
+    @ExcelProperty("物流/快递单号")
+    private String code;
+    @ColumnWidth(20)
+    @ExcelProperty("仓库名称")
+    private String warehouseName;
+    @ColumnWidth(20)
+    @ExcelProperty("物品编码")
+    private String productCode;
+    @ColumnWidth(20)
+    @ExcelProperty("物品名称")
+    private String productName;
+    @ColumnWidth(15)
+    @ExcelProperty("本次发货")
+    private String deliverGoodsQuantity;
+    @ColumnWidth(15)
+    @ExcelProperty("已入库")
+    private String receiptQuantity;
+    @ColumnWidth(15)
+    @ExcelProperty("待入库")
+    private String waitQuantity;
+
+}

+ 3 - 0
hx-wms/src/main/java/com/fjhx/wms/mapper/stock/StockWaitMapper.java

@@ -3,6 +3,7 @@ package com.fjhx.wms.mapper.stock;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.wms.entity.stock.po.StockWait;
+import com.fjhx.wms.entity.stock.vo.InStockWaitExportExcel;
 import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
 import com.fjhx.wms.entity.stock.vo.StockWaitVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
@@ -36,4 +37,6 @@ public interface StockWaitMapper extends BaseMapper<StockWait> {
      */
     List<StockWaitDetailsVo> getStockWaitList(@Param("ew") IWrapper<Object> wrapper);
 
+    List<InStockWaitExportExcel> getInStockWaitExportExcel(@Param("ew") IWrapper wrapper);
+
 }

+ 6 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/StockWaitService.java

@@ -10,6 +10,7 @@ import com.fjhx.wms.entity.stock.vo.StockWaitVo;
 import com.ruoyi.common.core.service.BaseService;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 
@@ -74,4 +75,9 @@ public interface StockWaitService extends BaseService<StockWait> {
      * 获取待出入库列表
      */
     List<StockWaitDetailsVo> getStockWaitList(IWrapper<Object> wrapper);
+
+    /**
+     * 待入库导出excel
+     */
+    void inStockWaitExportExcel(HttpServletResponse httpServletResponse, List<Long> ids);
 }

+ 23 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -12,6 +12,7 @@ import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.utils.Assert;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.item.util.excel.util.ExcelUtil;
 import com.fjhx.wms.entity.ArrivalDetailPo;
 import com.fjhx.wms.entity.PurchaseDetailPo;
 import com.fjhx.wms.entity.arrival.po.ArrivalStockRecords;
@@ -22,6 +23,7 @@ import com.fjhx.wms.entity.stock.dto.StockWaitSelectDto;
 import com.fjhx.wms.entity.stock.emums.JournalType;
 import com.fjhx.wms.entity.stock.emums.StockWaitType;
 import com.fjhx.wms.entity.stock.po.*;
+import com.fjhx.wms.entity.stock.vo.InStockWaitExportExcel;
 import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
 import com.fjhx.wms.entity.stock.vo.StockWaitVo;
 import com.fjhx.wms.entity.warehouse.po.Warehouse;
@@ -40,6 +42,7 @@ import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
@@ -279,6 +282,11 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
 
             List<ProductInfo> productInfoList = new ArrayList<>();
             for (StockWaitDetails stockWaitDetails : stockWaitDetailsDtoList) {
+                //入库数量为0直接跳过
+                if (ObjectUtil.isEmpty(stockWaitDetails.getQuantity()) || stockWaitDetails.getQuantity().compareTo(BigDecimal.ZERO) == 0) {
+                    continue;
+                }
+
                 ProductInfo productInfo = productInfoMap.get(stockWaitDetails.getProductId());
 
                 //获取所有仓库的该商品库存数量
@@ -434,5 +442,20 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         return baseMapper.getStockWaitList(wrapper);
     }
 
+    /**
+     * 待入库导出excel
+     */
+    @Override
+    public void inStockWaitExportExcel(HttpServletResponse httpServletResponse, List<Long> ids) {
+        List<InStockWaitExportExcel> stockWaitList = baseMapper.getInStockWaitExportExcel(IWrapper.getWrapper()
+                .eq("sw.type", 1)
+                .in("sw.id", ids)
+        );
+        //赋值业务来源
+        stockWaitList.forEach(item->item.setBusinessType(StockWaitType.getEnum(item.getBusinessType())));
+
+        //导出Excel
+        ExcelUtil.export(httpServletResponse, stockWaitList, InStockWaitExportExcel.class);
+    }
 
 }

+ 28 - 0
hx-wms/src/main/resources/mapper/stock/StockWaitMapper.xml

@@ -49,5 +49,33 @@
                 LEFT JOIN stock_wait sw ON swd.stock_wait_id = sw.id
             ${ew.customSqlSegment}
     </select>
+    <select id="getInStockWaitExportExcel" resultType="com.fjhx.wms.entity.stock.vo.InStockWaitExportExcel">
+        SELECT
+            sw.business_type,
+            sw.business_code,
+            ci.`name` AS logisticsCompanyName,
+            dg.`code`,
+            w.`name` AS warehouseName,
+            pi.custom_code AS productCode,
+            pi.`name` AS productName,
+            dgd.deliver_goods_quantity,
+            swd.receipt_quantity,
+            swd.quantity - swd.receipt_quantity AS waitQuantity
+        FROM
+            stock_wait sw
+                LEFT JOIN stock_wait_details swd ON swd.stock_wait_id = sw.id
+                LEFT JOIN bytesailing_purchase.arrival_detail ad ON swd.business_details_id = ad.id
+                AND ad.del_flag = 0
+                LEFT JOIN bytesailing_victoriatourist.deliver_goods_details dgd ON ad.deliver_goods_details_id = dgd.id
+                AND dgd.del_flag = 0
+                LEFT JOIN bytesailing_victoriatourist.deliver_goods dg ON dgd.deliver_goods_id = dg.id
+                AND dg.del_flag = 0
+                LEFT JOIN bytesailing_item.product_info pi ON swd.product_id = pi.id
+                AND pi.del_flag = 0
+                LEFT JOIN warehouse w ON cast( json_unquote( sw.victoriatourist_json -> '$.receiptWarehouseId' ) AS UNSIGNED ) = w.id
+                LEFT JOIN bytesailing_kd100.company_info ci ON dg.logistics_company_code = ci.`code`
+                AND ci.del_flag = 0
+            ${ew.customSqlSegment}
+    </select>
 
 </mapper>