Browse Source

在库订单统计

dist.1.3.0
chenlong 11 months ago
parent
commit
3cdda5790f
  1. 26
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleStatisticsController.java
  2. 26
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionStockArticleStatisticsDTO.java
  3. 13
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleStatisticsMapper.java
  4. 128
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleStatisticsMapper.xml
  5. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleStatisticsService.java
  6. 76
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleStatisticsServiceImpl.java

26
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleStatisticsController.java

@ -0,0 +1,26 @@
package com.logpm.distribution.controller;
import com.logpm.distribution.dto.DistributionStockArticleOweDTO;
import com.logpm.distribution.dto.DistributionStockArticleStatisticsDTO;
import com.logpm.distribution.service.IDistributionStockArticleStatisticsService;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
@RestController
@AllArgsConstructor
@Api(value = "配送在库订单统计", tags = "配送在库订单统计")
@RequestMapping(value = "/distributionStockArticleStatistics")
public class DistributionStockArticleStatisticsController extends BladeController {
private IDistributionStockArticleStatisticsService distributionStockArticleStatisticsService;
@GetMapping(value = "/collect")
public R<DistributionStockArticleStatisticsDTO> collect(@RequestParam(required = false) DistributionStockArticleOweDTO distributionStockArticleOweDTO) {
DistributionStockArticleStatisticsDTO collect = distributionStockArticleStatisticsService.collect(distributionStockArticleOweDTO);
return R.data(collect);
}
}

26
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionStockArticleStatisticsDTO.java

@ -0,0 +1,26 @@
package com.logpm.distribution.dto;
import lombok.Data;
/**
* 在库订单统计数据
*/
@Data
public class DistributionStockArticleStatisticsDTO {
/**
* 订单总数
*/
private Long orderNum;
/**
* 运单总数
*/
private Long WaybillNum;
/**
* 包件总数
*/
private Long packageCodeNum;
}

13
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleStatisticsMapper.java

@ -0,0 +1,13 @@
package com.logpm.distribution.mapper;
import com.logpm.distribution.dto.DistributionStockArticleOweDTO;
import com.logpm.distribution.dto.DistributionStockArticleStatisticsDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface DistributionStockArticleStatisticsMapper {
DistributionStockArticleStatisticsDTO collect(@Param("param") DistributionStockArticleOweDTO distributionStockArticleOweDTO);
}

128
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleStatisticsMapper.xml

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.logpm.distribution.mapper.DistributionStockArticleStatisticsMapper">
<select id="collect" resultType="com.logpm.distribution.dto.DistributionStockArticleStatisticsDTO">
select
count(distinct ldsa.waybill_id) WaybillNum,
count(distinct ldsa.order_code) orderNum,
count(distinct ldpl.id) packageCodeNum
from logpm_distribution_stock_article ldsa
LEFT JOIN logpm_distribution_parcel_list ldpl on ldsa.id = ldpl.stock_article_id
LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id
LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldpl.id
WHERE
ldsa.is_deleted = 0
and ldsa.order_status in (10,20,30,40,50,60,70)
and ldsa.hand_quantity > 0
<if test="param.orderCodeNumList != null">
and ldsa.order_code in
<foreach collection="param.orderCodeNumList" separator="," close=")" item="a" open="(">
#{a}
</foreach>
</if>
<if test=" param.orderCodeNumLike != '' and param.orderCodeNumLike != null ">and ldsa.order_code like
concat('%',#{param.orderCodeNumLike},'%')
</if>
<if test=" param.reservation != '' and param.reservation != null ">
and ldsa.reservation_status in (10,20) and ldpl.order_package_reservation_status = 10
</if>
<if test=" param.waybillNumList != null ">
and ldpl.waybill_number in
<foreach collection="param.waybillNumList" open="(" item="a" close=")" separator=",">
#{a}
</foreach>
</if>
<if test="param.consigneeUnit != null and param.consigneeUnit != '' ">
and ldsa.consignee_unit like concat('%',#{param.consigneeUnit},'%')
</if>
<if test=" param.waybillNumLike != '' and param.waybillNumLike != null ">and ldsa.waybill_number like
concat('%',#{param.waybillNumLike},'%')
</if>
<if test=" param.typeService != '' and param.typeService != null ">
and ldsa.type_service = #{param.typeService}
</if>
<if test=" param.warehouseIdList != null ">and ldsa.warehouse_id in
<foreach collection="param.warehouseIdList" open="(" item="a" close=")" separator=",">
#{a}
</foreach>
</if>
<if test=" param.warehouseId != '' and param.warehouseId != null ">and ldsa.warehouse_id =
#{param.warehouseId}
</if>
<if test=" param.idsList != null ">and ldsa.id in
<foreach collection="param.idsList" open="(" item="a" close=")" separator=",">
#{a}
</foreach>
</if>
<if test=" param.idsLike != '' and param.idsLike != null ">and ldsa.id = #{param.idsLike}</if>
<if test=" param.reservationStatus != '' and param.reservationStatus != null ">and ldsa.reservation_status
= #{param.reservationStatus}
</if>
<if test=" param.startDate != null ">and ldsa.warehouse_entry_time between #{param.startDate} and
#{param.entDate}
</if>
<if test=" param.warehouseEntryTime != null ">and DATE(ldsa.warehouse_entry_time) =
#{param.warehouseEntryTime}
</if>
<if test=" param.warehouseEntryTimeEnd != null ">and DATE(ldsa.warehouse_entry_time) =
#{param.warehouseEntryTimeEnd}
</if>
<if test=" param.inventoryDate != null ">and DATE(ldsa.inventory_date) = #{param.inventoryDate}</if>
<if test=" param.serviceNumber != null and param.serviceNumber != '' ">and ldsa.service_number like
concat('%',#{param.serviceNumber},'%')
</if>
<if test=" param.orderCode != null and param.orderCode != '' ">and ldsa.order_code like
concat('%',#{param.orderCode},'%')
</if>
<if test=" param.waybillNumber != null and param.waybillNumber != '' ">and ldpl.waybill_number like
concat('%',#{param.waybillNumber},'%')
</if>
<if test=" param.mallName != null and param.mallName != '' ">and ldsa.mall_name like
concat('%',#{param.mallName},'%')
</if>
<if test=" param.descriptionGoods != null and param.descriptionGoods != '' ">and ldsa.description_goods
like concat('%',#{param.descriptionGoods},'%')
</if>
<if test=" param.warehouse != null and param.warehouse != '' ">and ldsa.warehouse like
concat('%',#{param.warehouse},'%')
</if>
<if test=" param.consigneePerson != null and param.consigneePerson != '' ">and ldsa.consignee_person like
concat('%',#{param.consigneePerson},'%')
</if>
<if test=" param.availableQuantity != null ">and ldsa.available_quantity like
concat('%',#{param.availableQuantity},'%')
</if>
<if test=" param.groundingStatus != null and param.groundingStatus != '' ">and ldsa.grounding_status = #{param.groundingStatus}</if>
<if test=" param.genre != null and param.groundingStatus != '' ">and ldsa.genre = #{param.genre}</if>
<if test=" param.freezeStatus != null and param.groundingStatus != '' ">and ldsa.freeze_status = #{param.freezeStatus}</if>
<if test=" param.orderStatus != null and param.groundingStatus != '' ">and ldsa.order_status = #{param.orderStatus}</if>
<if test=" param.reservationStatus != null and param.groundingStatus != '' ">and ldsa.reservation_status = #{param.reservationStatus}</if>
<if test=" param.stockupStatus != null and param.groundingStatus != '' ">and ldsa.stockup_status = #{param.stockupStatus}</if>
<if test=" param.notification != null and param.notification != '' ">and ldsa.notification = #{param.notification}</if>
<if test=" param.orderReceiveStatus != null and param.groundingStatus != '' ">and ldsa.order_receive_status =
#{param.orderReceiveStatus}
</if>
<if test=" param.completeSet != null ">and ldsa.complete_set like concat('%',#{param.completeSet},'%')
</if>
<if test=" param.typeService != null and param.groundingStatus != '' ">and ldsa.type_service like concat('%',#{param.typeService},'%')
</if>
<if test=" param.customerName != null and param.customerName != '' ">and ldsa.customer_name like
concat('%',#{param.customerName},'%')
</if>
<if test="param.isZero != null and param.isZero != '' ">
and ldsa.is_zero = #{param.isZero}
</if>
<if test=" param.customerTelephone != null and param.customerTelephone != '' ">and
ldsa.customer_telephone like concat('%',#{param.customerTelephone},'%')
</if>
<if test=" param.customerAddress != null and param.customerAddress != '' ">and ldsa.customer_address like
concat('%',#{param.customerAddress},'%')
</if>
<if test=" param.trays != null and param.trays != '' ">and lwtg.tray_code like
concat('%',#{param.trays},'%')
</if>
<if test=" param.allocation != null and param.allocation != '' ">and lwug.position_code like
concat('%',#{param.allocation},'%')
</if>
</select>
</mapper>

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleStatisticsService.java

@ -0,0 +1,8 @@
package com.logpm.distribution.service;
import com.logpm.distribution.dto.DistributionStockArticleOweDTO;
import com.logpm.distribution.dto.DistributionStockArticleStatisticsDTO;
public interface IDistributionStockArticleStatisticsService {
DistributionStockArticleStatisticsDTO collect(DistributionStockArticleOweDTO distributionStockArticleOweDTO);
}

76
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleStatisticsServiceImpl.java

@ -0,0 +1,76 @@
package com.logpm.distribution.service.impl;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.dto.DistributionStockArticleOweDTO;
import com.logpm.distribution.dto.DistributionStockArticleStatisticsDTO;
import com.logpm.distribution.mapper.DistributionStockArticleStatisticsMapper;
import com.logpm.distribution.service.IDistributionStockArticleStatisticsService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.utils.CommonUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* 在库订单的统计
*/
@Service
@AllArgsConstructor
@Slf4j
public class DistributionStockArticleStatisticsServiceImpl implements IDistributionStockArticleStatisticsService {
private DistributionStockArticleStatisticsMapper distributionStockArticleStatisticsMapper;
private IBasicdataWarehouseClient warehouseClient;
@Override
public DistributionStockArticleStatisticsDTO collect(DistributionStockArticleOweDTO distributionStockArticleOweDTO) {
if (distributionStockArticleOweDTO == null) {
distributionStockArticleOweDTO = new DistributionStockArticleOweDTO();
}
if (Func.isNotEmpty(distributionStockArticleOweDTO.getOrderCodeNum())) {
String anumbering = distributionStockArticleOweDTO.getOrderCodeNum().trim();
List<String> list = CommonUtil.stringNum(anumbering);
if (list.size() > 1) {
distributionStockArticleOweDTO.setOrderCodeNumList(list);
} else {
distributionStockArticleOweDTO.setOrderCodeNumLike(anumbering);
}
}
if (Func.isNotEmpty(distributionStockArticleOweDTO.getWaybillNum())) {
String waybill = distributionStockArticleOweDTO.getWaybillNum().trim();
List<String> list = CommonUtil.stringNum(waybill);
if (list.size() > 1) {
distributionStockArticleOweDTO.setWaybillNumList(list);
} else {
distributionStockArticleOweDTO.setWaybillNumLike(waybill);
}
}
if (ObjectUtil.isNotEmpty(distributionStockArticleOweDTO.getIds())) {
String ids = distributionStockArticleOweDTO.getIds().trim();
List<String> list = CommonUtil.stringNum(ids);
if (list.size() > 1) {
distributionStockArticleOweDTO.setIdsList(list);
} else {
distributionStockArticleOweDTO.setIdsLike(ids);
}
}
List<BasicdataWarehouseEntity> myWarehouseList = warehouseClient.getMyWatchWarehouse();
List<Long> collect = myWarehouseList.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList());
if (collect.size() > 1) {
distributionStockArticleOweDTO.setWarehouseIdList(collect);
} else if (collect.size() == 1) {
distributionStockArticleOweDTO.setWarehouseId(collect.get(0));
}
return distributionStockArticleStatisticsMapper.collect(distributionStockArticleOweDTO);
}
}
Loading…
Cancel
Save