package com.ld.igds.protocol.fzzy.builder; import com.ld.igds.io.request.ExeDevice; import com.ld.igds.io.request.TempControlRequest; import com.ld.igds.protocol.fzzy.ServerUtils; import com.ld.igds.protocol.fzzy.dto.MessageInfo; import com.ld.igds.protocol.fzzy.dto.SendMessage; import com.ld.igds.protocol.fzzy.req.Request5001; import org.apache.commons.lang3.RandomUtils; public class TempControlCommandBuilder extends CommandBuilder { private final static TempControlCommandBuilder instance = new TempControlCommandBuilder(); private TempControlCommandBuilder() { } public static TempControlCommandBuilder getInstance() { return instance; } public SendMessage buildMessage(TempControlRequest request) { SendMessage message = new SendMessage(); message.setIp(request.getIp()); message.setPort(request.getPort()); message.setBegin(ServerUtils.MSG_BEGIN); // 调整信息 buildInfo(message, request); message.setEnd(ServerUtils.MSG_END); // 生成整体命令信息和BYte信息 build(message); return message; } public void buildInfo(SendMessage message, TempControlRequest request) { MessageInfo info = new MessageInfo(); info.setSign(request.getCompanyId()); info.setIedId(request.getSerId()); info.setFunctionId(ServerUtils.FUNCTION_5001); info.setRespCode("0000"); info.setOrderId(request.getOrderId()); info.setUserData("0"); info.setSign("0000"); Request5001 request5001 = new Request5001(); ExeDevice exeDevice = request.getExeDevice(); request5001.setHouseId(exeDevice.getDepotId()); request5001.setDeviceId(exeDevice.getPassCode() + ""); request5001.setStatus(ServerUtils.getDeviceSendStatus(exeDevice)); request5001.setTemp(request.getTargetTemp()); request5001.setMode(ServerUtils.getTempMode(request.getTargetModel())); //将目标状态先放到设备状态中 ServerUtils.add2StatusMap(request.getCompanyId(), request.getSerId(), exeDevice.getPassCode()+"", exeDevice.getTargetStatus()); info.setContent(request5001); message.setInfo(info); } }