|
@@ -727,8 +727,8 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
|
|
|
if ("任务有效期限".equals(r.getManual())) {
|
|
|
|
|
|
List<Integer> quantity = r.getFrequency().stream().map(f -> {
|
|
|
- Object o = f.get("quantity");
|
|
|
- return o instanceof String ? Integer.parseInt((String) o) : (int) o;
|
|
|
+ Object o = f.get("quantity");
|
|
|
+ return o instanceof String ? Integer.parseInt((String) o) : (int) o;
|
|
|
}).sorted().collect(Collectors.toList());
|
|
|
betweenDay = quantity.get(0);
|
|
|
}
|
|
@@ -754,6 +754,53 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 医院信息修改
|
|
|
+ *
|
|
|
+ * @param hosId 医院id
|
|
|
+ * @param userId 用户id
|
|
|
+ * @param rules 校验规则
|
|
|
+ */
|
|
|
+ private void ctt_30( String hosId, Integer userId, List<WmTaskSubmissionRule.SubmissionRule> rules) {
|
|
|
+
|
|
|
+ int hosUpperLimit = 0;
|
|
|
+ int userUpperLimit = 0;
|
|
|
+
|
|
|
+ // 获取限制
|
|
|
+ for (int i = 0, size = rules.size(); i < size; i++) {
|
|
|
+ Map<String, Object> map = (Map<String, Object>) rules.get(i);
|
|
|
+ WmTaskSubmissionRule.SubmissionRule r = BeanUtil.mapToBean(map, WmTaskSubmissionRule.SubmissionRule.class, true, new CopyOptions());
|
|
|
+
|
|
|
+ if ("同一家医院的修改次数上限".equals(r.getManual())) {
|
|
|
+ List<Integer> quantity = r.getFrequency().stream().map(f -> {
|
|
|
+ Object o = f.get("quantity");
|
|
|
+ return o instanceof String ? Integer.parseInt((String) o) : (int) o;
|
|
|
+ }).sorted().collect(Collectors.toList());
|
|
|
+ hosUpperLimit = quantity.get(0);
|
|
|
+
|
|
|
+ }
|
|
|
+ if ("同一个人对同一家医院的修改次数上限".equals(r.getManual())) {
|
|
|
+
|
|
|
+ List<Integer> quantity = r.getFrequency().stream().map(f -> {
|
|
|
+ Object o = f.get("quantity");
|
|
|
+ return o instanceof String ? Integer.parseInt((String) o) : (int) o;
|
|
|
+ }).sorted().collect(Collectors.toList());
|
|
|
+ userUpperLimit = quantity.get(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<WmTask> taskList = wmTaskService.listCurrentMonthHospitalTask(hosId);
|
|
|
+ if (CollectionUtil.isNotEmpty(taskList)) {
|
|
|
+ List<WmTask> userUpperLimitList = taskList.stream().filter(wmTask -> String.valueOf(userId).equals(wmTask.getTaskUserId())).collect(Collectors.toList());
|
|
|
+ if (userUpperLimitList.size() >= userUpperLimit) {
|
|
|
+ throw new RuntimeException("该医院同一个人一个月只能修改一次");
|
|
|
+ }
|
|
|
+ if (taskList.size() >= hosUpperLimit) {
|
|
|
+ throw new RuntimeException("该医院一个月最多只能修改3次");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 校验任务内容
|
|
@@ -794,7 +841,7 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
|
|
|
|| "14".equals(wmTaskContent.getTemp30())
|
|
|
|| "17".equals(wmTaskContent.getTemp30())
|
|
|
|| "21".equals(wmTaskContent.getTemp30())) {
|
|
|
- //会议类型
|
|
|
+
|
|
|
String date = wmTaskContent.getTemp4();
|
|
|
LocalDate d = LocalDate.parse(date, df);
|
|
|
if (d.isAfter(now)) {
|
|
@@ -821,7 +868,7 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
|
|
|
wmTaskContent.setTemp30("30");
|
|
|
}
|
|
|
}
|
|
|
- //会议类型
|
|
|
+
|
|
|
String date = wmTaskContent.getTemp2();
|
|
|
LocalDate d = LocalDate.parse(date, df);
|
|
|
if (d.isAfter(now)) {
|
|
@@ -874,17 +921,7 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
|
|
|
|
|
|
// 校验医院信息修改的任务(同一家医院,同一个人一个月只能修改一次,该医院一个月最多可修改3次)
|
|
|
if ("30".equals(wmTaskContent.getTemp30())) {
|
|
|
- List<WmTask> taskList = wmTaskService.listCurrentMonthHospitalTask(wmTaskContent.getTemp29());
|
|
|
- if (CollectionUtil.isNotEmpty(taskList)) {
|
|
|
- boolean anyMatch = taskList.stream()
|
|
|
- .anyMatch(wmTask -> String.valueOf(userId).equals(wmTask.getTaskUserId()));
|
|
|
- if (anyMatch) {
|
|
|
- throw new RuntimeException("该医院同一个人一个月只能修改一次");
|
|
|
- }
|
|
|
- if (taskList.size() > 3) {
|
|
|
- throw new RuntimeException("该医院一个月最多只能修改3次");
|
|
|
- }
|
|
|
- }
|
|
|
+ ctt_30(wmTaskContent.getTemp29(), userId, rules);
|
|
|
}
|
|
|
|
|
|
// 校验首次库存调查
|