mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
查询标签数据源接口-包裹数据格式修改
This commit is contained in:
+25
-5
@@ -1,13 +1,19 @@
|
||||
package com.cf.imes.module.executor.controller.admin.order.vo.order;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Schema(description = "标签对应的订单包裹数据源信息")
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class LabelOrderPackData {
|
||||
|
||||
|
||||
@@ -15,16 +21,30 @@ public class LabelOrderPackData {
|
||||
private Long orderNo;
|
||||
|
||||
|
||||
@Schema(description = "包裹号-包裹编号")
|
||||
private List<String> packageNo;
|
||||
// @Schema(description = "包裹号-包裹编号")
|
||||
// private List<String> packageNo;
|
||||
//
|
||||
//
|
||||
// @Schema(description = "包裹ID")
|
||||
// private List<Long> packageId;
|
||||
|
||||
|
||||
@Schema(description = "包裹ID")
|
||||
private List<Long> packageId;
|
||||
@Schema(description = "包裹列表")
|
||||
private List<PackageInfo> packageInfos;
|
||||
|
||||
|
||||
@Schema(description = "包裹数量")
|
||||
private Integer packNum;
|
||||
|
||||
|
||||
@Data
|
||||
public static class PackageInfo {
|
||||
@Schema(description = "包裹号")
|
||||
private String packageNo;
|
||||
|
||||
@Schema(description = "包裹ID")
|
||||
private Long packageId;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+9
-5
@@ -99,14 +99,18 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
|
||||
|
||||
|
||||
|
||||
default List<OrderPackageDO> selectPartPack(List<Long> orderIds, Long organId) {
|
||||
List<LabelOrderPackData> selectPartPack(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId,@Param("type") Integer type ,@Param("status") Integer status);
|
||||
|
||||
|
||||
|
||||
default List<OrderPackageDO> selectPackListByIds(List<Long> packIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderPackageDO>()
|
||||
.eq(OrderPackageDO::getOrganId,organId)
|
||||
.eq(OrderPackageDO::getDeleted,false)
|
||||
.inIfPresent(OrderPackageDO::getOrderId, orderIds)
|
||||
.eqIfPresent(OrderPackageDO::getType, OrderPackageTypeEnum.PARTS.getType())
|
||||
.select(OrderPackageDO::getId,OrderPackageDO::getOrderId));
|
||||
.inIfPresent(OrderPackageDO::getId, packIds)
|
||||
.eqIfPresent(OrderPackageDO::getStatus,OrderPackageStatusEnum.PACKAGED.getStatus())
|
||||
.select(OrderPackageDO::getId,OrderPackageDO::getOrderId,OrderPackageDO::getPackageNo));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+61
-21
@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
import com.cf.imes.framework.common.enums.DeletedCodeEnum;
|
||||
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
|
||||
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
|
||||
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
@@ -1522,32 +1523,15 @@ public class OrderServiceImpl implements OrderService {
|
||||
});
|
||||
|
||||
|
||||
// 包裹信息
|
||||
if(CollUtil.isNotEmpty(packIds)) {
|
||||
// 包裹信息
|
||||
List<LabelOrderPackData> labelOrderPackData = orderPackageMapper.selectLabelOrderPackData(packIds, organId);
|
||||
|
||||
labelOrderPackData.forEach(f -> f.setPackNum(f.getPackageId().size()));
|
||||
|
||||
// 查询是否有 配件 类型包裹
|
||||
List<OrderPackageDO> partPackList = orderPackageMapper.selectPartPack(orderIds, getUserOrganId());
|
||||
|
||||
if(CollUtil.isNotEmpty(partPackList)){
|
||||
labelOrderPackData.forEach(f->{
|
||||
|
||||
f.setPackNum( f.getPackNum() + partPackList.stream().filter(p->p.getOrderId().equals(f.getOrderNo())).toList().size());
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<OrderPackageDO> packageDOS = orderPackageMapper.selectBatchIds(packIds);
|
||||
|
||||
labelOrderPlateData.forEach(f->f.setPackageSerialNo(packageDOS.stream().filter(o->o.getId().equals(f.getPackageNo())).findFirst().orElse(new OrderPackageDO()).getPackageNo()));
|
||||
|
||||
orderAllData.setPackDataList(labelOrderPackData);
|
||||
getLabelOrderPackData(packIds,organId,orderIds,labelOrderPlateData,orderAllData);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 补充缺少的小板信息
|
||||
labelOrderPlateData.forEach(f->{
|
||||
|
||||
f.setOrderDate(labelOrderData.stream().filter(o->o.getOrderNo().equals(f.getOrderId())).findFirst().orElse(new LabelOrderData()).getOrderDate());
|
||||
@@ -1566,4 +1550,60 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 获取包裹信息
|
||||
private void getLabelOrderPackData(List<Long> packIds,
|
||||
Long organId,
|
||||
List<Long> orderIds,
|
||||
List<LabelOrderPlateData> labelOrderPlateData,
|
||||
OrderAllData orderAllData){
|
||||
|
||||
// 板材包裹信息
|
||||
List<LabelOrderPackData> labelOrderPackData = orderPackageMapper.selectLabelOrderPackData(packIds, organId);
|
||||
|
||||
labelOrderPackData.forEach(f -> f.setPackNum(f.getPackageInfos().size()));
|
||||
|
||||
// 查询是否有 配件 类型包裹
|
||||
List<LabelOrderPackData> partPackList = orderPackageMapper.selectPartPack(orderIds, getUserOrganId(), OrderPackageTypeEnum.PARTS.getType(),OrderPackageStatusEnum.PACKAGED.getStatus());
|
||||
|
||||
if(CollUtil.isNotEmpty(partPackList)){
|
||||
|
||||
partPackList.forEach(f->f.setPackNum(f.getPackageInfos().size()));
|
||||
|
||||
// 板材包裹为空时,且配件包裹不为空,需要加入配件包裹的信息
|
||||
if(CollUtil.isEmpty(labelOrderPackData)){
|
||||
partPackList.forEach(f->labelOrderPackData.add(LabelOrderPackData.builder().orderNo(f.getOrderNo()).build()));
|
||||
}
|
||||
|
||||
|
||||
// 添加缺少的配件包裹信息
|
||||
labelOrderPackData.forEach(f-> {
|
||||
Integer packNum = partPackList.stream()
|
||||
.filter(p -> f.getOrderNo().equals(p.getOrderNo()))
|
||||
.mapToInt(p -> p.getPackNum() != null ? p.getPackNum() : 0)
|
||||
.sum();
|
||||
|
||||
f.setPackNum( Optional.ofNullable(f.getPackNum()).orElse(0) + packNum);
|
||||
|
||||
f.setPackageInfos(Optional.ofNullable(f.getPackageInfos()).orElse(new ArrayList<>()));
|
||||
|
||||
f.getPackageInfos().addAll(partPackList.stream()
|
||||
.filter(p->p.getOrderNo().equals(f.getOrderNo()))
|
||||
.map(LabelOrderPackData::getPackageInfos)
|
||||
.findAny().orElse(new ArrayList<>()));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
List<OrderPackageDO> packageDOS = orderPackageMapper.selectPackListByIds(packIds,getUserOrganId());
|
||||
|
||||
labelOrderPlateData.forEach(f->f.setPackageSerialNo(packageDOS.stream().filter(o->o.getId().equals(f.getPackageNo())).findFirst().orElse(new OrderPackageDO()).getPackageNo()));
|
||||
|
||||
orderAllData.setPackDataList(labelOrderPackData);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+37
-4
@@ -158,8 +158,13 @@
|
||||
|
||||
<result property="orderNo" column="orderNo"/>
|
||||
|
||||
<collection property="packageNo" ofType="java.lang.String" column="packageNo"/>
|
||||
<collection property="packageId" ofType="java.lang.Long" column="packageId"/>
|
||||
<collection
|
||||
property="packageInfos"
|
||||
ofType="com.cf.imes.module.executor.controller.admin.order.vo.order.LabelOrderPackData$PackageInfo">
|
||||
<result property="packageNo" column="packageNo"/>
|
||||
<result property="packageId" column="packageId"/>
|
||||
|
||||
</collection>
|
||||
|
||||
</resultMap>
|
||||
|
||||
@@ -171,9 +176,9 @@
|
||||
|
||||
|
||||
select distinct
|
||||
order_id as orderNo,
|
||||
package_no as packageNo,
|
||||
id as packageId,
|
||||
package_no as packageNo
|
||||
order_id as orderNo
|
||||
|
||||
from order_package
|
||||
|
||||
@@ -183,6 +188,34 @@
|
||||
<foreach item="packIds" collection="packIds" open="(" separator="," close=")">
|
||||
#{packIds}
|
||||
</foreach>
|
||||
and status = 1
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
<select id="selectPartPack"
|
||||
parameterType="java.lang.Long"
|
||||
resultMap="OrderPackDataMap">
|
||||
|
||||
|
||||
select distinct
|
||||
package_no as packageNo,
|
||||
id as packageId,
|
||||
order_id as orderNo
|
||||
|
||||
from order_package
|
||||
|
||||
where organ_id = #{organId}
|
||||
and deleted = false
|
||||
and order_id in
|
||||
<foreach item="orderIds" collection="orderIds" open="(" separator="," close=")">
|
||||
#{orderIds}
|
||||
</foreach>
|
||||
and type = #{type}
|
||||
and status = #{status}
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
Reference in New Issue
Block a user