77681 13 часов назад
Родитель
Сommit
447f5bd6bf

+ 8 - 0
gw-slaj/src/main/java/com/goldenwater/slaj/acci/controller/ObjAcciController.java

@@ -276,6 +276,14 @@ public class ObjAcciController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询事故关联的附件列表
+     */
+    @GetMapping("/medList")
+    public AjaxResult medList(@RequestParam String acciGuid) {
+        return AjaxResult.success(objAcciService.selectMedListByBisInfo("OBJ_ACCI", acciGuid));
+    }
+
     /**
      * 数据权限过滤 — 根据当前用户角色决定查询范围。
      * 水利部(角色9)看全部;其他角色只看本单位数据。

+ 8 - 0
gw-slaj/src/main/java/com/goldenwater/slaj/acci/service/IObjAcciService.java

@@ -88,4 +88,12 @@ public interface IObjAcciService {
      * @return 统计结果列表
      */
     List<Map<String, Object>> selectAcciStatList(Map<String, Object> params);
+
+    /**
+     * 查询业务关联的附件列表
+     * @param bisTablename 业务表名
+     * @param bisGuid 业务主键
+     * @return 附件列表 [{name, path, medGuid}]
+     */
+    List<Map<String, Object>> selectMedListByBisInfo(String bisTablename, String bisGuid);
 }

+ 55 - 3
gw-slaj/src/main/java/com/goldenwater/slaj/acci/service/impl/ObjAcciServiceImpl.java

@@ -13,6 +13,10 @@ import com.goldenwater.slaj.acci.domain.ObjAcciVo;
 import com.goldenwater.slaj.acci.domain.BisAcciInve;
 import com.goldenwater.slaj.acci.domain.BisAcciExpRep;
 import com.goldenwater.slaj.acci.service.IObjAcciService;
+import com.goldenwater.slaj.hidd.domain.AttMedBase;
+import com.goldenwater.slaj.hidd.domain.RelBisMed;
+import com.goldenwater.slaj.hidd.service.IAttMedBaseService;
+import com.goldenwater.slaj.hidd.service.IRelBisMedService;
 
 /**
  * 事故对象 服务层实现
@@ -29,6 +33,12 @@ public class ObjAcciServiceImpl implements IObjAcciService {
     @Autowired
     private BisAcciExpRepMapper expRepMapper;
 
+    @Autowired
+    private IRelBisMedService relBisMedService;
+
+    @Autowired
+    private IAttMedBaseService attMedBaseService;
+
     /**
      * 查询事故对象信息
      * @param guid 查询条件
@@ -161,13 +171,55 @@ public class ObjAcciServiceImpl implements IObjAcciService {
             for (Map<String, Object> prog : progList) {
                 BisAcciExpRep rep = new BisAcciExpRep();
                 rep.setAcciGuid(acci.getGuid());
-                String repTimeStr = (String) prog.get("repTime");
-                if (repTimeStr != null && !repTimeStr.isEmpty()) { try { rep.setRepTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(repTimeStr)); } catch (java.text.ParseException e) {} }
-                rep.setNote((String) prog.get("acciDesc"));
+                rep.setNote((String) prog.get("progress"));
+                rep.setRecPers((String) prog.get("recPers"));
+                String collTimeStr = (String) prog.get("collTime");
+                if (collTimeStr != null && !collTimeStr.isEmpty()) { try {
+                    java.util.Date dt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(collTimeStr);
+                    rep.setCollTime(dt);
+                    rep.setRepTime(dt);
+                } catch (java.text.ParseException e) {} }
                 rep.setGuid(java.util.UUID.randomUUID().toString().replace("-", ""));
                 expRepMapper.insertBisAcciExpRep(rep);
             }
         }
+        // 保存附件:先创建 att_med_base 记录,再建立 rel_bis_med 关联
+        // fileList 为空时不处理(保留旧附件),避免编辑时未重新上传导致附件丢失
+        if (params.containsKey("fileList") && params.get("fileList") instanceof java.util.List && !((java.util.List<?>) params.get("fileList")).isEmpty()) {
+            java.util.List<Map<String, String>> fileList = (java.util.List<Map<String, String>>) params.get("fileList");
+            // 更新时先清除旧关联及旧文件记录
+            if (acci.getGuid() != null) {
+                List<RelBisMed> oldRels = relBisMedService.selectRelBisMedByBisInfo("OBJ_ACCI", acci.getGuid());
+                for (RelBisMed oldRel : oldRels) {
+                    relBisMedService.deleteRelBisMedByGuid(oldRel.getGuid());
+                    if (oldRel.getMedGuid() != null) {
+                        attMedBaseService.deleteAttMedBaseByGuid(oldRel.getMedGuid());
+                    }
+                }
+            }
+            for (Map<String, String> fileInfo : fileList) {
+                String medName = fileInfo.get("name");
+                String medPath = fileInfo.get("path");
+                if (medName == null || medPath == null) continue;
+                String medGuid = java.util.UUID.randomUUID().toString().replace("-", "");
+                AttMedBase attMed = new AttMedBase();
+                attMed.setGuid(medGuid);
+                attMed.setMedName(medName);
+                attMed.setMedPath(medPath);
+                attMedBaseService.insertAttMedBase(attMed);
+                RelBisMed rel = new RelBisMed();
+                rel.setGuid(java.util.UUID.randomUUID().toString().replace("-", ""));
+                rel.setBisGuid(acci.getGuid());
+                rel.setBisTablename("OBJ_ACCI");
+                rel.setMedGuid(medGuid);
+                relBisMedService.insertRelBisMed(rel);
+            }
+        }
         return result;
     }
+
+    @Override
+    public List<Map<String, Object>> selectMedListByBisInfo(String bisTablename, String bisGuid) {
+        return relBisMedService.selectMedListByBisInfo(bisTablename, bisGuid);
+    }
 }

+ 2 - 1
gw-slaj/src/main/java/com/goldenwater/slaj/hidd/controller/ObjHiddController.java

@@ -167,7 +167,7 @@ public class ObjHiddController extends BaseController {
         params.put("hiddClas", hiddClas);
         params.put("orgGuid", isAdmin() ? null : getDeptId());
         startPage();
-        // 非工程隐患按管理单位分组(不关联工程表),工程隐患按工程+单位分组
+        // hiddClas 为前端 Tab 标记(1=工程隐患/2=非工程隐患);hidd_clas 字段语义为 DPC_HIDD_CLAS 隐患类别(01-26),工程/非工程以 eng_guid 是否为空判断
         List<Map<String, Object>> list;
         if ("2".equals(hiddClas)) {
             list = objHiddService.selectHiddGroupByNonEng(params);
@@ -209,6 +209,7 @@ public class ObjHiddController extends BaseController {
         params.put("collTime", collTime);
         params.put("hiddClas", hiddClas);
         params.put("orgGuid", isAdmin() ? null : getDeptId());
+        // hiddClas 为前端 Tab 标记(1=工程隐患/2=非工程隐患),工程/非工程以 eng_guid 是否为空判断
         List<Map<String, Object>> list;
         if ("2".equals(hiddClas)) {
             list = objHiddService.selectHiddGroupByNonEng(params);

+ 7 - 6
gw-slaj/src/main/resources/mapper/slaj/hidd/ObjHiddMapper.xml

@@ -121,8 +121,8 @@
             <if test="engName != null and engName != ''">AND e.eng_name like '%' || #{engName}::text || '%'</if>
             <if test="drillHiddClas != null and drillHiddClas != ''">
                 <choose>
-                    <when test='drillHiddClas == "2"'>AND (h.hidd_clas = '2' OR h.hidd_clas IS NULL)</when>
-                    <otherwise>AND h.hidd_clas = #{drillHiddClas}::text</otherwise>
+                    <when test='drillHiddClas == "2"'>AND (h.eng_guid IS NULL OR h.eng_guid = '')</when>
+                    <otherwise>AND h.eng_guid IS NOT NULL AND h.eng_guid != ''</otherwise>
                 </choose>
             </if>
             <if test="collTime != null and collTime != ''">AND h.coll_time >= CAST(#{collTime}::text AS timestamp) AND h.coll_time &lt; CAST(#{collTime}::text AS timestamp) + INTERVAL '1 day'</if>
@@ -153,8 +153,8 @@
             <if test="orgName != null and orgName != ''">AND o.org_name like '%' || #{orgName}::text || '%'</if>
             <if test="hiddClas != null and hiddClas != ''">
                 <choose>
-                    <when test='hiddClas == "2"'>AND (h.hidd_clas = '2' OR h.hidd_clas IS NULL)</when>
-                    <otherwise>AND h.hidd_clas = #{hiddClas}::text</otherwise>
+                    <when test='hiddClas == "2"'>AND (h.eng_guid IS NULL OR h.eng_guid = '')</when>
+                    <otherwise>AND h.eng_guid IS NOT NULL AND h.eng_guid != ''</otherwise>
                 </choose>
             </if>
             <if test="collTime != null and collTime != ''">AND h.coll_time >= CAST(#{collTime}::text AS timestamp) AND h.coll_time &lt; CAST(#{collTime}::text AS timestamp) + INTERVAL '1 day'</if>
@@ -268,7 +268,8 @@
         <if test="engName != null and engName != ''">AND e.eng_name LIKE '%' || #{engName} || '%'</if>
         <if test="orgName != null and orgName != ''">AND s.org_name LIKE '%' || #{orgName} || '%'</if>
         <if test="collTime != null and collTime != ''">AND h.coll_time >= CAST(#{collTime} AS timestamp) AND h.coll_time &lt; CAST(#{collTime} AS timestamp) + INTERVAL '1 day'</if>
-        <if test="hiddClas != null and hiddClas != ''">AND h.hidd_clas = #{hiddClas}</if>
+        <!-- hiddClas 为前端 Tab 标记(1=工程/2=非工程),非工程走 selectHiddGroupByNonEng;此处固定统计有工程的隐患 -->
+        AND h.eng_guid IS NOT NULL AND h.eng_guid != ''
         GROUP BY e.eng_name
         ORDER BY "totalCount" DESC
     </select>
@@ -296,7 +297,7 @@
         WHERE EXISTS (SELECT 1 FROM obj_hidd h1 WHERE h1.org_guid = s.guid)
         <if test="orgName != null and orgName != ''">AND s.org_name LIKE '%' || #{orgName} || '%'</if>
         <if test="collTime != null and collTime != ''">AND h.coll_time >= CAST(#{collTime} AS timestamp) AND h.coll_time &lt; CAST(#{collTime} AS timestamp) + INTERVAL '1 day'</if>
-        AND (h.hidd_clas = '2' OR h.hidd_clas IS NULL)
+        AND (h.eng_guid IS NULL OR h.eng_guid = '')
         GROUP BY s.org_name
         ORDER BY "totalCount" DESC
     </select>

+ 2 - 0
gw-ui/src/api/slaj/acci.js

@@ -7,6 +7,8 @@ export function addObjAcci(data) { return request({ url: '/acci/objacci', method
 
 export function compoundSaveAcci(data) { return request({ url: '/acci/objacci/compoundSave', method: 'post', data: data }) }
 
+export function getAcciMedList(acciGuid) { return request({ url: '/acci/objacci/medList', method: 'get', params: { acciGuid } }) }
+
 export function fastReportAcci(guid) { return request({ url: '/acci/bisaccimont/fastReport', method: 'post', params: { guid } }) }
 export function updateObjAcci(data) { return request({ url: '/acci/objacci', method: 'put', data: data }) }
 export function delObjAcci(guids) { return request({ url: '/acci/objacci/' + guids, method: 'delete' }) }

+ 1 - 1
gw-ui/src/views/slaj/acci/fastQuery.vue

@@ -117,7 +117,7 @@ import { listObjAcci, listBisAcciExpRep } from "@/api/slaj/acci"
 import { parseExpRepFields } from "@/utils/acci"
 
 const { proxy } = getCurrentInstance()
-const { acci_grad, acci_cate } = proxy.useDict("acci_grad", "acci_cate")
+const { acci_grad, acci_cate } = proxy.useDict("DPC_ACCI_GRAD", "DPC_ACCI_CATE")
 
 const list = ref([])
 const loading = ref(false)

+ 1 - 1
gw-ui/src/views/slaj/acci/index.vue

@@ -76,7 +76,7 @@ import { Search, RefreshRight, Download, List } from '@element-plus/icons-vue'
 import { listObjAcci } from "@/api/slaj/acci"
 
 const { proxy } = getCurrentInstance()
-const { acci_grad, acci_cate, rep_stat } = proxy.useDict("acci_grad", "acci_cate", "rep_stat")
+const { acci_grad, acci_cate, rep_stat } = proxy.useDict("DPC_ACCI_GRAD", "DPC_ACCI_CATE", "DPC_REP_STAT1")
 
 const objAcciList = ref([])
 const loading = ref(false)

+ 56 - 29
gw-ui/src/views/slaj/acci/manage.vue

@@ -164,6 +164,9 @@
             <el-table-column label="是否责任事故" align="center" width="100" prop="ifDuty" />
             <el-table-column label="是否已电话上报" align="center" width="110" prop="ifPhone" />
           </el-table>
+          <div class="pagination">
+            <el-pagination v-model:current-page="queryParams3.pageNum" v-model:page-size="queryParams3.pageSize" :total="total3" :page-sizes="[10, 20, 50, 100]" layout="total, sizes, prev, pager, next, jumper" @size-change="getList3" @current-change="getList3" />
+          </div>
         </el-tab-pane>
 
         <el-tab-pane v-if="hasAcciTabPermi('subMonth')" label="下级单位事故月报查询" name="subMonth">
@@ -283,7 +286,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="事故等级" prop="acciGrad" :rules="[{ required: true, message: '请选择', trigger: 'change' }]">
-              <el-select v-model="form.acciGrad" placeholder="请选择" style="width:100%">
+              <el-select v-model="form.acciGrad" disabled style="width:100%">
                 <el-option v-for="dict in acci_grad" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
@@ -292,19 +295,19 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="重伤人数" prop="serInjNum" :rules="[{ required: true, message: '请输入', trigger: 'blur' }]">
-              <el-input v-model="form.serInjNum" placeholder="0" />
+              <el-input v-model="form.serInjNum" placeholder="0" @input="form.acciGrad = calcAcciGrad(form.casNum, form.serInjNum, form.econLoss)" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="死亡人数" prop="casNum" :rules="[{ required: true, message: '请输入', trigger: 'blur' }]">
-              <el-input v-model="form.casNum" placeholder="0" />
+              <el-input v-model="form.casNum" placeholder="0" @input="form.acciGrad = calcAcciGrad(form.casNum, form.serInjNum, form.econLoss)" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="经济损失(万元)" prop="econLoss" :rules="[{ required: true, message: '请输入', trigger: 'blur' }]">
-              <el-input v-model="form.econLoss" placeholder="0" />
+              <el-input v-model="form.econLoss" placeholder="0" @input="form.acciGrad = calcAcciGrad(form.casNum, form.serInjNum, form.econLoss)" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -429,7 +432,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="事故等级" prop="acciGrad" :rules="[{ required: true, message: '请选择', trigger: 'change' }]">
-              <el-select v-model="monthForm.acciGrad" placeholder="请选择" style="width:100%">
+              <el-select v-model="monthForm.acciGrad" disabled style="width:100%">
                 <el-option v-for="dict in acci_grad" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
@@ -438,19 +441,19 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="重伤人数" prop="serInjNum" :rules="[{ required: true, message: '请输入', trigger: 'blur' }]">
-              <el-input v-model="monthForm.serInjNum" />
+              <el-input v-model="monthForm.serInjNum" @input="monthForm.acciGrad = calcAcciGrad(monthForm.casNum, monthForm.serInjNum, monthForm.econLoss)" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="死亡人数" prop="casNum" :rules="[{ required: true, message: '请输入', trigger: 'blur' }]">
-              <el-input v-model="monthForm.casNum" />
+              <el-input v-model="monthForm.casNum" @input="monthForm.acciGrad = calcAcciGrad(monthForm.casNum, monthForm.serInjNum, monthForm.econLoss)" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="经济损失(万元)" prop="econLoss" :rules="[{ required: true, message: '请输入', trigger: 'blur' }]">
-              <el-input v-model="monthForm.econLoss" />
+              <el-input v-model="monthForm.econLoss" @input="monthForm.acciGrad = calcAcciGrad(monthForm.casNum, monthForm.serInjNum, monthForm.econLoss)" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -480,7 +483,7 @@
       </el-form>
       <div style="margin-top:16px; border-top:1px solid #e4e7ed; padding-top:12px;">
         <div style="font-weight:bold; margin-bottom:8px;">事故调查报告附件</div>
-        <el-upload ref="monthUploadRef" :action="uploadUrl" :headers="uploadHeaders" :on-success="handleMonthUploadSuccess" :file-list="monthFileList" multiple :limit="10" list-type="text" accept=".jpg,.jpeg,.png,.pdf,.doc,.docx,.xls,.xlsx,.txt,.zip,.rar">
+        <el-upload ref="monthUploadRef" :action="uploadUrl" :headers="uploadHeaders" :on-success="handleMonthUploadSuccess" :on-remove="handleMonthUploadRemove" :file-list="monthFileList" multiple :limit="10" list-type="text" accept=".jpg,.jpeg,.png,.pdf,.doc,.docx,.xls,.xlsx,.txt,.zip,.rar">
           <el-button type="primary" size="small">选择文件</el-button>
           <span style="color:#909399;font-size:12px;margin-left:8px;">支持图片/文档/压缩包,单文件不超过10MB</span>
         </el-upload>
@@ -489,26 +492,21 @@
         <div style="font-weight:bold; margin-bottom:8px;">事故调查进展情况</div>
         <el-button size="small" type="primary" @click="addMonthProgRow" class="mb8"><el-icon><Plus /></el-icon> 添加</el-button>
         <el-table :data="monthProgList" border size="small">
-          <el-table-column label="调查时间" align="center" width="160">
-            <template #default="scope">
-              <el-date-picker v-model="scope.row.repTime" type="date" value-format="YYYY-MM-DD" placeholder="选择" size="small" style="width:100%" />
-            </template>
+          <el-table-column label="序号" align="center" type="index" width="50" />
+          <el-table-column label="进展情况" align="center" min-width="200">
+            <template #default="scope"><el-input v-model="scope.row.progress" size="small" type="textarea" :rows="2" placeholder="请输入" /></template>
           </el-table-column>
-          <el-table-column label="重伤人数" align="center" width="90">
-            <template #default="scope"><el-input v-model="scope.row.serInjNum" size="small" /></template>
+          <el-table-column label="填报人" align="center" width="120">
+            <template #default="scope"><el-input v-model="scope.row.recPers" size="small" placeholder="请输入" /></template>
           </el-table-column>
-          <el-table-column label="死亡人数" align="center" width="90">
-            <template #default="scope"><el-input v-model="scope.row.casNum" size="small" /></template>
-          </el-table-column>
-          <el-table-column label="经济损失(万元)" align="center" width="120">
-            <template #default="scope"><el-input v-model="scope.row.econLoss" size="small" /></template>
-          </el-table-column>
-          <el-table-column label="事故描述" align="center" min-width="160">
-            <template #default="scope"><el-input v-model="scope.row.acciDesc" size="small" /></template>
+          <el-table-column label="填报时间" align="center" width="160">
+            <template #default="scope">
+              <el-date-picker v-model="scope.row.collTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择" size="small" style="width:100%" />
+            </template>
           </el-table-column>
           <el-table-column label="操作" align="center" width="60">
             <template #default="scope">
-              <el-button link type="danger" @click="monthProgList.splice($index, 1)">
+              <el-button link type="danger" @click="monthProgList.splice(scope.$index, 1)">
                 <el-icon><Delete /></el-icon>
               </el-button>
             </template>
@@ -575,13 +573,25 @@
 
 <script setup name="AcciManage">
 import { Search, RefreshRight, Plus, Download, Delete, Edit, WarningFilled } from '@element-plus/icons-vue'
-import { listObjAcci, compoundSaveAcci, delObjAcci, fastReportAcci } from "@/api/slaj/acci"
+import { listObjAcci, compoundSaveAcci, delObjAcci, fastReportAcci, getAcciMedList } from "@/api/slaj/acci"
 import { listBisAcciExpRep, addBisAcciExpRep, updateBisAcciExpRep, delBisAcciExpRep } from "@/api/slaj/acci"
 import { getToken } from "@/utils/auth"
 import { parseExpRepFields } from "@/utils/acci"
 
 const { proxy } = getCurrentInstance()
-const { acci_grad } = proxy.useDict("acci_grad")
+const { acci_grad } = proxy.useDict("DPC_ACCI_GRAD")
+
+// 事故等级自动判定(依据《生产安全事故报告和调查处理条例》第493号令,就高不就低)
+// econLoss 单位:万元
+function calcAcciGrad(cas, inj, loss) {
+  const c = parseInt(cas) || 0
+  const i = parseInt(inj) || 0
+  const l = parseFloat(loss) || 0
+  if (c >= 30 || i >= 100 || l >= 10000) return '4' // 特别重大
+  if (c >= 10 || i >= 50  || l >= 5000)  return '3' // 重大
+  if (c >= 3  || i >= 10  || l >= 1000)  return '2' // 较大
+  return '1' // 一般
+}
 
 const tabPermiMap = {
   fast: 'acci:tab:fast',
@@ -781,13 +791,30 @@ function handleUpdate2(row) {
   monthForm.value = { ...data }
   monthProgList.value = []; monthFileList.value = []
   monthFormOpen.value = true
+  listBisAcciExpRep({ acciGuid: data.guid, pageSize: 999 }).then(res => {
+    monthProgList.value = (res.rows || []).map(r => ({
+      progress: r.note || '',
+      recPers: r.recPers || '',
+      collTime: r.collTime || ''
+    }))
+  })
+  getAcciMedList(data.guid).then(res => {
+    monthFileList.value = (res.data || []).map(f => ({ name: f.name, url: f.path, guid: f.medGuid }))
+  })
+}
+function addMonthProgRow() { monthProgList.value.push({ progress: '', recPers: '', collTime: '' }) }
+function handleMonthUploadSuccess(response, file, fileList) {
+  if (response.code === 200) {
+    file.name = response.originalFilename || file.name
+    file.url = response.fileName
+  }
+  monthFileList.value = fileList
 }
-function addMonthProgRow() { monthProgList.value.push({ repTime: '', serInjNum: '', casNum: '', econLoss: '', acciDesc: '' }) }
-function handleMonthUploadSuccess(response, file, fileList) { monthFileList.value = fileList }
+function handleMonthUploadRemove(file, fileList) { monthFileList.value = fileList }
 function submitMonthForm() {
   monthFormRef.value.validate(valid => {
     if (!valid) return
-    compoundSaveAcci({ ...monthForm.value, progList: monthProgList.value, fileList: monthFileList.value.map(f => ({ name: f.name, url: f.url || f.response?.url })) }).then(() => {
+    compoundSaveAcci({ ...monthForm.value, progList: monthProgList.value, fileList: monthFileList.value.map(f => ({ name: f.name, path: f.url || f.response?.fileName || '' })) }).then(() => {
       proxy.$modal.msgSuccess(monthForm.value.guid ? '修改成功' : '保存成功')
       monthFormOpen.value = false; getList2()
     })

+ 1 - 0
gw-ui/src/views/slaj/acci/stat.vue

@@ -52,6 +52,7 @@ import { listAcciStat } from "@/api/slaj/acci"
 
 const { proxy } = getCurrentInstance()
 
+
 const loading = ref(false)
 const statList = ref([])
 const total = ref(0)

+ 1 - 1
gw-ui/src/views/slaj/hazard/manage.vue

@@ -484,7 +484,7 @@ import { Search, Plus, Edit, Delete, Download, List } from '@element-plus/icons-
 const userStore = useUserStore()
 
 const { proxy } = getCurrentInstance()
-const { haz_grad, haz_stat, risk_grad, sys_yes_no } = proxy.useDict("haz_grad", "haz_stat", "risk_grad", "sys_yes_no")
+const { haz_grad, haz_stat, risk_grad, sys_yes_no } = proxy.useDict("DPC_HAZ_GRAD", "haz_stat", "risk_grad", "sys_yes_no")
 
 const tabPermiMap2 = { eng: 'hazar:tab:manageEng', tend: 'hazar:tab:manageTend', chem: 'hazar:tab:manageChem' }
 function hasTabPermi2(name) {

+ 2 - 2
gw-ui/src/views/slaj/hazard/supervise.vue

@@ -107,7 +107,7 @@
         <el-descriptions-item label="危险源编码">{{ detailRow.hazCode || '--' }}</el-descriptions-item>
         <el-descriptions-item label="危险源名称">{{ detailRow.hazName || '--' }}</el-descriptions-item>
         <el-descriptions-item label="危险源等级">
-          <dict-tag :options="haz_stat" :value="detailRow.hiddGrad" />
+          <dict-tag :options="haz_grad" :value="detailRow.hiddGrad" />
         </el-descriptions-item>
         <el-descriptions-item label="风险等级">
           <dict-tag :options="risk_grad" :value="detailRow.riskGrad" />
@@ -143,7 +143,7 @@ import { listObjHazWithScope, updateObjHaz } from "@/api/slaj/hazard"
 import { Search, Download, Document } from '@element-plus/icons-vue'
 
 const { proxy } = getCurrentInstance()
-const { haz_stat, sys_yes_no, risk_grad } = proxy.useDict("haz_stat", "sys_yes_no", "risk_grad")
+const { haz_grad, haz_stat, sys_yes_no, risk_grad } = proxy.useDict("DPC_HAZ_GRAD", "haz_stat", "sys_yes_no", "risk_grad")
 
 const hazList = ref([]); const loading = ref(true); const total = ref(0)
 const dateRange = ref([])

+ 1 - 1
gw-ui/src/views/slaj/hidd/engQuery.vue

@@ -100,7 +100,7 @@
         </el-table-column>
         <el-table-column label="隐患类型" align="center" width="100">
           <template #default="scope">
-            {{ scope.row.hiddClas === '1' ? '工程隐患' : '非工程隐患' }}
+            {{ scope.row.engGuid ? '工程隐患' : '非工程隐患' }}
           </template>
         </el-table-column>
         <el-table-column label="管理单位" align="center" prop="orgName" min-width="140" :show-overflow-tooltip="true" />

+ 5 - 3
gw-ui/src/views/slaj/hidd/orgEngQuery.vue

@@ -372,7 +372,7 @@
               <td class="label-cell">隐患级别</td>
               <td class="value-cell">{{ rectifyRow.hiddGrad === '1' ? '重大隐患' : '一般隐患' }}</td>
               <td class="label-cell">隐患类型</td>
-              <td class="value-cell">{{ rectifyRow.hiddClas === '1' ? '工程隐患' : '非工程隐患' }}</td>
+              <td class="value-cell">{{ rectifyRow.engGuid ? '工程隐患' : '非工程隐患' }}</td>
             </tr>
             <tr>
               <td class="label-cell">排查单位</td>
@@ -752,7 +752,7 @@
 </template>
 
 <script setup name="OrgEngQuery">
-import { listObjHidd, delObjHidd, addObjHidd, updateObjHidd, compoundSaveHidd, getHiddGroupBy, getObjHiddMedList, listBisHiddRectImpl, addBisHiddRectImpl, updateBisHiddRectImpl, listBisHiddRectAcce, addBisHiddRectAcce, updateBisHiddRectAcce, listBisHiddRectProg, addBisHiddRectProg, listNextDepHidd, writeOffBisMajHiddSup, getHiddListByName, listAttOrgBase, reportHidd, returnHidd, addBisMajHiddSup } from "@/api/slaj/hidd"
+import { listObjHidd, delObjHidd, addObjHidd, updateObjHidd, compoundSaveHidd, getHiddGroupBy, getObjHiddMedList, listBisHiddRectImpl, addBisHiddRectImpl, updateBisHiddRectImpl, listBisHiddRectAcce, addBisHiddRectAcce, updateBisHiddRectAcce, listBisHiddRectProg, addBisHiddRectProg, delBisHiddRectProg, listNextDepHidd, writeOffBisMajHiddSup, getHiddListByName, listAttOrgBase, reportHidd, returnHidd, addBisMajHiddSup } from "@/api/slaj/hidd"
 import { listObjEng } from "@/api/slaj/eng"
 import { listObjTend } from "@/api/slaj/obj"
 import { getToken } from "@/utils/auth"
@@ -760,7 +760,7 @@ import useUserStore from '@/store/modules/user'
 import { Search, Plus, Download, Delete, Upload, Edit, Position, Back } from '@element-plus/icons-vue'
 
 const { proxy } = getCurrentInstance()
-const { hidd_grad, hidd_stat, sup_stat, hidd_sour, hidd_clas } = proxy.useDict("hidd_grad", "hidd_stat", "sup_stat", "hidd_sour", "hidd_clas")
+const { hidd_grad, hidd_stat, sup_stat, hidd_sour, hidd_clas } = proxy.useDict("DPC_HIDD_GRAD", "DPC_HIDD_STAT", "sup_stat", "hidd_sour", "DPC_HIDD_CLAS")
 const userStore = useUserStore()
 
 const tabPermiMap = {
@@ -1169,6 +1169,7 @@ function handleAdd3() {
   formTitle.value = '本级单位标段隐患新增'
   form.value = { hiddGrad: '1', hiddStat: '0', inspDate: '', inspLeader: '', inspLeaderPost: '', proPart: '', hiddDesc: '', engGuid: '', tendGuid: '', engName: '', tendName: '', orgGuid: userStore.orgGuid || '' }
   listObjEng({}).then(res => { engList.value = (res.rows || []).map(e => ({ value: e.guid, label: e.engName })) })
+  loadTendList()
   fileAttachList.value = []
   uploadFileList.value = []
   formDrawer.value = true
@@ -1180,6 +1181,7 @@ function handleUpdate3(row) {
   if (data) {
     form.value = { ...data, engGuid: data.engGuid || '', tendGuid: data.tendGuid || '' }
     listObjEng({}).then(res => { engList.value = (res.rows || []).map(e => ({ value: e.guid, label: e.engName })) })
+    loadTendList()
     formTitle.value = '本级单位标段隐患修改'
     loadHiddMedList(data.guid)
     formDrawer.value = true

+ 1 - 0
gw-ui/src/views/slaj/hidd/stat.vue

@@ -99,6 +99,7 @@ import { Search, DataAnalysis } from '@element-plus/icons-vue'
 
 const { proxy } = getCurrentInstance()
 
+
 const loading = ref(false)
 const statList = ref([])
 const total = ref(0)

+ 1 - 1
gw-ui/src/views/slaj/hidd/supList.vue

@@ -292,7 +292,7 @@ const uploadHeaders = computed(() => ({ Authorization: 'Bearer ' + token.value }
 const fileList = ref([])
 
 const { proxy } = getCurrentInstance()
-const { hidd_grad, hidd_stat, sup_stat, hidd_clas, eng_type, org_nature } = proxy.useDict("hidd_grad", "hidd_stat", "sup_stat", "hidd_clas", "eng_type", "org_nature")
+const { hidd_grad, hidd_stat, sup_stat, hidd_clas, eng_type, org_nature } = proxy.useDict("DPC_HIDD_GRAD", "DPC_HIDD_STAT", "sup_stat", "DPC_HIDD_CLAS", "eng_type", "org_nature")
 
 const orgOptions = ref([])
 function loadOrgOptions() {