|
@@ -9,9 +9,7 @@ import kd.bos.list.plugin.AbstractListPlugin;
|
|
import kd.sdk.plugin.Plugin;
|
|
import kd.sdk.plugin.Plugin;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Arrays;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @author cjz
|
|
* @author cjz
|
|
@@ -35,9 +33,10 @@ public class SubAndAudFormPlugin extends AbstractListPlugin implements Plugin {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- //保存前计算汇总分录
|
|
|
|
- public void beforeDoOperation(BeforeDoOperationEventArgs arg) {
|
|
|
|
|
|
|
|
|
|
+ //根据输入的list名,返回对应list
|
|
|
|
+ public List<String> entryList(String nckdentry)
|
|
|
|
+ {
|
|
//薪酬明细(一般员工)分录字段标识,金额字段
|
|
//薪酬明细(一般员工)分录字段标识,金额字段
|
|
List<String> nckd_generalemployees = Arrays.asList("nckd_se_allbasicsry"
|
|
List<String> nckd_generalemployees = Arrays.asList("nckd_se_allbasicsry"
|
|
,"nckd_se_basicsry","nckd_se_acmsry","nckd_se_reacmsry","nckd_se_bsnrwd","nckd_se_otreward","nckd_se_cmcsbd"
|
|
,"nckd_se_basicsry","nckd_se_acmsry","nckd_se_reacmsry","nckd_se_bsnrwd","nckd_se_otreward","nckd_se_cmcsbd"
|
|
@@ -47,7 +46,119 @@ public class SubAndAudFormPlugin extends AbstractListPlugin implements Plugin {
|
|
,"nckd_se_unionmey","nckd_se_tax","nckd_se_otherreduce","nckd_se_desalary","nckd_se_netsalary","nckd_se_cpy_endins"
|
|
,"nckd_se_unionmey","nckd_se_tax","nckd_se_otherreduce","nckd_se_desalary","nckd_se_netsalary","nckd_se_cpy_endins"
|
|
,"nckd_se_cpy_hopins","nckd_se_cpy_bhopins","nckd_se_cpy_ljins","nckd_se_cpy_birthins","nckd_se_cpy_dmgins","nckd_se_cpy_hosins"
|
|
,"nckd_se_cpy_hopins","nckd_se_cpy_bhopins","nckd_se_cpy_ljins","nckd_se_cpy_birthins","nckd_se_cpy_dmgins","nckd_se_cpy_hosins"
|
|
,"nckd_se_cpy_cmymey");
|
|
,"nckd_se_cpy_cmymey");
|
|
|
|
+ //薪酬明细(一般员工)汇总分录字段标识
|
|
|
|
+ List<String> nckd_allemployees=Arrays.asList("nckd_all_allbsry","nckd_all_basicsry","nckd_all_acmsry","nckd_all_reacmsry"
|
|
|
|
+ ,"nckd_all_bsnrwd","nckd_all_otreward","nckd_all_cmcsbd","nckd_all_otherpysry","nckd_all_clearrwd","nckd_all_awareward"
|
|
|
|
+ ,"nckd_all_odevreward","nckd_all_coldsbad","nckd_all_warmsbad","nckd_all_nursabd","nckd_all_oallowance","nckd_all_salarypaya"
|
|
|
|
+ ,"nckd_all_per_endins","nckd_all_per_hopins","nckd_all_per_bhopins","nckd_all_per_ljins","nckd_all_per_hosins","nckd_all_per_cmymey"
|
|
|
|
+ ,"nckd_all_unionmey","nckd_all_tax","nckd_all_otherreduce","nckd_all_desalary","nckd_all_netsalary","nckd_all_cpy_endins"
|
|
|
|
+ ,"nckd_all_cpy_hopins","nckd_all_cpy_bhopins","nckd_all_cpy_ljins","nckd_all_cpy_birthins","nckd_all_cpy_dmgins","nckd_all_cpy_hosins"
|
|
|
|
+ ,"nckd_all_cpy_cmymey");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //薪酬明细(内退)分录字段标识,金额字段
|
|
|
|
+ List<String> nckd_earlyretired=Arrays.asList("nckd_ee_allbasicsry","nckd_ee_allowance","nckd_ee_otherallowance","nckd_ee_per_endins"
|
|
|
|
+ ,"nckd_ee_per_ljins","nckd_ee_per_hopins","nckd_ee_per_bhopins","nckd_ee_per_hosins","nckd_ee_per_cmymey","nckd_ee_unionmey"
|
|
|
|
+ ,"nckd_ee_tax","nckd_ee_desalary","nckd_ee_netsalary","nckd_ee_otherreduce","nckd_ee_cpy_endins","nckd_ee_cpy_bhopins"
|
|
|
|
+ ,"nckd_ee_cpy_ljins","nckd_ee_cpy_birthins","nckd_ee_cpy_dmgins","nckd_ee_cpy_cmymey","nckd_ee_cpy_hosins","nckd_ee_taxt"
|
|
|
|
+ ,"nckd_ee_alltaxt","nckd_ee_charge","nckd_ee_finallsys");
|
|
|
|
+ //薪酬明细(内退)汇总分录字段标识
|
|
|
|
+ List<String> nckd_allearlytired=Arrays.asList("nckd_all_allbasicsry","nckd_all_allowqance","nckd_all_owance","nckd_all_reduceitem"
|
|
|
|
+ ,"nckd_all_sumsry","nckd_all_laryreduce","nckd_all_pushreduce","nckd_all_lrulereduce","nckd_all_badreduce","nckd_all_oreduce","nckd_all_reducesry"
|
|
|
|
+ ,"nckd_all_salarypaya","nckd_all_nesalary","nckd_all_per_endins","nckd_all_per_hopins","nckd_all_per_bhopins","nckd_all_per_ljins"
|
|
|
|
+ ,"nckd_all_per_hosins","nckd_all_per_cmymey","nckd_all_sumins","nckd_all_workamount","nckd_all_tax","nckd_all_alltaxt"
|
|
|
|
+ ,"nckd_all_charge","nckd_all_netsalary");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //薪酬明细(退休)分录字段标识,金额字段
|
|
|
|
+ List<String> nckd_retired=Arrays.asList("nckd_re_livallowance","nckd_re_otherallowance","nckd_re_reward"
|
|
|
|
+ ,"nckd_re_salarypayable","nckd_re_desalary","nckd_re_netsalary");
|
|
|
|
+ //薪酬明细(退休)汇总分录字段标识
|
|
|
|
+ List<String> nckd_allretired=Arrays.asList("nckd_all_livallowance","nckd_all_otherwance","nckd_all_reward","nckd_all_salarypaya"
|
|
|
|
+ ,"nckd_all_desalary","nckd_all_netsalary");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //人力薪酬分录标识金额字段,金额字段
|
|
|
|
+ List<String> nckd_pay=Arrays.asList("nckd_sae_levelsry","nckd_sae_dutiessry","nckd_sae_updutiessry","nckd_sae_workyearsry"
|
|
|
|
+ ,"nckd_sae_depyear","nckd_sae_eduasry","nckd_sae_transry","nckd_sae_jobsry","nckd_sae_basicsry","nckd_sae_allbasicsry","nckd_sae_acmsry"
|
|
|
|
+ ,"nckd_sae_mountsry","nckd_sae_reacmsry","nckd_sae_balyearsry","nckd_sae_blastyearsry","nckd_sae_allsry","nckd_sae_bsnrwd","nckd_sae_cpmrwd"
|
|
|
|
+ ,"nckd_sae_psrwd","nckd_sae_comrwd","nckd_sae_cardrwd","nckd_sae_intwrd","nckd_sae_clearrwd","nckd_sae_allrwd","nckd_sae_retainsry"
|
|
|
|
+ ,"nckd_sae_reward","nckd_sae_otreward","nckd_sae_cmcsbd","nckd_sae_trfsbd","nckd_sae_housesbd","nckd_sae_warmsbd","nckd_sae_edusbd"
|
|
|
|
+ ,"nckd_sae_trafficsbd","nckd_sae_othersbd","nckd_sae_reduce","nckd_sae_othersry","nckd_sae_sickreduce","nckd_sae_sickhopreduce"
|
|
|
|
+ ,"nckd_sae_eventreduce","nckd_sae_afwreduce","nckd_sae_latereduce","nckd_sae_cwasry","nckd_sae_cwareduce","nckd_sae_dgreduce"
|
|
|
|
+ ,"nckd_sae_dcpreduce","nckd_sae_badreduce","nckd_sae_otherreduce","nckd_sae_allreduce","nckd_sae_lastsry","nckd_sae_allpay"
|
|
|
|
+ ,"nckd_sae_per_endins","nckd_sae_per_ljins","nckd_sae_per_hopins","nckd_sae_per_bhopins","nckd_sae_per_hosins","nckd_sae_per_cmymey"
|
|
|
|
+ ,"nckd_sae_per_ins","nckd_sae_unionmey","nckd_sae_tax","nckd_sae_allamount","nckd_sae_cash","nckd_sae_wages","nckd_sae_cpy_endins"
|
|
|
|
+ ,"nckd_sae_cpy_hopins","nckd_sae_cpy_bhopins","nckd_sae_cpy_birthins","nckd_sae_cpy_ljins","nckd_sae_cpy_dmgins","nckd_sae_cpy_hosins"
|
|
|
|
+ ,"nckd_sae_cpy_cmymey");
|
|
|
|
+ //人力薪酬汇总分录字段标识
|
|
|
|
+ List<String> nckd_allpay=Arrays.asList("nckd_all_levelsry","nckd_all_dutiessry","nckd_all_updutiessry","nckd_all_workyearsry"
|
|
|
|
+ ,"nckd_all_depyear","nckd_all_eduasry","nckd_all_transry","nckd_all_jobsry","nckd_all_rebasicsry","nckd_all_allbacsry"
|
|
|
|
+ ,"nckd_all_allcmsry","nckd_all_mountsry","nckd_all_reacmamount","nckd_all_balyearsry","nckd_all_blastyearsry","nckd_all_allsry"
|
|
|
|
+ ,"nckd_all_bsnreda","nckd_all_cpmrwd","nckd_all_psrwd","nckd_all_comrwd","nckd_all_cardrwd","nckd_all_intwrd","nckd_all_clearwd"
|
|
|
|
+ ,"nckd_all_allrwd","nckd_all_retainsry","nckd_all_owance","nckd_all_otrewardam","nckd_all_rlcmcsbd","nckd_all_trfsbd"
|
|
|
|
+ ,"nckd_all_housesbd","nckd_all_warmsbd","nckd_all_edusbd","nckd_all_trafficsbd","nckd_all_othersbd","nckd_all_reduce"
|
|
|
|
+ ,"nckd_all_othersry","nckd_all_sickreduce","nckd_all_sickhopreduce","nckd_all_eventreduce","nckd_all_afwreduce","nckd_all_latereduce"
|
|
|
|
+ ,"nckd_all_cwasry","nckd_all_cwareduce","nckd_all_dgreduce","nckd_all_dcpreduce","nckd_all_badredu","nckd_all_othereduce"
|
|
|
|
+ ,"nckd_all_allreduce","nckd_all_salarypaya","nckd_all_nesalary","nckd_all_per_endins","nckd_all_per_hopins","nckd_all_per_bhopins"
|
|
|
|
+ ,"nckd_all_per_ljins","nckd_all_per_hosins","nckd_all_per_cmymey","nckd_all_sumins","nckd_all_workamount","nckd_all_tax"
|
|
|
|
+ ,"nckd_all_alltaxt","nckd_all_charge","nckd_all_netsalary","nckd_all_cpy_endins","nckd_all_cpy_hopins","nckd_all_cpy_bhopins"
|
|
|
|
+ ,"nckd_all_cpy_birthins","nckd_all_cpy_ljins","nckd_all_cpy_dmgins","nckd_all_cpy_hosins","nckd_all_cpy_cmymey");
|
|
|
|
+
|
|
|
|
|
|
|
|
+ //人力薪酬内退分录标识,金额字段
|
|
|
|
+ List<String> nckd_payretird=Arrays.asList("nckd_see_allbasicsry"
|
|
|
|
+ ,"nckd_see_allowance","nckd_see_otherallowanc","nckd_see_per_endins","nckd_see_per_ljins","nckd_see_per_hopins"
|
|
|
|
+ ,"nckd_see_per_bhopins","nckd_see_per_hosins","nckd_see_per_cmymey","nckd_see_unionmey","nckd_see_tax"
|
|
|
|
+ ,"nckd_see_desalary","nckd_see_netsalary","nckd_see_otherreduce","nckd_see_cpy_endins","nckd_see_cpy_bhopins"
|
|
|
|
+ ,"nckd_see_cpy_ljins","nckd_see_cpy_birthins","nckd_see_cpy_dmgins","nckd_see_cpy_cmymey","nckd_see_cpy_hosins"
|
|
|
|
+ ,"nckd_see_taxt","nckd_see_alltaxt","nckd_see_charge","nckd_see_finallsys","nckd_see_cpy_oldins","nckd_see_cpy_hop"
|
|
|
|
+ ,"nckd_see_cpy_bhop","nckd_see_cpy_bir","nckd_see_cpy_ljob","nckd_see_cpy_dwork","nckd_see_cpy_hos","nckd_see_cpy_cmy");
|
|
|
|
+
|
|
|
|
+ //人力薪酬内退分录汇总字段
|
|
|
|
+ List<String> nckd_allpayretird=Arrays.asList("nckd_all_allbasicsry","nckd_all_allowqance","nckd_all_owance","nckd_all_reduceitem"
|
|
|
|
+ ,"nckd_all_sumsry","nckd_all_laryreduce","nckd_all_pushreduce","nckd_all_lrulereduce","nckd_all_badreduce","nckd_all_oreduce"
|
|
|
|
+ ,"nckd_all_reducesry","nckd_all_salarypaya","nckd_all_nesalary","nckd_all_per_endins","nckd_all_per_hopins","nckd_all_per_ljins"
|
|
|
|
+ ,"nckd_all_per_bhopins","nckd_all_per_hosins","nckd_all_per_cmymey","nckd_all_sumins","nckd_all_workamount","nckd_all_tax"
|
|
|
|
+ ,"nckd_all_alltaxt","nckd_all_charge","nckd_all_netsalary","nckd_all_cpy_endins","nckd_all_cpy_hopins","nckd_all_cpy_bhopins"
|
|
|
|
+ ,"nckd_all_cpy_birthins","nckd_all_cpy_ljins","nckd_all_cpy_dmgins","nckd_all_cpy_hosins","nckd_all_cpy_cmymey");
|
|
|
|
+
|
|
|
|
+ Map<String,List<String>> mapList=new HashMap<>();
|
|
|
|
+ mapList.put("nckd_generalemployees",nckd_generalemployees);
|
|
|
|
+ mapList.put("nckd_allemployees",nckd_allemployees);
|
|
|
|
+ mapList.put("nckd_earlyretired",nckd_earlyretired);
|
|
|
|
+ mapList.put("nckd_retired",nckd_retired);
|
|
|
|
+ mapList.put("nckd_pay",nckd_pay);
|
|
|
|
+ mapList.put("nckd_payretird",nckd_payretird);
|
|
|
|
+ mapList.put("nckd_allearlytired",nckd_allearlytired);
|
|
|
|
+ mapList.put("nckd_allretired",nckd_allretired);
|
|
|
|
+ mapList.put("nckd_allpay",nckd_allpay);
|
|
|
|
+ mapList.put("nckd_allpayretird",nckd_allpayretird);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //list名
|
|
|
|
+ List<String> list=new ArrayList<>();
|
|
|
|
+ list.add("nckd_generalemployees");
|
|
|
|
+ list.add("nckd_allemployees");
|
|
|
|
+ list.add("nckd_earlyretired");
|
|
|
|
+ list.add("nckd_retired");
|
|
|
|
+ list.add("nckd_pay");
|
|
|
|
+ list.add("nckd_payretird");
|
|
|
|
+ list.add("nckd_allearlytired");
|
|
|
|
+ list.add("nckd_allretired");
|
|
|
|
+ list.add("nckd_allpay");
|
|
|
|
+ list.add("nckd_allpayretird");
|
|
|
|
+ for (String item:list) {
|
|
|
|
+ if (nckdentry.equals(item))
|
|
|
|
+ {
|
|
|
|
+ return mapList.get(nckdentry);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //保存前计算汇总分录
|
|
|
|
+ public void beforeDoOperation(BeforeDoOperationEventArgs arg) {
|
|
super.beforeDoOperation(arg);
|
|
super.beforeDoOperation(arg);
|
|
FormOperate source = (FormOperate) arg.getSource();
|
|
FormOperate source = (FormOperate) arg.getSource();
|
|
//获取当前操作单据
|
|
//获取当前操作单据
|
|
@@ -57,62 +168,130 @@ public class SubAndAudFormPlugin extends AbstractListPlugin implements Plugin {
|
|
|
|
|
|
//计算汇总分录
|
|
//计算汇总分录
|
|
if ("countall".equals(source.getOperateKey())){
|
|
if ("countall".equals(source.getOperateKey())){
|
|
- //分录类型为一般员工
|
|
|
|
|
|
+ //先清空汇总分录分录
|
|
|
|
+ this.getModel().deleteEntryData("nckd_allentry");
|
|
|
|
+ //分录类型为通用薪酬一般员工
|
|
if ("A".equals(nckd_entrytype)) {
|
|
if ("A".equals(nckd_entrytype)) {
|
|
|
|
+ //字段标识
|
|
|
|
+ String entrylist="nckd_generalemployees";
|
|
|
|
+ //对应分录标识
|
|
|
|
+ String propername="nckd_staffentry";
|
|
|
|
+ //对应部门标识
|
|
|
|
+ String dep="nckd_se_department";
|
|
|
|
+ //对应汇总分录字段标识
|
|
|
|
+ String allentrtlist="nckd_allemployees";
|
|
|
|
+ countEntry(dynamicObject,entrylist,propername,dep,allentrtlist);
|
|
|
|
+ }
|
|
|
|
+ //分录类型为通用薪酬内退
|
|
|
|
+ if ("B".equals(nckd_entrytype)) {
|
|
|
|
+ //字段标识
|
|
|
|
+ String entrylist="nckd_earlyretired";
|
|
|
|
+ //对应分录标识
|
|
|
|
+ String propername="nckd_earlyretiredentry";
|
|
|
|
+ //对应部门标识
|
|
|
|
+ String dep="nckd_ee_department";
|
|
|
|
+ //对应汇总分录字段标识
|
|
|
|
+ String allentrtlist="nckd_allearlytired";
|
|
|
|
+ countEntry(dynamicObject,entrylist,propername,dep,allentrtlist);
|
|
|
|
+ }
|
|
|
|
+ if ("C".equals(nckd_entrytype)) {
|
|
|
|
+ //字段标识
|
|
|
|
+ String entrylist="nckd_retired";
|
|
|
|
+ //对应分录标识
|
|
|
|
+ String propername="nckd_retireentry";
|
|
|
|
+ //对应部门标识
|
|
|
|
+ String dep="nckd_re_department";
|
|
|
|
+ //对应汇总分录字段标识
|
|
|
|
+ String allentrtlist="nckd_allretired";
|
|
|
|
+ countEntry(dynamicObject,entrylist,propername,dep,allentrtlist);
|
|
|
|
+ }
|
|
|
|
+ if ("D".equals(nckd_entrytype)) {
|
|
|
|
+ //字段标识
|
|
|
|
+ String entrylist="nckd_pay";
|
|
|
|
+ //对应分录标识
|
|
|
|
+ String propername="nckd_salaryentry";
|
|
|
|
+ //对应部门标识
|
|
|
|
+ String dep="nckd_sae_department";
|
|
|
|
+ //对应汇总分录字段标识
|
|
|
|
+ String allentrtlist="nckd_allpay";
|
|
|
|
+ countEntry(dynamicObject,entrylist,propername,dep,allentrtlist);
|
|
|
|
+ }
|
|
|
|
+ if ("E".equals(nckd_entrytype)) {
|
|
|
|
+ //字段标识
|
|
|
|
+ String entrylist="nckd_payretird";
|
|
|
|
+ //对应分录标识
|
|
|
|
+ String propername="nckd_salaryentryre";
|
|
|
|
+ //对应部门标识
|
|
|
|
+ String dep="nckd_see_department";
|
|
|
|
+ //对应汇总分录字段标识
|
|
|
|
+ String allentrtlist="nckd_allpayretird";
|
|
|
|
+ countEntry(dynamicObject,entrylist,propername,dep,allentrtlist);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- //获取一般员工分录
|
|
|
|
- DynamicObjectCollection staffentry=dynamicObject.getDynamicObjectCollection("nckd_staffentry");
|
|
|
|
- //分录部门list
|
|
|
|
- List<DynamicObject> depList=new ArrayList<>();
|
|
|
|
- //初始化值为第一行部门
|
|
|
|
- depList.add(staffentry.get(0).getDynamicObject("nckd_se_department"));
|
|
|
|
- for (DynamicObject item:staffentry) {
|
|
|
|
- //将不同的值加入到部门的list中
|
|
|
|
- if (!depList.contains(item.getDynamicObject("nckd_se_department"))) {
|
|
|
|
- depList.add(item.getDynamicObject("nckd_se_department"));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- //总的汇总数据
|
|
|
|
- List<List<BigDecimal>> alldata=new ArrayList<>();
|
|
|
|
- //几个不同部门则循环几次
|
|
|
|
- for (int j=0;j<depList.size();j++)
|
|
|
|
- {
|
|
|
|
- DynamicObject bumen=depList.get(j);
|
|
|
|
- //某部门总数据
|
|
|
|
- List<BigDecimal> sumNum=new ArrayList<>();
|
|
|
|
- //汇总表部门list初始化
|
|
|
|
- for (int b=0;b<nckd_generalemployees.size();b++) {
|
|
|
|
- sumNum.add(new BigDecimal("0.0"));
|
|
|
|
- }
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @dynamicObject 当前单据信息
|
|
|
|
+ * @entrylist 字段标识列表
|
|
|
|
+ * @propername 分录标识
|
|
|
|
+ * @dep 对应分录部门标识
|
|
|
|
+ * @allentrtlist 写入的汇总分录字段
|
|
|
|
+ * @description:根据分录类型不同计算汇总分录
|
|
|
|
+ */
|
|
|
|
+ public void countEntry(DynamicObject dynamicObject,String entrylist,String propername,String dep,String allentrtlist)
|
|
|
|
+ {
|
|
|
|
+ //字段标识
|
|
|
|
+ List<String> nckd_generalemployees = entryList(entrylist);
|
|
|
|
+ //获取一般员工分录
|
|
|
|
+ DynamicObjectCollection staffentry=dynamicObject.getDynamicObjectCollection(propername);
|
|
|
|
+ //分录部门list
|
|
|
|
+ List<DynamicObject> depList=new ArrayList<>();
|
|
|
|
+ //初始化值为第一行部门
|
|
|
|
+ depList.add(staffentry.get(0).getDynamicObject(dep));
|
|
|
|
+ for (DynamicObject item:staffentry) {
|
|
|
|
+ //将不同的值加入到部门的list中
|
|
|
|
+ if (!depList.contains(item.getDynamicObject(dep))) {
|
|
|
|
+ depList.add(item.getDynamicObject(dep));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- //计算一个部门汇总
|
|
|
|
- for (int i=0;i<staffentry.size();i++)
|
|
|
|
|
|
+ //几个不同部门则循环几次
|
|
|
|
+ for (int j=0;j<depList.size();j++)
|
|
|
|
+ {
|
|
|
|
+ DynamicObject bumen=depList.get(j);
|
|
|
|
+ //某部门总数据
|
|
|
|
+ List<BigDecimal> sumNum=new ArrayList<>();
|
|
|
|
+ //汇总表部门list初始化
|
|
|
|
+ for (int b=0;b<nckd_generalemployees.size();b++) {
|
|
|
|
+ sumNum.add(new BigDecimal("0.0"));
|
|
|
|
+ }
|
|
|
|
+ //计算一个部门汇总
|
|
|
|
+ for (int i=0;i<staffentry.size();i++)
|
|
|
|
+ {
|
|
|
|
+ //获取所在部门
|
|
|
|
+ DynamicObject department=staffentry.get(i).getDynamicObject(dep);
|
|
|
|
+ //相同部门则累加金额数据
|
|
|
|
+ if (department.equals(bumen)) {
|
|
|
|
+ for (int a=0;a<nckd_generalemployees.size();a++)
|
|
{
|
|
{
|
|
- //获取所在部门
|
|
|
|
- DynamicObject department=staffentry.get(i).getDynamicObject("nckd_se_department");
|
|
|
|
- //相同部门则累加金额数据
|
|
|
|
- if (department.equals(bumen)) {
|
|
|
|
- for (int a=0;a<nckd_generalemployees.size();a++)
|
|
|
|
- {
|
|
|
|
- BigDecimal cell=sumNum.get(a);
|
|
|
|
- //字段标识
|
|
|
|
- String entry=nckd_generalemployees.get(a);
|
|
|
|
- //i行的a列数据
|
|
|
|
- BigDecimal num=staffentry.get(i).getBigDecimal(entry);
|
|
|
|
- cell=cell.add(num);
|
|
|
|
- sumNum.set(a,cell);
|
|
|
|
- }
|
|
|
|
- System.out.println(sumNum);
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ BigDecimal cell=sumNum.get(a);
|
|
|
|
+ //字段标识
|
|
|
|
+ String entry=nckd_generalemployees.get(a);
|
|
|
|
+ //i行的a列数据
|
|
|
|
+ BigDecimal num=staffentry.get(i).getBigDecimal(entry);
|
|
|
|
+ cell=cell.add(num);
|
|
|
|
+ sumNum.set(a,cell);
|
|
}
|
|
}
|
|
- //汇总数据获取
|
|
|
|
- alldata.add(sumNum);
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ //创建新的分录行
|
|
|
|
+ int rowIndex = this.getModel().createNewEntryRow(nckd_allentry);
|
|
|
|
+ //设置部门
|
|
|
|
+ this.getModel().setValue("nckd_all_department",depList.get(j),rowIndex);
|
|
|
|
+ for (int c=0;c<sumNum.size();c++) {
|
|
|
|
+ this.getModel().setValue(entryList(allentrtlist).get(c),sumNum.get(c),rowIndex);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|