|  | @@ -152,20 +152,33 @@ public class ChangeDataUtils {
 | 
	
		
			
				|  |  |          if (isSame) {
 | 
	
		
			
				|  |  |              //经费系统实物卡片编码
 | 
	
		
			
				|  |  |              List<String> cardNumberList = new ArrayList<>();
 | 
	
		
			
				|  |  | +            //中间表绑定的需要更新的资产信息
 | 
	
		
			
				|  |  | +            List<String> uploadNumberList = new ArrayList<>();
 | 
	
		
			
				|  |  |              //经费系统实物卡片关联的e管家实物卡片编码
 | 
	
		
			
				|  |  |              List<String> eCardNumberList = new ArrayList<>();
 | 
	
		
			
				|  |  |              //numberList 中有而 eCardNumberList 中没有的元素
 | 
	
		
			
				|  |  |              List<String> missingInECard = new ArrayList<>();
 | 
	
		
			
				|  |  |              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);
 | 
	
		
			
				|  |  |              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) {
 | 
	
		
			
				|  |  |                  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);
 | 
	
		
			
				|  |  |              DynamicObject[] edynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter1});
 | 
	
		
			
				|  |  |              //获取e管家实物卡片编码
 | 
	
	
		
			
				|  | @@ -181,22 +194,9 @@ public class ChangeDataUtils {
 | 
	
		
			
				|  |  |                  if (!areEqual) {
 | 
	
		
			
				|  |  |                      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});
 | 
	
		
			
				|  |  |              Long deptId = getOrg(info.getString("nckd_dept_in"));
 | 
	
		
			
				|  |  |              Long orgId = getRelation(deptId);
 |