139 lines
6.7 KiB
Java
139 lines
6.7 KiB
Java
package tqq9.lc123.cloud.app.plugin.form.conm;
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import kd.bos.bill.AbstractBillPlugIn;
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
import kd.bos.dataentity.utils.ObjectUtils;
|
|
import kd.bos.dataentity.utils.StringUtils;
|
|
import kd.bos.entity.datamodel.IDataModel;
|
|
import kd.bos.entity.param.CustomParam;
|
|
import kd.bos.form.CloseCallBack;
|
|
import kd.bos.form.FormShowParameter;
|
|
import kd.bos.form.IFormView;
|
|
import kd.bos.form.ShowFormHelper;
|
|
import kd.bos.form.control.Control;
|
|
import kd.bos.form.control.events.ItemClickEvent;
|
|
import kd.bos.form.events.AfterDoOperationEventArgs;
|
|
import kd.bos.form.field.BasedataEdit;
|
|
import kd.bos.form.field.MulBasedataEdit;
|
|
import kd.bos.form.field.RefBillEdit;
|
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
|
import kd.bos.list.ListFilterParameter;
|
|
import kd.bos.list.ListShowParameter;
|
|
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.sdk.plugin.Plugin;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.util.*;
|
|
|
|
/**
|
|
* 返利规则表单插件
|
|
* 同步采购合同信息
|
|
*/
|
|
public class RebateRulesBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
|
|
private final static Log logger = LogFactory.getLog(RebateRulesBillPlugin.class);
|
|
|
|
@Override
|
|
public void registerListener(EventObject e) {
|
|
super.registerListener(e);
|
|
this.addItemClickListeners("tbmain");
|
|
MulBasedataEdit control = this.getControl("tqq9_exclunopur");
|
|
control.addBeforeF7SelectListener(this);
|
|
}
|
|
|
|
@Override
|
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
IDataModel model = this.getModel();
|
|
String tqq9_excludnum = model.getDataEntity().getString("tqq9_excludnum");
|
|
Date tqq9_startexcludate = model.getDataEntity().getDate("tqq9_startexcludate");
|
|
Date tqq9_endexcludate = model.getDataEntity().getDate("tqq9_endexcludate");
|
|
if (tqq9_startexcludate == null || tqq9_endexcludate == null) {
|
|
beforeF7SelectEvent.setCancel(true);
|
|
this.getView().showMessage("请先填写排除时间段");
|
|
}
|
|
if (StringUtils.equals("1", tqq9_excludnum)) {
|
|
ListShowParameter param = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
|
QFilter qF1 = new QFilter("biztime", QCP.large_equals, tqq9_startexcludate);
|
|
QFilter qF2 = new QFilter("biztime", QCP.less_equals, tqq9_endexcludate);
|
|
param.getListFilterParameter().getQFilters().add(qF1.and(qF2));
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
|
|
super.afterDoOperation(afterDoOperationEventArgs);
|
|
String itemKey = afterDoOperationEventArgs.getOperateKey();
|
|
if (StringUtils.equals("donothing", itemKey)) {
|
|
Object name = this.getModel().getValue("name");
|
|
Object tqq9_supplier = this.getModel().getValue("tqq9_supplier");
|
|
Object tqq9_startdate = this.getModel().getValue("tqq9_startdate");
|
|
Object tqq9_enddate = this.getModel().getValue("tqq9_enddate");
|
|
Object tqq9_estimatepro = this.getModel().getValue("tqq9_estimatepro");
|
|
Object tqq9_rebatebrand = this.getModel().getValue("tqq9_rebatebrand");
|
|
Object tqq9_rebategoods = this.getModel().getValue("tqq9_rebategoods");
|
|
if (name == null || tqq9_supplier == null || tqq9_startdate == null || tqq9_enddate == null || tqq9_estimatepro == null || tqq9_rebatebrand == null || tqq9_rebategoods == null) {
|
|
this.getView().showErrorNotification("请确认必录项是否为空");
|
|
} else {
|
|
DynamicObject dataEntity = this.getModel().getDataEntity(true);
|
|
HashMap<String, DynamicObject> map = new HashMap<>();
|
|
map.put("tqq9_pur_rebate", dataEntity);
|
|
this.getView().returnDataToParent(map);
|
|
this.getView().close();
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void afterCreateNewData(EventObject e) {
|
|
// 获取当前页面的FormShowParameter对象
|
|
FormShowParameter formShowParameter = this.getView().getFormShowParameter();
|
|
// 获取自定义参数
|
|
String billno = formShowParameter.getCustomParam("purcontract_billno");
|
|
JSONObject purcontract_supplier = formShowParameter.getCustomParam("purcontract_supplier");
|
|
JSONArray purcontract_tqq9_dxpp = formShowParameter.getCustomParam("purcontract_tqq9_dxpp");
|
|
DynamicObject supplier = null;
|
|
// DynamicObject tqq9_dxpp = null;
|
|
DynamicObject purcontract = BusinessDataServiceHelper.loadSingle("conm_purcontract", new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
|
DynamicObjectCollection tqq9_supplier = this.getModel().getDataEntity().getDynamicObjectCollection("tqq9_supplier");
|
|
DynamicObjectCollection tqq9_rebatebrand = this.getModel().getDataEntity().getDynamicObjectCollection("tqq9_rebatebrand");
|
|
DynamicObject newsupplier = new DynamicObject(tqq9_supplier.getDynamicObjectType());
|
|
if (purcontract_supplier != null) {
|
|
String number = purcontract_supplier.get("number").toString();
|
|
supplier = BusinessDataServiceHelper.loadSingle("bd_supplier", new QFilter[]{new QFilter("number", QCP.equals, number)});
|
|
}
|
|
if (purcontract_tqq9_dxpp != null) {
|
|
for (int i = 0; i < purcontract_tqq9_dxpp.size(); i++) {
|
|
JSONObject jsonObject = (JSONObject) purcontract_tqq9_dxpp.get(i);
|
|
JSONObject fbasedataid = jsonObject.getJSONObject("fbasedataid");
|
|
String number = fbasedataid.getString("number");
|
|
DynamicObject tqq9_dxpp = BusinessDataServiceHelper.loadSingle("tqq9_brand", new QFilter[]{new QFilter("number", QCP.equals, number)});
|
|
if (tqq9_dxpp != null) {
|
|
DynamicObject newbrand = new DynamicObject(tqq9_rebatebrand.getDynamicObjectType());
|
|
newbrand.set("fbasedataId", tqq9_dxpp);
|
|
tqq9_rebatebrand.add(newbrand);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 把参数值赋值到页面文本字段上
|
|
if (supplier != null) {
|
|
newsupplier.set("fbasedataId", supplier);
|
|
tqq9_supplier.add(newsupplier);
|
|
this.getModel().setValue("tqq9_supplier", tqq9_supplier);
|
|
}
|
|
this.getModel().setValue("tqq9_conm_purcontract", purcontract);
|
|
this.getModel().setValue("tqq9_rebatebrand", tqq9_rebatebrand);
|
|
|
|
}
|
|
|
|
|
|
} |