diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.java index 78c0a5517..451486fbf 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.java @@ -10,9 +10,9 @@ import java.util.List; @Mapper public interface InLibraryDeliverMapper extends BaseMapper { - Integer obtainTheNumberOfInventoryListings (@Param("id") Long id); + Integer obtainTheNumberOfInventoryListings (Long warehouseId); - Integer theNumberOfShelvesInTheLibrary(@Param("id") Long id , Integer order_package_grounding_status); + Integer theNumberOfShelvesInTheLibrary(Long warehouseId , Integer order_package_grounding_status); // Integer quantityInTransit(@Param("id") Long id,) } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.xml index 0d4f8db00..bc9286f45 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.xml @@ -2,25 +2,26 @@ diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.java index 2c7644811..26143d694 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.java @@ -1,27 +1,33 @@ package com.logpm.report.mapper; +import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + @Mapper public interface IndexCountMapper { /** * 所有异常工单数量 */ - public Integer numberOfAbnormalWorkOrdersInTheMonth(@Param("warehouseId") Long warehouseId); + Integer numberOfAbnormalWorkOrdersInTheMonth(@Param("warehouseId") Long warehouseId); /** * 待处理的异常工单数量 */ - public Integer numberOfAbnormalWorkOrdersAndWaitHandleInTheMonth(@Param("warehouseId") Long warehouseId, @Param("status") String status); + Integer numberOfAbnormalWorkOrdersAndWaitHandleInTheMonth(@Param("warehouseId") Long warehouseId, @Param("status") String status); /** * 出库数量 */ - public Integer outboundQuantity(@Param("warehouseId") Long warehouseId, String orderPackageStatus); + @MapKey(value = "typeService") + List> outboundQuantityInTheMonth(@Param("warehouseId") Long warehouseId, String orderPackageStatus); /** * 入库数量 */ - public Integer inboundQuantity(@Param("warehouseId") Long warehouseId, String orderPackageStatus); + @MapKey(value = "typeService") + List> inboundQuantityInTheMonth(@Param("warehouseId") Long warehouseId, String orderPackageStatus); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.xml index 6cd3ab60f..ebc2728c2 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.xml @@ -33,13 +33,18 @@ - and a.order_package_status > #{orderPackageStatus} GROUP BY b.type_service - and a.order_package_status #{orderPackageStatus} GROUP BY b.type_service diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/IndexCountService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IndexCountService.java index eef908437..205658d90 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/IndexCountService.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IndexCountService.java @@ -1,6 +1,7 @@ package com.logpm.report.service; import com.logpm.report.vo.IndexCountVO; +import com.logpm.report.vo.indexCount.InboundAndOutboundQuantityVO; import com.logpm.report.vo.indexCount.QuantityAbnormalWorkOrdersVO; /** @@ -8,7 +9,19 @@ import com.logpm.report.vo.indexCount.QuantityAbnormalWorkOrdersVO; */ public interface IndexCountService { - public IndexCountVO indexCount(Long warehouseId); + IndexCountVO indexCount(Long warehouseId); - public QuantityAbnormalWorkOrdersVO numberOfAbnormalWorkOrdersTheMonth(Long warehouseId); + /** + * 当月异常工单数量 + * @param warehouseId + * @return + */ + QuantityAbnormalWorkOrdersVO numberOfAbnormalWorkOrdersTheMonth(Long warehouseId); + + /** + * 当月出入库数量 + * @param warehouseId + * @return + */ + InboundAndOutboundQuantityVO inboundAndOutboundQuantityTheMonth(Long warehouseId); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/InLibraryDeliverServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/InLibraryDeliverServiceImpl.java index 1e0f70b26..6542c0dd1 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/InLibraryDeliverServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/InLibraryDeliverServiceImpl.java @@ -18,12 +18,23 @@ public class InLibraryDeliverServiceImpl implements InLibraryDeliverService { return null; } + /*** + * 总在库数 + * @param id + * @return + */ @Override public Integer indexCount(Long id) { - return inLibraryDeliverMapper.obtainTheNumberOfInventoryListings(id); + return inLibraryDeliverMapper.obtainTheNumberOfInventoryListings(id); } - public Integer theNumberOfShelvesInTheLibrary(Long id,Integer order_package_grounding_status){ - return inLibraryDeliverMapper.theNumberOfShelvesInTheLibrary(id,order_package_grounding_status); + /** + * 上架数量 + * @param id + * @param order_package_grounding_status 状态 ;1=已上架,2 = 未上架 + * @return + */ + public Integer theNumberOfShelvesInTheLibrary(Long id, Integer order_package_grounding_status){ + return inLibraryDeliverMapper.theNumberOfShelvesInTheLibrary(id, order_package_grounding_status); } } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/IndexCountServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/IndexCountServiceImpl.java index b84498f79..910d9bbfc 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/IndexCountServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/IndexCountServiceImpl.java @@ -3,11 +3,22 @@ package com.logpm.report.service.impl; import com.logpm.report.mapper.IndexCountMapper; import com.logpm.report.service.IndexCountService; import com.logpm.report.vo.IndexCountVO; +import com.logpm.report.vo.indexCount.InStoreDataVO; +import com.logpm.report.vo.indexCount.InboundAndOutboundQuantityVO; import com.logpm.report.vo.indexCount.QuantityAbnormalWorkOrdersVO; import lombok.AllArgsConstructor; import org.springblade.common.constant.aftersales.WorkOrderStatusConstant; +import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant; +import org.springblade.common.constant.stockup.StockupTypeConstant; import org.springframework.stereotype.Service; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +import static org.springblade.common.constant.stockup.StockupTypeConstant.*; + /** * 首页统计接口实现类 */ @@ -17,20 +28,44 @@ public class IndexCountServiceImpl implements IndexCountService { private IndexCountMapper indexCountMapper; + private InLibraryDeliverServiceImpl inLibraryDeliverService; + /** * 首页统计数据 - */ + */ public IndexCountVO indexCount(Long warehouseId) { -// Long warehouseId = AuthUtil.getWarehouseId(); + // 这里需要换这里的代码,测试是模拟请求携带仓库ID参数 + // Long warehouseId = AuthUtil.getWarehouseId(); IndexCountVO indexCountVo = new IndexCountVO(); indexCountVo.setQuantityAbnormalWorkOrders(numberOfAbnormalWorkOrdersTheMonth(warehouseId)); + indexCountVo.setInboundAndOutboundQuantity(inboundAndOutboundQuantityTheMonth(warehouseId)); + indexCountVo.setInStoreData(inStoreData(warehouseId)); + return indexCountVo; } + /** + * 设置在库数据 + * @param warehouseId + * @return + */ + private InStoreDataVO inStoreData(Long warehouseId) { + InStoreDataVO inStoreDataVO = new InStoreDataVO(); + + Integer OnTheShelves = 1; // 上架 + Integer NotOnTheShelves = 2; // 未上架 + + inStoreDataVO.setAll(inLibraryDeliverService.indexCount(warehouseId)); + inStoreDataVO.setOnTheShelves(inLibraryDeliverService.theNumberOfShelvesInTheLibrary(warehouseId, OnTheShelves)); + inStoreDataVO.setNotOnTheShelves(inLibraryDeliverService.theNumberOfShelvesInTheLibrary(warehouseId, NotOnTheShelves)); + + return inStoreDataVO; + } + /** * 异常工单数据 - */ + */ @Override public QuantityAbnormalWorkOrdersVO numberOfAbnormalWorkOrdersTheMonth(Long warehouseId) { String status = WorkOrderStatusConstant.daichuli.getValue(); @@ -40,4 +75,48 @@ public class IndexCountServiceImpl implements IndexCountService { quantityAbnormalWorkOrdersVo.setWaitHandle(indexCountMapper.numberOfAbnormalWorkOrdersAndWaitHandleInTheMonth(warehouseId, status)); return quantityAbnormalWorkOrdersVo; } + + /** + * 出入库数量 + * + * @param warehouseId + */ + @Override + public InboundAndOutboundQuantityVO inboundAndOutboundQuantityTheMonth(Long warehouseId) { + InboundAndOutboundQuantityVO inboundAndOutboundQuantityVO = new InboundAndOutboundQuantityVO(); + String status = OrderPackageStatusConstant.yichuku.getValue(); + + HashMap> outHashMap = new HashMap<>(); + HashMap> inHashMap = new HashMap<>(); + + outHashMap.put(ziti.getValue(), inboundAndOutboundQuantityVO::setSelfOut); + outHashMap.put(shipei.getValue(), inboundAndOutboundQuantityVO::setCityOut); + outHashMap.put(shangpei.getValue(), inboundAndOutboundQuantityVO::setMerchantOut); + inHashMap.put(ziti.getValue(), inboundAndOutboundQuantityVO::setSelfIn); + inHashMap.put(shipei.getValue(), inboundAndOutboundQuantityVO::setCityIn); + inHashMap.put(shangpei.getValue(), inboundAndOutboundQuantityVO::setMerchantIn); + + setCount(outHashMap, indexCountMapper.outboundQuantityInTheMonth(warehouseId, status)); + setCount(inHashMap, indexCountMapper.inboundQuantityInTheMonth(warehouseId, status)); + + return inboundAndOutboundQuantityVO; + } + + /** + * 设置计数 + * @param setCountMap + * @param dataMaps + */ + private void setCount(HashMap> setCountMap, List> dataMaps) { + dataMaps.forEach((res) -> { + try { + String typeService = res.get("typeService").toString(); + if (setCountMap.containsKey(typeService)) { + setCountMap.get(typeService).accept(Long.valueOf(res.get("count").toString()).intValue()); + } + }catch (Exception e){ + System.out.println(e.getMessage()); + } + }); + } } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/IndexCountVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/IndexCountVO.java index 5b3fd9e16..e09bea499 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/IndexCountVO.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/IndexCountVO.java @@ -1,6 +1,7 @@ package com.logpm.report.vo; +import com.logpm.report.vo.indexCount.InStoreDataVO; import com.logpm.report.vo.indexCount.InboundAndOutboundQuantityVO; import com.logpm.report.vo.indexCount.QuantityAbnormalWorkOrdersVO; import io.swagger.annotations.ApiModel; @@ -16,4 +17,7 @@ public class IndexCountVO { @ApiModelProperty("出入库数量") private InboundAndOutboundQuantityVO inboundAndOutboundQuantity; + + @ApiModelProperty("在库数量") + private InStoreDataVO inStoreData; } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/InStoreDataVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/InStoreDataVO.java new file mode 100644 index 000000000..2d5d3a094 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/InStoreDataVO.java @@ -0,0 +1,19 @@ +package com.logpm.report.vo.indexCount; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("在库数据") +public class InStoreDataVO { + + @ApiModelProperty("总数") + private Integer all; + + @ApiModelProperty("已上架数量") + private Integer onTheShelves; + + @ApiModelProperty("未上架数量") + private Integer notOnTheShelves; +}