소스 검색

[task-1663] [基础数据设置] 岗位职责配置列表

Li Yuan 2 년 전
부모
커밋
0e12e10f5d

+ 40 - 0
ibps-provider-root/modules/provider-platform/src/main/java/com/lc/ibps/platform/plan/job/BasicDataInitializationJob.java

@@ -34,10 +34,50 @@ public class BasicDataInitializationJob extends BaseJob2 {
         //文件类型数据
         executeWenJianStep(posAdmin,didianAdmin);
 
+        //岗位职责配置列表
+        excutePositionStep(posAdmin);
+
         //其他的基础数据
         executeBaseTablesStep(posAdmin);
     }
 
+    private void excutePositionStep(String posAdmin) throws Exception {
+        String sql1 = "SELECT * FROM ibps_party_entity WHERE party_type_='position'  AND depth_ IN (3,4) " +
+                " AND path_ NOT LIKE '%%%s%%' AND id_ NOT IN (SELECT bian_zhi_bu_men_ FROM t_dyzzb ) ORDER BY depth_ ";
+        sql1 = String.format(sql1, posAdmin);
+        List<Map<String, Object>> l = (List<Map<String, Object>>) commonDao.query(sql1);
+        if (Collections.isEmpty(l)) return;
+        for (Map<String, Object> val1 : l) {
+            Map<String, Object> val = this.transformUpperCase(val1);
+            String deptName = (String) val.get("NAME_");
+            String id = (String) val.get("ID_");
+            String didian = ((String) val.get("PATH_")).split("\\.")[1];
+            List<Map<String, Object>> list = extractPositionBase(posAdmin, deptName);
+            if (!Collections.isEmpty(list)){
+                for (Map<String, Object> val2 : list) {
+                    Map<String, Object> val3 = this.transformUpperCase(val2);
+                    val3.put("ID_", UniqueIdUtil.getId());
+                    val3.put("DI_DIAN_", didian);
+                    val3.put("BIAN_ZHI_BU_MEN_", id);
+                    val3.put("CREATE_TIME_", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+                    commonDao.execute(this.buildInsertSql(val3, "t_dyzzb"));
+                }
+            }
+        }
+    }
+
+    private List<Map<String, Object>> extractPositionBase(String posAdmin, String deptName) {
+        String sql2 = "SELECT * FROM t_dyzzb WHERE bian_zhi_bu_men_='%s' AND '%s' LIKE CONCAT('%%',lei_xing_,'%%') AND lei_xing_ <>'' ORDER BY ji_bie_";
+        sql2 = String.format(sql2, posAdmin, deptName);
+        List<Map<String, Object>> list = (List<Map<String, Object>>) commonDao.query(sql2);
+        if (Collections.isEmpty(list)) {
+            sql2 = "SELECT * FROM t_dyzzb WHERE bian_zhi_bu_men_='%s'  AND lei_xing_ ='' ORDER BY ji_bie_";
+            sql2 = String.format(sql2, posAdmin);
+            list = (List<Map<String, Object>>) commonDao.query(sql2);
+        }
+        return list;
+    }
+
     private void executeBaseTablesStep(String posAdmin) throws Exception {
         //'Y' means just create one records.   注:所有字段均用大写
         // {"t_dyzzb", "", "N", "岗位职责配置列表"},