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-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-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-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/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/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..b5a1269a5 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} ) @@ -1456,7 +1456,7 @@ ldrs.reservation_id = #{reservationId} and ldrs.stocklist_id = #{stockListId} + 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..1a584c05e 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 @@ + + + @@ -580,7 +587,7 @@ ldsa.create_time, ldsa.update_user, ldsa.update_time, - (ldsa.incoming_num - ldsa.delivery_quantity ) AS handQuantity, + ldsa.hand_quantity AS handQuantity, ldsa.status, ldsa.is_deleted, ldsa.create_dept, ldsa.reserve1, ldsa.reserve2, ldsa.reserve3, ldsa.reserve4, ldsa.reserve5, ldsa.service_number, ldsa.order_code, @@ -609,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} 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/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/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/DistributionAsyncServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java index db4f47d88..8e3e259df 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java @@ -2236,6 +2236,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { } @Override + @Transactional public void changeOrderReservationStatus(DistributionStockArticleDTO stockArticleDTO) { Long id = stockArticleDTO.getId(); DistributionStockArticleEntity stockArticleEntity = Func.copy(stockArticleDTO, DistributionStockArticleEntity.class); @@ -2258,9 +2259,14 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { List parcelNumberEntities = distributionParcelNumberService.list(Wrappers.query().lambda() .eq(DistributionParcelNumberEntity::getStockArticleId, stockArticleDTO.getId())); AtomicInteger unavailableNum = new AtomicInteger(); - parcelNumberEntities.forEach(p -> { - unavailableNum.getAndAdd(p.getOutboundQuantity() + p.getDeliveryQuantity()); - }); +// parcelNumberEntities.forEach(p -> { +// unavailableNum.getAndAdd(p.getOutboundQuantity() + p.getDeliveryQuantity()); +// }); + if (Func.isNotEmpty(parcelNumberEntities)){ + int sum = parcelNumberEntities.stream().mapToInt(p -> p.getOutboundQuantity() + p.getDeliveryQuantity()).sum(); + unavailableNum.getAndAdd(sum); + log.info("################零担包件当前不可用数量:{}",sum); + } if (unavailableNum.get() == stockArticleDTO.getHandQuantity()) { stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); } else if (unavailableNum.get() < stockArticleDTO.getHandQuantity()) { 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..7d003ae84 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/DistributionReservationServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java index c2eacab9d..6c34c7517 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java @@ -2266,6 +2266,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl0){ -// zhuangchejianshu += list.stream().filter(f -> f.getStockLockingStatus().equals(InventoryLoadingStatusConstant.yizhuangche.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(); + 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(); @@ -533,7 +533,12 @@ 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; @@ -2956,7 +2972,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl parcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(distributionAppDeliveryListVO.getId()); distributionAppDeliveryListVO.setInventoryNub(0); - distributionAppDeliveryListVO.setDeliveryNumber(0); +// distributionAppDeliveryListVO.setDeliveryNumber(0); AtomicInteger deliveryNub = new AtomicInteger(); if (Func.isNotEmpty(inventory)) { int inventoryNub = inventory.stream().mapToInt(DisStockListDetailEntity::getNum).sum(); @@ -3081,6 +3097,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl findListByOrderCodeLike(String orderCode) { + return baseMapper.findListByOrderCodeLike(orderCode); + } + @Override public DistributionStockArticleEntity findZeroByOrderCodeAndWarehouseId(String orderCode, Long warehouseId) { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java index 623312356..431f446c4 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java @@ -649,9 +649,10 @@ public class DistributionStockListServiceImpl 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; } /** 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> 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; + +} 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> 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); } /** @@ -171,6 +168,13 @@ public class WarehouseWaybillController extends BladeController { log.warn("################splitOrder: 没有拆单数据"); return R.fail(405, "没有拆单数据"); } + + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn("##############splitOrder: 请选择仓库"); + return R.fail(405,"请选择仓库"); + } + Long warehouseId = myCurrentWarehouse.getId(); String waybillNo = splitOrderDTOList.get(0).getWaybillNo();//运单号 //查询运单 WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillService.findByWaybillNo(waybillNo); @@ -186,10 +190,10 @@ public class WarehouseWaybillController extends BladeController { // return R.fail(405,"在库数量不等于总数量"); // } //判断运单对应的订单是否已经 - DistributionStockArticleEntity distributionStockArticleEntity = distributionStockArticleClient.findByOrderSelfNum(waybillNo); + DistributionStockArticleEntity distributionStockArticleEntity = distributionStockArticleClient.findByOrderSelfNum(waybillNo,warehouseId); if (Objects.isNull(distributionStockArticleEntity)) { - log.warn("################splitOrder: 当前在库订单已转库存品,不能拆单 waybillNo={}", waybillNo); - return R.fail(405, "当前在库订单已转库存品"); + log.warn("################splitOrder: 当前在库订单信息不存在,不能拆单 waybillNo={}", waybillNo); + return R.fail(405, "当前在库订单信息不存在"); } String isZero = distributionStockArticleEntity.getIsZero(); if(!isZero.equals("1")){ diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java index 21f35542f..35da651d1 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java @@ -44,4 +44,5 @@ public class WarehouseWaybillDTO extends WarehouseWaybillEntity { private List waybillNoList; + } 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/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/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); @@ -409,18 +411,32 @@ 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 +460,7 @@ 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 @@ -703,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);