|  | @@ -215,8 +215,6 @@ public class UpdateDataDailyTask extends AbstractTask {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          for (DynamicObject record : nckdData) {
 |  |          for (DynamicObject record : nckdData) {
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |              // 判断并创建或更新所在单位
 |  |              // 判断并创建或更新所在单位
 | 
											
												
													
														|  |              //所在单位编码
 |  |              //所在单位编码
 | 
											
												
													
														|  |              String szdwbm = record.getString("nckd_szdwcode");
 |  |              String szdwbm = record.getString("nckd_szdwcode");
 | 
											
										
											
												
													
														|  | @@ -331,14 +329,18 @@ public class UpdateDataDailyTask extends AbstractTask {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  | -    //根据基础资料更新人员
 |  | 
 | 
											
												
													
														|  | 
 |  | +    //根据基础资料更新在职人员
 | 
											
												
													
														|  |      public void updateperson()
 |  |      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 表中获取所有人员数据,假设通过某个条件查找
 |  |          // 从 nckd_basicdata 表中获取所有人员数据,假设通过某个条件查找
 | 
											
												
													
														|  |          DynamicObject[] personDataArray = BusinessDataServiceHelper.load(
 |  |          DynamicObject[] personDataArray = BusinessDataServiceHelper.load(
 | 
											
												
													
														|  |                  "nckd_basicdata",
 |  |                  "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",
 |  |                  "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) {
 |  |          if (personDataArray == null || personDataArray.length == 0) {
 | 
											
												
													
														|  |              log.info("未从 nckd_basicdata 表中获取到任何人员数据!");
 |  |              log.info("未从 nckd_basicdata 表中获取到任何人员数据!");
 | 
											
										
											
												
													
														|  | @@ -514,13 +516,8 @@ public class UpdateDataDailyTask extends AbstractTask {
 | 
											
												
													
														|  |                      // 获取组织的分录集合 structure 的第一条数据
 |  |                      // 获取组织的分录集合 structure 的第一条数据
 | 
											
												
													
														|  |                      DynamicObjectCollection structureInfoCollection = orginfo.getDynamicObjectCollection("structure");
 |  |                      DynamicObjectCollection structureInfoCollection = orginfo.getDynamicObjectCollection("structure");
 | 
											
												
													
														|  |                      if (structureInfoCollection != null && !structureInfoCollection.isEmpty()) {
 |  |                      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 {
 |  |                      } else {
 | 
											
												
													
														|  |                          log.info("部门编码为 " + deptCode + " 的部门缺少组织结构信息,跳过该记录。");
 |  |                          log.info("部门编码为 " + deptCode + " 的部门缺少组织结构信息,跳过该记录。");
 | 
											
												
													
														|  |                      }
 |  |                      }
 | 
											
										
											
												
													
														|  | @@ -597,6 +594,127 @@ public class UpdateDataDailyTask extends AbstractTask {
 | 
											
												
													
														|  |          }else{
 |  |          }else{
 | 
											
												
													
														|  |              log.info(msg);
 |  |              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接口配置信息编码
 |  |      //根据接口配置信息获取组织人员,拼接服务器文件路径url,参数为urlcode接口配置信息编码
 | 
											
												
													
														|  |      public String getFileUrl(String urlcode)
 |  |      public String getFileUrl(String urlcode)
 |