Parcourir la source

差旅汇总修改

zhouger il y a 5 mois
Parent
commit
e8c8106dcc

+ 11 - 4
src/main/java/fi/ar/formplugin/ArReportPlugin.java

@@ -5,17 +5,24 @@ import kd.bos.entity.report.AbstractReportListDataPlugin;
 import kd.bos.entity.report.ReportQueryParam;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.QueryServiceHelper;
+import kd.fi.arapcommon.report.acctagev2.AcctageQuery;
 
 /**
  * @author cjz
  * @date 2024/11/27 11:05
  * @description:应收账龄分析表,新增字段
  */
-public class ArReportPlugin extends AbstractReportListDataPlugin {
+public class ArReportPlugin extends AbstractReportListDataPlugin  {
+//public class ArReportPlugin extends AcctageQuery  {
+
     @Override
     public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
-        DataSet dataSet = QueryServiceHelper
-                .queryDataSet(this.getClass().getName(), "ar_finarbill", "number,e_expenseitem", new QFilter[]{null}, null);
-        return dataSet;
+//        DataSet dataSet =super.query(reportQueryParam,o);
+//        DataSet newdataSet = QueryServiceHelper
+//                .queryDataSet(this.getClass().getName(), "ar_finarbill", "id,number,e_expenseitem as nckd_expenseitem", new QFilter[]{null}, null);
+//        dataSet.leftJoin(newdataSet).on("id","id");
+//        return dataSet;
+        return null;
     }
+
 }

+ 25 - 51
src/main/java/fi/em/formPlugin/TravelTotalPlugin.java

@@ -26,55 +26,6 @@ public class TravelTotalPlugin extends AbstractFormPlugin {
     private static String entryentity="nckd_entryentity";//差旅汇总标识
     private static String invoiceandexpense="nckd_invoiceandexpense";//条线产品分摊明细分
 
-//    @Override
-//    public void beforeDoOperation(BeforeDoOperationEventArgs args) {
-//        super.beforeDoOperation(args);
-//        AbstractOperate op = (AbstractOperate)args.getSource();
-//        String operateKey = op.getOperateKey();
-//        //获取当前单据
-//        DynamicObject dynamicObject=this.getModel().getDataEntity(true);
-//        //差旅汇总分录
-//        DynamicObjectCollection nckd_entryentity=dynamicObject.getDynamicObjectCollection(entryentity);
-//        //汇总map
-//        Map<DynamicObject,BigDecimal> allMap=new HashMap<>();
-//        if (bar_save.equals(operateKey)) {
-//            //获取行程信息
-//            DynamicObjectCollection dynamicObjectCollection=dynamicObject.getDynamicObjectCollection("tripentry");
-//            //子卡片分录信息
-//            for (DynamicObject item:dynamicObjectCollection) {
-//                for (DynamicObject entry:item.getDynamicObjectCollection("entryentity")) {
-//                    //差旅项目获取
-//                    DynamicObject expenseitem=entry.getDynamicObject("expenseitem");
-//                    //报销金额获取
-//                    BigDecimal orientryamount=entry.getBigDecimal("orientryamount");
-//                    //差旅项目不存在则加进map
-//                    if (!allMap.containsKey(expenseitem)) {
-//                        allMap.put(expenseitem,orientryamount);
-//                    }else {
-//                        //存在则对该项目进行累加
-//                        BigDecimal account = allMap.get(expenseitem);
-//                        account=account.add(orientryamount);
-//                        allMap.put(expenseitem,account);
-//                    }
-//                }
-//            }
-//            Iterator<Map.Entry<DynamicObject, BigDecimal>> iter = allMap.entrySet().iterator();
-//            //清空分录
-//            this.getModel().deleteEntryData(entryentity);
-//            //遍历汇总map
-//            while (iter.hasNext()) {
-//                Map.Entry<DynamicObject, BigDecimal> entry = iter.next();
-//                //新增动态单据分录行
-//                int rowIndex = this.getModel().createNewEntryRow(entryentity);
-//                this.getModel().setValue("nckd_travelitem",entry.getKey(),rowIndex);
-//                this.getModel().setValue("nckd_oriamount",entry.getValue(),rowIndex);
-//                this.getModel().setValue("nckd_triamount",entry.getValue(),rowIndex);
-//            }
-//            //刷新分录
-//            this.getView().updateView("nckd_entryentity");
-//        }
-//    }
-
     public void propertyChanged(PropertyChangedArgs e) {
         String fieldKey = e.getProperty().getName();
         //获取当前单据
@@ -83,6 +34,8 @@ public class TravelTotalPlugin extends AbstractFormPlugin {
         DynamicObjectCollection nckd_entryentity=dynamicObject.getDynamicObjectCollection(entryentity);
         //汇总map
         Map<DynamicObject,BigDecimal> allMap=new HashMap<>();
+        //核定map
+        Map<DynamicObject,BigDecimal> oriMap=new HashMap<>();
         //付现金额的值发生改变,则重新计算汇总金额
         if (fieldKey.equals("nckd_amountfield4")) {
             //获取行程信息
@@ -91,17 +44,24 @@ public class TravelTotalPlugin extends AbstractFormPlugin {
             for (DynamicObject item:dynamicObjectCollection) {
                 for (DynamicObject entry:item.getDynamicObjectCollection("entryentity")) {
                     //差旅项目获取
-                    DynamicObject expenseitem=entry.getDynamicObject("expenseitem");
+                    DynamicObject expenseitem  =entry.getDynamicObject("expenseitem");
                     //报销金额获取
                     BigDecimal orientryamount=entry.getBigDecimal("orientryamount");
+                    //核定金额获取
+                    BigDecimal orientryappamount=entry.getBigDecimal("orientryappamount");
                     //差旅项目不存在则加进map
                     if (!allMap.containsKey(expenseitem)) {
                         allMap.put(expenseitem,orientryamount);
+                        oriMap.put(expenseitem,orientryappamount);
                     }else {
                         //存在则对该项目进行累加
                         BigDecimal account = allMap.get(expenseitem);
                         account=account.add(orientryamount);
                         allMap.put(expenseitem,account);
+                        //核定金额累加
+                        BigDecimal oriaccount = oriMap.get(expenseitem);
+                        oriaccount=oriaccount.add(orientryappamount);
+                        oriMap.put(expenseitem,oriaccount);
                     }
                 }
             }
@@ -115,7 +75,21 @@ public class TravelTotalPlugin extends AbstractFormPlugin {
                 int rowIndex = this.getModel().createNewEntryRow(entryentity);
                 this.getModel().setValue("nckd_travelitem",entry.getKey(),rowIndex);
                 this.getModel().setValue("nckd_oriamount",entry.getValue(),rowIndex);
-                this.getModel().setValue("nckd_triamount",entry.getValue(),rowIndex);
+            }
+            //遍历汇总分录
+            DynamicObjectCollection dynamicObjects=dynamicObject.getDynamicObjectCollection(entryentity);
+            for (int i=0;i<dynamicObjects.size();i++)
+            {
+                DynamicObject item=dynamicObjects.get(i);
+                DynamicObject nckd_travelitem=item.getDynamicObject("nckd_travelitem");
+                Iterator<Map.Entry<DynamicObject, BigDecimal>> it = oriMap.entrySet().iterator();
+                while (it.hasNext()) {
+                    Map.Entry<DynamicObject, BigDecimal> entry = it.next();
+                    //遍历map,费用项目相等则赋值核定金额
+                    if (entry.getKey().equals(nckd_travelitem)) {
+                        this.getModel().setValue("nckd_triamount",entry.getValue(),i);
+                    }
+                }
             }
             //刷新分录
             this.getView().updateView("nckd_entryentity");

+ 9 - 0
src/main/java/sys/sc/task/UpdateDataDailyTask.java

@@ -210,7 +210,13 @@ public class UpdateDataDailyTask extends AbstractTask {
             log.info("指定的上级组织 'jxyh' 未找到!");
             return;
         }
+
+
+
+
         for (DynamicObject record : nckdData) {
+
+
             // 判断并创建或更新所在单位
             //所在单位编码
             String szdwbm = record.getString("nckd_szdwcode");
@@ -321,6 +327,9 @@ public class UpdateDataDailyTask extends AbstractTask {
                 SaveServiceHelper.update(szbm);
             }
         }
+
+
+
     }
     //根据基础资料更新人员
     public void updateperson()