|
@@ -0,0 +1,73 @@
|
|
|
+package fi.cas.formplugin;
|
|
|
+
|
|
|
+import fi.cas.task.MatchBadDebtsTask;
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
+import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
|
|
+import kd.bos.form.control.events.ItemClickEvent;
|
|
|
+import kd.bos.list.BillList;
|
|
|
+import kd.bos.list.plugin.AbstractListPlugin;
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
+import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.EventObject;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+//坏账单计算计提金额
|
|
|
+public class ArBadDebtLossListPlugin extends AbstractListPlugin {
|
|
|
+
|
|
|
+ public void registerListener(EventObject e) {
|
|
|
+ super.registerListener(e);
|
|
|
+ this.addItemClickListeners(new String[]{"toolbarap"});
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void itemClick(ItemClickEvent evt) {
|
|
|
+ String itemKey = evt.getItemKey();
|
|
|
+ if ("nckd_match".equals(itemKey)) {
|
|
|
+ List<DynamicObject> jz = new ArrayList<>();
|
|
|
+ List<DynamicObject> ar_baddebtlossbill = new ArrayList<>();//坏账单列表
|
|
|
+ List<DynamicObject> infoList = new ArrayList<>();//计算成功的坏帐单列表
|
|
|
+ List<DynamicObject> ar_baddebtlossbill_customer = new ArrayList<>();//根据客户坏账单列表
|
|
|
+ List<DynamicObject> ar_baddebtlossbill_five_level = new ArrayList<>();//根据五级分类坏账单列表
|
|
|
+
|
|
|
+ BillList billList = (BillList)this.getControl("billlistap");
|
|
|
+ ListSelectedRowCollection list = billList.getSelectedRows();
|
|
|
+ Object[] primaryKeyValues = list.getPrimaryKeyValues();
|
|
|
+ if (primaryKeyValues.length > 0) {
|
|
|
+ for (Object pk : primaryKeyValues) {
|
|
|
+ DynamicObject info = BusinessDataServiceHelper.loadSingle(pk, "ar_baddebtlossbill");
|
|
|
+ ar_baddebtlossbill.add(info);
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询减值准备数据(最新一批)
|
|
|
+ DynamicObject[] jzdynamicObjects = BusinessDataServiceHelper.load("nckd_impairment","id", null);
|
|
|
+ for (DynamicObject jzdynamicObject : jzdynamicObjects) {
|
|
|
+ DynamicObject info = BusinessDataServiceHelper.loadSingle(jzdynamicObject.getPkValue(), jzdynamicObject.getDynamicObjectType().getName());
|
|
|
+ jz.add(info);
|
|
|
+ }
|
|
|
+
|
|
|
+ MatchBadDebtsTask matchBadDebtsTask = new MatchBadDebtsTask();
|
|
|
+
|
|
|
+ //下推坏账-根据借据号匹配
|
|
|
+ matchBadDebtsTask.MatchByDubilId(ar_baddebtlossbill, jz, infoList, ar_baddebtlossbill_customer);
|
|
|
+
|
|
|
+ //下推坏账-根据客户匹配
|
|
|
+ matchBadDebtsTask.MatchByCustom(ar_baddebtlossbill_customer, jz, infoList, ar_baddebtlossbill_five_level);
|
|
|
+
|
|
|
+ //下推坏账-根据五级分类匹配
|
|
|
+ matchBadDebtsTask.MatchByFiveLevel(ar_baddebtlossbill_five_level, infoList);
|
|
|
+
|
|
|
+ //保存
|
|
|
+ DynamicObject[] array = infoList.toArray(new DynamicObject[0]);
|
|
|
+ SaveServiceHelper.save(array);
|
|
|
+
|
|
|
+ // 显示最终的成功和失败消息
|
|
|
+ String message = String.format("执行完成:成功 %d 条,失败 %d 条", array.length, list.size() - array.length);
|
|
|
+ this.getView().showMessage(message);
|
|
|
+ }else {
|
|
|
+ this.getView().showMessage("请至少选择一条数据");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|