瀏覽代碼

组织编码修改

zhouger 6 月之前
父節點
當前提交
d61d882ae0
共有 2 個文件被更改,包括 53 次插入18 次删除
  1. 22 9
      src/main/java/sys/sc/formplugin/TestPlugin.java
  2. 31 9
      src/main/java/sys/sc/task/UpdateDataDailyTask.java

+ 22 - 9
src/main/java/sys/sc/formplugin/TestPlugin.java

@@ -106,11 +106,11 @@ public class TestPlugin  extends AbstractListPlugin {
                     //去掉换行符|$|
                     line = line.replace("|$|", "");
                     //空格符号,根据这个符号分割
-                    String[] fields = line.split("\u0001");
+                    String[] fields = line.split("\u0001",-1);
                     //如果获取的数据行不等于预设字段的行,则跳过这行数据
-                    if (fields.length != selector.size()) {
-                        continue;
-                    }
+//                    if (fields.length != selector.size()) {
+//                        continue;
+//                    }
                     //获取工号
                     String gonghao = fields[0];
                     boolean isUpdated = false;
@@ -123,10 +123,16 @@ public class TestPlugin  extends AbstractListPlugin {
                             String fieldName = selector.get(i);
                             String newValue = fields[i];
                             String existingValue = data.getString(fieldName);
+                            //如果等于行政编码,则去掉第一个字符1
+                            if (i==7||i==9||i==11) {
+                                existingValue=existingValue.substring(1);
+                            }
                             //判断数据是否与之前的数据相同,不相同则更新
                             if (!Objects.equals(existingValue, newValue)) {
-                                data.set(fieldName, newValue);
-                                isUpdated = true;
+                                if (!newValue.isEmpty()) {
+                                    data.set(fieldName, newValue);
+                                    isUpdated = true;
+                                }
                             }
                         }
                         //更新了数据则设置数据更新的时间
@@ -137,6 +143,16 @@ public class TestPlugin  extends AbstractListPlugin {
                     } else {
                         //不存在这条数据则新增一条到data中
                         data = new DynamicObject(dynamicObjectType);
+                        //行政编码不为空则在前面加1
+                        if(!fields[7].isEmpty()) {
+                            fields[7]="1"+fields[7];
+                        }
+                        if (!fields[9].isEmpty()) {
+                            fields[9]="1"+fields[9];
+                        }
+                        if (!fields[11].isEmpty()) {
+                            fields[11]="1"+fields[11];
+                        }
                         for (int i = 0; i < selector.size(); i++) {
                             if (!fields[i].isEmpty()) {
                                 data.set(selector.get(i), fields[i]);
@@ -152,7 +168,6 @@ public class TestPlugin  extends AbstractListPlugin {
             for (Map.Entry<String, DynamicObject> entry : existingDataMap.entrySet()) {
                 String gonghao = entry.getKey();
                 DynamicObject data = entry.getValue();
-
                 if (!processedGonghaoSet.contains(gonghao)) {
                     data.set("nckd_isdelete", true);
                     updatedataList.add(data);
@@ -799,12 +814,10 @@ public class TestPlugin  extends AbstractListPlugin {
             }
         }
 
-
         //获取linux服务器连接
         if ("connect".equals(e.getOperateKey()))
         {
             generateDataFile(filePath);
-
         }
 
     }

+ 31 - 9
src/main/java/sys/sc/task/UpdateDataDailyTask.java

@@ -105,10 +105,6 @@ public class UpdateDataDailyTask extends AbstractTask {
                     line = line.replace(endsign, "");
                     //空格符号,根据这个符号分割
                     String[] fields = line.split(splitsign,-1);
-                    //如果获取的数据行不等于预设字段的行,则跳过这行数据
-//                    if (fields.length != selector.size()) {
-//                        continue;
-//                    }
                     //获取工号
                     String gonghao = fields[0];
                     boolean isUpdated = false;
@@ -121,10 +117,17 @@ public class UpdateDataDailyTask extends AbstractTask {
                             String fieldName = selector.get(i);
                             String newValue = fields[i];
                             String existingValue = data.getString(fieldName);
+                            //如果等于行政编码,则去掉第一个字符1
+                            if (i==7||i==9||i==11) {
+                                existingValue=existingValue.substring(1);
+                            }
                             //判断数据是否与之前的数据相同,不相同则更新
                             if (!Objects.equals(existingValue, newValue)) {
-                                data.set(fieldName, newValue);
-                                isUpdated = true;
+                                if (!newValue.isEmpty()) {
+                                    data.set(fieldName, newValue);
+                                    isUpdated = true;
+                                }
+
                             }
                         }
                         //更新了数据则设置数据更新的时间
@@ -135,6 +138,16 @@ public class UpdateDataDailyTask extends AbstractTask {
                     } else {
                         //不存在这条数据则新增一条到data中
                         data = new DynamicObject(dynamicObjectType);
+                        //行政编码不为空则在前面加1
+                        if(!fields[7].isEmpty()) {
+                            fields[7]="1"+fields[7];
+                        }
+                        if (!fields[9].isEmpty()) {
+                            fields[9]="1"+fields[9];
+                        }
+                        if (!fields[11].isEmpty()) {
+                            fields[11]="1"+fields[11];
+                        }
                         for (int i = 0; i < selector.size(); i++) {
                             data.set(selector.get(i), fields[i]);
                         }
@@ -196,6 +209,9 @@ public class UpdateDataDailyTask extends AbstractTask {
             // 判断并创建或更新所在单位
             //所在单位编码
             String szdwbm = record.getString("nckd_szdwcode");
+            if (!szdwbm.isEmpty()) {
+                szdwbm=szdwbm.substring(1);
+            }
             //所在单位名称
             String szdwmc = record.getString("nckd_szdwname");
             DynamicObject org = BusinessDataServiceHelper.loadSingle(
@@ -205,7 +221,7 @@ public class UpdateDataDailyTask extends AbstractTask {
             if (org == null) {
                 IFormView orgview = ABillServiceHelper.createAddView("bos_adminorg");
                 //组织编码
-                orgview.getModel().setValue("number", szdwbm);
+                orgview.getModel().setValue("number", "1"+szdwbm);
                 //组织名称
                 orgview.getModel().setValue("name", szdwmc);
                 //上级组织
@@ -235,12 +251,15 @@ public class UpdateDataDailyTask extends AbstractTask {
             }
             // 判断一级机构编码 在行政组织中是否存在,不存在则新增
             String yjjgbm = record.getString("nckd_yjbmcode");
+            if (!yjjgbm.isEmpty()) {
+                yjjgbm=yjjgbm.substring(1);
+            }
             String yjjgmc = record.getString("nckd_yjbmname");
             //一级机构
             DynamicObject yjjg = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{new QFilter("number", "=", yjjgbm)});
             if (yjjg == null) {
                 IFormView yjjgView=ABillServiceHelper.createAddView("bos_adminorg");
-                yjjgView.getModel().setValue("number", yjjgbm);
+                yjjgView.getModel().setValue("number","1"+yjjgbm);
                 yjjgView.getModel().setValue("name", yjjgmc);
                 yjjgView.getModel().setValue("parent", org); // 父级组织为 org
                 yjjgView.getModel().setValue("orgpattern", xingtaiinfo);
@@ -261,12 +280,15 @@ public class UpdateDataDailyTask extends AbstractTask {
             }
             // 判断所在部门编码 在行政组织中是否存在,不存在则新增
             String szbmbm = record.getString("nckd_orgidcode");
+            if (!szbmbm.isEmpty()) {
+                szbmbm=szdwbm.substring(1);
+            }
             String szbmmc = record.getString("nckd_orgidname");
             //所在部门
             DynamicObject szbm = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{new QFilter("number", "=", szbmbm)});
             if (szbm == null) {
                 IFormView szbmView=ABillServiceHelper.createAddView("bos_adminorg");
-                szbmView.getModel().setValue("number", szbmbm);
+                szbmView.getModel().setValue("number", "1"+szbmbm);
                 szbmView.getModel().setValue("name", szbmmc);
                 szbmView.getModel().setValue("parent", yjjg); // 设置父级为 yjjg
                 szbmView.getModel().setValue("orgpattern", xingtaiinfo);