设备成本核算优化表单和审核逻辑
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.BeforeF7SelectListener;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.EventObject;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
/*
|
||||
* 设备成本核算表单插件
|
||||
|
|
@ -32,9 +31,11 @@ public class EcEqCostSplitBillPlugin extends AbstractBillPlugIn implements Befor
|
|||
@Override
|
||||
public void registerListener(EventObject e) {
|
||||
super.registerListener(e);
|
||||
BasedataEdit procbs = (BasedataEdit) this.getControl("procbs");
|
||||
BasedataEdit procbs = (BasedataEdit) this.getControl("procbs");//成本分解结构
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
@ -72,10 +73,10 @@ public class EcEqCostSplitBillPlugin extends AbstractBillPlugIn implements Befor
|
|||
}
|
||||
|
||||
public void beforeF7Select(BeforeF7SelectEvent arg0) {
|
||||
ListShowParameter parameter = (ListShowParameter) arg0.getFormShowParameter();
|
||||
String name = arg0.getProperty().getName();
|
||||
if (StringUtils.equals(name, "procbs")) {
|
||||
//成本分解结构
|
||||
ListShowParameter parameter = (ListShowParameter) arg0.getFormShowParameter();
|
||||
arg0.setCancel(true);
|
||||
DynamicObject project = (DynamicObject) this.getModel().getValue("project");//工程项目
|
||||
if (project == null) {
|
||||
|
|
@ -89,6 +90,24 @@ public class EcEqCostSplitBillPlugin extends AbstractBillPlugIn implements Befor
|
|||
parameter.getListFilterParameter().setFilter(qFilter);
|
||||
parameter.setFormId("bos_listf7");
|
||||
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.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
|
||||
/**
|
||||
|
|
@ -22,6 +23,7 @@ public class EcEqCostSplitAuditOp extends AbstractOperationServicePlugIn {
|
|||
long id = model.getLong("id");
|
||||
QFilter f1 = new QFilter("id", "=", id);
|
||||
DynamicObject eceq_costsplit = BusinessDataServiceHelper.loadSingle("eceq_costsplit", new QFilter[]{f1});//设备成本核算
|
||||
DynamicObject org = eceq_costsplit.getDynamicObject("org");//所属组织
|
||||
DynamicObjectCollection settleSplitEntityCollection = eceq_costsplit.getDynamicObjectCollection("settlesplitentity");//结算明细
|
||||
for (DynamicObject settleSplitEntity : settleSplitEntityCollection) {
|
||||
DynamicObjectCollection costSplitEntityCollection = settleSplitEntity.getDynamicObjectCollection("costsplitentity");//成本分摊明细
|
||||
|
|
@ -30,8 +32,21 @@ public class EcEqCostSplitAuditOp extends AbstractOperationServicePlugIn {
|
|||
if (equipment != null) {
|
||||
String equipmentNumber = equipment.getString("number");//设备编号
|
||||
QFilter[] qFilters = new QFilter[]{new QFilter("number", QCP.equals, equipmentNumber)};
|
||||
DynamicObject eceq_equipinfo = BusinessDataServiceHelper.loadSingle("eceq_equipinfo", "id,zcgj_cbs", qFilters);//设备台账
|
||||
eceq_equipinfo.set("zcgj_cbs", costSplitEntity.get("procbs"));//设备台账-工序
|
||||
DynamicObject eceq_equipinfo = BusinessDataServiceHelper.loadSingle("eceq_equipinfo",
|
||||
"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});//保存
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue