jiangbiao 6 ay önce
ebeveyn
işleme
0855ae3eec

+ 2 - 11
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrAboveallController.java

@@ -6,6 +6,7 @@ import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.project.process.domain.TMoc;
 import com.ruoyi.project.pssr.domain.*;
 import com.ruoyi.project.pssr.service.*;
 import com.ruoyi.project.reliability.domain.TSafetyvavle;
@@ -171,8 +172,6 @@ public class TPssrAboveallController extends BaseController {
                         }
                     } else if (subcontent.getForShort().equals("yfl")) {
                         genYfl(subcontent.getId(), userId);
-                    } else if (subcontent.getForShort().equals("sjbg")) {
-                        genMoc(subcontent.getId(), userId);
                     } else if (subcontent.getForShort().equals("aqss")) {
                         genAqf(subcontent, userId);
                     } else if (subcontent.getForShort().equals("gygc")) {
@@ -251,7 +250,7 @@ public class TPssrAboveallController extends BaseController {
     /**
      * 生成原辅料数据
      */
-    private void genYfl(Long subId, String userId) {
+    private void genYfl(Long subId, String userId)  {
         tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "Electr. Power", "MWH", userId, new Date(), 0L));
         tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "LP steam", "/", userId, new Date(), 0L));
         tPssrMaterialService.insertTPssrMaterial(new TPssrMaterial(subId, "MP steam", "/", userId, new Date(), 0L));
@@ -275,14 +274,6 @@ public class TPssrAboveallController extends BaseController {
         tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Propylene", "Ton", userId, new Date(), 0L));
         tPssrMaterialRawService.insertTPssrMaterialRaw(new TPssrMaterialRaw(subId, "Toluene", "Ton", userId, new Date(), 0L));
     }
-
-    /**
-     * 生成moc数据
-     */
-    private void genMoc(Long subId, String userId) {
-        //TODO 添加MOC数据
-    }
-
     /**
      * 生成安全阀数据
      */

+ 9 - 4
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrBlindController.java

@@ -9,7 +9,6 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.pssr.domain.TPssrApprove;
 import com.ruoyi.project.pssr.domain.TPssrBlind;
-import com.ruoyi.project.pssr.domain.TPssrBlind;
 import com.ruoyi.project.pssr.domain.TPssrSubcontent;
 import com.ruoyi.project.pssr.service.ITPssrApproveService;
 import com.ruoyi.project.pssr.service.ITPssrBlindService;
@@ -120,8 +119,8 @@ public class TPssrBlindController extends BaseController {
                 try {
                     SysUser sysUser1 = sysUserService.selectUserById(Long.valueOf(t.getInConfirm1()));
                     SysUser sysUser2 = sysUserService.selectUserById(Long.valueOf(t.getInConfirm2()));
-                    String confirm1=  sysUser1.getSignUrl();
-                    String confirm2=  sysUser2.getSignUrl();
+                    String confirm1 = sysUser1.getSignUrl();
+                    String confirm2 = sysUser2.getSignUrl();
                     ExcelUtils.insertPicture(wb, sheet, confirm1, row.getRowNum(), 14, 1, 1);
                     ExcelUtils.insertPicture(wb, sheet, confirm2, row.getRowNum(), 15, 1, 1);
                 } catch (NumberFormatException e) {
@@ -204,6 +203,9 @@ public class TPssrBlindController extends BaseController {
                     item.setApproveStatus(3L);
                 } else if (tPssrBlind.getTaskType() == 5) {
                     item.setApproveStatus(2L);
+                    if (item.getInstallDate() == null) {
+                        item.setInstallDate(new Date());
+                    }
                 }
                 tPssrBlindService.updateTPssrBlind(item);
             }
@@ -221,6 +223,9 @@ public class TPssrBlindController extends BaseController {
                     item.setApproveStatus(3L);
                 } else if (tPssrBlind.getTaskType() == 5) {
                     item.setApproveStatus(2L);
+                    if (item.getInstallDate() == null) {
+                        item.setInstallDate(new Date());
+                    }
                 }
                 tPssrBlindService.updateTPssrBlind(item);
             }
@@ -254,7 +259,7 @@ public class TPssrBlindController extends BaseController {
         tPssrSubcontentService.updateTPssrSubcontent(tPssrSubcontent);
 
         //无待审批任务结束当前用户流程
-        
+
         // 因为流程关系所以approve一定会有且只有一条数据
         TPssrApprove tPssrApprove = tPssrApproveService.selectTPssrApproveBySubId(tPssrBlind.getSubId());
         TPssrApproveController.handleConfirmApprove(tPssrApprove, getUserId().toString());

+ 49 - 13
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrFileController.java

@@ -1,16 +1,15 @@
 package com.ruoyi.project.pssr.controller;
 
+import java.io.IOException;
+import java.util.Date;
 import java.util.List;
+
+import com.ruoyi.common.utils.file.FileUploadUtils;
+import com.ruoyi.framework.config.RuoYiConfig;
+import com.ruoyi.project.pssr.domain.TPssrInstrumentTest;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.project.pssr.domain.TPssrFile;
@@ -19,6 +18,7 @@ import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * PSSR附件Controller
@@ -36,7 +36,6 @@ public class TPssrFileController extends BaseController
     /**
      * 查询PSSR附件列表
      */
-    @PreAuthorize("@ss.hasPermi('pssr:file:list')")
     @GetMapping("/list")
     public TableDataInfo list(TPssrFile tPssrFile)
     {
@@ -48,7 +47,6 @@ public class TPssrFileController extends BaseController
     /**
      * 导出PSSR附件列表
      */
-    @PreAuthorize("@ss.hasPermi('pssr:file:export')")
     @Log(title = "PSSR附件", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
     public AjaxResult export(TPssrFile tPssrFile)
@@ -61,7 +59,6 @@ public class TPssrFileController extends BaseController
     /**
      * 获取PSSR附件详细信息
      */
-    @PreAuthorize("@ss.hasPermi('pssr:file:query')")
     @GetMapping(value = "/{fileId}")
     public AjaxResult getInfo(@PathVariable("fileId") Long fileId)
     {
@@ -82,7 +79,6 @@ public class TPssrFileController extends BaseController
     /**
      * 修改PSSR附件
      */
-    @PreAuthorize("@ss.hasPermi('pssr:file:edit')")
     @Log(title = "PSSR附件", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TPssrFile tPssrFile)
@@ -93,11 +89,51 @@ public class TPssrFileController extends BaseController
     /**
      * 删除PSSR附件
      */
-    @PreAuthorize("@ss.hasPermi('pssr:file:remove')")
     @Log(title = "PSSR附件", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{fileIds}")
     public AjaxResult remove(@PathVariable Long[] fileIds)
     {
         return toAjax(tPssrFileService.deleteTPssrFileByIds(fileIds));
     }
+
+
+
+    @Log(title = "pssr附件上传", businessType = BusinessType.UPDATE)
+    @PostMapping("/uploadFileM")
+    public AjaxResult uploadFileM(@RequestParam("file") MultipartFile file) throws IOException
+    {
+        if (!file.isEmpty())
+        {
+            String url = FileUploadUtils.upload(RuoYiConfig.getFilePath("/pssr/picture"), file);
+            TPssrFile pssrFile = new TPssrFile();
+            pssrFile.setFileUrl(url);
+            pssrFile.setFileName(file.getOriginalFilename());
+            pssrFile.setCreatedate(new Date());
+            pssrFile.setCreaterCode(getUserId().toString());
+            tPssrFileService.insertTPssrFile(pssrFile);
+            return AjaxResult.success(pssrFile.getFileId());
+        }
+        return AjaxResult.error("上传失败,请联系管理员");
+    }
+
+    @Log(title = "pssr附件上传", businessType = BusinessType.UPDATE)
+    @PostMapping("/uploadFile")
+    public AjaxResult uploadFile(@RequestParam("file") MultipartFile file,Long subId,Long itemId,String forShort) throws IOException
+    {
+        if (!file.isEmpty())
+        {
+            String url = FileUploadUtils.upload(RuoYiConfig.getFilePath("/pssr/pictures"), file);
+            TPssrFile pssrFile = new TPssrFile();
+            pssrFile.setItemId(itemId);
+            pssrFile.setSubId(subId);
+            pssrFile.setForShort(forShort);
+            pssrFile.setFileUrl(url);
+            pssrFile.setFileName(file.getOriginalFilename());
+            pssrFile.setCreatedate(new Date());
+            pssrFile.setCreaterCode(getUserId().toString());
+            tPssrFileService.insertTPssrFile(pssrFile);
+            return AjaxResult.success(pssrFile.getFileId());
+        }
+        return AjaxResult.error("上传失败,请联系管理员");
+    }
 }

+ 57 - 4
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrMocController.java

@@ -1,6 +1,7 @@
 package com.ruoyi.project.pssr.controller;
 
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.ExcelUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
@@ -8,19 +9,22 @@ import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.project.process.domain.TMoc;
+import com.ruoyi.project.process.service.ITMocService;
 import com.ruoyi.project.pssr.domain.TPssrApprove;
 import com.ruoyi.project.pssr.domain.TPssrMoc;
-import com.ruoyi.project.pssr.domain.TPssrMoc;
 import com.ruoyi.project.pssr.domain.TPssrSubcontent;
 import com.ruoyi.project.pssr.service.ITPssrApproveService;
 import com.ruoyi.project.pssr.service.ITPssrMocService;
 import com.ruoyi.project.pssr.service.ITPssrSubcontentService;
 import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysDictDataService;
 import com.ruoyi.project.system.service.ISysUserService;
 import org.activiti.engine.ProcessEngine;
 import org.activiti.engine.ProcessEngines;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.task.Task;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.Row;
@@ -54,9 +58,15 @@ public class TPssrMocController extends BaseController {
     @Autowired
     private ITPssrSubcontentService tPssrSubcontentService;
 
+    @Autowired
+    private ITMocService tMocService;
+
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private ISysDictDataService sysDictDataService;
+
     /**
      * 查询MOC完成确认清单列表
      */
@@ -114,8 +124,8 @@ public class TPssrMocController extends BaseController {
                 try {
                     SysUser sysUser = sysUserService.selectUserById(Long.valueOf(t.getConfirm1()));
                     SysUser sysUser2 = sysUserService.selectUserById(Long.valueOf(t.getConfirm2()));
-                    String confirm1 =  sysUser.getSignUrl();
-                    String confirm2=  sysUser2.getSignUrl();
+                    String confirm1 = sysUser.getSignUrl();
+                    String confirm2 = sysUser2.getSignUrl();
                     ExcelUtils.insertPicture(wb, sheet, confirm1, row.getRowNum(), 7, 1, 1);
                     ExcelUtils.insertPicture(wb, sheet, confirm2, row.getRowNum(), 8, 1, 1);
                 } catch (NumberFormatException e) {
@@ -162,6 +172,48 @@ public class TPssrMocController extends BaseController {
         return toAjax(tPssrMocService.insertTPssrMoc(tPssrMoc));
     }
 
+    @PreAuthorize("@ss.hasPermi('pssr:moc:add')")
+    @Log(title = "MOC完成确认清单", businessType = BusinessType.INSERT)
+    @PostMapping("/syncMoc")
+    public AjaxResult syncMoc(@RequestBody TPssrMoc tPssrMoc) {
+        if (StringUtils.isEmpty(tPssrMoc.getRemarks())) {
+            tPssrMoc.setRemarks("TRA2025");
+        }
+        TMoc tMoc = new TMoc();
+        tMoc.setTimeliness("1");
+        tMoc.setRemarks(tPssrMoc.getRemarks());
+        for (TMoc moc : tMocService.selectTMocList(tMoc)) {
+            TPssrMoc pssrMoc = new TPssrMoc();
+            pssrMoc.setSubId(tPssrMoc.getSubId());
+            pssrMoc.setRegion(sysDictDataService.selectDictLabel("MOC_AREA", moc.getArea()));
+            pssrMoc.setMocNo(moc.getCompanyMocNo());
+            pssrMoc.setTitle(moc.getTitle());
+            pssrMoc.setDocUpdate(StringUtils.isNotEmpty(moc.getDocUpdate()) ? "Y" : "N");
+            pssrMoc.setTraining(StringUtils.isNotEmpty(moc.getIsTraining()) ? "Y" : "N");
+            pssrMoc.setPssr(StringUtils.isNotEmpty(moc.getIsPssr()) ? "Y" : "N");
+            pssrMoc.setCreaterCode(getUserId().toString());
+            pssrMoc.setCreatedate(new Date());
+            pssrMoc.setApproveStatus(0L);
+            upOrIn(pssrMoc);
+        }
+        return AjaxResult.success();
+    }
+
+    private void upOrIn(TPssrMoc tPssrMoc) {
+        TPssrMoc moc = new TPssrMoc();
+        moc.setMocNo(tPssrMoc.getMocNo());
+        moc.setSubId(tPssrMoc.getSubId());
+        List<TPssrMoc> tPssrMocs = tPssrMocService.selectTPssrMocList(moc);
+        if (CollectionUtils.isNotEmpty(tPssrMocs)) {
+            for (TPssrMoc pssrMoc : tPssrMocs) {
+                tPssrMoc.setId(pssrMoc.getId());
+                tPssrMocService.updateTPssrMoc(tPssrMoc);
+            }
+        } else {
+            tPssrMocService.insertTPssrMoc(tPssrMoc);
+        }
+    }
+
     /**
      * 修改MOC完成确认清单
      */
@@ -169,6 +221,7 @@ public class TPssrMocController extends BaseController {
     @Log(title = "MOC完成确认清单", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody TPssrMoc tPssrMoc) {
+
         return toAjax(tPssrMocService.updateTPssrMoc(tPssrMoc));
     }
 
@@ -243,7 +296,7 @@ public class TPssrMocController extends BaseController {
         }
 
         //无待审批任务结束当前用户流程
-        
+
         // 因为流程关系所以approve一定会有且只有一条数据
         TPssrApprove tPssrApprove = tPssrApproveService.selectTPssrApproveBySubId(tPssrMoc.getSubId());
         TPssrApproveController.handleConfirmApprove(tPssrApprove, getUserId().toString());

+ 21 - 5
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrTorchvocController.java

@@ -2,10 +2,9 @@ package com.ruoyi.project.pssr.controller;
 
 import java.util.*;
 
-import com.ruoyi.project.pssr.domain.TPssrApprove;
-import com.ruoyi.project.pssr.domain.TPssrTorchvoc;
-import com.ruoyi.project.pssr.domain.TPssrSubcontent;
+import com.ruoyi.project.pssr.domain.*;
 import com.ruoyi.project.pssr.service.ITPssrApproveService;
+import com.ruoyi.project.pssr.service.ITPssrBlindService;
 import com.ruoyi.project.pssr.service.ITPssrSubcontentService;
 import org.activiti.engine.ProcessEngine;
 import org.activiti.engine.ProcessEngines;
@@ -49,6 +48,9 @@ public class TPssrTorchvocController extends BaseController
     @Autowired
     private ITPssrSubcontentService tPssrSubcontentService;
 
+    @Autowired
+    private ITPssrBlindService tPssrBlindService;
+
     /**
      * 查询火炬,VOC系统列表
      */
@@ -146,7 +148,14 @@ public class TPssrTorchvocController extends BaseController
                 TPssrTorchvoc item = tPssrTorchvocService.selectTPssrTorchvocById(id);
                 item.setApproveStatus(approveStatus);
                 if (item.getConfirmationDate()==null && queryStatus==3) {
-                    item.setConfirmationDate(date);
+                    if ("火炬系统检修时所加装的盲板已拆除。".equals(item.getContent())){
+                        TPssrBlind tPssrBlind = new TPssrBlind();
+                        tPssrBlind.setSubId(item.getSubId());
+                        TPssrBlind blind = tPssrBlindService.selectTPssrBlindList(tPssrBlind).get(0);
+                        item.setConfirmationDate(blind.getInstallDate());
+                    }else {
+                        item.setConfirmationDate(date);
+                    }
                 }
                 tPssrTorchvocService.updateTPssrTorchvoc(item);
             }
@@ -157,7 +166,14 @@ public class TPssrTorchvocController extends BaseController
             lock.setTorchvocType(tPssrTorchvoc.getTorchvocType());
             for (TPssrTorchvoc item : tPssrTorchvocService.selectTPssrTorchvocList(lock)) {
                 if (item.getConfirmationDate()==null && queryStatus==3) {
-                    item.setConfirmationDate(date);
+                    if ("火炬系统检修时所加装的盲板已拆除。".equals(item.getContent())){
+                        TPssrBlind tPssrBlind = new TPssrBlind();
+                        tPssrBlind.setSubId(item.getSubId());
+                        TPssrBlind blind = tPssrBlindService.selectTPssrBlindList(tPssrBlind).get(0);
+                        item.setConfirmationDate(blind.getInstallDate());
+                    }else {
+                        item.setConfirmationDate(date);
+                    }
                 }
                 item.setApproveStatus(approveStatus);
                 tPssrTorchvocService.updateTPssrTorchvoc(item);

+ 10 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrFile.java

@@ -73,6 +73,16 @@ public class TPssrFile extends BaseEntity
     @Excel(name = "备注")
     private String remarks;
 
+    private String deptName;
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
     public void setFileId(Long fileId)
     {
         this.fileId = fileId;

+ 1 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrLighting.java

@@ -25,6 +25,7 @@ public class TPssrLighting extends BaseEntity
         this.checkContent = checkContent;
         this.createrCode = createrCode;
         this.createdate = createdate;
+        this.approveStatus = 0L;
     }
 
     /** 唯一标识ID */

+ 1 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrPower.java

@@ -26,6 +26,7 @@ public class TPssrPower extends BaseEntity
         this.checkContent = checkContent;
         this.createdate = createdate;
         this.createrCode = createrCode;
+        this.approveStatus = 0L;
     }
 
     /** 唯一标识ID */

+ 1 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrPublic.java

@@ -126,6 +126,7 @@ public class TPssrPublic extends BaseEntity
         this.checkContent = checkContent;
         this.createrCode = createrCode;
         this.createdate = createdate;
+        this.approveStatus = 0L;
     }
 
     public String getConfirm1() {

+ 1 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrTorchvoc.java

@@ -26,6 +26,7 @@ public class TPssrTorchvoc extends BaseEntity
         this.content = content;
         this.createrCode = createrCode;
         this.createdate = createdate;
+        this.approveStatus = 0L;
     }
 
     /** 唯一标识ID */

+ 0 - 1
master/src/main/java/com/ruoyi/project/pssr/mapper/TPssrFileMapper.java

@@ -26,7 +26,6 @@ public interface TPssrFileMapper
      * @param tPssrFile PSSR附件
      * @return PSSR附件集合
      */
-    @DataScope(deptAlias = "d")
     public List<TPssrFile> selectTPssrFileList(TPssrFile tPssrFile);
 
     /**

+ 1 - 1
master/src/main/resources/mybatis/pssr/TPssrBlindMapper.xml

@@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectTPssrBlindVo">
-        select d.blind_type,d.startup_status,d.actual_status,d.satisfy,d.INSTALL_STATUS,d.REMOVE_STATUS,d.id, d.sub_id, d.approve_id, d.unit_no, d.pid_no, d.pipeline_no, d.medium, d.blind_no, d.location, d.iso_type, d.tag_no, d.blind_size, d.pressure_rate, d.pressurized, d.figure, d.install_date, d.in_process, d.in_coordinator, d.in_contractor, d.in_confirm1, d.in_confirm2, d.removed_date, d.re_process, d.re_coordinator, d.re_contractor, d.re_confirm1, d.re_confirm2, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status ,s.dept_name from t_pssr_blind d
+        select u1.NICK_NAME confirm1_name,u2.NICK_NAME confirm2_name,d.blind_type,d.startup_status,d.actual_status,d.satisfy,d.INSTALL_STATUS,d.REMOVE_STATUS,d.id, d.sub_id, d.approve_id, d.unit_no, d.pid_no, d.pipeline_no, d.medium, d.blind_no, d.location, d.iso_type, d.tag_no, d.blind_size, d.pressure_rate, d.pressurized, d.figure, d.install_date, d.in_process, d.in_coordinator, d.in_contractor, d.in_confirm1, d.in_confirm2, d.removed_date, d.re_process, d.re_coordinator, d.re_contractor, d.re_confirm1, d.re_confirm2, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status ,s.dept_name from t_pssr_blind d
       left join sys_dept s on s.dept_id = d.dept_id
       left join sys_user u1 on u1.user_id = d.IN_CONFIRM1
       left join sys_user u2 on u2.user_id = d.IN_CONFIRM2

+ 1 - 1
master/src/main/resources/mybatis/pssr/TPssrTorchvocMapper.xml

@@ -29,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectTPssrTorchvocVo">
-        select u1.nick_name confirm1_name, u2.nick_name confirm2_name,d.id, u1.nick_name confirm1_name, u2.nick_name confirm2_name, d.confirm1, d.confirm2, d.sub_id, d.approve_id, d.torchvoc_type, d.content, d.procedure_status, d.confirm, d.confirmation_date, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status ,s.dept_name from t_pssr_torchvoc d
+        select u1.nick_name confirm1_name, u2.nick_name confirm2_name,d.id, d.confirm1, d.confirm2, d.sub_id, d.approve_id, d.torchvoc_type, d.content, d.procedure_status, d.confirm, d.confirmation_date, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks, d.approve_status ,s.dept_name from t_pssr_torchvoc d
       left join sys_dept s on s.dept_id = d.dept_id
       left join sys_user u1 on u1.user_id = d.CONFIRM1
       left join sys_user u2 on u2.user_id = d.CONFIRM2

+ 9 - 0
ui/src/api/pssr/moc.js

@@ -44,6 +44,15 @@ export function addMoc(data) {
   })
 }
 
+// 同步MOC完成确认清单
+export function syncMoc(data) {
+  return request({
+    url: '/pssr/moc/syncMoc',
+    method: 'post',
+    data: data
+  })
+}
+
 // 修改MOC完成确认清单
 export function updateMoc(data) {
   return request({

+ 1 - 1
ui/src/views/pssr/aboveall/index.vue

@@ -91,7 +91,7 @@
           <span>{{ parseTime(scope.row.drivingTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="审批状态" align="center" prop="approveStatus" :show-overflow-tooltip="true">
+      <el-table-column label="审批状态" align="center" prop="approveStatus">
         <template slot-scope="scope">
           <dict-tag :options="dict.type.pssr_approve_status" :value="scope.row.approveStatus"
                     :show-type="getTagType(scope.row.approveStatus)"/>

+ 16 - 3
ui/src/views/pssr/blind/index.vue

@@ -149,7 +149,7 @@
       <el-table-column label="隔离类型" align="center" prop="isoType" :show-overflow-tooltip="true" width="150"/>
       <el-table-column label="尺寸" align="center" prop="blindSize" :show-overflow-tooltip="true" width="150"/>
       <el-table-column label="压力等级" align="center" prop="pressureRate" :show-overflow-tooltip="true" width="150"/>
-      <el-table-column label="压力等级" align="center" prop="blindType" :show-overflow-tooltip="true" width="150"/>
+      <el-table-column label="盲板类型" align="center" prop="blindType" :show-overflow-tooltip="true" width="150"/>
       <el-table-column label="介质" align="center" prop="medium" :show-overflow-tooltip="true" width="150"/>
       <el-table-column label="“8”字盲板" align="center" prop="figure" :show-overflow-tooltip="true" width="150"/>
       <el-table-column label="PID" align="center" prop="pidNo" :show-overflow-tooltip="true" width="150"/>
@@ -168,6 +168,11 @@
           <span>{{ userFormat(scope.row.inConfirm2) }}</span>
         </template>
       </el-table-column>
+      <el-table-column label="确认时间" align="center" prop="installDate" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.installDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true" width="150"/>
       <el-table-column label="操作" align="center" fixed="right" v-if="isApprove==0" width="120"
                        class-name="small-padding fixed-width">
@@ -311,11 +316,19 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="备注" prop="remarks">
-              <el-input v-model="form.remarks" placeholder="请输入备注"/>
+            <el-form-item label="确认时间" prop="installDate">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.installDate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              placeholder="选择确认时间">
+              </el-date-picker>
             </el-form-item>
           </el-col>
         </el-row>
+        <el-form-item label="备注" prop="remarks">
+          <el-input v-model="form.remarks" placeholder="请输入备注"/>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>

+ 43 - 1
ui/src/views/pssr/lock/index.vue

@@ -178,6 +178,14 @@
       <el-table-column label="操作" align="center" fixed="right" width="120"
                        class-name="small-padding fixed-width">
         <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-folder"
+            v-if="scope.row.approveStatus!=2"
+            @click="handleDoc(scope.row)"
+          >附件
+          </el-button>
           <el-button
             size="mini"
             type="text"
@@ -319,6 +327,12 @@
         <el-button @click="upload.open = false">取 消</el-button>
       </div>
     </el-dialog>
+
+    <!-- 附件对话框 -->
+    <el-dialog :close-on-click-modal="false" v-dialogDrag title="现场照片" :visible.sync="doc.open" width="1000px"
+               append-to-body>
+      <el-image v-for="file in doc.fileList" :key="file.id" :src="file.fileUrl" lazy></el-image>
+    </el-dialog>
   </div>
 </template>
 
@@ -341,6 +355,8 @@ import {listUserNoPage} from "@/api/system/user";
 import {doApprove} from "@/api/pssr/approve";
 import {handleTurnDownMoc} from "@/api/pssr/moc";
 import {listAllLock, listAllLockPid, listLockPid} from "@/api/apply/lock";
+import {allFileList, delCommonfile} from "@/api/common/commonfile";
+import {delFile, listFile} from "@/api/pssr/file";
 
 export default {
   dicts: ['pssr_approve_status'],
@@ -358,6 +374,17 @@ export default {
   },
   data() {
     return {
+      doc: {
+        file: "",
+        // 是否显示弹出层(报告附件)
+        open: false,
+        fileList:[],
+        queryParams: {
+          itemId:null,
+          subId: this.subId,
+          forShort:'sksgfmzt'
+        },
+      },
       isEdit: false,
       userOptions: [],
       lockOptions: [],
@@ -690,7 +717,22 @@ export default {
     // 提交上传文件
     submitFileForm() {
       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 => {
+          item.fileUrl = process.env.VUE_APP_BASE_API + item.fileUrl;
+        });
+      });
+    },
   }
 };
 </script>

+ 36 - 1
ui/src/views/pssr/moc/index.vue

@@ -92,6 +92,17 @@
         >导出
         </el-button>
       </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleSync"
+          v-hasPermi="['pssr:moc:add']"
+          v-if="isApprove==0"
+        >同步MOC
+        </el-button>
+      </el-col>
       <el-col :span="1.5">
         <el-button
           type="success"
@@ -171,7 +182,8 @@
         </template>
       </el-table-column>
       <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
-      <el-table-column label="操作" align="center" v-if="isApprove==0" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" v-if="isApprove==0" width="120"
+                       class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -303,6 +315,7 @@ import {
   handleTurnDownMoc,
   importTemplate,
   listMoc,
+  syncMoc,
   updateMoc
 } from "@/api/pssr/moc";
 import {treeselect} from "@/api/system/dept";
@@ -486,6 +499,28 @@ export default {
       this.open = true;
       this.title = "添加MOC完成确认清单";
     },
+    /** 同步按钮操作 */
+    handleSync() {
+      this.$prompt('请输入MOC筛选条件', '提示', {
+        inputValue: 'TRA2025',
+        confirmButtonText: '同步',
+        cancelButtonText: '取消',
+      }).then(({value}) => {
+        let data = {
+          subId: this.subId,
+          remarks: value
+        }
+        syncMoc(data).then(response => {
+          this.msgSuccess("同步成功");
+          this.getList();
+        });
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '取消同步'
+        });
+      });
+    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();