禅道bug#1589修复

This commit is contained in:
gaoqr
2026-06-01 16:15:30 +08:00
parent 159a051cf8
commit 0ccf7484aa
4 changed files with 135 additions and 49 deletions
@@ -232,7 +232,8 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
@Param("orderIds") List<Long> orderIds,
@Param("bodyIds") Set<Long> bodyIds,
@Param("groupIds") Set<Long> groupId,
@Param("componentIds") Set<Long> componentIds);
@Param("componentIds") Set<Long> componentIds,
@Param("deleted") Boolean deleted);
/**
* 分页查询订单配件视图数据
@@ -264,11 +265,12 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
* @return
*/
IPage<OrdersViewPartsPageDO> selectOrdersViewPartsIdsPage(@Param("page") IPage<OrdersViewPartsPageDO> page,
@Param("orderIds") List<Long> orderIds,
@Param("bodyIds") Set<Long> bodyIds,
@Param("groupIds") Set<Long> groupId,
@Param("componentIds") Set<Long> componentIds,
@Param("name") String name);
@Param("orderIds") List<Long> orderIds,
@Param("bodyIds") Set<Long> bodyIds,
@Param("groupIds") Set<Long> groupId,
@Param("componentIds") Set<Long> componentIds,
@Param("name") String name,
@Param("deleted") Boolean deleted);
/**
* 查询部件关联的板件ID列表
@@ -235,9 +235,11 @@ public class OrderComponentServiceImpl implements OrderComponentService {
(a, b) -> a
));
Boolean deleted = pageReqVO.getDeleted();
// 分页获取板件id
IPage<Long> plateIdPage = orderItemMapper.selectOrdersViewPlateIdsPage(new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()),
orderIds, null, null, queryComponentIds);
orderIds, null, null, queryComponentIds, deleted);
List<Long> plateIdPageRecords = plateIdPage.getRecords();
if(CollUtil.isEmpty(plateIdPageRecords)) {
@@ -245,14 +247,25 @@ public class OrderComponentServiceImpl implements OrderComponentService {
}
// 查询板件+板材信息
List<OrdersViewPlatesPageDO> ordersViewPlatesPageDOS = plateMapper.selectPlateGoodsByIds(orderIds, plateIdPageRecords, pageReqVO.getDeleted());
List<OrdersViewPlatesPageDO> ordersViewPlatesPageDOS = plateMapper.selectPlateGoodsByIds(orderIds, plateIdPageRecords, deleted);
List<OrderItemDO> orderItemRelation;
// 查询关联关系
List<OrderItemDO> orderItemRelation = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItemDO>()
.in(OrderItemDO::getOrderId, pageReqVO.getOrderIds())
.in(OrderItemDO::getPlateId, plateIdPageRecords)
.select(OrderItemDO::getPlateId, OrderItemDO::getRoomId, OrderItemDO::getBodyId, OrderItemDO::getCadViewId, OrderItemDO::getGroupId, OrderItemDO::getCompId)
);
if (!deleted) {
orderItemRelation = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItemDO>()
.in(OrderItemDO::getOrderId, pageReqVO.getOrderIds())
.in(OrderItemDO::getPlateId, plateIdPageRecords)
.select(OrderItemDO::getPlateId, OrderItemDO::getRoomId, OrderItemDO::getBodyId, OrderItemDO::getCadViewId, OrderItemDO::getGroupId, OrderItemDO::getCompId)
);
} else {
List<OrderItemTempDO> orderItemTempDOS = orderItemTempMapper.selectList(new LambdaQueryWrapperX<OrderItemTempDO>()
.in(OrderItemTempDO::getOrderId, pageReqVO.getOrderIds())
.in(OrderItemTempDO::getPlateId, plateIdPageRecords)
.select(OrderItemTempDO::getPlateId, OrderItemTempDO::getRoomId, OrderItemTempDO::getBodyId, OrderItemTempDO::getCadViewId, OrderItemTempDO::getGroupId, OrderItemTempDO::getCompId)
);
orderItemRelation = BeanUtil.copyToList(orderItemTempDOS, OrderItemDO.class);
}
// 暂存plateId:set<groupId>
Map<Long, Set<Long>> plateGroupMap = new HashMap<>();
@@ -408,9 +421,11 @@ public class OrderComponentServiceImpl implements OrderComponentService {
(a, b) -> a
));
Boolean deleted = pageReqVO.getDeleted();
// 查询配件编号+信息
PageDTO<OrdersViewPartsPageDO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
IPage<OrdersViewPartsPageDO> pageRes = orderItemMapper.selectOrdersViewPartsIdsPage(page, orderIds, null, null, queryComponentIds, null);
IPage<OrdersViewPartsPageDO> pageRes = orderItemMapper.selectOrdersViewPartsIdsPage(page, orderIds, null, null, queryComponentIds, null, deleted);
List<OrdersViewPartsPageDO> partsPageRecords = pageRes.getRecords();
if(CollUtil.isEmpty(partsPageRecords)) {
@@ -420,17 +435,34 @@ public class OrderComponentServiceImpl implements OrderComponentService {
List<Long> partsIds = partsPageRecords.stream().map(OrdersViewPartsPageDO::getId).toList();
// 查询关联关系
List<OrderItemDO> orderItemRelation = orderItemMapper.selectList(new LambdaQueryWrapperX<OrderItemDO>()
.in(OrderItemDO::getOrderId, pageReqVO.getOrderIds())
.inIfPresent(OrderItemDO::getCompId, queryComponentIds)
.in(OrderItemDO::getPartsId, partsIds)
.and(wrapper ->
wrapper.ne(OrderItemDO::getGroupId, 0L)
.or()
.isNull(OrderItemDO::getGroupId)
)
.select(OrderItemDO::getPartsId, OrderItemDO::getCadViewId, OrderItemDO::getGroupId, OrderItemDO::getCompId, OrderItemDO::getNum)
);
List<OrderItemDO> orderItemRelation;
if (!deleted) {
orderItemRelation = orderItemMapper.selectList(new LambdaQueryWrapperX<OrderItemDO>()
.in(OrderItemDO::getOrderId, pageReqVO.getOrderIds())
.inIfPresent(OrderItemDO::getCompId, queryComponentIds)
.in(OrderItemDO::getPartsId, partsIds)
.and(wrapper ->
wrapper.ne(OrderItemDO::getGroupId, 0L)
.or()
.isNull(OrderItemDO::getGroupId)
)
.select(OrderItemDO::getPartsId, OrderItemDO::getCadViewId, OrderItemDO::getGroupId, OrderItemDO::getCompId, OrderItemDO::getNum)
);
} else {
List<OrderItemTempDO> orderItemTempDOS = orderItemTempMapper.selectList(new LambdaQueryWrapperX<OrderItemTempDO>()
.in(OrderItemTempDO::getOrderId, pageReqVO.getOrderIds())
.inIfPresent(OrderItemTempDO::getCompId, queryComponentIds)
.in(OrderItemTempDO::getPartsId, partsIds)
.and(wrapper ->
wrapper.ne(OrderItemTempDO::getGroupId, 0L)
.or()
.isNull(OrderItemTempDO::getGroupId)
)
.select(OrderItemTempDO::getPartsId, OrderItemTempDO::getCadViewId, OrderItemTempDO::getGroupId, OrderItemTempDO::getCompId, OrderItemTempDO::getNum)
);
orderItemRelation = BeanUtil.copyToList(orderItemTempDOS, OrderItemDO.class);
}
// 暂存 partsId:set<groupId>
Map<Pair<Long, Integer>, Set<Long>> partsGroupMap = new HashMap<>();
@@ -38,6 +38,7 @@ import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemTempDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrdersViewPartsPageDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrdersViewPlatesPageDO;
import com.cf.imes.module.executor.dal.dataobject.ordercomponent.OrderComponentDO;
@@ -51,6 +52,7 @@ import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper;
import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper;
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemTempMapper;
import com.cf.imes.module.executor.dal.mysql.ordercomponent.OrderComponentMapper;
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
import com.cf.imes.module.executor.dal.mysql.plate.PlateGoodMapper;
@@ -98,6 +100,9 @@ public class PlateServiceImpl implements PlateService {
@Resource
private OrderItemMapper orderItemMapper;
@Resource
private OrderItemTempMapper orderItemTempMapper;
@Resource
private GoodsMapper goodsMapper;
@@ -861,9 +866,11 @@ public class PlateServiceImpl implements PlateService {
List<Long> orderIds = List.of(pageReqVO.getOrderId());
Boolean deleted = pageReqVO.getDeleted();
// 分页获取板件id
IPage<Long> plateIdPage = orderItemMapper.selectOrdersViewPlateIdsPage(new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()),
orderIds, bodyIds, groupIds, null);
orderIds, bodyIds, groupIds, null, deleted);
List<Long> plateIdPageRecords = plateIdPage.getRecords();
if(CollUtil.isEmpty(plateIdPageRecords)) {
@@ -871,16 +878,28 @@ public class PlateServiceImpl implements PlateService {
}
// 查询板件+板材信息
List<OrdersViewPlatesPageDO> ordersViewPlatesPageDOS = plateMapper.selectPlateGoodsByIds(orderIds, plateIdPageRecords, pageReqVO.getDeleted());
List<OrdersViewPlatesPageDO> ordersViewPlatesPageDOS = plateMapper.selectPlateGoodsByIds(orderIds, plateIdPageRecords, deleted);
List<OrderItemDO> orderItemRelation;
// 查询关联关系
List<OrderItemDO> orderItemRelation = orderItemMapper.selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eq(OrderItemDO::getOrderId, pageReqVO.getOrderId())
.inIfPresent(OrderItemDO::getBodyId, bodyIds)
.inIfPresent(OrderItemDO::getGroupId, groupIds)
.in(OrderItemDO::getPlateId, plateIdPageRecords)
.select(OrderItemDO::getPlateId, OrderItemDO::getRoomId, OrderItemDO::getBodyId, OrderItemDO::getCadViewId, OrderItemDO::getGroupId, OrderItemDO::getCompId)
);
if(!deleted) {
orderItemRelation = orderItemMapper.selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eq(OrderItemDO::getOrderId, pageReqVO.getOrderId())
.inIfPresent(OrderItemDO::getBodyId, bodyIds)
.inIfPresent(OrderItemDO::getGroupId, groupIds)
.in(OrderItemDO::getPlateId, plateIdPageRecords)
.select(OrderItemDO::getPlateId, OrderItemDO::getRoomId, OrderItemDO::getBodyId, OrderItemDO::getCadViewId, OrderItemDO::getGroupId, OrderItemDO::getCompId)
);
} else {
List<OrderItemTempDO> orderItemTempDOS = orderItemTempMapper.selectList(new LambdaQueryWrapperX<OrderItemTempDO>()
.eq(OrderItemTempDO::getOrderId, pageReqVO.getOrderId())
.inIfPresent(OrderItemTempDO::getBodyId, bodyIds)
.inIfPresent(OrderItemTempDO::getGroupId, groupIds)
.in(OrderItemTempDO::getPlateId, plateIdPageRecords)
.select(OrderItemTempDO::getPlateId, OrderItemTempDO::getRoomId, OrderItemTempDO::getBodyId, OrderItemTempDO::getCadViewId, OrderItemTempDO::getGroupId, OrderItemTempDO::getCompId)
);
orderItemRelation = BeanUtil.copyToList(orderItemTempDOS, OrderItemDO.class);
}
// 暂存plateId:set<groupId>
@@ -1016,9 +1035,11 @@ public class PlateServiceImpl implements PlateService {
.filter(item -> item.getCadViewFileId() != null)
.collect(Collectors.toMap(OrderBodyDO::getId, OrderBodyDO::getCadViewFileId));
Boolean deleted = pageReqVO.getDeleted();
// 查询配件编号+信息
PageDTO<OrdersViewPartsPageDO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
IPage<OrdersViewPartsPageDO> pageRes = orderItemMapper.selectOrdersViewPartsIdsPage(page, orderIds, bodyIds, groupIds, null, pageReqVO.getName());
IPage<OrdersViewPartsPageDO> pageRes = orderItemMapper.selectOrdersViewPartsIdsPage(page, orderIds, bodyIds, groupIds, null, pageReqVO.getName(), deleted);
List<OrdersViewPartsPageDO> partsPageRecords = pageRes.getRecords();
if(CollUtil.isEmpty(partsPageRecords)) {
@@ -1028,18 +1049,35 @@ public class PlateServiceImpl implements PlateService {
List<Long> partsIds = partsPageRecords.stream().map(OrdersViewPartsPageDO::getId).toList();
// 查询关联关系
List<OrderItemDO> orderItemRelation = orderItemMapper.selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eq(OrderItemDO::getOrderId, pageReqVO.getOrderId())
.inIfPresent(OrderItemDO::getBodyId, bodyIds)
.inIfPresent(OrderItemDO::getGroupId, groupIds)
.and(wrapper ->
wrapper.ne(OrderItemDO::getGroupId, 0L)
.or()
.isNull(OrderItemDO::getGroupId)
)
.in(OrderItemDO::getPartsId, partsIds)
.select(OrderItemDO::getPartsId, OrderItemDO::getBodyId, OrderItemDO::getCadViewId, OrderItemDO::getGroupId, OrderItemDO::getCompId, OrderItemDO::getNum)
);
List<OrderItemDO> orderItemRelation;
if (!deleted) {
orderItemRelation = orderItemMapper.selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eq(OrderItemDO::getOrderId, pageReqVO.getOrderId())
.inIfPresent(OrderItemDO::getBodyId, bodyIds)
.inIfPresent(OrderItemDO::getGroupId, groupIds)
.and(wrapper ->
wrapper.ne(OrderItemDO::getGroupId, 0L)
.or()
.isNull(OrderItemDO::getGroupId)
)
.in(OrderItemDO::getPartsId, partsIds)
.select(OrderItemDO::getPartsId, OrderItemDO::getBodyId, OrderItemDO::getCadViewId, OrderItemDO::getGroupId, OrderItemDO::getCompId, OrderItemDO::getNum)
);
} else {
List<OrderItemTempDO> orderItemTempDOS = orderItemTempMapper.selectList(new LambdaQueryWrapperX<OrderItemTempDO>()
.eq(OrderItemTempDO::getOrderId, pageReqVO.getOrderId())
.inIfPresent(OrderItemTempDO::getBodyId, bodyIds)
.inIfPresent(OrderItemTempDO::getGroupId, groupIds)
.and(wrapper ->
wrapper.ne(OrderItemTempDO::getGroupId, 0L)
.or()
.isNull(OrderItemTempDO::getGroupId)
)
.in(OrderItemTempDO::getPartsId, partsIds)
.select(OrderItemTempDO::getPartsId, OrderItemTempDO::getBodyId, OrderItemTempDO::getCadViewId, OrderItemTempDO::getGroupId, OrderItemTempDO::getCompId, OrderItemTempDO::getNum)
);
orderItemRelation = BeanUtil.copyToList(orderItemTempDOS, OrderItemDO.class);
}
// 暂存 partsId:set<groupId>
Map<Pair<Long, Integer>, Set<Long>> partsGroupMap = new HashMap<>();
@@ -533,7 +533,14 @@
<select id="selectOrdersViewPlateIdsPage" resultType="java.lang.Long">
SELECT
i.plate_id
FROM order_item i
<choose>
<when test="deleted">
FROM order_item_temp i
</when>
<otherwise>
FROM order_item i
</otherwise>
</choose>
WHERE i.plate_id != 0 and source_id = 0
<if test="bodyIds != null and bodyIds.size() > 0">
AND body_id IN
@@ -654,7 +661,14 @@
SELECT
i.parts_id,
i.cad_view_id
FROM order_item i
<choose>
<when test="deleted">
FROM order_item_temp i
</when>
<otherwise>
FROM order_item i
</otherwise>
</choose>
WHERE i.plate_id = 0
AND i.source_id = 0