package com.northglass.service.transfermachine;
|
|
import java.util.Date;
|
import java.util.List;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.northglass.constants.StateConstants.ConnectState;
|
import com.northglass.constants.StateConstants.GaoliweiMachineState;
|
import com.northglass.entity.CountMachine;
|
import com.northglass.entity.GaoliweiMachine;
|
import com.northglass.entity.TestOut;
|
import com.northglass.entity.TransferMachine;
|
import com.northglass.listener.TransferMachineClientListener;
|
import com.northglass.repository.CountMachineDao;
|
import com.northglass.repository.TestOutDao;
|
import com.northglass.repository.TransferMachineDao;
|
import com.northglass.service.message.TransferMessageProcessor;
|
|
@Component
|
@Transactional
|
public class TransferMachineService {
|
@Autowired
|
private TransferMachineDao transferMachineDao;
|
|
@Autowired
|
private TestOutDao testOutDao;
|
|
@Autowired
|
private TransferMessageProcessor processor;
|
|
@Autowired
|
private CountMachineDao countMachineDao;
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(TransferMachineService.class);
|
|
public void connect() {
|
List<TransferMachine> transferMachineList = transferMachineDao.findAll();
|
|
// 若监听线程为空,则新建监听线程
|
for (TransferMachine transferMachine : transferMachineList) {
|
if (transferMachine.getServerConnection().getThread() == null) {
|
LOGGER.debug("> 创建连接:"+transferMachine.getIpAddress()+":"+transferMachine.getPort());
|
Thread thread = new Thread(new TransferMachineClientListener(transferMachine,this));
|
thread.start();
|
setConnectState(transferMachine, ConnectState.CONNECTING);
|
transferMachine.getServerConnection().setThread(thread);
|
}
|
}
|
}
|
|
public void setConnectState(TransferMachine transferMachine, String connectState) {
|
transferMachine.setConnectState(connectState);
|
transferMachine.setModifyTime(new Date());
|
transferMachineDao.save(transferMachine);
|
}
|
|
public void resetState() {
|
List<TransferMachine> transferMachineList = transferMachineDao.findAll();
|
|
for (TransferMachine machine : transferMachineList) {
|
machine.setConnectState(ConnectState.NO_CONNECT);
|
machine.setState(GaoliweiMachineState.STOPPED);
|
}
|
transferMachineDao.save(transferMachineList);
|
}
|
|
public TransferMachine getById(Long id) {
|
return transferMachineDao.findOne(id);
|
}
|
|
public void getendtime(String name) {
|
List<TestOut> testOuts = testOutDao.findByName(name);
|
if (testOuts.size() > 0) {
|
TestOut testOut = testOuts.get(testOuts.size() - 1);
|
if (testOut.getEnd_time() != null && !testOut.getEnd_time().equals("")) {
|
TestOut test = new TestOut(name);
|
test.setStart_time(new Date());
|
testOutDao.save(test);
|
} else {
|
testOut.setEnd_time(new Date());
|
testOutDao.save(testOut);
|
}
|
} else {
|
TestOut testOut = new TestOut(name + "start");
|
testOut.setStart_time(new Date());
|
testOutDao.save(testOut);
|
}
|
}
|
|
public String generateReturnMessage(String sendMessageHex, TransferMachine transferMachine) {
|
return processor.generateReturnMessage(sendMessageHex, transferMachine);
|
}
|
|
public void getright(String name) {
|
TestOut testOut = new TestOut(name);
|
testOut.setStart_time(new Date());
|
testOutDao.save(testOut);
|
}
|
|
public CountMachine getCountMachine(GaoliweiMachine gaoliweiMachine) {
|
return countMachineDao.findOne(gaoliweiMachine.getId());
|
}
|
}
|