From 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 07 十一月 2026 08:50:53 +0800
Subject: [PATCH] feat: 完善质检、生产、销售、财务与人事模块并接入审批流程
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/feedback/MesProFeedbackMapper.java | 64 +++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 1 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/feedback/MesProFeedbackMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/feedback/MesProFeedbackMapper.java
index b40c765..90d7bb4 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/feedback/MesProFeedbackMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/feedback/MesProFeedbackMapper.java
@@ -1,28 +1,59 @@
package cn.iocoder.yudao.module.mes.dal.mysql.pro.feedback;
+import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
import cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo.MesProFeedbackPageReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO;
+import cn.iocoder.yudao.module.mes.enums.pro.MesProFeedbackStatusEnum;
import org.apache.ibatis.annotations.Mapper;
+import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
/**
* MES 鐢熶骇鎶ュ伐 Mapper
*
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
*/
@Mapper
public interface MesProFeedbackMapper extends BaseMapperX<MesProFeedbackDO> {
+ default MesProFeedbackDO selectByIdForUpdate(Long id) {
+ return selectOne(new LambdaQueryWrapperX<MesProFeedbackDO>()
+ .eq(MesProFeedbackDO::getId, id).last("FOR UPDATE"));
+ }
+
default PageResult<MesProFeedbackDO> selectPage(MesProFeedbackPageReqVO reqVO) {
+ // 褰撴寜浠诲姟缂栫爜妯$硦鏌ヨ鏃讹紝闇�瑕� JOIN 浠诲姟琛�
+ if (StrUtil.isNotBlank(reqVO.getTaskCode())) {
+ MPJLambdaWrapperX<MesProFeedbackDO> query = new MPJLambdaWrapperX<>();
+ query.selectAll(MesProFeedbackDO.class);
+ query.leftJoin(MesProTaskDO.class, on -> on
+ .eq(MesProTaskDO::getId, MesProFeedbackDO::getTaskId));
+ query.like(MesProTaskDO::getCode, reqVO.getTaskCode());
+ query.likeIfPresent(MesProFeedbackDO::getCode, reqVO.getCode())
+ .eqIfPresent(MesProFeedbackDO::getType, reqVO.getType())
+ .eqIfPresent(MesProFeedbackDO::getWorkOrderId, reqVO.getWorkOrderId())
+ .eqIfPresent(MesProFeedbackDO::getTaskId, reqVO.getTaskId())
+ .eqIfPresent(MesProFeedbackDO::getStatus, reqVO.getStatus())
+ .betweenIfPresent(MesProFeedbackDO::getFeedbackTime, reqVO.getFeedbackTime())
+ .eqIfPresent(MesProFeedbackDO::getItemId, reqVO.getItemId())
+ .eqIfPresent(MesProFeedbackDO::getFeedbackUserId, reqVO.getFeedbackUserId())
+ .eqIfPresent(MesProFeedbackDO::getCreator, reqVO.getCreator())
+ .orderByDesc(MesProFeedbackDO::getId);
+ return selectPage(reqVO, query);
+ }
+ // 涓嶆秹鍙婁换鍔$紪鐮佹煡璇㈡椂锛岃蛋鏅�氭煡璇�
return selectPage(reqVO, new LambdaQueryWrapperX<MesProFeedbackDO>()
.likeIfPresent(MesProFeedbackDO::getCode, reqVO.getCode())
.eqIfPresent(MesProFeedbackDO::getType, reqVO.getType())
.eqIfPresent(MesProFeedbackDO::getWorkOrderId, reqVO.getWorkOrderId())
+ .eqIfPresent(MesProFeedbackDO::getTaskId, reqVO.getTaskId())
.eqIfPresent(MesProFeedbackDO::getStatus, reqVO.getStatus())
.betweenIfPresent(MesProFeedbackDO::getFeedbackTime, reqVO.getFeedbackTime())
.eqIfPresent(MesProFeedbackDO::getItemId, reqVO.getItemId())
@@ -46,4 +77,35 @@
.in(MesProFeedbackDO::getTaskId, taskIds));
}
+ /**
+ * 宸ユ椂鑰冩牳鎶ヨ〃鍙栨暟锛氭椂闂存鍐呭凡瀹℃壒閫氳繃锛堝緟妫�楠�/宸插畬鎴愶級鐨勬姤宸ュ崟
+ */
+ default List<MesProFeedbackDO> selectWorktimeReportList(LocalDateTime beginTime, LocalDateTime endTime,
+ Long feedbackUserId, Long processId, Long workstationId) {
+ return selectList(new LambdaQueryWrapperX<MesProFeedbackDO>()
+ .eqIfPresent(MesProFeedbackDO::getFeedbackUserId, feedbackUserId)
+ .eqIfPresent(MesProFeedbackDO::getProcessId, processId)
+ .eqIfPresent(MesProFeedbackDO::getWorkstationId, workstationId)
+ .inIfPresent(MesProFeedbackDO::getStatus,
+ MesProFeedbackStatusEnum.UNCHECK.getStatus(),
+ MesProFeedbackStatusEnum.FINISHED.getStatus())
+ .ge(MesProFeedbackDO::getFeedbackTime, beginTime)
+ .le(MesProFeedbackDO::getFeedbackTime, endTime));
+ }
+
+ /**
+ * 鏌ヨ鎸囧畾鎶ュ伐浜哄湪鏌愭椂闂存鍐呭凡瀹℃壒閫氳繃锛堝緟妫�楠�/宸插畬鎴愶級鐨勬姤宸ュ崟锛岀敤浜庢眹鎬绘湀搴︽姤宸ュ伐璧勩��
+ * 鑽夌銆佸鎵逛腑鐨勬姤宸ヤ笉璁¤柂銆�
+ */
+ default List<MesProFeedbackDO> selectWageListByUserIds(Collection<Long> feedbackUserIds,
+ LocalDateTime beginTime, LocalDateTime endTime) {
+ return selectList(new LambdaQueryWrapperX<MesProFeedbackDO>()
+ .in(MesProFeedbackDO::getFeedbackUserId, feedbackUserIds)
+ .in(MesProFeedbackDO::getStatus,
+ MesProFeedbackStatusEnum.UNCHECK.getStatus(),
+ MesProFeedbackStatusEnum.FINISHED.getStatus())
+ .ge(MesProFeedbackDO::getFeedbackTime, beginTime)
+ .le(MesProFeedbackDO::getFeedbackTime, endTime));
+ }
+
}
--
Gitblit v1.9.3