package com.bizmatics.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.bizmatics.common.core.exception.BusinessException; import com.bizmatics.common.mvc.base.AbstractCrudService; import com.bizmatics.model.DeviceAnalogVariableList; import com.bizmatics.model.DeviceAttribute; import com.bizmatics.model.Hookup; import com.bizmatics.model.HookupComponentComplete; import com.bizmatics.model.system.SysUser; import com.bizmatics.model.vo.*; import com.bizmatics.persistence.mapper.HookupMapper; import com.bizmatics.service.*; import com.bizmatics.service.util.FieldEscapeUtils; import com.bizmatics.service.util.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author ya * @since 2022-03-07 */ @Service public class HookupServiceImpl extends AbstractCrudService implements HookupService { @Autowired private DeviceAttributeService deviceAttributeService; @Autowired private DeviceAnalogVariableListService deviceAnalogVariableListService; @Autowired private HookupComponentBasicsService hookupComponentBasicsService; @Autowired private HookupComponentCompleteService hookupComponentCompleteService; @Override public List getDeviceAttributeList(Integer siteId) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(DeviceAttribute::getStatus, 1).eq(DeviceAttribute::getSiteId, siteId); List deviceAttributeList = deviceAttributeService.list(queryWrapper); return deviceAttributeList; } @Override public List getDeviceAnalogVariableList(Integer monitoringDeviceId) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(DeviceAnalogVariableList::getStatus, 1).eq(DeviceAnalogVariableList::getMonitoringEquipment, monitoringDeviceId); List deviceAnalogVariableList = deviceAnalogVariableListService.list(queryWrapper); return deviceAnalogVariableList; } @Override public List gethookupComponentBasics(Integer siteId) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); if (siteId != 0) { queryWrapper.eq(Hookup::getSiteId, siteId); } List hookupList = this.list(queryWrapper); List hookupListlist = new ArrayList<>(); if (hookupList.size() > 0) { for (int i = 0; i < hookupList.size(); i++) { HookupOneVo hookupOne = new HookupOneVo(); hookupOne.setType(hookupList.get(i).getOuterType()); hookupOne.setTitle(hookupList.get(i).getTitle()); hookupOne.setTemplate(hookupList.get(i).getTemplate()); if ("".equals(hookupList.get(i).getProps()) || hookupList.get(i).getProps() == null) { hookupOne.setProps(""); } else { hookupOne.setProps(hookupList.get(i).getProps().split(",")); } hookupOne.setDefaultColor(hookupList.get(i).getDefaultColor()); hookupOne.setDataType(hookupList.get(i).getDataType()); hookupOne.setCreateType(hookupList.get(i).getCreateType()); hookupOne.setPriviewImg(hookupList.get(i).getPriviewImg()); hookupOne.setEchartsOption(hookupList.get(i).getEchartsOption()); hookupOne.setEchartsOption(hookupList.get(i).getEchartsOption()); hookupOne.setElementBool(hookupList.get(i).getElementBool()); if ("".equals(hookupList.get(i).getSvgLineSelectval()) || hookupList.get(i).getSvgLineSelectval() == null) { hookupOne.setSvgLineSelectval(""); } else { hookupOne.setSvgLineSelectval(hookupList.get(i).getSvgLineSelectval()); } hookupListlist.add(hookupOne); } } return hookupListlist; } @Override public List getHookupComponentComplete(Integer siteId) { List deviceTypeVo = baseMapper.getDevidetype(siteId); List variable_vaue = null; List variable_173_analog = new ArrayList<>(); List variable_171_analog = new ArrayList<>(); List variable_183_analog = new ArrayList<>(); List variable_173_switch = new ArrayList<>(); List variable_171_switch = new ArrayList<>(); List variable_183_switch = new ArrayList<>(); for (int i = 0; i < deviceTypeVo.size(); i++) { if (deviceTypeVo.get(i).getDataArea() == 2) { if (deviceTypeVo.get(i).getDeviceType() == 3) { variable_171_switch.add(deviceTypeVo.get(i).getId()); } else if (deviceTypeVo.get(i).getDeviceType() == 4) { variable_173_switch.add(deviceTypeVo.get(i).getId()); } else if (deviceTypeVo.get(i).getDeviceType() ==1){ variable_183_switch.add(deviceTypeVo.get(i).getId()); } } else { if (deviceTypeVo.get(i).getDeviceType() == 3) { variable_171_analog.add(deviceTypeVo.get(i).getId()); } else if (deviceTypeVo.get(i).getDeviceType() == 4) { variable_173_analog.add(deviceTypeVo.get(i).getId()); } else if (deviceTypeVo.get(i).getDeviceType() == 1){ variable_183_analog.add(deviceTypeVo.get(i).getId()); } } } List variable_173_analog_data = new ArrayList<>(); List variable_171_analog_data = new ArrayList<>(); List variable_183_analog_data = new ArrayList<>(); List variable_173_switch_data = new ArrayList<>(); List variable_171_switch_data = new ArrayList<>(); List variable_183_switch_data = new ArrayList<>(); if (variable_173_analog.size() > 0) { variable_173_analog_data = baseMapper.getRtAnalogData(variable_173_analog, "rt_analog_173_data"); } if (variable_171_analog.size() > 0) { variable_171_analog_data = baseMapper.getRtAnalogData(variable_171_analog, "rt_analog_171_data"); } if (variable_183_analog.size() > 0) { variable_183_analog_data = baseMapper.getRtAnalogData(variable_183_analog, "rt_analog_data"); } if (variable_173_switch.size() > 0) { variable_173_switch_data = baseMapper.getRtSwitchData(variable_173_switch, "rt_switch_173_data"); } if (variable_171_switch.size() > 0) { variable_171_switch_data = baseMapper.getRtSwitchData(variable_171_switch, "rt_switch_171_data"); } if (variable_183_switch.size() > 0) { variable_183_switch_data = baseMapper.getRtSwitchData(variable_183_switch, "rt_switch_data"); } List variableVoList = new ArrayList<>(); if(variable_173_analog_data.size()>0){ for (int i = 0; i < variable_173_analog_data.size(); i++) { VariableVo vriableVo = new VariableVo(); vriableVo.setVariableCoding(variable_173_analog_data.get(i).getVariableCoding()); vriableVo.setVariableValue(FieldEscapeUtils.transformation1(variable_173_analog_data.get(i),variable_173_analog_data.get(i).getVariableCoding().split("_")[1])); variableVoList.add(vriableVo); } } if(variable_171_analog_data.size()>0){ for (int i = 0; i < variable_171_analog_data.size(); i++) { VariableVo vriableVo = new VariableVo(); vriableVo.setVariableCoding(variable_171_analog_data.get(i).getVariableCoding()); vriableVo.setVariableValue(FieldEscapeUtils.transformation1(variable_171_analog_data.get(i),variable_171_analog_data.get(i).getVariableCoding().split("_")[1])); variableVoList.add(vriableVo); } } if(variable_183_analog_data.size()>0){ for (int i = 0; i < variable_183_analog_data.size(); i++) { VariableVo vriableVo = new VariableVo(); vriableVo.setVariableCoding(variable_183_analog_data.get(i).getVariableCoding()); vriableVo.setVariableValue(FieldEscapeUtils.transformation1(variable_183_analog_data.get(i),variable_183_analog_data.get(i).getVariableCoding().split("_")[1])); variableVoList.add(vriableVo); } } if(variable_173_switch_data.size()>0){ for (int i = 0; i < variable_173_switch_data.size(); i++) { VariableVo vriableVo = new VariableVo(); vriableVo.setVariableCoding(variable_173_switch_data.get(i).getVariableCoding()); vriableVo.setVariableValue(FieldEscapeUtils.transformation2(variable_173_switch_data.get(i),variable_173_switch_data.get(i).getVariableCoding().split("_")[1])); variableVoList.add(vriableVo); } } if(variable_171_switch_data.size()>0){ for (int i = 0; i < variable_171_switch_data.size(); i++) { VariableVo vriableVo = new VariableVo(); vriableVo.setVariableCoding(variable_171_switch_data.get(i).getVariableCoding()); vriableVo.setVariableValue(FieldEscapeUtils.transformation2(variable_171_switch_data.get(i),variable_171_switch_data.get(i).getVariableCoding().split("_")[1])); variableVoList.add(vriableVo); } } if(variable_183_switch_data.size()>0){ for (int i = 0; i < variable_183_switch_data.size(); i++) { VariableVo vriableVo = new VariableVo(); vriableVo.setVariableCoding(variable_183_switch_data.get(i).getVariableCoding()); vriableVo.setVariableValue(FieldEscapeUtils.transformation2(variable_183_switch_data.get(i),variable_183_switch_data.get(i).getVariableCoding().split("_")[1])); variableVoList.add(vriableVo); } } List hookupComponentComplete = baseMapper.getHookupComponentComplete(siteId); List hookupComponentCompleteVoLsit = new ArrayList(); if (hookupComponentComplete.size() > 0) { for (int i = 0; i < hookupComponentComplete.size(); i++) { HookupComponentCompleteVo hookupComponentCompleteVo = new HookupComponentCompleteVo(); hookupComponentCompleteVo.setId(hookupComponentComplete.get(i).getId()); hookupComponentCompleteVo.setTitle(hookupComponentComplete.get(i).getTitle()); hookupComponentCompleteVo.setType(hookupComponentComplete.get(i).getInnerType()); hookupComponentCompleteVo.setTypeName(hookupComponentComplete.get(i).getTypeName()); hookupComponentCompleteVo.setSvgColor(hookupComponentComplete.get(i).getSvgColor()); hookupComponentCompleteVo.setCreateType(hookupComponentComplete.get(i).getCreateType()); hookupComponentCompleteVo.setSvgPositionX(hookupComponentComplete.get(i).getSvgPositionX()); hookupComponentCompleteVo.setSvgPositionY(hookupComponentComplete.get(i).getSvgPositionY()); if ("".equals(hookupComponentComplete.get(i).getMPoint()) || hookupComponentComplete.get(i).getMPoint() == null) { hookupComponentCompleteVo.setMPoint(""); } else { hookupComponentCompleteVo.setMPoint(JSONArray.parseObject(hookupComponentComplete.get(i).getMPoint())); } if ("\"\"".equals(hookupComponentComplete.get(i).getEchartsOption()) || "".equals(hookupComponentComplete.get(i).getEchartsOption()) || hookupComponentComplete.get(i).getEchartsOption() == null) { hookupComponentCompleteVo.setEchartsOption(""); } else { hookupComponentCompleteVo.setEchartsOption(JSONArray.parseObject(hookupComponentComplete.get(i).getEchartsOption())); } hookupComponentCompleteVo.setSize(hookupComponentComplete.get(i).getSize()); hookupComponentCompleteVo.setAngle(hookupComponentComplete.get(i).getAngle()); if ("".equals(hookupComponentComplete.get(i).getElementBool()) || hookupComponentComplete.get(i).getElementBool() == null) { hookupComponentCompleteVo.setElementBool(""); } else { hookupComponentCompleteVo.setElementBool(hookupComponentComplete.get(i).getElementBool().split(",")); } hookupComponentCompleteVo.setSvgLineSelectval(hookupComponentComplete.get(i).getSvgLineSelectval()); hookupComponentCompleteVo.setDeviceId(hookupComponentComplete.get(i).getDeviceId()); hookupComponentCompleteVo.setSiteId(hookupComponentComplete.get(i).getSiteId()); hookupComponentCompleteVo.setVariableId(hookupComponentComplete.get(i).getVariableId()); if (variableVoList.size() > 0) { for (int j = 0; j < variableVoList.size(); j++) { if (hookupComponentComplete.get(i).getVariableCoding().equals(variableVoList.get(j).getVariableCoding())) { String variableValue = ""+variableVoList.get(j).getVariableValue(); hookupComponentCompleteVo.setVariableValue(variableValue); } } } else { hookupComponentCompleteVo.setVariableValue(""); } hookupComponentCompleteVoLsit.add(hookupComponentCompleteVo); } } return hookupComponentCompleteVoLsit; } // public List getHookupComponentComplete(Integer siteId) { // List deviceTypeVo = baseMapper.getDevidetype(siteId); // List variable_vaue = null; // if (deviceTypeVo.size()>0){ // if (deviceTypeVo.get(0).getDeviceType() == 3) { // String table = "rt_analog_171_data"; // if (deviceTypeVo.get(0).getDataArea()==2){ // table = "rt_switch_171_data"; // } // variable_vaue = baseMapper.getVariable171(siteId,table); // } else if (deviceTypeVo.get(0).getDeviceType() == 4) { // String table = "rt_analog_173_data"; // if (deviceTypeVo.get(0).getDataArea()==2){ // table = "rt_switch_173_data"; // } // variable_vaue = baseMapper.getVariable173(siteId,table); // } else { // String table = "rt_analog_data"; // if (deviceTypeVo.get(0).getDataArea()==2){ // table = "rt_switch_data"; // } // variable_vaue = baseMapper.getVariable(siteId,table); // } // } // // List hookupComponentComplete = baseMapper.getHookupComponentComplete(siteId); // List hookupComponentCompleteVoLsit = new ArrayList(); // if (hookupComponentComplete.size() > 0) { // for (int i = 0; i < hookupComponentComplete.size(); i++) { // HookupComponentCompleteVo hookupComponentCompleteVo = new HookupComponentCompleteVo(); // hookupComponentCompleteVo.setId(hookupComponentComplete.get(i).getId()); // hookupComponentCompleteVo.setTitle(hookupComponentComplete.get(i).getTitle()); // hookupComponentCompleteVo.setType(hookupComponentComplete.get(i).getInnerType()); // hookupComponentCompleteVo.setTypeName(hookupComponentComplete.get(i).getTypeName()); // hookupComponentCompleteVo.setSvgColor(hookupComponentComplete.get(i).getSvgColor()); // hookupComponentCompleteVo.setCreateType(hookupComponentComplete.get(i).getCreateType()); // hookupComponentCompleteVo.setSvgPositionX(hookupComponentComplete.get(i).getSvgPositionX()); // hookupComponentCompleteVo.setSvgPositionY(hookupComponentComplete.get(i).getSvgPositionY()); // if ("".equals(hookupComponentComplete.get(i).getMPoint())||hookupComponentComplete.get(i).getMPoint()==null){ // hookupComponentCompleteVo.setMPoint(""); // }else { // hookupComponentCompleteVo.setMPoint(JSONArray.parseObject(hookupComponentComplete.get(i).getMPoint())); // } // if ("\"\"".equals(hookupComponentComplete.get(i).getEchartsOption())||"".equals(hookupComponentComplete.get(i).getEchartsOption())|| // hookupComponentComplete.get(i).getEchartsOption()==null){ // hookupComponentCompleteVo.setEchartsOption(""); // }else { // hookupComponentCompleteVo.setEchartsOption(JSONArray.parseObject(hookupComponentComplete.get(i).getEchartsOption())); // } // // hookupComponentCompleteVo.setSize(hookupComponentComplete.get(i).getSize()); // hookupComponentCompleteVo.setAngle(hookupComponentComplete.get(i).getAngle()); // if ("".equals(hookupComponentComplete.get(i).getElementBool())||hookupComponentComplete.get(i).getElementBool()==null) { // hookupComponentCompleteVo.setElementBool(""); // } else { // hookupComponentCompleteVo.setElementBool(hookupComponentComplete.get(i).getElementBool().split(",")); // } // hookupComponentCompleteVo.setSvgLineSelectval(hookupComponentComplete.get(i).getSvgLineSelectval()); // hookupComponentCompleteVo.setDeviceId(hookupComponentComplete.get(i).getDeviceId()); // hookupComponentCompleteVo.setSiteId(hookupComponentComplete.get(i).getSiteId()); // hookupComponentCompleteVo.setVariableId(hookupComponentComplete.get(i).getVariableId()); // if (variable_vaue.size() > 0) { // for (int j = 0; j < variable_vaue.size(); j++) { // if (hookupComponentComplete.get(i).getVariableCoding().equals(variable_vaue.get(j).getVariableCoding())) { // String variableValue = FieldEscapeUtils.getVariableValue(variable_vaue.get(j)); // hookupComponentCompleteVo.setVariableValue(variableValue); // } // } // } else { // hookupComponentCompleteVo.setVariableValue(""); // } // hookupComponentCompleteVoLsit.add(hookupComponentCompleteVo); // } // } // return hookupComponentCompleteVoLsit; // } @Override @Transactional public void setHookupComponentComplete(List hookupComponentCompleteOneVoList) { try { SysUser user = SecurityUtils.getLoginUser().getUser(); LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(HookupComponentComplete::getSiteId, hookupComponentCompleteOneVoList.get(0).getSiteId()); List List = hookupComponentCompleteService.list(queryWrapper); if (List.size() > 0) { Map columnMap = new HashMap<>(); // Map columnMap = null; columnMap.put("site_id", hookupComponentCompleteOneVoList.get(0).getSiteId()); hookupComponentCompleteService.removeByMap(columnMap); } for (int i = 0; i < hookupComponentCompleteOneVoList.size(); i++) { HookupComponentComplete hookupComponentComplete = new HookupComponentComplete(); hookupComponentComplete.setSort(hookupComponentCompleteOneVoList.get(i).getSort()); hookupComponentComplete.setTitle(hookupComponentCompleteOneVoList.get(i).getTitle()); hookupComponentComplete.setInnerType(hookupComponentCompleteOneVoList.get(i).getType()); hookupComponentComplete.setTypeName(hookupComponentCompleteOneVoList.get(i).getTypeName()); hookupComponentComplete.setSvgColor(hookupComponentCompleteOneVoList.get(i).getSvgColor()); hookupComponentComplete.setSvgPositionX(hookupComponentCompleteOneVoList.get(i).getSvgPositionX()); hookupComponentComplete.setSvgPositionY(hookupComponentCompleteOneVoList.get(i).getSvgPositionY()); hookupComponentComplete.setSize(hookupComponentCompleteOneVoList.get(i).getSize()); hookupComponentComplete.setHeight(hookupComponentCompleteOneVoList.get(i).getHeight()); hookupComponentComplete.setWidth(hookupComponentCompleteOneVoList.get(i).getWidth()); hookupComponentComplete.setFontSize(hookupComponentCompleteOneVoList.get(i).getFontSize()); hookupComponentComplete.setSvgText(hookupComponentCompleteOneVoList.get(i).getSvgText()); hookupComponentComplete.setAngle(hookupComponentCompleteOneVoList.get(i).getAngle()); hookupComponentComplete.setTableRowCount(hookupComponentCompleteOneVoList.get(i).getTableRowCount()); hookupComponentComplete.setTableColCount(hookupComponentCompleteOneVoList.get(i).getTableColCount()); String TableData = JSON.toJSONString(hookupComponentCompleteOneVoList.get(i).getTableData()); if (TableData.equals("\"\"")) { hookupComponentComplete.setTableData(""); } else { hookupComponentComplete.setTableData(TableData.replace(" ", "")); } if (hookupComponentCompleteOneVoList.get(i).getElementBool().toString().equals("") || hookupComponentCompleteOneVoList.get(i).getElementBool().toString().equals("[]")) { hookupComponentComplete.setElementBool(""); } else { String ElementBool = hookupComponentCompleteOneVoList.get(i).getElementBool().toString().replace("[", "").replace("]", "").replace(" ", ""); hookupComponentComplete.setElementBool(ElementBool); } hookupComponentComplete.setSiteId(hookupComponentCompleteOneVoList.get(i).getSiteId()); hookupComponentComplete.setDeviceId(hookupComponentCompleteOneVoList.get(i).getDeviceId()); hookupComponentComplete.setVariableId(hookupComponentCompleteOneVoList.get(i).getVariableId()); hookupComponentComplete.setCreator(user.getUserName()); hookupComponentComplete.setCreateTime(LocalDateTime.now()); hookupComponentComplete.setCreateType(hookupComponentCompleteOneVoList.get(i).getCreateType()); hookupComponentComplete.setMPoint(hookupComponentCompleteOneVoList.get(i).getMPoint()); hookupComponentComplete.setEchartsOption(hookupComponentCompleteOneVoList.get(i).getEchartsOption()); hookupComponentComplete.setSvgLineSelectval(hookupComponentCompleteOneVoList.get(i).getSvgLineSelectval()); hookupComponentCompleteService.save(hookupComponentComplete); } } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); throw new BusinessException("数据错误,新增失败"); } } }