|
|
@@ -0,0 +1,102 @@
|
|
|
+package com.xunmei.host.dayilcheck.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.xunmei.common.core.constant.Constants;
|
|
|
+import com.xunmei.common.core.domain.iot.domain.IotDailyCheckData;
|
|
|
+import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
|
|
|
+import com.xunmei.common.core.domain.iot.vo.DailyCheckReq;
|
|
|
+import com.xunmei.host.dayilcheck.mapper.IotDailyCheckDataMapper;
|
|
|
+import com.xunmei.host.dayilcheck.service.IotDailyCheckDataService;
|
|
|
+import com.xunmei.host.server.service.IotServerInfoService;
|
|
|
+import com.xunmei.host.websocket.constant.WebSocketConstants;
|
|
|
+import com.xunmei.host.websocket.dto.WebsocketExecuteReq;
|
|
|
+import com.xunmei.host.websocket.enums.ProductEnums;
|
|
|
+import com.xunmei.host.websocket.service.RouterService;
|
|
|
+import com.xunmei.system.api.util.LogUtils;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.StringJoiner;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 网点日常自检日志表 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author jingYuanChao
|
|
|
+ * @since 2024-09-03
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class IotDailyCheckDataServiceImpl extends ServiceImpl<IotDailyCheckDataMapper, IotDailyCheckData> implements IotDailyCheckDataService, RouterService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private IotServerInfoService iotServerInfoService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ProductEnums product() {
|
|
|
+ return ProductEnums.DETECTION_HOST;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String routerKey() {
|
|
|
+
|
|
|
+ StringJoiner result = new StringJoiner(",");
|
|
|
+ //网点客户端自检结果上报
|
|
|
+ result.add(WebSocketConstants.DAILY_HEALTH);
|
|
|
+ return result.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Object execute(WebsocketExecuteReq req) {
|
|
|
+ Object data = req.getData();
|
|
|
+ JSONObject obj = JSON.parseObject(data.toString());
|
|
|
+ String type = obj.getString("id");
|
|
|
+ String excelData = obj.getString("excelData");
|
|
|
+ IotServerInfo serverInfo = iotServerInfoService.getToken(req.getToken());
|
|
|
+ if (ObjectUtil.isEmpty(serverInfo)) {
|
|
|
+ LogUtils.SOCKET_DAILY_HEALTH.error("未查询到token为 {} 的服务器信息", req.getToken());
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ dealData(type, excelData, serverInfo);
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void dealData(String id, String excelData, IotServerInfo serverInfo) {
|
|
|
+
|
|
|
+ if (ObjectUtil.hasEmpty(id, excelData)) {
|
|
|
+ LogUtils.SOCKET_DAILY_HEALTH.error("[网点客户端自检结果上报],存在参数为空,ID:{},excelData:{}", id, excelData);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ IotDailyCheckData dailyCheckData = baseMapper.selectById(Long.parseLong(id));
|
|
|
+ if (dailyCheckData == null) {
|
|
|
+ dailyCheckData = new IotDailyCheckData();
|
|
|
+ dailyCheckData.setId(Long.parseLong(id));
|
|
|
+ dailyCheckData.setCreateTime(LocalDateTime.now());
|
|
|
+ }
|
|
|
+ dailyCheckData.setUpdateTime(LocalDateTime.now());
|
|
|
+ dailyCheckData.setOrgId(serverInfo.getOrgId());
|
|
|
+ dailyCheckData.setOrgName(serverInfo.getOrgName());
|
|
|
+ dailyCheckData.setOrgPath(serverInfo.getOrgPath());
|
|
|
+ dailyCheckData.setIotCode(serverInfo.getIotCode());
|
|
|
+
|
|
|
+ DailyCheckReq req = JSON.parseObject(excelData, DailyCheckReq.class);
|
|
|
+ dailyCheckData.setData(excelData);
|
|
|
+ dailyCheckData.setRecordDate(LocalDateTime.parse(req.getRecordDate()));
|
|
|
+ dailyCheckData.setUserName(req.getUserName());
|
|
|
+ dailyCheckData.setFileName(serverInfo.getOrgName() + "检查日志" + LocalDateTimeUtil.format(dailyCheckData.getRecordDate(), Constants.HM_FORMAT));
|
|
|
+
|
|
|
+ this.saveOrUpdate(dailyCheckData);
|
|
|
+
|
|
|
+ }
|
|
|
+}
|