Browse Source

更新离退人员

zhouger 5 months ago
parent
commit
f6652c82af

+ 13 - 10
src/main/java/fi/em/formPlugin/TravelTotalPlugin.java

@@ -78,19 +78,22 @@ public class TravelTotalPlugin extends AbstractFormPlugin {
             }
             //遍历汇总分录
             DynamicObjectCollection dynamicObjects=dynamicObject.getDynamicObjectCollection(entryentity);
-            for (int i=0;i<dynamicObjects.size();i++)
-            {
-                DynamicObject item=dynamicObjects.get(i);
-                DynamicObject nckd_travelitem=item.getDynamicObject("nckd_travelitem");
-                Iterator<Map.Entry<DynamicObject, BigDecimal>> it = oriMap.entrySet().iterator();
-                while (it.hasNext()) {
-                    Map.Entry<DynamicObject, BigDecimal> entry = it.next();
-                    //遍历map,费用项目相等则赋值核定金额
-                    if (entry.getKey().equals(nckd_travelitem)) {
-                        this.getModel().setValue("nckd_triamount",entry.getValue(),i);
+            if (!dynamicObjects.isEmpty()) {
+                for (int i=0;i<dynamicObjects.size();i++)
+                {
+                    DynamicObject item=dynamicObjects.get(i);
+                    DynamicObject nckd_travelitem=item.getDynamicObject("nckd_travelitem");
+                    Iterator<Map.Entry<DynamicObject, BigDecimal>> it = oriMap.entrySet().iterator();
+                    while (it.hasNext()) {
+                        Map.Entry<DynamicObject, BigDecimal> entry = it.next();
+                        //遍历map,费用项目相等则赋值核定金额
+                        if (entry.getKey().equals(nckd_travelitem)) {
+                            this.getModel().setValue("nckd_triamount",entry.getValue(),i);
+                        }
                     }
                 }
             }
+
             //刷新分录
             this.getView().updateView("nckd_entryentity");
         }

+ 7 - 2
src/main/java/fi/em/formPlugin/TripreimBurseEditPlugin.java

@@ -8,6 +8,7 @@ import kd.bos.form.FormShowParameter;
 import kd.bos.form.ShowType;
 import kd.bos.form.events.AfterDoOperationEventArgs;
 import kd.bos.form.events.ClosedCallBackEvent;
+import kd.bos.form.plugin.AbstractFormPlugin;
 import kd.bos.list.plugin.AbstractListPlugin;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
@@ -21,8 +22,12 @@ import org.apache.commons.lang3.StringUtils;
 import java.math.BigDecimal;
 import java.util.HashMap;
 
-
-public class TripreimBurseEditPlugin extends AbstractListPlugin implements Plugin {
+/**
+ * @author cjz
+ * @date 2024/11/7 15:45
+ * @description:预付借款单
+ */
+public class TripreimBurseEditPlugin extends AbstractFormPlugin implements Plugin {
     public static String btn_NOTICE = "donothing"; //操作
     public static String btn_NOTICES = "bxdtc"; //操作标识
     public static String nckd_agentparameterf1 = "nckd_agentparameterf1";//弹窗界面标识

+ 129 - 11
src/main/java/sys/sc/task/UpdateDataDailyTask.java

@@ -215,8 +215,6 @@ public class UpdateDataDailyTask extends AbstractTask {
 
 
         for (DynamicObject record : nckdData) {
-
-
             // 判断并创建或更新所在单位
             //所在单位编码
             String szdwbm = record.getString("nckd_szdwcode");
@@ -331,14 +329,18 @@ public class UpdateDataDailyTask extends AbstractTask {
 
 
     }
-    //根据基础资料更新人员
+    //根据基础资料更新在职人员
     public void updateperson()
     {
+        //筛选在职,试用期,退二线的人
+        QFilter filter=new QFilter("nckd_status",QCP.equals,"01");
+        filter.or("nckd_status",QCP.equals,"02");
+        filter.or("nckd_status",QCP.equals,"04");
         // 从 nckd_basicdata 表中获取所有人员数据,假设通过某个条件查找
         DynamicObject[] personDataArray = BusinessDataServiceHelper.load(
                 "nckd_basicdata",
                 "id,nckd_employeeid,nckd_name,nckd_gender,nckd_nl,nckd_zzmm,nckd_zgxl,nckd_orgidname,nckd_orgidcode,nckd_posidname,nckd_posidcode,nckd_yggxlb,nckd_status,nckd_sjh",
-                null
+                new QFilter[]{filter}
         );
         if (personDataArray == null || personDataArray.length == 0) {
             log.info("未从 nckd_basicdata 表中获取到任何人员数据!");
@@ -514,13 +516,8 @@ public class UpdateDataDailyTask extends AbstractTask {
                     // 获取组织的分录集合 structure 的第一条数据
                     DynamicObjectCollection structureInfoCollection = orginfo.getDynamicObjectCollection("structure");
                     if (structureInfoCollection != null && !structureInfoCollection.isEmpty()) {
-                        for (DynamicObject item:structureInfoCollection) {
-                            //不为兼职则更新
-                            if (!item.getBoolean("ispartjob")) {
-                                DynamicObject structureInfo=item;//获取结构信息
-                                bumeninfo.set("orgstructure",structureInfo.getPkValue());
-                            }
-                        }
+                        DynamicObject structureInfo = structureInfoCollection.get(0);
+                        bumeninfo.set("orgstructure",structureInfo.getPkValue());
                     } else {
                         log.info("部门编码为 " + deptCode + " 的部门缺少组织结构信息,跳过该记录。");
                     }
@@ -597,6 +594,127 @@ public class UpdateDataDailyTask extends AbstractTask {
         }else{
             log.info(msg);
         }
+    }
+    //根据基础资料更新离退人员
+    public void updataReperson() {
+        //筛选离退休人员
+        QFilter filter=new QFilter("nckd_status",QCP.equals,"05");
+        filter.or("nckd_status",QCP.equals,"06");
+        filter.or("nckd_status",QCP.equals,"09");
+        filter.or("nckd_status",QCP.equals,"11");
+        // 从 nckd_basicdata 表中获取所有人员数据
+        DynamicObject[] personDataArray = BusinessDataServiceHelper.load(
+                "nckd_basicdata",
+                "id,nckd_employeeid,nckd_name,nckd_gender,nckd_nl,nckd_zzmm,nckd_zgxl,nckd_orgidname,nckd_orgidcode,nckd_posidname,nckd_posidcode,nckd_yggxlb,nckd_status,nckd_sjh",
+                new QFilter[]{filter}
+        );
+        for (DynamicObject personData : personDataArray) {
+            // 获取工号
+            String gonghao = personData.getString("nckd_employeeid");
+            // 查询用户是否已存在
+            DynamicObject existingUser = BusinessDataServiceHelper.loadSingle(
+                    "bos_user", new QFilter[]{new QFilter("number", "=", gonghao)}
+            );
+            if (existingUser==null) {
+                // 用户不存在,创建新用户
+                DynamicObjectType userType = EntityMetadataCache.getDataEntityType("bos_user");
+                DynamicObject userinfo = new DynamicObject(userType);
+                ORM impl = ORM.create();
+                Long userid= impl.genLongId("bos_user");
+                userinfo.set("id",userid);
+                userinfo.set("number", gonghao);
+                // 设置其他字段
+                userinfo.set("gender", personData.get("nckd_gender"));
+                if (("").equals(personData.get("nckd_gender"))) {
+                    userinfo.set("gender","0");
+                }else {
+                    userinfo.set("gender", personData.get("nckd_gender"));
+                }
+                //人员状态
+                String nckd_status=personData.getString("nckd_status");
+                userinfo.set("nckd_status",nckd_status);
+                //人员手机号
+                userinfo.set("phone", personData.get("nckd_sjh"));
+                // 设置其他固定字段
+                userinfo.set("startdate", new Date());
+                Calendar c = Calendar.getInstance();
+                c.set(Calendar.YEAR, 2999);
+                userinfo.set("enddate", c.getTime());
+                userinfo.set("masterid", userinfo.get("id"));
+                userinfo.set("enable", 1);
+                userinfo.set("status", "C");
+                userinfo.set("password", "8HrquJnZfyOkmmHkpGLXfg==");
+                userinfo.set("isregisted", "1");
+                userinfo.set("isactived", "1");
+                userinfo.set("pswstrategy", "338333884850648064");
+                userinfo.set("psweffectivedate", new Date());
+                userinfo.set("useenddate", c.getTime());
+                userinfo.set("creator","1");
+                userinfo.set("modifier","1");
+                userinfo.set("usertype","1");
+                // 设置姓名和拼音
+                String name = personData.getString("nckd_name");
+                userinfo.set("name", name);
+                String fullPinyin = UserOperationUtils.getFullSpellByName(name);
+                String simplePinyin = UserOperationUtils.getFirstSpellByName(name);
+                userinfo.set("fullpinyin", fullPinyin);
+                userinfo.set("simplepinyin", simplePinyin);
+                // 设置用户名为工号
+                userinfo.set("username", gonghao);
+                // 创建部门分录
+                DynamicObjectCollection bmflList = userinfo.getDynamicObjectCollection("entryentity");
+                DynamicObject bumeninfo = bmflList.addNew();
+                // 获取部门编码并在 bos_adminorg 表中查找部门信息
+//                String deptCode = personData.getString("nckd_orgidcode");
+                String deptCode = "9999";
+                DynamicObject orginfo = BusinessDataServiceHelper.loadSingle(
+                        "bos_adminorg", new QFilter[]{new QFilter("number", "=", deptCode)}
+                );
+                if (orginfo != null) {
+                    bumeninfo.set("dpt", orginfo);
+                    // 获取组织的分录集合 structure 的第一条数据
+                    DynamicObjectCollection structureInfoCollection = orginfo.getDynamicObjectCollection("structure");
+                    if (structureInfoCollection != null && !structureInfoCollection.isEmpty()) {
+                        DynamicObject structureInfo = structureInfoCollection.get(0);
+                        bumeninfo.set("orgstructure",structureInfo.getPkValue());
+                    } else {
+                        log.info("部门编码为 " + deptCode + " 的部门缺少组织结构信息,跳过该记录。");
+                    }
+                }
+                String postName = personData.getString("nckd_posidname");
+                //职位
+                if (("").equals(postName)) {
+                    bumeninfo.set("position", "无");
+                }else {
+                    bumeninfo.set("position", postName);
+                }
+                //所在岗位名称
+                String positionnumber = personData.getString("nckd_posidname");
+                if ("".equals(positionnumber)) {
+                    bumeninfo.set("post", "无");
+                }else {
+                    bumeninfo.set("post", positionnumber);
+                }
+
+                //新增人员头像
+                UserUtils.createAvatar(new DynamicObject[]{userinfo});
+                // 保存新用户信息
+                SaveServiceHelper.save(new DynamicObject[]{userinfo});
+                DBRoute dbRoute=new DBRoute("sys");
+                //生成唯一19位id
+                long timestamp = System.currentTimeMillis();
+                Random random = new Random();
+                int randomNumber = random.nextInt(900000)+100000;
+                int checksum = (int)((timestamp + randomNumber) %10);
+                String fpkid = String.format("%d%d%d",timestamp,randomNumber,checksum);
+                //获取人员的id
+                String sql ="insert into t_sec_usertypes(fpkid,fid,fbasedataid) values(?,?,?)";
+                //刷新新增人员的类型
+                DB.update(dbRoute,sql,new Object[]{Long.valueOf(fpkid.substring(1)), userid,Long.valueOf("1")});
+            }
+        }
+
+
     }
     //根据接口配置信息获取组织人员,拼接服务器文件路径url,参数为urlcode接口配置信息编码
     public String getFileUrl(String urlcode)