Przeglądaj źródła

高危企业信息

lchao 5 miesięcy temu
rodzic
commit
2065ed2f27

+ 9 - 0
data-ui/src/api/centerdata_emergency/enterprise/enterprise.js

@@ -8,6 +8,14 @@ export function listEnterprise(query) {
     params: query
   })
 }
+// 查询高危企业信息列表
+export function listHighEnterprise(query) {
+  return request({
+    url: '/sooka-sponest-center-data/emergency/enterprise/highList',
+    method: 'get',
+    params: query
+  })
+}
 
 // 查询企业信息详细
 export function getEnterprise(id) {
@@ -42,3 +50,4 @@ export function delEnterprise(id) {
     method: 'delete'
   })
 }
+

+ 803 - 0
data-ui/src/views/data/other/enterprise/highindex.vue

@@ -0,0 +1,803 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
+      <el-row :gutter="16">
+        <el-form-item label="企业名称" prop="name">
+          <el-input
+            v-model="queryParams.name"
+            placeholder="请输入企业名称"
+            clearable
+            @input="handleQuery"
+          />
+        </el-form-item>
+<!--        <el-form-item label="组织机构代码" prop="organizationCode">-->
+<!--          <el-input-->
+<!--            v-model="queryParams.organizationCode"-->
+<!--            placeholder="请输入组织机构代码"-->
+<!--            clearable-->
+<!--            @input="handleQuery"-->
+<!--          />-->
+<!--        </el-form-item>-->
+        <el-form-item label="所属部门名称" prop="deptName">
+          <el-input
+            v-model="queryParams.deptName"
+            placeholder="请输入所属部门名称"
+            clearable
+            @input="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item label="主要负责人" prop="charger">
+          <el-input
+            v-model="queryParams.charger"
+            placeholder="请输入主要负责人"
+            clearable
+            @input="handleQuery"
+          />
+        </el-form-item>
+        <!--      <el-form-item label="主要负责人电话" prop="chargerPhone">-->
+        <!--        <el-input-->
+        <!--          v-model="queryParams.chargerPhone"-->
+        <!--          placeholder="请输入主要负责人电话"-->
+        <!--          clearable-->
+        <!--          @keyup.enter.native="handleQuery"-->
+        <!--        />-->
+        <!--      </el-form-item>-->
+        <el-form-item label="安全负责人" prop="secCharger">
+          <el-input
+            v-model="queryParams.secCharger"
+            placeholder="请输入安全负责人"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <!--      <el-form-item label="安全负责人电话" prop="secChargerPhone">-->
+        <!--        <el-input-->
+        <!--          v-model="queryParams.secChargerPhone"-->
+        <!--          placeholder="请输入安全负责人电话"-->
+        <!--          clearable-->
+        <!--          @input="handleQuery"-->
+        <!--        />-->
+        <!--      </el-form-item>-->
+        <!--      <el-form-item label="经度" prop="longitude">-->
+        <!--        <el-input-->
+        <!--          v-model="queryParams.longitude"-->
+        <!--          placeholder="请输入经度"-->
+        <!--          clearable-->
+        <!--          @keyup.enter.native="handleQuery"-->
+        <!--        />-->
+        <!--      </el-form-item>-->
+        <!--      <el-form-item label="纬度" prop="latitude">-->
+        <!--        <el-input-->
+        <!--          v-model="queryParams.latitude"-->
+        <!--          placeholder="请输入纬度"-->
+        <!--          clearable-->
+        <!--          @keyup.enter.native="handleQuery"-->
+        <!--        />-->
+        <!--      </el-form-item>-->
+        <!--      <el-form-item label="属地监管人员" prop="management">-->
+        <!--        <el-input-->
+        <!--          v-model="queryParams.management"-->
+        <!--          placeholder="请输入属地监管人员"-->
+        <!--          clearable-->
+        <!--          @keyup.enter.native="handleQuery"-->
+        <!--        />-->
+        <!--      </el-form-item>-->
+        <!--      <el-form-item label="区县行业主管部门" prop="industryManagement">-->
+        <!--        <el-input-->
+        <!--          v-model="queryParams.industryManagement"-->
+        <!--          placeholder="请输入区县行业主管部门"-->
+        <!--          clearable-->
+        <!--          @keyup.enter.native="handleQuery"-->
+        <!--        />-->
+        <!--      </el-form-item>-->
+        <!--      <el-form-item label="企业邮箱" prop="email">-->
+        <!--        <el-input-->
+        <!--          v-model="queryParams.email"-->
+        <!--          placeholder="请输入企业邮箱"-->
+        <!--          clearable-->
+        <!--          @keyup.enter.native="handleQuery"-->
+        <!--        />-->
+        <!--      </el-form-item>-->
+        <!--        <el-form-item>-->
+        <!--          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>-->
+        <!--          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>-->
+        <!--        </el-form-item>-->
+      </el-row>
+    </el-form>
+
+<!--    <el-row :gutter="10" class="mb8">-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="primary"-->
+<!--          plain-->
+<!--          icon="el-icon-plus"-->
+<!--          size="mini"-->
+<!--          @click="handleAdd"-->
+<!--          v-hasPermi="['enterprise:enterprise:add']"-->
+<!--        >新增-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="single"-->
+<!--          @click="handleUpdate"-->
+<!--          v-hasPermi="['enterprise:enterprise:edit']"-->
+<!--        >修改-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="danger"-->
+<!--          plain-->
+<!--          icon="el-icon-delete"-->
+<!--          size="mini"-->
+<!--          :disabled="multiple"-->
+<!--          @click="handleDelete"-->
+<!--          v-hasPermi="['enterprise:enterprise:remove']"-->
+<!--        >删除-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['enterprise:enterprise:export']"-->
+<!--        >导出-->
+<!--        </el-button>-->
+<!--      </el-col>-->
+<!--      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
+<!--    </el-row>-->
+
+    <el-table v-loading="loading" :data="enterpriseList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <!--      <el-table-column label="主键ID" align="center" prop="id" />-->
+      <!--      <el-table-column label="数据所属部门(政或党的id)" align="center" prop="dataDeptId" />-->
+      <!--      <el-table-column label="数据状态(1-可用 2-不可用 )" align="center" prop="dataStatus" />-->
+      <el-table-column label="企业名称" align="center" prop="name"/>
+      <el-table-column label="经营地址" align="center" prop="enterpriseAddress"/>
+      <el-table-column label="办公地址" align="center" prop="enterpriseWorkaddress"/>
+      <el-table-column label="组织机构代码" align="center" prop="organizationCode"/>
+      <!--      <el-table-column label="所属部门id" align="center" prop="deptId" />-->
+      <el-table-column label="所属部门名称" align="center" prop="deptName"/>
+      <el-table-column label="主要负责人" align="center" prop="charger"/>
+      <el-table-column label="创建人" align="center" prop="createName"/>
+      <el-table-column label="创建时间" align="center" prop="createTime"/>
+      <el-table-column label="修改人" align="center" prop="updateName"/>
+      <el-table-column label="修改时间" align="center" prop="updateTime"/>
+      <el-table-column label="记录时间" align="center">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{mi}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="隐患" align="center" prop="isRisk">
+        <template slot-scope="scope">
+          <label v-show="scope.row.isRisk == 1" style="color: #ff0000">有</label>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['enterprise:enterprise:edit']"
+          >查看
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="list-icon-sj iconfont icon-chakan"
+            @click="handleInspection(scope.row)"
+            v-hasPermi="['enterprise:enterprise:edit']"
+          >巡检记录
+          </el-button>
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-delete"-->
+<!--            @click="handleDelete(scope.row)"-->
+<!--            v-hasPermi="['enterprise:enterprise:remove']"-->
+<!--          >删除-->
+<!--          </el-button>-->
+          <!--<el-button
+            size="mini"
+            type="text"
+            icon=""
+            @click="inspection(scope.row)"
+          >巡检
+          </el-button>-->
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改企业信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="180px">
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="企业名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入企业名称" maxlength="50"/>
+            </el-form-item>
+            <el-form-item label="安全负责人" prop="secCharger">
+              <el-input v-model="form.secCharger" placeholder="请输入安全负责人" maxlength="50"/>
+            </el-form-item>
+            <el-form-item label="生产经营单位经营地址" prop="enterpriseAddress">
+              <el-input v-model="form.enterpriseAddress" placeholder="请输入生产经营单位经营地址" maxlength="100"/>
+            </el-form-item>
+            <el-form-item label="生产经营单位办公地址" prop="enterpriseWorkaddress">
+              <el-input v-model="form.enterpriseWorkaddress" placeholder="请输入生产经营单位办公地址" maxlength="100"/>
+            </el-form-item>
+            <el-form-item label="经度" prop="longitude" @dblclick.native="showMap">
+              <el-input v-model="form.longitude" placeholder="鼠标双击此处以选择经纬度" maxlength="32"/>
+            </el-form-item>
+            <el-form-item label="区县行业主管部门" prop="industryManagement">
+              <el-input v-model="form.industryManagement" placeholder="请输入区县行业主管部门" maxlength="50"/>
+            </el-form-item>
+            <el-form-item label="属地监管人员" prop="management">
+              <el-input v-model="form.management" placeholder="请输入属地监管人员" maxlength="50"/>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="组织机构代码" prop="organizationCode">
+              <el-input v-model="form.organizationCode" placeholder="请输入组织机构代码" maxlength="18"/>
+            </el-form-item>
+            <el-form-item label="主要负责人" prop="charger">
+              <el-input v-model="form.charger" placeholder="请输入主要负责人" maxlength="50"/>
+            </el-form-item>
+            <el-form-item label="主要负责人电话" prop="chargerPhone">
+              <el-input v-model="form.chargerPhone" placeholder="请输入主要负责人电话" maxlength="13"/>
+            </el-form-item>
+            <el-form-item label="安全负责人电话" prop="secChargerPhone">
+              <el-input v-model="form.secChargerPhone" placeholder="请输入安全负责人电话" maxlength="13"/>
+            </el-form-item>
+            <el-form-item label="纬度" prop="latitude" @dblclick.native="showMap">
+              <el-input v-model="form.latitude" placeholder="鼠标双击此处以选择经纬度" maxlength="32"/>
+            </el-form-item>
+            <el-form-item label="企业邮箱" prop="email">
+              <el-input v-model="form.email" placeholder="请输入企业邮箱" maxlength="50"/>
+            </el-form-item>
+            <el-form-item label="所属部门" prop="deptId" class="form-style">
+              <treeselect v-model="form.deptId" :options="deptOptions" multiple:false :show-count="true" placeholder="请选择部门" @select="hx" :noResultsText="'空'" :noOptionsText="'空'"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+<!--        <el-button type="primary" @click="submitForm">确 定</el-button>-->
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+    <ISuperMap ref="ISuperMap" v-if="ISuperMapvisible" @send="send"/>
+
+    <!-- 企业巡检项对话框 -->
+    <el-dialog :title="inspectionTitle" :visible="inspectionOpen" width="500px">
+      <el-form ref="inspectionForm" label-width="80px">
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="企业名称" prop="name">
+              <el-input
+                v-model="inspectionForm.name"
+                :disabled="true" maxlength="255"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="巡检类" prop="pkId">
+              <el-tree :data="inspectionOptions" :props="defaultProps" :render-content="renderNodeContent"
+                       node-key="sId" ref="treeRef"/>
+
+              <!--              <el-cascader
+                              :options="inspectionOptions"
+                              :props="{ multiple: true, checkStrictly: true }"
+                              clearable></el-cascader>-->
+
+              <!--              <Treeselect v-model="inspectionForm.id" :multiple="multiple" ref="treeSelect"-->
+              <!--                          :options="inspectionOptions" :flat="true"-->
+              <!--                          :normalizer="inspectionNormalizer"/>-->
+              <!--&lt;!&ndash;                          :show-count="true" placeholder="请选择"/>&ndash;&gt;-->
+              <!--              <el-select v-model="inspectionForm.id" placeholder="请选择">-->
+              <!--                <el-option v-for="item in [{inspectionName:'AAA',id:'4367b565a36644daace30b9f8f4e3c4d'}]" :key="item.id"-->
+              <!--                           :label="item.inspectionName" :value="item.id">-->
+              <!--                </el-option>-->
+              <!--              </el-select>-->
+            </el-form-item>
+          </el-col>
+          <!--<el-col :span="12">
+            <el-form-item label="巡检项">
+              <el-select v-model="form.pkIds" multiple placeholder="请选择">
+                <el-option
+                  v-for="item in itemOptions"
+                  :key="item.pkId"
+                  :label="item.itemName"
+                  :value="item.itemName"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>-->
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitInspectionForm">确 定</el-button>
+        <el-button @click="cancelInspection">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listEnterprise,
+  getEnterprise,
+  delEnterprise,
+  addEnterprise,
+  updateEnterprise, listHighEnterprise,highIsRiskList
+} from '@/api/centerdata_emergency/enterprise/enterprise'
+import {fatherList} from "@/api/centerdata_emergency/inspectiontype/inspectiontype";
+import deptselector from '@/views/components/deptselector.vue'
+import supermap from '@/views/components/supermap.vue'
+import {
+  selectEnterindesmap,
+  aEnterindesmap,
+  uEnterindesmap
+} from '@/api/centerdata_emergency/enterindesmap/enterindesmap'
+import {inspectionTreeselect} from '@/api/centerdata_emergency/inspectiontype/inspectiontype'
+import {inspectionitems} from '@/api/centerdata_emergency/inspectionitem/inspectionitem'
+import {validPhoneMobile} from "@/api/rules/rules";
+import {checkLon, checkLat} from "@/api/rules/rules";
+import {treeselect} from "@/api/system/dept";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import ISuperMap from "@/views/data/common/ISuperMap";
+
+export default {
+  components: {
+    Treeselect,
+    deptselector,
+    supermap,
+    ISuperMap
+  },
+  name: "Enterprise",
+  data() {
+    return {
+      // 是否显示巡检项弹出层
+      inspectionOpen: false,
+      // inspectionTitle: '',
+      titleLongitude: '经纬度',
+      sign: 1,
+      ISuperMapvisible: false,
+      // 遮罩层
+      loading: true,
+      showLongitude: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 企业信息表格数据
+      enterpriseList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        dataDeptId: null,
+        dataStatus: null,
+        name: null,
+        enterpriseAddress: null,
+        enterpriseWorkaddress: null,
+        organizationCode: null,
+        deptId: null,
+        deptName: null,
+        charger: null,
+        chargerPhone: null,
+        secCharger: null,
+        secChargerPhone: null,
+        longitude: null,
+        latitude: null,
+        management: null,
+        industryManagement: null,
+        email: null
+      },
+      highData: [],
+      name: '',
+      //巡检项弹出层标题
+      inspectionTitle: '',
+      inspectiontypeList: [],
+      //巡检项选择
+      itemOptions: [],
+      // 巡检类树选项
+      inspectionOptions: undefined,
+      deptOptions: undefined,
+      inspectionNormalizer(node) {
+        //去掉children=[]的children属性
+        /*if(node.children && !node.children.length){
+          delete node.children;
+        }*/
+        return {
+          id: node.sId,
+          label: node.label,
+          children: node.children,
+          isDisabled: node.level != 3 ? true : false
+        }
+
+      },
+      // 表单参数
+      form: {},
+      inspectionForm: {name: '', id: ''},
+      validPhoneMobile: validPhoneMobile,
+      defaultProps: {
+        children: 'children',
+        label: 'label'
+      },
+      arr: [],
+      hgjArray: [],
+      // 表单校验
+      rules: {
+        name: [
+          {required: true, message: '企业名称不能为空', trigger: 'blur'}
+        ],
+        organizationCode: [
+          {required: true, message: '组织机构代码不能为空', trigger: 'blur'}
+        ],
+        secCharger: [
+          {required: true, message: '安全负责人不能为空', trigger: 'blur'}
+        ],
+        secChargerPhone: [
+          {required: true, message: '安全负责人电话不能为空', trigger: 'blur'},
+          {validator: validPhoneMobile, trigger: 'blur'}
+        ],
+        chargerPhone: [
+          {required: true, message: '主要负责人电话不能为空', trigger: 'blur'},
+          {validator: validPhoneMobile, trigger: 'blur'}
+        ],
+        deptId: [
+          {required: true, message: '所属部门不能为空', trigger: 'blur'}
+        ],
+        email: [
+          {required: true, message: '电子邮箱格式错误', validator: this.validateEmail, trigger: 'blur'}
+        ],
+        longitude: [
+          {required: true, message: "经度不能为空", trigger: ["blur", "change"]},
+          {validator: checkLon, trigger: 'blur'}
+        ],
+        latitude: [
+          {required: true, message: "纬度不能为空", trigger: ["blur", "change"]},
+          {validator: checkLat, trigger: 'blur'}
+        ]
+
+      }
+
+    };
+  },
+  created() {
+    this.getList();
+    this.fatherList();
+    this.getTreeselect()
+    this.getInspectionitems()
+    this.a()
+
+  },
+  methods: {
+    /**所属部门下拉菜单*/
+    hx(node) {
+      this.form.deptId = node.id
+      this.form.deptName = node.label
+      this.$refs.form.validateField("deptId")
+    },
+    /** 查询部门下拉树结构 */
+    getTreeselect() {
+      treeselect().then(response => {
+        this.deptOptions = response.data;
+      });
+    },
+    a() {
+      inspectionTreeselect().then(response => {
+        this.inspectionOptions = response.data;
+      });
+    },
+
+    renderNodeContent(h, { node, data }) {
+      const targetLevel = 3;
+      // 判断当前节点是否应该被勾选
+      const isChecked =  this.arr.includes(data.sId);
+      return (
+        <span>
+          {node.level === targetLevel && (
+            <el-checkbox
+               checked={isChecked}
+              onChange={(checked) => this.handleCheckboxChange(data, checked)}
+            ></el-checkbox>
+            )}
+          {data.label}
+        </span>
+      );
+    },
+
+    handleCheckboxChange(data, checked) {
+      // 手动更新选中状态
+      this.handleCheckChange(data, checked);
+      // 同步树组件的选中状态
+      this.$nextTick(() => {
+        if (this.$refs.treeRef) {
+          this.$refs.treeRef.setCheckedKeys(this.hgjArray);
+        }
+      });
+    },
+
+    handleCheckChange(data, checked) {
+      if (checked) {
+        if (!this.hgjArray.includes(data.sId)) {
+          this.hgjArray.push(data.sId);
+        }
+      } else {
+        const index = this.hgjArray.indexOf(data.sId);
+        if (index > -1) {
+          this.hgjArray.splice(index, 1);
+        }
+      }
+      this.inspectionForm.id = this.hgjArray;
+    },
+
+    fatherList() {
+      this.loading = true;
+      fatherList(this.queryParams).then(response => {
+        this.inspectiontypeList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    //获取巡检项信息
+    getInspectionitems() {
+      inspectionitems().then(response => {
+        this.itemOptions = response.data
+      })
+    },
+    // 取消巡检项按钮
+    cancelInspection() {
+      this.inspectionOpen = false
+    },
+    /** 巡检项按钮操作 */
+    inspection(row) {
+      this.inspectionForm.name = row.name
+       const name = this.inspectionForm.name
+       // this.$refs.treeSelect.setCheckedKeys('c48a953cb9f64ca9a7384d2df06bb721')
+       selectEnterindesmap(name).then(response => {
+         var code = response.code
+         if (code === 200) {
+           if (response.data == null) {
+            this.inspectionForm.id = null
+           } else {
+             this.inspectionForm.name = row.name
+            let that = this
+             that.inspectionForm.id = []
+             response.data.forEach(function (item, index) {
+               that.inspectionForm.id.push(item.inspectiontypeId)
+               that.arr.push(item.inspectiontypeId)
+             })
+           }
+           this.inspectionForm.name = row.name
+         } else {
+           this.$modal.msgSuccess(response.msg)
+         }
+       })
+      this.inspectionOpen = true
+      this.inspectionTitle = '添加企业巡检'
+    },
+    showMap() {
+      this.ISuperMapvisible = true;
+      this.$nextTick(() => {
+        this.$refs.ISuperMap.init(this.sign, {
+          id: this.form.id,
+          longitude: this.form.longitude,
+          latitude: this.form.latitude,
+          xiantude: this.form.longitude//this.form.longitude换成每个页面对应线或者面对应的字段
+        })
+      })
+    },
+    showLatLng: function (lat, lng) {
+      this.form.latitude = lat
+      this.form.longitude = lng
+    },
+    setDataDeptId(e) {
+      this.form.deptId = e.deptId
+      this.form.deptName = e.deptName
+    },
+    /** 查询企业信息列表 */
+    getList() {
+      this.loading = true;
+      listHighEnterprise(this.queryParams).then(response => {
+        this.enterpriseList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // getLists() {
+    //   this.loading = true;
+    //   fatherList(this.queryParams).then(response => {
+    //     this.inspectiontypeList = response.rows;
+    //     this.total = response.total;
+    //     this.loading = false;
+    //   });
+    // },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        dataDeptId: null,
+        dataStatus: "0",
+        name: null,
+        enterpriseAddress: null,
+        enterpriseWorkaddress: null,
+        organizationCode: null,
+        deptId: null,
+        deptName: null,
+        charger: null,
+        chargerPhone: null,
+        secCharger: null,
+        secChargerPhone: null,
+        longitude: null,
+        latitude: null,
+        management: null,
+        industryManagement: null,
+        email: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    validateEmail: function (rule, value, callback) {
+      if (value === '') {
+        callback(new Error('请正确填写邮箱'));
+      } else {
+        if (value !== '') {
+          var reg = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
+          if (!reg.test(value)) {
+            callback(new Error('请输入有效的邮箱'));
+          }
+        }
+        callback();
+      }
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加企业信息";
+    },
+    send(val) {
+      if (val === true) {
+        this.ISuperMapvisible = false;
+        return;
+      }
+      if (this.sign === 1) {
+        this.form.longitude = val.longitude;
+        this.form.latitude = val.latitude;
+      }
+      if (this.sign === 2 || this.sign === 3) this.form.longitude = val.xiantude;//this.form.longitude 换成对应的线或区域的字段
+      this.ISuperMapvisible = false
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getEnterprise(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "查看高危企业信息";
+      });
+    },
+    /** 修改按钮操作 */
+    handleInspection(row) {
+      this.$router.push({
+        path: '/data/emergency/inspection',
+        query: {"id": row.id}
+      })
+    },
+    submitInspectionForm() {
+      const params = Object.assign({})
+      params.enterpriseName = this.inspectionForm.name
+      params.id = this.inspectionForm.id
+      selectEnterindesmap(params.name).then(response => {
+        var code = response.code
+        console.log(response.data)
+        if (code === 200) {
+            uEnterindesmap(params).then(response => {
+              this.$modal.msgSuccess('修改成功')
+              this.inspectionOpen = false
+            })
+        } else {
+          this.$modal.msgSuccess(response.msg)
+        }
+      })
+    },
+
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateEnterprise(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addEnterprise(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除选中的数据项?').then(function () {
+        return delEnterprise(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('/center-data/emergency/enterprise/export', {
+        ...this.queryParams
+      }, `企业信息_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 38 - 19
src/main/java/com/sooka/sponest/data/other/enterprise/controller/CenterdataTEmergencyEnterpriseController.java

@@ -8,6 +8,7 @@ import com.ruoyi.common.core.web.page.TableDataInfo;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.data.digitalemergency.domain.vo.DayBody;
 import com.sooka.sponest.data.other.enterprise.domain.CenterdataTEmergencyEnterprise;
 import com.sooka.sponest.data.other.enterprise.service.ICenterdataTEmergencyEnterpriseService;
 import com.sooka.sponest.data.utils.DataConstants;
@@ -20,12 +21,12 @@ import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
- * 企业信息Controller
+ * 高危企业信息Controller
  *
  * @author ruoyi
  * @date 2022-07-20
  */
-@Api(tags = "数据中心企业信息控制器")
+@Api(tags = "数据中心高危企业信息控制器")
 @RestController
 @RequestMapping("emergency/enterprise")
 public class CenterdataTEmergencyEnterpriseController extends BaseController {
@@ -34,9 +35,9 @@ public class CenterdataTEmergencyEnterpriseController extends BaseController {
     private ICenterdataTEmergencyEnterpriseService centerdataTEmergencyEnterpriseService;
 
     /**
-     * 查询企业信息列表
+     * 查询高危企业信息列表
      */
-    @ApiOperation(value = "数据中心查询企业信息列表", notes = "数据中心查询企业信息列表")
+    @ApiOperation(value = "数据中心查询高危企业信息列表", notes = "数据中心查询高危企业信息列表")
     @RequiresPermissions("enterprise:enterprise:list")
     @GetMapping("/list")
     public TableDataInfo list(CenterdataTEmergencyEnterprise centerdataTEmergencyEnterprise) {
@@ -46,22 +47,22 @@ public class CenterdataTEmergencyEnterpriseController extends BaseController {
     }
 
     /**
-     * 导出企业信息列表
+     * 导出高危企业信息列表
      */
-    @ApiOperation(value = "数据中心导出企业信息列表", notes = "数据中心导出企业信息列表")
+    @ApiOperation(value = "数据中心导出高危企业信息列表", notes = "数据中心导出高危企业信息列表")
     @RequiresPermissions("enterprise:enterprise:export")
-    @Log(title = "企业信息", businessType = BusinessType.EXPORT)
+    @Log(title = "高危企业信息", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, CenterdataTEmergencyEnterprise centerdataTEmergencyEnterprise) {
         List<CenterdataTEmergencyEnterprise> list = centerdataTEmergencyEnterpriseService.selectCenterdataTEmergencyEnterpriseList(centerdataTEmergencyEnterprise);
         ExcelUtil<CenterdataTEmergencyEnterprise> util = new ExcelUtil<>(CenterdataTEmergencyEnterprise.class);
-        util.exportExcel(response, list, "企业信息数据");
+        util.exportExcel(response, list, "高危企业信息数据");
     }
 
     /**
-     * 获取企业信息详细信息
+     * 获取高危企业信息详细信息
      */
-    @ApiOperation(value = "数据中心获取企业信息详细信息", notes = "数据中心获取企业信息详细信息")
+    @ApiOperation(value = "数据中心获取高危企业信息详细信息", notes = "数据中心获取高危企业信息详细信息")
     @RequiresPermissions("enterprise:enterprise:query")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") String id) {
@@ -75,11 +76,11 @@ public class CenterdataTEmergencyEnterpriseController extends BaseController {
     }
 
     /**
-     * 新增企业信息
+     * 新增高危企业信息
      */
-    @ApiOperation(value = "数据中心新增企业信息", notes = "数据中心新增企业信息")
+    @ApiOperation(value = "数据中心新增高危企业信息", notes = "数据中心新增高危企业信息")
     @RequiresPermissions("enterprise:enterprise:add")
-    @Log(title = "企业信息", businessType = BusinessType.INSERT)
+    @Log(title = "高危企业信息", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody CenterdataTEmergencyEnterprise centerdataTEmergencyEnterprise) {
         String[] keys = {"name"};
@@ -91,11 +92,11 @@ public class CenterdataTEmergencyEnterpriseController extends BaseController {
     }
 
     /**
-     * 修改企业信息
+     * 修改高危企业信息
      */
-    @ApiOperation(value = "数据中心修改企业信息", notes = "数据中心修改企业信息")
+    @ApiOperation(value = "数据中心修改高危企业信息", notes = "数据中心修改高危企业信息")
     @RequiresPermissions("enterprise:enterprise:edit")
-    @Log(title = "企业信息", businessType = BusinessType.UPDATE)
+    @Log(title = "高危企业信息", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody CenterdataTEmergencyEnterprise centerdataTEmergencyEnterprise) {
         String[] keys = {"name","id"};
@@ -107,11 +108,11 @@ public class CenterdataTEmergencyEnterpriseController extends BaseController {
     }
 
     /**
-     * 删除企业信息
+     * 删除高危企业信息
      */
-    @ApiOperation(value = "数据中心删除企业信息", notes = "数据中心删除企业信息")
+    @ApiOperation(value = "数据中心删除高危企业信息", notes = "数据中心删除高危企业信息")
     @RequiresPermissions("enterprise:enterprise:remove")
-    @Log(title = "企业信息", businessType = BusinessType.DELETE)
+    @Log(title = "高危企业信息", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable String[] ids) {
         return toAjax(centerdataTEmergencyEnterpriseService.deleteCenterdataTEmergencyEnterpriseByIds(ids));
@@ -128,4 +129,22 @@ public class CenterdataTEmergencyEnterpriseController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询高危企业信息列表
+     */
+    @ApiOperation(value = "数据中心查询高危企业信息列表", notes = "数据中心查询高危企业信息列表")
+    @RequiresPermissions("enterprise:enterprise:highList")
+    @GetMapping("/highList")
+    public TableDataInfo highList(CenterdataTEmergencyEnterprise centerdataTEmergencyEnterprise) {
+        startPage();
+        List<CenterdataTEmergencyEnterprise> list = centerdataTEmergencyEnterpriseService.selectHighRiskEnterpriseList(centerdataTEmergencyEnterprise);
+        return getDataTable(list);
+    }
+    /**
+     * 可视化查询高危企业信息经纬度
+     */
+    @GetMapping("/getHighHeatMap")
+    public AjaxResult getHighHeatMap( DayBody dayBody) {
+        return AjaxResult.success(centerdataTEmergencyEnterpriseService.getHighHeatMap(dayBody));
+    }
 }

+ 4 - 0
src/main/java/com/sooka/sponest/data/other/enterprise/domain/CenterdataTEmergencyEnterprise.java

@@ -5,6 +5,7 @@ import com.ruoyi.common.core.annotation.Excel;
 import com.sooka.sponest.data.base.domain.BaseBusinessEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.ibatis.type.Alias;
@@ -19,6 +20,7 @@ import java.util.Date;
  */
 @ApiModel(description = "数据中心企业信息实体类对象")
 @Alias("EmergencyEnterprise")
+@Data
 public class CenterdataTEmergencyEnterprise extends BaseBusinessEntity {
 
     private static final long serialVersionUID = 1L;
@@ -173,6 +175,8 @@ public class CenterdataTEmergencyEnterprise extends BaseBusinessEntity {
     @Excel(name = "邮箱")
     private String email;
 
+    private String isRisk;
+
     private double juli;
 
 

+ 8 - 0
src/main/java/com/sooka/sponest/data/other/enterprise/mapper/CenterdataTEmergencyEnterpriseMapper.java

@@ -1,9 +1,12 @@
 package com.sooka.sponest.data.other.enterprise.mapper;
 
 import com.sooka.sponest.data.digitalemergency.domain.vo.CenterdataTEmergencyEnterpriseMessageBody;
+import com.sooka.sponest.data.digitalemergency.domain.vo.DayBody;
+import com.sooka.sponest.data.emergency.domain.TBusLog;
 import com.sooka.sponest.data.other.enterprise.domain.CenterdataTEmergencyEnterprise;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 企业信息Mapper接口
@@ -21,6 +24,8 @@ public interface CenterdataTEmergencyEnterpriseMapper {
      */
     List<CenterdataTEmergencyEnterprise> selectCenterdataTEmergencyEnterpriseList(CenterdataTEmergencyEnterprise centerdataTEmergencyEnterprise);
 
+    List<CenterdataTEmergencyEnterprise> selectHighRiskEnterpriseList(CenterdataTEmergencyEnterprise centerdataTEmergencyEnterprise);
+
     /**
      * 查询企业信息
      *
@@ -64,4 +69,7 @@ public interface CenterdataTEmergencyEnterpriseMapper {
      * @return
      */
     List selectHightEnterpriseDistributionList(CenterdataTEmergencyEnterpriseMessageBody centerdataTEmergencyEnterpriseMessageBody);
+
+
+    List getHighHeatMap(DayBody dayBody);
 }

+ 8 - 0
src/main/java/com/sooka/sponest/data/other/enterprise/service/ICenterdataTEmergencyEnterpriseService.java

@@ -1,7 +1,9 @@
 package com.sooka.sponest.data.other.enterprise.service;
 
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
 import com.sooka.sponest.data.base.service.IBaseService;
 import com.sooka.sponest.data.digitalemergency.domain.vo.CenterdataTEmergencyEnterpriseMessageBody;
+import com.sooka.sponest.data.digitalemergency.domain.vo.DayBody;
 import com.sooka.sponest.data.other.enterprise.domain.CenterdataTEmergencyEnterprise;
 
 import java.util.List;
@@ -22,6 +24,8 @@ public interface ICenterdataTEmergencyEnterpriseService extends IBaseService{
      */
     List<CenterdataTEmergencyEnterprise> selectCenterdataTEmergencyEnterpriseList(CenterdataTEmergencyEnterprise centerdataTEmergencyEnterprise);
 
+    List<CenterdataTEmergencyEnterprise> selectHighRiskEnterpriseList(CenterdataTEmergencyEnterprise centerdataTEmergencyEnterprise);
+
     /**
      * 查询企业信息
      *
@@ -71,4 +75,8 @@ public interface ICenterdataTEmergencyEnterpriseService extends IBaseService{
      * @return
      */
     List selectHightEnterpriseDistributionList(CenterdataTEmergencyEnterpriseMessageBody centerdataTEmergencyEnterpriseMessageBody);
+
+
+    List getHighHeatMap(DayBody dayBody);
+
 }

+ 34 - 0
src/main/java/com/sooka/sponest/data/other/enterprise/service/impl/CenterdataTEmergencyEnterpriseServiceImpl.java

@@ -6,13 +6,17 @@ import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.sooka.sponest.data.base.service.impl.BaseServiceImpl;
 import com.sooka.sponest.data.digitalemergency.domain.vo.CenterdataTEmergencyEnterpriseMessageBody;
+import com.sooka.sponest.data.digitalemergency.domain.vo.DayBody;
 import com.sooka.sponest.data.other.enterprise.domain.CenterdataTEmergencyEnterprise;
 import com.sooka.sponest.data.other.enterprise.mapper.CenterdataTEmergencyEnterpriseMapper;
 import com.sooka.sponest.data.other.enterprise.service.ICenterdataTEmergencyEnterpriseService;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 企业信息Service业务层处理
@@ -39,6 +43,13 @@ public class CenterdataTEmergencyEnterpriseServiceImpl extends BaseServiceImpl i
         return centerdataTEmergencyEnterpriseMapper.selectCenterdataTEmergencyEnterpriseList(centerdataTEmergencyEnterprise);
     }
 
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<CenterdataTEmergencyEnterprise> selectHighRiskEnterpriseList(CenterdataTEmergencyEnterprise centerdataTEmergencyEnterprise) {
+        setSookaDataBase(centerdataTEmergencyEnterprise);
+        return centerdataTEmergencyEnterpriseMapper.selectHighRiskEnterpriseList(centerdataTEmergencyEnterprise);
+    }
+
     /**
      * 查询企业信息
      *
@@ -107,4 +118,27 @@ public class CenterdataTEmergencyEnterpriseServiceImpl extends BaseServiceImpl i
         setSookaDataBase(centerdataTEmergencyEnterpriseMessageBody);
         return centerdataTEmergencyEnterpriseMapper.selectHightEnterpriseDistributionList(centerdataTEmergencyEnterpriseMessageBody);
     }
+
+    /**
+     * 可视化热力地图
+     *
+     * @param dayBody
+     * @return
+     */
+    @DataScopeMutiDept(deptAlias = "c", userAlias = "e")
+    @Override
+    public List getHighHeatMap(DayBody dayBody) {
+        setSookaDataBase(dayBody);
+        List<Map> latLngs = centerdataTEmergencyEnterpriseMapper.getHighHeatMap(dayBody);
+        List<Double> latLng;
+        List list = new ArrayList();
+        for (Map<String, Object> map : latLngs) {
+            latLng = new ArrayList<>();
+            latLng.add(MapUtils.getDouble(map, "latitude"));
+            latLng.add(MapUtils.getDouble(map, "longitude"));
+            list.add(latLng);
+        }
+        return list;
+    }
+
 }

+ 84 - 0
src/main/resources/mapper/other/CenterdataTEmergencyEnterpriseMapper.xml

@@ -29,6 +29,7 @@
         <result property="management" column="management"/>
         <result property="industryManagement" column="industry_management"/>
         <result property="email" column="email"/>
+        <result property="isRisk" column="is_risk"/>
     </resultMap>
 
     <sql id="selectCenterdataTEmergencyEnterpriseVo">
@@ -77,6 +78,68 @@
         </where>
     </select>
 
+    <select id="selectHighRiskEnterpriseList" parameterType="EmergencyEnterprise"
+            resultMap="CenterdataTEmergencyEnterpriseResult">
+            SELECT
+            a.id,
+            u.nick_name AS create_name,
+            su.nick_name AS update_name,
+            a.NAME,
+            a.enterprise_address,
+            a.enterprise_workaddress,
+            a.organization_code,
+            a.dept_id,
+            a.dept_name,
+            a.charger,
+            a.charger_phone,
+            a.sec_charger,
+            a.sec_charger_phone,
+            a.longitude,
+            a.latitude,
+            a.management,
+            a.industry_management,
+            a.email,
+            lg.create_time,
+            lg.is_risk
+            FROM
+            centerdata_t_emergency_enterprise a
+            left join ${database_system}.sys_dept d on a.dept_id=d.dept_id
+            LEFT JOIN ${database_system}.sys_user u ON a.create_by = u.user_id
+            LEFT JOIN ${database_system}.sys_user su ON a.update_by = su.user_id
+            LEFT JOIN t_bus_log lg ON a.id = lg.bus_enterprise_id
+        <where>
+            <if test="dataDeptId != null ">and a.data_dept_id = #{dataDeptId}</if>
+            <if test="dataStatus != null  and dataStatus != ''">and a.data_status = #{dataStatus}</if>
+            <if test="name != null  and name != ''">and a.name like concat('%',
+                #{name}, '%')
+            </if>
+            <if test="enterpriseAddress != null  and enterpriseAddress != ''">and a.enterprise_address =
+                #{enterpriseAddress}
+            </if>
+            <if test="enterpriseWorkaddress != null  and enterpriseWorkaddress != ''">and a.enterprise_workaddress =
+                #{enterpriseWorkaddress}
+            </if>
+            <if test="organizationCode != null  and organizationCode != ''">and a.organization_code like concat('%', #{organizationCode},'%')
+            </if>
+            <if test="deptId != null ">and a.dept_id = #{deptId}</if>
+            <if test="deptName != null  and deptName != ''">and a.dept_name like concat('%', #{deptName}, '%')</if>
+            <if test="charger != null  and charger != ''">and a.charger like concat('%', #{charger},'%')</if>
+            <if test="chargerPhone != null  and chargerPhone != ''">and a.charger_phone = #{chargerPhone}</if>
+            <if test="secCharger != null  and secCharger != ''">and a.sec_charger = #{secCharger}</if>
+            <if test="secChargerPhone != null  and secChargerPhone != ''">and a.sec_charger_phone = #{secChargerPhone}
+            </if>
+            <if test="longitude != null  and longitude != ''">and a.longitude = #{longitude}</if>
+            <if test="latitude != null  and latitude != ''">and a.latitude = #{latitude}</if>
+            <if test="management != null  and management != ''">and a.management = #{management}</if>
+            <if test="industryManagement != null  and industryManagement != ''">and a.industry_management =
+                #{industryManagement}
+            </if>
+            <if test="email != null  and email != ''">and a.email = #{email}</if>
+            and lg.is_risk = 1
+            ${params.dataScope}
+        </where>
+    </select>
+
     <select id="selectCenterdataTEmergencyEnterpriseById" parameterType="String"
             resultMap="CenterdataTEmergencyEnterpriseResult">
         <include refid="selectCenterdataTEmergencyEnterpriseVo"/>
@@ -271,6 +334,27 @@
         GROUP BY
             a.dept_name) AS b
     </select>
+
+    <select id="getHighHeatMap" parameterType="DayBody"
+            resultType="java.util.Map">
+        SELECT
+            a.longitude,
+            a.latitude
+        FROM
+            centerdata_t_emergency_enterprise a
+                LEFT JOIN t_bus_log b ON b.bus_enterprise_id = a.id
+                LEFT JOIN onest_system.sys_dept c ON c.dept_id = a.dept_id
+                LEFT JOIN onest_system.sys_user_dept d ON d.dept_id = d.dept_id
+                LEFT JOIN onest_system.sys_user e ON e.user_id = d.user_id
+        <where>
+            <if test="day != null"> and YEAR( a.create_time)= #{day}</if>
+
+            and b.is_risk = 1
+        </where>
+            ${params.dataScope}
+        GROUP BY
+            a.id
+    </select>
 </mapper>