diff --git a/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java b/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java index d4d7e66d..484de940 100644 --- a/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java +++ b/src/main/java/com/dsideal/QingLong/Collect/Model/CollectModel.java @@ -1337,9 +1337,25 @@ public class CollectModel { //写任务分派表 List list = new ArrayList<>(); + //现在这个要发送的对象,是单位:1,还是人:2 + // 使用 for-each 循环获取第一个元素 + int now_target_type_id = 0; + for (Kv kv : targetSet) { + now_target_type_id = kv.getInt("target_type_id"); + break; + } + //如果是单位,获取一下单位的target_id,target_name + Map _map; + Set _set = new HashSet<>(); + for (Kv kv : targetSet) { + _set.add(kv.getStr("target_id")); + } + if (now_target_type_id == 1) { + _map = getBureauMap(_set); + } else {//如果是人,获取一下人员的target_id,target_name + _map = getPersonMap(_set); + } for (Kv kv : targetSet) { - //现在这个要发送的对象,是单位:1,还是人:2 - int now_target_type_id = kv.getInt("target_type_id"); String target_id = kv.getStr("target_id"); //哪种类型的单位要接受这个任务呢? int orgTypeId = getOrgTypeId(target_id, now_target_type_id == 2); @@ -1393,8 +1409,10 @@ public class CollectModel { } for (Integer status_code : statusCodeList) { Record record = new Record(); - record.set("job_id", job_id); + record.set("now_target_type_id", now_target_type_id); record.set("target_id", target_id); + record.set("target_name", _map.get(target_id)); + record.set("job_id", job_id); record.set("deadline_time", date); record.set("bureau_id", bureau_id); record.set("memo", memo); @@ -1409,6 +1427,61 @@ public class CollectModel { Db.update(sql, job_id); } + /** + * 功能:获取指定一组单位ID和单位名称的对应关系 + * + * @param set + * @return + */ + public Map getBureauMap(Set set) { + Map map = new HashMap<>(); + String str = ""; + for (String target_id : set) { + str += "'" + target_id + "',"; + } + str = str.substring(0, str.length() - 1); + String sql = "select org_id,org_name from t_base_organization where org_id in (" + str + ")"; + List list = Db.find(sql); + for (Record record : list) { + map.put(record.getStr("org_id"), record.getStr("org_name")); + } + return map; + } + + /** + * 功能:获取指定一组人员ID和人员姓名的对应关系 + * + * @param set + * @return + */ + public Map getPersonMap(Set set) { + Map map = new HashMap<>(); + String str = ""; + for (String target_id : set) { + str += "'" + target_id + "',"; + } + str = str.substring(0, str.length() - 1); + if (THIRD_PARTY_BASE_DATA == 0) { + String sql = "select person_id,person_name from t_sys_loginperson where person_id in (" + str + ")"; + List list = Db.find(sql); + for (Record record : list) { + map.put(record.getStr("person_id"), record.getStr("person_name")); + } + } else { + String sql = "select user_id as person_id,name as person_name from ds_base_student where user_id in (" + str + ")"; + List list = Db.find(sql); + for (Record record : list) { + map.put(record.getStr("person_id"), record.getStr("person_name")); + } + sql = "select user_id as person_id,name as person_name from ds_base_teacher where user_id in (" + str + ")"; + list = Db.find(sql); + for (Record record : list) { + map.put(record.getStr("person_id"), record.getStr("person_name")); + } + } + return map; + } + /** * 功能:重命名任务 * @@ -2085,6 +2158,8 @@ public class CollectModel { */ public void ForwardJob(int publish_role_id, String area_id, int job_id, int status_code, String deadline_time, int xiaShuSchool, int xiaShuJiaoFu, String bureauIds, String groupIds, String memo, String bureau_id, int allTeacher, int allStudent, String njIds, String personIds, String classIds) throws ParseException { + int now_target_type_id = 1; + //获取此县区的所有学校 Set targetSet = new HashSet<>(); if (xiaShuSchool == 1) { @@ -2107,12 +2182,20 @@ public class CollectModel { } //人员 if (!StrKit.isBlank(personIds)) { + now_target_type_id = 2; for (String s : personIds.split(",")) { targetSet.add(s); } } //群组 if (!StrKit.isBlank(groupIds)) { + + for (String group_id : groupIds.split(",")) { + Record record = getGroup(Integer.parseInt(group_id)); + int group_type_id = record.getInt("group_type_id"); + if (group_type_id == 2) now_target_type_id = 2; + break; + } for (String group_id : groupIds.split(",")) { List list = getGroupTargetList(Integer.parseInt(group_id)); for (Record record : list) { @@ -2122,26 +2205,31 @@ public class CollectModel { } //所有老师 if (allTeacher == 1) { + now_target_type_id = 2; for (Record r : getAllTeacher(bureau_id)) { targetSet.add(r.getStr("person_id")); } } //所有学生 if (allStudent == 1) { + now_target_type_id = 2; for (Record r : getAllStudent(bureau_id)) { targetSet.add(r.getStr("person_id")); } } //年级 for (Record r : getNianJiStudent(bureau_id, njIds)) { + now_target_type_id = 2; targetSet.add(r.getStr("person_id")); } //班级 for (Record r : getBanJiStudent(bureau_id, classIds)) { + now_target_type_id = 2; targetSet.add(r.getStr("person_id")); } //人员 if (!StrKit.isBlank(personIds)) { + now_target_type_id = 2; for (String s : personIds.split(",")) { targetSet.add(s); } @@ -2155,6 +2243,12 @@ public class CollectModel { //下一个转发状态 int next_status_code = -1; + Map _map; + if (now_target_type_id == 1) { + _map = getBureauMap(targetSet); + } else { + _map = getPersonMap(targetSet); + } for (String s : targetSet) { switch (publish_job_type_id) { @@ -2180,9 +2274,11 @@ public class CollectModel { break; } Record record = new Record(); + record.set("target_id", s); + record.set("now_target_type_id", now_target_type_id); + record.set("target_name", _map.get(s)); record.set("job_id", job_id); record.set("deadline_time", dateFormat.parse(deadline_time)); - record.set("target_id", s); record.set("bureau_id", bureau_id); record.set("status_code", next_status_code); record.set("memo", memo);