Преглед изворни кода

1.更新到公司服务器版本

ching пре 1 година
родитељ
комит
db669e1e15
29 измењених фајлова са 609 додато и 1251 уклоњено
  1. 0 1
      2.Web/.gitignore
  2. 3 2
      2.Web/config/index.js
  3. 3 3
      2.Web/src/api/index.js
  4. 3 7
      2.Web/src/chart/force-curve-disassemble.js
  5. 0 6
      2.Web/src/components/Layout.vue
  6. 1 9
      2.Web/src/main.js
  7. 1 3
      2.Web/src/store/index.js
  8. 1 1
      2.Web/src/utils/get-url.js
  9. 24 40
      2.Web/src/views/AlarmManagement.vue
  10. 1 182
      2.Web/src/views/CurveRetentivity.vue
  11. 38 48
      2.Web/src/views/CurveStatistical.vue
  12. 2 8
      2.Web/src/views/Equipment.vue
  13. 214 285
      2.Web/src/views/Force.vue
  14. 7 7
      2.Web/src/views/ForceHighCharts.vue
  15. 1 1
      2.Web/src/views/Login.vue
  16. 38 120
      2.Web/src/views/ReportStatistical.vue
  17. 1 5
      2.Web/src/views/SingleDevice.vue
  18. 264 503
      2.Web/src/views/SystemSetting.vue
  19. 0 2
      2.Web/src/views/UserManagement.Vue
  20. 1 1
      2.Web/static/css/curve-compare.scss
  21. 0 6
      2.Web/static/css/system-setting.scss
  22. BIN
      3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/com/company/controller/DeviceInfoController.class
  23. BIN
      3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/com/company/controller/LoginController.class
  24. BIN
      3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/com/company/controller/OrganizationController.class
  25. BIN
      3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/com/company/model/MonitorObject.class
  26. BIN
      3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/com/company/model/temphumidity.class
  27. 3 3
      3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/dbconfig.properties
  28. 0 5
      3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/web.xml
  29. 3 3
      3.Java/src/dbconfig.properties

+ 0 - 1
2.Web/.gitignore

@@ -1,7 +1,6 @@
 .DS_Store
 node_modules/
 /dist/
-/版本发布/
 npm-debug.log*
 yarn-debug.log*
 yarn-error.log*

+ 3 - 2
2.Web/config/index.js

@@ -34,7 +34,8 @@ module.exports = {
    */
 
   // https://webpack.js.org/configuration/devtool/#development
-  devtool: 'cheap-module-eval-source-map',
+//   devtool: 'cheap-module-eval-source-map',
+    devtool: 'source-map',
 
   // If you have problems debugging vue-files in devtools,
   // set this to false - it *may* help
@@ -59,7 +60,7 @@ module.exports = {
 
   productionSourceMap: false,
   // https://webpack.js.org/configuration/devtool/#production
-  devtool: '#source-map',
+  devtool: 'source-map',
 
   // Gzip off by default as many popular static hosts such as
   // Surge or Netlify already gzip all static assets for you.

+ 3 - 3
2.Web/src/api/index.js

@@ -8,9 +8,9 @@ let url = '',
 // 区分开发和生产
 if (process.env.NODE_ENV === 'development') {
  // 开发环境
- url = 'http://202.107.226.67:21008/api'
- data_url = 'http://202.107.226.67:21008/data'
- hist_url = 'http://202.107.226.67:21008/hist'
+ url = 'http://127.0.0.1:21006/api'
+ data_url = 'http://127.0.0.1:10088/data'
+ hist_url = 'http://127.0.0.1:10087/hist'
  //  url = 'http://202.107.226.68:21008/api'
  //  data_url = 'http://202.107.226.68:21008/data'
  //  hist_url = 'http://202.107.226.68:21008/hist'

+ 3 - 7
2.Web/src/chart/force-curve-disassemble.js

@@ -292,21 +292,17 @@ function forceDisassemble({
   ],
   yAxis: [
    {
-    name: `定/反位:${force_unit || '-'}`,
+    name: `定/反位:${force_unit}`,
     nameGap: 10,
     nameTextStyle: {
      padding: [0, 0, 0, 50],
     },
-    min: val => {
-     if (y_min == 0) return
-     if (val.min < y_min) return parseInt(val.min * 0.95)
-     else return parseInt(y_min * 0.95)
-    },
     max: val => {
      if (y_max == 0) return
      if (val.max > y_max) return parseInt(val.max * 1.05)
      else return parseInt(y_max * 1.05)
     },
+    min: 0,
     gridIndex: 0,
     axisLine: {
      show: true,
@@ -331,7 +327,7 @@ function forceDisassemble({
    },
    {
     scale: true, // y轴起始值自适应
-    name: `转换阻力:${force_unit || '-'}`,
+    name: `转换阻力:${force_unit}`,
     nameGap: 10,
     nameTextStyle: {
      padding: [0, 0, 0, 50],

+ 0 - 6
2.Web/src/components/Layout.vue

@@ -473,9 +473,6 @@ export default {
      //   if (hh_keys.includes(hh)) return
      //  }
      //  this.new_alarm_list.unshift(re_msg)
-     if(re_msg.type==32){
-      return;
-     }
      let new_re_msg = _.cloneDeep(re_msg)
      new_re_msg.alarm_count = 1
      let target_data = this.new_alarm_list.find(item => {
@@ -487,15 +484,12 @@ export default {
       let re_msg_unix = this.$dayjs(re_msg.occur_time).valueOf()
       // 同类型报警,取最新一条报警的内容展示
       if (target_data_unix < re_msg_unix) {
-        this.new_alarm_list = this.new_alarm_list.filter(item => item.alarm_id != target_data.alarm_id);
        for (let key in re_msg) {
         if (key != 'alarm_count') {
          target_data[key] = re_msg[key]
         }
        }
-       this.new_alarm_list.unshift(target_data);
       }
-      
      } else {
       this.new_alarm_list.unshift(new_re_msg)
      }

+ 1 - 9
2.Web/src/main.js

@@ -27,18 +27,10 @@ Vue.prototype.$qs = qs
 // Vue.prototype.$axios = axios
 Vue.prototype.$echarts = echarts
 
-Vue.prototype.$isSortedIgnoringEmpty = function(alarmA,alarmB,alarmC,alarmD){
-    const values = [alarmA,alarmB,alarmC,alarmD].filter(value=>value!=null&& value!=='');
-    if(values.length==0){
-      return true;
-    }
-    return values.every((num,i,arr)=>i==0 ||num<arr[i-1]);
-};
-
 Vue.use(ElementUI)
 
 // 引入自定义指令
-import './instruction/public'
+import './utils/debounce' // 按钮防抖
 
 /* eslint-disable no-new */
 new Vue({

+ 1 - 3
2.Web/src/store/index.js

@@ -9,9 +9,7 @@ Vue.use(Vuex)
 const store = new Vuex.Store({
  state: {
   user_name: '' || localStorage.getItem('user_name'),
-  admin: localStorage.getItem('admin')
-   ? localStorage.getItem('admin') == 'true' || localStorage.getItem('admin') == 1
-   : false,
+  admin: localStorage.getItem('admin') || false,
   token: '' || localStorage.getItem('token'),
   name: '' || localStorage.getItem('name'),
   backend_type: localStorage.getItem('backend_type') || '1', // 1:站机端、2:中心端

+ 1 - 1
2.Web/src/utils/get-url.js

@@ -3,7 +3,7 @@ let ask_url = ''
 let port = ''
 if (process.env.NODE_ENV === 'development') {
  //  ask_url = '202.107.226.68' // websocket地址
- ask_url = '202.107.226.67' // websocket地址,正常
+ ask_url = '127.0.0.1' // websocket地址,正常
  port = '10086'
  //  ask_url = '192.168.2.96' // 开发环境
  //  port = '10088'

+ 24 - 40
2.Web/src/views/AlarmManagement.vue

@@ -234,7 +234,7 @@
        <el-table-column
         prop="desc"
         align="center"
-        min-width="250"
+        min-width="300"
         show-overflow-tooltip
         label="报警内容"
        >
@@ -286,19 +286,19 @@
      </template>
     </el-table-column>
     <!-- 嵌入表格结束 -->
-    <el-table-column prop="up_name" show-overflow-tooltip width="120px" label="站" align="center">
+    <el-table-column prop="up_name" show-overflow-tooltip width="200px" label="站" align="center">
     </el-table-column>
     <el-table-column prop="mo_name" sortable align="center" label="道岔号" width="90">
     </el-table-column>
     <el-table-column prop="mp" sortable align="center" label="牵引点" width="90"> </el-table-column>
-    <el-table-column sortable prop="level" align="center" label="报警等级" min-width="100">
+    <el-table-column sortable prop="level" align="center" label="报警等级" min-width="110">
      <template slot-scope="scope">
       <span :style="{ color: scope.row.level == 1 ? 'red' : 'orange' }">{{
        scope.row.level == 1 ? '告警' : '预警'
       }}</span>
      </template>
     </el-table-column>
-    <el-table-column prop="sunroof" align="center" label="天窗" min-width="60">
+    <el-table-column prop="sunroof" align="center" label="天窗" min-width="90">
      <template slot-scope="scope">
       <span>{{ scope.row.sunroof == 1 ? '是' : '否' }}</span>
      </template>
@@ -319,20 +319,20 @@
      prop="desc"
      align="center"
      show-overflow-tooltip
-     min-width="240"
+     min-width="300"
      label="报警内容"
     >
     </el-table-column>
-    <el-table-column sortable prop="occur_time" align="center" min-width="170" label="报警时间">
+    <el-table-column sortable prop="occur_time" align="center" min-width="190" label="报警时间">
     </el-table-column>
-    <el-table-column sortable prop="recovery_time" align="center" min-width="170" label="恢复时间">
+    <el-table-column sortable prop="recovery_time" align="center" min-width="190" label="恢复时间">
     </el-table-column>
     <el-table-column prop="handle_info" show-overflow-tooltip align="center" label="处理信息">
      <template slot-scope="scope">
       <span>{{ scope.row.handle_info || '-' }}</span>
      </template>
     </el-table-column>
-    <el-table-column sortable prop="ack_time" align="center" label="受理状态" min-width="200">
+    <el-table-column sortable prop="ack_time" align="center" label="受理状态" min-width="240">
      <template slot-scope="scope">
       <span v-if="scope.row.ack_time">{{ scope.row.ack_name }}:{{ scope.row.ack_time }}</span>
       <span v-else>
@@ -340,7 +340,7 @@
       </span>
      </template>
     </el-table-column>
-    <el-table-column sortable prop="handle_time" min-width="200" align="center" label="处理状态">
+    <el-table-column sortable prop="handle_time" min-width="240" align="center" label="处理状态">
      <template slot-scope="scope">
       <span v-if="scope.row.handle_time"
        >{{ scope.row.handle_name }}:{{ scope.row.handle_time }}</span
@@ -352,7 +352,7 @@
       </span>
      </template>
     </el-table-column>
-    <el-table-column width="100" align="center" fixed="right" label="前往">
+    <el-table-column width="100" align="center" label="前往">
      <template slot-scope="scope">
       <span v-if="scope.row.type >= 32" type="primary">-</span>
       <el-link v-else type="primary" @click="localtion_history(scope.row)">历史数据</el-link>
@@ -492,8 +492,16 @@ export default {
     },
     {
      value: 6,
-     label: '保持力报警',
-    }
+     label: '保持力下降报警',
+    },
+    {
+     value: 32,
+     label: '设备离线',
+    },
+    {
+     value: 33,
+     label: '传感器异常',
+    },
    ], // 报警类别
    ack_status_list: [
     {
@@ -547,7 +555,7 @@ export default {
     [2, '摩擦力超限'],
     [4, '锁闭力超限'],
     [5, '转换阻力超限'],
-    [6, '保持力报警'],
+    [6, '保持力下降报警'],
     [32, '设备离线'],
     [33, '传感器异常'],
    ]),
@@ -610,24 +618,6 @@ export default {
    this.params.offset = 0 // 将 offset 重置为 0
    return this.inquire_table()
   },
-  // 解析query
-  format_query(query) {
-   this.station_id = query.station_id;
-   this.params.mo = query.mo;
-   this.params.mp = query.mp;
-   this.params.type = query.type;
-   this.times = query.times;
-  },
-  // 判断URL中是否有参数
-  url_is_query() {
-   if (this.$route.query.station_id) {
-    let query = this.$route.query
-    this.format_query(query)
-   }else{
-    this.get_time()
-   }
-   return this.inquire_table();
-  },
   // 前往历史数据
   localtion_history(row) {
    this.$router.push({
@@ -724,7 +714,7 @@ export default {
      console.log(res)
      this.total = 0
      this.tableData = []
-     if (res.rows.length == 0) return 
+     if (res.rows.length == 0) return this.$message.warning('无报警数据...')
      this.total = res.total
      this.tableData = res.rows
     })
@@ -797,15 +787,9 @@ export default {
   },
  },
  mounted() {
-   this.get_station_list();
-   this.url_is_query();
+  this.get_time()
+  this.get_station_list()
  },
- watch:{
-  $route(){
-    this.get_station_list();
-    this.url_is_query();
-  }
- }
 }
 </script>
 

+ 1 - 182
2.Web/src/views/CurveRetentivity.vue

@@ -58,13 +58,7 @@
      type="primary"
      size="small"
      @click="get_has_records"
-     >查询</el-button>
-     <el-button
-     style="margin-left:8px;"
-     type="primary"
-     size="small"
-     @click="alarm_warn_setting('dw_alarm_low_drop')"
-     >保持力报警设置</el-button
+     >查询</el-button
     >
     <el-button
      style="margin-left:8px;"
@@ -74,7 +68,6 @@
      v-debounce="export_img"
      >导出图片</el-button
     >
-    <el-button style="margin-left: 5px;" type="primary" size="mini" @click="localtion_history">历史数据</el-button>
    </div>
    <div
     v-loading="loading"
@@ -87,59 +80,6 @@
     <div ref="one" id="one" class="curve"></div>
    </div>
   </div>
-   <!-- 转换阻力设置 -->
-   <div class="dw_alarm_low_drop">
-   <el-dialog
-    width="400px"
-    title="保持力报警配置"
-    :lock-scroll="true"
-    :show-close="true"
-    @close="val => cancel_setting(val, 'dw_alarm_low_drop')"
-    :close-on-click-modal="false"
-    :close-on-press-escape="false"
-    :visible.sync="dialogVisible"
-   >
-   <div class=" position_left" style="text-align: left;">
-      <span class="mark"></span>状态&nbsp;&nbsp;&nbsp; 
-      <el-radio-group  v-model="retension_enable">
-      <el-radio :label=true>启用</el-radio>
-      <el-radio :label=false>未启用</el-radio>
-     </el-radio-group>
-     </div>
-     <div class="position_top_20 position_left" style="text-align: left;">
-      <span class="mark"></span>位置&nbsp;&nbsp;&nbsp;
-      <el-radio-group  v-model="retension_posi" @change="posi_change()">
-      <el-radio :label="100">定位</el-radio>
-       <el-radio :label="101">反位</el-radio>
-      </el-radio-group>
-     </div>
-
-     <div class="position_top_20 position_left" style="text-align: left;">
-      <span class="mark">*</span>最低报警值:
-      <!-- <el-input style="width:200px;margin-left: 58px;" v-model="dw_alarm_low_drop" oninput="value=value.replace(/^0|[^0-9]/g,'')" size="small" maxlength="5" placeholder="请输入0~40000之间的数字" ></el-input> -->
-      <el-input style="width:180px;" v-model="dw_alarm_low_drop"  size="small" maxlength="7" placeholder="请输入-100000~100000之间的数字" ></el-input>
-     </div>
-     <!-- <div class="position_top_20">
-      <span class="mark">*</span>下降超限百分比(%):
-     <el-input style="width:200px" v-model="alarm_low_percent" oninput="value=value.replace(/^0|[^0-9]/g,'')" size="small" maxlength="2" placeholder="请输入5~95之间的数字"></el-input>
-     </div>
-
-     <div class="position_top_20">
-      <span class="mark">*</span>上升超限百分比(%):
-     <el-input style="width:200px" v-model="alarm_high_percent" oninput="value=value.replace(/^0|[^0-9]/g,'')" size="small" maxlength="2"  placeholder="请输入5~95之间的数字"></el-input>
-     </div> -->
-    <span slot="footer" class="dialog-footer">
-     <el-button size="small" @click="cancel_setting('convert_resist')">关 闭</el-button>
-     <el-button
-      v-if="$store.state.admin && $store.state.backend_type == 1"
-      size="small"
-      type="primary"
-      @click="save_settting()"
-      >保 存</el-button
-     >
-    </span>
-   </el-dialog>
-  </div>
  </div>
 </template>
 
@@ -152,7 +92,6 @@ import curveRetentivityOption from '../chart/curve-retentivity'
 import { today } from '../utils/time'
 import { exportImage } from '../plugin/html2canvas' // 引入
 import { treeCorrelation } from '../mixins/treeCorrelation'
-import {get_retension_force,set_retension_force} from '../api'
 export default {
  name: 'CurveRetentivity',
  mixins: [treeCorrelation],
@@ -166,12 +105,6 @@ export default {
     time: '',
     end_time: '',
    }, //获取阻力曲线图
-   dialogVisible:false,
-   retension_enable: true, // 保持力是否启用
-   retension_posi: 100,
-   dw_alarm_low_drop: '', // 最低报警值
-   alarm_low_percent: '', // 下降超限百分比
-   alarm_high_percent: '', // 上升超限百分比
    times: [],
    click_id: '', //确认是否激活
    curve_data: new Object(), // 曲线数据
@@ -202,22 +135,6 @@ export default {
   }
  },
  methods: {
-  // 位置变化
-  posi_change() {
-    if (!this.click_id) return this.$message.warning('请先选择设备...')
-     let [mo, mp] = this.click_id.split('.')
-     let send_data = { mo, mp, posi: this.retension_posi }
-     get_retension_force(send_data)
-      .then(res => {
-       this.retension_enable = res.enable;
-       this.dw_alarm_low_drop = res.dw_alarm_low_drop;
-       this.alarm_high_percent = res.alarm_high_percent;
-       this.alarm_low_percent = res.alarm_low_percent;
-      })
-      .catch(e => {
-       console.log(e)
-      })
-  },
   // 导出Image
   export_img() {
    if (!this.send_data.mo || !this.send_data.mp)
@@ -248,28 +165,6 @@ export default {
     message: '导出成功!',
    })
   },
-  // 前往历史数据
-  localtion_history() {
-   if (!this.send_data.mo || !this.send_data.mp)
-    return this.$message({
-     type: 'warning',
-     showClose: true,
-     duration: 1500,
-     message: '请选择重要信息',
-    })
-   let route_data = {
-    name: 'force',
-    query: {
-     tag: this.click_id,
-     time: this.times[0] / 1000,
-     endtime: this.times[1] / 1000 + 24 * 60 * 60 - 1,
-     title: this.send_data.name,
-    },
-   }
-   this.$router.push(route_data)
-   this.$store.state.defaultActive = '/layout/force'
-   this.$store.commit('handle_save_defaultActive', '/layout/force')
-  },
   // 点击树结构
   handle_node_click(data, node) {
    if (data.type != 'mo.mp') return
@@ -386,82 +281,6 @@ export default {
    })
    resizeOb.observe(this.$refs.one)
   },
-  // 点击获取预报警值
-  alarm_warn_setting(type) {
-    let send_data = {};
-    if (!this.click_id) return this.$message.warning('请先选择设备...')
-     let [mo, mp] = this.click_id.split('.')
-     send_data = { mo, mp, posi: this.retension_posi }
-     get_retension_force(send_data)
-      .then(res => {
-       this.retension_enable = res.enable;
-       this.dw_alarm_low_drop = res.dw_alarm_low_drop;
-       this.alarm_high_percent = res.alarm_high_percent;
-       this.alarm_low_percent = res.alarm_low_percent;
-       this.dialogVisible = true;
-      })
-      .catch(e => {
-       console.log(e)
-      })
-     return
-  },// 关闭预告警设置
-  cancel_setting(type) {
-     this.dialogVisible= false;
-     this.retension_enable= true; 
-     this.retension_posi=100;
-     this.dw_alarm_low_drop= ''; 
-     this.alarm_low_percent= ''; 
-     this.alarm_high_percent= ''; 
-  },// 保存预告警设置
-  save_settting() {
-    if (!this.click_id) return this.$message.warning('请先选择设备...')
-   let dw_alarm_low_drop = '';
-      let alarm_low_percent = '';
-      let alarm_high_percent= '';
-      let regex  = /^-?\d+$/;
-      if (this.dw_alarm_low_drop) {
-        if(!regex.test(this.dw_alarm_low_drop) || Math.abs(this.dw_alarm_low_drop) > 100000){
-          return this.$message.warning('最低报警值要求:-100000~100000之间的数字');
-        }else{
-          dw_alarm_low_drop = Number(this.dw_alarm_low_drop);
-        }        
-      }
-      if (this.alarm_low_percent ){
-        if(this.alarm_low_percent < 5 || this.alarm_low_percent > 95){
-          return this.$message.warning('下降超限百分比要求:5~95之间的数字');
-        }else{
-          alarm_low_percent= Number(this.alarm_low_percent);
-        }        
-     }
-     if (this.alarm_high_percent ){
-      if(this.alarm_high_percent < 5 || this.alarm_high_percent > 95){
-        return this.$message.warning('上升超限百分比要求:5~95之间的数字');
-      }else{
-        alarm_high_percent= Number(this.alarm_high_percent);  
-      }      
-       
-     }
-     let [mo, mp] = this.click_id.split('.')
-
-     let send_data = {
-      mo,
-      mp,
-      posi: this.retension_posi,
-      conf: {
-       enable: this.retension_enable,
-       dw_alarm_low_drop:dw_alarm_low_drop,
-       alarm_low_percent:alarm_low_percent,
-       alarm_high_percent:alarm_high_percent,
-      },
-     }
-     set_retension_force(send_data)
-      .then(res => {
-       return this.$message.success('设置成功...')
-      })
-      .catch(e => {
-       console.log(e)
-      })
-   },
   // 发送浏览记录
   send_record(commit_data) {
    if (commit_data.dura <= 500) return

+ 38 - 48
2.Web/src/views/CurveStatistical.vue

@@ -82,17 +82,16 @@
      style="margin-left:8px;"
      type="primary"
      size="small"
-     @click="alarm_warn_setting('suobi_lock')"
-     >锁闭力报警设置</el-button
+     @click="alarm_warn_setting('convert_resist')"
+     >转换阻力报警设置</el-button
     >
     <el-button
      style="margin-left:8px;"
      type="primary"
      size="small"
-     @click="alarm_warn_setting('convert_resist')"
-     >转换阻力报警设置</el-button
+     @click="alarm_warn_setting('suobi_lock')"
+     >锁闭力报警设置</el-button
     >
-    
     <el-button
      style="margin-left:8px;"
      icon="el-icon-download"
@@ -135,25 +134,30 @@
      </el-radio-group>
     </p>
     <p class="no_show">1</p>
-    <span class="mark">*</span>定扳反报警值:
+    <span class="mark">*</span>伸出告警值
     <el-input
-     style="width:90px"
-     v-model.number="convert_resist.dw_alarm_low_limit"   size="small" maxlength="5" placeholder="请输入数字"></el-input>
-    <span class="mark position_left">*</span><span>定扳反预警值:</span>
+     style="width:100px"
+     v-model.number="convert_resist.dw_alarm_low_limit"
+     size="small"
+    ></el-input>
+    <span class="mark position_left">*</span><span>伸出预警值</span>
     <el-input
-     style="width:90px"
-     v-model.number="convert_resist.dw_warn_low_limit"   size="small" maxlength="5" placeholder="请输入数字"
+     style="width:100px"
+     v-model.number="convert_resist.dw_warn_low_limit"
+     size="small"
     ></el-input>
     <p class="no_show">1</p>
-    <span class="mark">*</span>反扳定报警值:
+    <span class="mark">*</span>缩进告警值
     <el-input
-     style="width:90px"
-     v-model.number="convert_resist.up_alarm_high_limit"  size="small" maxlength="5" placeholder="请输入数字"
+     style="width:100px"
+     v-model.number="convert_resist.up_alarm_high_limit"
+     size="small"
     ></el-input>
-    <span class="mark position_left">*</span>反扳定预警值:
+    <span class="mark position_left">*</span>缩进预警值
     <el-input
-     style="width:90px"
-     v-model.number="convert_resist.up_warn_high_limit"  size="small" maxlength="5" placeholder="请输入数字"
+     style="width:100px"
+     v-model.number="convert_resist.up_warn_high_limit"
+     size="small"
     ></el-input>
     <span slot="footer" class="dialog-footer">
      <el-button size="small" @click="cancel_setting('convert_resist')">关 闭</el-button>
@@ -197,26 +201,30 @@
      </el-radio-group>
     </p>
     <p class="no_show">1</p>
-    <span class="mark">*</span>最大报警值:
+    <span class="mark">*</span>最小告警值
     <el-input
-     style="width:110px"
-     v-model.number="suobi_lock.alarm_high_limit" size="small" maxlength="5" placeholder="请输入数字"
+     style="width:100px"
+     v-model.number="suobi_lock.alarm_low_limit"
+     size="small"
     ></el-input>
-    <span class="mark position_left">*</span>最大预警值:
+    <span class="mark position_left">*</span><span>最小预警值</span>
     <el-input
-     style="width:110px"
-     v-model.number="suobi_lock.warn_high_limit" size="small" maxlength="5" placeholder="请输入数字"
+     style="width:100px"
+     v-model.number="suobi_lock.warn_low_limit"
+     size="small"
     ></el-input>
     <p class="no_show">1</p>
-    <span class="mark">*</span><span>最小预警值:</span>
+    <span class="mark">*</span>最大告警值
     <el-input
-     style="width:110px"
-     v-model.number="suobi_lock.warn_low_limit"  size="small" maxlength="5" placeholder="请输入数字"
+     style="width:100px"
+     v-model.number="suobi_lock.alarm_high_limit"
+     size="small"
     ></el-input>
-    <span class="mark position_left">*</span>最小报警值:
+    <span class="mark position_left">*</span>最大预警值
     <el-input
-     style="width:110px"
-     v-model.number="suobi_lock.alarm_low_limit" size="small" maxlength="5" placeholder="请输入数字"
+     style="width:100px"
+     v-model.number="suobi_lock.warn_high_limit"
+     size="small"
     ></el-input>
     <span slot="footer" class="dialog-footer">
      <el-button size="small" @click="cancel_setting('suobi_lock')">关 闭</el-button>
@@ -386,7 +394,7 @@ export default {
   posi_change() {
    return this.alarm_warn_setting('suobi_lock')
   },
-  // 点击获取预警值
+  // 点击获取预警值
   alarm_warn_setting(type) {
    if (!this.send_data.mo || !this.send_data.mp) return this.$message.warning('请选择重要信息')
    let send_data = {
@@ -428,21 +436,6 @@ export default {
    }
    switch (type) {
     case 'convert_resist':
-
-    this.convert_resist.dw_alarm_low_limit = this.$isAlarmScope(this.convert_resist.dw_alarm_low_limit);
-    this.convert_resist.dw_warn_low_limit = this.$isAlarmScope(this.convert_resist.dw_warn_low_limit);
-    this.convert_resist.up_alarm_high_limit = this.$isAlarmScope(this.convert_resist.up_alarm_high_limit);
-    this.convert_resist.up_warn_high_limit = this.$isAlarmScope(this.convert_resist.up_warn_high_limit);
-    
-    if(this.convert_resist.dw_alarm_low_limit  && this.convert_resist.dw_warn_low_limit 
-     && this.convert_resist.dw_alarm_low_limit  <= this.convert_resist.dw_warn_low_limit){
-      return this.$message.warning('定扳反报警值 应该大于 定扳反预警值');
-     }
-     if(this.convert_resist.up_alarm_high_limit && this.convert_resist.up_warn_high_limit
-     && this.convert_resist.up_alarm_high_limit  <= this.convert_resist.up_warn_high_limit){
-      return this.$message.warning('反扳定报警值 应该大于 反扳定预警值');
-     }
-
      send_data.conf = JSON.parse(JSON.stringify(this.convert_resist))
      write_convert_resist(send_data)
       .then(res => {
@@ -457,9 +450,6 @@ export default {
      break
     case 'suobi_lock':
      send_data.posi = this.posi
-     if(!this.$isSortedIgnoringEmpty(this.suobi_lock.alarm_high_limit,this.suobi_lock.warn_high_limit,this.suobi_lock.warn_low_limit,this.suobi_lock.alarm_low_limit,)){
-        return this.$message.warning('最大报警值 > 最大预警值 > 最小预警值 > 最小报警值');
-    }
      send_data.conf = JSON.parse(JSON.stringify(this.suobi_lock))
      write_mitie_lock(send_data)
       .then(res => {

+ 2 - 8
2.Web/src/views/Equipment.vue

@@ -26,7 +26,7 @@
     v-model="search"
     clearable
     style="width:300px;"
-    placeholder="输入站、道岔名称牵引点名称搜索"
+    placeholder="输入站、道岔名称牵引点名称搜索"
     prefix-icon="el-icon-search"
    />
    <el-radio-group
@@ -821,13 +821,7 @@ export default {
     return this.tableData.filter(data => {
      return Object.keys(data).some(key => {
       if (['up_name', 'mo_name', 'mp'].includes(key)) {
-        if((typeof Number(search)=== 'number') && !isNaN(Number(search))){
-          return data[key]==Number(search);
-        }
-        else{
-          return data[key].toLowerCase().indexOf(search.toLowerCase()) > -1
-        }
-       
+       return data[key].toLowerCase().indexOf(search.toLowerCase()) > -1
       }
      })
     })

Разлика између датотеке није приказан због своје велике величине
+ 214 - 285
2.Web/src/views/Force.vue


+ 7 - 7
2.Web/src/views/ForceHighCharts.vue

@@ -140,14 +140,14 @@
      v-if="click_id && is_nodata"
      >曲线对比</el-button
     >
-    <!-- <el-button
+    <el-button
      v-if="$store.state.admin && click_id && show_switch && $store.state.backend_type == 1"
      style="margin-left:8px;"
      type="primary"
      size="mini"
      @click="handle_refer_curve('set')"
      >设置参考</el-button
-    > -->
+    >
     <el-button
      v-if="$store.state.admin && click_id && show_switch && !show_xy"
      style="margin-left:8px;"
@@ -293,7 +293,7 @@
        </el-radio-group>
       </p>
       <p class="no_show">1</p>
-      <span class="mark">*</span>最小警值
+      <span class="mark">*</span>最小警值
       <el-input
        style="width:75px"
        v-model.number="suobi_lock.alarm_low_limit"
@@ -306,7 +306,7 @@
        size="small"
       ></el-input>
       <p class="no_show">1</p>
-      <span class="mark">*</span>最大警值
+      <span class="mark">*</span>最大警值
       <el-input
        style="width:75px"
        v-model.number="suobi_lock.alarm_high_limit"
@@ -330,7 +330,7 @@
        </el-radio-group>
       </p>
       <p class="no_show">1</p>
-      <span class="mark">*</span>伸出警值
+      <span class="mark">*</span>伸出警值
       <el-input
        style="width:75px"
        v-model.number="convert_resist.dw_alarm_low_limit"
@@ -343,7 +343,7 @@
        size="small"
       ></el-input>
       <p class="no_show">1</p>
-      <span class="mark">*</span>缩进警值
+      <span class="mark">*</span>缩进警值
       <el-input
        style="width:75px"
        v-model.number="convert_resist.up_alarm_high_limit"
@@ -606,7 +606,7 @@ export default {
   posi_change() {
    return this.tab_click()
   },
-  // 点击获取预警值
+  // 点击获取预警值
   alarm_warn_setting(type) {
    if (!this.click_id) return this.$message.warning('请选择重要信息')
    let [mo, mp] = this.click_id.split('.')

+ 1 - 1
2.Web/src/views/Login.vue

@@ -27,7 +27,7 @@
 <script>
 /**
  * 系统管理员:system/Zljc123!@#
-* 管理员:admin/admin
+ * 管理员:admin/admin123456
  */
 import { login_system } from '../api'
 export default {

+ 38 - 120
2.Web/src/views/ReportStatistical.vue

@@ -18,7 +18,7 @@
     size="small"
     :clearable="false"
     @change="select_change"
-    style="width: 180px; margin: 0 8px"
+    style="width:180px;margin: 0 8px;"
     format="yyyy年MM月dd日"
     start-placeholder="开始日期"
     end-placeholder="结束日期"
@@ -35,7 +35,7 @@
     >刷新</el-button
    >
    <el-button
-    style="margin-left: 8px"
+    style="margin-left:8px;"
     icon="el-icon-download"
     type="primary"
     size="small"
@@ -51,8 +51,8 @@
     element-loading-spinner="el-icon-loading"
     element-loading-background="rgba(31, 31, 31, 0.6)"
     style="width: 100%"
+    :span-method="objectSpanMethod"
     :cell-style="cellStyle"
-    :max-height="table_max_height"
    >
     <el-table-column prop="mo_name" label="道岔" align="center" show-overflow-tooltip>
     </el-table-column>
@@ -60,112 +60,36 @@
     </el-table-column>
     <el-table-column align="center" label="转换阻力">
      <el-table-column align="center" label="定扳反-峰值">
-      <el-table-column align="center" prop="d_convert_resist_max" label="最大"> 
-        <template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'d_convert_resist_max_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template>
-      </el-table-column>
-      <el-table-column align="center" prop="d_convert_resist_min" label="最小"> <template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'d_convert_resist_min_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template></el-table-column>
-      <!-- <el-table-column align="center" prop="d_convert_resist_avg" label="平均"> </el-table-column> -->
+      <el-table-column align="center" prop="d_convert_resist_max" label="最大"> </el-table-column>
+      <el-table-column align="center" prop="d_convert_resist_min" label="最小"> </el-table-column>
+      <el-table-column align="center" prop="d_convert_resist_avg" label="平均"> </el-table-column>
      </el-table-column>
      <el-table-column align="center" label="反扳定-峰值">
-      <el-table-column align="center" prop="f_convert_resist_max" label="最大"> <template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'f_convert_resist_max_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template></el-table-column>
-      <el-table-column align="center" prop="f_convert_resist_min" label="最小"><template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'f_convert_resist_min_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template> </el-table-column>
-      <!-- <el-table-column align="center" prop="f_convert_resist_avg" label="平均"> </el-table-column> -->
+      <el-table-column align="center" prop="f_convert_resist_max" label="最大"> </el-table-column>
+      <el-table-column align="center" prop="f_convert_resist_min" label="最小"> </el-table-column>
+      <el-table-column align="center" prop="f_convert_resist_avg" label="平均"> </el-table-column>
      </el-table-column>
     </el-table-column>
     <el-table-column align="center" label="锁闭力">
      <el-table-column align="center" label="定位">
-      <el-table-column align="center" prop="d_suobi_lock_max" label="最大"><template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'d_suobi_lock_max_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template> </el-table-column>
-      <el-table-column align="center" prop="d_suobi_lock_min" label="最小"> <template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'d_suobi_lock_min_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template></el-table-column>
-      <!-- <el-table-column align="center" prop="d_suobi_lock_avg" label="平均"> </el-table-column> -->
+      <el-table-column align="center" prop="d_suobi_lock_max" label="最大"> </el-table-column>
+      <el-table-column align="center" prop="d_suobi_lock_min" label="最小"> </el-table-column>
+      <el-table-column align="center" prop="d_suobi_lock_avg" label="平均"> </el-table-column>
      </el-table-column>
      <el-table-column align="center" label="反位">
-      <el-table-column align="center" prop="f_suobi_lock_max" label="最大">
-       <template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'f_suobi_lock_max_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template>
-      </el-table-column>
-      <el-table-column align="center" prop="f_suobi_lock_min" label="最小"><template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'f_suobi_lock_min_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template> </el-table-column>
-      <!-- <el-table-column align="center" prop="f_suobi_lock_avg" label="平均"> </el-table-column> -->
+      <el-table-column align="center" prop="f_suobi_lock_max" label="最大"> </el-table-column>
+      <el-table-column align="center" prop="f_suobi_lock_min" label="最小"> </el-table-column>
+      <el-table-column align="center" prop="f_suobi_lock_avg" label="平均"> </el-table-column>
      </el-table-column>
     </el-table-column>
     <el-table-column align="center" label="保持力">
      <el-table-column align="center" label="定位">
-      <el-table-column align="center" prop="d_retention_fore_max" label="最大"> <template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'d_retention_fore_max_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template></el-table-column>
-      <el-table-column align="center" prop="d_retention_fore_min" label="最小"><template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'d_retention_fore_min_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template> </el-table-column>
+      <el-table-column align="center" prop="d_retention_fore_max" label="最大"> </el-table-column>
+      <el-table-column align="center" prop="d_retention_fore_min" label="最小"> </el-table-column>
      </el-table-column>
      <el-table-column align="center" label="反位">
-      <el-table-column align="center" prop="f_retention_fore_max" label="最大"><template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'f_retention_fore_max_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template> </el-table-column>
-      <el-table-column align="center" prop="f_retention_fore_min" label="最小"><template slot-scope="scope"
-        ><report-statistical-clumn
-         :data="scope.row"
-         :clumnName="'f_retention_fore_min_color'"
-         :times="times"
-        ></report-statistical-clumn
-       ></template> </el-table-column>
+      <el-table-column align="center" prop="f_retention_fore_max" label="最大"> </el-table-column>
+      <el-table-column align="center" prop="f_retention_fore_min" label="最小"> </el-table-column>
      </el-table-column>
     </el-table-column>
    </el-table>
@@ -183,31 +107,31 @@
   </div>
   <!-- 导出的表格 -->
   <div v-show="false" class="export_table">
-   <el-table :data="table_data" id="out-table" style="width: 100%">
+   <el-table :data="table_data" id="out-table" :span-method="objectSpanMethod" style="width: 100%">
     <el-table-column prop="mo_name" label="道岔" align="center"> </el-table-column>
     <el-table-column prop="mp" label="牵引点" align="center"> </el-table-column>
     <el-table-column align="center" label="转换阻力">
      <el-table-column align="center" label="定扳反-峰值">
       <el-table-column align="center" prop="d_convert_resist_max" label="最大"> </el-table-column>
       <el-table-column align="center" prop="d_convert_resist_min" label="最小"> </el-table-column>
-      <!-- <el-table-column align="center" prop="d_convert_resist_avg" label="平均"> </el-table-column> -->
+      <el-table-column align="center" prop="d_convert_resist_avg" label="平均"> </el-table-column>
      </el-table-column>
      <el-table-column align="center" label="反扳定-峰值">
       <el-table-column align="center" prop="f_convert_resist_max" label="最大"> </el-table-column>
       <el-table-column align="center" prop="f_convert_resist_min" label="最小"> </el-table-column>
-      <!-- <el-table-column align="center" prop="f_convert_resist_avg" label="平均"> </el-table-column> -->
+      <el-table-column align="center" prop="f_convert_resist_avg" label="平均"> </el-table-column>
      </el-table-column>
     </el-table-column>
     <el-table-column align="center" label="锁闭力">
      <el-table-column align="center" label="定位">
       <el-table-column align="center" prop="d_suobi_lock_max" label="最大"> </el-table-column>
       <el-table-column align="center" prop="d_suobi_lock_min" label="最小"> </el-table-column>
-      <!-- <el-table-column align="center" prop="d_suobi_lock_avg" label="平均"> </el-table-column> -->
+      <el-table-column align="center" prop="d_suobi_lock_avg" label="平均"> </el-table-column>
      </el-table-column>
      <el-table-column align="center" label="反位">
       <el-table-column align="center" prop="f_suobi_lock_max" label="最大"> </el-table-column>
       <el-table-column align="center" prop="f_suobi_lock_min" label="最小"> </el-table-column>
-      <!-- <el-table-column align="center" prop="f_suobi_lock_avg" label="平均"> </el-table-column> -->
+      <el-table-column align="center" prop="f_suobi_lock_avg" label="平均"> </el-table-column>
      </el-table-column>
     </el-table-column>
     <el-table-column align="center" label="保持力">
@@ -233,16 +157,11 @@ import { station_list, resistance_report, commit_record } from '../api'
 import { today } from '../utils/time'
 import FileSaver from 'file-saver'
 import XLSX from 'xlsx'
-import ReportStatisticalClumn from './ReportStatisticalClumn.vue'
 export default {
  name: 'ReportStatistical',
- components: {
-  ReportStatisticalClumn
- },
  data() {
   return {
    station_data: [],
-   table_max_height: window.innerHeight - 200,
    table_data: [],
    send_data: {
     type: 1,
@@ -376,7 +295,7 @@ export default {
    this.loading = true
    this.commit_data.time = +new Date()
    resistance_report(this.send_data)
-    .then((res) => {
+    .then(res => {
      this.res_time = +new Date()
      this.commit_data.station = this.send_data.station
      this.commit_data.station_name = this.station_map.get(this.send_data.station)
@@ -384,10 +303,9 @@ export default {
      this.loading = false
      this.table_data = []
      if (!res.length) return this.$message.warning('无数据...')
-     res.sort((a, b) => a.mo_name - b.mo_name)
      this.table_data = res
     })
-    .catch((e) => {
+    .catch(e => {
      console.log(e)
      this.loading = false
      this.table_data = []
@@ -405,13 +323,13 @@ export default {
   },
   // 合并
   objectSpanMethod({ row, column, rowIndex, columnIndex }) {
-   //  if (columnIndex === 0) {
-   //   const _row = this.flitterData(this.table_data).one[rowIndex]
-   //   return {
-   //    rowspan: _row,
-   //    colspan: 1,
-   //   }
-   //  }
+   if (columnIndex === 0) {
+    const _row = this.flitterData(this.table_data).one[rowIndex]
+    return {
+     rowspan: _row,
+     colspan: 1,
+    }
+   }
   },
   // 合并方法
   flitterData(arr) {
@@ -441,17 +359,17 @@ export default {
   get_station_list() {
    // 站列表
    station_list()
-    .then((res) => {
+    .then(res => {
      if (!res || !res.length) return this.$message.warning('无站数据...')
      this.station_data = res
      this.send_data.station = res[0].id
      this.station_map = new Map()
-     res.forEach((item) => {
+     res.forEach(item => {
       this.station_map.set(item.id, item.name)
      })
      return this.get_table_data()
     })
-    .catch((e) => {
+    .catch(e => {
      console.log(e)
     })
   },
@@ -460,8 +378,8 @@ export default {
    if (commit_data.dura <= 500) return
    if (!commit_data.station || !commit_data.station_name) return
    commit_record([commit_data])
-    .then((res) => {})
-    .catch((e) => {})
+    .then(res => {})
+    .catch(e => {})
   },
   // 离开界面时
   leave_page() {

+ 1 - 5
2.Web/src/views/SingleDevice.vue

@@ -246,11 +246,7 @@ export default {
   warnline(re_msg) {
    if (!re_msg.conf.length) return
    for (let i = 0; i < re_msg.conf.length; i++) {
-    if(re_msg.conf[i].name == 'enable' &&  re_msg.conf[i].val == 'false'){
-      this.warn_line_data.length = 0;
-        break;
-    } 
-    if(re_msg.conf[i].name != 'enable'){
+    if (re_msg.conf[i].name != 'enable') {
      if (['lock_alarm_high_limit', 'lock_warn_high_limit'].includes(re_msg.conf[i].name)) {
       this.warn_line_data.push({
        name: re_msg.conf[i].label.substring(0, 2),

Разлика између датотеке није приказан због своје велике величине
+ 264 - 503
2.Web/src/views/SystemSetting.vue


+ 0 - 2
2.Web/src/views/UserManagement.Vue

@@ -96,7 +96,6 @@
       <el-cascader
        :options="org_data_list"
        v-model="add_user.node"
-       v-removeAriaHidden
        size="small"
        style="width:100%;"
        ref="add_cascder"
@@ -436,7 +435,6 @@ export default {
   },
   // 获取用户数据
   get_table_data() {
-   this.user_map = new Map()
    get_user_list()
     .then(res => {
      if (res.code != 200) return this.$message.warning('获取表格数据失败...')

+ 1 - 1
2.Web/static/css/curve-compare.scss

@@ -7,7 +7,7 @@ $hover-color: #304156;
  height: 100%;
  .station_tree {
   min-width: 200px;
-  width: 220px;
+  width: 220;
   max-width: 450px;
   overflow-y: auto;
   height: calc(100vh - 70px);

+ 0 - 6
2.Web/static/css/system-setting.scss

@@ -77,12 +77,6 @@ $hover-color: #304156;
    .position_left {
     padding-left: 8px;
    }
-   .position_top_20 {
-    margin-top: 20px;
-   }
-   .position_top_10 {
-    margin-top: 10px;
-   }
   }
  }
 }

BIN
3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/com/company/controller/DeviceInfoController.class


BIN
3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/com/company/controller/LoginController.class


BIN
3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/com/company/controller/OrganizationController.class


BIN
3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/com/company/model/MonitorObject.class


BIN
3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/com/company/model/temphumidity.class


+ 3 - 3
3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/classes/dbconfig.properties

@@ -1,7 +1,7 @@
-url:jdbc:sqlserver://127.0.0.1:21009;DatabaseName\=RMDB
+url:jdbc:sqlserver://127.0.0.1:1433;DatabaseName\=RMDB1
 driverClassName:com.microsoft.sqlserver.jdbc.SQLServerDriver
-username:zljc
-password:Zljc123!@#
+username:sa
+password:sa123456
 
 #url:jdbc:mysql://127.0.0.1:3306/xrserverms
 #driverClassName:com.mysql.jdbc.Driver

+ 0 - 5
3.Java/out/artifacts/ResistanceMonitor_war_exploded/WEB-INF/web.xml

@@ -12,11 +12,6 @@
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:applicationContext.xml</param-value>
     </context-param>
-    <context-param>
-        <param-name>application.version</param-name>
-        <param-value>2.0.4
-        </param-value>
-    </context-param>
     <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>

+ 3 - 3
3.Java/src/dbconfig.properties

@@ -1,7 +1,7 @@
-url:jdbc:sqlserver://202.107.226.68:21009;DatabaseName\=RMDB
+url:jdbc:sqlserver://127.0.0.1:1433;DatabaseName\=RMDB1
 driverClassName:com.microsoft.sqlserver.jdbc.SQLServerDriver
-username:zljc
-password:Zljc123!@#
+username:sa
+password:sa123456
 
 #url:jdbc:mysql://127.0.0.1:3306/xrserverms
 #driverClassName:com.mysql.jdbc.Driver

Неке датотеке нису приказане због велике количине промена