Ver código fonte

文件上传

sangwenwei 1 ano atrás
pai
commit
1e4268641a

+ 13 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ProjectPaperFiling.java

@@ -1,9 +1,12 @@
 package com.jeeplus.modules.ruralprojectrecords.entity;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.ActEntity;
 import com.jeeplus.modules.sys.entity.Office;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 
 import java.util.Date;
+import java.util.List;
 
 public class ProjectPaperFiling extends ActEntity<ProjectPaperFiling> {
     private Integer status;  //状态
@@ -20,6 +23,8 @@ public class ProjectPaperFiling extends ActEntity<ProjectPaperFiling> {
     private String view;
     private Date auditPassDate; //审核通过日期
 
+    private List<WorkClientAttachment> workAttachments ;  //备考表附件
+
     public Integer getStatus() {
         return status;
     }
@@ -115,5 +120,13 @@ public class ProjectPaperFiling extends ActEntity<ProjectPaperFiling> {
     public void setAuditPassDate(Date auditPassDate) {
         this.auditPassDate = auditPassDate;
     }
+
+    public List<WorkClientAttachment> getWorkAttachments() {
+        return workAttachments;
+    }
+
+    public void setWorkAttachments(List<WorkClientAttachment> workAttachments) {
+        this.workAttachments = workAttachments;
+    }
 }
 

+ 67 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/ProjectPaperFilingService.java

@@ -2,9 +2,14 @@ package com.jeeplus.modules.ruralprojectrecords.service;
 
 import com.google.common.collect.Maps;
 import com.jeeplus.common.service.CrudService;
+import com.jeeplus.common.utils.FreemarkerUtil;
+import com.jeeplus.common.utils.ResponseUtil;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.projectAccessory.dao.ProjectTemplateDao;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
 import com.jeeplus.modules.ruralprojectrecords.dao.ProjectPaperFilingDao;
 import com.jeeplus.modules.ruralprojectrecords.entity.ProjectPaperFiling;
@@ -12,8 +17,11 @@ import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
 import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.service.OfficeService;
+import com.jeeplus.modules.sys.service.WorkattachmentService;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.utils.SftpClientUtil;
 import com.jeeplus.modules.workactivity.dao.WorkActivityProcessDao;
 import com.jeeplus.modules.workactivity.entity.Activity;
 import com.jeeplus.modules.workactivity.entity.WorkActivityProcess;
@@ -21,17 +29,25 @@ import com.jeeplus.modules.workactivity.service.ActivityService;
 import com.jeeplus.modules.workactivity.service.WorkActivityProcessService;
 import com.jeeplus.modules.workactivitymenu.entity.WorkActivityMenu;
 import com.jeeplus.modules.workactivitymenu.service.WorkActivityMenuService;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workprojectnotify.entity.WorkProjectNotify;
 import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
 import com.jeeplus.modules.workprojectnotify.util.UtilNotify;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
 import org.activiti.engine.IdentityService;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.runtime.ProcessInstance;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.util.*;
 
 /**
@@ -62,6 +78,11 @@ public class ProjectPaperFilingService extends CrudService<ProjectPaperFilingDao
     private ActivityService activityService;
     @Autowired
     private WorkActivityProcessDao workActivityProcessDao;
+    @Autowired
+    private ProjectTemplateDao projectTemplateDao;
+    @Autowired
+    private WorkattachmentService workattachmentService;
+
     @Override
     public ProjectPaperFiling get(String id) {
         return super.get(id);
@@ -596,8 +617,54 @@ public class ProjectPaperFilingService extends CrudService<ProjectPaperFilingDao
             }
         }
         int i=dao.update(paperFiling);
+
+        //将备考表保存到附件中
+        if (CollectionUtils.isNotEmpty(paperFiling.getWorkAttachments())){
+            for (WorkClientAttachment workAttachment : paperFiling.getWorkAttachments()) {
+                //查询其他资料对应附件结构信息
+                ProjectTemplateInfo templateInfo = projectTemplateDao.getProjectTemplateInfoByName("其他资料");
+                //获取当前时间戳
+                long time = new Date().getTime();
+                File file1 = new File(workAttachment.getAttachmentName());
+                FileOutputStream fileOutputStream = new FileOutputStream(file1);
+                File docFile = new File(file1,workAttachment.getAttachmentName());
+                String filePath = ResponseUtil.returnViewResponse(workAttachment.getAttachmentName(), docFile);
+                //本地备考表信息生成file文件
+                File file = new File(filePath);
+                //File转MultipartFile文件
+                SftpClientUtil sftpClientUtil = new SftpClientUtil();
+                MultipartFile mFile = sftpClientUtil.transformFile(docFile);
+                try {
+                    //获取上传阿里云盘文件地址
+                    String uploadPath = ResponseUtil.uploadOss(mFile, "referenceContent");
+                    if(StringUtils.isNotBlank(uploadPath)){
+                        //将备考表添加到附件中
+                        Workattachment workattachment = new Workattachment();
+                        workattachment.setAttachmentId(templateInfo.getId());
+                        workattachment.setProjectId(paperFiling.getId());
+                        workattachment.setUrl(workAttachment.getUrl());
+                        workattachment.setType(workAttachment.getType());
+                        workattachment.setAttachmentFlag(workAttachment.getAttachmentFlag());
+                        workattachment.setAttachmentName(workAttachment.getAttachmentName());
+                        workattachment.setAttachmentUser(UserUtils.getUser().getId());
+                        workattachmentService.insertOnWorkAttachment(workattachment);
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }finally {
+                    //删除本地文件
+                    if (!file.isDirectory()) {
+                        file.delete();
+                    }
+                }
+
+            }
+        }
+
         return "保存审核意见成功!";
     }
+
+
     @Transactional(readOnly = false)
     public void update(ProjectPaperFiling paperFiling){
         paperFiling.preUpdate();

+ 16 - 11
src/main/webapp/webpage/modules/projectPaperFiling/projectPaperFilingAudit.jsp

@@ -14,6 +14,8 @@
 				var fileNum =  $("#fileNum").val();
 				var fileNumTow =  $("#fileNumTow").val();
 				var ss= document.getElementById("iframe").contentWindow.document.getElementById("opinion").value
+				var length=document.getElementById("file_reference");
+				var rows = length.rows.length;
 				$("#opinion").val(ss);
                 if(obj == 1) {
                     $("#flag").val("yes");
@@ -134,27 +136,29 @@
 			}
 		});
 
-        function insertTitle(tValue){
-            var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+        function insertReferenceTitle(tValue){
+            var files = $("#reference_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
             var attachmentId = $("#id").val();
-            var attachmentFlag = "82";
+            var attachmentFlag = "reference";
             console.log(file);
             var timestamp=new Date().getTime();
 
-				var storeAs = "projectRecods";
+				var storeAs = "referenceContent";
             var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
-            var divId = "_attachment";
+            var divId = "_reference";
             $("#addFile"+divId).show();
             multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,0);}
         }
 
         function addFile() {
-            $("#attachment_file").click();
+            $("#reference_file").click();
         }
 
-        function addRefence() {
-			$()
-		}
+		$(function() {
+			$("#reference_btn").click(function () {
+				$("#reference_file").click();
+			});
+		})
 
         function addRow(list, idx, tpl, row){
             // var idx1 = $("#workClientLinkmanList tr").length;
@@ -1772,13 +1776,14 @@
 				</div>
 				<div id="addFile_reference" style="display: none" class="upload-progress">
 					<span id="fileName_reference" ></span>
+					<span id="_reference" ></span>
 					<b><span id="baifenbi_reference" ></span></b>
 					<div class="progress">
 						<div id="jindutiao_reference" class="progress-bar" style="width: 0%" aria-valuenow="0">
 						</div>
 					</div>
 				</div>
-				<input id="reference_file" type="file" name="attachment_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertMonthlyTitle(this.value);"/>
+				<input id="reference_file" type="file" name="attachment_file" multiple="multiple" style="display: none;" onChange="if(this.value)insertReferenceTitle(this.value);"/>
 				<span id="reference_title"></span>
 				<div class="layui-item layui-col-xs12" style="padding:0 16px;">
 					<table id="upReferenceTable" class="table table-bordered table-condensed details">
@@ -1791,7 +1796,7 @@
 						</tr>
 						</thead>
 						<tbody id="file_reference">
-						<c:forEach items="${projectcontentinfo.projectContentData.workAttachments}" var = "workClientAttachment" varStatus="status">
+						<c:forEach items="${projectPaperFiling.workAttachments}" var = "workClientAttachment" varStatus="status">
 							<c:if test="${workClientAttachment.divIdType =='_reference'}">
 								<tr>
 									<c:choose>