Prechádzať zdrojové kódy

SAI开项申请流程:申请附件新增、修改、删除

wangggziwen 2 rokov pred
rodič
commit
470ea94c96
17 zmenil súbory, kde vykonal 1326 pridanie a 15 odobranie
  1. 35 2
      master/src/main/java/com/ruoyi/project/production/controller/TSaiApplyController.java
  2. 103 0
      master/src/main/java/com/ruoyi/project/production/controller/TSaiApproveFileController.java
  3. 116 0
      master/src/main/java/com/ruoyi/project/production/controller/TSaiFileController.java
  4. 15 0
      master/src/main/java/com/ruoyi/project/production/domain/TSaiApply.java
  5. 94 0
      master/src/main/java/com/ruoyi/project/production/domain/TSaiApproveFile.java
  6. 151 0
      master/src/main/java/com/ruoyi/project/production/domain/TSaiFile.java
  7. 66 0
      master/src/main/java/com/ruoyi/project/production/mapper/TSaiApproveFileMapper.java
  8. 63 0
      master/src/main/java/com/ruoyi/project/production/mapper/TSaiFileMapper.java
  9. 64 0
      master/src/main/java/com/ruoyi/project/production/service/ITSaiApproveFileService.java
  10. 61 0
      master/src/main/java/com/ruoyi/project/production/service/ITSaiFileService.java
  11. 99 0
      master/src/main/java/com/ruoyi/project/production/service/impl/TSaiApproveFileServiceImpl.java
  12. 93 0
      master/src/main/java/com/ruoyi/project/production/service/impl/TSaiFileServiceImpl.java
  13. 82 0
      master/src/main/resources/mybatis/production/TSaiApproveFileMapper.xml
  14. 105 0
      master/src/main/resources/mybatis/production/TSaiFileMapper.xml
  15. 53 0
      ui/src/api/production/saiApproveFile.js
  16. 53 0
      ui/src/api/production/saiFile.js
  17. 73 13
      ui/src/views/production/apply/all/index.vue

+ 35 - 2
master/src/main/java/com/ruoyi/project/production/controller/TSaiApplyController.java

@@ -14,7 +14,10 @@ import com.ruoyi.project.approve.damain.DevTask;
 import com.ruoyi.project.process.domain.TMoc;
 import com.ruoyi.project.production.controller.vo.SaiApplyExportVO;
 import com.ruoyi.project.production.domain.TSaiApply;
+import com.ruoyi.project.production.domain.TSaiApproveFile;
 import com.ruoyi.project.production.service.ITSaiApplyService;
+import com.ruoyi.project.production.service.ITSaiApproveFileService;
+import com.ruoyi.project.sems.domain.TApproverFile;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysDictData;
 import com.ruoyi.project.system.domain.SysUser;
@@ -71,6 +74,9 @@ public class TSaiApplyController extends BaseController
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
 
+    @Autowired
+    private ITSaiApproveFileService saiApproveFileService;
+
     /**
      * 查询SAI开项管理列表
      */
@@ -271,7 +277,11 @@ public class TSaiApplyController extends BaseController
     @GetMapping(value = "/{saiApplyId}")
     public AjaxResult getInfo(@PathVariable("saiApplyId") Long saiApplyId)
     {
-        return AjaxResult.success(tSaiApplyService.selectTSaiApplyById(saiApplyId));
+        TSaiApply tSaiApply = tSaiApplyService.selectTSaiApplyById(saiApplyId);
+        TSaiApproveFile tSaiApproveFile = new TSaiApproveFile();
+        tSaiApproveFile.setApproveId(saiApplyId);
+        tSaiApply.setFiles(saiApproveFileService.selectTSaiApproveFileList(tSaiApproveFile));
+        return AjaxResult.success(tSaiApply);
     }
 
     /**
@@ -288,7 +298,15 @@ public class TSaiApplyController extends BaseController
         tSaiApply.setDeptId(103L);
         tSaiApply.setApplyStatus(0);
         tSaiApply.setHandler(tSaiApply.getApplicant());
-        return toAjax(tSaiApplyService.insertTSaiApply(tSaiApply));
+        tSaiApplyService.insertTSaiApply(tSaiApply);
+        if (tSaiApply.getFiles().size() > 0) {
+            for (TSaiApproveFile t : tSaiApply.getFiles()
+            ) {
+                t.setApproveId(tSaiApply.getSaiApplyId());
+                saiApproveFileService.save(t);
+            }
+        }
+        return AjaxResult.success();
     }
 
     /**
@@ -456,6 +474,21 @@ public class TSaiApplyController extends BaseController
         tSaiApply.setUpdateBy(userId);
         tSaiApply.setUpdateTime(new Date());
         tSaiApply.setHandler(tSaiApply.getApplicant());
+
+        TSaiApproveFile tSaiApproveFile = new TSaiApproveFile();
+        tSaiApproveFile.setApproveId(tSaiApply.getSaiApplyId());
+        List<TSaiApproveFile> tSaiApproveFiles = saiApproveFileService.selectTSaiApproveFileList(tSaiApproveFile);
+        for (TSaiApproveFile saiApproveFile : tSaiApproveFiles) {
+            saiApproveFileService.deleteTSaiApproveFileById(saiApproveFile.getId());
+        }
+
+        if (tSaiApply.getFiles().size() > 0) {
+            for (TSaiApproveFile t : tSaiApply.getFiles()
+            ) {
+                t.setApproveId(tSaiApply.getSaiApplyId());
+                saiApproveFileService.save(t);
+            }
+        }
         return toAjax(tSaiApplyService.updateTSaiApply(tSaiApply));
     }
 

+ 103 - 0
master/src/main/java/com/ruoyi/project/production/controller/TSaiApproveFileController.java

@@ -0,0 +1,103 @@
+package com.ruoyi.project.production.controller;
+
+import java.util.List;
+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 com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.project.production.domain.TSaiApproveFile;
+import com.ruoyi.project.production.service.ITSaiApproveFileService;
+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;
+
+/**
+ * SAI审批附件Controller
+ *
+ * @author ruoyi
+ * @date 2023-04-06
+ */
+@RestController
+@RequestMapping("/production/saiApproveFile")
+public class TSaiApproveFileController extends BaseController
+{
+    @Autowired
+    private ITSaiApproveFileService tSaiApproveFileService;
+
+    /**
+     * 查询SAI审批附件列表
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiApproveFile:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TSaiApproveFile tSaiApproveFile)
+    {
+        startPage();
+        List<TSaiApproveFile> list = tSaiApproveFileService.selectTSaiApproveFileList(tSaiApproveFile);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出SAI审批附件列表
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiApproveFile:export')")
+    @Log(title = "SAI审批附件", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(TSaiApproveFile tSaiApproveFile)
+    {
+        List<TSaiApproveFile> list = tSaiApproveFileService.selectTSaiApproveFileList(tSaiApproveFile);
+        ExcelUtil<TSaiApproveFile> util = new ExcelUtil<TSaiApproveFile>(TSaiApproveFile.class);
+        return util.exportExcel(list, "saiApproveFile");
+    }
+
+    /**
+     * 获取SAI审批附件详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiApproveFile:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(tSaiApproveFileService.selectTSaiApproveFileById(id));
+    }
+
+    /**
+     * 新增SAI审批附件
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiApproveFile:add')")
+    @Log(title = "SAI审批附件", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TSaiApproveFile tSaiApproveFile)
+    {
+        return toAjax(tSaiApproveFileService.insertTSaiApproveFile(tSaiApproveFile));
+    }
+
+    /**
+     * 修改SAI审批附件
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiApproveFile:edit')")
+    @Log(title = "SAI审批附件", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TSaiApproveFile tSaiApproveFile)
+    {
+        return toAjax(tSaiApproveFileService.updateTSaiApproveFile(tSaiApproveFile));
+    }
+
+    /**
+     * 删除SAI审批附件
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiApproveFile:remove')")
+    @Log(title = "SAI审批附件", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tSaiApproveFileService.deleteTSaiApproveFileByIds(ids));
+    }
+}

+ 116 - 0
master/src/main/java/com/ruoyi/project/production/controller/TSaiFileController.java

@@ -0,0 +1,116 @@
+package com.ruoyi.project.production.controller;
+
+import java.io.IOException;
+import java.util.List;
+
+import com.ruoyi.common.utils.file.FileUploadUtils;
+import com.ruoyi.framework.config.RuoYiConfig;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+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.production.domain.TSaiFile;
+import com.ruoyi.project.production.service.ITSaiFileService;
+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;
+
+/**
+ * SAI文件Controller
+ *
+ * @author ruoyi
+ * @date 2023-04-06
+ */
+@RestController
+@RequestMapping("/production/saiFile")
+public class TSaiFileController extends BaseController
+{
+    @Autowired
+    private ITSaiFileService tSaiFileService;
+
+    /**
+     * 上传
+     */
+    @Log(title = "文件上传", businessType = BusinessType.UPDATE)
+    @PostMapping("/uploadFile")
+    public AjaxResult uploadFile(@RequestParam("file") MultipartFile file) throws IOException
+    {
+        if (!file.isEmpty())
+        {
+            String avatar = FileUploadUtils.upload(RuoYiConfig.getFilePath("/saiFile"), file);
+            return AjaxResult.success(avatar);
+        }
+        return AjaxResult.error("上传异常,请联系管理员");
+    }
+
+    /**
+     * 查询SAI文件列表
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiFile:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TSaiFile tSaiFile)
+    {
+        startPage();
+        List<TSaiFile> list = tSaiFileService.selectTSaiFileList(tSaiFile);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出SAI文件列表
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiFile:export')")
+    @Log(title = "SAI文件", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(TSaiFile tSaiFile)
+    {
+        List<TSaiFile> list = tSaiFileService.selectTSaiFileList(tSaiFile);
+        ExcelUtil<TSaiFile> util = new ExcelUtil<TSaiFile>(TSaiFile.class);
+        return util.exportExcel(list, "saiFile");
+    }
+
+    /**
+     * 获取SAI文件详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiFile:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(tSaiFileService.selectTSaiFileById(id));
+    }
+
+    /**
+     * 新增SAI文件
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiFile:add')")
+    @Log(title = "SAI文件", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TSaiFile tSaiFile)
+    {
+        return toAjax(tSaiFileService.insertTSaiFile(tSaiFile));
+    }
+
+    /**
+     * 修改SAI文件
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiFile:edit')")
+    @Log(title = "SAI文件", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TSaiFile tSaiFile)
+    {
+        return toAjax(tSaiFileService.updateTSaiFile(tSaiFile));
+    }
+
+    /**
+     * 删除SAI文件
+     */
+    @PreAuthorize("@ss.hasPermi('production:saiFile:remove')")
+    @Log(title = "SAI文件", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tSaiFileService.deleteTSaiFileByIds(ids));
+    }
+}

+ 15 - 0
master/src/main/java/com/ruoyi/project/production/domain/TSaiApply.java

@@ -1,9 +1,13 @@
 package com.ruoyi.project.production.domain;
 
 import java.util.Date;
+import java.util.List;
+
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import com.ruoyi.framework.web.domain.BaseEntity;
+import com.ruoyi.project.sems.domain.TApproverFile;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
@@ -127,6 +131,17 @@ public class TSaiApply extends BaseEntity
     /** VC/VE验证条款(其它) */
     private String veItemOther;
 
+    @TableField(exist = false)
+    private List<TSaiApproveFile> files;
+
+    public List<TSaiApproveFile> getFiles() {
+        return files;
+    }
+
+    public void setFiles(List<TSaiApproveFile> files) {
+        this.files = files;
+    }
+
     public String getApplicantName() {
         return applicantName;
     }

+ 94 - 0
master/src/main/java/com/ruoyi/project/production/domain/TSaiApproveFile.java

@@ -0,0 +1,94 @@
+package com.ruoyi.project.production.domain;
+
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.framework.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * SAI审批附件对象 t_sai_approve_file
+ *
+ * @author ruoyi
+ * @date 2023-04-06
+ */
+public class TSaiApproveFile extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long approveId;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String fileName;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String fileUrl;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long fileType;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setApproveId(Long approveId)
+    {
+        this.approveId = approveId;
+    }
+
+    public Long getApproveId()
+    {
+        return approveId;
+    }
+    public void setFileName(String fileName)
+    {
+        this.fileName = fileName;
+    }
+
+    public String getFileName()
+    {
+        return fileName;
+    }
+    public void setFileUrl(String fileUrl)
+    {
+        this.fileUrl = fileUrl;
+    }
+
+    public String getFileUrl()
+    {
+        return fileUrl;
+    }
+    public void setFileType(Long fileType)
+    {
+        this.fileType = fileType;
+    }
+
+    public Long getFileType()
+    {
+        return fileType;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("approveId", getApproveId())
+            .append("fileName", getFileName())
+            .append("fileUrl", getFileUrl())
+            .append("createTime", getCreateTime())
+            .append("fileType", getFileType())
+            .toString();
+    }
+}

+ 151 - 0
master/src/main/java/com/ruoyi/project/production/domain/TSaiFile.java

@@ -0,0 +1,151 @@
+package com.ruoyi.project.production.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.framework.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * SAI文件对象 t_sai_file
+ *
+ * @author ruoyi
+ * @date 2023-04-06
+ */
+public class TSaiFile extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String fileName;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String fileUrl;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long fileType;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long devType;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Date createrDate;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long createrCode;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long deptId;
+
+    /** $column.columnComment */
+    private Long delFlag;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setFileName(String fileName)
+    {
+        this.fileName = fileName;
+    }
+
+    public String getFileName()
+    {
+        return fileName;
+    }
+    public void setFileUrl(String fileUrl)
+    {
+        this.fileUrl = fileUrl;
+    }
+
+    public String getFileUrl()
+    {
+        return fileUrl;
+    }
+    public void setFileType(Long fileType)
+    {
+        this.fileType = fileType;
+    }
+
+    public Long getFileType()
+    {
+        return fileType;
+    }
+    public void setDevType(Long devType)
+    {
+        this.devType = devType;
+    }
+
+    public Long getDevType()
+    {
+        return devType;
+    }
+    public void setCreaterDate(Date createrDate)
+    {
+        this.createrDate = createrDate;
+    }
+
+    public Date getCreaterDate()
+    {
+        return createrDate;
+    }
+    public void setCreaterCode(Long createrCode)
+    {
+        this.createrCode = createrCode;
+    }
+
+    public Long getCreaterCode()
+    {
+        return createrCode;
+    }
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+    public void setDelFlag(Long delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Long getDelFlag()
+    {
+        return delFlag;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("fileName", getFileName())
+            .append("fileUrl", getFileUrl())
+            .append("fileType", getFileType())
+            .append("devType", getDevType())
+            .append("createrDate", getCreaterDate())
+            .append("createrCode", getCreaterCode())
+            .append("remark", getRemark())
+            .append("deptId", getDeptId())
+            .append("delFlag", getDelFlag())
+            .toString();
+    }
+}

+ 66 - 0
master/src/main/java/com/ruoyi/project/production/mapper/TSaiApproveFileMapper.java

@@ -0,0 +1,66 @@
+package com.ruoyi.project.production.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
+import com.ruoyi.project.production.domain.TSaiApproveFile;
+import com.ruoyi.project.sems.domain.TApproverFile;
+
+/**
+ * SAI审批附件Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2023-04-06
+ */
+public interface TSaiApproveFileMapper extends BaseMapper<TSaiApproveFile>
+{
+    /**
+     * 查询SAI审批附件
+     * 
+     * @param id SAI审批附件ID
+     * @return SAI审批附件
+     */
+    public TSaiApproveFile selectTSaiApproveFileById(Long id);
+
+    /**
+     * 查询SAI审批附件列表
+     * 
+     * @param tSaiApproveFile SAI审批附件
+     * @return SAI审批附件集合
+     */
+    @DataScope(deptAlias = "d")
+    public List<TSaiApproveFile> selectTSaiApproveFileList(TSaiApproveFile tSaiApproveFile);
+
+    /**
+     * 新增SAI审批附件
+     * 
+     * @param tSaiApproveFile SAI审批附件
+     * @return 结果
+     */
+    public int insertTSaiApproveFile(TSaiApproveFile tSaiApproveFile);
+
+    /**
+     * 修改SAI审批附件
+     * 
+     * @param tSaiApproveFile SAI审批附件
+     * @return 结果
+     */
+    public int updateTSaiApproveFile(TSaiApproveFile tSaiApproveFile);
+
+    /**
+     * 删除SAI审批附件
+     * 
+     * @param id SAI审批附件ID
+     * @return 结果
+     */
+    public int deleteTSaiApproveFileById(Long id);
+
+    /**
+     * 批量删除SAI审批附件
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteTSaiApproveFileByIds(Long[] ids);
+}

+ 63 - 0
master/src/main/java/com/ruoyi/project/production/mapper/TSaiFileMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.project.production.mapper;
+
+import java.util.List;
+import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
+import com.ruoyi.project.production.domain.TSaiFile;
+
+/**
+ * SAI文件Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2023-04-06
+ */
+public interface TSaiFileMapper 
+{
+    /**
+     * 查询SAI文件
+     * 
+     * @param id SAI文件ID
+     * @return SAI文件
+     */
+    public TSaiFile selectTSaiFileById(Long id);
+
+    /**
+     * 查询SAI文件列表
+     * 
+     * @param tSaiFile SAI文件
+     * @return SAI文件集合
+     */
+    @DataScope(deptAlias = "d")
+    public List<TSaiFile> selectTSaiFileList(TSaiFile tSaiFile);
+
+    /**
+     * 新增SAI文件
+     * 
+     * @param tSaiFile SAI文件
+     * @return 结果
+     */
+    public int insertTSaiFile(TSaiFile tSaiFile);
+
+    /**
+     * 修改SAI文件
+     * 
+     * @param tSaiFile SAI文件
+     * @return 结果
+     */
+    public int updateTSaiFile(TSaiFile tSaiFile);
+
+    /**
+     * 删除SAI文件
+     * 
+     * @param id SAI文件ID
+     * @return 结果
+     */
+    public int deleteTSaiFileById(Long id);
+
+    /**
+     * 批量删除SAI文件
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteTSaiFileByIds(Long[] ids);
+}

+ 64 - 0
master/src/main/java/com/ruoyi/project/production/service/ITSaiApproveFileService.java

@@ -0,0 +1,64 @@
+package com.ruoyi.project.production.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.production.domain.TSaiApproveFile;
+import com.ruoyi.project.sems.domain.TApproverFile;
+
+/**
+ * SAI审批附件Service接口
+ * 
+ * @author ruoyi
+ * @date 2023-04-06
+ */
+public interface ITSaiApproveFileService extends IService<TSaiApproveFile>
+{
+    /**
+     * 查询SAI审批附件
+     * 
+     * @param id SAI审批附件ID
+     * @return SAI审批附件
+     */
+    public TSaiApproveFile selectTSaiApproveFileById(Long id);
+
+    /**
+     * 查询SAI审批附件列表
+     * 
+     * @param tSaiApproveFile SAI审批附件
+     * @return SAI审批附件集合
+     */
+    public List<TSaiApproveFile> selectTSaiApproveFileList(TSaiApproveFile tSaiApproveFile);
+
+    /**
+     * 新增SAI审批附件
+     * 
+     * @param tSaiApproveFile SAI审批附件
+     * @return 结果
+     */
+    public int insertTSaiApproveFile(TSaiApproveFile tSaiApproveFile);
+
+    /**
+     * 修改SAI审批附件
+     * 
+     * @param tSaiApproveFile SAI审批附件
+     * @return 结果
+     */
+    public int updateTSaiApproveFile(TSaiApproveFile tSaiApproveFile);
+
+    /**
+     * 批量删除SAI审批附件
+     * 
+     * @param ids 需要删除的SAI审批附件ID
+     * @return 结果
+     */
+    public int deleteTSaiApproveFileByIds(Long[] ids);
+
+    /**
+     * 删除SAI审批附件信息
+     * 
+     * @param id SAI审批附件ID
+     * @return 结果
+     */
+    public int deleteTSaiApproveFileById(Long id);
+}

+ 61 - 0
master/src/main/java/com/ruoyi/project/production/service/ITSaiFileService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.project.production.service;
+
+import java.util.List;
+import com.ruoyi.project.production.domain.TSaiFile;
+
+/**
+ * SAI文件Service接口
+ * 
+ * @author ruoyi
+ * @date 2023-04-06
+ */
+public interface ITSaiFileService 
+{
+    /**
+     * 查询SAI文件
+     * 
+     * @param id SAI文件ID
+     * @return SAI文件
+     */
+    public TSaiFile selectTSaiFileById(Long id);
+
+    /**
+     * 查询SAI文件列表
+     * 
+     * @param tSaiFile SAI文件
+     * @return SAI文件集合
+     */
+    public List<TSaiFile> selectTSaiFileList(TSaiFile tSaiFile);
+
+    /**
+     * 新增SAI文件
+     * 
+     * @param tSaiFile SAI文件
+     * @return 结果
+     */
+    public int insertTSaiFile(TSaiFile tSaiFile);
+
+    /**
+     * 修改SAI文件
+     * 
+     * @param tSaiFile SAI文件
+     * @return 结果
+     */
+    public int updateTSaiFile(TSaiFile tSaiFile);
+
+    /**
+     * 批量删除SAI文件
+     * 
+     * @param ids 需要删除的SAI文件ID
+     * @return 结果
+     */
+    public int deleteTSaiFileByIds(Long[] ids);
+
+    /**
+     * 删除SAI文件信息
+     * 
+     * @param id SAI文件ID
+     * @return 结果
+     */
+    public int deleteTSaiFileById(Long id);
+}

+ 99 - 0
master/src/main/java/com/ruoyi/project/production/service/impl/TSaiApproveFileServiceImpl.java

@@ -0,0 +1,99 @@
+package com.ruoyi.project.production.service.impl;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.project.sems.domain.TApproverFile;
+import com.ruoyi.project.sems.mapper.TApproverFileMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.project.production.mapper.TSaiApproveFileMapper;
+import com.ruoyi.project.production.domain.TSaiApproveFile;
+import com.ruoyi.project.production.service.ITSaiApproveFileService;
+
+/**
+ * SAI审批附件Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-04-06
+ */
+@Service
+public class TSaiApproveFileServiceImpl extends ServiceImpl<TSaiApproveFileMapper, TSaiApproveFile> implements ITSaiApproveFileService
+{
+    @Autowired
+    private TSaiApproveFileMapper tSaiApproveFileMapper;
+
+    /**
+     * 查询SAI审批附件
+     *
+     * @param id SAI审批附件ID
+     * @return SAI审批附件
+     */
+    @Override
+    public TSaiApproveFile selectTSaiApproveFileById(Long id)
+    {
+        return tSaiApproveFileMapper.selectTSaiApproveFileById(id);
+    }
+
+    /**
+     * 查询SAI审批附件列表
+     *
+     * @param tSaiApproveFile SAI审批附件
+     * @return SAI审批附件
+     */
+    @Override
+    public List<TSaiApproveFile> selectTSaiApproveFileList(TSaiApproveFile tSaiApproveFile)
+    {
+        return tSaiApproveFileMapper.selectTSaiApproveFileList(tSaiApproveFile);
+    }
+
+    /**
+     * 新增SAI审批附件
+     *
+     * @param tSaiApproveFile SAI审批附件
+     * @return 结果
+     */
+    @Override
+    public int insertTSaiApproveFile(TSaiApproveFile tSaiApproveFile)
+    {
+        tSaiApproveFile.setCreateTime(DateUtils.getNowDate());
+        return tSaiApproveFileMapper.insertTSaiApproveFile(tSaiApproveFile);
+    }
+
+    /**
+     * 修改SAI审批附件
+     *
+     * @param tSaiApproveFile SAI审批附件
+     * @return 结果
+     */
+    @Override
+    public int updateTSaiApproveFile(TSaiApproveFile tSaiApproveFile)
+    {
+        return tSaiApproveFileMapper.updateTSaiApproveFile(tSaiApproveFile);
+    }
+
+    /**
+     * 批量删除SAI审批附件
+     *
+     * @param ids 需要删除的SAI审批附件ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTSaiApproveFileByIds(Long[] ids)
+    {
+        return tSaiApproveFileMapper.deleteTSaiApproveFileByIds(ids);
+    }
+
+    /**
+     * 删除SAI审批附件信息
+     *
+     * @param id SAI审批附件ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTSaiApproveFileById(Long id)
+    {
+        return tSaiApproveFileMapper.deleteTSaiApproveFileById(id);
+    }
+}

+ 93 - 0
master/src/main/java/com/ruoyi/project/production/service/impl/TSaiFileServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.project.production.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.project.production.mapper.TSaiFileMapper;
+import com.ruoyi.project.production.domain.TSaiFile;
+import com.ruoyi.project.production.service.ITSaiFileService;
+
+/**
+ * SAI文件Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-04-06
+ */
+@Service
+public class TSaiFileServiceImpl implements ITSaiFileService
+{
+    @Autowired
+    private TSaiFileMapper tSaiFileMapper;
+
+    /**
+     * 查询SAI文件
+     *
+     * @param id SAI文件ID
+     * @return SAI文件
+     */
+    @Override
+    public TSaiFile selectTSaiFileById(Long id)
+    {
+        return tSaiFileMapper.selectTSaiFileById(id);
+    }
+
+    /**
+     * 查询SAI文件列表
+     *
+     * @param tSaiFile SAI文件
+     * @return SAI文件
+     */
+    @Override
+    public List<TSaiFile> selectTSaiFileList(TSaiFile tSaiFile)
+    {
+        return tSaiFileMapper.selectTSaiFileList(tSaiFile);
+    }
+
+    /**
+     * 新增SAI文件
+     *
+     * @param tSaiFile SAI文件
+     * @return 结果
+     */
+    @Override
+    public int insertTSaiFile(TSaiFile tSaiFile)
+    {
+        return tSaiFileMapper.insertTSaiFile(tSaiFile);
+    }
+
+    /**
+     * 修改SAI文件
+     *
+     * @param tSaiFile SAI文件
+     * @return 结果
+     */
+    @Override
+    public int updateTSaiFile(TSaiFile tSaiFile)
+    {
+        return tSaiFileMapper.updateTSaiFile(tSaiFile);
+    }
+
+    /**
+     * 批量删除SAI文件
+     *
+     * @param ids 需要删除的SAI文件ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTSaiFileByIds(Long[] ids)
+    {
+        return tSaiFileMapper.deleteTSaiFileByIds(ids);
+    }
+
+    /**
+     * 删除SAI文件信息
+     *
+     * @param id SAI文件ID
+     * @return 结果
+     */
+    @Override
+    public int deleteTSaiFileById(Long id)
+    {
+        return tSaiFileMapper.deleteTSaiFileById(id);
+    }
+}

+ 82 - 0
master/src/main/resources/mybatis/production/TSaiApproveFileMapper.xml

@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.production.mapper.TSaiApproveFileMapper">
+    
+    <resultMap type="TSaiApproveFile" id="TSaiApproveFileResult">
+        <result property="id"    column="id"    />
+        <result property="approveId"    column="approve_id"    />
+        <result property="fileName"    column="file_name"    />
+        <result property="fileUrl"    column="file_url"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="fileType"    column="file_type"    />
+        <result property="deptName" column="dept_name" />
+    </resultMap>
+
+    <sql id="selectTSaiApproveFileVo">
+        select d.id, d.approve_id, d.file_name, d.file_url, d.create_time, d.file_type from t_sai_approve_file d
+    </sql>
+
+    <select id="selectTSaiApproveFileList" parameterType="TSaiApproveFile" resultMap="TSaiApproveFileResult">
+        <include refid="selectTSaiApproveFileVo"/>
+        <where>  
+            <if test="approveId != null "> and approve_id = #{approveId}</if>
+            <if test="fileName != null  and fileName != ''"> and file_name like concat(concat('%', #{fileName}), '%')</if>
+            <if test="fileUrl != null  and fileUrl != ''"> and file_url = #{fileUrl}</if>
+            <if test="fileType != null "> and file_type = #{fileType}</if>
+        </where>
+    </select>
+    
+    <select id="selectTSaiApproveFileById" parameterType="Long" resultMap="TSaiApproveFileResult">
+        <include refid="selectTSaiApproveFileVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTSaiApproveFile" parameterType="TSaiApproveFile">
+        <selectKey keyProperty="id" resultType="long" order="BEFORE">
+            SELECT seq_t_sai_approve_file.NEXTVAL as id FROM DUAL
+        </selectKey>
+        insert into t_sai_approve_file
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="approveId != null">approve_id,</if>
+            <if test="fileName != null">file_name,</if>
+            <if test="fileUrl != null">file_url,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="fileType != null">file_type,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="approveId != null">#{approveId},</if>
+            <if test="fileName != null">#{fileName},</if>
+            <if test="fileUrl != null">#{fileUrl},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="fileType != null">#{fileType},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTSaiApproveFile" parameterType="TSaiApproveFile">
+        update t_sai_approve_file
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="approveId != null">approve_id = #{approveId},</if>
+            <if test="fileName != null">file_name = #{fileName},</if>
+            <if test="fileUrl != null">file_url = #{fileUrl},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="fileType != null">file_type = #{fileType},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deleteTSaiApproveFileById" parameterType="Long">
+        delete from  t_sai_approve_file where id = #{id}
+    </update>
+
+    <update id="deleteTSaiApproveFileByIds" parameterType="String">
+        delete from t_sai_approve_file where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+    
+</mapper>

+ 105 - 0
master/src/main/resources/mybatis/production/TSaiFileMapper.xml

@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.production.mapper.TSaiFileMapper">
+    
+    <resultMap type="TSaiFile" id="TSaiFileResult">
+        <result property="id"    column="id"    />
+        <result property="fileName"    column="file_name"    />
+        <result property="fileUrl"    column="file_url"    />
+        <result property="fileType"    column="file_type"    />
+        <result property="devType"    column="dev_type"    />
+        <result property="createrDate"    column="creater_date"    />
+        <result property="createrCode"    column="creater_code"    />
+        <result property="remark"    column="remark"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="deptName" column="dept_name" />
+    </resultMap>
+
+    <sql id="selectTSaiFileVo">
+        select d.id, d.file_name, d.file_url, d.file_type, d.dev_type, d.creater_date, d.creater_code, d.remark, d.dept_id, d.del_flag ,s.dept_name from t_sai_file d
+      left join sys_dept s on s.dept_id = d.dept_id
+    </sql>
+
+    <select id="selectTSaiFileList" parameterType="TSaiFile" resultMap="TSaiFileResult">
+        <include refid="selectTSaiFileVo"/>
+        <where>  
+            <if test="fileName != null  and fileName != ''"> and file_name like concat(concat('%', #{fileName}), '%')</if>
+            <if test="fileUrl != null  and fileUrl != ''"> and file_url = #{fileUrl}</if>
+            <if test="fileType != null "> and file_type = #{fileType}</if>
+            <if test="devType != null "> and dev_type = #{devType}</if>
+            <if test="createrDate != null "> and creater_date = #{createrDate}</if>
+            <if test="createrCode != null "> and creater_code = #{createrCode}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+            and d.del_flag = 0
+        </where>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+    </select>
+    
+    <select id="selectTSaiFileById" parameterType="Long" resultMap="TSaiFileResult">
+        <include refid="selectTSaiFileVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTSaiFile" parameterType="TSaiFile">
+        <selectKey keyProperty="id" resultType="long" order="BEFORE">
+            SELECT seq_t_sai_file.NEXTVAL as id FROM DUAL
+        </selectKey>
+        insert into t_sai_file
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="fileName != null">file_name,</if>
+            <if test="fileUrl != null">file_url,</if>
+            <if test="fileType != null">file_type,</if>
+            <if test="devType != null">dev_type,</if>
+            <if test="createrDate != null">creater_date,</if>
+            <if test="createrCode != null">creater_code,</if>
+            <if test="remark != null">remark,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="delFlag != null">del_flag,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="fileName != null">#{fileName},</if>
+            <if test="fileUrl != null">#{fileUrl},</if>
+            <if test="fileType != null">#{fileType},</if>
+            <if test="devType != null">#{devType},</if>
+            <if test="createrDate != null">#{createrDate},</if>
+            <if test="createrCode != null">#{createrCode},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTSaiFile" parameterType="TSaiFile">
+        update t_sai_file
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="fileName != null">file_name = #{fileName},</if>
+            <if test="fileUrl != null">file_url = #{fileUrl},</if>
+            <if test="fileType != null">file_type = #{fileType},</if>
+            <if test="devType != null">dev_type = #{devType},</if>
+            <if test="createrDate != null">creater_date = #{createrDate},</if>
+            <if test="createrCode != null">creater_code = #{createrCode},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="deleteTSaiFileById" parameterType="Long">
+        update t_sai_file set del_flag = 2 where id = #{id}
+    </update>
+
+    <update id="deleteTSaiFileByIds" parameterType="String">
+        update t_sai_file set del_flag = 2 where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+    
+</mapper>

+ 53 - 0
ui/src/api/production/saiApproveFile.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询SAI审批附件列表
+export function listFile(query) {
+  return request({
+    url: '/production/saiApproveFile/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询SAI审批附件详细
+export function getFile(id) {
+  return request({
+    url: '/production/saiApproveFile/' + id,
+    method: 'get'
+  })
+}
+
+// 新增SAI审批附件
+export function addFile(data) {
+  return request({
+    url: '/production/saiApproveFile',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改SAI审批附件
+export function updateFile(data) {
+  return request({
+    url: '/production/saiApproveFile',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除SAI审批附件
+export function delFile(id) {
+  return request({
+    url: '/production/saiApproveFile/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出SAI审批附件
+export function exportFile(query) {
+  return request({
+    url: '/production/saiApproveFile/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
ui/src/api/production/saiFile.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询SAI审批附件列表
+export function listFile(query) {
+  return request({
+    url: '/production/saiFile/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询SAI审批附件详细
+export function getFile(id) {
+  return request({
+    url: '/production/saiFile/' + id,
+    method: 'get'
+  })
+}
+
+// 新增SAI审批附件
+export function addFile(data) {
+  return request({
+    url: '/production/saiFile',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改SAI审批附件
+export function updateFile(data) {
+  return request({
+    url: '/production/saiFile',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除SAI审批附件
+export function delFile(id) {
+  return request({
+    url: '/production/saiFile/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出SAI审批附件
+export function exportFile(query) {
+  return request({
+    url: '/production/saiFile/export',
+    method: 'get',
+    params: query
+  })
+}

+ 73 - 13
ui/src/views/production/apply/all/index.vue

@@ -211,12 +211,12 @@
               v-hasPermi="['production:apply:edit']"
               icon="el-icon-s-claim"
             >提交申请</el-button>
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-document"
-              @click="handleDoc(scope.row)"
-            >上传附件</el-button>
+            <!--<el-button-->
+              <!--size="mini"-->
+              <!--type="text"-->
+              <!--icon="el-icon-document"-->
+              <!--@click="handleDoc(scope.row)"-->
+            <!--&gt;上传附件</el-button>-->
             <el-button
               size="mini"
               type="text"
@@ -327,6 +327,29 @@
               </el-select>
             </el-form-item>
           </el-descriptions-item>
+          <el-descriptions-item label="附件" :span="3">
+            <el-form-item label="" prop="fileUrl">
+              <el-upload
+                ref="doc"
+                :limit="5"
+                :headers="doc.headers"
+                :action="doc.url"
+                :disabled="doc.isUploading"
+                :on-progress="handleFileDocProgress"
+                :on-success="handleFileDocSuccess"
+                :on-remove="handleRemove"
+                :auto-upload="true"
+                :file-list="fileList"
+                drag
+              >
+                <i class="el-icon-upload"></i>
+                <div class="el-upload__text">
+                  {{ $t('将文件拖到此处,或') }}
+                  <em>{{ $t('点击上传') }}</em>
+                </div>
+              </el-upload>
+            </el-form-item>
+          </el-descriptions-item>
           <el-descriptions-item label="登记时间">
             <el-form-item prop="applyDate">
               <el-date-picker
@@ -342,7 +365,8 @@
         </el-descriptions>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="handleSaveAndSubmit">提 交</el-button>
+        <el-button @click="submitForm">保 存</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -593,6 +617,7 @@ export default {
       }
     };
     return {
+      fileList: [],
       // 统计至SAI检查台账的数据
       saiList: [],
       // 是显示用统计至SAI检查台账对话框
@@ -622,7 +647,7 @@ export default {
         // 设置上传的请求头部
         headers: { Authorization: "Bearer " + getToken() },
         // 上传的地址
-        url: process.env.VUE_APP_BASE_API + "/common/commonfile/uploadFile",
+        url: process.env.VUE_APP_BASE_API + "/production/saiFile/uploadFile",
         commonfileList: null,
         queryParams: {
           pId: null,
@@ -852,7 +877,6 @@ export default {
     },
     getFileList() {
       allFileList(this.doc.queryParams).then(response => {
-        console.log(response);
         this.doc.commonfileList = response;
       });
     },
@@ -861,11 +885,24 @@ export default {
       this.doc.file = file;
       this.doc.isUploading = true;
     },
-    /** 附件上传成功处理 */
+    // /** 附件上传成功处理 */
+    // handleFileDocSuccess(response, file, fileList) {
+    //   this.doc.isUploading = false;
+    //   this.$alert(response.msg, this.$t('导入结果'), { dangerouslyUseHTMLString: true });
+    //   this.getFileList()
+    // },
+    //附件上传成功处理
     handleFileDocSuccess(response, file, fileList) {
       this.doc.isUploading = false;
-      this.$alert(response.msg, this.$t('导入结果'), { dangerouslyUseHTMLString: true });
-      this.getFileList()
+      this.fileList = fileList
+      if (response.code == 200){
+        this.$alert(this.$t('导入成功'), this.$t('导入结果'), { dangerouslyUseHTMLString: true });
+      }else {
+        this.$alert(response.msg, this.$t('导入结果'), { dangerouslyUseHTMLString: true });
+      }
+    },
+    handleRemove (file, fileList) {
+      this.fileList = fileList
     },
     /** 删除按钮操作 */
     handleDeleteDoc(row) {
@@ -1202,6 +1239,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      this.fileList = [];
       this.open = true;
       this.title = "添加SAI开项申请";
       // 加载当前登录员工信息
@@ -1221,12 +1259,32 @@ export default {
         if (this.form.unsafeAction != null && this.form.unsafeAction != "") {
           this.form.unsafeAction = this.form.unsafeAction.toString();
         }
+        this.fileList = [];
+        if (this.form.files.length > 0) {
+          console.log(this.form.files);
+          for (let i = 0; i < this.form.files.length; i++) {
+            let obj = {}
+            obj.name = this.form.files[i].fileName
+            obj.response = {};
+            obj.response.msg = this.form.files[i].fileUrl
+            this.fileList.push(obj)
+          }
+        }
         this.open = true;
         this.title = "修改SAI开项申请";
       });
     },
-    /** 新增/修改提交按钮 */
+    /** 新增/修改保存按钮 */
     submitForm() {
+      this.form.files = []
+      if (this.fileList.length > 0) {
+        for (let i = 0; i < this.fileList.length; i++) {
+          let obj = {}
+          obj.fileName = this.fileList[i].name
+          obj.fileUrl = this.fileList[i].response.msg
+          this.form.files.push(obj)
+        }
+      }
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.saiApplyId != null) {
@@ -1245,6 +1303,8 @@ export default {
         }
       });
     },
+    /** 新增/修改提交按钮 */
+    handleSaveAndSubmit() {},
     /** 统计至SAI检查台账提交按钮 */
     submitSaiForm() {
       for (let i = 0; i < this.saiList.length; i++) {