Compare commits

...

3 Commits

Author SHA1 Message Date
xuhaihui dd5477333e * 仓库单据系统代码二开
* 说明:去除被引用的仓库单据锁定项目逻辑
2025-09-16 11:17:52 +08:00
xuhaihui d1a7de5f5c 标识 2025-09-16 11:16:24 +08:00
xuhaihui f52b7ad44a 新增设备单据列表插件优化按钮点击提示时机 2025-09-16 11:16:14 +08:00
2 changed files with 137 additions and 6 deletions

View File

@ -0,0 +1,127 @@
//
// 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]);
}
}

View File

@ -67,9 +67,11 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
}
Object[] save = SaveServiceHelper.save(equipments);
System.out.println();
if (equipments.length > 0) {
this.getView().showMessage("闲置成功!");
IFormView view = this.getView();
view.invokeOperation("refresh");
}
}else if (itemKey.equals("zcgj_used")){//在用
Set<Long> setIds = getSelectOrderIds(this.getSelectedRows());
DynamicObject[] equipments = BusinessDataServiceHelper.load("eceq_equipment_card",
@ -78,9 +80,11 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
equipment.set("equipstatus","USED");
}
SaveServiceHelper.save(equipments);
if (equipments.length > 0) {
this.getView().showMessage("成功转为在用!");
IFormView view = this.getView();
view.invokeOperation("refresh");
}
}else if(itemKey.equals("zcgj_assetorg")){//同步使用组织
Set<Long> setIds = getSelectOrderIds(this.getSelectedRows());
DynamicObject[] equipments = BusinessDataServiceHelper.load("eceq_equipment_card", "billno,billname,equipstatus,org,zcgj_headusedepts,useorg", new QFilter[]{new QFilter("id", "in", setIds)});