From 0a523b3a5e529d023b1c26f2f82b491f0b0a9924 Mon Sep 17 00:00:00 2001
From: gaoqr <13665037151@163.com>
Date: Mon, 15 Jun 2026 17:08:40 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3?=
=?UTF-8?q?=E6=9D=BF=E4=BB=B6=E5=AD=94/=E9=80=A0=E5=9E=8B=E6=95=B0?=
=?UTF-8?q?=E9=87=8Fsql=E8=A7=84=E8=8C=83=E6=80=A7=E4=BF=AE=E6=AD=A3?=
=?UTF-8?q?=E3=80=81=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3=E6=8E=92=E7=89=88?=
=?UTF-8?q?=E9=9D=A2=E5=AD=97=E6=AE=B5=E8=A1=A5=E5=85=85=EF=BC=9B2?=
=?UTF-8?q?=E3=80=81=E7=A6=85=E9=81=93bug#1679=E4=BF=AE=E5=A4=8D=EF=BC=9B3?=
=?UTF-8?q?=E3=80=81=E9=9C=80=E6=B1=82#37=E5=AE=9E=E7=8E=B0=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../cf-module-prod-executor-biz/pom.xml | 5 +
.../query/vo/pack/PackageDetailsRespVO.java | 3 +
.../plate/vo/OrderViewPlatePageRespVO.java | 2 +-
.../orderItem/OrdersViewPlatesPageDO.java | 2 +-
.../executor/dal/mysql/goods/GoodsMapper.java | 7 +
.../executor/dal/mysql/order/OrderMapper.java | 20 +-
.../dal/mysql/orderBody/OrderBodyMapper.java | 7 +
.../mysql/orderGroup/OrderGroupMapper.java | 6 +
.../dal/mysql/orderItem/OrderItemMapper.java | 7 +
.../mysql/orderParts/OrderPartsMapper.java | 6 +
.../ordercomponent/OrderComponentMapper.java | 7 +
.../executor/dal/mysql/plate/PlateMapper.java | 7 +
.../OrderInfoVersionControlServiceImpl.java | 18 +-
.../executor/service/order/OrderService.java | 7 +
.../service/order/OrderServiceImpl.java | 234 +++++++++++++++++-
.../intervalometer/OrderInvalidCleanJob.java | 27 ++
.../intervalometer/OrderScheduledImpl.java | 87 -------
.../resources/mapper/goods/GoodsMapper.xml | 8 +
.../resources/mapper/order/OrderMapper.xml | 10 +-
.../mapper/orderBody/OrderBodyMapper.xml | 8 +
.../mapper/orderGroup/OrderGroupMapper.xml | 7 +
.../mapper/orderItem/OrderItemMapper.xml | 8 +
.../mapper/orderParts/OrderPartsMapper.xml | 8 +
.../ordercomponent/OrderComponentMapper.xml | 8 +
.../resources/mapper/plate/PlateMapper.xml | 76 +++---
25 files changed, 440 insertions(+), 145 deletions(-)
create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/intervalometer/OrderInvalidCleanJob.java
delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/intervalometer/OrderScheduledImpl.java
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml
index 3323347f1..13bac15c2 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml
@@ -87,6 +87,11 @@
cf-spring-boot-starter-test
test
+
+
+ com.cf.imes
+ cf-spring-boot-starter-job
+
com.cf.imes
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/query/vo/pack/PackageDetailsRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/query/vo/pack/PackageDetailsRespVO.java
index 17b5d409d..49e98e0f1 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/query/vo/pack/PackageDetailsRespVO.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/manage/query/vo/pack/PackageDetailsRespVO.java
@@ -67,6 +67,9 @@ public class PackageDetailsRespVO {
@Schema(description = "是否有孔")
private Boolean isRowHole;
+ @Schema(description = "排版面")
+ private Integer holeArrange;
+
@Schema(description = "加工组")
private String processGroup;
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderViewPlatePageRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderViewPlatePageRespVO.java
index c2b6317db..91db72997 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderViewPlatePageRespVO.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OrderViewPlatePageRespVO.java
@@ -113,7 +113,7 @@ public class OrderViewPlatePageRespVO {
private Boolean isRowHole;
@Schema(description = "排版面")
- private Integer holeFace;
+ private Integer holeArrange;
@Schema(description = "开门类型")
private Integer openDoorType;
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrdersViewPlatesPageDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrdersViewPlatesPageDO.java
index cc859b587..ac568fcfd 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrdersViewPlatesPageDO.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/orderItem/OrdersViewPlatesPageDO.java
@@ -175,7 +175,7 @@ public class OrdersViewPlatesPageDO {
/**
* 排版面
*/
- private Integer holeFace;
+ private Integer holeArrange;
/**
* 开门类型
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java
index 4238e81ea..6d3c1170b 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java
@@ -224,4 +224,11 @@ public interface GoodsMapper extends BaseMapperX {
* @return
*/
List getParentOrderIdsByGoodsIds(@Param("goodsIds") List goodsId, @Param("orderIds") List orderIds);
+
+ /**
+ * 物理删除订单材质
+ *
+ * @return
+ */
+ int physicalDeleteByOrderIds(@Param("ids") List ids);
}
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java
index 350ffe5a8..0636f603f 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java
@@ -261,11 +261,18 @@ public interface OrderMapper extends BaseMapperX {
.eqIfPresent(OrderDO::getId, id));
}
- // 查询修改时间距离当天日期为30的订单
- default List selectOrderListByUpdateTime() {
+ /**
+ * 查询修改时间距离当天日期为30的订单
+ *
+ * @param organId
+ * @return
+ */
+ default List selectOrderListByUpdateTime(Long organId) {
return selectList(new LambdaQueryWrapper()
.eq(OrderDO::getDeleted, OrderDeletedEnum.DELETED.getStatus())
- .lt(OrderDO::getUpdateTime, LocalDateTime.now().minusDays(30))).stream().map(OrderDO::getId).toList();
+ .lt(OrderDO::getUpdateTime, LocalDateTime.now().minusDays(30))
+ .eq(OrderDO::getOrganId, organId)
+ ).stream().map(OrderDO::getId).toList();
}
default int updateOrderListStatus(List orderIds, Integer status,Long organId) {
@@ -393,4 +400,11 @@ public interface OrderMapper extends BaseMapperX {
* @return
*/
List selectPackPartsNum(@Param("orderIds") Collection orderIds);
+
+ /**
+ * 物理删除订单
+ *
+ * @return
+ */
+ int physicalDeleteByOrderIds(@Param("orderIds") List orderIds);
}
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderBody/OrderBodyMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderBody/OrderBodyMapper.java
index 226e4d8c4..db05615b8 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderBody/OrderBodyMapper.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderBody/OrderBodyMapper.java
@@ -204,4 +204,11 @@ public interface OrderBodyMapper extends BaseMapperX {
* @return
*/
List selectPlateNumAndArea(@Param("orderBodyIds") Collection orderBodyIds, @Param("delete") Boolean delete);
+
+ /**
+ * 物理删除订单材质
+ *
+ * @return
+ */
+ int physicalDeleteByOrderIds(@Param("ids") List ids);
}
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderGroup/OrderGroupMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderGroup/OrderGroupMapper.java
index 16b5b753a..c19c53aef 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderGroup/OrderGroupMapper.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderGroup/OrderGroupMapper.java
@@ -152,4 +152,10 @@ public interface OrderGroupMapper extends BaseMapperX {
List selectFilterGoodsPlateList(@Param(Constants.WRAPPER) Wrapper wrapper);
+ /**
+ * 物理删除订单材质
+ *
+ * @return
+ */
+ int physicalDeleteByOrderIds(@Param("ids") List ids);
}
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java
index 20f4178e8..29789348a 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java
@@ -352,4 +352,11 @@ public interface OrderItemMapper extends BaseMapperX {
@Param("pageSize") int pageSize,
@Param("bodyIds") Set bodyIds,
@Param("compIds") Set componentIds);
+
+ /**
+ * 物理删除订单材质
+ *
+ * @return
+ */
+ int physicalDeleteByOrderIds(@Param("ids") List ids);
}
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderParts/OrderPartsMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderParts/OrderPartsMapper.java
index 4a0acafce..d7bc70a05 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderParts/OrderPartsMapper.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderParts/OrderPartsMapper.java
@@ -151,4 +151,10 @@ public interface OrderPartsMapper extends BaseMapperX {
List selectLabelOrderPartsData(@Param("orderIds") List orderIds, @Param("organId") Long organId);
+ /**
+ * 物理删除订单配件
+ *
+ * @return
+ */
+ int physicalDeleteByOrderIds(@Param("ids") List ids);
}
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/ordercomponent/OrderComponentMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/ordercomponent/OrderComponentMapper.java
index 61db53086..8b640be15 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/ordercomponent/OrderComponentMapper.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/ordercomponent/OrderComponentMapper.java
@@ -88,4 +88,11 @@ public interface OrderComponentMapper extends BaseMapperX {
* @param componentIds
*/
void updateOrderComponentsDeletedStatus(@Param("orderId") Long orderId, @Param("componentIds") List componentIds, @Param("delete") boolean delete);
+
+ /**
+ * 物理删除订单
+ *
+ * @return
+ */
+ int physicalDeleteByOrderIds(@Param("ids") List id);
}
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java
index 06dd13b93..3de3f3fd3 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java
@@ -458,4 +458,11 @@ public interface PlateMapper extends BaseMapperX {
* @return
*/
IPage selectPlanPlateInfoPage(@Param("page") IPage page, @Param("planIds") List planIds, @Param("orderIds") Set orderIds);
+
+ /**
+ * 物理删除订单材质
+ *
+ * @return
+ */
+ int physicalDeleteByOrderIds(@Param("ids") List ids);
}
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderInfoVersionControlServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderInfoVersionControlServiceImpl.java
index 95678d3fc..37cb40b51 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderInfoVersionControlServiceImpl.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderInfoVersionControlServiceImpl.java
@@ -150,19 +150,19 @@ public class OrderInfoVersionControlServiceImpl implements OrderInfoVersionContr
.collect(Collectors.toMap(OrderDO::getId, Function.identity()));
List orderPackPlateNumDOS = orderMapper.selectPackPlateNum(orderIds);
- List orderPackPartsNumDOS = orderMapper.selectPackPartsNum(orderIds);
- Map orderPackPartsNumMap = new HashMap<>();
- if (CollUtil.isNotEmpty(orderPackPartsNumDOS)) {
- orderPackPartsNumMap = orderPackPartsNumDOS.stream()
- .collect(Collectors.toMap(OrderPackNumDO::getOrderId, OrderPackNumDO::getPartsNum));
- }
+// List orderPackPartsNumDOS = orderMapper.selectPackPartsNum(orderIds);
+// Map orderPackPartsNumMap = new HashMap<>();
+// if (CollUtil.isNotEmpty(orderPackPartsNumDOS)) {
+// orderPackPartsNumMap = orderPackPartsNumDOS.stream()
+// .collect(Collectors.toMap(OrderPackNumDO::getOrderId, OrderPackNumDO::getPartsNum));
+// }
for (OrderPackNumDO orderPackPlateNumDO : orderPackPlateNumDOS) {
Long orderId = orderPackPlateNumDO.getOrderId();
// 当前订单下已打包板件
Integer plateNum = orderPackPlateNumDO.getPlateNum();
- // 当前订单下已打包配件
- Integer partsNum = orderPackPartsNumMap.getOrDefault(orderId, 0);
+// // 当前订单下已打包配件
+// Integer partsNum = orderPackPartsNumMap.getOrDefault(orderId, 0);
OrderDO orderDO = orderMap.get(orderId);
@@ -175,7 +175,7 @@ public class OrderInfoVersionControlServiceImpl implements OrderInfoVersionContr
.eq(OrderDO::getId, orderId)
.eq(OrderDO::getVersion, version)
.set(OrderDO::getPackedPlatesCount, plateNum)
- .set(OrderDO::getPackedPartsCount, partsNum)
+// .set(OrderDO::getPackedPartsCount, partsNum)
.set(OrderDO::getVersion, version + 1);
int update = orderMapper.update(updateWrapper);
if (update == 0) {
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java
index cf4ecbe5a..cf6e421e9 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java
@@ -230,4 +230,11 @@ public interface OrderService {
* @return
*/
List getOrderPrintInfo(List orderIds);
+
+ /**
+ * 订单作废超过30天清理
+ *
+ * @param organId
+ */
+ void expireByOrganId(Long organId);
}
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java
index 62a23a3c7..64ddc1f8e 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java
@@ -7,10 +7,11 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.enums.DeletedCodeEnum;
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
@@ -46,6 +47,7 @@ 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.orderParts.OrderPartsDO;
import com.cf.imes.module.executor.dal.dataobject.orderParts.PartsDO;
+import com.cf.imes.module.executor.dal.dataobject.ordercomponent.OrderComponentDO;
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
@@ -61,6 +63,7 @@ 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;
+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.planitem.PlanItemMapper;
import com.cf.imes.module.executor.dal.mysql.plate.PlateGoodMapper;
@@ -81,11 +84,13 @@ import com.cf.imes.module.executor.util.deviseData.structure.PlateDetail;
import com.cf.imes.module.executor.util.elasticsearch.EsUtils;
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiDataTypeVo;
import com.cf.imes.module.infra.api.file.FileApi;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
@@ -116,6 +121,7 @@ import static com.cf.imes.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS;
*/
@Service
@Validated
+@Slf4j
public class OrderServiceImpl implements OrderService {
@Resource
@@ -151,9 +157,6 @@ public class OrderServiceImpl implements OrderService {
@Resource
private OrderInputProcessor orderInputProcessor;
- @Resource
- private IdentifierGenerator identifierGenerator;
-
@Resource
private PartsMapper partsMapper;
@@ -183,6 +186,9 @@ public class OrderServiceImpl implements OrderService {
@Lazy
private PackService packService;
+ @Resource
+ private OrderComponentMapper orderComponentMapper;
+
@Resource
private OrderInfoVersionControlService orderInfoVersionControlService;
@@ -932,11 +938,6 @@ public class OrderServiceImpl implements OrderService {
orderMapper.deleteOrder(orderId, getUserOrganId()); // 订单删除
-// 删除板材的造型数据 es
- orderInputProcessor.deleteByOrderId(orderId, ORDER_PLATE_MODEL.getIndex());
-// 删除备注信息 es
- orderInputProcessor.deleteByOrderId(orderId, ORDER_PARTS_REMARK_MODEL.getIndex());
-
}
/**
@@ -1899,4 +1900,219 @@ public class OrderServiceImpl implements OrderService {
);
return BeanUtil.copyToList(orderDOS, OrderPrintInfoRespVO.class);
}
+
+ @Override
+ @DS("imes_prod")
+ @Transactional(
+ rollbackFor = Exception.class,
+ propagation = Propagation.REQUIRES_NEW)
+ public void expireByOrganId(Long organId) {
+ try {
+ List orderDOList = orderMapper.selectOrderListByUpdateTime(organId);
+
+ if (CollUtil.isNotEmpty(orderDOList)) {
+ // 每10条订单删除一次
+ List> split = CollUtil.split(orderDOList, 10);
+ // 订单各种组成每1000条删除一次,直到完全删除
+ for (List orderIdBatch : split) {
+ goodsClean(orderIdBatch);
+ orderBodyClean(orderDOList);
+ orderGroupClean(orderDOList);
+ orderPartsClean(orderDOList);
+ orderItemClean(orderDOList);
+ plateClean(orderDOList);
+ orderComponentClean(orderDOList);
+ orderClean(orderDOList);
+ }
+ System.out.println("=======1清理1111111111111111");
+ }
+
+ } catch (Exception e) {
+ log.error("订单作废30天清理异常,组织{}", organId, e);
+ }
+ }
+
+ /**
+ * 物理删除订单材质
+ *
+ * @param orderIds
+ */
+ public void goodsClean(List orderIds) {
+ while (true) {
+ List ids = goodsMapper.selectList(
+ Wrappers.lambdaQuery()
+ .select(GoodsDO::getId)
+ .in(GoodsDO::getOrderId, orderIds)
+ .last("limit 1000")
+ ).stream()
+ .map(GoodsDO::getId)
+ .toList();
+ if (ids.isEmpty()) {
+ break;
+ }
+
+ goodsMapper.physicalDeleteByOrderIds(ids);
+ }
+ }
+
+ /**
+ * 物理删除订单柜体
+ *
+ * @param orderIds
+ */
+ public void orderBodyClean(List orderIds) {
+ while (true) {
+ List ids = orderBodyMapper.selectList(
+ Wrappers.lambdaQuery()
+ .select(OrderBodyDO::getId)
+ .in(OrderBodyDO::getOrderId, orderIds)
+ .last("limit 1000")
+ ).stream()
+ .map(OrderBodyDO::getId)
+ .toList();
+ if (ids.isEmpty()) {
+ break;
+ }
+
+ orderBodyMapper.physicalDeleteByOrderIds(ids);
+ }
+ }
+
+ /**
+ * 物理删除订单加工组
+ *
+ * @param orderIds
+ */
+ public void orderGroupClean(List orderIds) {
+ while (true) {
+ List ids = orderGroupMapper.selectList(
+ Wrappers.lambdaQuery()
+ .select(OrderGroupDO::getId)
+ .in(OrderGroupDO::getOrderId, orderIds)
+ .last("limit 1000")
+ ).stream()
+ .map(OrderGroupDO::getId)
+ .toList();
+ if (ids.isEmpty()) {
+ break;
+ }
+
+ orderGroupMapper.physicalDeleteByOrderIds(ids);
+ }
+ }
+
+ /**
+ * 物理删除订单配件
+ *
+ * @param orderIds
+ */
+ public void orderPartsClean(List orderIds) {
+ while (true) {
+ List ids = orderPartsMapper.selectList(
+ Wrappers.lambdaQuery()
+ .select(OrderPartsDO::getId)
+ .in(OrderPartsDO::getOrderId, orderIds)
+ .last("limit 1000")
+ ).stream()
+ .map(OrderPartsDO::getId)
+ .toList();
+ if (ids.isEmpty()) {
+ break;
+ }
+
+ orderPartsMapper.physicalDeleteByOrderIds(ids);
+ }
+ }
+
+ /**
+ * 物理删除订单关联明细
+ *
+ * @param orderIds
+ */
+ public void orderItemClean(List orderIds) {
+ while (true) {
+ List ids = orderItemMapper.selectList(
+ Wrappers.lambdaQuery()
+ .select(OrderItemDO::getId)
+ .in(OrderItemDO::getOrderId, orderIds)
+ .last("limit 1000")
+ ).stream()
+ .map(OrderItemDO::getId)
+ .toList();
+ if (ids.isEmpty()) {
+ break;
+ }
+
+ orderItemMapper.physicalDeleteByOrderIds(ids);
+ }
+ }
+
+ /**
+ * 物理删除订单板件
+ *
+ * @param orderIds
+ */
+ public void plateClean(List orderIds) {
+ while (true) {
+ List ids = plateMapper.selectList(
+ Wrappers.lambdaQuery()
+ .select(PlateDO::getId)
+ .in(PlateDO::getOrderId, orderIds)
+ .last("limit 1000")
+ ).stream()
+ .map(PlateDO::getId)
+ .toList();
+ if (ids.isEmpty()) {
+ break;
+ }
+
+ plateMapper.physicalDeleteByOrderIds(ids);
+ }
+ }
+
+ /**
+ * 物理删除订单部件
+ *
+ * @param orderIds
+ */
+ public void orderComponentClean(List orderIds) {
+ while (true) {
+ List ids = orderComponentMapper.selectList(
+ Wrappers.lambdaQuery()
+ .select(OrderComponentDO::getId)
+ .in(OrderComponentDO::getOrderId, orderIds)
+ .last("limit 1000")
+ ).stream()
+ .map(OrderComponentDO::getId)
+ .toList();
+ if (ids.isEmpty()) {
+ break;
+ }
+
+ orderComponentMapper.physicalDeleteByOrderIds(ids);
+ }
+ }
+
+ /**
+ * 物理删除订单
+ *
+ * @param orderIds
+ */
+ public void orderClean(List orderIds) {
+ while (true) {
+ List ids = orderMapper.selectList(
+ Wrappers.lambdaQuery()
+ .select(OrderDO::getId)
+ .in(OrderDO::getId, orderIds)
+ .last("limit 1000")
+ ).stream()
+ .map(OrderDO::getId)
+ .toList();
+ if (ids.isEmpty()) {
+ break;
+ }
+
+ orderMapper.physicalDeleteByOrderIds(ids);
+ }
+ }
}
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/intervalometer/OrderInvalidCleanJob.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/intervalometer/OrderInvalidCleanJob.java
new file mode 100644
index 000000000..66959f7f5
--- /dev/null
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/intervalometer/OrderInvalidCleanJob.java
@@ -0,0 +1,27 @@
+package com.cf.imes.module.executor.service.order.intervalometer;
+
+import com.cf.imes.framework.organ.core.context.OrganContextHolder;
+import com.cf.imes.framework.organ.core.job.OrganJob;
+import com.cf.imes.module.executor.service.order.OrderService;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import jakarta.annotation.Resource;
+
+/**
+ * 订单定时处理器
+ */
+@Slf4j
+@Component
+public class OrderInvalidCleanJob {
+
+ @Resource
+ private OrderService orderService;
+
+ @XxlJob("orderInvalidCleanJob")
+ @OrganJob
+ public void execute() {
+ orderService.expireByOrganId(OrganContextHolder.getOrganId());
+ }
+}
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/intervalometer/OrderScheduledImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/intervalometer/OrderScheduledImpl.java
deleted file mode 100644
index 8b6fb77a8..000000000
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/intervalometer/OrderScheduledImpl.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.cf.imes.module.executor.service.order.intervalometer;
-
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.cf.imes.framework.organ.core.aop.OrganIgnore;
-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.OrderItemMapper;
-import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper;
-import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
-import com.cf.imes.module.executor.dal.mysql.rawgoods.RawGoodsMapper;
-import com.cf.imes.module.executor.service.order.OrderInputProcessor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import jakarta.annotation.Resource;
-import java.util.List;
-
-import static com.cf.imes.module.executor.enums.EsIndexEnum.ORDER_PARTS_REMARK_MODEL;
-import static com.cf.imes.module.executor.enums.EsIndexEnum.ORDER_PLATE_MODEL;
-
-
-/**
- * 订单定时处理器
- */
-@Slf4j
-@Component
-@DS("slave")
-public class OrderScheduledImpl {
-
- @Resource
- private OrderMapper orderMapper;
-
- @Resource
- private RawGoodsMapper rawGoodsMapper;
-
- @Resource
- private GoodsMapper goodsMapper;
-
- @Resource
- private OrderPartsMapper orderPartsMapper;
-
- @Resource
- private PlateMapper plateMapper;
-
- @Resource
- private OrderBodyMapper orderBodyMapper;
-
- @Resource
- private OrderGroupMapper orderGroupMapper;
-
- @Resource
- private OrderItemMapper orderItemMapper;
-
- @Resource
- private OrderInputProcessor orderInputProcessor;
-
-
- // @Scheduled(cron = "0 0 2 * * ?")
- @OrganIgnore
- @Transactional(rollbackFor = Exception.class)
- public void fixedDeletedOrder() {
-
- List orderDOList = orderMapper.selectOrderListByUpdateTime();
-
- // 作废 订单表,body,group,goods,parts,plate,raw_goods,item
- rawGoodsMapper.deleteBatch(orderDOList);
- goodsMapper.deleteBatch(orderDOList);
- orderItemMapper.deleteBatch(orderDOList);
- orderBodyMapper.deleteBatch(orderDOList);
- orderGroupMapper.deleteBatch(orderDOList);
-
- orderPartsMapper.deleteBatch(orderDOList);
- plateMapper.deleteBatch(orderDOList);
-
- orderMapper.deleteBatchIds(orderDOList); // 订单删除
-
-// 删除板材的造型数据 es
- orderInputProcessor.deleteByOrderId(orderDOList, ORDER_PLATE_MODEL.getIndex());
-// 删除备注信息 es
- orderInputProcessor.deleteByOrderId(orderDOList, ORDER_PARTS_REMARK_MODEL.getIndex());
-
- }
-
-}
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml
index aa6c3200a..7a3ad2447 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml
@@ -621,5 +621,13 @@
+
+ delete from order_goods
+ where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml
index 14fae3aca..6bed5df66 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml
@@ -934,7 +934,7 @@
+
+
+ delete from orders
+ where id in
+
+ #{orderIds}
+
+
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderBody/OrderBodyMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderBody/OrderBodyMapper.xml
index ebad2d577..37677de8e 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderBody/OrderBodyMapper.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderBody/OrderBodyMapper.xml
@@ -95,4 +95,12 @@
GROUP BY oi.body_id
+
+
+ delete from order_body
+ where id in
+
+ #{id}
+
+
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderGroup/OrderGroupMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderGroup/OrderGroupMapper.xml
index d6267a6a1..75664f05e 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderGroup/OrderGroupMapper.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderGroup/OrderGroupMapper.xml
@@ -101,4 +101,11 @@
+
+ delete from order_group
+ where id in
+
+ #{id}
+
+
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml
index c56612eea..97c2a98eb 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml
@@ -1027,4 +1027,12 @@
LIMIT #{pageSize}
+
+
+ delete from order_item
+ where id in
+
+ #{id}
+
+
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml
index 094b1fbbc..a042cf320 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml
@@ -629,4 +629,12 @@
and op.id = #{partsId};
+
+
+ delete from order_parts
+ where id in
+
+ #{id}
+
+
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/ordercomponent/OrderComponentMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/ordercomponent/OrderComponentMapper.xml
index 02a154550..3ccf2963f 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/ordercomponent/OrderComponentMapper.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/ordercomponent/OrderComponentMapper.xml
@@ -151,4 +151,12 @@
and deleted != #{delete}
+
+
+ delete from order_component
+ where id in
+
+ #{id}
+
+
\ No newline at end of file
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml
index 3ad45ea65..339b38fd1 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml
@@ -472,7 +472,7 @@
op.open_door_type as openDoorType,
op.offset_x as offsetX,
op.offset_y as offsetY,
- (op.unregular_point_count > 0 ) AS isSpecialShaped,
+ CASE WHEN op.unregular_point_count > 0 THEN 1 ELSE 0 END AS isSpecialShaped,
op.is_sculpt as isSculpt,
op.is_side_sculpt AS sideModel,
op.is_row_hole as isRowHole,
@@ -480,13 +480,13 @@
op.model_data as modelData,
op.is_2v as is2v,
op.is_side_2v as isSide2v,
- (op.front_model_count > 0 AND op.back_model_count > 0) AS doubleSideModel,
- (op.front_hole_count > 0 AND op.back_hole_count > 0) AS doubleSideHole,
- (op.front_model_count > 0) AS frontModel,
- (op.back_model_count > 0) AS backModel,
- (op.front_hole_count > 0) AS frontHole,
- (op.back_hole_count > 0) AS backHole,
- (op.side_hole_count > 0) AS sideHole
+ CASE WHEN op.front_model_count > 0 AND op.back_model_count > 0 THEN 1 ELSE 0 END AS doubleSideModel,
+ CASE WHEN op.front_hole_count > 0 AND op.back_hole_count > 0 THEN 1 ELSE 0 END AS doubleSideHole,
+ CASE WHEN op.front_model_count > 0 THEN 1 ELSE 0 END AS frontModel,
+ CASE WHEN op.back_model_count > 0 THEN 1 ELSE 0 END AS backModel,
+ CASE WHEN op.front_hole_count > 0 THEN 1 ELSE 0 END AS frontHole,
+ CASE WHEN op.back_hole_count > 0 THEN 1 ELSE 0 END AS backHole,
+ CASE WHEN op.side_hole_count > 0 THEN 1 ELSE 0 END AS sideHole
FROM order_plate op
@@ -588,20 +588,20 @@
op.open_door_type as openDoorType,
op.offset_x as offsetX,
op.offset_y as offsetY,
- (op.unregular_point_count > 0 ) AS isSpecialShaped,
+ CASE WHEN op.unregular_point_count > 0 THEN 1 ELSE 0 END AS isSpecialShaped,
op.is_sculpt as isSculpt,
op.is_row_hole as isRowHole,
op.remark as remark,
op.model_data as modelData,
op.is_2v as is2v,
op.is_side_2v as isSide2v,
- (op.front_model_count > 0 AND op.back_model_count > 0) AS doubleSideModel,
- (op.front_hole_count > 0 AND op.back_hole_count > 0) AS doubleSideHole,
- (op.front_model_count > 0) AS frontModel,
- (op.back_model_count > 0) AS backModel,
- (op.front_hole_count > 0) AS frontHole,
- (op.back_hole_count > 0) AS backHole,
- (op.side_hole_count > 0) AS sideHole
+ CASE WHEN op.front_model_count > 0 AND op.back_model_count > 0 THEN 1 ELSE 0 END AS doubleSideModel,
+ CASE WHEN op.front_hole_count > 0 AND op.back_hole_count > 0 THEN 1 ELSE 0 END AS doubleSideHole,
+ CASE WHEN op.front_model_count > 0 THEN 1 ELSE 0 END AS frontModel,
+ CASE WHEN op.back_model_count > 0 THEN 1 ELSE 0 END AS backModel,
+ CASE WHEN op.front_hole_count > 0 THEN 1 ELSE 0 END AS frontHole,
+ CASE WHEN op.back_hole_count > 0 THEN 1 ELSE 0 END AS backHole,
+ CASE WHEN op.side_hole_count > 0 THEN 1 ELSE 0 END AS sideHole
FROM order_plate op
@@ -1507,21 +1507,21 @@
p.reserved_edge_down AS reservedEdgeDown,
p.area,
p.texture,
- (p.unregular_point_count > 0 ) AS isSpecialShaped,
+ CASE WHEN p.unregular_point_count > 0 THEN 1 ELSE 0 END AS isSpecialShaped,
p.is_sculpt ,
p.is_side_sculpt AS sideModel,
p.is_row_hole,
- p.hole_face,
+ p.hole_arrange,
p.open_door_type,
p.is_2v as is2v,
p.is_side_2v as isSide2v,
- (p.front_model_count > 0 AND p.back_model_count > 0) AS doubleSideModel,
- (p.front_hole_count > 0 AND p.back_hole_count > 0) AS doubleSideHole,
- (p.front_model_count > 0) AS frontModel,
- (p.back_model_count > 0) AS backModel,
- (p.front_hole_count > 0) AS frontHole,
- (p.back_hole_count > 0) AS backHole,
- (p.side_hole_count > 0) AS sideHole,
+ CASE WHEN p.front_model_count > 0 AND p.back_model_count > 0 THEN 1 ELSE 0 END AS doubleSideModel,
+ CASE WHEN p.front_hole_count > 0 AND p.back_hole_count > 0 THEN 1 ELSE 0 END AS doubleSideHole,
+ CASE WHEN p.front_model_count > 0 THEN 1 ELSE 0 END AS frontModel,
+ CASE WHEN p.back_model_count > 0 THEN 1 ELSE 0 END AS backModel,
+ CASE WHEN p.front_hole_count > 0 THEN 1 ELSE 0 END AS frontHole,
+ CASE WHEN p.back_hole_count > 0 THEN 1 ELSE 0 END AS backHole,
+ CASE WHEN p.side_hole_count > 0 THEN 1 ELSE 0 END AS sideHole,
p.split_height,
p.split_width,
og.material,
@@ -1644,21 +1644,21 @@
p.reserved_edge_down AS reservedEdgeDown,
p.area,
p.texture,
- (p.unregular_point_count > 0 ) AS isSpecialShaped,
+ CASE WHEN p.unregular_point_count > 0 THEN 1 ELSE 0 END AS isSpecialShaped,
p.is_sculpt ,
p.is_side_sculpt AS sideModel,
p.is_row_hole,
- p.hole_face,
+ p.hole_arrange,
p.open_door_type,
p.is_2v as is2v,
p.is_side_2v as isSide2v,
- (p.front_model_count > 0 AND p.back_model_count > 0) AS doubleSideModel,
- (p.front_hole_count > 0 AND p.back_hole_count > 0) AS doubleSideHole,
- (p.front_model_count > 0) AS frontModel,
- (p.back_model_count > 0) AS backModel,
- (p.front_hole_count > 0) AS frontHole,
- (p.back_hole_count > 0) AS backHole,
- (p.side_hole_count > 0) AS sideHole,
+ CASE WHEN p.front_model_count > 0 AND p.back_model_count > 0 THEN 1 ELSE 0 END AS doubleSideModel,
+ CASE WHEN p.front_hole_count > 0 AND p.back_hole_count > 0 THEN 1 ELSE 0 END AS doubleSideHole,
+ CASE WHEN p.front_model_count > 0 THEN 1 ELSE 0 END AS frontModel,
+ CASE WHEN p.back_model_count > 0 THEN 1 ELSE 0 END AS backModel,
+ CASE WHEN p.front_hole_count > 0 THEN 1 ELSE 0 END AS frontHole,
+ CASE WHEN p.back_hole_count > 0 THEN 1 ELSE 0 END AS backHole,
+ CASE WHEN p.side_hole_count > 0 THEN 1 ELSE 0 END AS sideHole,
p.split_height,
p.split_width,
og.material,
@@ -1678,6 +1678,14 @@
and p.deleted = false
+
+ delete from order_plate
+ where id in
+
+ #{id}
+
+
+