|
@@ -1,6 +1,7 @@
|
|
package com.qmth.sop.business.service.impl;
|
|
package com.qmth.sop.business.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -363,7 +364,37 @@ public class TBUserArchivesServiceImpl extends ServiceImpl<TBUserArchivesMapper,
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public void cancelUserArchives(List<Long> userArchivesIdList) {
|
|
public void cancelUserArchives(List<Long> userArchivesIdList) {
|
|
- // TODO: 2023/8/23 档案作废具体逻辑
|
|
|
|
|
|
+ long currentTime = System.currentTimeMillis();
|
|
|
|
+ if (CollectionUtils.isNotEmpty(userArchivesIdList)) {
|
|
|
|
+ for (Long archivesId : userArchivesIdList) {
|
|
|
|
+ UserArchivesResult userArchivesResult = this.findUserArchivesByArchivesIdORUserId(archivesId, null);
|
|
|
|
+ Long validTime = userArchivesResult.getAuthenticationValidTime();
|
|
|
|
+ // 作废校验1 - 认证状态失效
|
|
|
|
+ if (validTime != null && currentTime < validTime) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(String.format("[%s]的认证状态为有效,不能作废", userArchivesResult.getName()));
|
|
|
|
+ }
|
|
|
|
+ // 作废校验2 - 为空闲状态
|
|
|
|
+ UserArchivesStatusEnum status = userArchivesResult.getStatus();
|
|
|
|
+ Long userId = userArchivesResult.getUserId();
|
|
|
|
+ boolean isCoordinator = sysUserRoleService.userContainsRoles(userId, RoleTypeEnum.REGION_COORDINATOR);
|
|
|
|
+ if (!isCoordinator) {
|
|
|
|
+ // 不是区域协调人直接判断非空闲即可作废
|
|
|
|
+ if (UserArchivesStatusEnum.OCCUPIED.equals(status)) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(String.format("[%s]为非空闲,不能作废", userArchivesResult.getName()));
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ // 包含区域协调人判断该区域协调人涉及的所有派单均完成
|
|
|
|
+ if (tbCrmService.list(new QueryWrapper<TBCrm>().lambda()
|
|
|
|
+ .eq(TBCrm::getRegionCoordinatorId, userId)
|
|
|
|
+ .ne(TBCrm::getStatus, CrmStatusEnum.FINISH)).size() > 0) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(String.format("区域协调人[%s]有未完成的派单,不能作废", userArchivesResult.getName()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ UpdateWrapper<TBUserArchives> updateWrapper = new UpdateWrapper<>();
|
|
|
|
+ updateWrapper.lambda().in(TBUserArchives::getId, userArchivesIdList).set(TBUserArchives::getEnable, false);
|
|
|
|
+ this.update(updateWrapper);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|