From 3bd5f68b6db251dfa9bf377758faa6315b3a372d Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 02 八月 2024 17:11:50 +0800
Subject: [PATCH] 人脸合格、图片可用
---
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 105 ++++++++++++++++++++++++++++++----------------------
1 files changed, 60 insertions(+), 45 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index 745e24a..32c27db 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -9,22 +9,30 @@
import com.ycl.platform.domain.entity.*;
import com.ycl.platform.domain.form.*;
import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
+import com.ycl.platform.domain.query.ScreenQuery;
import com.ycl.platform.domain.query.WorkOrderQuery;
import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
import com.ycl.platform.domain.vo.WorkOrderVO;
+import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO;
+import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO;
import com.ycl.platform.mapper.*;
import com.ycl.platform.service.NotifyService;
import com.ycl.platform.service.WorkOrderAuditingRecordService;
import com.ycl.platform.service.WorkOrderService;
+import com.ycl.platform.service.YwPointService;
import com.ycl.system.Result;
import com.ycl.system.model.LoginUser;
import com.ycl.system.page.PageUtil;
import com.ycl.utils.DateUtils;
import com.ycl.utils.SecurityUtils;
import com.ycl.utils.redis.RedisCache;
+import com.ycl.utils.uuid.IdUtils;
+import enumeration.general.NotifyTypeEnum;
+import enumeration.general.UrgentLevelEnum;
+import enumeration.general.WorkOrderDistributeWayEnum;
+import enumeration.general.WorkOrderStatusEnum;
import enumeration.general.*;
import lombok.RequiredArgsConstructor;
-import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -37,7 +45,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
-import java.util.concurrent.TimeUnit;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -51,8 +59,7 @@
public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
private final WorkOrderMapper workOrderMapper;
- private final YwUnitMapper ywUnitMapper;
- private final YwPeopleMapper ywPeopleMapper;
+ private final YwPointService ywPointService;
private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper;
private final WorkOrderAuditingRecordService workOrderAuditingRecordService;
private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
@@ -60,6 +67,7 @@
private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper;
private final String DISTRIBUTE_LOCK_KEY = "distributeLock";
+ private final static String IMPORTANT = "important";
@Autowired
private RedisCache redisCache;
@@ -72,10 +80,9 @@
@Override
public Result add(WorkOrderForm form) {
WorkOrder entity = WorkOrderForm.getEntityByForm(form, null);
- entity.setWorkOrderNo(DateUtils.dateTimeNow());
+ entity.setWorkOrderNo(IdUtils.timeAddRandomNO(5));
entity.setCreateTime(DateUtils.getNowDate());
entity.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE);
- entity.setDeleted("0");
if(baseMapper.insert(entity) > 0) {
return Result.ok("娣诲姞鎴愬姛");
}
@@ -122,20 +129,34 @@
UrgentLevelEnum.WARNING,
workOrder.getWorkOrderNo());
notifyService.save(notify);
+ // 鍚屾鐐逛綅鐘舵��
+ if (form.getAuditingResult() == WorkOrderStatusEnum.AUDITING_SUCCESS) {
+ ywPointService.updateRecovery(Collections.singletonList(workOrder.getPointId()), 0);
+ }
return Result.ok("鎿嶄綔鎴愬姛");
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result batchAuditing(WorkOrderBatchAuditingForm form) {
+ // 鏍规嵁鏁呴殰绫诲瀷鑾峰彇鍒楄〃
+ List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper)
+ .in(WorkOrder::getStatus, WorkOrderStatusEnum.YW_HANDLE.getValue())
+ .in(WorkOrder::getErrorType, form.getErrorTypes())
+ .select(WorkOrder::getId, WorkOrder::getUnitId, WorkOrder::getWorkOrderNo)
+ .list();
+ if (list.isEmpty()) {
+ return Result.error("娌℃湁宸ュ崟鍙互瀹℃牳");
+ }
+ List<Integer> ids = list.stream().map(WorkOrder::getId).collect(Collectors.toList());
// 宸ュ崟鐘舵��
LambdaUpdateWrapper<WorkOrder> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
- lambdaUpdateWrapper.in(WorkOrder::getId, form.getIds());
+ lambdaUpdateWrapper.in(WorkOrder::getId, ids);
lambdaUpdateWrapper.set(WorkOrder::getStatus, form.getAuditingResult());
baseMapper.update(lambdaUpdateWrapper);
// 娣诲姞澶氭潯瀹℃牳璁板綍
List<WorkOrderAuditingRecord> workOrderAuditingRecords = new ArrayList<>();
- for (Integer id : form.getIds()) {
+ for (Integer id : ids) {
WorkOrderAuditingRecord workOrderAuditingRecord = new WorkOrderAuditingRecord();
workOrderAuditingRecord.setWorkOrderId(id);
workOrderAuditingRecord.setAuditingUser(SecurityUtils.getLoginUser().getUserId().intValue());
@@ -145,7 +166,6 @@
}
workOrderAuditingRecordService.saveBatch(workOrderAuditingRecords);
// 娣诲姞鏂伴�氱煡
- List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper).in(WorkOrder::getId, form.getIds()).select(WorkOrder::getUnitId, WorkOrder::getWorkOrderNo).list();
List<Notify> notifies = new ArrayList<>();
for (WorkOrder workOrder : list) {
Notify notify = Notify.genEntityByUnit(NotifyTypeEnum.WORK_ORDER,
@@ -181,21 +201,9 @@
}
@Override
- public Result selectYwConditionByYwId(String id) {
- return Result.ok().data(
- new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper)
- .eq(WorkOrderYwConditionRecord::getWorkOrderId, id)
- .orderByAsc(WorkOrderYwConditionRecord::getCreateTime)
- .list());
- }
-
- @Override
- public Result selectYwConditionListByYwId(String id) {
- return Result.ok().data(
- new LambdaQueryChainWrapper<>(workOrderYwConditionRecordMapper)
- .eq(WorkOrderYwConditionRecord::getWorkOrderId, id)
- .orderByAsc(WorkOrderYwConditionRecord::getCreateTime)
- .list());
+ public Result selectYwConditionByYwId(Integer id) {
+ List<WorkOrderYwConditionRecordVO> ywConditionList = workOrderYwConditionRecordMapper.selectYwConditionByYwId(id);
+ return Result.ok().data(ywConditionList);
}
@Override
@@ -259,57 +267,58 @@
public Result distributePage(DistributeWorkOrderQuery query) {
IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class);
baseMapper.distributePage(page, query);
+ page.getRecords().stream().forEach(workOrder -> {
+ if (StringUtils.hasText(workOrder.getPointTag()) && workOrder.getPointTag().contains(IMPORTANT)) {
+ workOrder.setImportant(Boolean.TRUE);
+ }
+ });
return Result.ok().data(page).total(page.getTotal());
}
@Override
+ @Transactional
public Result distributeFast(DistributeWorkOrderVO data) {
// 鑾峰彇褰撳墠鏃堕棿
LocalDateTime now = LocalDateTime.now(ZoneId.systemDefault());
+ data.setEnd(now);
switch (data.getFastWay()) {
case LAST_HALF_HOUR:
data.setStart(now.minusMinutes(30));
- data.setEnd(now);
break;
case LAST_HOUR:
data.setStart(now.minusHours(1));
- data.setEnd(now);
break;
case LAST_TWO_HOUR:
data.setStart(now.minusHours(2));
- data.setEnd(now);
break;
case LAST_DAY:
data.setStart(now.minusDays(1));
- data.setEnd(now);
break;
}
// 鏌ヨ绗﹀悎鏉′欢鐨勫伐鍗�
- List<Integer> ids = new LambdaQueryChainWrapper<>(baseMapper)
+ List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper)
+ .select(WorkOrder::getId, WorkOrder::getPointId)
.eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE)
.eq(Objects.nonNull(data.getUnitId()), WorkOrder::getUnitId, data.getUnitId())
.eq(WorkOrder::getErrorType, data.getErrorType())
.between(WorkOrder::getCreateTime, data.getStart(), data.getEnd())
.orderByDesc(WorkOrder::getCreateTime)
.last("limit " + data.getFastNumLimit())
- .list()
- .stream()
- .map(WorkOrder::getId)
- .toList();
+ .list();
+ List<Integer> ids = list.stream().map(WorkOrder::getId).toList();
+ List<Integer> pointIds = list.stream().map(WorkOrder::getPointId).toList();
- if (ids.isEmpty()) {
- return Result.error("娌℃湁绗﹀悎鏉′欢鐨勫伐鍗�");
- }
- if (!getDistributeLock()) {
- return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�");
- }
+ if (ids.isEmpty()) { return Result.error("娌℃湁绗﹀悎鏉′欢鐨勫伐鍗�"); }
+ if (!getDistributeLock()) { return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�"); }
try {
new LambdaUpdateChainWrapper<>(baseMapper)
.set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED)
.in(WorkOrder::getId, ids)
.update();
addDistributeRecord(ids, WorkOrderDistributeWayEnum.FAST_DISTRIBUTE);
+ // 鍚屾鐐逛綅鐘舵��
+ ywPointService.updateRecovery(pointIds, 1);
return Result.ok("鎴愬姛涓嬪彂" + ids.size() + "鏉″伐鍗�");
} catch (Exception e) {
return Result.error("鎿嶄綔澶辫触");
@@ -319,11 +328,10 @@
}
@Override
+ @Transactional
public Result selectedIdsDistribute(DistributeWorkOrderQuery query) {
WorkOrderDistributeWayEnum distributeWayEnum = WorkOrderDistributeWayEnum.SELECTED_DISTRIBUTE;
- if (!getDistributeLock()) {
- return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�");
- }
+ if (!getDistributeLock()) { return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�"); }
try {
if (query.getIds().isEmpty()) {
query.setIds(new LambdaQueryChainWrapper<>(baseMapper)
@@ -336,14 +344,15 @@
.collect(Collectors.toList()));
distributeWayEnum = WorkOrderDistributeWayEnum.ALL_DISTRIBUTE;
}
- if (query.getIds().isEmpty()) {
- return Result.error("娌℃湁宸ュ崟寰呬笅鍙�");
- }
+ if (query.getIds().isEmpty()) { return Result.error("娌℃湁宸ュ崟寰呬笅鍙�"); }
new LambdaUpdateChainWrapper<>(baseMapper)
.set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED)
.in(WorkOrder::getId, query.getIds())
.update();
addDistributeRecord(query.getIds(), distributeWayEnum);
+ // 鍚屾鐐逛綅鐘舵��
+ List<Integer> pointIds = new LambdaQueryChainWrapper<>(baseMapper).select(WorkOrder::getPointId).in(WorkOrder::getId, query.getIds()).list().stream().map(WorkOrder::getPointId).toList();
+ ywPointService.updateRecovery(pointIds, 1);
return Result.ok("鎴愬姛涓嬪彂" + query.getIds().size() + "鏉″伐鍗�");
} catch (Exception e) {
return Result.error("鎿嶄綔澶辫触");
@@ -413,4 +422,10 @@
.collect(Collectors.toList());
return Result.ok().data(vos);
}
+
+ @Override
+ public Result screenWorkOrder(ScreenQuery query) {
+ ScreenWorkOrderVO screen = baseMapper.screenWorkOrder(query);
+ return Result.ok().data(screen);
+ }
}
--
Gitblit v1.8.0