Browse Source

完善opc展示页面

hfxc226 2 years ago
parent
commit
e219d87ccd

+ 1 - 31
platform-dao/src/main/java/com/platform/dao/vo/export/remote/ExportRemoteOpcVO.java

@@ -24,16 +24,10 @@ public class ExportRemoteOpcVO implements Serializable {
     @Excel(name = "id")
     private Integer id;
 
-    /**
-     * id
-     */
-    @Excel(name = "id")
-    private String sbId;
-
     /**
      * 名称
      */
-    @Excel(name = "名称")
+    @Excel(name = "点位名称")
     private String sbName;
 
     /**
@@ -169,29 +163,5 @@ public class ExportRemoteOpcVO implements Serializable {
     @Excel(name = "备注")
     private String remark;
 
-    /**
-     * 创建人
-     */
-    @Excel(name = "创建人")
-    private String createdUserId;
-
-    /**
-     * 更新人
-     */
-    @Excel(name = "更新人")
-    private String updateUserId;
-
-    /**
-     * 创建日期
-     */
-    @Excel(name = "创建日期")
-    private LocalDateTime createdTime;
-
-    /**
-     * 更新日期
-     */
-    @Excel(name = "更新日期")
-    private LocalDateTime updateTime;
-
 
 }

+ 2 - 0
platform-opc/src/main/java/com/platform/opc/servie/OpcInit.java

@@ -120,7 +120,9 @@ public class OpcInit {
         List<RemoteOpc> remoteOpcFailList = new ArrayList<>();
         AddFailedException exception = OpcDAClient.addGroupList(listMap);
         if (exception != null) {
+            // 如果报错要清空这2个,不然获取数据和保存数据不动
             RedisUtils.setString(OpcDAClient.redis_ok, "0");
+            RedisUtils.del(RedisKeyConstants.redis_opc_update_flag);
             Map<String, Integer> failedItems = exception.getErrors();
             Map<String, Item> addItems = exception.getItems();
             if (failedItems != null) {// 有不存在的item,需要更新对应的点位信息

+ 0 - 1
platform-opc/src/main/java/com/platform/opc/util/OpcDAClient.java

@@ -174,7 +174,6 @@ public class OpcDAClient {
                     itemArrList.put(entry.getKey() + "", oldList);
                 }
                 log.info("组建完成,开始查询数据...,组key:" + group.getName() + ", 组数量:" + itemArrList.get(entry.getKey() + "").size());
-
             }
         } catch (AddFailedException e) {
             e.printStackTrace();

+ 39 - 0
platform-rest/src/main/java/com/platform/rest/controller/remote/RemoteOpcLogController.java

@@ -1,5 +1,7 @@
 package com.platform.rest.controller.remote;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.R;
@@ -8,6 +10,7 @@ import com.platform.common.validation.group.UpdateGroup;
 import com.platform.dao.dto.remote.RemoteOpcLogDTO;
 import com.platform.dao.entity.remote.RemoteOpcLog;
 import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.remote.ExportRemoteOpcLogOneDayVO;
 import com.platform.dao.vo.export.remote.ExportRemoteOpcLogVO;
 import com.platform.dao.vo.query.remote.RemoteOpcLogVO;
 import com.platform.rest.log.annotation.SysLog;
@@ -18,6 +21,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -44,6 +48,17 @@ public class RemoteOpcLogController {
         return new R(remoteOpcLogService.getVOById(id));
     }
 
+    /**
+     * 通过点位,日期查询单条记录
+     *
+     * @param remoteOpcLogDTO 主键
+     * @return R
+     */
+    @GetMapping("/dto")
+    public R getByDTO(RemoteOpcLogDTO remoteOpcLogDTO) {
+        return new R(remoteOpcLogService.getVOByDTO(remoteOpcLogDTO));
+    }
+
     /**
      * 新增记录
      *
@@ -137,6 +152,30 @@ public class RemoteOpcLogController {
         ExcelUtil.exportResponseDict(response, ExportRemoteOpcLogVO.class, BeanConverterUtil.copyListProperties(list, ExportRemoteOpcLogVO.class), "opc记录表");
     }
 
+    /**
+     * opc记录表导出-导出某个点位的某天数据
+     *
+     * @param remoteOpcLogDTO opc记录表DTO
+     * @return R
+     */
+    @GetMapping("/export/oneDay")
+    @SysLog("opc导出某个点位的某天数据")
+    @PreAuthorize("@pms.hasPermission('remote-opc-logs-export')")
+    public void exportOneDay(HttpServletResponse response, RemoteOpcLogDTO remoteOpcLogDTO) {
+        RemoteOpcLogVO vo = remoteOpcLogService.getVOById(remoteOpcLogDTO.getId().toString());
+        String str = vo.getDataJsonStr();
+        JSONArray array = JSONArray.parseArray(str);
+        List<ExportRemoteOpcLogOneDayVO> list = new ArrayList<>();
+        for (int i = 0; i < array.size(); i++) {
+            JSONObject jsonObject = array.getJSONObject(i);
+            ExportRemoteOpcLogOneDayVO data = new ExportRemoteOpcLogOneDayVO();
+            data.setTime(jsonObject.getString("time"));
+            data.setValue(jsonObject.getString("value"));
+            list.add(data);
+        }
+        ExcelUtil.exportResponseDict(response, ExportRemoteOpcLogOneDayVO.class, list, vo.getSbName() + "-" + vo.getYear() + "年" +  vo.getMonth() + "月" +vo.getDay() + "日");
+    }
+
     /**
      * 查询某个点位当日的实时数据,最多300多个点
      * @param RemoteOpcLogDTO opc记录表DTO

+ 8 - 0
platform-service/src/main/java/com/platform/service/remote/RemoteOpcLogService.java

@@ -25,6 +25,14 @@ public interface RemoteOpcLogService extends IBaseService<RemoteOpcLog, RemoteOp
      */
     RemoteOpcLogVO getVOById(String id);
 
+    /**
+     * 获取明细
+     *
+     * @param record
+     * @return
+     */
+    RemoteOpcLogVO getVOByDTO(RemoteOpcLogDTO record);
+
     /**
      * 批量删除
      *

+ 50 - 0
platform-service/src/main/java/com/platform/service/remote/impl/RemoteOpcLogServiceImpl.java

@@ -42,7 +42,9 @@ import java.util.List;
 @AllArgsConstructor
 @Service("remoteOpcLogService")
 public class RemoteOpcLogServiceImpl extends BaseServiceImpl<RemoteOpcLogMapper, RemoteOpcLog, RemoteOpcLogDTO> implements RemoteOpcLogService {
+
     private final RemoteOpcService remoteOpcService;
+
     @Override
     public RemoteOpcLogVO getVOById(String id) {
         RemoteOpcLog log = mapper.selectByPrimaryKey(id);
@@ -69,6 +71,54 @@ public class RemoteOpcLogServiceImpl extends BaseServiceImpl<RemoteOpcLogMapper,
         return vo;
     }
 
+    /**
+     * 默认查询当天
+     * *
+     * @param record
+     * @return
+     */
+    @Override
+    public RemoteOpcLogVO getVOByDTO(RemoteOpcLogDTO record) {
+        if(record.getYear() == null){
+            LocalDateTime localDateTime = LocalDateTime.now();
+            record.setYear(localDateTime.getYear());
+            record.setMonth(localDateTime.getMonthValue());
+            record.setDay(localDateTime.getDayOfMonth());
+        }
+        Weekend<RemoteOpcLog> weekend = new Weekend<>(RemoteOpcLog.class);
+        WeekendCriteria<RemoteOpcLog, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andEqualTo(RemoteOpcLog::getPositionNum, record.getPositionNum())
+                .andEqualTo(RemoteOpcLog::getYear, record.getYear())
+                .andEqualTo(RemoteOpcLog::getMonth, record.getMonth())
+                .andEqualTo(RemoteOpcLog::getDay, record.getDay());
+        RemoteOpcLog log = mapper.selectOneByExample(weekend);
+        RemoteOpc remoteOpc = remoteOpcService.selectByPositionNum(record.getPositionNum());
+        if(log == null){
+            log = new RemoteOpcLog();
+            log.setPositionNum(record.getPositionNum());
+        }
+        log.setSbId(remoteOpc.getId());
+        log.setSbName(remoteOpc.getSbName());
+        log.setUnit(remoteOpc.getUnit());
+        log.setRatio(remoteOpc.getRatio());
+        log.setType(remoteOpc.getType());
+        log.setDescription(remoteOpc.getDescription());
+        RemoteOpcLogVO vo = BeanConverterUtil.copyObjectProperties(log, RemoteOpcLogVO.class);
+        if(!StringUtils.isEmpty(log.getRemark())){
+            String[] remarks = log.getRemark().split(";");
+            JSONArray array = new JSONArray();
+            for(String remark:remarks){
+                String[] data = remark.split(",");
+                JSONObject object = new JSONObject();
+                object.put("time",data[0] );
+                object.put("value",data[1] + "");
+                array.add(object);
+            }
+            vo.setDataJsonStr(array.toJSONString());
+        }
+        return vo;
+    }
+
     @Override
     public int batchDelete(List<String> ids) {
         Weekend<RemoteOpcLog> weekend = new Weekend<>(RemoteOpcLog.class);