|
@@ -152,20 +152,33 @@ public class ChangeDataUtils {
|
|
if (isSame) {
|
|
if (isSame) {
|
|
//经费系统实物卡片编码
|
|
//经费系统实物卡片编码
|
|
List<String> cardNumberList = new ArrayList<>();
|
|
List<String> cardNumberList = new ArrayList<>();
|
|
|
|
+ //中间表绑定的需要更新的资产信息
|
|
|
|
+ List<String> uploadNumberList = new ArrayList<>();
|
|
//经费系统实物卡片关联的e管家实物卡片编码
|
|
//经费系统实物卡片关联的e管家实物卡片编码
|
|
List<String> eCardNumberList = new ArrayList<>();
|
|
List<String> eCardNumberList = new ArrayList<>();
|
|
//numberList 中有而 eCardNumberList 中没有的元素
|
|
//numberList 中有而 eCardNumberList 中没有的元素
|
|
List<String> missingInECard = new ArrayList<>();
|
|
List<String> missingInECard = new ArrayList<>();
|
|
String e_orgId = Arrays.stream(asset).map(item -> item.split(":")[1]).collect(Collectors.toList()).get(0);
|
|
String e_orgId = Arrays.stream(asset).map(item -> item.split(":")[1]).collect(Collectors.toList()).get(0);
|
|
- //查询e管家实物卡片清单
|
|
|
|
|
|
+ //根据中间表关联的资产信息查询e管家实物卡片清单
|
|
QFilter filter = new QFilter("number", QCP.in,numberList);
|
|
QFilter filter = new QFilter("number", QCP.in,numberList);
|
|
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id,nckd_card_real_code",new QFilter[] {filter});
|
|
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id,nckd_card_real_code",new QFilter[] {filter});
|
|
- //查询e管家实物卡片关联的经费系统实物卡片
|
|
|
|
|
|
+ //中间表绑定的资产信息有未同步至经费系统的直接报错
|
|
|
|
+ if(dynamicObjects.length != numberList.size()) {
|
|
|
|
+ return "单据"+billno+"绑定的资产有未同步至星瀚的数据,生成调拨单失败";
|
|
|
|
+ }
|
|
for (DynamicObject eCard : dynamicObjects) {
|
|
for (DynamicObject eCard : dynamicObjects) {
|
|
String cardNumber = eCard.getString("nckd_card_real_code");
|
|
String cardNumber = eCard.getString("nckd_card_real_code");
|
|
- cardNumberList.add(cardNumber);
|
|
|
|
|
|
+ String number = eCard.getString("number");
|
|
|
|
+ if (cardNumber != null) {
|
|
|
|
+ //获取e管家实物卡片关联的经费系统实物卡片
|
|
|
|
+ cardNumberList.add(cardNumber);
|
|
|
|
+ }else {
|
|
|
|
+ //获取需要更新的资产信息
|
|
|
|
+ uploadNumberList.add(number);
|
|
|
|
+ numberList.remove(number);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- //再查经费系统实物卡片关联的e管家实物卡片
|
|
|
|
|
|
+ //再查经费系统实物卡片关联的e管家实物卡片-已经生成实物卡片的e管家实物卡片清单
|
|
QFilter filter1 = new QFilter("nckd_card_real_code", QCP.in,cardNumberList);
|
|
QFilter filter1 = new QFilter("nckd_card_real_code", QCP.in,cardNumberList);
|
|
DynamicObject[] edynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter1});
|
|
DynamicObject[] edynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter1});
|
|
//获取e管家实物卡片编码
|
|
//获取e管家实物卡片编码
|
|
@@ -181,22 +194,9 @@ public class ChangeDataUtils {
|
|
if (!areEqual) {
|
|
if (!areEqual) {
|
|
return "单据"+billno+"绑定的资产与经费系统实物卡片绑定的资产不一致,生成调拨单失败";
|
|
return "单据"+billno+"绑定的资产与经费系统实物卡片绑定的资产不一致,生成调拨单失败";
|
|
}
|
|
}
|
|
- }else {
|
|
|
|
- // 检查 eCardNumberList 是否有 numberList 没有的元素
|
|
|
|
- for (String eCard : eCardNumberList) {
|
|
|
|
- if (!numberList.contains(eCard)) {
|
|
|
|
- return "单据"+billno+"绑定的资产与经费系统实物卡片绑定的资产不一致,生成调拨单失败";
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- for (String number : numberList) {
|
|
|
|
- if (!eCardNumberList.contains(number)) {
|
|
|
|
- missingInECard.add(number);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
- //查询未匹配到的e管家实物卡片做更新
|
|
|
|
- QFilter filter2 = new QFilter("number", QCP.in,missingInECard);
|
|
|
|
|
|
+ //更新e管家实物卡片清单
|
|
|
|
+ QFilter filter2 = new QFilter("number", QCP.in,uploadNumberList);
|
|
DynamicObject[] missingObject = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter2});
|
|
DynamicObject[] missingObject = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter2});
|
|
Long deptId = getOrg(info.getString("nckd_dept_in"));
|
|
Long deptId = getOrg(info.getString("nckd_dept_in"));
|
|
Long orgId = getRelation(deptId);
|
|
Long orgId = getRelation(deptId);
|