|
|
@@ -8,7 +8,9 @@ import cn.iocoder.yudao.module.iscs.controller.admin.lock.vo.LockPageReqVO;
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.lock.vo.LockRespVO;
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.lock.vo.LockSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dataobject.lock.LockDO;
|
|
|
+import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkTicketLockDO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.mysql.lock.LockMapper;
|
|
|
+import cn.iocoder.yudao.module.iscs.service.workdesign.WorkflowWorkTicketLockService;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
@@ -17,6 +19,7 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
@@ -33,6 +36,8 @@ public class LockServiceImpl extends ServiceImpl<LockMapper, LockDO> implements
|
|
|
|
|
|
@Resource
|
|
|
private LockMapper lockMapper;
|
|
|
+ @Resource
|
|
|
+ private WorkflowWorkTicketLockService workflowWorkTicketLockService;
|
|
|
|
|
|
@Override
|
|
|
public Long createLock(LockSaveReqVO createReqVO) {
|
|
|
@@ -71,20 +76,27 @@ public class LockServiceImpl extends ServiceImpl<LockMapper, LockDO> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void deleteLockListByIds(List<Long> ids) {
|
|
|
+ public void deleteLockListByIds(List<Long> ids) {
|
|
|
// 校验存在
|
|
|
- validateLockExists(ids);
|
|
|
- // 删除
|
|
|
- lockMapper.deleteByIds(ids);
|
|
|
- }
|
|
|
-
|
|
|
- private void validateLockExists(List<Long> ids) {
|
|
|
List<LockDO> list = lockMapper.selectByIds(ids);
|
|
|
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
|
|
|
throw exception(LOCK_NOT_EXISTS);
|
|
|
}
|
|
|
+ List<String> lockNfcList = list.stream().map(LockDO::getLockNfc).toList();
|
|
|
+ // 校验最近一个月有没有被某个作业使用,有则不能删除
|
|
|
+ // 1. 获取当前时间
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ // 2. 获取过去最近一个月的时间(精确到月份偏移)
|
|
|
+ LocalDateTime lastMonthTime = now.minusMonths(1);
|
|
|
+ List<WorkflowWorkTicketLockDO> workflowWorkTicketLockDOList = workflowWorkTicketLockService.list(Wrappers.<WorkflowWorkTicketLockDO>lambdaQuery()
|
|
|
+ .in(WorkflowWorkTicketLockDO::getLockNfc, lockNfcList)
|
|
|
+ .ge(WorkflowWorkTicketLockDO::getCreateTime, lastMonthTime));
|
|
|
+ Assert.isTrue(workflowWorkTicketLockDOList.isEmpty(), "该硬件近一个月存在作业,暂不可删除");
|
|
|
+ // 删除
|
|
|
+ lockMapper.deleteByIds(ids);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private void validateLockExists(Long id) {
|
|
|
if (lockMapper.selectById(id) == null) {
|
|
|
throw exception(LOCK_NOT_EXISTS);
|