diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataFreightClient.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataFreightClient.java index 8b01de2cf..d38166884 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataFreightClient.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataFreightClient.java @@ -40,7 +40,7 @@ import java.util.List; ) public interface IBasicdataFreightClient { - String API_PREFIX = "/client"; + String API_PREFIX = "/basicdataFreight/client"; String TOP = API_PREFIX + "/top123"; String PRICE = API_PREFIX + "/pirce"; diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataFreightClient.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataFreightClient.java index 5f95a5127..d03c020ec 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataFreightClient.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataFreightClient.java @@ -16,7 +16,7 @@ */ package com.logpm.basicdata.feign; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.basicdata.entity.BasicdataFreightDetailEntity; import com.logpm.basicdata.entity.BasicdataFreightEntity; @@ -60,8 +60,9 @@ public class BasicdataFreightClient implements IBasicdataFreightClient { @Override public List pirce(BasicdataFreightApiVO param) { - QueryWrapper queryWrapper1 = new QueryWrapper(); - queryWrapper1.eq("item_name", param.getItemName()).like("category", param.getCategory()).eq("is_deleted",0); + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(BasicdataFreightEntity::getItemName,param.getItemName()) + .like(BasicdataFreightEntity::getCategory,param.getCategory()).eq(BasicdataFreightEntity::getIsDeleted,0); BasicdataFreightEntity freightEntity = basicdataFreightService.getOne(queryWrapper1); List objects = new ArrayList<>(); if (null != freightEntity) { @@ -77,8 +78,9 @@ public class BasicdataFreightClient implements IBasicdataFreightClient { } objects.add(detailEntity); } else { - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("freight_id", freightEntity.getId()).eq("is_deleted", 0); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BasicdataFreightDetailEntity::getFreightId,freightEntity.getId()) + .eq(BasicdataFreightDetailEntity::getIsDeleted,0); List list = basicdataFreightDetailService.list(queryWrapper); objects.addAll(list); } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataFreightServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataFreightServiceImpl.java index cb6f6c043..bf0d65572 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataFreightServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataFreightServiceImpl.java @@ -20,7 +20,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.logpm.basicdata.dto.BasicdataFreightDTO; @@ -82,17 +82,17 @@ public class BasicdataFreightServiceImpl extends BaseServiceImpl query = new QueryWrapper<>(); - query.eq("item_name", basicdataFreight.getItemName()) - .eq("is_deleted", 0); - if(0 == basicdataFreight.getFixedPrice()){ - if(StrUtil.isBlank(basicdataFreight.getCategory())){ + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(BasicdataFreightEntity::getItemName, basicdataFreight.getItemName()) + .eq(BasicdataFreightEntity::getIsDeleted, 0); + if (0 == basicdataFreight.getFixedPrice()) { + if (StrUtil.isBlank(basicdataFreight.getCategory())) { throw new ServiceException("品类必填"); } - query.in("category", basicdataFreight.getCategory().split(",")); + query.in(BasicdataFreightEntity::getCategory, basicdataFreight.getCategory().split(",")); } if (ObjectUtils.isNotNull(basicdataFreight.getId())) { - query.ne("id", basicdataFreight.getId()); + query.ne(BasicdataFreightEntity::getId, basicdataFreight.getId()); } List list = this.list(query); if (CollectionUtil.isNotEmpty(list)) { @@ -101,7 +101,7 @@ public class BasicdataFreightServiceImpl extends BaseServiceImpl typeService = basicdataFreight.getTypeService(); basicdataFreightEntity.setType(String.join(",", typeService)); } @@ -115,8 +115,8 @@ public class BasicdataFreightServiceImpl extends BaseServiceImpl objectQueryWrapper = new QueryWrapper<>(); - objectQueryWrapper.eq("freight_id", basicdataFreightEntity.getId()); + LambdaQueryWrapper objectQueryWrapper = new LambdaQueryWrapper<>(); + objectQueryWrapper.eq(BasicdataFreightDetailEntity::getFreightId, basicdataFreightEntity.getId()); detailService.remove(objectQueryWrapper); } else { this.save(basicdataFreightEntity); @@ -141,8 +141,9 @@ public class BasicdataFreightServiceImpl extends BaseServiceImpl objectQueryWrapper = new QueryWrapper<>(); - objectQueryWrapper.eq("freight_id", detail.getId()).eq("is_deleted", 0); + LambdaQueryWrapper objectQueryWrapper = new LambdaQueryWrapper<>(); + objectQueryWrapper.eq(BasicdataFreightDetailEntity::getFreightId, detail.getId()) + .eq(BasicdataFreightDetailEntity::getIsDeleted, 0); List list = detailService.list(objectQueryWrapper); if (CollectionUtil.isNotEmpty(list)) { List detailDTOS = new ArrayList<>(); diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportBillLoadingController.java b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportBillLoadingController.java index ea6634521..0f21d4569 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportBillLoadingController.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportBillLoadingController.java @@ -1,16 +1,18 @@ package com.logpm.report.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.report.excel.BillLoadingReportExcel; import com.logpm.report.service.IReportBillLoadingAsyncService; +import com.logpm.report.vo.BillLoadingDetailsVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springblade.core.excel.util.ExcelUtil; -import org.springblade.core.secure.BladeUser; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; -import org.springblade.core.tool.utils.Func; +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; @@ -40,21 +42,34 @@ public class ReportBillLoadingController { * 导出数据 */ @GetMapping("/export-billLoading") - @ApiOperationSupport(order = 9) + @ApiOperationSupport(order = 2) @ApiOperation(value = "导出数据", notes = "传入distributionDeliveryList") - public R exportBillLoading(@ApiIgnore @RequestParam Map param, HttpServletResponse response) { + public R exportBillLoading(@ApiIgnore @RequestParam Map param, HttpServletResponse response) { List list = reportBillLoadingAsyncService.exportBillLoading(param); ExcelUtil.export(response, "配送管理数据" + DateUtil.time(), "配送管理数据表", list, BillLoadingReportExcel.class); return R.status(true); } + @GetMapping("/details") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "自提明细报表", notes = "自提明细报表") + public R> detailsPage(BillLoadingDetailsVO vo, Query query) { + IPage pages = reportBillLoadingAsyncService.detailsPage(vo, query); + return R.data(pages); + } - - - - + @GetMapping("/exportDetails") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "导出自提明细报表", notes = "导出自提明细报表") + public void exportDetails(HttpServletResponse response, BillLoadingDetailsVO vo) { + try { + reportBillLoadingAsyncService.exportDetails(response, vo); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportStockController.java b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportStockController.java new file mode 100644 index 000000000..fb763323d --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportStockController.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +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.StockDetailsVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +/** + * 配送报表 控制器 + * + * @author cyz + * @since 2023-06-08 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/stock") +@Api(value = "库存报表", tags = "库存报表") +public class ReportStockController extends BladeController { + + private final ReportStockService stockService; + + @GetMapping("/details") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "库存品表", notes = "库存品表") + public R> detailsPage(StockDetailsVO vo, Query query) { + IPage pages = stockService.detailsPage(vo, query); + return R.data(pages); + } + + @GetMapping("/exportDetails") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "导出配送明细报表", notes = "导出配送明细报表") + public void exportDetails(HttpServletResponse response, StockDetailsVO vo) { + try { + stockService.exportDetails(response, vo); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/StockOutDetailController.java b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/StockOutDetailController.java index e4c7c9442..6adcf1a56 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/StockOutDetailController.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/StockOutDetailController.java @@ -1,6 +1,8 @@ package com.logpm.report.controller; import com.logpm.report.service.StockOutDetailService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.api.R; @@ -9,7 +11,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.util.List; import java.util.Map; /** @@ -18,6 +19,7 @@ import java.util.Map; @RestController @AllArgsConstructor @RequestMapping(path = "/stock-out-detail") +@Api(value = "库存品出库明细", tags = "库存品出库明细") public class StockOutDetailController extends BladeController { private StockOutDetailService test; @@ -29,6 +31,7 @@ public class StockOutDetailController extends BladeController { * @param size 每页数据量 */ @GetMapping("/report") + @ApiOperation(value = "库存品出库明细列表", notes = "库存品出库明细列表") public R> report( @RequestParam Map query, @RequestParam Integer current, @@ -42,6 +45,7 @@ public class StockOutDetailController extends BladeController { * @param query 所有请求参数 */ @GetMapping("/export") + @ApiOperation(value = "导出库存品出库明细列表", notes = "导出库存品出库明细列表") public void export(@RequestParam Map query) { test.reportExport(query); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.java index d2b9a5170..f03bf2c57 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.java @@ -1,6 +1,10 @@ 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.excel.BillLoadingReportExcel; +import com.logpm.report.vo.BillLoadingDetailsVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -8,7 +12,7 @@ import java.util.List; import java.util.Map; @Mapper -public interface ReportBillLoadingMapper { +public interface ReportBillLoadingMapper extends BaseMapper { /** @@ -17,4 +21,6 @@ public interface ReportBillLoadingMapper { * @return */ List exportBillLoading(@Param("param") Map param); + + List getDetailsPage(IPage page,@Param("ew") QueryWrapper queryWrapper); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.xml index 61317a135..6e475bdaa 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.xml @@ -4,19 +4,103 @@ + diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java index 236cb0b09..c792014a8 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java @@ -1,7 +1,6 @@ package com.logpm.report.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; -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.ReportCustomerVO; @@ -21,8 +20,8 @@ public interface ReportDeliverMapeer extends BaseMapper { List getDeliveryTrainPage(IPage page, @Param("ew") Wrapper query); - List getCustomerPage(IPage page, @Param("ew") Wrapper query); + List getCustomerPage(IPage page, @Param("ew") Wrapper query); - List getDetailsPage(IPage page, @Param("ew") Wrapper query); + List getDetailsPage(IPage page, @Param("ew") Wrapper query); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportStockMapeer.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportStockMapeer.java new file mode 100644 index 000000000..a8e5ff23b --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportStockMapeer.java @@ -0,0 +1,21 @@ +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.StockDetailsVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author zhaoqiaobo + * @create 2024-03-06 15:54 + */ +@Mapper +public interface ReportStockMapeer extends BaseMapper { + + List getDetailPage(IPage page,@Param("ew") QueryWrapper queryWrapper); + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportStockMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportStockMapper.xml new file mode 100644 index 000000000..dd498d904 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportStockMapper.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/reader/BillLoadingDetailsReader.java b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/BillLoadingDetailsReader.java new file mode 100644 index 000000000..fd761d614 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/BillLoadingDetailsReader.java @@ -0,0 +1,35 @@ +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.ReportBillLoadingMapper; +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 BillLoadingDetailsReader implements ExportReaderService { + + @Resource + private ReportBillLoadingMapper billLoadingMapper; + + @Override + public Long getCount(QueryWrapper query) { + Page page = new Page(1, 1); + billLoadingMapper.getDetailsPage(page, query); + return page.getTotal(); + } + + @Override + public List findList(Page page, QueryWrapper query) { + return billLoadingMapper.getDetailsPage(page, query); + } + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryStockReader.java b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryStockReader.java new file mode 100644 index 000000000..eb0b05aa7 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryStockReader.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 DeliveryStockReader implements ExportReaderService { + + @Resource + private ReportStockMapeer reportStockMapeer; + + @Override + public Long getCount(QueryWrapper query) { + Page page = new Page(1, 1); + reportStockMapeer.getDetailPage(page, query); + return page.getTotal(); + } + + @Override + public List findList(Page page, QueryWrapper query) { + return reportStockMapeer.getDetailPage(page,query); + } + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportBillLoadingAsyncService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportBillLoadingAsyncService.java index 1df41dd8b..b759c9539 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportBillLoadingAsyncService.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportBillLoadingAsyncService.java @@ -1,7 +1,11 @@ package com.logpm.report.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.report.excel.BillLoadingReportExcel; +import com.logpm.report.vo.BillLoadingDetailsVO; +import org.springblade.core.mp.support.Query; +import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -15,4 +19,7 @@ public interface IReportBillLoadingAsyncService { */ List exportBillLoading(Map param); + IPage detailsPage(BillLoadingDetailsVO vo, Query query); + + void exportDetails(HttpServletResponse response, BillLoadingDetailsVO vo); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportStockService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportStockService.java new file mode 100644 index 000000000..f1505b53a --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportStockService.java @@ -0,0 +1,20 @@ +package com.logpm.report.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.logpm.report.vo.StockDetailsVO; +import org.springblade.core.mp.support.Query; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @author zhaoqiaobo + * @create 2024-03-06 15:51 + */ +public interface ReportStockService { + + IPage detailsPage(StockDetailsVO vo, Query query); + + void exportDetails(HttpServletResponse response, StockDetailsVO vo) throws InterruptedException, IOException; + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportBillLoadingAsyncService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportBillLoadingAsyncService.java index 903605b38..456746013 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportBillLoadingAsyncService.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportBillLoadingAsyncService.java @@ -1,19 +1,34 @@ package com.logpm.report.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.report.excel.BillLoadingReportExcel; import com.logpm.report.mapper.ReportBillLoadingMapper; +import com.logpm.report.reader.BillLoadingDetailsReader; import com.logpm.report.service.IReportBillLoadingAsyncService; +import com.logpm.report.util.ReportExcelUtil; +import com.logpm.report.vo.BillLoadingDetailsVO; import lombok.AllArgsConstructor; import lombok.extern.log4j.Log4j2; -import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.DateUtil; +import org.springblade.system.entity.User; +import org.springblade.system.feign.IUserClient; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; @Log4j2 @Service @@ -22,6 +37,8 @@ public class ReportBillLoadingAsyncService implements IReportBillLoadingAsyncSer private ReportBillLoadingMapper reportBillLoadingMapper; + private final BillLoadingDetailsReader billLoadingDetailsReader; + private final IUserClient userClient; /** * @param param @@ -31,8 +48,46 @@ public class ReportBillLoadingAsyncService implements IReportBillLoadingAsyncSer @Async public List exportBillLoading(Map param) { List list = reportBillLoadingMapper.exportBillLoading(param); - log.info("导出数据条数:{}",list.size()); - list.stream().forEach(l->l.setAmountToFee(l.getForkliftFee()+l.getAddValueFee()+l.getStorageFee()+l.getCollectPaymentFee()+l.getTransportFee())); + log.info("导出数据条数:{}", list.size()); + list.stream().forEach(l -> l.setAmountToFee(l.getForkliftFee() + l.getAddValueFee() + l.getStorageFee() + l.getCollectPaymentFee() + l.getTransportFee())); return list; } + + @Override + public IPage detailsPage(BillLoadingDetailsVO vo, Query query) { + IPage page = Condition.getPage(query); + Map stringObjectMap = BeanUtil.beanToMap(vo); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, BillLoadingDetailsVO.class); + List detailsPage = reportBillLoadingMapper.getDetailsPage(page, queryWrapper); + if (CollUtil.isNotEmpty(detailsPage)) { + // 组装数据批量去查询用户名称 + Set userIds = new HashSet<>(); + for (BillLoadingDetailsVO detailsVO : detailsPage) { + if (StrUtil.isNotBlank(detailsVO.getScanUser())) { + userIds.add(detailsVO.getScanUser()); + } + if (StrUtil.isNotBlank(detailsVO.getExamineUser())) { + userIds.add(detailsVO.getExamineUser()); + } + } + R> listR = userClient.userInfoByIds(AuthUtil.getTenantId(), CollUtil.join(userIds, ",")); + if(ObjectUtil.equal(200,listR.getCode())){ + List data = listR.getData(); + Map collect = data.stream().collect(Collectors.toMap(User::getId, User::getName)); + for (BillLoadingDetailsVO detailsVO : detailsPage) { + detailsVO.setScanUser(collect.get(detailsVO.getScanUser())); + detailsVO.setExamineUser(collect.get(detailsVO.getExamineUser())); + } + } + + } + return page.setRecords(detailsPage); + } + + @Override + public void exportDetails(HttpServletResponse response, BillLoadingDetailsVO vo) { + Map stringObjectMap = BeanUtil.beanToMap(vo); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, BillLoadingDetailsVO.class); + new ReportExcelUtil().export(response, billLoadingDetailsReader, BillLoadingDetailsVO.class, queryWrapper, "自提明细"); + } } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java index 4fff68589..5d7135d14 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java @@ -53,7 +53,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { public IPage customerPage(ReportCustomerVO vo, Query query) { IPage page = Condition.getPage(query); Map stringObjectMap = BeanUtil.beanToMap(vo); - QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportDevilerVO.class); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportCustomerVO.class); return page.setRecords(reportDeliverMapeer.getCustomerPage(page, queryWrapper)); } @@ -68,14 +68,14 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { public IPage detailsPage(ReportDetailVO vo,Query query) { IPage page = Condition.getPage(query); Map stringObjectMap = BeanUtil.beanToMap(vo); - QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportDevilerVO.class); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportDetailVO.class); return page.setRecords(reportDeliverMapeer.getDetailsPage(page, queryWrapper)); } @Override public void exportDetails(HttpServletResponse response, ReportDetailVO vo) throws InterruptedException, IOException { Map stringObjectMap = BeanUtil.beanToMap(vo); - QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportDevilerVO.class); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportDetailVO.class); new ReportExcelUtil().export(response, deliveryDetailReader, ReportDetailVO.class, queryWrapper, "配送明细报表"); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportStockServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportStockServiceImpl.java new file mode 100644 index 000000000..e29080bbd --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportStockServiceImpl.java @@ -0,0 +1,46 @@ +package com.logpm.report.service.impl; + +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.DeliveryStockReader; +import com.logpm.report.service.ReportStockService; +import com.logpm.report.util.ReportExcelUtil; +import com.logpm.report.vo.StockDetailsVO; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Map; + +/** + * @author zhaoqiaobo + * @create 2024-03-06 15:52 + */ +@Service +@AllArgsConstructor +public class ReportStockServiceImpl implements ReportStockService { + + private final ReportStockMapeer reportStockMapeer; + private final DeliveryStockReader deliveryStockReader; + + @Override + public IPage detailsPage(StockDetailsVO vo, Query query) { + IPage page = Condition.getPage(query); + Map stringObjectMap = BeanUtil.beanToMap(vo); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, StockDetailsVO.class); + return page.setRecords(reportStockMapeer.getDetailPage(page, queryWrapper)); + } + + @Override + public void exportDetails(HttpServletResponse response,StockDetailsVO vo) throws InterruptedException, IOException { + Map stringObjectMap = BeanUtil.beanToMap(vo); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, StockDetailsVO.class); + new ReportExcelUtil().export(response, deliveryStockReader, StockDetailsVO.class, queryWrapper, "库存品表"); + } + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/BillLoadingDetailsVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/BillLoadingDetailsVO.java new file mode 100644 index 000000000..e0535681f --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/BillLoadingDetailsVO.java @@ -0,0 +1,104 @@ +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; + +/** + * 自提明细 报表 vo + * + * @author zhaoqiaobo + * @create 2024-03-06 16:02 + */ +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +@ApiModel(value = "自提明细报表", description = "自提明细报表") +@Data +public class BillLoadingDetailsVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自提批次号") + @ExcelProperty("自提批次号") + private String pickupBatch; + + @ApiModelProperty(value = "仓库") + @ExcelProperty("仓库") + private String warehouse; + + @ApiModelProperty(value = "收货单位") + @ExcelProperty("收货单位") + private String consigneeUnit; + + @ApiModelProperty(value = "运单号") + @ExcelProperty("运单号") + private String waybillNumber; + + @ApiModelProperty(value = "订单自编码") + @ExcelProperty("订单自编码") + private String orderCode; + + @ApiModelProperty(value = "包条") + @ExcelProperty("包条") + private String packetBarCode; + + @ApiModelProperty(value = "客户车次号") + @ExcelProperty("客户车次号") + private String trainNumber; + + @ApiModelProperty(value = "一级品") + @ExcelProperty("一级品") + private String firsts; + + @ApiModelProperty(value = "二级品") + @ExcelProperty("二级品") + private String second; + + @ApiModelProperty(value = "三级品") + @ExcelProperty("三级品") + private String thirdProduct; + + @ApiModelProperty(value = "物料编码") + @ExcelProperty("物料编码") + private String materialCode; + + @ApiModelProperty(value = "物料名称") + @ExcelProperty("物料名称") + private String materialName; + + @ApiModelProperty(value = "始发仓入库日期") + @ExcelProperty("始发仓入库日期") + private String startWareInTime; + + @ApiModelProperty(value = "始发仓发货日期") + @ExcelProperty("始发仓发货日期") + private String startWareOutTime; + + @ApiModelProperty(value = "入库时间") + @ExcelProperty("入库时间") + private String warehouseEntryTimeEnd; + + @ApiModelProperty(value = "提货扫码人") + @ExcelProperty("提货扫码人") + private String scanUser; + + @ApiModelProperty(value = "提货扫描时间") + @ExcelProperty("提货扫描时间") + private String scanTime; + + @ApiModelProperty(value = "文员复核时间") + @ExcelProperty("文员复核时间") + private String examineTime; + + @ApiModelProperty(value = "文员复核人") + @ExcelProperty("文员复核人") + private String examineUser; + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/StockDetailsVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/StockDetailsVO.java new file mode 100644 index 000000000..28a937cd2 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/StockDetailsVO.java @@ -0,0 +1,72 @@ +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; + +/** + * 库存品表 vo + * + * @author zhaoqiaobo + * @create 2024-03-06 16:02 + */ +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +@ApiModel(value = "库存品表", description = "库存品表") +@Data +public class StockDetailsVO 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 quantityStock; + + @ApiModelProperty(value = "出库总数") + @ExcelProperty("出库总数") + private String outboundQuantity; + + @ApiModelProperty(value = "当前库存") + @ExcelProperty("当前库存") + private String currentQuantity; + + @ApiModelProperty(value = "占用数") + @ExcelProperty("占用数") + private String quantityOccupied; + + @ApiModelProperty(value = "可用数") + @ExcelProperty("可用数") + private String usableQuantity; + + @ApiModelProperty(value = "货位信息") + @ExcelProperty("货位信息") + private String allocationTitle; + +}