From 91b56a541697d37df442d8cef96127e0c00880b0 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Fri, 8 Mar 2024 15:09:50 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E5=A4=87=E8=B4=A7=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DistributionStockupServiceImpl.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java index 3fa5793c1..8c1fe2a71 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java @@ -862,13 +862,18 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl Date: Fri, 8 Mar 2024 15:25:11 +0800 Subject: [PATCH 02/12] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E5=9C=A8=E5=BA=93?= =?UTF-8?q?=E8=BF=90=E5=8D=95=E6=8B=86=E5=8D=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IDistributionStockArticleClient.java | 6 ++-- .../feign/DistributionStockArticleClient.java | 10 +++--- .../DistributionStockArticleMapper.java | 2 ++ .../mapper/DistributionStockArticleMapper.xml | 9 +++++- .../IDistributionStockArticleService.java | 2 ++ .../DistributionStockArticleServiceImpl.java | 5 +++ .../impl/SyncOrderInfoServiceImpl.java | 5 +-- .../mapper/TrunklineCarsLoadScanMapper.xml | 4 +-- .../impl/TrunklineCarsLoadServiceImpl.java | 11 +++++-- .../WarehouseWaybillController.java | 13 ++++++-- .../warehouse/dto/WarehouseWaybillDTO.java | 1 + .../mapper/WarehouseWaybillMapper.xml | 6 ++++ .../impl/WarehouseWaybillServiceImpl.java | 32 ++++++++++++++----- 13 files changed, 80 insertions(+), 26 deletions(-) diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java index af16013b2..74929194e 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java @@ -69,7 +69,7 @@ public interface IDistributionStockArticleClient { void addHandQuantity(@RequestParam("id") Long id,@RequestParam("num") int num); @GetMapping(API_PREFIX + "/findByOrderSelfNum") - DistributionStockArticleEntity findByOrderSelfNum(@RequestParam String waybillNo); + DistributionStockArticleEntity findByOrderSelfNum(@RequestParam String orderCode,@RequestParam Long warehouseId); @GetMapping(API_PREFIX + "/deleteById") void deleteById(@RequestParam Long orderId); @@ -77,8 +77,8 @@ public interface IDistributionStockArticleClient { @GetMapping(API_PREFIX + "/submitHandQuantity") void submitHandQuantity(@RequestParam Integer allNum,@RequestParam Long articleId); - @GetMapping(API_PREFIX + "/likeOrderSelfNumbering") - List likeOrderSelfNumbering(@RequestParam String orderSelfNum); + @GetMapping(API_PREFIX + "/findListByOrderCodeLike") + List findListByOrderCodeLike(@RequestParam String orderCode); @GetMapping(API_PREFIX + "/findStockArticleByOrderCode") DistributionStockArticleEntity findStockArticleByOrderCode(@RequestParam String orderCode); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java index 7f8f9df67..639986d33 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java @@ -98,9 +98,10 @@ public class DistributionStockArticleClient implements IDistributionStockArticle } @Override - public DistributionStockArticleEntity findByOrderSelfNum(String waybillNo) { + public DistributionStockArticleEntity findByOrderSelfNum(String orderCode,Long warehouseId) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("waybill_number",waybillNo); + queryWrapper.eq("order_code",orderCode) + .eq("warehouse_id",warehouseId); return distributionStockArticleService.getOne(queryWrapper); } @@ -127,9 +128,8 @@ public class DistributionStockArticleClient implements IDistributionStockArticle } @Override - @GetMapping(API_PREFIX + "/likeOrderSelfNumbering") - public List likeOrderSelfNumbering(String orderSelfNum) { - return distributionStockArticleService.likeOrderSelfNumbering(orderSelfNum); + public List findListByOrderCodeLike(String orderCode) { + return distributionStockArticleService.findListByOrderCodeLike(orderCode); } @Override diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.java index 1140d0fd6..d974cd400 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.java @@ -177,4 +177,6 @@ public interface DistributionStockArticleMapper extends BaseMapper getOrderListByWaybill(@Param("waybillNumber") String waybillNumber); + + List findListByOrderCodeLike(@Param("orderCode") String orderCode); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml index 49488b181..88cbb17d0 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml @@ -66,7 +66,14 @@ + + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java index 8fe7de884..e884a75e6 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java @@ -227,4 +227,6 @@ public interface IDistributionStockArticleService extends BaseService findListByOrderCodeLike(String orderCode); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java index f3bbf326f..c0b38fea3 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java @@ -1729,6 +1729,11 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl findListByOrderCodeLike(String orderCode) { + return baseMapper.findListByOrderCodeLike(orderCode); + } + @Override public DistributionStockArticleEntity findZeroByOrderCodeAndWarehouseId(String orderCode, Long warehouseId) { diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java index 915324f7f..c6b513c97 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java @@ -716,11 +716,12 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService { String waybillNo = warehouseWaybill.getWaybillNo(); Long waybillId = warehouseWaybill.getId(); String destinationWarehouse = warehouseWaybill.getDestinationWarehouseName();//目的仓 + Long destinationWarehouseId = warehouseWaybill.getDestinationWarehouseId(); Integer totalCount = warehouseWaybill.getTotalCount();//订单总数量 Integer stockCount = warehouseWaybill.getStockCount();//订单在库数量 String consignee = warehouseWaybill.getConsignee(); - BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.findByName(destinationWarehouse); - DistributionStockArticleEntity distributionStockArticleEntity = distributionStockArticleClient.findByOrderSelfNum(waybillNo); + BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(destinationWarehouseId); + DistributionStockArticleEntity distributionStockArticleEntity = distributionStockArticleClient.findByOrderSelfNum(waybillNo,destinationWarehouseId); BasicdataClientEntity clientEntity = basicdataClientClient.findByName(consignee); Date date = new Date(); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml index 6fa9fdd01..37cb5259f 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml @@ -350,7 +350,7 @@ left join logpm_distribution_parcel_list ldpl on ldpl.order_package_code = ltcls.scan_code and ldpl.warehouse_id = ltcls.from_warehouse_id where ltcls.load_id = #{loadId} and ltcls.warehouse_id = #{warehouseId} - and ltcls.order_code = #{ordeCode} + and ltcls.order_code = #{orderCode} and ltcls.waybill_no = #{waybillNo} group by ldpl.firsts @@ -362,7 +362,7 @@ left join logpm_distribution_parcel_list ldpl on ldpl.order_package_code = ltcls.scan_code and ldpl.warehouse_id = ltcls.from_warehouse_id where ltcls.load_id = #{loadId} and (ltcls.final_node_id = #{warehouseId} or ltcls.unload_node_id = #{warehouseId}) - and ltcls.order_code = #{ordeCode} + and ltcls.order_code = #{orderCode} and ltcls.waybill_no = #{waybillNo} group by ldpl.firsts diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index bf9ffd283..be3e44246 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -726,6 +726,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl waybillNoList; + } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml index 6b90127fb..661c79b82 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml @@ -151,6 +151,12 @@ #{item} + + and (departure_warehouse_id = #{param.warehouseId} or destination_warehouse_id = #{param.warehouseId}) + + + and waybill_no = #{param.waybillNo} + order by create_time desc diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java index 8e8dcac17..199dc18b7 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java @@ -181,11 +181,12 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl products = splitOrderDTO.getProducts(); + for (ProductDTO product : products) { + total = total+ product.getSplitNum(); + } + } + + if(handQuantity < total){ + log.warn("##############splitOrder: 在库件数不足"); + throw new CustomerException(405,"在库件数不足"); + } + + String orderCode = distributionStockArticleEntity.getOrderCode(); Long orderId = distributionStockArticleEntity.getId(); Long warehouseId = distributionStockArticleEntity.getWarehouseId(); List submitList = new ArrayList<>(); - List articleList = distributionStockArticleClient.likeOrderSelfNumbering(orderSelfNum); - List parcelListEntityList = distributionParcelListClient.findEntityListByOrderCode(orderSelfNum, warehouseId); + List articleList = distributionStockArticleClient.findListByOrderCodeLike(orderCode); + List parcelListEntityList = distributionParcelListClient.findEntityListByOrderCode(orderCode, warehouseId); int size = articleList.size(); Integer subNum = 0; for (int i = 0; i < splitOrderDTOList.size(); i++) { SplitOrderDTO splitOrderDTO = splitOrderDTOList.get(i); DistributionStockArticleEntity entity = new DistributionStockArticleEntity(); BeanUtil.copyProperties(distributionStockArticleEntity, entity); + entity.setId(null); entity.setOrderCode(entity.getOrderCode() + "-" + size); entity.setCustomerName(splitOrderDTO.getCustomerPerson()); entity.setCustomerTelephone(splitOrderDTO.getCustomerMobile()); @@ -444,6 +459,7 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl Date: Fri, 8 Mar 2024 18:09:19 +0800 Subject: [PATCH 03/12] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E4=B8=8A=E6=9E=B6bug?= =?UTF-8?q?=202.=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96=E9=83=A8=E9=97=A8id?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../warehouse/vo/WarehouseWaybillVO.java | 1 + .../impl/BasicdataWarehouseServiceImpl.java | 10 ++-- .../WarehouseWaybillController.java | 23 ++++---- .../mapper/WarehouseWaybillMapper.java | 2 +- .../service/IWarehouseWaybillService.java | 2 +- .../impl/WarehouseUpdownTypeServiceImpl.java | 2 +- .../impl/WarehouseWaybillServiceImpl.java | 59 +++++++++++++------ 7 files changed, 62 insertions(+), 37 deletions(-) diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseWaybillVO.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseWaybillVO.java index 1210874b5..b1cde7216 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseWaybillVO.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/WarehouseWaybillVO.java @@ -37,5 +37,6 @@ public class WarehouseWaybillVO extends WarehouseWaybillEntity { List detailList = new ArrayList<>(); + private Integer handleNum; } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java index db00be6ce..9e6dd9fd9 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataWarehouseServiceImpl.java @@ -208,10 +208,12 @@ public class BasicdataWarehouseServiceImpl extends BaseServiceImpl userDeptNode = deptClient.getUserDeptNode(Long.parseLong(s)); diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java index fc8cbb6c6..b1d4f0039 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java @@ -94,19 +94,16 @@ public class WarehouseWaybillController extends BladeController { @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入warehouseWaybill") public R> list(@ApiIgnore @RequestParam Map warehouseWaybill, Query query) { -// QueryWrapper queryWrapper = Condition.getQueryWrapper(warehouseWaybill, WarehouseWaybillEntity.class); -// //获取当前登录人仓库 -// List myWatchWarehouse = basicdataWarehouseClient.getMyWatchWarehouse(); -// List collect = myWatchWarehouse.stream() -// .map(BasicdataWarehouseEntity::getId) -// .collect(Collectors.toList()); -// queryWrapper.lambda() -// .in(collect.size() > 0, WarehouseWaybillEntity::getDepartureWarehouseId, collect) -// .or() -// .in(collect.size() > 0, WarehouseWaybillEntity::getDestinationWarehouseId, collect); - - IPage pages = warehouseWaybillService.pageInfo(Condition.getPage(query), warehouseWaybill); - return R.data(WarehouseWaybillWrapper.build().pageVO(pages)); + + BasicdataWarehouseEntity basicdataWarehouseEntity = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(basicdataWarehouseEntity)){ + log.warn("################pageInfo: 请选择仓库"); + throw new CustomerException(405,"请选择仓库"); + } + warehouseWaybill.put("warehouseId",basicdataWarehouseEntity.getId()); + + IPage pages = warehouseWaybillService.pageInfo(Condition.getPage(query), warehouseWaybill); + return R.data(pages); } /** diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java index bc37c7968..e2ea97d0c 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java @@ -47,7 +47,7 @@ public interface WarehouseWaybillMapper extends BaseMapper exportWarehouseWarehousingDetail(@Param("ew") QueryWrapper queryWrapper); - IPage pageInfo(IPage page,@Param("param") WarehouseWaybillDTO warehouseWaybillDTO); + IPage pageInfo(IPage page,@Param("param") WarehouseWaybillDTO warehouseWaybillDTO); IPage pageList(IPage page, @Param("param") WarehouseWaybillDTO waybillDTO); diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java index f5d0343ad..35e629fd0 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java @@ -47,7 +47,7 @@ public interface IWarehouseWaybillService extends BaseService exportWarehouseWarehousingDetail(Map warehouseWaybillEntity); - IPage pageInfo(IPage page, Map warehouseWaybill); + IPage pageInfo(IPage page, Map warehouseWaybill); IPage pageList(WarehouseWaybillDTO waybillDTO); diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java index a9b667cb6..a9b29c915 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java @@ -2412,11 +2412,11 @@ public class WarehouseUpdownTypeServiceImpl extends BaseServiceImpl details = warehouseWayBillDetailService.findByWaybillId(waybillId); @@ -694,23 +695,39 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl pageInfo(IPage page, Map warehouseWaybill) { + public IPage pageInfo(IPage page, Map warehouseWaybill) { WarehouseWaybillDTO warehouseWaybillDTO = JSON.parseObject(JSONObject.toJSONString(warehouseWaybill), WarehouseWaybillDTO.class); -// QueryWrapper queryWrapper = Condition.getQueryWrapper(warehouseWaybill, WarehouseWaybillEntity.class); - //获取当前登录人仓库 - List myWatchWarehouse = basicdataWarehouseClient.getMyWatchWarehouse(); - List collect = myWatchWarehouse.stream() - .map(BasicdataWarehouseEntity::getId) - .collect(Collectors.toList()); -// queryWrapper.lambda() -// .in(collect.size() > 0, WarehouseWaybillEntity::getDepartureWarehouseId, collect) -// .or() -// .in(collect.size() > 0, WarehouseWaybillEntity::getDestinationWarehouseId, collect); - if(!collect.isEmpty()){ - warehouseWaybillDTO.setDepartureWarehouseIds(collect); - warehouseWaybillDTO.setDestinationWarehouseIds(collect); + + Long warehouseId = warehouseWaybillDTO.getWarehouseId(); + + IPage warehouseWaybillVOIPage = baseMapper.pageInfo(page, warehouseWaybillDTO); + + List records = warehouseWaybillVOIPage.getRecords(); + + for (WarehouseWaybillVO record : records) { + String deliveryMethodStr = DictBizCache.getValue(DictBizConstant.DELIVERY_METHOD, record.getDeliveryMethod()); + record.setDeliveryMethodStr(deliveryMethodStr); + String urgencyStr = DictBizCache.getValue(DictBizConstant.URGENCY, record.getUrgency()); + record.setUrgencyStr(urgencyStr); + String statsStr = DictBizCache.getValue(DictBizConstant.WAY_BILL_STATUS, record.getStats()); + record.setStatsStr(statsStr); + String typeStr = DictBizCache.getValue(DictBizConstant.DISTRIBUTION_TYPE, record.getServiceType()); + record.setServiceTypeStr(typeStr); + String freezeStatusStr = DictBizCache.getValue(DictBizConstant.FREEZE_STATUS, record.getFreezeStatus()); + record.setFreezeStatusStr(freezeStatusStr); + + Integer waybillType = record.getWaybillType(); + if(waybillType.equals(2)){ + String orderCode = record.getWaybillNo(); + DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId); + if(!Objects.isNull(stockArticleEntity)){ + record.setHandleNum(stockArticleEntity.getHandQuantity()); + } + } } - return baseMapper.pageInfo(page,warehouseWaybillDTO); + warehouseWaybillVOIPage.setRecords(records); + + return warehouseWaybillVOIPage; } @Override @@ -719,9 +736,17 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl pageList = baseMapper.pageList(page,waybillDTO); List records = pageList.getRecords(); for (WarehouseWaybillVO record : records) { +// Integer waybillType = record.getWaybillType(); +// if(waybillType.equals(2)){ +// String orderCode = record.getWaybillNo(); +// DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId); +// record.setHandleNum(stockArticleEntity.getHandQuantity()); +// } Long waybillId = record.getId(); List wayBillDetailList = warehouseWayBillDetailService.findByWaybillId(waybillId); record.setDetailList(wayBillDetailList); From d0b600cf7251956b3b066cb781fa7b746b86d5e1 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Fri, 8 Mar 2024 19:35:34 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E9=9B=B6=E6=8B=85=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DistributionReservationZeroPackageVO.java | 85 +++++++++++++++++++ .../DistributionDeliveryListController.java | 12 +++ .../mapper/DistributionReservationMapper.java | 12 ++- .../mapper/DistributionReservationMapper.xml | 37 ++++++++ .../IDistributionDeliveryInfoService.java | 9 ++ .../DistributionDeliveryInfoServiceImpl.java | 13 +++ .../impl/DistributionSignforServiceImpl.java | 31 ++++--- 7 files changed, 187 insertions(+), 12 deletions(-) diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationZeroPackageVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationZeroPackageVO.java index f6123d635..3f5e2112e 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationZeroPackageVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionReservationZeroPackageVO.java @@ -21,6 +21,8 @@ import org.springblade.core.tool.node.INode; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; + /** * 预约零担包件中间表 视图实体类 * @@ -32,4 +34,87 @@ import lombok.EqualsAndHashCode; public class DistributionReservationZeroPackageVO extends DistributionReservationZeroPackageEntity { private static final long serialVersionUID = 1L; + /** + * 货物名称 + */ + private String firsts; + + /** + * 运单号 + */ + private String waybillNumber; + + /** + * 订单号 + */ + private String orderCode; + + /** + * 服务号 + */ + private String serviceNumber; + + /** + * 包件总数 + */ + private Integer quantity; + /** + * 包件总数 + */ + private Long id; + + /** + * 包件预约状态 + */ + private String orderPackageReservationStatusName; + + /** + * 包件预约数量 + */ + private Integer reservationNum; + + /** + * 装车数量 + */ + private Integer loadingNum; + + /** + * 签收数量 + */ + private Integer signingNum; + + /** + * 包件装车状态 + */ + private String loadingStatusName; + + /** + * 包件签收状态 + */ + private String signingStatusName; + + /** + * 装车人 + */ + private String scanUser; + /** + * 签收人 + */ + private String signingUser; + + /** + * 装车扫描时间 + */ + private Date scanTime; + /** + * 签收扫描时间 + */ + private Date signingTime; + + + + + + + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java index d880ea602..96c25d516 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java @@ -115,6 +115,18 @@ public class DistributionDeliveryListController extends BladeController { return R.data(pages); } + + /** + * 查看库存品包件 详情 + */ + @GetMapping("/getReservationZeroPackageList") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查看包件详情", notes = "传入distributionDeliveryList") + public R> getReservationZeroPackageList(@RequestParam Map reservationPackageDTO, Query query) { + IPage pages = distributionDeliveryInfoService.getReservationZeroPackageList(reservationPackageDTO,Condition.getPage(query)); + return R.data(pages); + } + /** * 查看订单 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java index c3b60558e..5d123357d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java @@ -360,9 +360,17 @@ public interface DistributionReservationMapper extends BaseMapper selectZeroPackageByReservationInfo(@Param("param")Map reservationPackageDTO, IPage page); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml index 8e5a1f6d2..52beab8bf 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml @@ -1700,4 +1700,41 @@ resultType="com.logpm.distribution.entity.DistributionReservationEntity"> SELECT * FROM logpm_distribution_reservation WHERE reservation_code = #{reservationCode} AND warehouse_id = #{warehouseId} + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java index 7dbda9231..34b96820c 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java @@ -109,4 +109,13 @@ public interface IDistributionDeliveryInfoService extends BaseService getReservationPackageList(Map reservationPackageDTO, IPage page); + + /** + * 查询零担详情 + * @param reservationPackageDTO + * @param page + * @return + */ + IPage getReservationZeroPackageList(Map reservationPackageDTO, IPage page); + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java index 056a5436c..8f4ec9cb2 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java @@ -531,4 +531,17 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl getReservationZeroPackageList(Map reservationPackageDTO, IPage page) { + String method = "DistributionDeliveryInfoServiceImpl类,getReservationPackageList方法"; + if (Func.isEmpty(reservationPackageDTO.get("reservationId"))){ + //参数缺失 + log.error(method+"reservationId参数缺失"); + return null; + } + IPage reservationInventoryPackageVOIPage = distributionReservationMapper.selectZeroPackageByReservationInfo(reservationPackageDTO,page); + return reservationInventoryPackageVOIPage; + } + + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index 616b29bc2..f4824860f 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -1390,6 +1390,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl parcelNumberVOS = distributionReservationMapper.selectReservationZeroOrderDetail(orderId, Long.parseLong(distributionDeliveryList.getReservationId())); - parcelNumberVOS.forEach(p -> { - DistributionLoadscanEntity loadscanEntity = distributionLoadscanService.getOne(Wrappers.query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionDeliveryList.getReservationId()).eq(DistributionLoadscanEntity::getOrderId, orderId).eq(DistributionLoadscanEntity::getPackageId, p.getParcelListId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); - p.setLoadingNum(0); - p.setSigningNum(0); - if (Func.isNotEmpty(loadscanEntity)) { - p.setLoadingNum(loadscanEntity.getLoadedNub()); - if (loadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())) { - p.setSigningNum(loadscanEntity.getReceivedQuantity()); + distributionAppStockArticleVO.setSignforNub(0); + if (Func.isNotEmpty(parcelNumberVOS)){ + parcelNumberVOS.forEach(p -> { + DistributionLoadscanEntity loadscanEntity = distributionLoadscanService.getOne(Wrappers.query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionDeliveryList.getReservationId()).eq(DistributionLoadscanEntity::getOrderId, orderId).eq(DistributionLoadscanEntity::getPackageId, p.getParcelListId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); + p.setLoadingNum(0); + p.setSigningNum(0); + if (Func.isNotEmpty(loadscanEntity)) { + p.setLoadingNum(loadscanEntity.getLoadedNub()); + if (loadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())) { + p.setSigningNum(loadscanEntity.getReceivedQuantity()); + } } - } - }); + }); + distributionAppStockArticleVO.setDistributionParcelNumberVOS(parcelNumberVOS); + distributionAppStockArticleVO.setSignforNub(parcelNumberVOS.stream().mapToInt(DistributionParcelNumberVO::getSigningNum).sum()); + + } } } orderVos.add(distributionAppStockArticleVO); } + } return orderVos; From 151379b85cd63ef6eefb2e61aa3b4223ca1a0c9b Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Fri, 8 Mar 2024 21:36:45 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../distribution/mapper/DistributionReservationMapper.xml | 2 +- .../distribution/mapper/DistributionStockArticleMapper.xml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml index 52beab8bf..94d33b19b 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml @@ -1712,7 +1712,7 @@ ldpl.order_package_reservation_status AS orderPackageReservationStatusName, ldrzp.quantity AS reservationNum, IF(ldl.loaded_nub is null,0,ldl.loaded_nub) AS loadingNum, - ldrzp.quantity = IF(ldl.loaded_nub is null,0,ldl.loaded_nub) AS AS signingNum , + ldrzp.quantity = IF(ldl.loaded_nub is null,0,ldl.loaded_nub) AS signingNum , CASE IF(ldl.loaded_nub is null,0,ldl.loaded_nub) WHEN 0 THEN '待装车' ELSE IF(ldl.loaded_nub = ldrzp.quantity,'已装车','部分装车') diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml index 88cbb17d0..92e6ec4c3 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml @@ -616,7 +616,8 @@ ldsa.order_status in ('10','20','30','70') and ldsa.reservation_status in ('10','20') - AND (ldsa.incoming_num - ldsa.delivery_quantity) > 0 AND ldsa.hand_quantity > 0 + + AND ldsa.hand_quantity > 0 and ldsa.warehouse_id = #{par.warehouseId} From 795e69a26fe7d32583fdf91fa79b7124b34a2c49 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Sun, 10 Mar 2024 01:46:31 +0800 Subject: [PATCH 06/12] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E5=A4=87=E8=B4=A7?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../distribution/mapper/DistributionReservationMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml index 94d33b19b..29c1e3ba8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml @@ -314,8 +314,8 @@ t.cargoUnit AS cargoUnit, ldslNew.tray_name AS trayName, ldslNew.unpack AS unpack, - (SELECT SUM(aldrs.reality_num) FROM logpm_distribution_reservation_stocklist AS aldrs WHERE aldrs.reservation_id = #{reservationId} AND aldrs.stocklist_id in (t.aaa)) AS realNum, - (SELECT SUM(newldrs.reservation_num) FROM logpm_distribution_reservation_stocklist AS newldrs WHERE newldrs.reservation_id = #{reservationId} AND newldrs.stocklist_id in (t.aaa)) AS planNum, + (SELECT SUM(aldrs.reality_num) FROM logpm_distribution_reservation_stocklist AS aldrs WHERE aldrs.reservation_id = #{reservationId} AND FIND_IN_SET(aldrs.stocklist_id,t.aaa)) AS realNum, + (SELECT SUM(newldrs.reservation_num) FROM logpm_distribution_reservation_stocklist AS newldrs WHERE newldrs.reservation_id = #{reservationId} AND FIND_IN_SET(newldrs.stocklist_id,t.aaa)) AS planNum, ( select GROUP_CONCAT( DISTINCT (allocation_id)) from logpm_warehouse_updown_goods where association_value =ldslNew.cargo_number and warehouse_id=#{warehouseId} or association_value in ( SELECT order_package_code from logpm_distribution_parcel_list where conditions=2 and material_code=ldslNew.cargo_number and warehouse_id=#{warehouseId} ) From b03742e301e299cffc2531a5260476a85cf6d134 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Sun, 10 Mar 2024 21:07:17 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=93=81=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DistributionSignforServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index f4824860f..3649f55b0 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -240,12 +240,12 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl0){ -// zhuangchejianshu += list.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); -// weizhuangchejianshu += list.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.weizhuangche.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); -// qianshoujianshu += list.stream().filter(f -> f.getStockSignfoStatus().equals(InventorySigningStatusConstant.yiqianshou.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); -// weiqianshoujianshu += list.stream().filter(f -> f.getStockSignfoStatus().equals(InventorySigningStatusConstant.weiqianshou.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); -// } + if (Func.isNotEmpty(list) && list.size()>0){ + zhuangchejianshu += list.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); + weizhuangchejianshu += list.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.weizhuangche.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); + qianshoujianshu += list.stream().filter(f -> f.getStockSignfoStatus().equals(InventorySigningStatusConstant.yiqianshou.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); + weiqianshoujianshu += list.stream().filter(f -> f.getStockSignfoStatus().equals(InventorySigningStatusConstant.weiqianshou.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); + } if (Func.isNotEmpty(distributionParcelListEntities)) { weizhuangchejianshu += distributionParcelListEntities.stream().filter(f -> f.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum(); zhuangchejianshu += distributionParcelListEntities.stream().filter(f -> f.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.yizhuangche.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum(); From c9c306c4cda8081ec5ab265bc6d7887e02921324 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Sun, 10 Mar 2024 21:35:02 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E5=BE=85=E7=AD=BE=E6=94=B6=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=BA=93=E5=AD=98=E5=93=81=E6=95=B0=E9=87=8F=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DistributionSignforServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index 3649f55b0..b325fac67 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -242,9 +242,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl0){ zhuangchejianshu += list.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.yizhuangche.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); - weizhuangchejianshu += list.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.weizhuangche.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); +// weizhuangchejianshu += list.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.weizhuangche.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); qianshoujianshu += list.stream().filter(f -> f.getStockSignfoStatus().equals(InventorySigningStatusConstant.yiqianshou.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); - weiqianshoujianshu += list.stream().filter(f -> f.getStockSignfoStatus().equals(InventorySigningStatusConstant.weiqianshou.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); +// weiqianshoujianshu += list.stream().filter(f -> f.getStockSignfoStatus().equals(InventorySigningStatusConstant.weiqianshou.getValue())).mapToInt(DisStockListDetailEntity::getNum).sum(); } if (Func.isNotEmpty(distributionParcelListEntities)) { weizhuangchejianshu += distributionParcelListEntities.stream().filter(f -> f.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).mapToInt(DistributionParcelListEntity::getQuantity).sum(); From c9345510a79c3c67e7aa8dcf36c19373c1f651e2 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 11 Mar 2024 10:37:35 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E5=93=81=E9=A1=B5=E9=9D=A2=E5=88=86=E9=A1=B5=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E3=80=81=E7=AD=BE=E6=94=B6=E7=8A=B6=E6=80=81=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../distribution/mapper/DistributionStockListMapper.java | 2 +- .../service/impl/DistributionSignforServiceImpl.java | 7 ++++++- .../service/impl/DistributionStockListServiceImpl.java | 7 ++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java index 8f7cef4df..41fcf1452 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java @@ -101,7 +101,7 @@ public interface DistributionStockListMapper extends BaseMapper selectAllStockList(@Param("par")DistributionStockListDTO stockListDTO); + IPage selectAllStockList(@Param("par")DistributionStockListDTO stockListDTO, IPage page); /** * 查询库存平数据 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index b325fac67..94f213ea5 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -533,7 +533,12 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl stockListVOList = baseMapper.selectAllStockList(stockListDTO); - page.setRecords(stockListVOList); - return page; + IPage stockListVOList = baseMapper.selectAllStockList(stockListDTO,page); +// List stockListVOList = baseMapper.selectAllStockList(stockListDTO,page); +// page.setRecords(stockListVOList); + return stockListVOList; } /** From 8226f206ab280c8cc2eda65e83897708f9a7891a Mon Sep 17 00:00:00 2001 From: zhaoqiaobo Date: Mon, 11 Mar 2024 12:02:06 +0800 Subject: [PATCH 10/12] =?UTF-8?q?feat(all):=20=E6=96=B0=E5=A2=9E=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加配送车次报表 2 增加配送客户报表 3 增加配送明细报表 --- .../report/config/MybatisPlusConfig.java | 25 + .../controller/ReportDeliveryController.java | 110 +++++ .../report/mapper/ReportDeliverMapeer.java | 28 ++ .../report/mapper/ReportDeliverMapper.xml | 429 ++++++++++++++++++ .../report/reader/DeliveryCustomerReader.java | 36 ++ .../report/reader/DeliveryDetailReader.java | 36 ++ .../report/reader/DeliveryTrainReader.java | 36 ++ .../report/service/ExportReaderService.java | 31 ++ .../report/service/ReportDeliverService.java | 29 ++ .../impl/ReportDeliverServiceImpl.java | 82 ++++ .../logpm/report/util/ReportExcelUtil.java | 161 +++++++ .../com/logpm/report/vo/ReportCustomerVO.java | 143 ++++++ .../com/logpm/report/vo/ReportDetailVO.java | 191 ++++++++ .../com/logpm/report/vo/ReportDevilerVO.java | 119 +++++ 14 files changed, 1456 insertions(+) create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/config/MybatisPlusConfig.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryCustomerReader.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryTrainReader.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/service/ExportReaderService.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/util/ReportExcelUtil.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportCustomerVO.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDevilerVO.java diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/config/MybatisPlusConfig.java b/blade-service/logpm-report/src/main/java/com/logpm/report/config/MybatisPlusConfig.java new file mode 100644 index 000000000..1b22c3edc --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/config/MybatisPlusConfig.java @@ -0,0 +1,25 @@ +package com.logpm.report.config; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author zhaoqiaobo + * @create 2024-03-08 13:59 + */ +@Configuration +@MapperScan("com.baomidou.cloud.service.*.mapper*r") +public class MybatisPlusConfig { + + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor(){ + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); + return interceptor; + } + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java new file mode 100644 index 000000000..853d4b334 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java @@ -0,0 +1,110 @@ +/* + * 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.ReportDeliverService; +import com.logpm.report.vo.ReportCustomerVO; +import com.logpm.report.vo.ReportDetailVO; +import com.logpm.report.vo.ReportDevilerVO; +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("/reportDelivery") +@Api(value = "配送报表", tags = "配送报表") +public class ReportDeliveryController extends BladeController { + + private final ReportDeliverService reportDeliverService; + + @GetMapping("/train") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "配送车次报表", notes = "配送车次报表") + public R> deliveryTrainPage(ReportDevilerVO vo, Query query) { + IPage pages = reportDeliverService.deliveryTrainPage(vo, query); + return R.data(pages); + + } + + @GetMapping("/exportTrain") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "导出配送车次报表", notes = "导出配送车次报表") + public void exportTrain(HttpServletResponse response, ReportDevilerVO vo) { + try { + reportDeliverService.exportTrain(response, vo); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @GetMapping("/customer") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "配送客户报表", notes = "配送客户报表") + public R> customerPage(ReportCustomerVO vo, Query query) { + IPage pages = reportDeliverService.customerPage(vo, query); + return R.data(pages); + } + + @GetMapping("/exportCustomer") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "导出配送客户报表", notes = "导出配送客户报表") + public void exportCustomer(HttpServletResponse response, ReportCustomerVO vo) { + try { + reportDeliverService.exportCustomer(response, vo); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @GetMapping("/details") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "配送明细报表", notes = "配送明细报表") + public R> detailsPage(ReportDetailVO vo, Query query) { + IPage pages = reportDeliverService.detailsPage(vo, query); + return R.data(pages); + } + + @GetMapping("/exportDetails") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "导出配送明细报表", notes = "导出配送明细报表") + public void exportDetails(HttpServletResponse response, ReportDetailVO vo) { + try { + reportDeliverService.exportDetails(response, vo); + } catch (Exception e) { + e.printStackTrace(); + } + } + + +} 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 new file mode 100644 index 000000000..236cb0b09 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java @@ -0,0 +1,28 @@ +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; +import com.logpm.report.vo.ReportDetailVO; +import com.logpm.report.vo.ReportDevilerVO; +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 ReportDeliverMapeer extends BaseMapper { + + List getDeliveryTrainPage(IPage page, @Param("ew") Wrapper query); + + List getCustomerPage(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/ReportDeliverMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml new file mode 100644 index 000000000..bc2aac77c --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml @@ -0,0 +1,429 @@ + + + + + + + + + diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryCustomerReader.java b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryCustomerReader.java new file mode 100644 index 000000000..9aa452e30 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryCustomerReader.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.ReportDeliverMapeer; +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 DeliveryCustomerReader implements ExportReaderService { + + @Resource + private ReportDeliverMapeer reportDeliverMapeer; + + @Override + public Long getCount(QueryWrapper query) { + Page page = new Page(1, 1); + reportDeliverMapeer.getCustomerPage(page, query); + return page.getTotal(); + } + + @Override + public List findList(Page page, QueryWrapper query) { + return reportDeliverMapeer.getCustomerPage(page,query); + } + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java new file mode 100644 index 000000000..e69075840 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.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.ReportDeliverMapeer; +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 DeliveryDetailReader implements ExportReaderService { + + @Resource + private ReportDeliverMapeer reportDeliverMapeer; + + @Override + public Long getCount(QueryWrapper query) { + Page page = new Page(1, 1); + reportDeliverMapeer.getDetailsPage(page, query); + return page.getTotal(); + } + + @Override + public List findList(Page page, QueryWrapper query) { + return reportDeliverMapeer.getDetailsPage(page,query); + } + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryTrainReader.java b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryTrainReader.java new file mode 100644 index 000000000..23e02e294 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryTrainReader.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.ReportDeliverMapeer; +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 DeliveryTrainReader implements ExportReaderService { + + @Resource + private ReportDeliverMapeer reportDeliverMapeer; + + @Override + public Long getCount(QueryWrapper query) { + Page page = new Page(1, 1); + reportDeliverMapeer.getDeliveryTrainPage(page, query); + return page.getTotal(); + } + + @Override + public List findList(Page page, QueryWrapper query) { + return reportDeliverMapeer.getDeliveryTrainPage(page,query); + } + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/ExportReaderService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/ExportReaderService.java new file mode 100644 index 000000000..49f41231c --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/ExportReaderService.java @@ -0,0 +1,31 @@ +package com.logpm.report.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.poi.ss.formula.functions.T; + +import java.util.List; + +/** + * 导出数据读取器接口 + * @author zhaoqiaobo + * @create 2024-03-07 18:14 + */ +public interface ExportReaderService { + + /** + * 导出的总条数 + * @param query 分页查询对象 + * @return + */ + Long getCount(QueryWrapper query); + + /** + * 导出数据的分页查询 + * @param page 分页对象 + * @param query 分页查询对象 + * @return + */ + List findList(Page page, QueryWrapper query); + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java new file mode 100644 index 000000000..faa625f45 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java @@ -0,0 +1,29 @@ +package com.logpm.report.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.logpm.report.vo.ReportCustomerVO; +import com.logpm.report.vo.ReportDetailVO; +import com.logpm.report.vo.ReportDevilerVO; +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 ReportDeliverService { + + IPage deliveryTrainPage(ReportDevilerVO vo, Query query); + + void exportTrain(HttpServletResponse response, ReportDevilerVO vo) throws InterruptedException, IOException; + + IPage customerPage(ReportCustomerVO vo, Query query); + + void exportCustomer(HttpServletResponse response, ReportCustomerVO vo) throws InterruptedException, IOException; + + IPage detailsPage(ReportDetailVO vo, Query query); + + void exportDetails(HttpServletResponse response, ReportDetailVO vo) throws InterruptedException, IOException; +} 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 new file mode 100644 index 000000000..4fff68589 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java @@ -0,0 +1,82 @@ +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.ReportDeliverMapeer; +import com.logpm.report.reader.DeliveryCustomerReader; +import com.logpm.report.reader.DeliveryDetailReader; +import com.logpm.report.reader.DeliveryTrainReader; +import com.logpm.report.service.ReportDeliverService; +import com.logpm.report.util.ReportExcelUtil; +import com.logpm.report.vo.ReportCustomerVO; +import com.logpm.report.vo.ReportDetailVO; +import com.logpm.report.vo.ReportDevilerVO; +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 ReportDeliverServiceImpl implements ReportDeliverService { + + private final ReportDeliverMapeer reportDeliverMapeer; + private final DeliveryTrainReader deliveryTrainReader; + private final DeliveryCustomerReader deliveryCustomerReader; + private final DeliveryDetailReader deliveryDetailReader; + + @Override + public IPage deliveryTrainPage(ReportDevilerVO vo, Query query) { + IPage page = Condition.getPage(query); + Map stringObjectMap = BeanUtil.beanToMap(vo); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportDevilerVO.class); + return page.setRecords(reportDeliverMapeer.getDeliveryTrainPage(page, queryWrapper)); + } + + @Override + public void exportTrain(HttpServletResponse response,ReportDevilerVO vo) throws InterruptedException, IOException { + Map stringObjectMap = BeanUtil.beanToMap(vo); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportDevilerVO.class); + new ReportExcelUtil().export(response, deliveryTrainReader, ReportDevilerVO.class, queryWrapper, "配送车次维度报表"); + } + + @Override + public IPage customerPage(ReportCustomerVO vo, Query query) { + IPage page = Condition.getPage(query); + Map stringObjectMap = BeanUtil.beanToMap(vo); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportDevilerVO.class); + return page.setRecords(reportDeliverMapeer.getCustomerPage(page, queryWrapper)); + } + + @Override + public void exportCustomer(HttpServletResponse response, ReportCustomerVO vo) throws InterruptedException, IOException { + Map stringObjectMap = BeanUtil.beanToMap(vo); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportDevilerVO.class); + new ReportExcelUtil().export(response, deliveryCustomerReader, ReportCustomerVO.class, queryWrapper, "配送客户维度报表"); + } + + @Override + public IPage detailsPage(ReportDetailVO vo,Query query) { + IPage page = Condition.getPage(query); + Map stringObjectMap = BeanUtil.beanToMap(vo); + QueryWrapper queryWrapper = Condition.getQueryWrapper(stringObjectMap, ReportDevilerVO.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); + new ReportExcelUtil().export(response, deliveryDetailReader, ReportDetailVO.class, queryWrapper, "配送明细报表"); + } + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/util/ReportExcelUtil.java b/blade-service/logpm-report/src/main/java/com/logpm/report/util/ReportExcelUtil.java new file mode 100644 index 000000000..a6254c390 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/util/ReportExcelUtil.java @@ -0,0 +1,161 @@ +package com.logpm.report.util; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.logpm.report.service.ExportReaderService; +import org.apache.poi.ss.formula.functions.T; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * excel导出工具类 + * + * @author zhaoqiaobo + * @create 2024-03-06 17:48 + */ +public class ReportExcelUtil { + + public static final String CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + public static final String CONTENT_TYPE_ECXCEL = "application/vnd.ms-excel"; + /** + * 每个sheet装多少条数据 + */ + public static final Long SHEETDATANUM = 1000000L; + /** + * 每次查询几条数据 + */ + public static final Long PAGESIZE = 50000L; + + /** + * 设置excel导出的返回头 + * @param response HttpServletResponse对象 + * @param fileName 文件名 + */ + public static void setExportHeader(HttpServletResponse response, String fileName) { + response.setContentType(CONTENT_TYPE); + response.setCharacterEncoding(StandardCharsets.UTF_8.name()); + try { + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } + + /** + * 多线程导出数据到excel 带默认参数 pageSize onceSheetDataNum + * @param response + * @param service + * @param classz + * @param query + * @param fileName + */ + public void export(HttpServletResponse response, ExportReaderService service, Class classz, QueryWrapper query, String fileName) { + export(response, service, classz, query, fileName, PAGESIZE, SHEETDATANUM); + } + + /** + * 多线程导出数据到excel + * 注意事项: + * 1 需要定义导出数据读取器,实现 ExportReaderService 接口.实现接口中的两个方法 + * + * @param response HttpServletResponse对象 + * @param service ExportReaderService读取器接口实现类 + * @param classz easyexcel 导出数据定义对象 + * @param query 数据查询对象 + * @param fileName 导出文件名称 + * @param pageSize 每次查询多少条数据 + * @param onceSheetDataNum 一个sheet页最大装多少条数据 + */ + public void export(HttpServletResponse response, ExportReaderService service, Class classz, QueryWrapper query, String fileName, Long pageSize, Long onceSheetDataNum) { + // 设置响应头 + ReportExcelUtil.setExportHeader(response, fileName); + // 获取需要导出的总条数 + Long count = service.getCount(query); + // 每个 sheet 放多少条数据 + Double sheetDataNum = onceSheetDataNum.doubleValue(); + // 总共要几个 sheet + int sheetNum = (int) Math.ceil((count / sheetDataNum)); + // 总共需要查询数据库几次 + int findNum = (int) Math.ceil((count / pageSize.doubleValue())); + // 封装查询后需要导出的数据 + Map> pageMap = new HashMap<>(); + // 定义线程池,每个大表导出使用一个线程池 + ExecutorService executorService = Executors.newFixedThreadPool(findNum); + // 控制线程全部查询完后执行导出操作 + CountDownLatch countDownLatch = new CountDownLatch(findNum); + ExcelWriter excelWriter = null; + try { + // 创建 excelWriter + excelWriter = EasyExcel.write(response.getOutputStream(), classz).build(); + } catch (IOException e) { + e.printStackTrace(); + } + int num = 0; + for (int i = 0; i < sheetNum; i++) { + // sheet编号 + int finalI = i + 1; + // 每页需要查几次 + long l = count - (pageSize * num); + long ceil = l > pageSize ? (int) Math.ceil(onceSheetDataNum / pageSize.doubleValue()) : (int) Math.ceil(l / pageSize.doubleValue()); + for (int j = 0; j < ceil; j++) { + // 已经查询过几次了 + int finalNum = num; + // 查询次数+1 + num = num + 1; + // 提交线程执行查询 + executorService.submit(() -> { + // 剩余数据 + long remaindNum = count - (finalNum * pageSize); + // 当前第几次查询 + int current = finalNum + 1; + // 当前查询需要查询几条数据 + long lastNum = remaindNum > pageSize ? pageSize : remaindNum; + // 分页查询对象 + Page page = new Page(current, lastNum); + // 执行查询操作返回数据 + List deliveryTrainPage = service.findList(page, query); + // 获取组装的数据列表 + List reportDevilerVOS = pageMap.get(finalI); + // 将查询数据添加到本地缓存 + if (CollectionUtil.isEmpty(reportDevilerVOS)) { + pageMap.put(finalI, deliveryTrainPage); + } else { + pageMap.get(finalI).addAll(deliveryTrainPage); + } + // 当前线程执行完成 + countDownLatch.countDown(); + }); + } + } + try { + // 等待其他线程执行完成 + countDownLatch.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 分sheet向excel中写数据, + for (Map.Entry> entry : pageMap.entrySet()) { + Integer key = entry.getKey(); + List value = entry.getValue(); + WriteSheet writeSheet = EasyExcel.writerSheet(key, "sheet" + key).build(); + excelWriter.write(value, writeSheet); + } + // 关闭流 + excelWriter.finish(); + } + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportCustomerVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportCustomerVO.java new file mode 100644 index 000000000..5b08d7075 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportCustomerVO.java @@ -0,0 +1,143 @@ +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 ReportCustomerVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "车次") + @ExcelProperty("车次") + private String trainNumber; + + @ApiModelProperty(value = "预约单号") + @ExcelProperty("预约单号") + private String reservationCode; + + @ApiModelProperty(value = "订单自编码") + @ExcelProperty("订单自编码") + private String stockArticleId; + + @ApiModelProperty(value = "配送日期") + @ExcelProperty("配送日期") + private String taskTime; + + @ApiModelProperty(value = "仓库") + @ExcelProperty("仓库") + private String warehouseName; + + @ApiModelProperty(value = "收货单位") + @ExcelProperty("收货单位") + private String receivingUnit; + + @ApiModelProperty(value = "商场名称") + @ExcelProperty("商场名称") + private String mallName; + + @ApiModelProperty(value = "客户名称") + @ExcelProperty("客户名称") + private String consignee; + + @ApiModelProperty(value = "客户电话") + @ExcelProperty("客户电话") + private String deliveryPhone; + + @ApiModelProperty(value = "地址") + @ExcelProperty("地址") + private String deliveryAddress; + + @ApiModelProperty(value = "配送类型") + @ExcelProperty("配送类型") + private String type; + + @ApiModelProperty(value = "配送种类") + @ExcelProperty("配送种类") + private String kind; + + @ApiModelProperty(value = "配送车辆") + @ExcelProperty("配送车辆") + private String vehicleName; + + @ApiModelProperty(value = "配送司机") + @ExcelProperty("配送司机") + private String driverName; + + @ApiModelProperty(value = "配送公司") + @ExcelProperty("配送公司") + private String distributionCompany; + + @ApiModelProperty(value = "配送状态") + @ExcelProperty("配送状态") + private String deliveryStatus; + + @ApiModelProperty(value = "订单总数") + @ExcelProperty("订单总数") + private String orderNumber; + + @ApiModelProperty(value = "计划定制品件数") + @ExcelProperty("计划定制品件数") + private String reservationNum; + + @ApiModelProperty(value = "计划库存品件数") + @ExcelProperty("计划库存品件数") + private String reservationStockListNum; + + @ApiModelProperty(value = "定制品装车件数") + @ExcelProperty("定制品装车件数") + private String loadedNum; + + @ApiModelProperty(value = "库存品装车件数") + @ExcelProperty("库存品装车件数") + private String invnLoadedNum; + + @ApiModelProperty(value = "异常装车件数") + @ExcelProperty("异常装车件数") + private String exLoadedNum; + + @ApiModelProperty(value = "定制品签收件数") + @ExcelProperty("定制品签收件数") + private String reNum; + + @ApiModelProperty(value = "库存品签收件数") + @ExcelProperty("库存品签收件数") + private String invnReNum; + + @ApiModelProperty(value = "异常签收件数") + @ExcelProperty("异常签收件数") + private String exReNum; + + @ApiModelProperty(value = "司机完成签收时间") + @ExcelProperty("司机完成签收时间") + private String sjsigningTime; + + @ApiModelProperty(value = "签收人") + @ExcelProperty("签收人") + private String signeeName; + + @ApiModelProperty(value = "文员复核时间") + @ExcelProperty("文员复核时间") + private String signingTime; + + @ApiModelProperty(value = "复核人") + @ExcelProperty("复核人") + private String examineUserName; + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java new file mode 100644 index 000000000..bc0132a9b --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java @@ -0,0 +1,191 @@ +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 ReportDetailVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "车次") + @ExcelProperty("车次") + private String trainNumber; + + @ApiModelProperty(value = "预约单号") + @ExcelProperty("预约单号") + private String reservationCode; + + @ApiModelProperty(value = "配送日期") + @ExcelProperty("配送日期") + private String taskTime; + + @ApiModelProperty(value = "仓库") + @ExcelProperty("仓库") + private String warehouseName; + + @ApiModelProperty(value = "配送类型") + @ExcelProperty("配送类型") + private String type; + + @ApiModelProperty(value = "配送种类") + @ExcelProperty("配送种类") + private String kind; + + @ApiModelProperty(value = "配送车辆") + @ExcelProperty("配送车辆") + private String vehicleName; + + @ApiModelProperty(value = "配送司机") + @ExcelProperty("配送司机") + private String driverName; + + @ApiModelProperty(value = "配送公司") + @ExcelProperty("配送公司") + private String distributionCompany; + + @ApiModelProperty(value = "客户名称") + @ExcelProperty("客户名称") + private String drConsignee; + + @ApiModelProperty(value = "客户电话") + @ExcelProperty("客户电话") + private String deliveryPhone; + + @ApiModelProperty(value = "地址") + @ExcelProperty("地址") + private String deliveryAddress; + + @ApiModelProperty(value = "运单收货单位") + @ExcelProperty("运单收货单位") + private String consignee; + + @ApiModelProperty(value = "运单收货人") + @ExcelProperty("运单收货人") + private String consigneeName; + + @ApiModelProperty(value = "运单收货电话") + @ExcelProperty("运单收货电话") + private String consigneeMobile; + + @ApiModelProperty(value = "运单号") + @ExcelProperty("运单号") + private String waybillNo; + + @ApiModelProperty(value = "订单自编码") + @ExcelProperty("订单自编码") + private String stockArticleId; + + @ApiModelProperty(value = "客户电话") + @ExcelProperty("包条码") + private String orderPackageCode; + + @ApiModelProperty(value = "客户车次号") + @ExcelProperty("客户车次号") + private String customerTrain; + + @ApiModelProperty(value = "包件类型") + @ExcelProperty("包件类型") + private String conditions; + + @ApiModelProperty(value = "一级品") + @ExcelProperty("一级品") + private String firsts; + + @ApiModelProperty(value = "二级品") + @ExcelProperty("二级品") + private String decond; + + @ApiModelProperty(value = "三级品") + @ExcelProperty("三级品") + private String thirdProduct; + + @ApiModelProperty(value = "物料编码") + @ExcelProperty("物料编码") + private String materialCode; + + @ApiModelProperty(value = "物料名称") + @ExcelProperty("物料名称") + private String materialName; + + @ApiModelProperty(value = "始发仓") + @ExcelProperty("始发仓") + private String startWar; + + @ApiModelProperty(value = "始发仓入库日期") + @ExcelProperty("始发仓入库日期") + private String startWarInTime; + + @ApiModelProperty(value = "始发仓发货日期") + @ExcelProperty("始发仓发货日期") + private String startWarOutTime; + + @ApiModelProperty(value = "入库时间") + @ExcelProperty("入库时间") + private String warehouseEntryTimeEnd; + + @ApiModelProperty(value = "装车时间") + @ExcelProperty("装车时间") + private String unloadTime; + + @ApiModelProperty(value = "装车人") + @ExcelProperty("装车人") + private String unAdministratorsName; + + @ApiModelProperty(value = "签收时间") + @ExcelProperty("签收时间") + private String sjsigningTime; + + @ApiModelProperty(value = "签收人") + @ExcelProperty("签收人") + private String ldsSigneeName; + + @ApiModelProperty(value = "文员审核状态") + @ExcelProperty("文员审核状态") + private String signingStatus; + + @ApiModelProperty(value = "文员审核时间") + @ExcelProperty("文员审核时间") + private String signingTime; + + @ApiModelProperty(value = "审核人名称") + @ExcelProperty("审核人名称") + private String examineUserName; + + @ApiModelProperty(value = "是否异常签收") + @ExcelProperty("是否异常签收") + private String abnormalSigning; + + @ApiModelProperty(value = "是否异常装车") + @ExcelProperty("是否异常装车") + private String abnormalLoading; + + @ApiModelProperty(value = "异常审核状态") + @ExcelProperty("异常审核状态") + private String auditingStatus; + + @ApiModelProperty(value = "审核人") + @ExcelProperty("审核人") + private String auditingUser; + + @ApiModelProperty(value = "审核时间") + @ExcelProperty("审核时间") + private String auditingTime; + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDevilerVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDevilerVO.java new file mode 100644 index 000000000..c7348d1d4 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDevilerVO.java @@ -0,0 +1,119 @@ +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 ReportDevilerVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "车次") + @ExcelProperty("车次") + private String trainNumber; + + @ApiModelProperty(value = "配送日期") + @ExcelProperty("配送日期") + private String taskTime; + + @ApiModelProperty(value = "仓库") + @ExcelProperty("仓库") + private String warehouseName; + + @ApiModelProperty(value = "配送类型") + @ExcelProperty("配送类型") + private String type; + + @ApiModelProperty(value = "配送种类") + @ExcelProperty("配送种类") + private String kind; + + @ApiModelProperty(value = "配送车辆") + @ExcelProperty("配送车辆") + private String vehicleName; + + @ApiModelProperty(value = "配送司机") + @ExcelProperty("配送司机") + private String driverName; + + @ApiModelProperty(value = "配送公司") + @ExcelProperty("配送公司") + private String distributionCompany; + + @ApiModelProperty(value = "配送状态") + @ExcelProperty("配送状态") + private String deliveryStatus; + + @ApiModelProperty(value = "配送客户数") + @ExcelProperty("配送客户数") + private String customersNumber; + + @ApiModelProperty(value = "配送价格") + @ExcelProperty("配送价格") + private String price; + + @ApiModelProperty(value = "订单总数") + @ExcelProperty("订单总数") + private String orderNumber; + + @ApiModelProperty(value = "计划定制品件数") + @ExcelProperty("计划定制品件数") + private String reservationNum; + + @ApiModelProperty(value = "计划库存品件数") + @ExcelProperty("计划库存品件数") + private String reservationStockListNum; + + @ApiModelProperty(value = "定制品装车件数") + @ExcelProperty("定制品装车件数") + private String loadedNum; + + @ApiModelProperty(value = "库存品装车件数") + @ExcelProperty("库存品装车件数") + private String invnLoadedNum; + + @ApiModelProperty(value = "异常装车件数") + @ExcelProperty("异常装车件数") + private String exLoadedNum; + + @ApiModelProperty(value = "定制品签收件数") + @ExcelProperty("定制品签收件数") + private String reNum; + + @ApiModelProperty(value = "库存品签收件数") + @ExcelProperty("库存品签收件数") + private String invnReNum; + + @ApiModelProperty(value = "异常签收件数") + @ExcelProperty("异常签收件数") + private String exReNum; + + @ApiModelProperty(value = "签收完成客户数") + @ExcelProperty("签收完成客户数") + private String dsNum; + + @ApiModelProperty(value = "文员复核客户数") + @ExcelProperty("文员复核客户数") + private String ssNum; + + @ApiModelProperty(value = "卸车班组名称") + @ExcelProperty("卸车班组名称") + private String unloadingTeamName; + +} From a590fb41e63175d7b2f92914d85df4085aff50a1 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 11 Mar 2024 14:23:28 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E5=8C=85=E4=BB=B6=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logpm/distribution/mapper/DistributionReservationMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml index 29c1e3ba8..5aa19732d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml @@ -1456,7 +1456,7 @@ ldrs.reservation_id = #{reservationId} and ldrs.stocklist_id = #{stockListId}