|
|
@@ -2,17 +2,22 @@ package com.xunmei.host.work.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xunmei.common.core.constant.Constants;
|
|
|
+import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
|
|
|
import com.xunmei.common.core.domain.work.domain.IotDayWork;
|
|
|
+import com.xunmei.common.core.domain.work.dto.DayWorKReq;
|
|
|
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.host.work.mapper.IotDayWorkMapper;
|
|
|
import com.xunmei.host.work.service.IotDayWorkService;
|
|
|
+import com.xunmei.system.api.util.LogUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.StringJoiner;
|
|
|
|
|
|
@@ -42,25 +47,33 @@ public class IotDayWorkServiceImpl extends ServiceImpl<IotDayWorkMapper, IotDayW
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Object execute(WebsocketExecuteReq req) {
|
|
|
- final Object data = req.getData();
|
|
|
- final IotDayWork work = JSON.parseObject(data.toString(), IotDayWork.class);
|
|
|
- final IotDayWork dayWork = findByIdAndIotCode(work.getId(), req.getServerInfo().getIotCode());
|
|
|
+ Object data = req.getData();
|
|
|
+ LogUtils.SOCKET_WORK_DATA.info("接收到一键上下班主表数据:{}", data);
|
|
|
+ final IotServerInfo serverInfo = req.getServerInfo();
|
|
|
+ DayWorKReq work = JSON.parseObject(data.toString(), DayWorKReq.class);
|
|
|
+ IotDayWork dayWork = findByHostDataIdAndIotCode(work.getId(), req.getServerInfo().getIotCode());
|
|
|
if (dayWork != null) {
|
|
|
- BeanUtils.copyProperties(work,dayWork);
|
|
|
- //updateById(dayWork)
|
|
|
- }else {
|
|
|
- dayWork.setId(work.getId());
|
|
|
- this.save(work);
|
|
|
+ BeanUtils.copyProperties(work, dayWork);
|
|
|
+ dayWork.setHostDataId(work.getId());
|
|
|
+ updateById(dayWork);
|
|
|
+ } else {
|
|
|
+ dayWork = new IotDayWork();
|
|
|
+ dayWork.setId(IdWorker.getId());
|
|
|
+ dayWork.setHostDataId(work.getId());
|
|
|
+ dayWork.setIotCode(serverInfo.getIotCode());
|
|
|
+ dayWork.setOrgPath(serverInfo.getOrgPath());
|
|
|
+ this.save(dayWork);
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public IotDayWork findByIdAndIotCode(Long id, String iotCode) {
|
|
|
- LambdaQueryWrapper<IotDayWork> wrapper= new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(IotDayWork::getId,id);
|
|
|
- wrapper.eq(IotDayWork::getIotCode,iotCode);
|
|
|
+ public IotDayWork findByHostDataIdAndIotCode(Long hostDataId, String iotCode) {
|
|
|
+ LambdaQueryWrapper<IotDayWork> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(IotDayWork::getHostDataId, hostDataId);
|
|
|
+ wrapper.eq(IotDayWork::getIotCode, iotCode);
|
|
|
wrapper.last(Constants.LIMIT1);
|
|
|
return baseMapper.selectOne(wrapper);
|
|
|
}
|