Explorar o código

feat: 1.医院信息收集、医院信息修改两类任务的限制60%;2.会议举办次数限制

lixuesong %!s(int64=3) %!d(string=hai) anos
pai
achega
198b75a5c8

+ 3 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -26,6 +26,7 @@ import com.qunzhixinxi.hnqz.admin.entity.input.NoticeApiInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiOutput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmWkAlbumApiInput;
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.DisplayStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
@@ -2045,6 +2046,8 @@ public class ApiController {
 
 		Page<WmTask> taskPage = wmTaskService.page(page, Wrappers.query(wmTask)
 				.lambda()
+				.eq(WmTask::getRealFlag, "0")
+				.eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
 				.orderByDesc(WmTask::getCreateTime));
 		List<WmTask> wmTaskList = taskPage.getRecords();
 

+ 14 - 17
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskContentServiceImpl.java

@@ -32,7 +32,6 @@ import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.entity.WmUserSign;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
-import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaHospitalMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmUserSignMapper;
@@ -134,10 +133,10 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 			LocalDateTime lookintoDate =
 					LocalDateTime.parse(wmTaskContent.getTemp4(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
 			LambdaQueryWrapper<WmTask> wrappers = Wrappers.lambdaQuery();
-			wrappers.eq(WmTask::getTaskUserId, sysU.getUserId() + "");
-			wrappers.in(WmTask::getTaskTypeId, 1, 2, 3, 4);
-			wrappers.le(WmTask::getLookintoDate, LocalDateTime.of(lookintoDate.toLocalDate(), LocalTime.MAX));
-			wrappers.ge(WmTask::getLookintoDate, LocalDateTime.of(lookintoDate.toLocalDate(), LocalTime.MIN));
+			wrappers.eq(WmTask::getTaskUserId, String.valueOf(sysU.getUserId()));
+			wrappers.in(WmTask::getTaskTypeId, "1", "2", "3", "4");
+			wrappers.between(WmTask::getLookintoDate, LocalDateTime.of(lookintoDate.toLocalDate(), LocalTime.MIN),
+					LocalDateTime.of(lookintoDate.toLocalDate(), LocalTime.MAX));
 
 			int total = wmTaskService.count(wrappers);
 			if (total >= 2) {
@@ -162,10 +161,10 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 			LocalDateTime lookintoDate =
 					LocalDateTime.parse(wmTaskContent.getTemp4(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
 			LambdaQueryWrapper<WmTask> interviewQuery = Wrappers.lambdaQuery();
-			interviewQuery.eq(WmTask::getTaskUserId, sysU.getUserId() + "");
-			interviewQuery.eq(WmTask::getTaskTypeId, 19);
-			interviewQuery.le(WmTask::getLookintoDate, LocalDateTime.of(lookintoDate.toLocalDate(), LocalTime.MAX));
-			interviewQuery.ge(WmTask::getLookintoDate, LocalDateTime.of(lookintoDate.toLocalDate(), LocalTime.MIN));
+			interviewQuery.eq(WmTask::getTaskUserId, String.valueOf(sysU.getUserId()));
+			interviewQuery.eq(WmTask::getTaskTypeId, "19");
+			interviewQuery.between(WmTask::getLookintoDate, LocalDateTime.of(lookintoDate.toLocalDate(), LocalTime.MIN),
+					LocalDateTime.of(lookintoDate.toLocalDate(), LocalTime.MAX));
 
 			int interviewTotal = wmTaskService.count(interviewQuery);
 			if (interviewTotal >= 2) {
@@ -255,16 +254,14 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 		if ("15".equals(wmTaskContent.getTemp30()) || "30".equals(wmTaskContent.getTemp30())) {
 			if (tWmScorePackage.getScore() > 5000) {
 				List<WmTask> wmTaskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
-						.eq(WmTask::getEnableFlag, EnableEnum.ENABLE.val())
+						.eq(WmTask::getRealFlag, "0")
 						.eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
 						.in(WmTask::getScorePackageId, tWmScorePackage.getId())
+						.in(WmTask::getTaskTypeId, "15", "30")
 						.ne(WmTask::getTaskStatus, "4"));
 				if (CollectionUtil.isNotEmpty(wmTaskList)) {
 					int totalScore = tWmScorePackage.getScore();
-					int partScore = wmTaskList.stream()
-							.filter(wmTask -> "15".equals(wmTask.getTaskTypeId()) || "30".equals(wmTask.getTaskTypeId()))
-							.mapToInt(WmTask::getScore)
-							.sum();
+					int partScore = wmTaskList.stream().mapToInt(WmTask::getScore).sum();
 					if (partScore * 1.0 / totalScore > 0.6) {
 						return R.failed("医院信息收集、医院信息修改两类任务总积分不得大于积分包值的60%");
 					}
@@ -276,14 +273,14 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 		if ("30".equals(wmTaskContent.getTemp30())) {
 			List<WmTask> taskList = wmTaskService.listCurrentMonthHospitalTask(wmTaskContent.getTemp29());
 			if (CollectionUtil.isNotEmpty(taskList)) {
-				if (taskList.size() > 3) {
-					return R.failed("该医院一个月最多只能修改3次");
-				}
 				boolean anyMatch = taskList.stream()
 						.anyMatch(wmTask -> String.valueOf(sysU.getUserId()).equals(wmTask.getTaskUserId()));
 				if (anyMatch) {
 					return R.failed("该医院同一个人一个月只能修改一次");
 				}
+				if (taskList.size() > 3) {
+					return R.failed("该医院一个月最多只能修改3次");
+				}
 			}
 		}