|
@@ -138,7 +138,9 @@ public class TestPlugin extends AbstractListPlugin {
|
|
|
//不存在这条数据则新增一条到data中
|
|
|
data = new DynamicObject(dynamicObjectType);
|
|
|
for (int i = 0; i < selector.size(); i++) {
|
|
|
- data.set(selector.get(i), fields[i]);
|
|
|
+ if (!fields[i].isEmpty()) {
|
|
|
+ data.set(selector.get(i), fields[i]);
|
|
|
+ }
|
|
|
}
|
|
|
Date now = new Date();
|
|
|
data.set("nckd_createdate", now);
|
|
@@ -581,11 +583,13 @@ public class TestPlugin extends AbstractListPlugin {
|
|
|
}
|
|
|
//生成数据
|
|
|
else if ("scsj".equals(e.getOperateKey())) {//从文件读取数据插入基础资料
|
|
|
- try {
|
|
|
- generateDataFile(getFileUrl("organduserurl"));
|
|
|
- } catch (IOException ex) {
|
|
|
- throw new RuntimeException(ex);
|
|
|
- }
|
|
|
+ generateDataFile(filePath);
|
|
|
+// try {
|
|
|
+// generateDataFile(getFileUrl("organduserurl"));
|
|
|
+//
|
|
|
+// } catch (IOException ex) {
|
|
|
+// throw new RuntimeException(ex);
|
|
|
+// }
|
|
|
}
|
|
|
//减值数据,导入数据先删除旧的数据
|
|
|
if ("jzsj".equals(e.getOperateKey()))
|
|
@@ -799,172 +803,8 @@ public class TestPlugin extends AbstractListPlugin {
|
|
|
//获取linux服务器连接
|
|
|
if ("connect".equals(e.getOperateKey()))
|
|
|
{
|
|
|
- //更新人员
|
|
|
- // 从 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
|
|
|
- );
|
|
|
- if (personDataArray == null || personDataArray.length == 0) {
|
|
|
- this.getView().showMessage("未从 nckd_basicdata 表中获取到任何人员数据!");
|
|
|
- return;
|
|
|
- }
|
|
|
- String msg="";
|
|
|
- for (DynamicObject personData : personDataArray) {
|
|
|
- //获取id
|
|
|
- String id=personData.getString("id");
|
|
|
- // 获取工号
|
|
|
- String gonghao = personData.getString("nckd_employeeid");
|
|
|
- if (gonghao == null || gonghao.isEmpty()) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- //获取姓名
|
|
|
- String empname=personData.getString("");
|
|
|
- // 查询用户是否已存在
|
|
|
- DynamicObject existingUser = BusinessDataServiceHelper.loadSingle(
|
|
|
- "bos_user", new QFilter[]{new QFilter("number", "=", gonghao)}
|
|
|
- );
|
|
|
- // 用户已存在,进行数据更新
|
|
|
- if (existingUser != null) {
|
|
|
- //初始化
|
|
|
- boolean isUpdated = false;
|
|
|
- // 比较并更新性别
|
|
|
- Object newGender = personData.get("nckd_gender");
|
|
|
- if (!newGender.equals(existingUser.get("gender"))) {
|
|
|
- existingUser.set("gender", newGender);
|
|
|
- isUpdated = true;
|
|
|
- }
|
|
|
- // 比较并更新手机号
|
|
|
- Object newPhone = personData.get("nckd_sjh");
|
|
|
- if (!newPhone.equals(existingUser.get("phone"))) {
|
|
|
- existingUser.set("phone", newPhone);
|
|
|
- isUpdated = true;
|
|
|
- }
|
|
|
- //更新部门和岗位
|
|
|
- DynamicObjectCollection existingDeptEntries = existingUser.getDynamicObjectCollection("entryentity");
|
|
|
- //人员部门分录
|
|
|
- DynamicObject existingDeptEntry = existingDeptEntries.isEmpty() ? null : existingDeptEntries.get(0);
|
|
|
- // 获取新的部门信息
|
|
|
- String deptCode = personData.getString("nckd_orgidcode");
|
|
|
- DynamicObject newOrgInfo = BusinessDataServiceHelper.loadSingle(
|
|
|
- "bos_adminorg", new QFilter[]{new QFilter("number", "=", deptCode)}
|
|
|
- );
|
|
|
- boolean deptUpdated = false;
|
|
|
- if (newOrgInfo != null) {
|
|
|
- if (existingDeptEntry == null) {
|
|
|
- // 如果没有现有部门分录,则添加新的部门分录
|
|
|
- existingDeptEntry = existingDeptEntries.addNew();
|
|
|
- deptUpdated = true;
|
|
|
- }
|
|
|
- // 比较并更新部门信息
|
|
|
- if (!deptCode.equals(existingDeptEntry.get("dpt.number"))) {
|
|
|
- existingDeptEntry.set("dpt", newOrgInfo);
|
|
|
- deptUpdated = true;
|
|
|
- }
|
|
|
- // 更新组织结构
|
|
|
- DynamicObjectCollection structureInfoCollection = newOrgInfo.getDynamicObjectCollection("structure");
|
|
|
- if (structureInfoCollection != null && !structureInfoCollection.isEmpty()) {
|
|
|
- DynamicObject structureInfo = structureInfoCollection.get(0);
|
|
|
- if(existingDeptEntry.getDynamicObject("orgstructure")!=null){
|
|
|
- if (!structureInfo.getPkValue().equals(existingDeptEntry.getDynamicObject("orgstructure").getPkValue())) {
|
|
|
- existingDeptEntry.set("orgstructure", structureInfo.getPkValue());
|
|
|
- deptUpdated = true;
|
|
|
- }
|
|
|
- }else{
|
|
|
- existingDeptEntry.set("orgstructure", structureInfo.getPkValue());
|
|
|
- deptUpdated = true;
|
|
|
- }
|
|
|
- }
|
|
|
- // 标记是否需要保存
|
|
|
- if (deptUpdated) {
|
|
|
- isUpdated = true;
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.getView().showMessage("未找到部门编码为 " + deptCode + " 的部门信息!");
|
|
|
- }
|
|
|
- // 获取新的岗位信息
|
|
|
- String postName = personData.getString("nckd_posidname");
|
|
|
- if (!postName.equals(existingDeptEntry.getString("position"))) {
|
|
|
- existingDeptEntry.set("position", postName);
|
|
|
- isUpdated = true;
|
|
|
- }
|
|
|
- // 如果有更新则保存
|
|
|
- if (isUpdated) {
|
|
|
- SaveServiceHelper.save(new DynamicObject[]{existingUser});
|
|
|
- msg+="工号为 " + gonghao + " 的用户信息已更新!";
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 用户不存在,创建新用户
|
|
|
- DynamicObjectType userType = EntityMetadataCache.getDataEntityType("bos_user");
|
|
|
- DynamicObject userinfo = new DynamicObject(userType);
|
|
|
- ORM impl = ORM.create();
|
|
|
- userinfo.set("id", impl.genLongId("bos_user"));
|
|
|
- userinfo.set("number", gonghao);
|
|
|
- // 设置其他字段
|
|
|
- userinfo.set("gender", personData.get("nckd_gender"));
|
|
|
- //人员手机号
|
|
|
- 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());
|
|
|
- // 设置姓名和拼音
|
|
|
- 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);
|
|
|
- // 设置用户名
|
|
|
- String username = UserOperationUtils.getUserNameByFormatedFullPinyin(
|
|
|
- (long) userinfo.getPkValue(), fullPinyin, null
|
|
|
- );
|
|
|
- userinfo.set("username", username);
|
|
|
- // 创建部门分录
|
|
|
- DynamicObjectCollection bmflList = userinfo.getDynamicObjectCollection("entryentity");
|
|
|
- DynamicObject bumeninfo = bmflList.addNew();
|
|
|
- // 获取部门编码并在 bos_adminorg 表中查找部门信息
|
|
|
- String deptCode = personData.getString("nckd_orgidcode");
|
|
|
- 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 {
|
|
|
- this.getView().showMessage("部门编码为 " + deptCode + " 的部门缺少组织结构信息,跳过该记录。");
|
|
|
- }
|
|
|
- }
|
|
|
- String postName = personData.getString("nckd_posidname");;
|
|
|
- bumeninfo.set("position", postName);
|
|
|
- //所在岗位名称
|
|
|
- String positionnumber = personData.getString("nckd_posidname");;
|
|
|
- bumeninfo.set("post", positionnumber);
|
|
|
- // 保存新用户信息
|
|
|
- SaveServiceHelper.save(new DynamicObject[]{userinfo});
|
|
|
- msg+="工号为 " + gonghao + " 的用户已创建!";
|
|
|
- }
|
|
|
- }
|
|
|
- if("".equals(msg)){
|
|
|
- this.getView().showMessage("没有需要更新或新增的人员");
|
|
|
- }else{
|
|
|
- this.getView().showMessage(msg);
|
|
|
- }
|
|
|
+ generateDataFile(filePath);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|