Kaynağa Gözat

文件下载,仅部分

徐滕 1 ay önce
ebeveyn
işleme
df1f085a8f

+ 9 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordsDao.java

@@ -7,6 +7,7 @@ import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportDataTwo;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportDataTwo;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.ruralprojectrecords.entity.ExportProjectFileInfoInfo;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsExport;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsExport;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralReportConsultant;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralReportConsultant;
@@ -505,4 +506,12 @@ public interface RuralProjectRecordsDao extends CrudDao<RuralProjectRecords> {
      * @param projectId
      * @param projectId
      */
      */
     String getCaseBaseStatusByProjectId(String projectId);
     String getCaseBaseStatusByProjectId(String projectId);
+
+
+    /**
+     * 根据报告号查询项目信息(批量)
+     * @param reportNumberList
+     * @return
+     */
+    List<RuralProjectRecords> getInfoByReportList(@Param("reportNumberList") List<ExportProjectFileInfoInfo> reportNumberList);
 }
 }

+ 20 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ExportProjectFileInfoInfo.java

@@ -0,0 +1,20 @@
+package com.jeeplus.modules.ruralprojectrecords.entity;
+
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
+
+/**
+ * @author: 徐滕
+ * @version: 2024-08-19 09:49
+ */
+public class ExportProjectFileInfoInfo {
+    private String reportNumber;
+
+    @ExcelField(title="报告号", align=2, sort=1)
+    public String getReportNumber() {
+        return reportNumber;
+    }
+
+    public void setReportNumber(String reportNumber) {
+        this.reportNumber = reportNumber;
+    }
+}

+ 126 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -230,6 +230,20 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 	 * 获取项目附件模板类型
 	 * 获取项目附件模板类型
 	 * @return
 	 * @return
 	 */
 	 */
+	public static List<MainDictDetail> attachmentTemplatePostList(){
+		List<MainDictDetail> attachmentTemplateList =  Lists.newArrayList();
+		MainDictDetail detail = new MainDictDetail();
+		detail.setType("attachment_template_type");
+		detail.setValue("11");
+		detail.setLevel("成果文件");
+		attachmentTemplateList.add(detail);
+		return  attachmentTemplateList;
+	}
+
+	/**
+	 * 获取项目附件模板类型
+	 * @return
+	 */
 	public static List<MainDictDetail> attachmentTemplateListToCloud(){
 	public static List<MainDictDetail> attachmentTemplateListToCloud(){
 		return  DictUtils.getMainDictListById("attachment_template_type");
 		return  DictUtils.getMainDictListById("attachment_template_type");
 	}
 	}
@@ -6543,4 +6557,116 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		}
 		}
 		return projectRecords;
 		return projectRecords;
 	}
 	}
+
+	/**
+	 * 根据报告号下载项目的成果文件(仅作为api接口使用)
+	 * @param reportNumberList
+	 * @return
+	 */
+	public String exportProjectFileByReports(List<ExportProjectFileInfoInfo> reportNumberList){
+		//设置下载的压缩包名(固定字符+时间戳)
+		long timeMillis = System.currentTimeMillis();
+		String fileLocality = "项目附件_"+ timeMillis;
+		//判定当前系统
+		String path = null;
+		if(System.getProperty("os.name").toLowerCase().contains("win")){
+			path = Global.getConfig("remoteServer.winDirectory");
+		}else{
+			path = Global.getConfig("remoteServer.directory");
+		}
+		path = path + "/" + fileLocality;
+		//检查该路径对应的目录是否存在. 如果不存在则创建目录
+		File dir=new File(path);
+		if (!dir.exists()) {
+			dir.mkdirs();
+		}
+
+		File resultFile = null;
+		File file = null;
+		try {
+			//查询所有相关的项目信息
+			List<RuralProjectRecords> recordsList = dao.getInfoByReportList(reportNumberList);
+
+			for (RuralProjectRecords records : recordsList) {
+				ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
+
+				//添加项目类型
+				relateInfo.setAttachmentProjectType(records.getProjectType());
+				relateInfo.setAttachmentProjectSort(records.getAttachmentProjectSort());
+
+				//查看送审金额是否为500w以上金额
+				//Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
+				//Integer approvalMoney = 2;
+				String money=records.getSubmitMoney();
+				Integer approvalMoney=null;
+				if(com.jeeplus.common.utils.StringUtils.isBlank(money)){
+					approvalMoney=1;
+				}else{
+					approvalMoney=Integer.parseInt(money);
+				}
+				switch (approvalMoney){
+					case 0:
+						//金额为0
+						relateInfo.setAttachmentProjectApprovalMoney(null);
+						break;
+					case 1:
+						//500w以下金额状态
+						relateInfo.setAttachmentProjectApprovalMoney("1");
+						break;
+					case 2:
+						//500w以上金额状态
+						relateInfo.setAttachmentProjectApprovalMoney("2");
+						break;
+				}
+				//添加报告类型
+				relateInfo.setRequiredStage(1);
+				relateInfo.setId(records.getId());
+				//查询报告文件、依据性文件、其他文件必填列表以及数据
+				List<MainDictDetail> mainDictDetails = this.attachmentTemplatePostList();
+				List<ProjectTemplateInfo> projectTemplateList = null;
+				String downloadPath = path + "/" + records.getProjectReportNumber();
+				for (MainDictDetail mainDict : mainDictDetails) {
+					relateInfo.setAttachType(mainDict.getValue());
+					File dirFile = null;
+					switch (mainDict.getValue()) {
+						case "11":
+							dirFile=new File(downloadPath+"/成果文件");
+							projectTemplateList = Lists.newArrayList();
+							projectTemplateList = this.getProjectTemplateList(relateInfo);
+							this.disposeFileList(projectTemplateList,dirFile.getPath());
+							break;
+						/*case "12":
+							dirFile=new File(downloadPath+"/依据性资料");
+							projectTemplateList = Lists.newArrayList();
+							projectTemplateList = this.getProjectTemplateList(relateInfo);
+							this.disposeFileList(projectTemplateList,dirFile.getPath());
+							break;
+						case "13":
+							dirFile=new File(downloadPath+"/其他文件");
+							projectTemplateList = Lists.newArrayList();
+							projectTemplateList = this.getProjectTemplateList(relateInfo);
+							this.disposeFileList(projectTemplateList,dirFile.getPath());
+							break;*/
+					}
+
+				}
+			}
+			//处理完之后进行打包压缩并删除之前的文件
+			ZipCompressUtil zipUtil = new ZipCompressUtil();
+			resultFile = new File(path);
+			file = zipUtil.zipCompress(resultFile, true);
+
+		}catch (IOException e) {
+			logger.error("Exception e:"+e);
+		} catch (Exception e) {
+            throw new RuntimeException(e);
+        } finally {
+			//路径是个文件且不为空时删除文件
+			if(resultFile.isFile()&&resultFile.exists()){
+				resultFile.delete();
+			}
+		}
+
+		return file.getPath();
+	}
 }
 }

+ 27 - 5
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureOldMessageDisposeController.java

@@ -20,10 +20,7 @@ import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataTwoService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataTwoService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportRecordService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportRecordService;
-import com.jeeplus.modules.ruralprojectrecords.entity.PhysicsSeal;
-import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
-import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectcontentinfo;
-import com.jeeplus.modules.ruralprojectrecords.entity.SealAuthBean;
+import com.jeeplus.modules.ruralprojectrecords.entity.*;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageAllService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageAllService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectSignatureOldMessageDisposeService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectSignatureOldMessageDisposeService;
@@ -40,7 +37,6 @@ import com.jeeplus.modules.workinvoice.entity.OMS.InvoiceDown.OMSInvoiceDetailIn
 import com.jeeplus.modules.workinvoice.entity.OMS.OMSAccessTokenInfo;
 import com.jeeplus.modules.workinvoice.entity.OMS.OMSAccessTokenInfo;
 import com.jeeplus.modules.workinvoice.entity.OMS.OMSInvoiceResultDownloadData;
 import com.jeeplus.modules.workinvoice.entity.OMS.OMSInvoiceResultDownloadData;
 import com.jeeplus.modules.workinvoice.entity.TemporaryInvoiceInfo;
 import com.jeeplus.modules.workinvoice.entity.TemporaryInvoiceInfo;
-import com.jeeplus.modules.workinvoice.entity.WorkInvoice;
 import com.jeeplus.modules.workinvoice.service.OMS.OMSDisposeService;
 import com.jeeplus.modules.workinvoice.service.OMS.OMSDisposeService;
 import com.jeeplus.modules.workinvoice.service.WorkInvoiceService;
 import com.jeeplus.modules.workinvoice.service.WorkInvoiceService;
 import com.jeeplus.modules.workinvoice.utils.HttpPostJsonUtil;
 import com.jeeplus.modules.workinvoice.utils.HttpPostJsonUtil;
@@ -1182,4 +1178,30 @@ public class RuralProjectSignatureOldMessageDisposeController extends BaseContro
         return resultMap;
         return resultMap;
     }
     }
 
 
+
+    /**
+     * 报表处理
+     * @return
+     */
+    @RequestMapping(value = "/exportProjectFileByReports", method = RequestMethod.POST)
+    @ResponseBody
+    @Transactional(readOnly = false)
+    public Map<String,Object> exportProjectFileByReports(@RequestParam("file") MultipartFile file){
+        Map<String,Object> map = new HashMap<>();
+        try {
+            ImportExcel ei = new ImportExcel(file, 0, 0);
+            List<ExportProjectFileInfoInfo> reportNumberList = ei.getNewDataList(ExportProjectFileInfoInfo.class);
+            String filePath = projectRecordsService.exportProjectFileByReports(reportNumberList);
+            //projectRecordsService.downloadZipFile(filePath,response);
+            for (ExportProjectFileInfoInfo invoiceInfo : reportNumberList) {
+                System.out.println(invoiceInfo.getReportNumber());
+            }
+
+        } catch (Exception e){
+
+        }
+        map.put("msgMonth","月度报表处理完成");
+        return map;
+    }
+
 }
 }

+ 24 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml

@@ -7146,5 +7146,29 @@ GROUP BY
 	</select>
 	</select>
 
 
 
 
+	<select id="getInfoByReportList" resultType="RuralProjectRecords">
+		select
+		<include refid="projectRecordsColumns"/>
+		,prd.number AS "projectReportNumber"
+		,a.submit_money as "submitMoney"
+		,a.engineering_type as "engineeringType"
+		,a.start_date as "startDate"
+		,a.ending_date as "endDate"
+		FROM rural_project_records a
+		left join project_report_data prd on prd.project_id = a.id
+		<include refid="projectRecordsJoins"/>
+		<where>
+			<if test="reportNumberList!=null and reportNumberList.size!=0">
+				and prd.number in
+				<foreach collection="reportNumberList" item="report" separator="," open="(" close=")">
+					#{report.reportNumber}
+				</foreach>
+			</if>
+		and prd.del_flag = 0
+		and a.del_flag = 0
+		</where>
+
+	</select>
+
 
 
 </mapper>
 </mapper>