|
@@ -90,7 +90,8 @@ public class PublicreimburOpPlugin extends AbstractOperationServicePlugIn {
|
|
|
}
|
|
|
SaveServiceHelper.save(new DynamicObject[]{info});
|
|
|
} else if (StringUtils.equals(e.getOperationKey(),"save")) {
|
|
|
- List<DynamicObject> dynamicObjectList = new ArrayList<>();
|
|
|
+ List<Long> cardList = new ArrayList<>();
|
|
|
+ List<Long> totalList = new ArrayList<>();
|
|
|
//获取当前页面数据
|
|
|
DynamicObject info = dynamicObjects[i];
|
|
|
Long fid = info.getLong("id");
|
|
@@ -98,16 +99,27 @@ public class PublicreimburOpPlugin extends AbstractOperationServicePlugIn {
|
|
|
DynamicObjectCollection dynamicObjectCollection = entryentity.getDynamicObjectCollection("nckd_real_card");
|
|
|
for(DynamicObject object : dynamicObjectCollection) {
|
|
|
Long id = (Long) object.get(2);
|
|
|
- String listId = String.valueOf(id);
|
|
|
- //查询报销单
|
|
|
- QFilter bxFilter = new QFilter("nckd_card_list_str", QCP.like,listId);
|
|
|
- bxFilter.and("id", QCP.not_equals, fid);
|
|
|
- DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter});
|
|
|
- if (bxDynamicObjects.length > 0) {
|
|
|
- throw new KDBizException("实物卡片清单已经生成资产清单,请重新选择!");
|
|
|
+ cardList.add(id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询报销单
|
|
|
+ QFilter bxFilter = new QFilter("id", QCP.not_equals,fid);
|
|
|
+ bxFilter.and("nckd_card_list_str", QCP.equals, "1");
|
|
|
+ DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter});
|
|
|
+ for (int j = 0; j < bxDynamicObjects.length; j++) {
|
|
|
+ DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[i].getPkValue(), bxDynamicObjects[i].getDynamicObjectType().getName());
|
|
|
+ for (DynamicObject entryentity : bxInfo.getDynamicObjectCollection("assetentry")) {
|
|
|
+ DynamicObjectCollection dynamicObjectCollection = entryentity.getDynamicObjectCollection("nckd_real_card");
|
|
|
+ for(DynamicObject dynamicObject : dynamicObjectCollection) {
|
|
|
+ Long id = (Long) dynamicObject.get(2);
|
|
|
+ totalList.add(id);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ boolean hasCommonElements = cardList.stream().anyMatch(totalList::contains);
|
|
|
+ if (hasCommonElements) {
|
|
|
+ throw new KDBizException("实物卡片清单已经生成资产清单,请重新选择!");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|