Browse Source

feat(all): 增加库存报表

1 增加库存入库报表
pull/1/head
zhaoqiaobo 12 months ago
parent
commit
d3a481957f
  1. 5
      blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportBillLoadingController.java
  2. 4
      blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java
  3. 20
      blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportStockController.java
  4. 3
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportStockMapeer.java
  5. 45
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportStockMapper.xml
  6. 36
      blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryInStocksReader.java
  7. 4
      blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportStockService.java
  8. 20
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportStockServiceImpl.java
  9. 71
      blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportInStockVO.java

5
blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportBillLoadingController.java

@ -12,7 +12,6 @@ import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.system.feign.IUserClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@ -34,10 +33,6 @@ public class ReportBillLoadingController {
private IReportBillLoadingAsyncService reportBillLoadingAsyncService;
/**
* 导出数据
*/

4
blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java

@ -88,7 +88,7 @@ public class ReportDeliveryController extends BladeController {
}
@GetMapping("/details")
@ApiOperationSupport(order = 3)
@ApiOperationSupport(order = 5)
@ApiOperation(value = "配送明细报表", notes = "配送明细报表")
public R<IPage<ReportDetailVO>> detailsPage(ReportDetailVO vo, Query query) {
IPage<ReportDetailVO> pages = reportDeliverService.detailsPage(vo, query);
@ -96,7 +96,7 @@ public class ReportDeliveryController extends BladeController {
}
@GetMapping("/exportDetails")
@ApiOperationSupport(order = 4)
@ApiOperationSupport(order = 6)
@ApiOperation(value = "导出配送明细报表", notes = "导出配送明细报表")
public void exportDetails(HttpServletResponse response, ReportDetailVO vo) {
try {

20
blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportStockController.java

@ -19,6 +19,7 @@ package com.logpm.report.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.report.service.ReportStockService;
import com.logpm.report.vo.ReportInStockVO;
import com.logpm.report.vo.StockDetailsVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -65,4 +66,23 @@ public class ReportStockController extends BladeController {
}
}
@GetMapping("/inStocks")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "库存入库明细", notes = "库存入库明细")
public R<IPage<ReportInStockVO>> inStocks(ReportInStockVO vo, Query query) {
IPage<ReportInStockVO> pages = stockService.inStocks(vo, query);
return R.data(pages);
}
@GetMapping("/exportInStocks")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "导出配送明细报表", notes = "导出配送明细报表")
public void exportInStocks(HttpServletResponse response, ReportInStockVO vo) {
try {
stockService.exportInStocks(response, vo);
} catch (Exception e) {
e.printStackTrace();
}
}
}

3
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportStockMapeer.java

@ -3,6 +3,7 @@ package com.logpm.report.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.report.vo.ReportInStockVO;
import com.logpm.report.vo.StockDetailsVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -18,4 +19,6 @@ public interface ReportStockMapeer extends BaseMapper {
List<StockDetailsVO> getDetailPage(IPage<StockDetailsVO> page,@Param("ew") QueryWrapper<StockDetailsVO> queryWrapper);
List<ReportInStockVO> getInStocks(IPage<ReportInStockVO> page,@Param("ew") QueryWrapper<ReportInStockVO> queryWrapper);
}

45
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportStockMapper.xml

@ -3,7 +3,17 @@
<mapper namespace="com.logpm.report.mapper.ReportStockMapeer">
<select id="getDetailPage" resultType="com.logpm.report.vo.StockDetailsVO">
select *
select warehouse_name,
market_name,
service_type,
cargo_number,
description_goods,
quantity_stock,
outbound_quantity,
current_quantity,
quantity_occupied,
usable_quantity,
allocation_title
from (select t.warehouse_name,
t.market_name,
case
@ -22,6 +32,39 @@
from logpm_warehouse_updown_goods t
where t.association_type = 4
group by t.association_value) lwug on lwug.association_value = t.cargo_number
) t
${ew.customSqlSegment}
</select>
<select id="getInStocks" resultType="com.logpm.report.vo.ReportInStockVO">
select warehouse_name,
market_name,
service_type,
cargo_number,
description_goods,
warehousing_time,
despatch,
order_code,
package_code,
quantity_stock,
allocation_title
from (select t.warehouse_name,
t.market_name,
case
when t.service_type = 2 then '市内库存品'
when t.service_type = 3 then '自提库存品' end service_type,
t.cargo_number,
t.description_goods,
t.warehousing_time,
t.despatch,
t.order_code,
'' package_code,
t.quantity_stock,
lwug.allocation_title
from logpm_distribution_stock_list t
left join (select group_concat(t.allocation_title) allocation_title, t.association_value
from logpm_warehouse_updown_goods t
where t.association_type = 4
group by t.association_value) lwug on lwug.association_value = t.cargo_number
) t ${ew.customSqlSegment}
</select>
</mapper>

36
blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryInStocksReader.java

@ -0,0 +1,36 @@
package com.logpm.report.reader;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.report.mapper.ReportStockMapeer;
import com.logpm.report.service.ExportReaderService;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
*
* @author zhaoqiaobo
* @create 2024-03-08 9:50
*/
@Component
public class DeliveryInStocksReader implements ExportReaderService {
@Resource
private ReportStockMapeer reportStockMapeer;
@Override
public Long getCount(QueryWrapper query) {
Page page = new Page(1, 1);
reportStockMapeer.getInStocks(page, query);
return page.getTotal();
}
@Override
public List<T> findList(Page page, QueryWrapper query) {
return reportStockMapeer.getInStocks(page,query);
}
}

4
blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportStockService.java

@ -1,6 +1,7 @@
package com.logpm.report.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.report.vo.ReportInStockVO;
import com.logpm.report.vo.StockDetailsVO;
import org.springblade.core.mp.support.Query;
@ -17,4 +18,7 @@ public interface ReportStockService {
void exportDetails(HttpServletResponse response, StockDetailsVO vo) throws InterruptedException, IOException;
IPage<ReportInStockVO> inStocks(ReportInStockVO vo, Query query);
void exportInStocks(HttpServletResponse response, ReportInStockVO vo) throws InterruptedException, IOException;
}

20
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportStockServiceImpl.java

@ -4,9 +4,11 @@ import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.report.mapper.ReportStockMapeer;
import com.logpm.report.reader.DeliveryInStocksReader;
import com.logpm.report.reader.DeliveryStockReader;
import com.logpm.report.service.ReportStockService;
import com.logpm.report.util.ReportExcelUtil;
import com.logpm.report.vo.ReportInStockVO;
import com.logpm.report.vo.StockDetailsVO;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
@ -27,6 +29,7 @@ public class ReportStockServiceImpl implements ReportStockService {
private final ReportStockMapeer reportStockMapeer;
private final DeliveryStockReader deliveryStockReader;
private final DeliveryInStocksReader inStocksReader;
@Override
public IPage<StockDetailsVO> detailsPage(StockDetailsVO vo, Query query) {
@ -37,10 +40,25 @@ public class ReportStockServiceImpl implements ReportStockService {
}
@Override
public void exportDetails(HttpServletResponse response,StockDetailsVO vo) throws InterruptedException, IOException {
public void exportDetails(HttpServletResponse response, StockDetailsVO vo) throws InterruptedException, IOException {
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(vo);
QueryWrapper<StockDetailsVO> queryWrapper = Condition.getQueryWrapper(stringObjectMap, StockDetailsVO.class);
new ReportExcelUtil().export(response, deliveryStockReader, StockDetailsVO.class, queryWrapper, "库存品表");
}
@Override
public IPage<ReportInStockVO> inStocks(ReportInStockVO vo, Query query) {
IPage<ReportInStockVO> page = Condition.getPage(query);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(vo);
QueryWrapper<ReportInStockVO> queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportInStockVO.class);
return page.setRecords(reportStockMapeer.getInStocks(page, queryWrapper));
}
@Override
public void exportInStocks(HttpServletResponse response, ReportInStockVO vo) throws InterruptedException, IOException {
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(vo);
QueryWrapper<ReportInStockVO> queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportInStockVO.class);
new ReportExcelUtil().export(response, inStocksReader, ReportInStockVO.class, queryWrapper, "库存入库表");
}
}

71
blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportInStockVO.java

@ -0,0 +1,71 @@
package com.logpm.report.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 库存入库明细
* @author zhaoqiaobo
* @create 2024-03-06 16:02
*/
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
@ApiModel(value = "库存入库明细", description = "库存入库明细")
@Data
public class ReportInStockVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "仓库")
@ExcelProperty("仓库")
private String warehouseName;
@ApiModelProperty(value = "商场名称")
@ExcelProperty("商场名称")
private String marketName;
@ApiModelProperty(value = "类型")
@ExcelProperty("类型")
private String serviceType;
@ApiModelProperty(value = "物料编码")
@ExcelProperty("物料编码")
private String cargoNumber;
@ApiModelProperty(value = "物料名称")
@ExcelProperty("物料名称")
private String descriptionGoods;
@ApiModelProperty(value = "入库时间")
@ExcelProperty("入库时间")
private String warehousingTime;
@ApiModelProperty(value = "运单号")
@ExcelProperty("运单号")
private String despatch;
@ApiModelProperty(value = "订单自编码")
@ExcelProperty("订单自编码")
private String orderCode;
@ApiModelProperty(value = "包条码")
@ExcelProperty("包条码")
private String packageCode;
@ApiModelProperty(value = "入库数")
@ExcelProperty("入库数")
private String quantityStock;
@ApiModelProperty(value = "货位信息")
@ExcelProperty("货位信息")
private String allocationTitle;
}
Loading…
Cancel
Save