From f6eeb01e5a77965facfb0ae9a517b09681b3f69f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 13 Jun 2022 14:45:29 +0800
Subject: [PATCH] 实操成绩修改申请,成绩修改申请修改,保安员证编号由内网处理

---
 src/main/java/org/springblade/modules/quartz/task/Task.java |  210 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 198 insertions(+), 12 deletions(-)

diff --git a/src/main/java/org/springblade/modules/quartz/task/Task.java b/src/main/java/org/springblade/modules/quartz/task/Task.java
index e2d9194..8a84ee1 100644
--- a/src/main/java/org/springblade/modules/quartz/task/Task.java
+++ b/src/main/java/org/springblade/modules/quartz/task/Task.java
@@ -9,6 +9,10 @@
 import org.apache.commons.net.ftp.FTPReply;
 import org.springblade.common.utils.DesensitizedUtil;
 import org.springblade.modules.FTP.*;
+import org.springblade.modules.exam.entity.ExamAnswerRecord;
+import org.springblade.modules.exam.entity.ExamScore;
+import org.springblade.modules.exam.service.ExamAnswerRecordService;
+import org.springblade.modules.exam.service.ExamScoreService;
 import org.springblade.modules.log.entity.HandlerLog;
 import org.springblade.modules.log.service.HandlerLogService;
 import org.springblade.modules.system.entity.User;
@@ -56,6 +60,13 @@
 
 	@Autowired
 	private MyAsyncService myAsyncService;
+
+
+	@Autowired
+	private ExamAnswerRecordService examAnswerRecordService;
+
+	@Autowired
+	private ExamScoreService examScoreService;
 
 	public void testTask(){
         System.out.println("测试定时任务执行-----------------");
@@ -121,7 +132,6 @@
 
 			FTPFile[] files = ftp.listFiles();
 			if (files.length==0){
-				ftp.logout();
 				return false;
 			}
 			else {
@@ -167,13 +177,18 @@
 					}
 				}
 				//关闭流
-				ftp.completePendingCommand();
-				ftp.logout();
+//				ftp.completePendingCommand();
+//				ftp.logout();
 			}
 		} catch (Exception e) {
 			System.out.println("ftp连接失败");
 			e.printStackTrace();
 		} finally {
+			try {
+				ftp.logout();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
 			if (ftp.isConnected()) {
 				try {
 					ftp.disconnect();
@@ -225,7 +240,7 @@
 			//文件个数大于10个时开始处理
 //			if (files.length==0 || files.length<10){
 			if (files.length==0){
-				ftp.logout();
+//				ftp.logout();
 				return false;
 			}
 			else {
@@ -270,13 +285,18 @@
 					}
 				}
 				//关闭流
-				ftp.completePendingCommand();
-				ftp.logout();
+//				ftp.completePendingCommand();
+//				ftp.logout();
 			}
 		} catch (Exception e) {
 			System.out.println("ftp连接失败");
 			e.printStackTrace();
 		} finally {
+			try {
+				ftp.logout();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
 			if (ftp.isConnected()) {
 				try {
 					ftp.disconnect();
@@ -327,7 +347,7 @@
 			FTPFile[] files = ftp.listFiles();
 			//文件个数大于10个时开始处理
 			if (files.length==0){
-				ftp.logout();
+
 				return false;
 			}
 			else {
@@ -369,13 +389,18 @@
 					}
 				}
 				//关闭流
-				ftp.completePendingCommand();
-				ftp.logout();
+//				ftp.completePendingCommand();
+//				ftp.logout();
 			}
 		} catch (Exception e) {
 			System.out.println("ftp连接失败");
 			e.printStackTrace();
 		} finally {
+			try {
+				ftp.logout();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
 			if (ftp.isConnected()) {
 				try {
 					ftp.disconnect();
@@ -524,7 +549,7 @@
 			FTPFile[] files = ftp.listFiles();
 			//文件个数大于10个时开始处理
 			if (files.length==0){
-				ftp.logout();
+//				ftp.logout();
 				return false;
 			}
 			else {
@@ -562,13 +587,18 @@
 					}
 				}
 				//关闭流
-				ftp.completePendingCommand();
-				ftp.logout();
+//				ftp.completePendingCommand();
+//				ftp.logout();
 			}
 		} catch (Exception e) {
 			System.out.println("ftp连接失败");
 			e.printStackTrace();
 		} finally {
+			try {
+				ftp.logout();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
 			if (ftp.isConnected()) {
 				try {
 					ftp.disconnect();
@@ -579,6 +609,121 @@
 		}
 		return false;
 	}
+
+//	/**
+//	 * 读取内外推送的实操成绩导入情况信息
+//	 * @return
+//	 */
+//	public boolean readExamScoreFile() {
+//		FTPClient ftp = new FTPClient();
+//		try {
+//			//设置传输超时时间为60秒
+//			ftp.setDataTimeout(10000);
+//			//连接超时为60秒
+//			ftp.setConnectTimeout(10000);
+//			//连接
+//			ftp.connect(ftpHost, ftpPort);
+//			System.out.println("读取内外推送的实操成绩导入情况信息!"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+//			// 登陆
+//			ftp.login(ftpUserNameIn, ftpPasswordIn);
+//			// 检验登陆操作的返回码是否正确
+//			if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
+//				ftp.disconnect();
+//				return false;
+//			}
+//
+////			ftp.enterLocalActiveMode();
+//
+//			// 设置文件类型为二进制,与ASCII有区别
+//			ftp.setFileType(FTP.BINARY_FILE_TYPE);
+//
+//			// 设置编码格式
+//			ftp.setControlEncoding("GBK");
+//
+//			// 检验文件是否存在
+////			ftp.changeWorkingDirectory(ftpPath);
+//
+//			// Use passive mode as default
+//			ftp.enterLocalPassiveMode();
+//
+//			FTPFile[] files = ftp.listFiles();
+//			//文件个数大于10个时开始处理
+//			if (files.length==0){
+////				ftp.logout();
+//				return false;
+//			}
+//			else {
+//				for (int i = files.length-1; i >=0 ; i--) {
+//					String fileName = files[i].getName();
+//					String substring = fileName.substring(0, 2);
+//					System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+":读取到文件 = " + fileName);
+//					if (substring.contains("ne")) {
+//						//把文件下载到本地
+//						long l = System.currentTimeMillis();
+//						FtpUtil.downloadFtpFile(ftpHost, ftpUserNameIn, ftpPasswordIn, ftpPort, ftpPath, localPath, fileName);
+//						long x = System.currentTimeMillis();
+//						System.out.println("下载文件耗时 = " + (x-l)+" 毫秒");
+//						//数据转换
+//						String json = OutJson.TestJson(fileName);
+//						//取出map
+//						Map<String,Object> map = JSON.parseObject(json, Map.class);
+//						//取出 key/uuid,取出结果
+//						String uuid = null;
+//						Result result = new Result();
+//						for (Map.Entry entry : map.entrySet()) {
+//							Object value = entry.getValue();
+//							//转换
+//							result = JSON.parseObject(value.toString(), Result.class);
+//						}
+//						if (null!=result) {
+//							examScoreHandler(result);
+//						}
+//						//删除本地文件
+//						MysqlCenlint.deletess(fileName);
+//						//删除 ftp 文件
+//						FtpUtil.deleteFile(ftpHost, ftpPort, ftpUserNameIn, ftpPasswordIn, ftpPath, fileName);
+//						System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+":成功删除ftp文件 = " + fileName);
+//					}
+//				}
+//				//关闭流
+////				ftp.completePendingCommand();
+////				ftp.logout();
+//			}
+//		} catch (Exception e) {
+//			System.out.println("ftp连接失败");
+//			e.printStackTrace();
+//		} finally {
+//			try {
+//				ftp.logout();
+//			} catch (IOException e) {
+//				e.printStackTrace();
+//			}
+//			if (ftp.isConnected()) {
+//				try {
+//					ftp.disconnect();
+//				} catch (IOException e) {
+//					e.printStackTrace();
+//				}
+//			}
+//		}
+//		return false;
+//	}
+
+//	/**
+//	 * 实操成绩导入修改
+//	 * @param result
+//	 */
+//	private void examScoreHandler(Result result) {
+//		//导入的人员不存在
+//		HandlerLog handlerLog = new HandlerLog();
+//		handlerLog.setCreateTime(new Date());
+//		handlerLog.setDeptId(deptId);
+//		handlerLog.setOperatorTime(new Date());
+//		handlerLog.setType(4);
+//		handlerLog.setRemark(result.getMsg());
+//		//插入记录
+//		handlerLogService.save(handlerLog);
+//	}
 
 	/**
 	 * 报名信息处理
@@ -847,5 +992,46 @@
 		}
 	}
 
+	/**
+	 * 考试成绩同步
+	 * @return
+	 */
+	public void examScoreSync() {
+		System.out.println("考试成绩同步"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+		//查询当天的考试成绩
+		List<ExamScore> examScoreList = examScoreService.getExamScoreList();
+		if (examScoreList.size()>0) {
+			//遍历计算成绩
+			for (ExamScore examScore : examScoreList) {
+				ExamAnswerRecord record = new ExamAnswerRecord();
+				record.setScoreId(examScore.getId());
+				List<ExamAnswerRecord> list = examAnswerRecordService.list(new QueryWrapper<>(record));
+				if (list.size()>0){
+					int num = 0;
+					for (ExamAnswerRecord examAnswerRecord : list) {
+						num = num + examAnswerRecord.getAnswerScore();
+						examScore.setExamEndTime(examAnswerRecord.getAnswerTime());
+					}
+					examScore.setTheoryGrade(num);
+					examScore.setAllGrade(Math.round(num/2));
+					//设置状态
+					if (num >= 60) {
+						examScore.setQualified(2);
+					} else {
+						examScore.setQualified(1);
+					}
+					String s1 =
+						"update exam_score set exam_id = " + examScore.getExamId() +
+							",theory_grade = " + "'" + examScore.getTheoryGrade() + "'" +
+							",all_grade = " + "'" + examScore.getAllGrade() + "'" +
+							",exam_end_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:dd").format(examScore.getExamEndTime()) + "'" +
+							",qualified = " + "'" + examScore.getQualified() + "'" +
+							" " + "where id = " + "'" + examScore.getId() + "'";
+					myAsyncService.FTP(s1);
+				}
+			}
+		}
+	}
+
 
 }

--
Gitblit v1.9.3