258 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			258 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Java
		
	
	
	
package tqq9.lc123.cloud.app.plugin.form.conm;
 | 
						|
 | 
						|
import kd.bos.bill.BillShowParameter;
 | 
						|
import kd.bos.dataentity.entity.DynamicObject;
 | 
						|
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
						|
import kd.bos.dataentity.utils.StringUtils;
 | 
						|
import kd.bos.entity.datamodel.IDataModel;
 | 
						|
import kd.bos.entity.datamodel.events.BeforeDeleteRowEventArgs;
 | 
						|
import kd.bos.form.CloseCallBack;
 | 
						|
import kd.bos.form.ShowType;
 | 
						|
import kd.bos.form.StyleCss;
 | 
						|
import kd.bos.form.control.EntryGrid;
 | 
						|
import kd.bos.form.control.events.ItemClickEvent;
 | 
						|
import kd.bos.form.events.ClosedCallBackEvent;
 | 
						|
import kd.bos.form.events.HyperLinkClickEvent;
 | 
						|
import kd.bos.form.events.HyperLinkClickListener;
 | 
						|
import kd.bos.form.plugin.AbstractFormPlugin;
 | 
						|
import kd.bos.logging.Log;
 | 
						|
import kd.bos.logging.LogFactory;
 | 
						|
import kd.bos.orm.query.QCP;
 | 
						|
import kd.bos.orm.query.QFilter;
 | 
						|
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
						|
import kd.bos.servicehelper.operation.DeleteServiceHelper;
 | 
						|
 | 
						|
import java.math.BigDecimal;
 | 
						|
import java.util.*;
 | 
						|
 | 
						|
/**
 | 
						|
 * 采购合同表单插件
 | 
						|
 * 点击按钮新增返利规则
 | 
						|
 */
 | 
						|
public class purconmAddRebateRulesPlugin extends AbstractFormPlugin implements HyperLinkClickListener {
 | 
						|
    private final static Log logger = LogFactory.getLog(purconmAddRebateRulesPlugin.class);
 | 
						|
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void registerListener(EventObject e) {
 | 
						|
        super.registerListener(e);
 | 
						|
        this.addItemClickListeners("tbmain");
 | 
						|
        this.addItemClickListeners("tqq9_rebatetoolbarap");
 | 
						|
        this.addClickListeners(new String[]{"tqq9_paybillno"});
 | 
						|
        EntryGrid preEntry = (EntryGrid) this.getView().getControl("tqq9_entryentity");
 | 
						|
        preEntry.addHyperClickListener(this);
 | 
						|
    }
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void beforeDeleteRow(BeforeDeleteRowEventArgs e) {
 | 
						|
        super.beforeDeleteRow(e);
 | 
						|
        if (e.getEntryProp().equals("tqq9_entryentity")){
 | 
						|
            int[] selectRows = e.getRowIndexs();
 | 
						|
            DynamicObjectCollection tqq9_entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entryentity");
 | 
						|
            List<Long> rebate = new ArrayList<>();
 | 
						|
            StringBuilder stringBuilder = new StringBuilder();
 | 
						|
            for (int i = 0; i < selectRows.length; i++) {
 | 
						|
                int selectRow = selectRows[i];
 | 
						|
                DynamicObject dynamicObject = tqq9_entryentity.get(selectRow);
 | 
						|
                DynamicObject tqq9_pur_rebate = dynamicObject.getDynamicObject("tqq9_pur_rebate");
 | 
						|
                if (tqq9_pur_rebate != null) {
 | 
						|
                    String name = dynamicObject.getString("tqq9_rulename");
 | 
						|
                    if (tqq9_pur_rebate.getString("status").equals("A")) {
 | 
						|
                        rebate.add(tqq9_pur_rebate.getLong("id"));
 | 
						|
                    } else {
 | 
						|
                        this.getView().showMessage("名称为:'" + name + "'的返利规则为非暂存状态,无法删除");
 | 
						|
                        e.setCancel(true);
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            DeleteServiceHelper.delete("tqq9_pur_rebate", new QFilter[]{new QFilter("id", QCP.in, rebate)});
 | 
						|
            this.getView().showMessage("返利规则删除成功");
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void itemClick(ItemClickEvent evt) {
 | 
						|
        super.itemClick(evt);
 | 
						|
        String itemKey = evt.getItemKey();
 | 
						|
        if (StringUtils.equals("tqq9_rebate_addrow", itemKey)) {
 | 
						|
            BillShowParameter param = new BillShowParameter();
 | 
						|
            param.setFormId("tqq9_pur_rebate");
 | 
						|
            param.setCustomParam("purcontract_billno", this.getModel().getValue("billno"));
 | 
						|
            param.setCustomParam("purcontract_supplier", this.getModel().getValue("supplier"));
 | 
						|
            param.setCustomParam("purcontract_tqq9_dxpp", this.getModel().getValue("tqq9_dxpp"));
 | 
						|
            param.setCloseCallBack(new CloseCallBack(this, "entry_rebateSync"));
 | 
						|
            param.getOpenStyle().setShowType(ShowType.Modal);
 | 
						|
            this.getView().showForm(param);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) {
 | 
						|
        int rowIndex = hyperLinkClickEvent.getRowIndex();
 | 
						|
        String tqq9_rulename = (String) this.getModel().getValue("tqq9_rulename", rowIndex);
 | 
						|
        DynamicObject tqq9_pur_rebate = BusinessDataServiceHelper.loadSingle("tqq9_pur_rebate", new QFilter[]{new QFilter("name", QCP.equals, tqq9_rulename)});
 | 
						|
        if (tqq9_pur_rebate != null) {
 | 
						|
            Long id = tqq9_pur_rebate.getLong("id");
 | 
						|
            BillShowParameter formshowParameter = new BillShowParameter();
 | 
						|
            formshowParameter.setFormId("tqq9_pur_rebate");
 | 
						|
            formshowParameter.getOpenStyle().setInlineStyleCss(new StyleCss());
 | 
						|
            formshowParameter.setPkId(id);
 | 
						|
            formshowParameter.getOpenStyle().setShowType(ShowType.Modal);
 | 
						|
            formshowParameter.setCustomParam("purcontract_billno", this.getModel().getValue("billno"));
 | 
						|
            formshowParameter.setCustomParam("purcontract_supplier", this.getModel().getValue("supplier"));
 | 
						|
            formshowParameter.setCustomParam("purcontract_tqq9_dxpp", this.getModel().getValue("tqq9_dxpp"));
 | 
						|
            formshowParameter.setCloseCallBack(new CloseCallBack(this, "entry_rebateSync_click"));
 | 
						|
            this.getView().showForm(formshowParameter);
 | 
						|
        } else {
 | 
						|
            this.getView().showErrorNotification("名称为:'" + tqq9_rulename + "'的返利规则不存在或者已删除,请删除该分录后重新编辑");
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
     * 点击增行分录返回值
 | 
						|
     *
 | 
						|
     * @param closedCallBackEvent
 | 
						|
     */
 | 
						|
    @Override
 | 
						|
    public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
 | 
						|
        super.closedCallBack(closedCallBackEvent);
 | 
						|
        IDataModel model = this.getModel();
 | 
						|
        String actionId = closedCallBackEvent.getActionId();
 | 
						|
        Object returnData = closedCallBackEvent.getReturnData();
 | 
						|
        if (returnData != null) {
 | 
						|
            if ("entry_rebateSync".equals(actionId)) {
 | 
						|
                DynamicObjectCollection tqq9_entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entryentity");
 | 
						|
                int size = tqq9_entryentity.size();
 | 
						|
                DynamicObject dynamicObject = (DynamicObject) ((HashMap) returnData).get("tqq9_pur_rebate");
 | 
						|
                String name = dynamicObject.getString("name");//规则名称
 | 
						|
                DynamicObjectCollection tqq9_rebatebrand = dynamicObject.getDynamicObjectCollection("tqq9_rebatebrand");//品牌
 | 
						|
                DynamicObjectCollection tqq9_supplier = dynamicObject.getDynamicObjectCollection("tqq9_supplier");//供应商
 | 
						|
                Date tqq9_startdate = dynamicObject.getDate("tqq9_startdate");//返利开始时间
 | 
						|
                Date tqq9_enddate = dynamicObject.getDate("tqq9_enddate");//返利结束时间
 | 
						|
                String tqq9_status = dynamicObject.getString("tqq9_status");//返利状态
 | 
						|
                DynamicObject creator = dynamicObject.getDynamicObject("creator");//创建人
 | 
						|
                Date createtime = dynamicObject.getDate("createtime");//创建时间
 | 
						|
                Date tqq9_lastdate = dynamicObject.getDate("tqq9_lastdate");//最后一次执行时间
 | 
						|
                String tqq9_rebatesub = dynamicObject.getString("tqq9_rebatesub");//返利主体
 | 
						|
                StringBuilder stringBuilder = new StringBuilder();
 | 
						|
                if (StringUtils.equals("A", tqq9_rebatesub)) {
 | 
						|
                    Boolean tqq9_shanghailici = dynamicObject.getBoolean("tqq9_shanghailici");
 | 
						|
                    if (tqq9_shanghailici) {
 | 
						|
                        stringBuilder.append(",").append("上海励齿");
 | 
						|
                    }
 | 
						|
                    Boolean tqq9_beijinglichi = dynamicObject.getBoolean("tqq9_beijinglichi");
 | 
						|
                    if (tqq9_beijinglichi) {
 | 
						|
                        stringBuilder.append(",").append("北京励齿");
 | 
						|
 | 
						|
                    }
 | 
						|
                    Boolean tqq9_guangzhoulici = dynamicObject.getBoolean("tqq9_guangzhoulici");
 | 
						|
                    if (tqq9_guangzhoulici) {
 | 
						|
                        stringBuilder.append(",").append("广州励齿");
 | 
						|
                    }
 | 
						|
                } else if (StringUtils.equals("B", tqq9_rebatesub)) {
 | 
						|
                    BigDecimal tqq9_shlcbl = dynamicObject.getBigDecimal("tqq9_shlcbl");
 | 
						|
                    if (tqq9_shlcbl.compareTo(BigDecimal.ZERO) == 0) {
 | 
						|
                        stringBuilder.append(",").append("上海励齿");
 | 
						|
                    }
 | 
						|
                    BigDecimal tqq9_bjlcbl = dynamicObject.getBigDecimal("tqq9_bjlcbl");
 | 
						|
                    if (tqq9_bjlcbl.compareTo(BigDecimal.ZERO) == 0) {
 | 
						|
                        stringBuilder.append(",").append("北京励齿");
 | 
						|
                    }
 | 
						|
                    BigDecimal tqq9_gzlcbl = dynamicObject.getBigDecimal("tqq9_gzlcbl");
 | 
						|
                    if (tqq9_gzlcbl.compareTo(BigDecimal.ZERO) == 0) {
 | 
						|
                        stringBuilder.append(",").append("广州励齿");
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
 | 
						|
                model.setValue("tqq9_rulename", name, size - 1);//规则名称
 | 
						|
                if (stringBuilder.length() > 0) {
 | 
						|
                    model.setValue("tqq9_company", stringBuilder.substring(1), size - 1);//主体
 | 
						|
                }
 | 
						|
                model.setValue("tqq9_brand", tqq9_rebatebrand, size - 1);//品牌
 | 
						|
                model.setValue("tqq9_supplier", tqq9_supplier, size - 1);//供应商
 | 
						|
                model.setValue("tqq9_startdate", tqq9_startdate, size - 1);//返利开始时间
 | 
						|
                model.setValue("tqq9_enddate", tqq9_enddate, size - 1);//返利结束时间
 | 
						|
                model.setValue("tqq9_status", tqq9_status, size - 1);//返利状态
 | 
						|
                model.setValue("tqq9_creatuser", creator, size - 1);//创建人
 | 
						|
                model.setValue("tqq9_creatdate", createtime, size - 1);//创建时间
 | 
						|
                model.setValue("tqq9_lastdate", tqq9_lastdate, size - 1);//最后一次执行时间
 | 
						|
                model.setValue("tqq9_pur_rebate", dynamicObject, size - 1);//返利规则
 | 
						|
            } else if ("entry_rebateSync_click".equals(actionId)) {
 | 
						|
                DynamicObjectCollection tqq9_entryentity = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entryentity");
 | 
						|
                int size = 0;
 | 
						|
                DynamicObject dynamicObject = (DynamicObject) ((HashMap) returnData).get("tqq9_pur_rebate");
 | 
						|
                String name = dynamicObject.getString("name");
 | 
						|
                String id = dynamicObject.getString("id");
 | 
						|
                for (int i = 0; i < tqq9_entryentity.size(); i++) {
 | 
						|
                    if (StringUtils.equals(tqq9_entryentity.get(i).getString("tqq9_pur_rebate.id"), id)) {
 | 
						|
                        size = i;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                DynamicObjectCollection tqq9_rebatebrand = dynamicObject.getDynamicObjectCollection("tqq9_rebatebrand");//品牌
 | 
						|
                DynamicObjectCollection tqq9_supplier = dynamicObject.getDynamicObjectCollection("tqq9_supplier");//供应商
 | 
						|
                Date tqq9_startdate = dynamicObject.getDate("tqq9_startdate");//返利开始时间
 | 
						|
                Date tqq9_enddate = dynamicObject.getDate("tqq9_enddate");//返利结束时间
 | 
						|
                String tqq9_status = dynamicObject.getString("tqq9_status");//返利状态
 | 
						|
                DynamicObject creator = dynamicObject.getDynamicObject("creator");//创建人
 | 
						|
                Date createtime = dynamicObject.getDate("createtime");//创建时间
 | 
						|
                Date tqq9_lastdate = dynamicObject.getDate("tqq9_lastdate");//最后一次执行时间
 | 
						|
                String tqq9_rebatesub = dynamicObject.getString("tqq9_rebatesub");//返利主体
 | 
						|
                StringBuilder stringBuilder = new StringBuilder();
 | 
						|
                if (StringUtils.equals("A", tqq9_rebatesub)) {
 | 
						|
                    Boolean tqq9_shanghailici = dynamicObject.getBoolean("tqq9_shanghailici");
 | 
						|
                    if (tqq9_shanghailici) {
 | 
						|
                        stringBuilder.append(",").append("上海励齿");
 | 
						|
                    }
 | 
						|
                    Boolean tqq9_beijinglichi = dynamicObject.getBoolean("tqq9_beijinglichi");
 | 
						|
                    if (tqq9_beijinglichi) {
 | 
						|
                        stringBuilder.append(",").append("北京励齿");
 | 
						|
 | 
						|
                    }
 | 
						|
                    Boolean tqq9_guangzhoulici = dynamicObject.getBoolean("tqq9_guangzhoulici");
 | 
						|
                    if (tqq9_guangzhoulici) {
 | 
						|
                        stringBuilder.append(",").append("广州励齿");
 | 
						|
                    }
 | 
						|
                } else if (StringUtils.equals("B", tqq9_rebatesub)) {
 | 
						|
                    BigDecimal tqq9_shlcbl = dynamicObject.getBigDecimal("tqq9_shlcbl");
 | 
						|
                    if (tqq9_shlcbl.compareTo(BigDecimal.ZERO) == 0) {
 | 
						|
                        stringBuilder.append(",").append("上海励齿");
 | 
						|
                    }
 | 
						|
                    BigDecimal tqq9_bjlcbl = dynamicObject.getBigDecimal("tqq9_bjlcbl");
 | 
						|
                    if (tqq9_bjlcbl.compareTo(BigDecimal.ZERO) == 0) {
 | 
						|
                        stringBuilder.append(",").append("北京励齿");
 | 
						|
                    }
 | 
						|
                    BigDecimal tqq9_gzlcbl = dynamicObject.getBigDecimal("tqq9_gzlcbl");
 | 
						|
                    if (tqq9_gzlcbl.compareTo(BigDecimal.ZERO) == 0) {
 | 
						|
                        stringBuilder.append(",").append("广州励齿");
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
 | 
						|
                model.setValue("tqq9_rulename", name, size);//规则名称
 | 
						|
                if (stringBuilder.length() > 0) {
 | 
						|
                    model.setValue("tqq9_company", stringBuilder.substring(1), size);//主体
 | 
						|
                }
 | 
						|
                model.setValue("tqq9_brand", tqq9_rebatebrand, size);//品牌
 | 
						|
                model.setValue("tqq9_supplier", tqq9_supplier, size);//供应商
 | 
						|
                model.setValue("tqq9_startdate", tqq9_startdate, size);//返利开始时间
 | 
						|
                model.setValue("tqq9_enddate", tqq9_enddate, size);//返利结束时间
 | 
						|
                model.setValue("tqq9_status", tqq9_status, size);//返利状态
 | 
						|
                model.setValue("tqq9_creatuser", creator, size);//创建人
 | 
						|
                model.setValue("tqq9_creatdate", createtime, size);//创建时间
 | 
						|
                model.setValue("tqq9_lastdate", tqq9_lastdate, size);//最后一次执行时间
 | 
						|
                model.setValue("tqq9_pur_rebate", dynamicObject, size);//返利规则
 | 
						|
            }
 | 
						|
        }
 | 
						|
        this.getView().updateView();
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 |