package com.fgkj.services.ram;
|
|
import com.fgkj.dto.ServiceModel;
|
import com.fgkj.dto.User_log;
|
import com.fgkj.dto.ram.Fbs9100_sysparam;
|
import com.fgkj.mapper.FBS9100_ComBase;
|
import com.fgkj.mapper.UinfDaoFactory;
|
import com.fgkj.mapper.impl.ram.Fbs9100_sysparamMapper;
|
import com.fgkj.services.User_logService;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Calendar;
|
import java.util.List;
|
@Service
|
public class Fbs9100_sysparamService {
|
|
@Resource
|
private Fbs9100_sysparamMapper mapper;
|
|
@Resource
|
private Fbs9100_setparamService fbs9100_setparamService;
|
|
@Resource
|
private User_logService userLogService;
|
|
//修改系统参数
|
@Transactional
|
public ServiceModel update(Fbs9100_sysparam sysParam) {
|
ServiceModel model = new ServiceModel();
|
boolean bl=false;
|
if(sysParam.getNum()==FBS9100_ComBase.CMD_ResetSystem){//重启
|
bl=fbs9100_setparamService.sendCmdToFBS9100Dev(sysParam.getNum(),0, sysParam.getDev_id()); //为何会多1个参数
|
if(bl){
|
model.setCode(1);
|
model.setMsg("重启成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("重启失败!");
|
}
|
}else{
|
Boolean b=mapper.update(sysParam)>0;
|
if(b){
|
bl=true;
|
bl=fbs9100_setparamService.sendCmdToFBS9100Dev(sysParam.getNum(),0, sysParam.getDev_id());
|
if(bl){
|
model.setCode(1);
|
model.setMsg("修改成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("设置9100参数失败,请检查网络!");
|
}
|
}else{
|
model.setCode(0);
|
model.setMsg("修改失败!");
|
}
|
}
|
|
return model;
|
}
|
//修改61850系统参数
|
@Transactional
|
public ServiceModel update61850(Fbs9100_sysparam sysParam) {
|
ServiceModel model = new ServiceModel();
|
boolean bl=false;
|
if(sysParam.getNum()==FBS9100_ComBase.CMD_ResetSystem){//重启
|
bl=fbs9100_setparamService.sendCmdToFBS9100Dev(sysParam.getNum(),0, sysParam.getDev_id()); //为何会多一个参数
|
if(bl){
|
model.setCode(1);
|
model.setMsg("重启成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("重启失败!");
|
}
|
}else{
|
if(sysParam.getNum()==FBS9100_ComBase.CMD_ClearSysAlarm){//消除告警
|
bl=fbs9100_setparamService.sendCmdToFBS9100Dev(sysParam.getNum(), 0,sysParam.getDev_id());
|
if(bl){
|
model.setCode(1);
|
model.setMsg("消除告警成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("消除告警失败!");
|
}
|
}else{
|
Boolean b=mapper.update61850(sysParam)>0;
|
if(b){
|
bl=fbs9100_setparamService.sendCmdToFBS9100Dev(sysParam.getNum(), 0,sysParam.getDev_id());
|
if(bl){
|
model.setCode(1);
|
model.setMsg("修改成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("设置9100参数失败,请检查网络!");
|
}
|
}else{
|
model.setCode(0);
|
model.setMsg("修改失败!");
|
}
|
|
}
|
}
|
return model;
|
}
|
//根据设备id查询系统参数(一定是被管理的)
|
public ServiceModel serchByCondition(Fbs9100_sysparam sys){
|
ServiceModel model = new ServiceModel();
|
mapper.replace(sys);
|
boolean b=fbs9100_setparamService.sendCmdToFBS9100Dev(FBS9100_ComBase.CMD_GetSYSSetParam,0, sys.getDev_id());
|
if(b){
|
List list = mapper.serchByCondition(sys);
|
if(list!=null && list.size()>0){
|
model.setCode(1);
|
model.setData(list);
|
model.setMsg("查询成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("查询失败!");
|
}
|
}else{
|
model.setCode(0);
|
model.setMsg("查询失败!");
|
}
|
|
return model;
|
}
|
//批量设置系统参数
|
@Transactional
|
public ServiceModel updatePro(List<Fbs9100_sysparam> list) {
|
ServiceModel model = new ServiceModel();
|
// boolean bl=mapper.updatePro(list);
|
ArrayList sql_str=new ArrayList();
|
List<User_log> listU=new ArrayList<User_log>();//存放user_log
|
if(list!=null&&list.size()>0){
|
for (int i = 0; i < list.size(); i++) {
|
Fbs9100_sysparam fs=list.get(i);
|
{
|
String msg="修改"+fs.getDev_id()+"机房系统参数";
|
User_log ulog= UinfDaoFactory.CreateULog(UinfDaoFactory.Alter, msg);
|
listU.add(ulog);
|
}
|
}
|
}
|
|
Boolean bl=mapper.updatePro(list)>0;
|
userLogService.addPro(listU);//将用户的操作记录下来
|
if(bl) {
|
Calendar c = Calendar.getInstance();
|
//现在的时间(单位:毫秒)
|
long now_time = c.getTimeInMillis();
|
long time=0;
|
int success=0;
|
do {
|
for (int i = 0; i < list.size(); i++) {
|
Fbs9100_sysparam fs=new Fbs9100_sysparam();
|
fs=list.get(i);
|
if(fs.getNum()==0) {//前台传参设置
|
boolean b=getCmdAck(fs.getOp_cmd(), fs.getDev_id());
|
if(b) {
|
success+=1;
|
list.get(i).setNum(1);
|
}
|
}
|
}
|
if(success==list.size()) {
|
break;
|
}
|
Calendar cl = Calendar.getInstance();
|
long moment_time = cl.getTimeInMillis();
|
time=moment_time-now_time;
|
}while(time<=5*1000);
|
model.setData(list);
|
model.setCode(1);
|
//成功次数
|
model.setMsg(String.valueOf(success));
|
}else {
|
model.setCode(0);
|
model.setMsg("修改失败!");
|
}
|
return model;
|
}
|
|
private boolean getCmdAck(int cmd, int dev_id) {
|
int m_cmd = cmd;
|
int m_cmd_ack = cmd;
|
switch(m_cmd) {
|
case FBS9100_ComBase.CMD_GetSYSSetParam: m_cmd_ack = FBS9100_ComBase.CMD_GetSYSSetParamAck; break;
|
case FBS9100_ComBase.CMD_SetSYSSetParam: m_cmd_ack = FBS9100_ComBase.CMD_SetSYSSetParamAck; break;
|
default: return false;
|
}
|
boolean res_exe=false;
|
int op_cmd = mapper.getCmdAck(dev_id);
|
if(op_cmd == m_cmd_ack)
|
{
|
res_exe = true;
|
}
|
return res_exe;
|
}
|
|
/*
|
//批量重启设备
|
public ServiceModel restartPL_FBS(Object obj) {
|
boolean bl=mapper.restartPL_FBS(obj);
|
if(bl) {
|
List<Fbs9100_sysparam> list=(List<Fbs9100_sysparam>) obj;
|
Calendar c = Calendar.getInstance();
|
//现在的时间(单位:毫秒)
|
long now_time = c.getTimeInMillis();
|
long time=0;
|
int success=0;
|
do {
|
for (int i = 0; i < list.size(); i++) {
|
Fbs9100_sysparam fs=new Fbs9100_sysparam();
|
fs=list.get(i);
|
if(fs.getNum()==0) {//前台传参设置
|
boolean b=mapper.getCmdAck(fs.getOp_cmd(), fs.getDev_id());
|
if(b) {
|
success+=1;
|
list.get(i).setNum(1);
|
}
|
}
|
}
|
if(success==list.size()) {
|
break;
|
}
|
Calendar cl = Calendar.getInstance();
|
long moment_time = cl.getTimeInMillis();
|
time=moment_time-now_time;
|
}while(time<=5*1000);
|
model.setData(list);
|
model.setCode(1);
|
model.setSum(success);
|
model.setMsg("重启成功!");
|
}else {
|
model.setCode(0);
|
model.setMsg("重启失败!");
|
}
|
return model;
|
}*/
|
/*
|
//批量设置系统参数时,根据省市区,电池单体型号(伏数),组数筛选出电池组并读取它的实际系统参数
|
public ServiceModel serchBattinfAndParam(Object obj) {
|
List<BattInf> list=(new BattInfImpl()).serchBySys_param(obj);
|
if(list!=null&&list.size()>0) {
|
Calendar c = Calendar.getInstance();
|
//现在的时间(单位:毫秒)
|
long now_time = c.getTimeInMillis();
|
long time=0;
|
int success=0;
|
int count=0;
|
do {
|
for (int i = 0; i < list.size(); i++) {
|
BattInf binf=list.get(i);
|
Fbs9100_sysparam fbs_sys=new Fbs9100_sysparam();
|
fbs_sys.setDev_id(binf.getFBSDeviceId());
|
fbs_sys.setOp_cmd(FBS9100_ComBase.CMD_GetSYSSetParam);
|
if(count==0) {
|
fbs_sys.setDev_ip("127.0.0.0");
|
fbs_sys.setIPADDR("127.0.0.0");
|
fbs_sys.setSubIPADDR("127.0.0.0");
|
fbs_sys.setNetGateADDR("127.0.0.0");
|
fbs_sys.setGroupVolRange(0);
|
fbs_sys.setGroupVolSorce(0);
|
fbs_sys.setCurrentRange(0);
|
fbs_sys.setCurrentTyte(0);
|
fbs_sys.setMonomerOrder(0);
|
fbs_sys.setBackLightTime(0);
|
fbs_sys.setMACADDR("0.0.0.0.0.0");
|
fbs_sys.setLoaderCount(0);
|
fbs_sys.setDtCardCount(0);
|
fbs_sys.setPowerBreakChargeCurr(0);
|
fbs_sys.setMajorBattGroupNum(0);
|
fbs_sys.setPOF_BG_Boost_Cnt(0);
|
fbs_sys.setPOF_BG_Boost_VolStop(0);
|
fbs_sys.setPOF_BG_Boost_VolStart(0);
|
boolean bl=mapper.replacePL(fbs_sys);
|
List listb=new ArrayList();
|
listb.add(fbs_sys);
|
list.get(i).setObj(listb);
|
}
|
if(binf.getNum()==0) {
|
boolean b=mapper.getCmdAck(fbs_sys.getOp_cmd(), fbs_sys.getDev_id());
|
if(b) {
|
success+=1;
|
list.get(i).setNum(1);
|
List listbatt=dao.serchByCondition(fbs_sys);
|
list.get(i).setObj(listbatt);
|
}
|
}
|
}
|
count++;
|
if(success==list.size()) {
|
break;
|
}
|
Calendar cl = Calendar.getInstance();
|
long moment_time = cl.getTimeInMillis();
|
time=moment_time-now_time;
|
}while(time<=5*1000);
|
model.setData(list);
|
model.setCode(1);
|
model.setSum(success);
|
model.setMsg("修改成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("查询失败!");
|
}
|
return model;
|
}
|
*/
|
//批量读取系统参数
|
@Transactional
|
public ServiceModel readPL(List<Fbs9100_sysparam> list) {
|
ServiceModel model = new ServiceModel();
|
List<User_log> listU=new ArrayList<User_log>();//存放user_log
|
if(list!=null&&list.size()>0){
|
for (int i = 0; i < list.size(); i++) {
|
Fbs9100_sysparam fs=list.get(i);
|
{
|
String msg="获取"+fs.getDev_id()+"系统参数";
|
User_log ulog=UinfDaoFactory.CreateULog(UinfDaoFactory.Alter, msg);
|
listU.add(ulog);
|
}
|
}
|
}
|
boolean bl = mapper.readPL(list)>0;
|
userLogService.addPro(listU);//将用户的操作记录下来
|
if(bl) {
|
Calendar c = Calendar.getInstance();
|
//现在的时间(单位:毫秒)
|
long now_time = c.getTimeInMillis();
|
long time=0;
|
int success=0;
|
do {
|
for (int i = 0; i < list.size(); i++) {
|
Fbs9100_sysparam fs=new Fbs9100_sysparam();
|
fs=list.get(i);
|
if(fs.getNum()==0) {//前台传参设置
|
boolean b=getCmdAck(fs.getOp_cmd(), fs.getDev_id());
|
if(b) {
|
success+=1;
|
list.get(i).setNum(1);
|
List listbatt=mapper.serchByCondition(fs);
|
list.get(i).setObj(listbatt);
|
}
|
}
|
}
|
if(success==list.size()) {
|
break;
|
}
|
Calendar cl = Calendar.getInstance();
|
long moment_time = cl.getTimeInMillis();
|
time=moment_time-now_time;
|
}while(time<=5*1000);
|
model.setData(list);
|
model.setCode(1);
|
//成功次数
|
model.setMsg(String.valueOf(success));
|
}else {
|
model.setCode(0);
|
model.setMsg("读取失败!");
|
}
|
return model;
|
}
|
|
}
|