This commit is contained in:
xuhaihui 2025-09-16 11:16:24 +08:00
parent f52b7ad44a
commit d1a7de5f5c
1 changed files with 123 additions and 0 deletions

View File

@ -0,0 +1,123 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package zcgj.zcdev.zcdev.pr.plugin.form;
import java.util.EventObject;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.BasedataEntityType;
import kd.bos.entity.EntityMetadataCache;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.FieldEdit;
import kd.bos.form.field.events.AfterF7SelectEvent;
import kd.bos.form.field.events.AfterF7SelectListener;
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.basedata.BaseDataRefrenceHelper;
import kd.ec.basedata.common.utils.OpenPageUtils;
public class DepotEditPluginExt extends AbstractBillPlugIn implements BeforeF7SelectListener, AfterF7SelectListener {
private static final String PROJECT = "project";
private static final String EC_PROJECT = "ec_project";
public DepotEditPluginExt() {
}
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
}
public void registerListener(EventObject e) {
super.registerListener(e);
BasedataEdit projectEdit = (BasedataEdit)this.getView().getControl("project");
projectEdit.addBeforeF7SelectListener(this);
projectEdit.addAfterF7SelectListener(this);
BasedataEdit unitProjectEdit = (BasedataEdit)this.getView().getControl("unitProject");
unitProjectEdit.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 beforeF7Select(BeforeF7SelectEvent paramBeforeF7SelectEvent) {
String propName = paramBeforeF7SelectEvent.getProperty().getName();
if (!StringUtils.equals(propName, "project") && StringUtils.equals("unitproject", propName)) {
ListShowParameter parameter = (ListShowParameter)paramBeforeF7SelectEvent.getFormShowParameter();
DynamicObject org = (DynamicObject)this.getModel().getValue("org");
Long orgId = (Long)org.getPkValue();
DynamicObject project = (DynamicObject)this.getModel().getValue("project");
if (project == null) {
return;
}
QFilter projectFilter = new QFilter("parent", "=", project.getPkValue());
parameter.getListFilterParameter().getQFilters().add(projectFilter);
Long projectOrgId = (Long)project.getDynamicObject("projectorg").getPkValue();
if (projectOrgId.equals(orgId)) {
return;
}
QFilter orgFilter = new QFilter("responsibleorg", "=", org.getPkValue());
parameter.getListFilterParameter().getQFilters().add(orgFilter);
}
}
public void afterF7Select(AfterF7SelectEvent afterF7SelectEvent) {
FieldEdit fieldEdit = (FieldEdit)afterF7SelectEvent.getSource();
if (StringUtils.equals("project", fieldEdit.getKey())) {
this.getModel().setValue("unitproject", (Object)null);
this.setUnitProject();
this.getView().updateView("unitproject");
}
}
public void afterBindData(EventObject e) {
super.afterBindData(e);
Object pkValue = this.getModel().getDataEntity().getPkValue();
if (pkValue != null) {
boolean isRefrenced = BaseDataRefrenceHelper.isRefrenced((BasedataEntityType)EntityMetadataCache.getDataEntityType("ecma_depot"), pkValue);
if (isRefrenced) {
this.getView().setEnable(false, new String[]{"project"});
}
}
this.getModel().setValue("instruction", this.getInstruction());
this.setUnitProject();
}
protected void setUnitProject() {
DynamicObject project = (DynamicObject)this.getModel().getValue("project");
FieldEdit unitProjectEdit = (FieldEdit)this.getView().getControl("unitproject");
if (project == null) {
this.getView().setEnable(false, new String[]{"unitproject"});
unitProjectEdit.setMustInput(false);
} else {
boolean editOnUnit = project.getBoolean("editonunit");
if (editOnUnit) {
this.getView().setEnable(true, new String[]{"unitproject"});
} else {
unitProjectEdit.setMustInput(false);
this.getView().setEnable(false, new String[]{"unitproject"});
}
}
}
protected String getInstruction() {
return ResManager.loadKDString("本软件按加权平均计算各种材料的当前库存和出库单价(材料需规格型号、单位、批次相同);如不需使用加权平均计算,请结合使用入库、出库单的批次功能。 加权平均的计算范围首先按工程项目,再按仓库,即:属于同一个工程项目的仓库(可能多个仓库),在本工程项目内一并计算;仓库没有设置工程项目时,每种材料在本仓库范围内均独立加权平均计算。 为保证单价计算的准确性,请初始设置仓库时就明确相关范围,中途修改会导致因为计算范围的调整,单价出错。", "DepotEditPlugin_0", "ec-ecma-formplugin", new Object[0]);
}
}