Browse Source

pssr附件功能前后端修改

jiangbiao 6 months ago
parent
commit
3bcbe4149f

+ 25 - 22
master/src/main/java/com/ruoyi/project/pssr/service/impl/TPssrFileServiceImpl.java

@@ -1,14 +1,13 @@
 package com.ruoyi.project.pssr.service.impl;
 
-import java.util.Collections;
-import java.util.List;
-
+import com.ruoyi.project.pssr.domain.TPssrFile;
+import com.ruoyi.project.pssr.mapper.TPssrFileMapper;
+import com.ruoyi.project.pssr.service.ITPssrFileService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.ruoyi.project.pssr.mapper.TPssrFileMapper;
-import com.ruoyi.project.pssr.domain.TPssrFile;
-import com.ruoyi.project.pssr.service.ITPssrFileService;
+
+import java.util.List;
 
 /**
  * PSSR附件Service业务层处理
@@ -17,8 +16,7 @@ import com.ruoyi.project.pssr.service.ITPssrFileService;
  * @date 2024-10-30
  */
 @Service
-public class TPssrFileServiceImpl implements ITPssrFileService
-{
+public class TPssrFileServiceImpl implements ITPssrFileService {
     @Autowired
     private TPssrFileMapper tPssrFileMapper;
 
@@ -29,8 +27,7 @@ public class TPssrFileServiceImpl implements ITPssrFileService
      * @return PSSR附件
      */
     @Override
-    public TPssrFile selectTPssrFileById(Long fileId)
-    {
+    public TPssrFile selectTPssrFileById(Long fileId) {
         return tPssrFileMapper.selectTPssrFileById(fileId);
     }
 
@@ -41,8 +38,7 @@ public class TPssrFileServiceImpl implements ITPssrFileService
      * @return PSSR附件
      */
     @Override
-    public List<TPssrFile> selectTPssrFileList(TPssrFile tPssrFile)
-    {
+    public List<TPssrFile> selectTPssrFileList(TPssrFile tPssrFile) {
         return tPssrFileMapper.selectTPssrFileList(tPssrFile);
     }
 
@@ -62,8 +58,7 @@ public class TPssrFileServiceImpl implements ITPssrFileService
      * @return 结果
      */
     @Override
-    public int insertTPssrFile(TPssrFile tPssrFile)
-    {
+    public int insertTPssrFile(TPssrFile tPssrFile) {
         return tPssrFileMapper.insertTPssrFile(tPssrFile);
     }
 
@@ -74,8 +69,7 @@ public class TPssrFileServiceImpl implements ITPssrFileService
      * @return 结果
      */
     @Override
-    public int updateTPssrFile(TPssrFile tPssrFile)
-    {
+    public int updateTPssrFile(TPssrFile tPssrFile) {
         return tPssrFileMapper.updateTPssrFile(tPssrFile);
     }
 
@@ -86,8 +80,7 @@ public class TPssrFileServiceImpl implements ITPssrFileService
      * @return 结果
      */
     @Override
-    public int deleteTPssrFileByIds(Long[] fileIds)
-    {
+    public int deleteTPssrFileByIds(Long[] fileIds) {
         return tPssrFileMapper.deleteTPssrFileByIds(fileIds);
     }
 
@@ -98,16 +91,16 @@ public class TPssrFileServiceImpl implements ITPssrFileService
      * @return 结果
      */
     @Override
-    public int deleteTPssrFileById(Long fileId)
-    {
+    public int deleteTPssrFileById(Long fileId) {
         return tPssrFileMapper.deleteTPssrFileById(fileId);
     }
 
     @Override
-    public void updateFileRelevance(List<Long> fileIds, String forShort, Long itemId,Long subId) {
-        if(!CollectionUtils.isNotEmpty(fileIds)){
+    public void updateFileRelevance(List<Long> fileIds, String forShort, Long itemId, Long subId) {
+        if (!CollectionUtils.isNotEmpty(fileIds)) {
             return;
         }
+        // 更新附件信息
         for (Long fileId : fileIds) {
             TPssrFile pssrFile = new TPssrFile();
             pssrFile.setSubId(subId);
@@ -116,5 +109,15 @@ public class TPssrFileServiceImpl implements ITPssrFileService
             pssrFile.setFileId(fileId);
             tPssrFileMapper.updateTPssrFile(pssrFile);
         }
+        // 如果已有附件不属于当前id集合中,删除
+        TPssrFile query = new TPssrFile();
+        query.setSubId(subId);
+        query.setItemId(itemId);
+        query.setForShort(forShort);
+        for (TPssrFile exist : tPssrFileMapper.selectTPssrFileList(query)) {
+            if (!fileIds.contains(exist.getFileId())){
+                tPssrFileMapper.deleteTPssrFileById(exist.getFileId());
+            }
+        }
     }
 }

+ 18 - 12
ui/src/views/pssr/overhaulExchanger/index.vue

@@ -362,6 +362,12 @@
         <el-button @click="doc.open = false">返 回</el-button>
       </div>
     </el-dialog>
+
+    <!-- 附件对话框 -->
+    <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="doc_p.open" append-to-body title="现场照片"
+               width="1000px">
+      <el-image v-for="file in doc_p.fileList" :key="file.id" :src="file.fileUrl" lazy></el-image>
+    </el-dialog>
   </div>
 </template>
 
@@ -382,10 +388,10 @@ import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {groupList} from "@/api/pssr/region";
 import {listUserNoPage} from "@/api/system/user";
+import {listFile} from "@/api/pssr/file";
 import {doApprove} from "@/api/pssr/approve";
 import {getSubcontent} from "@/api/pssr/subcontent";
 import {allFileList, delCommonfile} from "@/api/common/commonfile";
-import {handleTurnDownLock} from "@/api/pssr/lock";
 
 export default {
   dicts: ['pssr_approve_status'],
@@ -403,7 +409,7 @@ export default {
   },
   data() {
     return {
-      doc: {
+      doc_p: {
         file: "",
         // 是否显示弹出层(报告附件)
         open: false,
@@ -745,16 +751,16 @@ export default {
       this.$refs.upload.submit();
     },
     /** 报告附件按钮操作 */
-    handleDoc(row) {
-      this.doc.fileList=[]
-      this.doc.open = true;
-      this.doc.queryParams.itemId = row.id
-      this.getFileList()
-    },
-    getFileList() {
-      listFile(this.doc.queryParams).then(response => {
-        this.doc.fileList = response.rows;
-        this.doc.fileList.forEach(item => {
+    handleDocP(row) {
+      this.doc_p.fileList = []
+      this.doc_p.open = true;
+      this.doc_p.queryParams.itemId = row.id
+      this.getPFileList()
+    },
+    getPFileList() {
+      listFile(this.doc_p.queryParams).then(response => {
+        this.doc_p.fileList = response.rows;
+        this.doc_p.fileList.forEach(item => {
           item.fileUrl = process.env.VUE_APP_BASE_API + item.fileUrl;
         });
       });

+ 18 - 11
ui/src/views/pssr/overhaulFilter/index.vue

@@ -368,6 +368,12 @@
         <el-button @click="doc.open = false">返 回</el-button>
       </div>
     </el-dialog>
+
+    <!-- 附件对话框 -->
+    <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="doc_p.open" append-to-body title="现场照片"
+               width="1000px">
+      <el-image v-for="file in doc_p.fileList" :key="file.id" :src="file.fileUrl" lazy></el-image>
+    </el-dialog>
   </div>
 </template>
 
@@ -389,6 +395,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {groupList} from "@/api/pssr/region";
 import {getSubcontent} from "@/api/pssr/subcontent";
 import {listUserNoPage} from "@/api/system/user";
+import {listFile} from "@/api/pssr/file";
 import {doApprove} from "@/api/pssr/approve";
 import {allFileList, delCommonfile} from "@/api/common/commonfile";
 
@@ -409,7 +416,7 @@ export default {
   },
   data() {
     return {
-      doc: {
+      doc_p: {
         file: "",
         // 是否显示弹出层(报告附件)
         open: false,
@@ -768,16 +775,16 @@ export default {
       this.$refs.upload.submit();
     },
     /** 报告附件按钮操作 */
-    handleDoc(row) {
-      this.doc.fileList=[]
-      this.doc.open = true;
-      this.doc.queryParams.itemId = row.id
-      this.getFileList()
-    },
-    getFileList() {
-      listFile(this.doc.queryParams).then(response => {
-        this.doc.fileList = response.rows;
-        this.doc.fileList.forEach(item => {
+    handleDocP(row) {
+      this.doc_p.fileList = []
+      this.doc_p.open = true;
+      this.doc_p.queryParams.itemId = row.id
+      this.getPFileList()
+    },
+    getPFileList() {
+      listFile(this.doc_p.queryParams).then(response => {
+        this.doc_p.fileList = response.rows;
+        this.doc_p.fileList.forEach(item => {
           item.fileUrl = process.env.VUE_APP_BASE_API + item.fileUrl;
         });
       });

+ 17 - 10
ui/src/views/pssr/overhaulPipe/index.vue

@@ -250,6 +250,12 @@
         <el-button @click="upload.open = false">取 消</el-button>
       </div>
     </el-dialog>
+
+    <!-- 附件对话框 -->
+    <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="doc_p.open" append-to-body title="现场照片"
+               width="1000px">
+      <el-image v-for="file in doc_p.fileList" :key="file.id" :src="file.fileUrl" lazy></el-image>
+    </el-dialog>
   </div>
 </template>
 
@@ -270,6 +276,7 @@ import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {groupList} from "@/api/pssr/region";
 import {listUserNoPage} from "@/api/system/user";
+import {listFile} from "@/api/pssr/file";
 import {doApprove} from "@/api/pssr/approve";
 import {getSubcontent} from "@/api/pssr/subcontent";
 
@@ -290,7 +297,7 @@ export default {
   },
   data() {
     return {
-      doc: {
+      doc_p: {
         file: "",
         // 是否显示弹出层(报告附件)
         open: false,
@@ -588,16 +595,16 @@ export default {
       this.$refs.upload.submit();
     },
     /** 报告附件按钮操作 */
-    handleDoc(row) {
-      this.doc.fileList=[]
-      this.doc.open = true;
-      this.doc.queryParams.itemId = row.id
-      this.getFileList()
+    handleDocP(row) {
+      this.doc_p.fileList = []
+      this.doc_p.open = true;
+      this.doc_p.queryParams.itemId = row.id
+      this.getPFileList()
     },
-    getFileList() {
-      listFile(this.doc.queryParams).then(response => {
-        this.doc.fileList = response.rows;
-        this.doc.fileList.forEach(item => {
+    getPFileList() {
+      listFile(this.doc_p.queryParams).then(response => {
+        this.doc_p.fileList = response.rows;
+        this.doc_p.fileList.forEach(item => {
           item.fileUrl = process.env.VUE_APP_BASE_API + item.fileUrl;
         });
       });

+ 17 - 10
ui/src/views/pssr/overhaulPump/index.vue

@@ -262,6 +262,12 @@
         <el-button @click="upload.open = false">取 消</el-button>
       </div>
     </el-dialog>
+
+    <!-- 附件对话框 -->
+    <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="doc_p.open" append-to-body title="现场照片"
+               width="1000px">
+      <el-image v-for="file in doc_p.fileList" :key="file.id" :src="file.fileUrl" lazy></el-image>
+    </el-dialog>
   </div>
 </template>
 
@@ -282,6 +288,7 @@ import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {groupList} from "@/api/pssr/region";
 import {listUserNoPage} from "@/api/system/user";
+import {listFile} from "@/api/pssr/file";
 import {doApprove} from "@/api/pssr/approve";
 import {getSubcontent} from "@/api/pssr/subcontent";
 
@@ -302,7 +309,7 @@ export default {
   },
   data() {
     return {
-      doc: {
+      doc_p: {
         file: "",
         // 是否显示弹出层(报告附件)
         open: false,
@@ -602,16 +609,16 @@ export default {
       this.$refs.upload.submit();
     },
     /** 报告附件按钮操作 */
-    handleDoc(row) {
-      this.doc.fileList=[]
-      this.doc.open = true;
-      this.doc.queryParams.itemId = row.id
-      this.getFileList()
+    handleDocP(row) {
+      this.doc_p.fileList = []
+      this.doc_p.open = true;
+      this.doc_p.queryParams.itemId = row.id
+      this.getPFileList()
     },
-    getFileList() {
-      listFile(this.doc.queryParams).then(response => {
-        this.doc.fileList = response.rows;
-        this.doc.fileList.forEach(item => {
+    getPFileList() {
+      listFile(this.doc_p.queryParams).then(response => {
+        this.doc_p.fileList = response.rows;
+        this.doc_p.fileList.forEach(item => {
           item.fileUrl = process.env.VUE_APP_BASE_API + item.fileUrl;
         });
       });

+ 18 - 11
ui/src/views/pssr/overhaulTower/index.vue

@@ -345,6 +345,12 @@
         <el-button @click="doc.open = false">返 回</el-button>
       </div>
     </el-dialog>
+
+    <!-- 附件对话框 -->
+    <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="doc_p.open" append-to-body title="现场照片"
+               width="1000px">
+      <el-image v-for="file in doc_p.fileList" :key="file.id" :src="file.fileUrl" lazy></el-image>
+    </el-dialog>
   </div>
 </template>
 
@@ -365,6 +371,7 @@ import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {groupList} from "@/api/pssr/region";
 import {listUserNoPage} from "@/api/system/user";
+import {listFile} from "@/api/pssr/file";
 import {doApprove} from "@/api/pssr/approve";
 import {getSubcontent} from "@/api/pssr/subcontent";
 import {allFileList, delCommonfile} from "@/api/common/commonfile";
@@ -386,7 +393,7 @@ export default {
   },
   data() {
     return {
-      doc: {
+      doc_p: {
         file: "",
         // 是否显示弹出层(报告附件)
         open: false,
@@ -720,16 +727,16 @@ export default {
       this.$refs.upload.submit();
     },
     /** 报告附件按钮操作 */
-    handleDoc(row) {
-      this.doc.fileList=[]
-      this.doc.open = true;
-      this.doc.queryParams.itemId = row.id
-      this.getFileList()
-    },
-    getFileList() {
-      listFile(this.doc.queryParams).then(response => {
-        this.doc.fileList = response.rows;
-        this.doc.fileList.forEach(item => {
+    handleDocP(row) {
+      this.doc_p.fileList = []
+      this.doc_p.open = true;
+      this.doc_p.queryParams.itemId = row.id
+      this.getPFileList()
+    },
+    getPFileList() {
+      listFile(this.doc_p.queryParams).then(response => {
+        this.doc_p.fileList = response.rows;
+        this.doc_p.fileList.forEach(item => {
           item.fileUrl = process.env.VUE_APP_BASE_API + item.fileUrl;
         });
       });

+ 18 - 11
ui/src/views/pssr/overhaulValve/index.vue

@@ -364,6 +364,12 @@
         <el-button @click="doc.open = false">返 回</el-button>
       </div>
     </el-dialog>
+
+    <!-- 附件对话框 -->
+    <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="doc_p.open" append-to-body title="现场照片"
+               width="1000px">
+      <el-image v-for="file in doc_p.fileList" :key="file.id" :src="file.fileUrl" lazy></el-image>
+    </el-dialog>
   </div>
 </template>
 
@@ -384,6 +390,7 @@ import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {groupList} from "@/api/pssr/region";
 import {listUserNoPage} from "@/api/system/user";
+import {listFile} from "@/api/pssr/file";
 import {getSubcontent} from "@/api/pssr/subcontent";
 import {doApprove} from "@/api/pssr/approve";
 import {allFileList, delCommonfile} from "@/api/common/commonfile";
@@ -404,7 +411,7 @@ export default {
   },
   data() {
     return {
-      doc: {
+      doc_p: {
         file: "",
         // 是否显示弹出层(报告附件)
         open: false,
@@ -760,16 +767,16 @@ export default {
       this.$refs.upload.submit();
     },
     /** 报告附件按钮操作 */
-    handleDoc(row) {
-      this.doc.fileList=[]
-      this.doc.open = true;
-      this.doc.queryParams.itemId = row.id
-      this.getFileList()
-    },
-    getFileList() {
-      listFile(this.doc.queryParams).then(response => {
-        this.doc.fileList = response.rows;
-        this.doc.fileList.forEach(item => {
+    handleDocP(row) {
+      this.doc_p.fileList = []
+      this.doc_p.open = true;
+      this.doc_p.queryParams.itemId = row.id
+      this.getPFileList()
+    },
+    getPFileList() {
+      listFile(this.doc_p.queryParams).then(response => {
+        this.doc_p.fileList = response.rows;
+        this.doc_p.fileList.forEach(item => {
           item.fileUrl = process.env.VUE_APP_BASE_API + item.fileUrl;
         });
       });

+ 7 - 0
ui/src/views/pssr/pumpCleaning/index.vue

@@ -277,6 +277,12 @@
         <el-button @click="upload.open = false">取 消</el-button>
       </div>
     </el-dialog>
+
+    <!-- 附件对话框 -->
+    <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="doc.open" append-to-body title="现场照片"
+               width="1000px">
+      <el-image v-for="file in doc.fileList" :key="file.id" :src="file.fileUrl" lazy></el-image>
+    </el-dialog>
   </div>
 </template>
 
@@ -298,6 +304,7 @@ import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {doApprove} from "@/api/pssr/approve";
 import {listUserNoPage} from "@/api/system/user";
+import {listFile} from "@/api/pssr/file";
 
 export default {
   dicts: ['pssr_approve_status'],

+ 7 - 0
ui/src/views/pssr/pumpFill/index.vue

@@ -281,10 +281,17 @@
         <el-button @click="upload.open = false">取 消</el-button>
       </div>
     </el-dialog>
+
+    <!-- 附件对话框 -->
+    <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="doc.open" append-to-body title="现场照片"
+               width="1000px">
+      <el-image v-for="file in doc.fileList" :key="file.id" :src="file.fileUrl" lazy></el-image>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import {listFile} from "@/api/pssr/file";
 import {
   addPumpFill,
   delPumpFill,

+ 7 - 0
ui/src/views/pssr/pumpOverhaul/index.vue

@@ -271,10 +271,17 @@
         <el-button @click="upload.open = false">取 消</el-button>
       </div>
     </el-dialog>
+
+    <!-- 附件对话框 -->
+    <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="doc.open" append-to-body title="现场照片"
+               width="1000px">
+      <el-image v-for="file in doc.fileList" :key="file.id" :src="file.fileUrl" lazy></el-image>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import {listFile} from "@/api/pssr/file";
 import {
   addPumpOverhaul,
   delPumpOverhaul,