|
|
@@ -1,6 +1,7 @@
|
|
|
package com.xunmei.iot.service.impl;
|
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
@@ -11,10 +12,13 @@ import com.xunmei.common.core.domain.work.dto.ControlDeviceDto;
|
|
|
import com.xunmei.common.core.domain.work.dto.WorkDayDto;
|
|
|
import com.xunmei.common.core.domain.work.vo.WorkFieldDataVo;
|
|
|
import com.xunmei.common.core.domain.work.vo.WorkVo;
|
|
|
-import com.xunmei.common.security.utils.SecurityUtils;
|
|
|
+import com.xunmei.common.core.domain.workhistory.vo.WorkGroupVo;
|
|
|
+import com.xunmei.common.core.domain.workhistory.vo.WorkHistoryVo;
|
|
|
+import com.xunmei.common.core.domain.workhistory.vo.WorkItemVo;
|
|
|
import com.xunmei.common.core.enums.work.GroupTypeEnum;
|
|
|
import com.xunmei.common.core.enums.work.RedirectTypeEnum;
|
|
|
import com.xunmei.common.core.enums.work.WorkTypeEnum;
|
|
|
+import com.xunmei.common.security.utils.SecurityUtils;
|
|
|
import com.xunmei.iot.factory.WorkStrategyFactory;
|
|
|
import com.xunmei.iot.interfaces.WorkFieldStrategy;
|
|
|
import com.xunmei.iot.mapper.IotDayWorkMapper;
|
|
|
@@ -22,10 +26,13 @@ import com.xunmei.iot.service.IotDayWorkOperationService;
|
|
|
import com.xunmei.iot.service.IotDayWorkService;
|
|
|
import com.xunmei.system.api.RemoteHostService;
|
|
|
import com.xunmei.system.api.domain.SysUser;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -137,6 +144,71 @@ public class IotDayWorkServiceImpl extends ServiceImpl<IotDayWorkMapper, IotDayW
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public WorkHistoryVo getHistoryList(WorkDayDto workDayDto) {
|
|
|
+ String workDate = workDayDto.getWorkDate();
|
|
|
+ if (StringUtils.isEmpty(workDate)) {
|
|
|
+ throw new RuntimeException("请选择日期");
|
|
|
+ }
|
|
|
+ DateTime parse = DateUtil.parse(workDate, "yyyy-MM-dd");
|
|
|
+ //根据日期,获取月开始时间和结束时间
|
|
|
+ Date startTime = DateUtil.beginOfMonth(parse);
|
|
|
+ Date endTime = DateUtil.endOfMonth(parse);
|
|
|
+
|
|
|
+ //获取有记录的天数
|
|
|
+ List<String> dates = operationService.selectWorkDayList(startTime, endTime);
|
|
|
+
|
|
|
+ //获取当天的工作记录
|
|
|
+ QueryWrapper<IotDayWork> qw = new QueryWrapper<>();
|
|
|
+ qw.lambda().eq(IotDayWork::getWorkDate, workDate)
|
|
|
+ .orderByDesc(IotDayWork::getCreateTime);
|
|
|
+ List<IotDayWork> list = baseMapper.selectList(qw);
|
|
|
+
|
|
|
+ List<WorkGroupVo> groups = new ArrayList<>();
|
|
|
+ WorkGroupVo workGroupVo = null;
|
|
|
+ for (IotDayWork work : list) {
|
|
|
+ workGroupVo = new WorkGroupVo();
|
|
|
+ workGroupVo.setCreateTime(work.getCreateTime());
|
|
|
+ workGroupVo.setUpdateTime(work.getUpdateTime());
|
|
|
+ workGroupVo.setWorkData(work.getWorkDate());
|
|
|
+ workGroupVo.setDataType(work.getDataType());
|
|
|
+ workGroupVo.setDataStatus(work.getDataStatus());
|
|
|
+ workGroupVo.setOrgName(work.getOrgName());
|
|
|
+ QueryWrapper<IotDayWorkOperation> oqw = new QueryWrapper<>();
|
|
|
+ oqw.lambda().eq(IotDayWorkOperation::getIotCode, work.getIotCode());
|
|
|
+ oqw.lambda().eq(IotDayWorkOperation::getHostDataId, work.getHostDataId());
|
|
|
+ List<IotDayWorkOperation> operations = operationService.list(oqw);
|
|
|
+
|
|
|
+ List<WorkItemVo> items = new ArrayList<>();
|
|
|
+ WorkItemVo item = null;
|
|
|
+ for (IotDayWorkOperation operation : operations) {
|
|
|
+ item = new WorkItemVo();
|
|
|
+ item.setObjectName(operation.getOperationName());
|
|
|
+ item.setObjectTime(operation.getOperationTime());
|
|
|
+ item.setObjectType(operation.getOperationType());
|
|
|
+ item.setObjectValue(operation.getTargetValue());
|
|
|
+ item.setObjectStatus(operation.getOperationStatus());
|
|
|
+ if ("8小时市电回路通电状态".equals(operation.getOperationName())) {
|
|
|
+ item.setObjectName("8小时市电");
|
|
|
+ }
|
|
|
+ if ("8小时UPS回路通电状态".equals(operation.getOperationName())) {
|
|
|
+ item.setObjectName("8小时UPS");
|
|
|
+ }
|
|
|
+ items.add(item);
|
|
|
+ }
|
|
|
+ workGroupVo.setItems(items);
|
|
|
+
|
|
|
+ groups.add(workGroupVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ WorkHistoryVo history = new WorkHistoryVo();
|
|
|
+ history.setWorks(groups);
|
|
|
+ history.setMarkList(dates);
|
|
|
+
|
|
|
+
|
|
|
+ return history;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 判断设备是否处于操作中
|
|
|
*
|