| 
					
				 | 
			
			
				@@ -0,0 +1,74 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package fi.fa.opplugin; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.druid.util.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.dataentity.entity.DynamicObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.dataentity.entity.DynamicObjectCollection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.entity.plugin.AbstractOperationServicePlugIn; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.entity.plugin.args.BeginOperationTransactionArgs; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.orm.query.QCP; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.orm.query.QFilter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.servicehelper.BusinessDataServiceHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import kd.bos.servicehelper.operation.SaveServiceHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class RealCardBillOpPlugin extends AbstractOperationServicePlugIn { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void beginOperationTransaction(BeginOperationTransactionArgs e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        DynamicObject[] dynamicObjects = e.getDataEntities(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (int i = 0; i < dynamicObjects.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (StringUtils.equals(e.getOperationKey(),"audit")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<Long> ids = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //审批通过后,如果是报销单下推的单据,则回写e卡片清单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Long bxId = info.getLong("nckd_bz_id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String number = info.getString("number");//资产编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String name = info.getString("assetname");//资产名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                DynamicObject org = info.getDynamicObject("assetunit");//资产组织 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String orgName = org.getString("name"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //查询报销单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                QFilter bxFilter = new QFilter("id", QCP.equals,bxId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (int c=0;c<bxDynamicObjects.length;c++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //报销单头数据包 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[c].getPkValue(), bxDynamicObjects[c].getDynamicObjectType().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //循环资产信息分录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for(DynamicObject object : bxInfo.getDynamicObjectCollection("assetentry")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //获取e管家实物卡片清单基础资料 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        DynamicObjectCollection cardList = object.getDynamicObjectCollection("nckd_real_card"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for (DynamicObject card : cardList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Long id = (Long) card.get(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //查询e卡片实物清单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            QFilter filter = new QFilter("id", QCP.equals,id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            for (int j = 0; j < cardObjects.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //回写e卡片实物清单字段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                cardInfo.set("nckd_card_real_org", orgName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                cardInfo.set("nckd_card_real_code", number); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                cardInfo.set("nckd_card_real_name", name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                SaveServiceHelper.save(new DynamicObject[]{cardInfo}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else if(StringUtils.equals(e.getOperationKey(),"unaudit")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //反审核,e管家实物卡片清单三个字段置为空 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String number = info.getString("number");//资产编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //查询e管家实物清单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (int j = 0; j < cardObjects.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //回写e卡片实物清单字段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cardInfo.set("nckd_card_real_org", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cardInfo.set("nckd_card_real_code", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cardInfo.set("nckd_card_real_name", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SaveServiceHelper.save(new DynamicObject[]{cardInfo}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |