|  | @@ -19,43 +19,67 @@ public class RealCardBillOpPlugin extends AbstractOperationServicePlugIn {
 | 
											
												
													
														|  |          DynamicObject[] dynamicObjects = e.getDataEntities();
 |  |          DynamicObject[] dynamicObjects = e.getDataEntities();
 | 
											
												
													
														|  |          for (int i = 0; i < dynamicObjects.length; i++) {
 |  |          for (int i = 0; i < dynamicObjects.length; i++) {
 | 
											
												
													
														|  |                  if (StringUtils.equals(e.getOperationKey(),"audit")) {
 |  |                  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");
 |  | 
 | 
											
												
													
														|  | -                if (bxId != null) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    List<Long> ids = new ArrayList<>();
 | 
											
												
													
														|  | 
 |  | +                    //审批通过后,如果是报销单下推的单据,则回写e卡片清单
 | 
											
												
													
														|  | 
 |  | +                    DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
 | 
											
												
													
														|  | 
 |  | +                    String srcbillentityname = info.getString("srcbillentityname");
 | 
											
												
													
														|  | 
 |  | +                    Long bxId = info.getLong("nckd_bz_id");
 | 
											
												
													
														|  |                      String number = info.getString("number");//资产编码
 |  |                      String number = info.getString("number");//资产编码
 | 
											
												
													
														|  |                      String name = info.getString("assetname");//资产名称
 |  |                      String name = info.getString("assetname");//资产名称
 | 
											
												
													
														|  |                      DynamicObject org = info.getDynamicObject("assetunit");//资产组织
 |  |                      DynamicObject org = info.getDynamicObject("assetunit");//资产组织
 | 
											
												
													
														|  |                      String orgName = org.getString("name");
 |  |                      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});
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    //报销单下推生成的实物卡片审核后回写e管家实物卡片清单
 | 
											
												
													
														|  | 
 |  | +                    if (bxId != 0) {
 | 
											
												
													
														|  | 
 |  | +                        //查询报销单
 | 
											
												
													
														|  | 
 |  | +                        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 ("fa_assetsplitbill".equals(srcbillentityname)) {
 | 
											
												
													
														|  | 
 |  | +                        Long cfId = info.getLong("srcbillid");
 | 
											
												
													
														|  | 
 |  | +                        //查询资产拆分单
 | 
											
												
													
														|  | 
 |  | +                        QFilter cfFilter = new QFilter("id", QCP.equals,cfId);
 | 
											
												
													
														|  | 
 |  | +                        DynamicObject[] dispatchObjects = BusinessDataServiceHelper.load("fa_assetsplitbill","id",new QFilter[] {cfFilter});
 | 
											
												
													
														|  | 
 |  | +                        DynamicObject dispatchInfo = BusinessDataServiceHelper.loadSingle(dispatchObjects[0].getPkValue(), dispatchObjects[0].getDynamicObjectType().getName());
 | 
											
												
													
														|  | 
 |  | +                        //获取拆分后分录
 | 
											
												
													
														|  | 
 |  | +                        DynamicObjectCollection collection = dispatchInfo.getDynamicObjectCollection("assetsplitentry").get(0).getDynamicObjectCollection("subassetsplitentry");
 | 
											
												
													
														|  | 
 |  | +                        //从拆分分录第二行开始回写
 | 
											
												
													
														|  | 
 |  | +                        //获取拆分后卡片分录e管家实物卡片
 | 
											
												
													
														|  | 
 |  | +                        DynamicObject card_list = collection.get(i+1).getDynamicObject("nckd_real_card_list");
 | 
											
												
													
														|  | 
 |  | +                        Long id = card_list.getLong("id");
 | 
											
												
													
														|  | 
 |  | +                        //查询实物卡片清单
 | 
											
												
													
														|  | 
 |  | +                        QFilter filter = new QFilter("id", QCP.equals,id);
 | 
											
												
													
														|  | 
 |  | +                        DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
 | 
											
												
													
														|  | 
 |  | +                        DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[0].getPkValue(), cardObjects[0].getDynamicObjectType().getName());
 | 
											
												
													
														|  | 
 |  | +                        //回写实物卡片字段到e管家实物卡片清单
 | 
											
												
													
														|  | 
 |  | +                        //回写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")) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +                }else if(StringUtils.equals(e.getOperationKey(),"unaudit")) {
 | 
											
												
													
														|  |                  //反审核,e管家实物卡片清单三个字段置为空
 |  |                  //反审核,e管家实物卡片清单三个字段置为空
 | 
											
												
													
														|  |                  DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
 |  |                  DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
 | 
											
												
													
														|  |                  String number = info.getString("number");//资产编码
 |  |                  String number = info.getString("number");//资产编码
 |