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;
|
package com.cf.imes.module.executor.controller.admin.order.vo.order;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "标签对应的订单包裹数据源信息")
|
@Schema(description = "标签对应的订单包裹数据源信息")
|
||||||
@Data
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
public class LabelOrderPackData {
|
public class LabelOrderPackData {
|
||||||
|
|
||||||
|
|
||||||
@@ -15,16 +21,30 @@ public class LabelOrderPackData {
|
|||||||
private Long orderNo;
|
private Long orderNo;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "包裹号-包裹编号")
|
// @Schema(description = "包裹号-包裹编号")
|
||||||
private List<String> packageNo;
|
// private List<String> packageNo;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// @Schema(description = "包裹ID")
|
||||||
|
// private List<Long> packageId;
|
||||||
|
|
||||||
|
@Schema(description = "包裹列表")
|
||||||
@Schema(description = "包裹ID")
|
private List<PackageInfo> packageInfos;
|
||||||
private List<Long> packageId;
|
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "包裹数量")
|
@Schema(description = "包裹数量")
|
||||||
private Integer packNum;
|
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>()
|
return selectList(new LambdaQueryWrapperX<OrderPackageDO>()
|
||||||
.eq(OrderPackageDO::getOrganId,organId)
|
.eq(OrderPackageDO::getOrganId,organId)
|
||||||
.eq(OrderPackageDO::getDeleted,false)
|
.eq(OrderPackageDO::getDeleted,false)
|
||||||
.inIfPresent(OrderPackageDO::getOrderId, orderIds)
|
.inIfPresent(OrderPackageDO::getId, packIds)
|
||||||
.eqIfPresent(OrderPackageDO::getType, OrderPackageTypeEnum.PARTS.getType())
|
.eqIfPresent(OrderPackageDO::getStatus,OrderPackageStatusEnum.PACKAGED.getStatus())
|
||||||
.select(OrderPackageDO::getId,OrderPackageDO::getOrderId));
|
.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.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||||
import com.cf.imes.framework.common.enums.DeletedCodeEnum;
|
import com.cf.imes.framework.common.enums.DeletedCodeEnum;
|
||||||
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
|
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.exception.util.ServiceExceptionUtil;
|
||||||
import com.cf.imes.framework.common.pojo.PageParam;
|
import com.cf.imes.framework.common.pojo.PageParam;
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
@@ -1522,32 +1523,15 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 包裹信息
|
||||||
if(CollUtil.isNotEmpty(packIds)) {
|
if(CollUtil.isNotEmpty(packIds)) {
|
||||||
// 包裹信息
|
|
||||||
List<LabelOrderPackData> labelOrderPackData = orderPackageMapper.selectLabelOrderPackData(packIds, organId);
|
|
||||||
|
|
||||||
labelOrderPackData.forEach(f -> f.setPackNum(f.getPackageId().size()));
|
getLabelOrderPackData(packIds,organId,orderIds,labelOrderPlateData,orderAllData);
|
||||||
|
|
||||||
// 查询是否有 配件 类型包裹
|
|
||||||
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);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 补充缺少的小板信息
|
||||||
labelOrderPlateData.forEach(f->{
|
labelOrderPlateData.forEach(f->{
|
||||||
|
|
||||||
f.setOrderDate(labelOrderData.stream().filter(o->o.getOrderNo().equals(f.getOrderId())).findFirst().orElse(new LabelOrderData()).getOrderDate());
|
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"/>
|
<result property="orderNo" column="orderNo"/>
|
||||||
|
|
||||||
<collection property="packageNo" ofType="java.lang.String" column="packageNo"/>
|
<collection
|
||||||
<collection property="packageId" ofType="java.lang.Long" column="packageId"/>
|
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>
|
</resultMap>
|
||||||
|
|
||||||
@@ -171,9 +176,9 @@
|
|||||||
|
|
||||||
|
|
||||||
select distinct
|
select distinct
|
||||||
order_id as orderNo,
|
package_no as packageNo,
|
||||||
id as packageId,
|
id as packageId,
|
||||||
package_no as packageNo
|
order_id as orderNo
|
||||||
|
|
||||||
from order_package
|
from order_package
|
||||||
|
|
||||||
@@ -183,6 +188,34 @@
|
|||||||
<foreach item="packIds" collection="packIds" open="(" separator="," close=")">
|
<foreach item="packIds" collection="packIds" open="(" separator="," close=")">
|
||||||
#{packIds}
|
#{packIds}
|
||||||
</foreach>
|
</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>
|
</select>
|
||||||
|
|||||||
Reference in New Issue
Block a user