Bladeren bron

1.一键上下班功能代码完成 代码提交

jingyuanchao 1 jaar geleden
bovenliggende
commit
08f865df75

File diff suppressed because it is too large
+ 4 - 1
project_data/sql/0.1.1/soc/soc.sql


+ 42 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/workhistory/vo/WorkGroupVo.java

@@ -0,0 +1,42 @@
+package com.xunmei.common.core.domain.workhistory.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 每一次上下班
+ */
+@Data
+public class WorkGroupVo {
+    /**
+     * 机构名称
+     */
+    private String orgName;
+    /**
+     * 数据状态
+     */
+    private Integer dataStatus;
+    /**
+     * 数据类型
+     */
+    private Integer dataType;
+    /**
+     * 数据日期
+     */
+    private String workData;
+    /**
+     * 开始时间
+     */
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date  createTime;
+    /**
+     * 结束时间
+     */
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    private List<WorkItemVo> items;
+}

+ 21 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/workhistory/vo/WorkHistoryVo.java

@@ -0,0 +1,21 @@
+package com.xunmei.common.core.domain.workhistory.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 历史数据详情vo
+ */
+@Data
+public class WorkHistoryVo {
+
+    /**
+     * 时间段内存在上下班的日期
+     */
+    private List<String> markList;
+    /**
+     * 上下班对象
+     */
+    private List<WorkGroupVo> works;
+}

+ 35 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/workhistory/vo/WorkItemVo.java

@@ -0,0 +1,35 @@
+package com.xunmei.common.core.domain.workhistory.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 上下班明细数据
+ */
+@Data
+public class WorkItemVo {
+
+    /**
+     * 对象名称
+     */
+    private String objectName;
+    /**
+     * 对象状态
+     */
+    private Integer objectStatus;
+    /**
+     * 对象类型
+     */
+    private Integer objectType;
+    /**
+     * 对象值
+     */
+    private Integer objectValue;
+    /**
+     * 对象时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date objectTime;
+}

+ 12 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotDayWorkController.java

@@ -5,6 +5,7 @@ import com.xunmei.common.core.domain.work.dto.ControlDeviceDto;
 import com.xunmei.common.core.domain.work.dto.OperationPassDto;
 import com.xunmei.common.core.domain.work.dto.WorkDayDto;
 import com.xunmei.common.core.domain.work.vo.WorkVo;
+import com.xunmei.common.core.domain.workhistory.vo.WorkHistoryVo;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.iot.service.IotDayWorkService;
 import com.xunmei.iot.service.IotServerInfoService;
@@ -86,5 +87,16 @@ public class IotDayWorkController {
         }
     }
 
+    @ApiOperation(value = "一键上下班")
+    @PostMapping("/getHistory")
+    public AjaxResult getHistory(@RequestBody WorkDayDto workDayDto){
+        try{
+            WorkHistoryVo historyList = workService.getHistoryList(workDayDto);
+            return AjaxResult.success("查询成功",historyList);
+        }catch (Exception e){
+            e.printStackTrace();
+            return AjaxResult.error("指令下发失败:,"+ e.getMessage());
+        }
+    }
 }
 

+ 5 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotDayWorkOperationMapper.java

@@ -2,6 +2,10 @@ package com.xunmei.iot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xunmei.common.core.domain.work.domain.IotDayWorkOperation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,5 @@ import com.xunmei.common.core.domain.work.domain.IotDayWorkOperation;
  */
 public interface IotDayWorkOperationMapper extends BaseMapper<IotDayWorkOperation> {
 
+    List<String> selectWorkDayList(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
 }

+ 3 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotDayWorkOperationService.java

@@ -3,6 +3,7 @@ package com.xunmei.iot.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.work.domain.IotDayWorkOperation;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -17,4 +18,6 @@ public interface IotDayWorkOperationService extends IService<IotDayWorkOperation
 
 
     List<IotDayWorkOperation> getIotDayWorkOperationList();
+
+    List<String> selectWorkDayList(Date startTime, Date endTime);
 }

+ 2 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IotDayWorkService.java

@@ -5,6 +5,7 @@ import com.xunmei.common.core.domain.work.domain.IotDayWork;
 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.WorkVo;
+import com.xunmei.common.core.domain.workhistory.vo.WorkHistoryVo;
 
 /**
  * <p>
@@ -39,4 +40,5 @@ public interface IotDayWorkService extends IService<IotDayWork> {
 
     void changeDevice(ControlDeviceDto controlDeviceDto);
 
+    WorkHistoryVo getHistoryList(WorkDayDto workDayDto);
 }

+ 6 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDayWorkOperationServiceImpl.java

@@ -7,6 +7,7 @@ import com.xunmei.iot.mapper.IotDayWorkOperationMapper;
 import com.xunmei.iot.service.IotDayWorkOperationService;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -27,4 +28,9 @@ public class IotDayWorkOperationServiceImpl extends ServiceImpl<IotDayWorkOperat
         qw.eq(IotDayWorkOperation::getOperationStatus, 0);
         return baseMapper.selectList(qw);
     }
+
+    @Override
+    public List<String> selectWorkDayList(Date startTime, Date endTime) {
+        return baseMapper.selectWorkDayList(startTime, endTime);
+    }
 }

+ 73 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDayWorkServiceImpl.java

@@ -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;
+    }
+
     /**
      * 判断设备是否处于操作中
      *

+ 3 - 0
soc-modules/soc-modules-iot/src/main/resources/mapper/IotDayWorkOperationMapper.xml

@@ -2,4 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xunmei.iot.mapper.IotDayWorkOperationMapper">
 
+    <select id="selectWorkDayList" resultType="java.lang.String">
+        select distinct work_date from iot_day_work where create_time &gt;=#{startTime} and create_time &lt; #{endTime}
+    </select>
 </mapper>

Some files were not shown because too many files changed in this diff