|
|
@@ -89,7 +89,7 @@ public class AdminOrgDetailConfirmChangeOpPlugin extends AbstractOperationServic
|
|
|
endOpParentHandler();
|
|
|
break;
|
|
|
case CHANGETYPE_INFO:
|
|
|
- endOpInfoHandler(dataEntities);
|
|
|
+ //endOpInfoHandler(dataEntities);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -113,7 +113,7 @@ public class AdminOrgDetailConfirmChangeOpPlugin extends AbstractOperationServic
|
|
|
));
|
|
|
|
|
|
// 根据结构编码获取组织
|
|
|
- DynamicObjectCollection adminOrgDyColl = QueryServiceHelper.query(AdminOrgConstant.ADMINORGHR_ENTITYID, String.join(",", AdminOrgConstant.BOID_KEY, AdminOrgConstant.STRUCTNUMBER), new QFilter[]{new QFilter(AdminOrgConstant.STRUCTNUMBER, QCP.in, new ArrayList<String>(structMap.keySet())).and(QFilterCommonHelper.getCurrentVersionFilter())}, AdminOrgConstant.LEVEL);
|
|
|
+ DynamicObjectCollection adminOrgDyColl = QueryServiceHelper.query(AdminOrgConstant.ADMINORGHR_ENTITYID, String.join(",", AdminOrgConstant.BOID_KEY, AdminOrgConstant.STRUCTNUMBER), new QFilter[]{new QFilter(AdminOrgConstant.STRUCTNUMBER, QCP.in, new ArrayList<String>(structMap.keySet())).and(QFilterCommonHelper.getCurrentVersionFilter())}, String.join(",", AdminOrgConstant.LEVEL, AdminOrgConstant.NUMBER_KEY));
|
|
|
adminOrgDyColl.forEach(adminOrgDy -> structMap.put(adminOrgDy.getString(AdminOrgConstant.STRUCTNUMBER), adminOrgDy.getString(AdminOrgConstant.BOID_KEY)));
|
|
|
|
|
|
// 更新一二三四五六级组织
|
|
|
@@ -133,11 +133,14 @@ public class AdminOrgDetailConfirmChangeOpPlugin extends AbstractOperationServic
|
|
|
* @param dataEntities
|
|
|
*/
|
|
|
private void endOpInfoHandler(DynamicObject[] dataEntities) {
|
|
|
+ // 存放变更数据的BOID
|
|
|
+ List<Long> boIds = new ArrayList<Long>();
|
|
|
// 获取组织结构编码
|
|
|
Map<String, Long> structNumberMap = new HashMap<String, Long>();
|
|
|
// 拼接过滤条件
|
|
|
QFilter qFilter = QFilter.of("1!=1");
|
|
|
for (DynamicObject data : dataEntities) {
|
|
|
+ boIds.add(data.getLong(AdminOrgConstant.BOID_KEY));
|
|
|
structNumberMap.put(data.getString(AdminOrgConstant.STRUCTNUMBER), data.getLong(AdminOrgConstant.ID_KEY));
|
|
|
qFilter.or(QFilter.like(AdminOrgConstant.STRUCTLONGNUMBER, data.getString(AdminOrgConstant.STRUCTLONGNUMBER)+"%"));
|
|
|
}
|
|
|
@@ -150,7 +153,7 @@ public class AdminOrgDetailConfirmChangeOpPlugin extends AbstractOperationServic
|
|
|
// 存放关联历史版本ID和要更新的字段以及值
|
|
|
Map<Long, String> sourceIdMap = new HashMap<Long, String>();
|
|
|
// 查询需要更新的组织(当前版本含本身)
|
|
|
- DynamicObject[] adminOrgDys = BusinessDataServiceHelper.load(AdminOrgConstant.ADMINORGHR_ENTITYID, selectProperties, new QFilter[]{qFilter}, AdminOrgConstant.LEVEL);
|
|
|
+ DynamicObject[] adminOrgDys = BusinessDataServiceHelper.load(AdminOrgConstant.ADMINORGHR_ENTITYID, selectProperties, new QFilter[]{qFilter}, String.join(",", AdminOrgConstant.LEVEL, AdminOrgConstant.NUMBER_KEY));
|
|
|
for (DynamicObject adminOrgDy : adminOrgDys) {
|
|
|
for (String structNumber : structNumberMap.keySet()) {
|
|
|
if (adminOrgDy.getString(AdminOrgConstant.STRUCTLONGNUMBER).contains(structNumber)) {
|
|
|
@@ -166,10 +169,15 @@ public class AdminOrgDetailConfirmChangeOpPlugin extends AbstractOperationServic
|
|
|
|
|
|
// 查询出历史版本记录
|
|
|
Set<Long> sourceIds = new HashSet<>(sourceIdMap.keySet());
|
|
|
- DynamicObject[] adminOrgHisDys = BusinessDataServiceHelper.load(AdminOrgConstant.ADMINORGHR_ENTITYID, String.join(",", AdminOrgConstant.ADMINORG_STRUCT_FIELDS), new QFilter[]{new QFilter(AdminOrgConstant.ID_KEY, QCP.in, sourceIds)}, AdminOrgConstant.LEVEL);
|
|
|
+ DynamicObject[] adminOrgHisDys = BusinessDataServiceHelper.load(AdminOrgConstant.ADMINORGHR_ENTITYID, String.join(",", AdminOrgConstant.STRUCTLONGNUMBER, adminOrgStructField), new QFilter[]{new QFilter(AdminOrgConstant.ID_KEY, QCP.in, sourceIds)}, String.join(",", AdminOrgConstant.LEVEL, AdminOrgConstant.NUMBER_KEY));
|
|
|
for (DynamicObject adminOrgHisDy : adminOrgHisDys) {
|
|
|
String[] sourceId = sourceIdMap.get(adminOrgHisDy.getLong(AdminOrgConstant.ID_KEY)).split("@");
|
|
|
- adminOrgHisDy.set(sourceId[0], Long.valueOf(sourceId[1]));
|
|
|
+ // 判断是否此次变更的组织
|
|
|
+ if (boIds.indexOf(adminOrgHisDy.getLong(AdminOrgConstant.BOID_KEY)) > 0) {
|
|
|
+ adminOrgHisDy.set(sourceId[0], adminOrgHisDy.getLong(AdminOrgConstant.ID_KEY));
|
|
|
+ } else {
|
|
|
+ adminOrgHisDy.set(sourceId[0], Long.valueOf(sourceId[1]));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 合并数据
|