This commit is contained in:
xuhaihui 2025-11-28 10:27:08 +08:00
parent a4a6d43073
commit 1bd3f83051
1 changed files with 285 additions and 0 deletions

View File

@ -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);
}
}
}
}
}