This commit is contained in:
parent
a4a6d43073
commit
1bd3f83051
|
|
@ -0,0 +1,285 @@
|
|||
//
|
||||
// Source code recreated from a .class file by IntelliJ IDEA
|
||||
// (powered by FernFlower decompiler)
|
||||
//
|
||||
package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.EventObject;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.resource.ResManager;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.entity.EntityMetadataCache;
|
||||
import kd.bos.entity.datamodel.events.AfterDeleteRowEventArgs;
|
||||
import kd.bos.entity.datamodel.events.ChangeData;
|
||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||
import kd.bos.entity.property.EntryProp;
|
||||
import kd.bos.form.events.ClosedCallBackEvent;
|
||||
import kd.bos.form.field.BasedataEdit;
|
||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.ec.basedata.common.enums.ProjectStatusEnum;
|
||||
import kd.ec.basedata.common.utils.EcNumberHelper;
|
||||
import kd.ec.basedata.common.utils.OpenPageUtils;
|
||||
import kd.ec.cost.formplugin.AbstractEccoBillPlugin;
|
||||
|
||||
public class EntCostSplitEditPluginExt extends AbstractEccoBillPlugin implements BeforeF7SelectListener {
|
||||
private static final String PROJECT = "project";
|
||||
private static final String EC_PROJECT = "ec_project";
|
||||
|
||||
public EntCostSplitEditPluginExt() {
|
||||
}
|
||||
|
||||
public void afterCreateNewData(EventObject e) {
|
||||
super.afterCreateNewData(e);
|
||||
Object period = this.getModel().getValue("period");
|
||||
if (period == null) {
|
||||
Calendar now = Calendar.getInstance();
|
||||
int year = now.get(1);
|
||||
int month = now.get(2) + 1;
|
||||
QFilter qFilter = new QFilter("periodyear", "=", year);
|
||||
qFilter.and(new QFilter("periodnumber", "=", month));
|
||||
DynamicObject[] periods = BusinessDataServiceHelper.load("bd_period", "periodyear,periodquarter", new QFilter[]{qFilter});
|
||||
if (periods != null && periods.length > 0) {
|
||||
this.getModel().setValue("period", periods[0].getPkValue());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void beforeF7Select(BeforeF7SelectEvent arg0) {
|
||||
String name = arg0.getProperty().getName();
|
||||
int row = arg0.getRow();
|
||||
ListShowParameter parameter = (ListShowParameter) arg0.getFormShowParameter();
|
||||
if (StringUtils.equals(name, "project")) {
|
||||
List<QFilter> qFilters = parameter.getListFilterParameter().getQFilters();
|
||||
qFilters.add(new QFilter("status", "!=", ProjectStatusEnum.CLOSED.getValue()));
|
||||
qFilters.add(new QFilter("status", "!=", ProjectStatusEnum.FINISH.getValue()));
|
||||
} else {
|
||||
QFilter qFilter;
|
||||
DynamicObject project;
|
||||
if (StringUtils.equals(name, "cbs")) {
|
||||
arg0.setCancel(true);
|
||||
project = (DynamicObject) this.getModel().getValue("project", row);
|
||||
if (project == null) {
|
||||
this.getView().showMessage(ResManager.loadKDString("请先选择工程项目。", "EntCostSplitEditPlugin_0", "ec-ecco-formplugin", new Object[0]));
|
||||
arg0.setCancel(true);
|
||||
return;
|
||||
}
|
||||
|
||||
qFilter = new QFilter("project", "=", project.getPkValue());
|
||||
qFilter = qFilter.and(new QFilter("isleaf", "=", true));
|
||||
parameter.getListFilterParameter().setFilter(qFilter);
|
||||
parameter.setFormId("bos_listf7");
|
||||
this.getView().showForm(parameter);
|
||||
} else {
|
||||
QFilter projectFilter;
|
||||
DynamicObject org;
|
||||
if (StringUtils.equals(name, "boq")) {
|
||||
project = (DynamicObject) this.getModel().getValue("project", row);
|
||||
if (project == null) {
|
||||
this.getView().showMessage(ResManager.loadKDString("请先选择工程项目。", "EntCostSplitEditPlugin_0", "ec-ecco-formplugin", new Object[0]));
|
||||
arg0.setCancel(true);
|
||||
return;
|
||||
}
|
||||
|
||||
org = (DynamicObject) this.getModel().getValue("unitproject", row);
|
||||
projectFilter = new QFilter("isleaf", "=", true);
|
||||
if (org != null) {
|
||||
projectFilter.and(new QFilter("unitproject", "=", org.getPkValue()));
|
||||
} else {
|
||||
projectFilter.and(new QFilter("project", "=", project.getPkValue()));
|
||||
}
|
||||
|
||||
parameter.getListFilterParameter().getQFilters().add(projectFilter);
|
||||
QFilter unitProLeftFilter = new QFilter("project", "=", project.getPkValue());
|
||||
List<QFilter> filterList = new ArrayList();
|
||||
filterList.add(unitProLeftFilter);
|
||||
if (org != null) {
|
||||
filterList.add(new QFilter("unitproject", "=", org.getPkValue()));
|
||||
}
|
||||
|
||||
parameter.getTreeFilterParameter().setQFilters(filterList);
|
||||
} else if (StringUtils.equals(name, "costaccount")) {
|
||||
project = (DynamicObject) this.getModel().getValue("project", row);
|
||||
if (project == null) {
|
||||
this.getView().showMessage(ResManager.loadKDString("请先选择工程项目。", "EntCostSplitEditPlugin_0", "ec-ecco-formplugin", new Object[0]));
|
||||
arg0.setCancel(true);
|
||||
return;
|
||||
}
|
||||
|
||||
qFilter = new QFilter("isleaf", "=", true);
|
||||
parameter.getListFilterParameter().getQFilters().add(qFilter);
|
||||
} else if (StringUtils.equals(name, "unitproject")) {
|
||||
project = (DynamicObject) this.getModel().getValue("project", row);
|
||||
org = this.getModel().getDataEntity().getDynamicObject("org");
|
||||
if (project != null) {
|
||||
project = BusinessDataServiceHelper.loadSingle(project.getPkValue(), "ec_project");
|
||||
projectFilter = new QFilter("parent", "=", project.getPkValue());
|
||||
DynamicObject proOrg = project.getDynamicObject("projectorg");
|
||||
if (proOrg != null && !org.getPkValue().equals(proOrg.getPkValue())) {
|
||||
projectFilter.and(new QFilter("responsibleorg", "=", org.getPkValue()));
|
||||
}
|
||||
|
||||
parameter.getListFilterParameter().getQFilters().add(projectFilter);
|
||||
} else {
|
||||
this.getView().showMessage(ResManager.loadKDString("请先选择工程项目。", "EntCostSplitEditPlugin_0", "ec-ecco-formplugin", new Object[0]));
|
||||
arg0.setCancel(true);
|
||||
}
|
||||
} else if (StringUtils.equals(name, "resource")) {
|
||||
project = (DynamicObject) this.getModel().getValue("project", row);
|
||||
if (project != null) {
|
||||
int entryEntityRowIndex = this.getModel().getEntryCurrentRowIndex("entryentity");
|
||||
DynamicObject var10000 = (DynamicObject) this.getModel().getValue("unitproject", entryEntityRowIndex);
|
||||
String editOnUnit = project.getString("boqmode");
|
||||
String costControl = project.getString("costcontrol");
|
||||
new ArrayList();
|
||||
} else {
|
||||
this.getView().showMessage(ResManager.loadKDString("请先选择工程项目。", "EntCostSplitEditPlugin_0", "ec-ecco-formplugin", new Object[0]));
|
||||
arg0.setCancel(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void registerListener(EventObject e) {
|
||||
super.registerListener(e);
|
||||
BasedataEdit project = (BasedataEdit) this.getControl("project");
|
||||
project.addBeforeF7SelectListener(this);
|
||||
BasedataEdit cbs = (BasedataEdit) this.getControl("cbs");
|
||||
cbs.addBeforeF7SelectListener(this);
|
||||
BasedataEdit boq = (BasedataEdit) this.getControl("boq");
|
||||
boq.addBeforeF7SelectListener(this);
|
||||
BasedataEdit ca = (BasedataEdit) this.getControl("costaccount");
|
||||
ca.addBeforeF7SelectListener(this);
|
||||
BasedataEdit unitPro = (BasedataEdit) this.getControl("unitproject");
|
||||
unitPro.addBeforeF7SelectListener(this);
|
||||
BasedataEdit resource = (BasedataEdit) this.getControl("resource");
|
||||
resource.addBeforeF7SelectListener(this);
|
||||
BasedataEdit proj = (BasedataEdit) this.getView().getControl("project");
|
||||
if (proj != null) {
|
||||
proj.addBeforeF7ViewDetailListener((beforeF7ViewDetailEvent) -> {
|
||||
beforeF7ViewDetailEvent.setCancel(true);
|
||||
this.getView().showForm(OpenPageUtils.buildBillShowParam(beforeF7ViewDetailEvent.getPkId(), "ec_project"));
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void propertyChanged(PropertyChangedArgs e) {
|
||||
super.propertyChanged(e);
|
||||
ChangeData changeData = e.getChangeSet()[0];
|
||||
String name = e.getProperty().getName();
|
||||
int rowIndex = changeData.getRowIndex();
|
||||
DynamicObject cbs;
|
||||
DynamicObject project;
|
||||
switch (name) {
|
||||
case "costamount":
|
||||
this.onCostAmountChange();
|
||||
break;
|
||||
case "resource":
|
||||
this.getModel().setValue("cbs", (Object) null, rowIndex);
|
||||
this.getModel().setValue("costaccount", (Object) null, rowIndex);
|
||||
DynamicObject resourceItem = (DynamicObject) changeData.getNewValue();
|
||||
if (null != resourceItem) {
|
||||
cbs = resourceItem.getDynamicObject("cbs");
|
||||
if (null != cbs) {
|
||||
Long cbsId = (Long) cbs.getPkValue();
|
||||
project = (DynamicObject) this.getModel().getValue("project", rowIndex);
|
||||
if (project != null) {
|
||||
Long projectId = (Long) project.getPkValue();
|
||||
QFilter qFilter = new QFilter("project", "=", projectId);
|
||||
qFilter.and(new QFilter("enterprisecbs", "=", cbsId));
|
||||
qFilter.and(new QFilter("isleaf", "=", "1"));
|
||||
DynamicObject proCbs = BusinessDataServiceHelper.loadSingle("ec_ecbd_pro_cbs", "id", new QFilter[]{qFilter});
|
||||
this.getModel().setValue("cbs", proCbs, rowIndex);
|
||||
}
|
||||
}
|
||||
|
||||
this.getModel().setValue("costaccount", resourceItem.getDynamicObject("ca"), rowIndex);
|
||||
}
|
||||
break;
|
||||
case "unitproject":
|
||||
this.getModel().setValue("boq", (Object) null, rowIndex);
|
||||
break;
|
||||
case "boq":
|
||||
cbs = (DynamicObject) changeData.getNewValue();
|
||||
DynamicObject unitPro = (DynamicObject) this.getModel().getValue("unitproject", rowIndex);
|
||||
if (cbs != null && unitPro == null) {
|
||||
project = cbs.getDynamicObject("unitproject");
|
||||
if (project != null) {
|
||||
this.getModel().beginInit();
|
||||
this.getModel().setValue("unitproject", project.getPkValue(), rowIndex);
|
||||
this.getModel().endInit();
|
||||
this.getView().updateView("unitproject", rowIndex);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "project":
|
||||
this.getModel().setValue("boq", (Object) null, rowIndex);
|
||||
this.getModel().setValue("cbs", (Object) null, rowIndex);
|
||||
this.getModel().setValue("unitproject", (Object) null, rowIndex);
|
||||
this.getModel().setValue("costaccount", (Object) null, rowIndex);
|
||||
this.getModel().setValue("costamount", (Object) null, rowIndex);
|
||||
this.getModel().setValue("resource", (Object) null, rowIndex);
|
||||
this.getModel().setValue("costqty", (Object) null, rowIndex);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void afterDeleteRow(AfterDeleteRowEventArgs e) {
|
||||
EntryProp entryProp = e.getEntryProp();
|
||||
if (entryProp != null && StringUtils.equals("entryentity", entryProp.getName())) {
|
||||
this.updateTotalCostAmt();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void onCostAmountChange() {
|
||||
this.updateTotalCostAmt();
|
||||
}
|
||||
|
||||
private void updateTotalCostAmt() {
|
||||
DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("entryentity");
|
||||
BigDecimal totalCostAmount = new BigDecimal(0);
|
||||
|
||||
BigDecimal costAmount;
|
||||
for (Iterator var3 = entryEntity.iterator(); var3.hasNext(); totalCostAmount = EcNumberHelper.add(totalCostAmount, costAmount)) {
|
||||
DynamicObject dynamicObject = (DynamicObject) var3.next();
|
||||
costAmount = dynamicObject.getBigDecimal("costamount");
|
||||
}
|
||||
|
||||
this.getView().getModel().setValue("totalcostamt", totalCostAmount);
|
||||
}
|
||||
|
||||
public void closedCallBack(ClosedCallBackEvent closedcallbackevent) {
|
||||
super.closedCallBack(closedcallbackevent);
|
||||
String actionID = closedcallbackevent.getActionId();
|
||||
int row = this.getModel().getEntryCurrentRowIndex("entryentity");
|
||||
if ("projectcbs".equals(actionID) && closedcallbackevent.getReturnData() != null) {
|
||||
List<Long> selectList = (ArrayList) closedcallbackevent.getReturnData();
|
||||
if (selectList == null || selectList.size() < 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < selectList.size(); ++i) {
|
||||
DynamicObject cbsInfo = BusinessDataServiceHelper.loadSingle(selectList.get(i), EntityMetadataCache.getDataEntityType("ec_ecbd_pro_cbs"));
|
||||
if (null != cbsInfo) {
|
||||
this.getModel().setValue("cbs", cbsInfo.getPkValue(), row);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue