6 changed files with 277 additions and 0 deletions
@ -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); |
||||
} |
||||
|
||||
} |
@ -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; |
||||
|
||||
} |
@ -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); |
||||
} |
@ -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> |
@ -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); |
||||
} |
@ -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…
Reference in new issue