Browse Source

实物卡片,拆分单修改

wanwei 10 months ago
parent
commit
449f5ad054

+ 38 - 0
src/main/java/fi/fa/opplugin/AssetSplitBillOpPlugin.java

@@ -0,0 +1,38 @@
+package fi.fa.opplugin;
+
+import com.alibaba.druid.util.StringUtils;
+import kd.bos.dataentity.entity.DynamicObject;
+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;
+
+//资产拆分单
+public class AssetSplitBillOpPlugin 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")) {
+                //审核通过后反写e管家实物卡片清单
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                for (DynamicObject dynamicObject : info.getDynamicObjectCollection("subassetsplitentry")) {
+                    String number = dynamicObject.getString("aft_cardnumber");//资产编码
+                    DynamicObject card = dynamicObject.getDynamicObject("nckd_real_card_list");//e管家实物卡片清单字段
+                    Long id = card.getLong("id");
+                    //查询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());
+                        //更新星瀚实物编码字段
+                        cardInfo.set("nckd_card_real_code", number);
+                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                    }
+                }
+            }
+        }
+    }
+}

+ 30 - 28
src/main/java/fi/fa/opplugin/RealCardBillOpPlugin.java

@@ -12,43 +12,45 @@ 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")) {
+                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});
+                if (bxId != null) {
+                    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});
+                                }
                             }
                         }
                     }