mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
禅道bug#1548修复
This commit is contained in:
+15
@@ -0,0 +1,15 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.orderItem;
|
||||
|
||||
import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @author Gqr
|
||||
* @since 2026/5/20 11:50
|
||||
*/
|
||||
@Mapper
|
||||
public interface OrderItemBatchMapper extends BaseBatchMapper<OrderItemDO> {
|
||||
}
|
||||
+16
@@ -299,4 +299,20 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
||||
* @return
|
||||
*/
|
||||
List<OrderPrintDetailRespVO> selectOrdersPrintPartsList(@Param("orderIds") List<Long> orderIds, @Param("componentIds") Set<Long> componentIds);
|
||||
|
||||
/**
|
||||
* 查询临时表所需数据
|
||||
*
|
||||
* @param orderId
|
||||
* @param organId
|
||||
* @param bodyIds
|
||||
* @param componentIds
|
||||
* @return
|
||||
*/
|
||||
List<OrderItemDO> selectOrderItemForTemp(@Param("orderId") Long orderId,
|
||||
@Param("organId") Long organId,
|
||||
@Param("lastId") Long lastId,
|
||||
@Param("pageSize") int pageSize,
|
||||
@Param("bodyIds") Set<Long> bodyIds,
|
||||
@Param("compIds") Set<Long> componentIds);
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.orderItem;
|
||||
|
||||
import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemTempDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @author Gqr
|
||||
* @since 2026/5/20 11:42
|
||||
*/
|
||||
@Mapper
|
||||
public interface OrderItemTempBatchMapper extends BaseBatchMapper<OrderItemTempDO> {
|
||||
}
|
||||
+11
-13
@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 订单明细临时表 order_item_temp Mapper
|
||||
@@ -16,21 +17,18 @@ import java.util.List;
|
||||
@Mapper
|
||||
public interface OrderItemTempMapper extends BaseMapper<OrderItemTempDO> {
|
||||
/**
|
||||
* 查询订单明细插入到明细临时表
|
||||
* 查询临时表所需数据
|
||||
*
|
||||
* @param orderId
|
||||
* @param organId
|
||||
* @param bodyIds
|
||||
* @param compIds
|
||||
* @param componentIds
|
||||
* @return
|
||||
*/
|
||||
void selectInsertOrderItemTemp(@Param("orderId") Long orderId, @Param("organId") Long organId, @Param("bodyIds") List<Long> bodyIds, @Param("compIds") List<Long> compIds);
|
||||
|
||||
/**
|
||||
* 查询订单明细临时插入到明细表
|
||||
*
|
||||
* @param orderId
|
||||
* @param bodyIds
|
||||
* @param compIds
|
||||
*/
|
||||
void selectInsertOrderItem(@Param("orderId") Long orderId, @Param("organId") Long organId, @Param("bodyIds") List<Long> bodyIds, @Param("compIds") List<Long> compIds);
|
||||
|
||||
List<OrderItemTempDO> selectOrderItemTempForItem(@Param("orderId") Long orderId,
|
||||
@Param("organId") Long organId,
|
||||
@Param("lastId") Long lastId,
|
||||
@Param("pageSize") int pageSize,
|
||||
@Param("bodyIds") Set<Long> bodyIds,
|
||||
@Param("compIds") Set<Long> componentIds);
|
||||
}
|
||||
|
||||
+60
-2
@@ -54,7 +54,9 @@ import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||
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.OrderItemBatchMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemTempBatchMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemTempMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderParts.PartsMapper;
|
||||
@@ -169,6 +171,12 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Resource
|
||||
private OrderItemTempMapper orderItemTempMapper;
|
||||
|
||||
@Resource
|
||||
private OrderItemBatchMapper orderItemBatchMapper;
|
||||
|
||||
@Resource
|
||||
private OrderItemTempBatchMapper orderItemTempBatchMapper;
|
||||
|
||||
@Resource
|
||||
@Lazy
|
||||
private PackService packService;
|
||||
@@ -471,7 +479,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
// order_item记录临时表
|
||||
orderItemTempMapper.selectInsertOrderItemTemp(orderId, organId, bodyIds, null);
|
||||
copyOrderItemToTemp(orderId, organId, bodyIds.stream().collect(Collectors.toSet()));
|
||||
|
||||
// order_item删除记录
|
||||
orderItemMapper.delete(new LambdaQueryWrapper<OrderItemDO>()
|
||||
@@ -491,6 +499,32 @@ public class OrderServiceImpl implements OrderService {
|
||||
orderInfoVersionControlService.updateOrderPlateNumAndArea(orderDO, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制订单明细到临时表
|
||||
*
|
||||
* @param orderId
|
||||
* @param organId
|
||||
* @param deleteIds
|
||||
*/
|
||||
private void copyOrderItemToTemp(Long orderId, Long organId, Set<Long> deleteIds) {
|
||||
int pageSize = 1000;
|
||||
long lastId = 0L;
|
||||
|
||||
while (true) {
|
||||
|
||||
List<OrderItemDO> list =
|
||||
orderItemMapper.selectOrderItemForTemp(orderId, organId, lastId, pageSize, deleteIds, null);
|
||||
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
break;
|
||||
}
|
||||
|
||||
orderItemTempBatchMapper.insertBatchSomeColumn(BeanUtil.copyToList(list, OrderItemTempDO.class));
|
||||
|
||||
lastId = list.get(list.size() - 1).getId();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateRestoreBody(Long orderId, Set<Long> roomIds, Long bodyId, Integer status) { // 要删除传1,还原传0
|
||||
@@ -525,7 +559,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
// order_item恢复临时记录
|
||||
orderItemTempMapper.selectInsertOrderItem(orderId, organId, bodyIds, null);
|
||||
copyTempToOrderItem(orderId, organId, bodyIds.stream().collect(Collectors.toSet()));
|
||||
|
||||
// order_item_temp删除记录
|
||||
orderItemTempMapper.delete(new LambdaQueryWrapper<OrderItemTempDO>()
|
||||
@@ -552,7 +586,31 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 复制订单明细到临时表
|
||||
*
|
||||
* @param orderId
|
||||
* @param organId
|
||||
* @param deleteIds
|
||||
*/
|
||||
private void copyTempToOrderItem(Long orderId, Long organId, Set<Long> deleteIds) {
|
||||
int pageSize = 1000;
|
||||
long lastId = 0L;
|
||||
|
||||
while (true) {
|
||||
|
||||
List<OrderItemTempDO> list =
|
||||
orderItemTempMapper.selectOrderItemTempForItem(orderId, organId, lastId, pageSize, deleteIds, null);
|
||||
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
break;
|
||||
}
|
||||
|
||||
orderItemBatchMapper.insertBatchSomeColumn(BeanUtil.copyToList(list, OrderItemDO.class));
|
||||
|
||||
lastId = list.get(list.size() - 1).getId();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+63
-2
@@ -35,7 +35,9 @@ 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.mysql.order.OrderMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemBatchMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemTempBatchMapper;
|
||||
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.plate.PlateMapper;
|
||||
@@ -96,6 +98,12 @@ public class OrderComponentServiceImpl implements OrderComponentService {
|
||||
@Resource
|
||||
private OrderItemTempMapper orderItemTempMapper;
|
||||
|
||||
@Resource
|
||||
private OrderItemBatchMapper orderItemBatchMapper;
|
||||
|
||||
@Resource
|
||||
private OrderItemTempBatchMapper orderItemTempBatchMapper;
|
||||
|
||||
@Resource
|
||||
private FileApi fileApi;
|
||||
|
||||
@@ -447,7 +455,7 @@ public class OrderComponentServiceImpl implements OrderComponentService {
|
||||
}
|
||||
|
||||
// order_item记录临时表
|
||||
orderItemTempMapper.selectInsertOrderItemTemp(orderId, organId, null, deleteIds.stream().toList());
|
||||
copyOrderItemToTemp(orderId, organId, deleteIds);
|
||||
|
||||
// order_item删除记录
|
||||
orderItemMapper.delete(new LambdaQueryWrapper<OrderItemDO>()
|
||||
@@ -472,6 +480,32 @@ public class OrderComponentServiceImpl implements OrderComponentService {
|
||||
orderInfoVersionControlService.updateOrderPlateNumAndArea(orderDO, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制订单明细到临时表
|
||||
*
|
||||
* @param orderId
|
||||
* @param organId
|
||||
* @param deleteIds
|
||||
*/
|
||||
private void copyOrderItemToTemp(Long orderId, Long organId, Set<Long> deleteIds) {
|
||||
int pageSize = 1000;
|
||||
long lastId = 0L;
|
||||
|
||||
while (true) {
|
||||
|
||||
List<OrderItemDO> list =
|
||||
orderItemMapper.selectOrderItemForTemp(orderId, organId, lastId, pageSize, null, deleteIds);
|
||||
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
break;
|
||||
}
|
||||
|
||||
orderItemTempBatchMapper.insertBatchSomeColumn(BeanUtil.copyToList(list, OrderItemTempDO.class));
|
||||
|
||||
lastId = list.get(list.size() - 1).getId();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 解包和删除包裹
|
||||
@@ -583,7 +617,7 @@ public class OrderComponentServiceImpl implements OrderComponentService {
|
||||
}
|
||||
|
||||
// order_item恢复临时记录
|
||||
orderItemTempMapper.selectInsertOrderItem(orderId, organId, null, restoreIds.stream().toList());
|
||||
copyTempToOrderItem(orderId, organId, restoreIds);
|
||||
|
||||
// order_item_temp删除记录
|
||||
orderItemTempMapper.delete(new LambdaQueryWrapper<OrderItemTempDO>()
|
||||
@@ -603,6 +637,33 @@ public class OrderComponentServiceImpl implements OrderComponentService {
|
||||
orderInfoVersionControlService.updateOrderPlateNumAndArea(orderDO, false);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 复制订单明细到临时表
|
||||
*
|
||||
* @param orderId
|
||||
* @param organId
|
||||
* @param deleteIds
|
||||
*/
|
||||
private void copyTempToOrderItem(Long orderId, Long organId, Set<Long> deleteIds) {
|
||||
int pageSize = 1000;
|
||||
long lastId = 0L;
|
||||
|
||||
while (true) {
|
||||
|
||||
List<OrderItemTempDO> list =
|
||||
orderItemTempMapper.selectOrderItemTempForItem(orderId, organId, lastId, pageSize, null, deleteIds);
|
||||
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
break;
|
||||
}
|
||||
|
||||
orderItemBatchMapper.insertBatchSomeColumn(BeanUtil.copyToList(list, OrderItemDO.class));
|
||||
|
||||
lastId = list.get(list.size() - 1).getId();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 累计必要数据
|
||||
*
|
||||
|
||||
+37
@@ -860,4 +860,41 @@
|
||||
WHERE op.deleted = false
|
||||
ORDER BY op.id, op.type
|
||||
</select>
|
||||
|
||||
<select id="selectOrderItemForTemp"
|
||||
resultType="com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO">
|
||||
|
||||
SELECT *
|
||||
FROM order_item
|
||||
WHERE id > #{lastId}
|
||||
AND order_id = #{orderId}
|
||||
AND organ_id = #{organId}
|
||||
AND source_id = 0
|
||||
|
||||
<if test="bodyIds != null and bodyIds.size() > 0">
|
||||
AND body_id IN
|
||||
<foreach item="bodyId"
|
||||
collection="bodyIds"
|
||||
open="("
|
||||
separator=","
|
||||
close=")">
|
||||
#{bodyId}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="compIds != null and compIds.size() > 0">
|
||||
AND comp_id IN
|
||||
<foreach item="compId"
|
||||
collection="compIds"
|
||||
open="("
|
||||
separator=","
|
||||
close=")">
|
||||
#{compId}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
ORDER BY id
|
||||
LIMIT #{pageSize}
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
+23
-25
@@ -1,42 +1,40 @@
|
||||
<?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.cf.imes.module.executor.dal.mysql.orderItem.OrderItemTempMapper">
|
||||
<insert id="selectInsertOrderItemTemp">
|
||||
INSERT INTO order_item_temp
|
||||
SELECT *
|
||||
FROM order_item
|
||||
WHERE order_id = #{orderId} and organ_id = #{organId}
|
||||
<if test="bodyIds != null and bodyIds.size() > 0">
|
||||
AND body_id IN
|
||||
<foreach item="bodyId" collection="bodyIds" open="(" separator="," close=")">
|
||||
#{bodyId}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="compIds != null and compIds.size() > 0">
|
||||
AND comp_id IN
|
||||
<foreach item="compId" collection="compIds" open="(" separator="," close=")">
|
||||
#{compId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND source_id = 0
|
||||
</insert>
|
||||
<select id="selectOrderItemTempForItem"
|
||||
resultType="com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemTempDO">
|
||||
|
||||
<insert id="selectInsertOrderItem">
|
||||
INSERT INTO order_item
|
||||
SELECT *
|
||||
FROM order_item_temp
|
||||
WHERE order_id = #{orderId} and organ_id = #{organId}
|
||||
WHERE id > #{lastId}
|
||||
AND order_id = #{orderId}
|
||||
AND organ_id = #{organId}
|
||||
AND source_id = 0
|
||||
|
||||
<if test="bodyIds != null and bodyIds.size() > 0">
|
||||
AND body_id IN
|
||||
<foreach item="bodyId" collection="bodyIds" open="(" separator="," close=")">
|
||||
<foreach item="bodyId"
|
||||
collection="bodyIds"
|
||||
open="("
|
||||
separator=","
|
||||
close=")">
|
||||
#{bodyId}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="compIds != null and compIds.size() > 0">
|
||||
AND comp_id IN
|
||||
<foreach item="compId" collection="compIds" open="(" separator="," close=")">
|
||||
<foreach item="compId"
|
||||
collection="compIds"
|
||||
open="("
|
||||
separator=","
|
||||
close=")">
|
||||
#{compId}
|
||||
</foreach>
|
||||
</if>
|
||||
</insert>
|
||||
|
||||
ORDER BY id
|
||||
LIMIT #{pageSize}
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user