فهرست منبع

pssr 导出主表

jiangbiao 5 ماه پیش
والد
کامیت
48a326d317

+ 32 - 7
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrSubcontentController.java

@@ -16,10 +16,11 @@ import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.officeConvert.OfficeConvertController;
 import com.ruoyi.project.pssr.domain.TPssrAboveall;
 import com.ruoyi.project.pssr.domain.TPssrApprove;
+import com.ruoyi.project.pssr.domain.TPssrContentModel;
 import com.ruoyi.project.pssr.domain.TPssrSubcontent;
-import com.ruoyi.project.pssr.mapper.TPssrSubcontentMapper;
 import com.ruoyi.project.pssr.service.ITPssrAboveallService;
 import com.ruoyi.project.pssr.service.ITPssrApproveService;
+import com.ruoyi.project.pssr.service.ITPssrContentModelService;
 import com.ruoyi.project.pssr.service.ITPssrSubcontentService;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.service.impl.SysUserServiceImpl;
@@ -27,6 +28,7 @@ import io.jsonwebtoken.lang.Assert;
 import org.activiti.engine.HistoryService;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.TaskService;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -37,9 +39,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 开车条件确认Controller
@@ -71,6 +72,8 @@ public class TPssrSubcontentController extends BaseController {
     private TaskService taskService;
     @Resource
     private OfficeConvertController officeConvertController;
+    @Autowired
+    private ITPssrContentModelService tPssrContentModelService;
 
     /**
      * 查询开车条件确认列表
@@ -102,6 +105,28 @@ public class TPssrSubcontentController extends BaseController {
     @GetMapping("/export")
     public AjaxResult export(TPssrSubcontent tPssrSubcontent) throws IOException {
         List<TPssrSubcontent> list = tPssrSubcontentService.selectTPssrSubcontentList(tPssrSubcontent);
+
+        Set<String> exists = list.stream().map(TPssrSubcontent::getSerialNumber).collect(Collectors.toSet());
+        List<TPssrContentModel> models = tPssrContentModelService.selectTPssrContentModelList(new TPssrContentModel());
+        List<TPssrContentModel> noExists = models.stream().filter(model -> !exists.contains(model.getSerialNumber())).collect(Collectors.toList());
+
+        if (CollectionUtils.isNotEmpty(noExists)) {
+            for (TPssrContentModel noExist : noExists) {
+                TPssrSubcontent subcontent = new TPssrSubcontent();
+                subcontent.setConfirm1Name("NA");
+                subcontent.setConfirm2Name("NA");
+                subcontent.setConfirmName("NA");
+                subcontent.setRemarks("NA");
+                subcontent.setApproveStatus(99L);
+                subcontent.setAboveallId(tPssrSubcontent.getAboveallId());
+                subcontent.setDeptUnit(noExist.getDeptUnit());
+                subcontent.setSerialNumber(noExist.getSerialNumber());
+                subcontent.setItem(noExist.getItem());
+                subcontent.setContent(noExist.getContent());
+                list.add(subcontent);
+            }
+            list.sort(Comparator.comparing(TPssrSubcontent::getSerialNumber));
+        }
 //        ExcelUtil<TPssrSubcontent> util = new ExcelUtil<TPssrSubcontent>(TPssrSubcontent.class);
 //        return util.exportExcel(list, "subcontent");
 
@@ -146,8 +171,8 @@ public class TPssrSubcontentController extends BaseController {
             }
 
             // 创建数据行
-            RowRenderData row = Rows.of(subcontent.getDeptUnit(), subcontent.getItem(), subcontent.getContent(), subcontent.getApproveStatus() == 2 ? "" : "",  // 如果需要确认人签名图片,这里空着
-                    DateUtils.dateTime(subcontent.getConfirmationDate()), subcontent.getRemarks()).verticalCenter().rowExactHeight(1.1f).create();
+            RowRenderData row = Rows.of(subcontent.getDeptUnit(), subcontent.getItem(), subcontent.getContent(), subcontent.getApproveStatus() == 99 ? "NA" : "",  // 如果需要确认人签名图片,这里空着
+                    subcontent.getApproveStatus() != 99 ? DateUtils.dateTime(subcontent.getConfirmationDate()) : "NA", subcontent.getRemarks()).verticalCenter().rowExactHeight(1.1f).create();
 
 
             // 如果确认状态为2,插入确认人签名图片
@@ -362,7 +387,7 @@ public class TPssrSubcontentController extends BaseController {
     public AjaxResult remove(@PathVariable Long[] ids) {
         for (Long id : ids) {
             TPssrSubcontent subcontent = tPssrSubcontentService.selectTPssrSubcontentById(id);
-            if (subcontent.getApproveStatus()!=0){
+            if (subcontent.getApproveStatus() != 0) {
                 return AjaxResult.error("已发起审批的检查项不可删除!");
             }
         }

+ 23 - 6
ui/src/views/pssr/aboveall/index.vue

@@ -137,10 +137,10 @@
           >检查内容
           </el-button>
           <el-button
-          size="mini"
-          type="text"
-          icon="el-icon-download"
-          @click="handleZip(scope.row)"
+            size="mini"
+            type="text"
+            icon="el-icon-download"
+            @click="handleZip(scope.row)"
           >打包
           </el-button>
           <!--<el-button-->
@@ -158,6 +158,13 @@
             v-if="scope.row.approveStatus == '2'"
           >导出
           </el-button>
+          <el-button
+            type="text"
+            size="mini"
+            @click="handleExSubcontent(scope.row)"
+            v-hasPermi="['pssr:subcontent:export']"
+          >预览
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -216,7 +223,8 @@
           </el-col>
         </el-row>
         <el-card class="mb10">
-          <el-table ref="subcontentTable" :data="subcontents" v-loading="subloading" border :row-class-name="tableRowClassName"
+          <el-table ref="subcontentTable" :data="subcontents" v-loading="subloading" border
+                    :row-class-name="tableRowClassName"
                     @selection-change="handleSubSelectionChange" max-height="500">
             <el-table-column label="所属部门" align="center" prop="deptUnit" :show-overflow-tooltip="true" width="80"/>
             <el-table-column label="序号" align="center" prop="serialNumber" :show-overflow-tooltip="true" width="80"/>
@@ -390,7 +398,7 @@ import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import {listPssrModel} from "@/api/pssr/pssrModel";
 import {groupList} from "@/api/pssr/region";
-import {listSubcontent} from "@/api/pssr/subcontent";
+import {exportSubcontent, listSubcontent} from "@/api/pssr/subcontent";
 
 export default {
   dicts: ['pssr_approve_status'],
@@ -515,6 +523,15 @@ export default {
         this.msgSuccess("打包成功");
       })
     },
+    handleExSubcontent(row) {
+      exportSubcontent({
+        pageNum: 1,
+        pageSize: 50,
+        aboveallId: row.id
+      }).then(response => {
+        window.open(process.env.VUE_APP_BASE_API + response.msg);
+      })
+    },
     handleDownload(row) {
       let _this = this;
       this.$confirm('是否确认导出?', "警告", {