From 2969df3e404db3cd116f27db1495e523ce05bf86 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 31 三月 2024 10:35:33 +0800
Subject: [PATCH] pref修改
---
smart-man-boot/src/main/java/com/qianwen/smartman/modules/perf/service/impl/EmployeeOnOffWorkServiceImpl.java | 113 ++++++++++++++++++++++++++++++++++----------------------
1 files changed, 68 insertions(+), 45 deletions(-)
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/perf/service/impl/EmployeeOnOffWorkServiceImpl.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/perf/service/impl/EmployeeOnOffWorkServiceImpl.java
index 66ced51..846876e 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/perf/service/impl/EmployeeOnOffWorkServiceImpl.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/perf/service/impl/EmployeeOnOffWorkServiceImpl.java
@@ -1,18 +1,25 @@
package com.qianwen.smartman.modules.perf.service.impl;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import java.lang.invoke.SerializedLambda;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
+
import org.apache.commons.compress.utils.Lists;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qianwen.core.log.exception.ServiceException;
+import com.qianwen.core.mp.base.BaseEntity;
+import com.qianwen.core.mp.service.impl.BladeServiceImpl;
+import com.qianwen.core.mp.support.Condition;
+import com.qianwen.core.secure.utils.AuthUtil;
+import com.qianwen.core.tool.utils.DateUtil;
+import com.qianwen.core.tool.utils.Func;
+import com.qianwen.core.tool.utils.SpringUtil;
import com.qianwen.smartman.common.cache.cps.EmployeeCache;
import com.qianwen.smartman.common.constant.CommonGroupConstant;
import com.qianwen.smartman.common.enums.CommonGroupTypeEnum;
@@ -22,15 +29,6 @@
import com.qianwen.smartman.common.utils.MessageUtils;
import com.qianwen.smartman.common.utils.TimeUtils;
import com.qianwen.smartman.common.utils.TreeUtils;
-import com.qianwen.core.log.exception.ServiceException;
-import com.qianwen.core.mp.base.BaseEntity;
-import com.qianwen.core.mp.service.impl.BladeServiceImpl;
-import com.qianwen.core.mp.support.Condition;
-import com.qianwen.core.notify.DefaultNotifyType;
-import com.qianwen.core.secure.utils.AuthUtil;
-import com.qianwen.core.tool.utils.DateUtil;
-import com.qianwen.core.tool.utils.Func;
-import com.qianwen.core.tool.utils.SpringUtil;
import com.qianwen.smartman.modules.cps.entity.Workstation;
import com.qianwen.smartman.modules.cps.service.IEmployeeService;
import com.qianwen.smartman.modules.cps.service.IWorkstationService;
@@ -55,12 +53,9 @@
import com.qianwen.smartman.modules.perf.vo.QueryWorkStatusVO;
import com.qianwen.smartman.modules.perf.vo.SearchEmployeeWorkVO;
import com.qianwen.smartman.modules.perf.vo.SearchWorkEmployeeVO;
-import org.springframework.stereotype.Service;
public class EmployeeOnOffWorkServiceImpl extends BladeServiceImpl<EmployeeOnOffWorkMapper, EmployeeOnOffWork> implements IEmployeeOnOffWorkService {
private static final Logger log = LoggerFactory.getLogger(com.qianwen.smartman.modules.perf.service.impl.EmployeeOnOffWorkServiceImpl.class);
-
- static final /* synthetic */ int[] $SwitchMap$com$qianwen$smartman$modules$perf$enums$WorkStatusEnum;
private final IEmployeeService employeeService;
@@ -76,9 +71,25 @@
public List<EmployeeWorkStatusVO> allWorkstationStatus(QueryWorkStatusVO vo) {
List<WorkstationBO> workstations = vo.getWorkstations();
- if (Func.isEmpty(workstations))
+ if (Func.isEmpty(workstations)) {
return Lists.newArrayList();
+ }
+
WorkStatusEnum queryType = vo.getQueryType();
+ switch(queryType) {
+ case ALL://0
+ return allWorkStatusList(workstations);
+ case ON://1
+ return onWorkStatusList(workstations, OnOffWorkEnum.WILL_OFF.getCode());
+
+ case OFF://2
+ return offWorkStatusList(workstations, OnOffWorkEnum.WILL_OFF.getCode());
+ case MY:
+ return currentEmployeeWork(workstations);
+
+ }
+
+ /*
switch ($SwitchMap$com$qianwen$smartman$modules$perf$enums$WorkStatusEnum[queryType.ordinal()]) {
//com.qianwen.smartman.modules.perf.enums.WorkStatusEnum
case 1:
@@ -89,7 +100,7 @@
return offWorkStatusList(workstations, OnOffWorkEnum.WILL_OFF.getCode());
case 4:
return currentEmployeeWork(workstations);
- }
+ }*/
return Lists.newArrayList();
}
@@ -101,6 +112,17 @@
Integer type = vo.getType();
List<Long> workstationIds = (List<Long>)vo.getWorks().stream().map(WorkstationBO::getId).collect(Collectors.toList());
EmployeeCache.clearPerfCache(workstationIds);
+
+ switch (OnOffWorkEnum.of(type)) {
+ case WILL_ON:
+ batchOnWorkstation(vo);
+ break;
+ case WILL_OFF:
+ batchOffWorkstation(vo);
+ break;
+ }
+
+ /*
switch ($SwitchMap$com$qianwen$smartman$modules$perf$enums$WorkStatusEnum[OnOffWorkEnum.of(type).ordinal()]) {
case 1:
batchOnWorkstation(vo);
@@ -108,7 +130,7 @@
case 2:
batchOffWorkstation(vo);
break;
- }
+ } */
this.employeeSendService.sendMessageRocket(workstationIds);
return Boolean.valueOf(true);
}
@@ -128,32 +150,33 @@
public IPage<EmployeeOnOffWorkVO> queryOnOffLog(QueryEmployeeLogVO vo) {
IPage<EmployeeOnOffWork> page;
if (Func.isEmpty(vo.getWorkstationIds()))
- return (IPage<EmployeeOnOffWorkVO>)new Page();
+ return new Page<>();
+
String dbType = SpringUtil.getContext().getEnvironment().getProperty("datasource.type");
String startTime = TimeUtils.getStartTime(vo.getStartTime());
String endTime = TimeUtils.getEndTime(vo.getEndTime());
if (DbTypeEnum.ORACLE.getCode().equals(dbType)) {
page = page(Condition.getPage(vo.getQuery()),
- (Wrapper)((ExtraLambdaQueryWrapper)Lambda.in(Func.isNotEmpty(vo.getEmployeeIds()), EmployeeOnOffWork::getOnEmployeeId, vo.getEmployeeIds())
- .in(EmployeeOnOffWork::getWorkstationId, vo.getWorkstationIds()))
+ Lambda.in(Func.isNotEmpty(vo.getEmployeeIds()), EmployeeOnOffWork::getOnEmployeeId, vo.getEmployeeIds())
+ .in(EmployeeOnOffWork::getWorkstationId, vo.getWorkstationIds())
.nested(nt -> {
- ExtraLambdaQueryWrapper extraLambdaQueryWrapper = (ExtraLambdaQueryWrapper) nt.apply("(online_time between TO_DATE({0}, 'yyyy-mm-dd hh24:mi:ss') and TO_DATE({1}, 'yyyy-mm-dd hh24:mi:ss')) or (offline_time between TO_DATE({2}, 'yyyy-mm-dd hh24:mi:ss') and TO_DATE({3}, 'yyyy-mm-dd hh24:mi:ss'))", new Object[] { startTime, endTime, startTime, endTime });
+ ExtraLambdaQueryWrapper extraLambdaQueryWrapper = nt.apply("(online_time between TO_DATE({0}, 'yyyy-mm-dd hh24:mi:ss') and TO_DATE({1}, 'yyyy-mm-dd hh24:mi:ss')) or (offline_time between TO_DATE({2}, 'yyyy-mm-dd hh24:mi:ss') and TO_DATE({3}, 'yyyy-mm-dd hh24:mi:ss'))", new Object[] { startTime, endTime, startTime, endTime });
}));
} else {
page = page(Condition.getPage(vo.getQuery()),
- (Wrapper)((ExtraLambdaQueryWrapper)Lambda.in(Func.isNotEmpty(vo.getEmployeeIds()), EmployeeOnOffWork::getOnEmployeeId, vo.getEmployeeIds())
- .nested(n -> (ExtraLambdaQueryWrapper)((ExtraLambdaQueryWrapper)((ExtraLambdaQueryWrapper)n.between(EmployeeOnOffWork::getOnlineTime, startTime, endTime)).or()).between(EmployeeOnOffWork::getOfflineTime, startTime, endTime)))
+ Lambda.in(Func.isNotEmpty(vo.getEmployeeIds()), EmployeeOnOffWork::getOnEmployeeId, vo.getEmployeeIds())
+ .nested(n -> n.between(EmployeeOnOffWork::getOnlineTime, startTime, endTime).or().between(EmployeeOnOffWork::getOfflineTime, startTime, endTime))
.in(EmployeeOnOffWork::getWorkstationId, vo.getWorkstationIds()));
}
List<EmployeeOnOffWork> records = page.getRecords();
if (Func.isEmpty(records))
- return (IPage<EmployeeOnOffWorkVO>)new Page();
- Page page1 = new Page(page.getCurrent(), page.getSize(), page.getTotal());
- page1.setRecords((List)records.stream()
+ return new Page<>();
+ Page<EmployeeOnOffWorkVO> page1 = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
+ page1.setRecords(records.stream()
.map(com.qianwen.smartman.modules.perf.service.impl.EmployeeOnOffWorkServiceImpl::convertWork)
.collect(Collectors.toList()));
- return (IPage<EmployeeOnOffWorkVO>)page1;
+ return page1;
}
public List<WorkstationBO> employeeWork(SearchEmployeeWorkVO vo) {
@@ -162,10 +185,10 @@
String startTime = DateUtil.formatDateTime(vo.getStartTime());
String endTime = DateUtil.formatDateTime(vo.getEndTime());
if (DbTypeEnum.ORACLE.getCode().equals(dbType)) {
- works = list((Wrapper)Lambda.eq(EmployeeOnOffWork::getOnEmployeeId, vo.getEmployeeId())
- .nested(nt -> (ExtraLambdaQueryWrapper)nt.apply("(online_time between TO_DATE({0}, 'yyyy-mm-dd hh24:mi:ss') and TO_DATE({1}, 'yyyy-mm-dd hh24:mi:ss'))", new Object[] { startTime, endTime })));
+ works = list(Lambda.eq(EmployeeOnOffWork::getOnEmployeeId, vo.getEmployeeId())
+ .nested(nt -> nt.apply("(online_time between TO_DATE({0}, 'yyyy-mm-dd hh24:mi:ss') and TO_DATE({1}, 'yyyy-mm-dd hh24:mi:ss'))", new Object[] { startTime, endTime })));
} else {
- works = list((Wrapper)Lambda.eq(EmployeeOnOffWork::getOnEmployeeId, vo.getEmployeeId())
+ works = list(Lambda.eq(EmployeeOnOffWork::getOnEmployeeId, vo.getEmployeeId())
.between(EmployeeOnOffWork::getOnlineTime, startTime, endTime));
}
if (Func.isEmpty(works))
@@ -183,10 +206,10 @@
String startTime = DateUtil.formatDateTime(vo.getStartTime());
String endTime = DateUtil.formatDateTime(vo.getEndTime());
if (DbTypeEnum.ORACLE.getCode().equals(dbType)) {
- works = list((Wrapper)Lambda.eq(EmployeeOnOffWork::getWorkstationId, vo.getWorkstationId())
- .nested(nt -> (ExtraLambdaQueryWrapper)nt.apply("(online_time between TO_DATE({0}, 'yyyy-mm-dd hh24:mi:ss') and TO_DATE({1}, 'yyyy-mm-dd hh24:mi:ss'))", new Object[] { startTime, endTime })));
+ works = list(Lambda.eq(EmployeeOnOffWork::getWorkstationId, vo.getWorkstationId())
+ .nested(nt -> nt.apply("(online_time between TO_DATE({0}, 'yyyy-mm-dd hh24:mi:ss') and TO_DATE({1}, 'yyyy-mm-dd hh24:mi:ss'))", new Object[] { startTime, endTime })));
} else {
- works = list((Wrapper)Lambda.eq(EmployeeOnOffWork::getWorkstationId, vo.getWorkstationId())
+ works = list(Lambda.eq(EmployeeOnOffWork::getWorkstationId, vo.getWorkstationId())
.between(EmployeeOnOffWork::getOnlineTime, startTime, endTime));
}
if (Func.isEmpty(works))
@@ -208,13 +231,13 @@
public void currentEmployeeWork(String employeeId, String workstationId) {
- List<EmployeeOnOffWork> currEmployeeId = list((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery()
- .eq(EmployeeOnOffWork::getOnEmployeeId, employeeId))
+ List<EmployeeOnOffWork> currEmployeeId = list(Wrappers.<EmployeeOnOffWork>lambdaQuery()
+ .eq(EmployeeOnOffWork::getOnEmployeeId, employeeId)
.eq(EmployeeOnOffWork::getOnlineType, OnOffWorkEnum.WILL_OFF.getCode()));
if (Func.isNotEmpty(currEmployeeId))
throw new ServiceException(MessageUtils.message("perf.current.employee.login", new Object[0]));
- List<EmployeeOnOffWork> works = list((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery()
- .eq(EmployeeOnOffWork::getWorkstationId, workstationId))
+ List<EmployeeOnOffWork> works = list(Wrappers.<EmployeeOnOffWork>lambdaQuery()
+ .eq(EmployeeOnOffWork::getWorkstationId, workstationId)
.eq(EmployeeOnOffWork::getOnlineType, OnOffWorkEnum.WILL_OFF.getCode()));
if (Func.isNotEmpty(works))
throw new ServiceException(MessageUtils.message("perf.current.work.login", new Object[0]));
@@ -277,10 +300,10 @@
EmployeeVO employee = currentEmployee();
if (Func.isNull(employee))
return Lists.newArrayList();
- List<Long> wIds = (List<Long>)workstations.stream().map(WorkstationBO::getId).collect(Collectors.toList());
- List<EmployeeOnOffWork> works = list((Wrapper)((ExtraLambdaQueryWrapper)((ExtraLambdaQueryWrapper)Lambda.create()
- .in(EmployeeOnOffWork::getWorkstationId, wIds))
- .eq(EmployeeOnOffWork::getOnEmployeeId, employee.getId()))
+ List<Long> wIds = workstations.stream().map(WorkstationBO::getId).collect(Collectors.toList());
+ List<EmployeeOnOffWork> works = list(Lambda.<EmployeeOnOffWork>create()
+ .in(EmployeeOnOffWork::getWorkstationId, wIds)
+ .eq(EmployeeOnOffWork::getOnEmployeeId, employee.getId())
.eq(EmployeeOnOffWork::getOnlineType, OnOffWorkEnum.WILL_OFF.getCode()));
if (Func.isEmpty(works))
return Lists.newArrayList();
--
Gitblit v1.9.3