Sfoglia il codice sorgente

固定资产开发

wanwei 8 mesi fa
parent
commit
a10ce25d90

+ 10 - 3
src/main/java/fi/er/opplugin/FinapbillBeforeF7SelectSample.java

@@ -73,13 +73,12 @@ public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements
             ChangeData changeData = e.getChangeSet()[0];
             DynamicObjectCollection dynamicObjectCollection = (DynamicObjectCollection) changeData.getNewValue();
             List<Long> ids = new ArrayList<>();
-            StringBuffer stringBuffer = new StringBuffer();
+            Integer index = 0;
             for(DynamicObject  object : dynamicObjectCollection) {
                 Long id = (Long) object.get(2);
                 ids.add(id);
-                stringBuffer.append(id.toString());
+                this.getModel().setValue("nckd_card_list_str","1");
             }
-            this.getModel().setValue("nckd_card_list_str",stringBuffer);
            //查询实物卡片清单
             QFilter filter = new QFilter("id", QCP.in,ids);
             DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
@@ -108,12 +107,20 @@ public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements
                     this.getModel().setValue("nckd_card_type",nckd_card_type,rowIndex);
                     this.getModel().setValue("nckd_card_status",nckd_card_status,rowIndex);
                     this.getModel().setValue("nckd_orgfield",nckd_orgfield,rowIndex);
+                    this.getModel().setValue("nckd_dept",nckd_dept,rowIndex);
                     this.getModel().setValue("nckd_use_name",nckd_use_name,rowIndex);
                     this.getModel().setValue("nckd_start_date",nckd_start_date,rowIndex);
                     this.getModel().setValue("nckd_local",nckd_local,rowIndex);
                     this.getModel().setValue("nckd_card_brand",nckd_card_brand,rowIndex);
                     this.getModel().setValue("nckd_card_model",nckd_card_model,rowIndex);
                     this.getModel().setValue("nckd_serial_number",nckd_serial_number,rowIndex);
+
+                    if (index.equals(0)) {
+                        //资产信息分录赋值
+                        this.getModel().setValue("asset_name",name);
+                        //其他字段todod
+                    }
+                    index++;
                 }
                 //刷新实物卡片清单分录
                 this.getView().updateView("nckd_realcard_list");

+ 20 - 8
src/main/java/fi/er/opplugin/PublicreimburOpPlugin.java

@@ -90,7 +90,8 @@ public class PublicreimburOpPlugin extends AbstractOperationServicePlugIn {
                 }
                 SaveServiceHelper.save(new DynamicObject[]{info});
             } else if (StringUtils.equals(e.getOperationKey(),"save")) {
-                List<DynamicObject> dynamicObjectList = new ArrayList<>();
+                List<Long> cardList = new ArrayList<>();
+                List<Long> totalList = new ArrayList<>();
                 //获取当前页面数据
                 DynamicObject info = dynamicObjects[i];
                 Long fid = info.getLong("id");
@@ -98,16 +99,27 @@ public class PublicreimburOpPlugin extends AbstractOperationServicePlugIn {
                     DynamicObjectCollection dynamicObjectCollection = entryentity.getDynamicObjectCollection("nckd_real_card");
                     for(DynamicObject  object : dynamicObjectCollection) {
                         Long id = (Long) object.get(2);
-                        String listId = String.valueOf(id);
-                        //查询报销单
-                        QFilter bxFilter = new QFilter("nckd_card_list_str", QCP.like,listId);
-                        bxFilter.and("id", QCP.not_equals, fid);
-                        DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter});
-                        if (bxDynamicObjects.length > 0) {
-                            throw new KDBizException("实物卡片清单已经生成资产清单,请重新选择!");
+                        cardList.add(id);
+                    }
+                }
+                //查询报销单
+                QFilter bxFilter = new QFilter("id", QCP.not_equals,fid);
+                bxFilter.and("nckd_card_list_str", QCP.equals, "1");
+                DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter});
+                for (int j = 0; j < bxDynamicObjects.length; j++) {
+                    DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[i].getPkValue(), bxDynamicObjects[i].getDynamicObjectType().getName());
+                    for (DynamicObject entryentity : bxInfo.getDynamicObjectCollection("assetentry")) {
+                        DynamicObjectCollection dynamicObjectCollection = entryentity.getDynamicObjectCollection("nckd_real_card");
+                        for(DynamicObject  dynamicObject : dynamicObjectCollection) {
+                            Long id = (Long) dynamicObject.get(2);
+                            totalList.add(id);
                         }
                     }
                 }
+                boolean hasCommonElements = cardList.stream().anyMatch(totalList::contains);
+                if (hasCommonElements) {
+                    throw new KDBizException("实物卡片清单已经生成资产清单,请重新选择!");
+                }
             }
         }
     }