dzx пре 1 година
родитељ
комит
f06dfc553a

+ 9 - 4
src/main/java/com/xjrsoft/module/job/JianyuekbBaseDataTask.java

@@ -8,7 +8,6 @@ import com.xjrsoft.common.utils.DatasourceUtil;
 import com.xjrsoft.module.schedule.entity.JianyueData;
 import com.xjrsoft.module.schedule.util.DataUtil;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.context.ApplicationContext;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -60,10 +59,16 @@ public class JianyuekbBaseDataTask {
             }
             DataUtil dataUtil = new DataUtil();
             //查询校区
-            JsonArray schoolDistrictData = dataUtil.getSchoolDistrictData();
+            String tableName = "xjr_department";
+            Map<Long, String> districtMap = dataUtil.insertSchoolDistrict(use, tableName, dataMap.get(tableName));
+            if(districtMap.isEmpty() && dataMap.get(tableName) != null){
+                districtMap = dataMap.get(tableName);
+            }
+
             //推送年级
-            String tableName = "base_grade";
-            Map<Long, String> grade = dataUtil.insertGrade(use, tableName, schoolDistrictData.get(0).getAsString(), dataMap.get(tableName));
+            JsonArray schoolDistrictData = dataUtil.getSchoolDistrictData();
+            tableName = "base_grade";
+            Map<Long, String> grade = dataUtil.insertGrade(use, tableName, districtMap, dataMap.get(tableName));
             if(grade.isEmpty() && dataMap.get(tableName) != null){
                 grade = dataMap.get(tableName);
             }

+ 49 - 3
src/main/java/com/xjrsoft/module/schedule/util/DataUtil.java

@@ -11,6 +11,7 @@ import com.xjrsoft.module.base.entity.BaseCourseSubject;
 import com.xjrsoft.module.base.entity.BaseGrade;
 import com.xjrsoft.module.base.entity.BaseLabel;
 import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.organization.entity.Department;
 import com.xjrsoft.module.schedule.vo.ClassroomJianyuekbVo;
 import com.xjrsoft.module.schedule.vo.StudentJianyuekbVo;
 import com.xjrsoft.module.teacher.entity.XjrUser;
@@ -31,6 +32,48 @@ import java.util.Map;
 @Slf4j
 public class DataUtil {
 
+    /**
+     * 推送校区信息
+     * 此处将班级所属的部门当做校区进行推送
+     * @return
+     */
+    public Map<Long, String> insertSchoolDistrict(Db db, String tableName, Map<Long, String> ids) throws Exception {
+        String sql = "SELECT * FROM " + tableName + " WHERE id IN (" +
+                "SELECT DISTINCT org_id FROM base_class WHERE delete_mark = 0\n" +
+                ")";
+        List<Department> dataList = db.query(sql, Department.class);
+
+        Map<Long, String> idMap = new HashMap<>();
+        JsonParser jsonParser = new JsonParser();
+        for (Department department : dataList) {
+            String url  = ScheduleUtil.apiUrl + "SchoolDistrict/Create";
+            JsonObject paramJson = new JsonObject();
+            paramJson.addProperty("name", department.getName());
+
+            paramJson.addProperty("not", department.getRemark());
+            paramJson.addProperty("sort", department.getSortCode());
+            paramJson.addProperty("shortName", department.getName());
+            long timestamp = System.currentTimeMillis();
+            String sign = ScheduleUtil.createSign(timestamp);
+            ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
+            if(ids != null && ids.get(department.getId()) != null){
+                url  = ScheduleUtil.apiUrl + "SchoolDistrict/Update";
+                paramJson.addProperty("id", ids.get(department.getId()));
+                ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
+                continue;
+            }
+            String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
+            if(result == null){
+                continue;
+            }
+            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+            idMap.put(department.getId(), resultJson.get("data").getAsString());
+        }
+        //插入记录表
+        insertRecord(db, tableName, idMap);
+        return idMap;
+    }
+
     public Map<Long, String> insertClass(Db db, String tableName, Map<Long, String> gradeMap,
     Map<Long, String> teacherMap, String semesterSerialNo, Map<Long, String> ids, Map<Long, String> classroomMap) throws Exception {
         String sql = "SELECT * FROM " + tableName + " WHERE delete_mark = 0 and is_graduate = 1";
@@ -355,20 +398,23 @@ public class DataUtil {
      * 插入年级
      * @param db 数据库链接
      * @param tableName 表名字
-     * @param schoolDistrictId 校区id
+     * @param schoolDistrictMap 校区id
      * @param ids 数据库id和jianyue的对应关系
      * @return 返回数据库和jianyue的对应关系
      */
-    public Map<Long, String> insertGrade(Db db, String tableName, String schoolDistrictId, Map<Long, String> ids) throws Exception {
+    public Map<Long, String> insertGrade(Db db, String tableName, Map<Long, String> schoolDistrictMap, Map<Long, String> ids) throws Exception {
         String sql = "select * from " + tableName + " where delete_mark = 0 and status = 1";
         List<BaseGrade> list = db.query(sql, BaseGrade.class);
 
         JsonParser jsonParser = new JsonParser();
         Map<Long, String> idMap = new HashMap<>();
+        for (Long l : schoolDistrictMap.keySet()) {
+            
+        }
         for (BaseGrade baseGrade : list) {
             String url = ScheduleUtil.apiUrl + "eduyear/create";
             JsonObject paramJson = new JsonObject();
-            paramJson.addProperty("schoolDistrictId", schoolDistrictId);
+//            paramJson.addProperty("schoolDistrictId", schoolDistrictId);
             paramJson.addProperty("period", 4);
             paramJson.addProperty("startYear", baseGrade.getTitle().replaceAll("年", ""));
             paramJson.addProperty("extendId", baseGrade.getId().toString());

+ 1 - 1
src/test/java/com/xjrsoft/module/job/JianyuekbBaseDataTaskTest.java

@@ -61,7 +61,7 @@ class JianyuekbBaseDataTaskTest {
             JsonArray schoolDistrictData = dataUtil.getSchoolDistrictData();
             //推送年级
             String tableName = "base_grade";
-            Map<Long, String> grade = dataUtil.insertGrade(use, tableName, schoolDistrictData.get(0).getAsString(), dataMap.get(tableName));
+            Map<Long, String> grade = dataUtil.insertGrade(use, tableName, null, dataMap.get(tableName));
             if(grade.isEmpty() && dataMap.get(tableName) != null){
                 grade = dataMap.get(tableName);
             }

+ 1 - 1
src/test/java/com/xjrsoft/xjrsoftboot/ScheduleTest.java

@@ -132,7 +132,7 @@ public class ScheduleTest {
             JsonArray schoolDistrictData = dataUtil.getSchoolDistrictData();
             //推送年级
             String tableName = "base_grade";
-            Map<Long, String> grade = dataUtil.insertGrade(use, tableName, schoolDistrictData.get(0).getAsString(), dataMap.get(tableName));
+            Map<Long, String> grade = dataUtil.insertGrade(use, tableName, null, dataMap.get(tableName));
             if(grade.isEmpty() && dataMap.get(tableName) != null){
                 grade = dataMap.get(tableName);
             }