SubAndAudFormPlugin.java 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. package fi.em.formPlugin;
  2. import kd.bos.dataentity.entity.DynamicObject;
  3. import kd.bos.dataentity.entity.DynamicObjectCollection;
  4. import kd.bos.form.events.AfterDoOperationEventArgs;
  5. import kd.bos.form.events.BeforeDoOperationEventArgs;
  6. import kd.bos.form.operate.FormOperate;
  7. import kd.bos.list.plugin.AbstractListPlugin;
  8. import kd.sdk.plugin.Plugin;
  9. import kd.tmc.fpm.business.domain.model.report.DynamicObjectData;
  10. import java.math.BigDecimal;
  11. import java.util.*;
  12. /**
  13. * @author cjz
  14. * @date 2024/9/12 11:12
  15. * @description:薪酬计提提交后自动审核,保存前计算汇总分录
  16. */
  17. public class SubAndAudFormPlugin extends AbstractListPlugin implements Plugin {
  18. private static String nckd_staffentry="nckd_staffentry";//通用薪酬一般员工
  19. private static String nckd_a_staffentry="nckd_a_staffentry";//通用薪酬一般员工汇总分录标识
  20. private static String nckd_earlyretiredentry="nckd_earlyretiredentry";//通用薪酬内退
  21. private static String nckd_a_earlyretiredentry="nckd_a_earlyretiredentry";//通用薪酬内退分录标识
  22. private static String nckd_retireentry="nckd_retireentry";//通用薪酬退休
  23. private static String nckd_a_retireentry="nckd_a_retireentry";//通用薪酬退休分录标识
  24. private static String nckd_salaryentry="nckd_salaryentry";//人力薪酬
  25. private static String nckd_a_salaryentry="nckd_a_salaryentry";//人力薪酬分录标识
  26. private static String nckd_salaryentryre="nckd_salaryentryre";//人力薪酬内退
  27. private static String nckd_a_salaryentryre="nckd_a_salaryentryre";//人力薪酬内退标识
  28. //控件标识
  29. private static String nckd_a_generalemployees="nckd_a_generalemployees";//通用一般汇总
  30. private static String nckd_a_earlyretired="nckd_a_earlyretired";//通用内退汇总
  31. private static String nckd_a_retired="nckd_a_retired";//通用退休汇总
  32. private static String nckd_a_pay="nckd_a_pay";//人力一般汇总
  33. private static String nckd_a_payretird="nckd_a_payretird";//人力内退汇总
  34. public void afterDoOperation(AfterDoOperationEventArgs arg){
  35. //提交并审核
  36. if ("submit".equals(arg.getOperateKey())) {
  37. //调用审核
  38. this.getView().invokeOperation("audit");
  39. }
  40. }
  41. //根据输入的list名,返回对应list
  42. public List<String> entryList(String nckdentry)
  43. {
  44. //薪酬明细(一般员工)分录字段标识,金额字段
  45. List<String> nckd_generalemployees = Arrays.asList("nckd_se_allbasicsry"
  46. ,"nckd_se_basicsry","nckd_se_acmsry","nckd_se_reacmsry","nckd_se_bsnrwd","nckd_se_otreward","nckd_se_cmcsbd"
  47. ,"nckd_se_otherpysry","nckd_se_clearrwd","nckd_se_awareward","nckd_se_otherdevreward","nckd_se_coldsbad"
  48. ,"nckd_se_warmsbad","nckd_se_nursabd","nckd_se_otherallowance","nckd_se_salarypayable","nckd_se_per_endins"
  49. ,"nckd_se_per_hopins","nckd_se_per_bhopins","nckd_se_per_ljins","nckd_se_per_hosins","nckd_se_per_cmymey"
  50. ,"nckd_se_unionmey","nckd_se_tax","nckd_se_otherreduce","nckd_se_desalary","nckd_se_netsalary","nckd_se_cpy_endins"
  51. ,"nckd_se_cpy_hopins","nckd_se_cpy_bhopins","nckd_se_cpy_ljins","nckd_se_cpy_birthins","nckd_se_cpy_dmgins","nckd_se_cpy_hosins"
  52. ,"nckd_se_cpy_cmymey");
  53. //薪酬明细(一般员工)汇总分录
  54. List<String> nckd_a_employees=Arrays.asList("nckd_ase_allbasicsry","nckd_ase_basicsry","nckd_ase_acmsry"
  55. ,"nckd_ase_reacmsry","nckd_ase_bsnrwd","nckd_ase_otreward","nckd_ase_cmcsbd","nckd_ase_otherpysry","nckd_ase_clearrwd"
  56. ,"nckd_ase_awareward","nckd_ase_otherdevreward","nckd_ase_coldsbad","nckd_ase_warmsbad","nckd_ase_nursabd","nckd_ase_oalwance"
  57. ,"nckd_ase_salarypayable","nckd_ase_per_endins","nckd_ase_per_hopins","nckd_ase_per_bhopins","nckd_ase_per_ljins","nckd_ase_per_hosins"
  58. ,"nckd_ase_per_cmymey","nckd_ase_unionmey","nckd_ase_tax","nckd_ase_otherreduce","nckd_ase_desalary","nckd_ase_netsalary"
  59. ,"nckd_ase_cpy_endins","nckd_ase_cpy_hopins","nckd_ase_cpy_bhopins","nckd_ase_cpy_ljins","nckd_ase_cpy_birthins","nckd_ase_cpy_dmgins"
  60. ,"nckd_ase_cpy_hosins","nckd_ase_cpy_cmymey");
  61. //薪酬明细(内退)分录字段标识,金额字段
  62. List<String> nckd_earlyretired=Arrays.asList("nckd_ee_allbasicsry","nckd_ee_allowance","nckd_ee_otherallowance","nckd_ee_per_endins"
  63. ,"nckd_ee_per_ljins","nckd_ee_per_hopins","nckd_ee_per_bhopins","nckd_ee_per_hosins","nckd_ee_per_cmymey","nckd_ee_unionmey"
  64. ,"nckd_ee_tax","nckd_ee_desalary","nckd_ee_netsalary","nckd_ee_otherreduce","nckd_ee_cpy_endins","nckd_ee_cpy_bhopins"
  65. ,"nckd_ee_cpy_ljins","nckd_ee_cpy_birthins","nckd_ee_cpy_dmgins","nckd_ee_cpy_cmymey","nckd_ee_cpy_hosins","nckd_ee_taxt"
  66. ,"nckd_ee_alltaxt","nckd_ee_charge","nckd_ee_finallsys");
  67. //薪酬明细(内退)汇总分录
  68. List<String> nckd_a_earlyretired=Arrays.asList("nckd_aee_allbasicsry","nckd_aee_allowance","nckd_aee_ollowance","nckd_aee_per_endins"
  69. ,"nckd_aee_per_ljins","nckd_aee_per_hopins","nckd_aee_per_bhopins","nckd_aee_per_hosins","nckd_aee_per_cmymey","nckd_aee_unionmey"
  70. ,"nckd_aee_tax","nckd_aee_desalary","nckd_aee_netsalary","nckd_aee_otherreduce","nckd_aee_cpy_endins","nckd_aee_cpy_bhopins","nckd_aee_cpy_ljins"
  71. ,"nckd_aee_cpy_birthins","nckd_aee_cpy_dmgins","nckd_aee_cpy_cmymey","nckd_aee_cpy_hosins","nckd_aee_taxt","nckd_aee_alltaxt","nckd_aee_charge"
  72. ,"nckd_aee_finallsys");
  73. //薪酬明细(退休)分录字段标识,金额字段
  74. List<String> nckd_retired=Arrays.asList("nckd_re_livallowance","nckd_re_otherallowance","nckd_re_reward"
  75. ,"nckd_re_salarypayable","nckd_re_desalary","nckd_re_netsalary");
  76. //薪酬明细(退休)汇总分录
  77. List<String> nckd_a_retired=Arrays.asList("nckd_are_livallowance","nckd_are_ollowance","nckd_are_reward","nckd_are_salarypayable"
  78. ,"nckd_are_desalary","nckd_are_netsalary");
  79. //人力薪酬分录标识金额字段,金额字段
  80. List<String> nckd_pay=Arrays.asList("nckd_sae_levelsry","nckd_sae_dutiessry","nckd_sae_updutiessry","nckd_sae_workyearsry"
  81. ,"nckd_sae_depyear","nckd_sae_eduasry","nckd_sae_transry","nckd_sae_jobsry","nckd_sae_basicsry","nckd_sae_allbasicsry","nckd_sae_acmsry"
  82. ,"nckd_sae_mountsry","nckd_sae_reacmsry","nckd_sae_balyearsry","nckd_sae_blastyearsry","nckd_sae_allsry","nckd_sae_bsnrwd","nckd_sae_cpmrwd"
  83. ,"nckd_sae_psrwd","nckd_sae_comrwd","nckd_sae_cardrwd","nckd_sae_intwrd","nckd_sae_clearrwd","nckd_sae_allrwd","nckd_sae_retainsry"
  84. ,"nckd_sae_reward","nckd_sae_otreward","nckd_sae_cmcsbd","nckd_sae_trfsbd","nckd_sae_housesbd","nckd_sae_warmsbd","nckd_sae_edusbd"
  85. ,"nckd_sae_trafficsbd","nckd_sae_othersbd","nckd_sae_reduce","nckd_sae_othersry","nckd_sae_sickreduce","nckd_sae_sickhopreduce"
  86. ,"nckd_sae_eventreduce","nckd_sae_afwreduce","nckd_sae_latereduce","nckd_sae_cwasry","nckd_sae_cwareduce","nckd_sae_dgreduce"
  87. ,"nckd_sae_dcpreduce","nckd_sae_badreduce","nckd_sae_otherreduce","nckd_sae_allreduce","nckd_sae_lastsry","nckd_sae_allpay"
  88. ,"nckd_sae_per_endins","nckd_sae_per_ljins","nckd_sae_per_hopins","nckd_sae_per_bhopins","nckd_sae_per_hosins","nckd_sae_per_cmymey"
  89. ,"nckd_sae_per_ins","nckd_sae_unionmey","nckd_sae_tax","nckd_sae_allamount","nckd_sae_cash","nckd_sae_wages","nckd_sae_cpy_endins"
  90. ,"nckd_sae_cpy_hopins","nckd_sae_cpy_bhopins","nckd_sae_cpy_birthins","nckd_sae_cpy_ljins","nckd_sae_cpy_dmgins","nckd_sae_cpy_hosins"
  91. ,"nckd_sae_cpy_cmymey");
  92. //人力薪酬汇总分录
  93. List<String>nckd_a_allpay=Arrays.asList("nckd_asae_levelsry","nckd_asae_dutiessry","nckd_asae_updutiessry","nckd_asae_workyearsry"
  94. ,"nckd_asae_depyear","nckd_asae_eduasry","nckd_asae_transry","nckd_asae_jobsry","nckd_asae_basicsry","nckd_asae_allbasicsry"
  95. ,"nckd_asae_acmsry","nckd_asae_mountsry","nckd_asae_reacmsry","nckd_asae_balyearsry","nckd_asae_blastyearsry","nckd_asae_allsry"
  96. ,"nckd_asae_bsnrwd","nckd_asae_cpmrwd","nckd_asae_psrwd","nckd_asae_comrwd","nckd_asae_cardrwd","nckd_asae_intwrd","nckd_asae_clearrwd"
  97. ,"nckd_asae_allrwd","nckd_asae_retainsry","nckd_asae_reward","nckd_asae_otreward","nckd_asae_cmcsbd","nckd_asae_trfsbd","nckd_asae_housesbd"
  98. ,"nckd_asae_warmsbd","nckd_asae_edusbd","nckd_asae_trafficsbd","nckd_asae_othersbd","nckd_asae_reduce","nckd_asae_othersry","nckd_asae_sickreduce"
  99. ,"nckd_asae_shopreduce","nckd_asae_eventreduce","nckd_asae_afwreduce","nckd_asae_latereduce","nckd_asae_cwasry","nckd_asae_cwareduce"
  100. ,"nckd_asae_dgreduce","nckd_asae_dcpreduce","nckd_asae_badreduce","nckd_asae_otherreduce","nckd_asae_allreduce","nckd_asae_lastsry"
  101. ,"nckd_asae_allpay","nckd_asae_per_endins","nckd_asae_per_ljins","nckd_asae_per_hopins","nckd_asae_per_bhopins","nckd_asae_per_hosins"
  102. ,"nckd_asae_per_cmymey","nckd_asae_per_ins","nckd_asae_unionmey","nckd_asae_tax","nckd_asae_allamount","nckd_asae_cash","nckd_asae_wages"
  103. ,"nckd_asae_cpy_endins","nckd_asae_cpy_hopins","nckd_asae_cpy_bhopins","nckd_asae_cpy_birthins","nckd_asae_cpy_ljins","nckd_asae_cpy_dmgins"
  104. ,"nckd_asae_cpy_hosins","nckd_asae_cpy_cmymey");
  105. //人力薪酬内退分录标识,金额字段
  106. List<String> nckd_payretird=Arrays.asList("nckd_see_allbasicsry"
  107. ,"nckd_see_allowance","nckd_see_otherallowanc","nckd_see_per_endins","nckd_see_per_ljins","nckd_see_per_hopins"
  108. ,"nckd_see_per_bhopins","nckd_see_per_hosins","nckd_see_per_cmymey","nckd_see_unionmey","nckd_see_tax"
  109. ,"nckd_see_desalary","nckd_see_netsalary","nckd_see_otherreduce","nckd_see_cpy_endins","nckd_see_cpy_bhopins"
  110. ,"nckd_see_cpy_ljins","nckd_see_cpy_birthins","nckd_see_cpy_dmgins","nckd_see_cpy_cmymey","nckd_see_cpy_hosins"
  111. ,"nckd_see_taxt","nckd_see_alltaxt","nckd_see_charge","nckd_see_finallsys","nckd_see_cpy_oldins","nckd_see_cpy_hop"
  112. ,"nckd_see_cpy_bhop","nckd_see_cpy_bir","nckd_see_cpy_ljob","nckd_see_cpy_dwork","nckd_see_cpy_hos","nckd_see_cpy_cmy");
  113. //人力薪酬内退分录
  114. List<String> nckd_a_payretird=Arrays.asList("nckd_asee_allbasicsry","nckd_asee_allowance","nckd_asee_ollowanc","nckd_asee_per_endins"
  115. ,"nckd_asee_per_ljins","nckd_asee_per_hopins","nckd_asee_per_bhopins","nckd_asee_per_hosins","nckd_asee_per_cmymey","nckd_asee_unionmey"
  116. ,"nckd_asee_tax","nckd_asee_desalary","nckd_asee_netsalary","nckd_asee_otherreduce","nckd_asee_cpy_endins","nckd_asee_cpy_bhopins"
  117. ,"nckd_asee_cpy_ljins","nckd_asee_cpy_birthins","nckd_asee_cpy_dmgins","nckd_asee_cpy_cmymey","nckd_asee_cpy_hosins","nckd_asee_taxt"
  118. ,"nckd_asee_alltaxt","nckd_asee_charge","nckd_asee_finallsys","nckd_asee_cpy_oldins","nckd_asee_cpy_hop","nckd_asee_cpy_bhop","nckd_asee_cpy_bir"
  119. ,"nckd_asee_cpy_ljob","nckd_asee_cpy_dwork","nckd_asee_cpy_hos","nckd_asee_cpy_cmy");
  120. Map<String,List<String>> mapList=new HashMap<>();
  121. mapList.put("nckd_generalemployees",nckd_generalemployees);
  122. mapList.put("nckd_a_employees",nckd_a_employees);
  123. mapList.put("nckd_earlyretired",nckd_earlyretired);
  124. mapList.put("nckd_retired",nckd_retired);
  125. mapList.put("nckd_a_earlyretired",nckd_a_earlyretired);
  126. mapList.put("nckd_pay",nckd_pay);
  127. mapList.put("nckd_payretird",nckd_payretird);
  128. mapList.put("nckd_a_retired",nckd_a_retired);
  129. mapList.put("nckd_a_allpay",nckd_a_allpay);
  130. mapList.put("nckd_a_payretird",nckd_a_payretird);
  131. //list名
  132. List<String> list=new ArrayList<>();
  133. list.add("nckd_a_payretird");
  134. list.add("nckd_a_allpay");
  135. list.add("nckd_a_retired");
  136. list.add("nckd_generalemployees");
  137. list.add("nckd_allemployees");
  138. list.add("nckd_a_employees");
  139. list.add("nckd_earlyretired");
  140. list.add("nckd_retired");
  141. list.add("nckd_a_earlyretired");
  142. list.add("nckd_pay");
  143. list.add("nckd_payretird");
  144. list.add("nckd_allearlytired");
  145. list.add("nckd_allretired");
  146. list.add("nckd_allpay");
  147. list.add("nckd_allpayretird");
  148. for (String item:list) {
  149. if (nckdentry.equals(item)) {
  150. return mapList.get(nckdentry);
  151. }
  152. }
  153. return null;
  154. }
  155. //保存前计算汇总分录
  156. public void beforeDoOperation(BeforeDoOperationEventArgs arg) {
  157. super.beforeDoOperation(arg);
  158. FormOperate source = (FormOperate) arg.getSource();
  159. //获取当前操作单据
  160. DynamicObject dynamicObject=this.getModel().getDataEntity(true);
  161. //当前单据分录类型
  162. String nckd_entrytype=dynamicObject.getString("nckd_entrytype");
  163. //保存前,计算汇总分录
  164. if ("save".equals(source.getOperateKey())||"countall".equals(source.getOperateKey())){
  165. //分录类型为通用薪酬一般员工
  166. if ("A".equals(nckd_entrytype)) {
  167. //先清空汇总分录分录
  168. this.getModel().deleteEntryData("nckd_a_staffentry");
  169. //字段标识
  170. String entrylist="nckd_generalemployees";
  171. //对应分录标识
  172. String propername="nckd_staffentry";
  173. //对应部门标识
  174. String dep="nckd_se_department";
  175. //对应汇总分录字段标识
  176. String allentrtlist="nckd_a_employees";
  177. this.getView().setVisible(true,nckd_a_generalemployees);
  178. this.getView().setVisible(false,nckd_a_earlyretired);
  179. this.getView().setVisible(false,nckd_a_retired);
  180. this.getView().setVisible(false,nckd_a_pay);
  181. this.getView().setVisible(false,nckd_a_payretird);
  182. allDataEntry(dynamicObject,entrylist,propername,dep,allentrtlist,"nckd_ase_department",nckd_a_staffentry);
  183. }
  184. //分录类型为通用薪酬内退
  185. if ("B".equals(nckd_entrytype)) {
  186. //先清空汇总分录分录
  187. this.getModel().deleteEntryData("nckd_a_earlyretiredentry");
  188. //字段标识
  189. String entrylist="nckd_earlyretired";
  190. //对应分录标识
  191. String propername="nckd_earlyretiredentry";
  192. //对应部门标识
  193. String dep="nckd_ee_department";
  194. //对应汇总分录字段标识
  195. String allentrtlist="nckd_a_earlyretired";
  196. allDataEntry(dynamicObject,entrylist,propername,dep,allentrtlist,"nckd_aee_department",nckd_a_earlyretiredentry);
  197. this.getView().setVisible(false,nckd_a_generalemployees);
  198. this.getView().setVisible(true,nckd_a_earlyretired);
  199. this.getView().setVisible(false,nckd_a_retired);
  200. this.getView().setVisible(false,nckd_a_pay);
  201. this.getView().setVisible(false,nckd_a_payretird);
  202. }
  203. //分录类型为通用薪酬退休
  204. if ("C".equals(nckd_entrytype)) {
  205. //先清空汇总分录分录
  206. this.getModel().deleteEntryData("nckd_a_retireentry");
  207. //字段标识
  208. String entrylist="nckd_retired";
  209. //对应分录标识
  210. String propername="nckd_retireentry";
  211. //对应部门标识
  212. String dep="nckd_re_department";
  213. //对应汇总分录字段标识
  214. String allentrtlist="nckd_a_retired";
  215. allDataEntry(dynamicObject,entrylist,propername,dep,allentrtlist,"nckd_are_department",nckd_a_retireentry);
  216. this.getView().setVisible(false,nckd_a_generalemployees);
  217. this.getView().setVisible(false,nckd_a_earlyretired);
  218. this.getView().setVisible(true,nckd_a_retired);
  219. this.getView().setVisible(false,nckd_a_pay);
  220. this.getView().setVisible(false,nckd_a_payretird);
  221. }
  222. //分录类型为人力薪酬(一般员工)
  223. if ("D".equals(nckd_entrytype)) {
  224. //先清空汇总分录分录
  225. this.getModel().deleteEntryData("nckd_a_salaryentry");
  226. //字段标识
  227. String entrylist="nckd_pay";
  228. //对应分录标识
  229. String propername="nckd_salaryentry";
  230. //对应部门标识
  231. String dep="nckd_sae_department";
  232. //对应汇总分录字段标识
  233. String allentrtlist="nckd_a_allpay";
  234. allDataEntry(dynamicObject,entrylist,propername,dep,allentrtlist,"nckd_asae_department",nckd_a_salaryentry);
  235. this.getView().setVisible(false,nckd_a_generalemployees);
  236. this.getView().setVisible(false,nckd_a_earlyretired);
  237. this.getView().setVisible(false,nckd_a_retired);
  238. this.getView().setVisible(true,nckd_a_pay);
  239. this.getView().setVisible(false,nckd_a_payretird);
  240. }
  241. //分录类型为人力薪酬(内退)
  242. if ("E".equals(nckd_entrytype)) {
  243. //先清空汇总分录分录
  244. this.getModel().deleteEntryData("nckd_a_salaryentryre");
  245. //字段标识
  246. String entrylist="nckd_payretird";
  247. //对应分录标识
  248. String propername="nckd_salaryentryre";
  249. //对应部门标识
  250. String dep="nckd_see_department";
  251. //对应汇总分录字段标识
  252. String allentrtlist="nckd_a_payretird";
  253. allDataEntry(dynamicObject,entrylist,propername,dep,allentrtlist,"nckd_asee_department",nckd_a_salaryentryre);
  254. this.getView().setVisible(false,nckd_a_generalemployees);
  255. this.getView().setVisible(false,nckd_a_earlyretired);
  256. this.getView().setVisible(false,nckd_a_retired);
  257. this.getView().setVisible(false,nckd_a_pay);
  258. this.getView().setVisible(true,nckd_a_payretird);
  259. }
  260. }
  261. }
  262. /**
  263. * @dynamicObject 当前单据信息
  264. * @entrylist 字段标识列表
  265. * @propername 分录标识
  266. * @dep 对应分录部门标识
  267. * @allentrtlist 写入的汇总分录字段
  268. * @nckd_dep 汇总分录部门标识
  269. * @description:根据分录类型不同计算汇总分录
  270. */
  271. public void allDataEntry(DynamicObject dynamicObject
  272. ,String entrylist,String propername,String dep,String allentrtlist,String nckd_dep,String nckd_allentry)
  273. {
  274. //字段标识
  275. List<String> nckd_generalemployees = entryList(entrylist);
  276. //获取一般员工分录
  277. DynamicObjectCollection staffentry=dynamicObject.getDynamicObjectCollection(propername);
  278. //分录部门list
  279. List<DynamicObject> depList=new ArrayList<>();
  280. //初始化值为第一行部门
  281. depList.add(staffentry.get(0).getDynamicObject(dep));
  282. for (DynamicObject item:staffentry) {
  283. //将不同的值加入到部门的list中
  284. if (!depList.contains(item.getDynamicObject(dep))) {
  285. depList.add(item.getDynamicObject(dep));
  286. }
  287. }
  288. //几个不同部门则循环几次
  289. for (DynamicObject bumen : depList) {
  290. //某部门总数据
  291. List<BigDecimal> sumNum = new ArrayList<>();
  292. //汇总表部门list初始化
  293. for (int b = 0; b < nckd_generalemployees.size(); b++) {
  294. sumNum.add(new BigDecimal("0.0"));
  295. }
  296. //计算一个部门汇总
  297. for (DynamicObject object : staffentry) {
  298. //获取所在部门
  299. DynamicObject department = object.getDynamicObject(dep);
  300. //相同部门则累加金额数据
  301. if (department.equals(bumen)) {
  302. for (int a = 0; a < nckd_generalemployees.size(); a++) {
  303. BigDecimal cell = sumNum.get(a);
  304. //字段标识
  305. String entry = nckd_generalemployees.get(a);
  306. //i行的a列数据
  307. BigDecimal num = object.getBigDecimal(entry);
  308. cell = cell.add(num);
  309. sumNum.set(a, cell);
  310. }
  311. }
  312. }
  313. //创建新的分录行
  314. int rowIndex = this.getModel().createNewEntryRow(nckd_allentry);
  315. //设置部门
  316. this.getModel().setValue(nckd_dep, bumen, rowIndex);
  317. for (int c = 0; c < sumNum.size(); c++) {
  318. this.getModel().setValue(entryList(allentrtlist).get(c), sumNum.get(c), rowIndex);
  319. }
  320. }
  321. }
  322. }