|
|
|
@ -6,6 +6,7 @@ import com.foreverwin.mesnac.common.util.StringUtil;
|
|
|
|
|
import com.foreverwin.mesnac.meapi.model.Resrce;
|
|
|
|
|
import com.foreverwin.mesnac.meapi.service.ResrceService;
|
|
|
|
|
import com.foreverwin.modular.core.exception.BusinessException;
|
|
|
|
|
import com.foreverwin.modular.core.util.CommonMethods;
|
|
|
|
|
import com.foreverwin.modular.core.util.FrontPage;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
@ -13,6 +14,8 @@ import com.foreverwin.mesnac.equip.model.ResourceStatusReceive;
|
|
|
|
|
import com.foreverwin.mesnac.equip.mapper.ResourceStatusReceiveMapper;
|
|
|
|
|
import com.foreverwin.mesnac.equip.service.ResourceStatusReceiveService;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
@ -35,6 +38,7 @@ import java.util.UUID;
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public class ResourceStatusReceiveServiceImpl extends ServiceImpl<ResourceStatusReceiveMapper, ResourceStatusReceive> implements ResourceStatusReceiveService {
|
|
|
|
|
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(ResourceStatusReceiveServiceImpl.class);
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private ResourceStatusReceiveMapper resourceStatusReceiveMapper;
|
|
|
|
@ -62,6 +66,7 @@ public class ResourceStatusReceiveServiceImpl extends ServiceImpl<ResourceStatus
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public String updateResourceStatusByMq(String text) {
|
|
|
|
|
String user = CommonMethods.getUser();
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(text);
|
|
|
|
|
// 传输数据的唯一标识HANDLE,站点、设备编号、状态
|
|
|
|
|
String handle = jsonObject.getString("TRANID");
|
|
|
|
@ -74,18 +79,28 @@ public class ResourceStatusReceiveServiceImpl extends ServiceImpl<ResourceStatus
|
|
|
|
|
LocalDateTime dateTime = LocalDateTime.parse(sendTime,dataFormatter);
|
|
|
|
|
|
|
|
|
|
if (StringUtil.isBlank(handle)) {
|
|
|
|
|
logger.error("唯一标识不能为空!");
|
|
|
|
|
throw BusinessException.build("唯一标识不能为空!");
|
|
|
|
|
}
|
|
|
|
|
if (StringUtil.isBlank(site)) {
|
|
|
|
|
logger.error("站点不能为空!");
|
|
|
|
|
throw BusinessException.build("站点不能为空!");
|
|
|
|
|
}
|
|
|
|
|
if (StringUtil.isBlank(resource)) {
|
|
|
|
|
logger.error("设备编号不能为空!");
|
|
|
|
|
throw BusinessException.build("设备编号不能为空!");
|
|
|
|
|
}
|
|
|
|
|
String resourceHandle = HandleEnum.RESOURCE.getHandle(site, resource);
|
|
|
|
|
Resrce resourceById = resrceService.getById(resourceHandle);
|
|
|
|
|
if (resourceById == null){
|
|
|
|
|
logger.error("未找到设备编号为" + resource + "的设备!");
|
|
|
|
|
throw BusinessException.build("未找到设备编号为" + resource + "的设备!");
|
|
|
|
|
}
|
|
|
|
|
if (StringUtil.isBlank(sendStatus)) {
|
|
|
|
|
logger.error("设备状态不能为空!");
|
|
|
|
|
throw BusinessException.build("设备状态不能为空!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
|
|
String status = "301";
|
|
|
|
|
//设备状态转换
|
|
|
|
|
switch (sendStatus) {
|
|
|
|
@ -99,19 +114,26 @@ public class ResourceStatusReceiveServiceImpl extends ServiceImpl<ResourceStatus
|
|
|
|
|
status = "2"; break;
|
|
|
|
|
case "REPAIR" :
|
|
|
|
|
status = "4"; break;
|
|
|
|
|
default:
|
|
|
|
|
logger.info("发送的状态编码:" + sendStatus + ",未找到对应的状态!");
|
|
|
|
|
throw BusinessException.build("发送的状态编码:" + sendStatus + ",未找到对应的状态!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取最新数据
|
|
|
|
|
ResourceStatusReceive resourceStatus = resourceStatusReceiveMapper.getOneByMaxCreateDateTime(site);
|
|
|
|
|
LocalDateTime oldDate = resourceStatus.getDateTime();
|
|
|
|
|
resourceStatus.setChangeStatus(status);
|
|
|
|
|
resourceStatus.setChangeDateTime(dateTime);
|
|
|
|
|
Duration between = Duration.between(oldDate, dateTime);
|
|
|
|
|
Long intervalTime = between.toMinutes();
|
|
|
|
|
resourceStatus.setIntervalTime(intervalTime.doubleValue());
|
|
|
|
|
resourceStatus.setModifiedDateTime(LocalDateTime.now());
|
|
|
|
|
resourceStatus.setModifyUser("SITE_ADMIN");
|
|
|
|
|
resourceStatusReceiveMapper.updateById(resourceStatus);
|
|
|
|
|
ResourceStatusReceive resourceStatus = resourceStatusReceiveMapper.getOneByMaxCreateDateTime(site,resource);
|
|
|
|
|
if (resourceStatus != null){
|
|
|
|
|
LocalDateTime oldDate = resourceStatus.getDateTime();
|
|
|
|
|
resourceStatus.setChangeStatus(status);
|
|
|
|
|
resourceStatus.setChangeDateTime(dateTime);
|
|
|
|
|
Duration between = Duration.between(oldDate, dateTime);
|
|
|
|
|
Long intervalTime = between.toMinutes();
|
|
|
|
|
resourceStatus.setIntervalTime(intervalTime.doubleValue());
|
|
|
|
|
resourceStatus.setModifiedDateTime(now);
|
|
|
|
|
resourceStatus.setModifyUser(user);
|
|
|
|
|
resourceStatusReceiveMapper.updateById(resourceStatus);
|
|
|
|
|
}else{
|
|
|
|
|
logger.info("设备编号:" + resource + ",记录第一笔数据!");
|
|
|
|
|
}
|
|
|
|
|
// 数据库录入新数据
|
|
|
|
|
ResourceStatusReceive resourceStatusReceive = new ResourceStatusReceive();
|
|
|
|
|
resourceStatusReceive.setHandle(UUID.randomUUID().toString());
|
|
|
|
@ -119,14 +141,13 @@ public class ResourceStatusReceiveServiceImpl extends ServiceImpl<ResourceStatus
|
|
|
|
|
resourceStatusReceive.setResrce(resource);
|
|
|
|
|
resourceStatusReceive.setStatus(status);
|
|
|
|
|
resourceStatusReceive.setDateTime(dateTime);
|
|
|
|
|
resourceStatusReceive.setCreateUser("SITE_ADMIN");
|
|
|
|
|
resourceStatusReceive.setCreatedDateTime(LocalDateTime.now());
|
|
|
|
|
resourceStatusReceive.setCreateUser(user);
|
|
|
|
|
resourceStatusReceive.setCreatedDateTime(now);
|
|
|
|
|
resourceStatusReceiveMapper.insert(resourceStatusReceive);
|
|
|
|
|
// 修改设备状态
|
|
|
|
|
Resrce resrce = resrceService.getById(HandleEnum.RESOURCE.getHandle(site, resource));
|
|
|
|
|
resrce.setStatusBo(HandleEnum.STATUS.getHandle(site,status));
|
|
|
|
|
resrce.setModifiedDateTime(LocalDateTime.now());
|
|
|
|
|
resrceService.updateById(resrce);
|
|
|
|
|
resourceById.setStatusBo(HandleEnum.STATUS.getHandle(site,status));
|
|
|
|
|
resourceById.setModifiedDateTime(now);
|
|
|
|
|
resrceService.updateById(resourceById);
|
|
|
|
|
return handle;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|