Compare commits

..

No commits in common. "cb1c6602f344d7f4a7c2f487b640c5f243223718" and "41030db6be08eefbcebe89739e071495895bad1d" have entirely different histories.

1 changed files with 0 additions and 127 deletions

View File

@ -1,127 +0,0 @@
package zcgj.zcdev.zcdev.pr.plugin.form;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.bill.BillShowParameter;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.form.control.EntryGrid;
import kd.bos.form.events.BeforeDoOperationEventArgs;
import kd.bos.form.events.HyperLinkClickEvent;
import kd.bos.form.events.HyperLinkClickListener;
import kd.bos.form.operate.FormOperate;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.ec.basedata.common.utils.OpenPageUtils;
import java.util.Date;
import java.util.EventObject;
/**
* 项目综合成本核算表单插件
*/
public class ProCostSplitBillPlugin extends AbstractBillPlugIn implements HyperLinkClickListener {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
EntryGrid entryGrid = this.getView().getControl("zcgj_entryentity");
if (entryGrid != null) {
entryGrid.addHyperClickListener(this);
}
}
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
super.beforeDoOperation(args);
FormOperate formOperate = (FormOperate) args.getSource();
if ("autogetdata".equals(formOperate.getOperateKey())) {
//自动取数分摊
Object org = this.getModel().getValue("org");//所属组织
if (org != null) {
DynamicObject org1 = (DynamicObject) org;
Object billno = this.getModel().getValue("billno");//单据编码
DynamicObject period = (DynamicObject) this.getModel().getValue("period");//期间
Date endDate;
if (period != null) {
endDate = period.getDate("enddate");//期间-结束日期
} else {
this.getView().showTipNotification("请先填写期间");
return;
}
DynamicObjectCollection entryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_entryentity");//费用明细分录
DynamicObjectType entryType = entryCollection.getDynamicObjectType();
if (entryCollection.size() > 0) {
entryCollection.clear();
}
QFilter filter = new QFilter("costcompany", QCP.equals, org1.getPkValue());//费用承担公司
filter.and(new QFilter("billstatus", QCP.in, new String[]{"G"}));//单据状态
filter.and(new QFilter("bizdate", QCP.less_equals, endDate));//申请日期
DynamicObjectCollection er_dailyReimburseBillCollection = QueryServiceHelper.query("er_dailyreimbursebill",
"id,billno,applier,bizdate,costdept,costcompany,expenseentryentity.std_entrycostcenter,expenseentryentity.expenseitem," +
"expenseentryentity.zcgj_accounttype,expenseentryentity.expenseamount,expenseentryentity.taxrate,expenseentryentity.taxamount," +
"expenseentryentity.orientryamount,expenseentryentity.remark,expenseentryentity.id",
new QFilter[]{filter});//费用报销单
for (DynamicObject er_dailyReimburseBill : er_dailyReimburseBillCollection) {
Object expenseentryentityId = er_dailyReimburseBill.get("expenseentryentity.id");//报销单分录id
DynamicObjectCollection ecco_procostsplit = QueryServiceHelper.query("ecco_procostsplit", "zcgj_entryentity.zcgj_materialentryid",
new QFilter[]{new QFilter("zcgj_entryentity.zcgj_materialentryid", QCP.equals, expenseentryentityId)
.and("billno", QCP.not_in, billno)});//项目综合成本核算
if (ecco_procostsplit != null && ecco_procostsplit.size() > 0) {
continue;
}
DynamicObject newEntry = new DynamicObject(entryType);
newEntry.set("zcgj_materialentryid", expenseentryentityId);
newEntry.set("zcgj_dailyld", er_dailyReimburseBill.get("id"));//单据ID
newEntry.set("zcgj_entrybillno", er_dailyReimburseBill.get("billno"));//单据编码
newEntry.set("zcgj_bizdate", er_dailyReimburseBill.get("bizdate"));// 业务日期
Object applier = er_dailyReimburseBill.get("applier");// 申请人
newEntry.set("zcgj_applier", loadSingleData("bos_user", applier));
Object costdept = er_dailyReimburseBill.get("costdept");// 费用承担部门
newEntry.set("zcgj_costdept", loadSingleData("bos_org", costdept));
Object costcompany = er_dailyReimburseBill.get("costcompany");// 费用承担公司
newEntry.set("zcgj_costcompany", loadSingleData("bos_org", costcompany));
Object std_entrycostcenter = er_dailyReimburseBill.get("expenseentryentity.std_entrycostcenter");// 成本中心
newEntry.set("zcgj_entrycostcenter", loadSingleData("bos_costcenter", std_entrycostcenter));
Object expenseitem = er_dailyReimburseBill.get("expenseentryentity.expenseitem");// 费用项目
newEntry.set("zcgj_expenseitem", loadSingleData("er_expenseitemedit", expenseitem));
Object zcgj_accounttype = er_dailyReimburseBill.get("expenseentryentity.zcgj_accounttype");// 科目属性
newEntry.set("zcgj_accounttype", loadSingleData("zcgj_accounttype", zcgj_accounttype));
newEntry.set("zcgj_expenseamount", er_dailyReimburseBill.get("expenseentryentity.expenseamount"));
newEntry.set("zcgj_taxrate", er_dailyReimburseBill.get("expenseentryentity.taxrate"));
newEntry.set("zcgj_taxamount", er_dailyReimburseBill.get("expenseentryentity.taxamount"));
newEntry.set("zcgj_orientryamount", er_dailyReimburseBill.get("expenseentryentity.orientryamount"));
newEntry.set("zcgj_remark", er_dailyReimburseBill.get("expenseentryentity.remark"));
entryCollection.add(newEntry);
}
this.getView().updateView("zcgj_entryentity");//刷新分录
} else {
this.getView().showTipNotification("请先填写所属组织");
}
}
}
public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) {
String fieldName = hyperLinkClickEvent.getFieldName();
if (StringUtils.equals(fieldName, "zcgj_entrybillno")) {
//费用明细分录-单据编码
int rowIndex = hyperLinkClickEvent.getRowIndex();
DynamicObjectCollection entryEntityCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_entryentity");//费用明细分录
DynamicObject entryEntity = entryEntityCollection.get(rowIndex);
BillShowParameter billShowParameter = OpenPageUtils.buildBillShowParam(entryEntity.get("zcgj_dailyld"), "er_dailyreimbursebill");//费用报销单
this.getView().showForm(billShowParameter);//打开费用报销单
}
}
private DynamicObject loadSingleData(String entityName, Object id) {
if (id == null) {
return null;
}
QFilter[] qFilters = new QFilter[]{new QFilter("id", QCP.equals, id)};
return BusinessDataServiceHelper.loadSingle(entityName, "id", qFilters);
}
}