Răsfoiți Sursa

人员同步修改

zhouger 5 luni în urmă
părinte
comite
fa3bbb6f6a

+ 23 - 0
src/main/java/sys/sc/formplugin/BosUserPlugin.java

@@ -0,0 +1,23 @@
+package sys.sc.formplugin;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.form.plugin.AbstractFormPlugin;
+
+/**
+ * @author cjz
+ * @date 2024/11/27 15:10
+ * @description:人员手动更新后,设置标记,同步时跳过这条数据的字段
+ */
+public class BosUserPlugin extends AbstractFormPlugin {
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.beforePropertyChanged(e);
+        String name = e.getProperty().getName();//获取字段标识
+        //手动修改了负责人值,则给上标记
+        if (name.equals("isincharge")) {
+            this.getModel().setValue("nckd_keyperson","1");
+        }
+    }
+}

+ 59 - 16
src/main/java/sys/sc/formplugin/TestPlugin.java

@@ -55,6 +55,20 @@ public class TestPlugin  extends AbstractListPlugin {
     public static int port = 22;//端口号
     public static String password="Kd@86262007";//用户密码
 
+
+    //负责人职位字典值
+    public List<String> keyword=Arrays.asList("办公室副主任","办公室主任","党风康政建设办公室副主任(党委巡察办公室副主任)"
+            ,"党风廉政建设办公室主任(党委巡察办公室主任)","党委办公室副主任","党委副书记、副董事长、行长","党委组织部部长(人力资源部总经理)"
+            ,"党委組织部副部长(人力资源部副总经理)","党政办公室副主任","党政办公室主任","电子渠道部副总经理","董事会办公室副主任","董事会办公室主任"
+            ,"发展规划部副总经理","发展规划部总经理","分中心经理","风险管理部副经理","风险管理部副总经理","风险管理部经理","风险管理部总经理"
+            ,"风险合规部副经理(纪检办公室副主任)","风险合规部经理(纪检办公室主任)","副经理","副总经理","副总经理(主持工作)","个人业务部副经理"
+            ,"个人业务部副总经理","个人业务部经理","工会办公室主任","公司业务部副经理","公司业务部副总经理","公司业务部经理","公司业务部总经理"
+            ,"行政保卫部副总经理","行政保卫部总经理","合规部副经理(纪检办公室副主任)","合规部副总经理","合规部经理(紀检办公室主任)","合规部总经理"
+            ,"计划财务部副经理(信息科技部副经理)","计划财务部副总经理","计划财务部经理(信息科技部经理)","计划财务部总经理","纪检监察室主任","监事会办公室主任"
+            ,"交易银行部副总经理","交易银行部总经理","金融市场部副总经理","金融市场部总经理","经理","零售信贷部副总经理","普惠金融部副经理","普惠金融部副总经理"
+            ,"普惠金融部经理","审计部副总经理","审计部总经理","市场部副经理","首席信息官","授信审批部副总经理","授情审批部总经理","消费者权益保护部总经理"
+            ,"信息科技部副总经理","信用卡部总经理","营运管理部副总经理","营运管理部经理","营运管理部总经理");
+
     //根据接口配置信息获取组织人员,拼接服务器文件路径url,参数为urlcode接口配置信息编码
     public String getFileUrl(String urlcode) throws IOException {
         //组织人员接口配置信息获取
@@ -379,15 +393,6 @@ public class TestPlugin  extends AbstractListPlugin {
                         existingDeptEntry.set("position", "无");
                         isUpdated = true;
                     }
-                    //员工状态不为在职,试用期,退二线则设置人员状态为禁用
-//                    String nckd_status=personData.getString("nckd_status");
-//                    if ((!("01".equals(nckd_status)))  && !("02".equals(nckd_status)) && !("04".equals(nckd_status)))
-//                    {
-//                        //设置使用状态为禁用
-//                        existingUser.set("enable","0");
-//                        isUpdated=true;
-//
-//                    }
                     // 如果有更新则保存
                     if (isUpdated) {
                         SaveServiceHelper.save(new DynamicObject[]{existingUser});
@@ -495,6 +500,36 @@ public class TestPlugin  extends AbstractListPlugin {
                 }
             }
 
+            //刷新人员负责人字段,在职试用退二线,且不为手工维护
+            QFilter qFilter=new QFilter("nckd_status",QCP.equals,"01");
+            qFilter.or("nckd_status",QCP.equals,"02");
+            qFilter.or("nckd_status",QCP.equals,"04");
+            qFilter.and("nckd_keyperson",QCP.equals,"0");
+            DynamicObject[] userinfo=BusinessDataServiceHelper
+                    .load("bos_user","id,nckd_person,entryentity,isincharge,position",new QFilter[]{qFilter});
+            for (DynamicObject item:userinfo){
+                //获取人员分录
+                DynamicObjectCollection dyCollection=item.getDynamicObjectCollection("entryentity");
+                DynamicObject existingDeptEntry=null;
+                //循环,获取到不为兼职的人员分录数据
+                for (DynamicObject dep:dyCollection) {
+                    //改变分录不是兼职的分录数据
+                    if (!dep.getBoolean("ispartjob")){
+                        //人员部门分录
+                        existingDeptEntry = dep;
+                    }
+                }
+                String position=existingDeptEntry.getString("position");
+                for (String key:keyword) {
+                    if (key.equals(position)) {
+                        //设置人员为负责人
+                        existingDeptEntry.set("isincharge","1");
+                    }
+
+                }
+            }
+
+
             if("".equals(msg)){
                 this.getView().showMessage("没有需要更新或新增的人员");
             }else{
@@ -857,13 +892,21 @@ public class TestPlugin  extends AbstractListPlugin {
         //获取linux服务器连接
         if ("connect".equals(e.getOperateKey()))
         {
-            //先删除头像url在赋值
-            DynamicObject[] userinfo=BusinessDataServiceHelper
-                    .load("bos_user","id,gender,fullpinyin,picturefield",null);
-            for (DynamicObject item:userinfo) {
-                item.set("picturefield","");
-            }
-            SaveServiceHelper.save(userinfo);
+//            //先删除头像url在赋值
+//            DynamicObject[] userinfo=BusinessDataServiceHelper
+//                    .load("bos_user","id,gender,fullpinyin,picturefield",null);
+//            for (DynamicObject item:userinfo) {
+//                item.set("picturefield","");
+//            }
+//            SaveServiceHelper.save(userinfo);
+            QFilter qFilter=new QFilter("number",QCP.equals,"001082");
+            DynamicObject user=BusinessDataServiceHelper
+                    .loadSingle("bos_user","id,entryentity,isincharge",new QFilter[]{qFilter});
+            DynamicObjectCollection dyCollection=user.getDynamicObjectCollection("entryentity");
+
+            dyCollection.get(0).set("isincharge","1");
+
+            SaveServiceHelper.save(new DynamicObject[]{user});
         }
 
         if("testaaa".equals(e.getOperateKey())) {