From b3fe06c151dc8455649bf0a46e481ceb83e3ea2a Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 07 十一月 2026 13:37:54 +0800
Subject: [PATCH] feat: 完成好水川 MOM 需求1/2/4/5/8(装箱、BOM成本、销售合同、劳动合同、留样)
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java
index 5c94ad9..da53dbf 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/workorder/MesProWorkOrderMapper.java
@@ -34,7 +34,10 @@
.eqIfPresent(MesProWorkOrderDO::getProductId, reqVO.getProductId())
.eqIfPresent(MesProWorkOrderDO::getClientId, reqVO.getClientId())
.eqIfPresent(MesProWorkOrderDO::getStatus, reqVO.getStatus())
+ .eqIfPresent(MesProWorkOrderDO::getPackingStatus, reqVO.getPackingStatus())
.betweenIfPresent(MesProWorkOrderDO::getRequestDate, reqVO.getRequestDate())
+ .notIn(CollUtil.isNotEmpty(reqVO.getExcludeStatuses()),
+ MesProWorkOrderDO::getStatus, reqVO.getExcludeStatuses())
.orderByDesc(MesProWorkOrderDO::getId));
}
@@ -50,8 +53,12 @@
.eqIfPresent(MesProWorkOrderDO::getProductId, reqVO.getProductId())
.eqIfPresent(MesProWorkOrderDO::getClientId, reqVO.getClientId())
.eqIfPresent(MesProWorkOrderDO::getStatus, reqVO.getStatus())
+ .eqIfPresent(MesProWorkOrderDO::getPackingStatus, reqVO.getPackingStatus())
.betweenIfPresent(MesProWorkOrderDO::getRequestDate, reqVO.getRequestDate())
.orderByDesc(MesProWorkOrderDO::getId);
+ if (CollUtil.isNotEmpty(reqVO.getExcludeStatuses())) {
+ wrapper.notIn(MesProWorkOrderDO::getStatus, reqVO.getExcludeStatuses());
+ }
if (permittedClientIds != null) {
if (CollUtil.isEmpty(permittedClientIds)) {
return PageResult.empty();
@@ -103,4 +110,24 @@
return selectCount(MesProWorkOrderDO::getVendorId, vendorId);
}
+ /**
+ * 绱姞宸ュ崟鐨勫凡瑁呯鏁伴噺涓庡凡瑁呯绠辨暟
+ */
+ default void updatePackedQuantity(Long id, BigDecimal incrQuantity, Integer incrBoxCount) {
+ update(null, new LambdaUpdateWrapper<MesProWorkOrderDO>()
+ .eq(MesProWorkOrderDO::getId, id)
+ .setSql("packed_quantity = IFNULL(packed_quantity, 0) + " + incrQuantity.toPlainString())
+ .setSql("packed_box_count = IFNULL(packed_box_count, 0) + " + incrBoxCount));
+ }
+
+ /**
+ * 鏍规嵁宸茶绠辨暟閲忛噸绠楄绠辩姸鎬侊細宸茶 >= 宸ュ崟鏁伴噺涓哄畬鎴�(2)锛岄儴鍒嗕负 1锛屽惁鍒� 0
+ */
+ default void updatePackingStatus(Long id) {
+ update(null, new LambdaUpdateWrapper<MesProWorkOrderDO>()
+ .eq(MesProWorkOrderDO::getId, id)
+ .setSql("packing_status = CASE WHEN IFNULL(packed_quantity, 0) >= IFNULL(quantity, 0) THEN 2 "
+ + "WHEN IFNULL(packed_quantity, 0) > 0 THEN 1 ELSE 0 END"));
+ }
+
}
--
Gitblit v1.9.3