|  | @@ -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);
 | 
	
		
			
				|  |  |      }
 |