Commit 32a7d14d01219d044ab0bfe9bcbb0908239004e8
1 parent
5bc4d5ed
✨ feat(mes): 添加用户已上工的错误码检查
Showing
3 changed files
with
10 additions
and
2 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/pro/workrecord/MesProWorkRecordDO.java
| ... | ... | @@ -3,8 +3,10 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.pro.workrecord; |
| 3 | 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | 4 | import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; |
| 5 | 5 | import com.baomidou.mybatisplus.annotation.KeySequence; |
| 6 | +import com.baomidou.mybatisplus.annotation.TableField; | |
| 6 | 7 | import com.baomidou.mybatisplus.annotation.TableId; |
| 7 | 8 | import com.baomidou.mybatisplus.annotation.TableName; |
| 9 | +import com.baomidou.mybatisplus.annotation.FieldStrategy; | |
| 8 | 10 | import lombok.*; |
| 9 | 11 | |
| 10 | 12 | import java.time.LocalDateTime; | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
| ... | ... | @@ -283,6 +283,7 @@ public interface ErrorCodeConstants { |
| 283 | 283 | |
| 284 | 284 | // ========== MES 生产管理-工作记录(1-040-508-000) ========== |
| 285 | 285 | ErrorCode WORK_RECORD_NOT_CLOCK_IN = new ErrorCode(1_040_508_001, "当前用户未上工,无法下工"); |
| 286 | + ErrorCode WORK_RECORD_ALREADY_CLOCK_IN = new ErrorCode(1_040_508_002, "当前用户已上工,请先下工再操作"); | |
| 286 | 287 | |
| 287 | 288 | // ========== MES 质量管理-质检方案(1-040-600-000) ========== |
| 288 | 289 | ErrorCode QC_TEMPLATE_NOT_EXISTS = new ErrorCode(1_040_600_000, "质检方案不存在"); | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workrecord/MesProWorkRecordServiceImpl.java
| ... | ... | @@ -17,6 +17,7 @@ import org.springframework.validation.annotation.Validated; |
| 17 | 17 | import java.time.LocalDateTime; |
| 18 | 18 | |
| 19 | 19 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 20 | +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WORK_RECORD_ALREADY_CLOCK_IN; | |
| 20 | 21 | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WORK_RECORD_NOT_CLOCK_IN; |
| 21 | 22 | |
| 22 | 23 | /** |
| ... | ... | @@ -48,8 +49,13 @@ public class MesProWorkRecordServiceImpl implements MesProWorkRecordService { |
| 48 | 49 | @Override |
| 49 | 50 | @Transactional(rollbackFor = Exception.class) |
| 50 | 51 | public Long clockInWorkRecord(Long userId, Long workstationId) { |
| 51 | - // 1. 校验工作站是否存在 | |
| 52 | + // 1.1 校验工作站是否存在 | |
| 52 | 53 | workstationService.validateWorkstationExists(workstationId); |
| 54 | + // 1.2 校验是否重复上线 | |
| 55 | + MesProWorkRecordDO record = workRecordMapper.selectByUserId(userId); | |
| 56 | + if (record != null && ObjUtil.equal(MesProWorkRecordTypeEnum.CLOCK_IN.getType(), record.getType())) { | |
| 57 | + throw exception(WORK_RECORD_ALREADY_CLOCK_IN); | |
| 58 | + } | |
| 53 | 59 | |
| 54 | 60 | // 2. 写入上线流水 |
| 55 | 61 | MesProWorkRecordLogDO log = MesProWorkRecordLogDO.builder().userId(userId) |
| ... | ... | @@ -57,7 +63,6 @@ public class MesProWorkRecordServiceImpl implements MesProWorkRecordService { |
| 57 | 63 | workRecordLogMapper.insert(log); |
| 58 | 64 | |
| 59 | 65 | // 3. 更新用户工作站状态:如果没有记录,或先删除旧记录 |
| 60 | - MesProWorkRecordDO record = workRecordMapper.selectByUserId(userId); | |
| 61 | 66 | if (record == null) { |
| 62 | 67 | record = MesProWorkRecordDO.builder().userId(userId).workstationId(workstationId) |
| 63 | 68 | .type(MesProWorkRecordTypeEnum.CLOCK_IN.getType()).clockInTime(LocalDateTime.now()).build(); | ... | ... |