设备成本核算优化表单和审核逻辑
This commit is contained in:
parent
fde481979b
commit
624f60211a
|
|
@ -14,13 +14,12 @@ import kd.bos.form.field.BasedataEdit;
|
||||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||||
import kd.bos.list.ListShowParameter;
|
import kd.bos.list.ListShowParameter;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.*;
|
||||||
import java.util.EventObject;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 设备成本核算表单插件
|
* 设备成本核算表单插件
|
||||||
|
|
@ -32,9 +31,11 @@ public class EcEqCostSplitBillPlugin extends AbstractBillPlugIn implements Befor
|
||||||
@Override
|
@Override
|
||||||
public void registerListener(EventObject e) {
|
public void registerListener(EventObject e) {
|
||||||
super.registerListener(e);
|
super.registerListener(e);
|
||||||
BasedataEdit procbs = (BasedataEdit) this.getControl("procbs");
|
BasedataEdit procbs = (BasedataEdit) this.getControl("procbs");//成本分解结构
|
||||||
procbs.addBeforeF7SelectListener(this);
|
procbs.addBeforeF7SelectListener(this);
|
||||||
EntryGrid control = this.getControl("settlesplitentity");
|
BasedataEdit equipment = (BasedataEdit) this.getControl("equipment");//设备名称
|
||||||
|
equipment.addBeforeF7SelectListener(this);
|
||||||
|
EntryGrid control = this.getControl("settlesplitentity");//结算明细
|
||||||
control.addHyperClickListener(this);
|
control.addHyperClickListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -72,10 +73,10 @@ public class EcEqCostSplitBillPlugin extends AbstractBillPlugIn implements Befor
|
||||||
}
|
}
|
||||||
|
|
||||||
public void beforeF7Select(BeforeF7SelectEvent arg0) {
|
public void beforeF7Select(BeforeF7SelectEvent arg0) {
|
||||||
|
ListShowParameter parameter = (ListShowParameter) arg0.getFormShowParameter();
|
||||||
String name = arg0.getProperty().getName();
|
String name = arg0.getProperty().getName();
|
||||||
if (StringUtils.equals(name, "procbs")) {
|
if (StringUtils.equals(name, "procbs")) {
|
||||||
//成本分解结构
|
//成本分解结构
|
||||||
ListShowParameter parameter = (ListShowParameter) arg0.getFormShowParameter();
|
|
||||||
arg0.setCancel(true);
|
arg0.setCancel(true);
|
||||||
DynamicObject project = (DynamicObject) this.getModel().getValue("project");//工程项目
|
DynamicObject project = (DynamicObject) this.getModel().getValue("project");//工程项目
|
||||||
if (project == null) {
|
if (project == null) {
|
||||||
|
|
@ -89,6 +90,24 @@ public class EcEqCostSplitBillPlugin extends AbstractBillPlugIn implements Befor
|
||||||
parameter.getListFilterParameter().setFilter(qFilter);
|
parameter.getListFilterParameter().setFilter(qFilter);
|
||||||
parameter.setFormId("bos_listf7");
|
parameter.setFormId("bos_listf7");
|
||||||
this.getView().showForm(parameter);
|
this.getView().showForm(parameter);
|
||||||
|
} else if (StringUtils.equals(name, "equipment")) {
|
||||||
|
//设备名称
|
||||||
|
List<QFilter> qFilter = new ArrayList<>();
|
||||||
|
DynamicObject org = (DynamicObject) this.getModel().getValue("org");//所属组织
|
||||||
|
|
||||||
|
QFilter filter = new QFilter("zcgj_companyblentry.zcgj_org.id", QCP.equals, org.getPkValue());
|
||||||
|
DynamicObject companyBelong = BusinessDataServiceHelper.loadSingle("zcgj_companybelong",
|
||||||
|
"zcgj_headquarters", new QFilter[]{filter});//公司归属区域
|
||||||
|
if (companyBelong != null) {
|
||||||
|
DynamicObject zcgj_headquarters = companyBelong.getDynamicObject("zcgj_headquarters");//本部
|
||||||
|
if (zcgj_headquarters != null) {
|
||||||
|
qFilter.add(new QFilter("org", QCP.equals, zcgj_headquarters.getPkValue()));
|
||||||
|
qFilter.add(new QFilter("useorg", QCP.equals, zcgj_headquarters.getPkValue()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
qFilter.add(new QFilter("useorg", QCP.equals, org.getPkValue()));
|
||||||
|
parameter.getListFilterParameter().setQFilters(qFilter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||||
import kd.bos.orm.query.QCP;
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -22,6 +23,7 @@ public class EcEqCostSplitAuditOp extends AbstractOperationServicePlugIn {
|
||||||
long id = model.getLong("id");
|
long id = model.getLong("id");
|
||||||
QFilter f1 = new QFilter("id", "=", id);
|
QFilter f1 = new QFilter("id", "=", id);
|
||||||
DynamicObject eceq_costsplit = BusinessDataServiceHelper.loadSingle("eceq_costsplit", new QFilter[]{f1});//设备成本核算
|
DynamicObject eceq_costsplit = BusinessDataServiceHelper.loadSingle("eceq_costsplit", new QFilter[]{f1});//设备成本核算
|
||||||
|
DynamicObject org = eceq_costsplit.getDynamicObject("org");//所属组织
|
||||||
DynamicObjectCollection settleSplitEntityCollection = eceq_costsplit.getDynamicObjectCollection("settlesplitentity");//结算明细
|
DynamicObjectCollection settleSplitEntityCollection = eceq_costsplit.getDynamicObjectCollection("settlesplitentity");//结算明细
|
||||||
for (DynamicObject settleSplitEntity : settleSplitEntityCollection) {
|
for (DynamicObject settleSplitEntity : settleSplitEntityCollection) {
|
||||||
DynamicObjectCollection costSplitEntityCollection = settleSplitEntity.getDynamicObjectCollection("costsplitentity");//成本分摊明细
|
DynamicObjectCollection costSplitEntityCollection = settleSplitEntity.getDynamicObjectCollection("costsplitentity");//成本分摊明细
|
||||||
|
|
@ -30,8 +32,21 @@ public class EcEqCostSplitAuditOp extends AbstractOperationServicePlugIn {
|
||||||
if (equipment != null) {
|
if (equipment != null) {
|
||||||
String equipmentNumber = equipment.getString("number");//设备编号
|
String equipmentNumber = equipment.getString("number");//设备编号
|
||||||
QFilter[] qFilters = new QFilter[]{new QFilter("number", QCP.equals, equipmentNumber)};
|
QFilter[] qFilters = new QFilter[]{new QFilter("number", QCP.equals, equipmentNumber)};
|
||||||
DynamicObject eceq_equipinfo = BusinessDataServiceHelper.loadSingle("eceq_equipinfo", "id,zcgj_cbs", qFilters);//设备台账
|
DynamicObject eceq_equipinfo = BusinessDataServiceHelper.loadSingle("eceq_equipinfo",
|
||||||
eceq_equipinfo.set("zcgj_cbs", costSplitEntity.get("procbs"));//设备台账-工序
|
"id,zcgj_cbs,org,useorg", qFilters);//设备详情
|
||||||
|
if (eceq_equipinfo == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
QFilter filter = new QFilter("zcgj_companyblentry.zcgj_org.id", QCP.equals, org.getPkValue());
|
||||||
|
filter.and(new QFilter("zcgj_headquarters", QCP.equals, eceq_equipinfo.getDynamicObject("org").getPkValue()));
|
||||||
|
filter.and(new QFilter("zcgj_headquarters", QCP.equals, eceq_equipinfo.getDynamicObject("useorg").getPkValue()));
|
||||||
|
DynamicObject companyBelong = QueryServiceHelper.queryOne("zcgj_companybelong",
|
||||||
|
"id", new QFilter[]{filter});//公司归属区域
|
||||||
|
if (companyBelong != null) {
|
||||||
|
eceq_equipinfo.set("useorg", org);//设备详情-使用组织
|
||||||
|
}
|
||||||
|
eceq_equipinfo.set("zcgj_cbs", costSplitEntity.get("procbs"));//设备详情-工序
|
||||||
|
|
||||||
SaveServiceHelper.save(new DynamicObject[]{eceq_equipinfo});//保存
|
SaveServiceHelper.save(new DynamicObject[]{eceq_equipinfo});//保存
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue