123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- package fi.fa.formPlugin;
- import com.alibaba.druid.util.StringUtils;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.entity.datamodel.ListSelectedRowCollection;
- import kd.bos.form.CloseCallBack;
- import kd.bos.form.ShowFormHelper;
- import kd.bos.form.control.events.ItemClickEvent;
- import kd.bos.form.events.ClosedCallBackEvent;
- import kd.bos.list.BillList;
- import kd.bos.list.ListFilterParameter;
- import kd.bos.list.ListShowParameter;
- import kd.bos.list.plugin.AbstractListPlugin;
- import kd.bos.orm.query.QCP;
- import kd.bos.orm.query.QFilter;
- import kd.bos.servicehelper.BusinessDataServiceHelper;
- import kd.bos.servicehelper.operation.SaveServiceHelper;
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.util.*;
- public class EcardListPlugin 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_baritemap2".equals(itemKey)) {
- BillList billList = (BillList) this.getControl("billlistap");
- ListSelectedRowCollection list = billList.getSelectedRows();
- if (list.isEmpty()) {
- this.getView().showMessage("请至少选择一条数据");
- }else {
- ListShowParameter showParameter = ShowFormHelper.createShowListForm("fa_assetcategory", false, 2);
- showParameter.setFormId("bos_templatetreelistf7");
- showParameter.setCloseCallBack(new CloseCallBack(this, itemKey));
- this.getView().showForm(showParameter);
- }
- } else if ("nckd_baritemap1".equals(itemKey)) {
- boolean flag = true;
- BillList billList = (BillList) this.getControl("billlistap");
- ListSelectedRowCollection list = billList.getSelectedRows();
- Object[] primaryKeyValues = list.getPrimaryKeyValues();
- Set<Long> orgIds = new HashSet<>();
- for (Object primaryKeyValue : primaryKeyValues) {
- DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "nckd_fa_card_real_list");
- DynamicObject nckd_orgfield = cardInfo.getDynamicObject("nckd_orgfield");
- String nckd_card_real_code = cardInfo.getString("nckd_card_real_code");
- if (nckd_orgfield == null) {
- flag = false;
- this.getView().showMessage("单据:" + cardInfo.getString("number") + "的归属机构为空,请重新勾选数据!");
- break;
- }
- if(!StringUtils.isEmpty(nckd_card_real_code)) {
- flag = false;
- this.getView().showMessage("单据:" + cardInfo.getString("number") + "已生成实物卡片:" + nckd_card_real_code + ",请重新勾选数据!");
- break;
- }
- orgIds.add(nckd_orgfield.getLong("id"));
- }
- if (orgIds.isEmpty()) {
- flag = false;
- this.getView().showMessage("请至少选择一条数据");
- } else if (orgIds.size() > 1) {
- flag = false;
- this.getView().showMessage("所选择的数据归属机构不一致,请重新勾选数据!");
- }
- if (flag) {
- ListShowParameter showParameter = ShowFormHelper.createShowListForm("nckd_ft_rule", false, 2);
- showParameter.setFormId("bos_listf7");
- ListFilterParameter listFilterParameter = showParameter.getListFilterParameter();
- QFilter filter = new QFilter("entrycostcompany_orgrule.id", QCP.in, orgIds);
- filter.and("fid.billstatus", QCP.in, Arrays.asList("E", "F", "G"));
- listFilterParameter.setFilter(filter);
- showParameter.setListFilterParameter(listFilterParameter);
- showParameter.setCloseCallBack(new CloseCallBack(this, itemKey));
- this.getView().showForm(showParameter);
- }
- }
- }
- @Override
- public void closedCallBack(ClosedCallBackEvent e) {
- super.closedCallBack(e);
- if (null != e.getReturnData()) {
- if (StringUtils.equals(e.getActionId(), "nckd_baritemap2")) {
- //获取选中的资产类别
- ListSelectedRowCollection returnData = (ListSelectedRowCollection) e.getReturnData();
- Long primaryKeyValue = (Long) returnData.get(0).getPrimaryKeyValue();
- //更新选中的实物卡片清单资产类别
- BillList billList = (BillList) this.getControl("billlistap");
- ListSelectedRowCollection list = billList.getSelectedRows();
- Object[] primaryKeyValues = list.getPrimaryKeyValues();
- List<Object> ids = Arrays.asList(Arrays.stream(primaryKeyValues).toArray());
- QFilter filter = new QFilter("id", QCP.in, ids);
- DynamicObject[] realCards = BusinessDataServiceHelper.load("nckd_fa_card_real_list", "id", new QFilter[]{filter});
- for (DynamicObject realCard : realCards) {
- DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(realCard.getPkValue(), realCard.getDynamicObjectType().getName());
- cardInfo.set("nckd_fa_assetcategory", primaryKeyValue);
- SaveServiceHelper.save(new DynamicObject[]{cardInfo});
- }
- } else if (StringUtils.equals(e.getActionId(), "nckd_baritemap1")) {
- //获取选中的分摊信息
- ListSelectedRowCollection returnData = (ListSelectedRowCollection) e.getReturnData();
- Long primaryKeyValue = (Long) returnData.get(0).getPrimaryKeyValue();
- DynamicObject ftInfo = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "nckd_ft_rule");
- BigDecimal shareamount_comrule = ftInfo.getBigDecimal("shareamount_comrule");
- //更新选中的实物卡片清单资产类别
- BillList billList = (BillList) this.getControl("billlistap");
- ListSelectedRowCollection list = billList.getSelectedRows();
- BigDecimal nckd_ft_amount = shareamount_comrule.divide(BigDecimal.valueOf(list.size()), RoundingMode.HALF_UP);
- Object[] primaryKeyValues = list.getPrimaryKeyValues();
- List<Object> ids = Arrays.asList(Arrays.stream(primaryKeyValues).toArray());
- QFilter filter = new QFilter("id", QCP.in, ids);
- DynamicObject[] realCards = BusinessDataServiceHelper.load("nckd_fa_card_real_list", "id", new QFilter[]{filter});
- for (DynamicObject realCard : realCards) {
- DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(realCard.getPkValue(), realCard.getDynamicObjectType().getName());
- cardInfo.set("nckd_ft_amount", nckd_ft_amount);
- SaveServiceHelper.save(new DynamicObject[]{cardInfo});
- }
- }
- }
- }
- }
|