|
@@ -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)
|