费用登记二开合计行

成本测算新增功能:手工生成目标成本
This commit is contained in:
ptt 2025-03-07 17:56:19 +08:00
parent 4abc29ee11
commit acc73a5e07
3 changed files with 207 additions and 0 deletions

View File

@ -0,0 +1,46 @@
package shkd.repc.recon.formplugin;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.sdk.plugin.Plugin;
import java.math.BigDecimal;
import java.util.EventObject;
/**
* 单据界面插件
*/
public class SumInvoiceEntryPlugin extends AbstractBillPlugIn implements Plugin {
@Override
public void afterBindData(EventObject e) {
super.afterBindData(e);
updateAmt();
}
private void updateAmt(){
DynamicObject dataEntity = this.getModel().getDataEntity();
DynamicObjectCollection invoiceentry = dataEntity.getDynamicObjectCollection("invoiceentry");
if (invoiceentry!=null) {
for (int i = 0; i < invoiceentry.size(); i++) {
DynamicObject dynamicObject = invoiceentry.get(i);
DynamicObject inventry_invoicebill = dynamicObject.getDynamicObject("inventry_invoicebill");
BigDecimal notaxamt = inventry_invoicebill.getBigDecimal("notaxamt");
BigDecimal tax = inventry_invoicebill.getBigDecimal("tax");
BigDecimal amount = inventry_invoicebill.getBigDecimal("amount");
dynamicObject.set("qeug_notaxamt",notaxamt);
dynamicObject.set("qeug_tax",tax);
dynamicObject.set("qeug_amount",amount);
}
this.getView().updateView("invoiceentry");
}
}
@Override
public void afterDoOperation(AfterDoOperationEventArgs args) {
super.afterDoOperation(args);
updateAmt();
}
}

View File

@ -0,0 +1,77 @@
package shkd.repc.recos.formplugin;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.operate.result.IOperateInfo;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.form.control.events.ItemClickEvent;
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;
import kd.repc.rebas.common.enums.ReBillStatusEnum;
import kd.repc.recos.business.aimcost.AimCostGenByMeasureHelper;
import kd.repc.recos.business.conplan.ReConPlanHelper;
import kd.sdk.plugin.Plugin;
import java.util.EventObject;
/**
* 单据界面插件
*/
public class CreatTargetCostFormPlugin extends AbstractBillPlugIn implements Plugin {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
this.addItemClickListeners("qeug_creat");
this.addItemClickListeners("qeug_revoked");
}
@Override
public void itemClick(ItemClickEvent evt) {
DynamicObject dynamicObject = this.getModel().getDataEntity();
Object primaryKeyValue = dynamicObject.getPkValue();
if ("qeug_creat".equals(evt.getItemKey())) {
QFilter measurecostid = new QFilter("measurecostid", QCP.equals, primaryKeyValue);
DynamicObject dynamicObject2 = BusinessDataServiceHelper.loadSingle("recos_aimcost", measurecostid.toArray());
if (dynamicObject2!=null) {
this.getView().showMessage("存在对应目标成本,无法生成");
return;
}
dynamicObject.set("aimversionflag",true);
SaveServiceHelper.update(dynamicObject);
AimCostGenByMeasureHelper.generateAimCost((Long)dynamicObject.getPkValue());
this.getView().updateView("aimversionflag");
this.getView().showSuccessNotification("生成成功");
}else if("qeug_revoked".equals(evt.getItemKey())){
boolean aimversionflag = dynamicObject.getBoolean("aimversionflag");
DynamicObject project = dynamicObject.getDynamicObject("project");
if (aimversionflag) {
boolean projectConPlan = QueryServiceHelper.exists("recos_conplan", new QFilter[]{new QFilter("billstatus", "in", new String[]{ReBillStatusEnum.SUBMITTED.getValue(), ReBillStatusEnum.AUDITTED.getValue()}), new QFilter("project", "=", project.getPkValue())});
if (projectConPlan) {
this.getView().showMessage("对应项目分期合约规划为已审核状态或已提交, 无法撤销目标成本。");
return;
}
}
if (dynamicObject.getBoolean("aimversionflag")) {
Boolean hasSaveConPlan = ReConPlanHelper.checkConPlanStatus(project.getLong("id"));
if (hasSaveConPlan) {
OperationResult unAuditOpResult = AimCostGenByMeasureHelper.unAuditAimCost(dynamicObject.getPkValue());
if (null != unAuditOpResult && !unAuditOpResult.isSuccess()) {
this.getView().showMessage(((IOperateInfo)unAuditOpResult.getAllErrorOrValidateInfo().get(0)).getMessage());
}
}
}
if (dynamicObject.getBoolean("aimversionflag")) {
Boolean hasSaveConPlan = ReConPlanHelper.checkConPlanStatus(project.getLong("id"));
if (hasSaveConPlan) {
AimCostGenByMeasureHelper.deleteAimCost(dynamicObject.getPkValue());
}
}
dynamicObject.set("aimversionflag",false);
SaveServiceHelper.update(dynamicObject);
}
}
}

View File

@ -0,0 +1,84 @@
package shkd.repc.recos.listplugin;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.entity.operate.result.IOperateInfo;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.mvc.list.ListView;
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;
import kd.repc.rebas.common.enums.ReBillStatusEnum;
import kd.repc.recos.business.aimcost.AimCostGenByMeasureHelper;
import kd.repc.recos.business.conplan.ReConPlanHelper;
import kd.sdk.plugin.Plugin;
import java.util.EventObject;
/**
* 标准单据列表插件
*/
public class CreatTargetCostListPlugin extends AbstractListPlugin implements Plugin {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
this.addItemClickListeners("qeug_creat");
this.addItemClickListeners("qeug_revoked");
}
@Override
public void itemClick(ItemClickEvent evt) {
ListView listView = (ListView) this.getView();
if ("qeug_creat".equals(evt.getItemKey())) {
ListSelectedRowCollection selectedRows = listView.getSelectedRows();
Object primaryKeyValue = selectedRows.get(0).getPrimaryKeyValue();
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(primaryKeyValue, listView.getBillFormId());
QFilter measurecostid = new QFilter("measurecostid", QCP.equals, primaryKeyValue);
DynamicObject dynamicObject2 = BusinessDataServiceHelper.loadSingle("recos_aimcost", measurecostid.toArray());
if (dynamicObject2!=null) {
this.getView().showMessage("存在对应目标成本,无法生成");
return;
}
dynamicObject.set("aimversionflag",true);
SaveServiceHelper.update(dynamicObject);
AimCostGenByMeasureHelper.generateAimCost((Long)dynamicObject.getPkValue());
this.getView().showSuccessNotification("生成成功");
}else if("qeug_revoked".equals(evt.getItemKey())){
ListSelectedRowCollection selectedRows = listView.getSelectedRows();
Object primaryKeyValue = selectedRows.get(0).getPrimaryKeyValue();
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(primaryKeyValue, listView.getBillFormId());
boolean aimversionflag = dynamicObject.getBoolean("aimversionflag");
DynamicObject project = dynamicObject.getDynamicObject("project");
if (aimversionflag) {
boolean projectConPlan = QueryServiceHelper.exists("recos_conplan", new QFilter[]{new QFilter("billstatus", "in", new String[]{ReBillStatusEnum.SUBMITTED.getValue(), ReBillStatusEnum.AUDITTED.getValue()}), new QFilter("project", "=", project.getPkValue())});
if (projectConPlan) {
this.getView().showMessage("对应项目分期合约规划为已审核状态或已提交, 无法撤销目标成本。");
return;
}
}
if (dynamicObject.getBoolean("aimversionflag")) {
Boolean hasSaveConPlan = ReConPlanHelper.checkConPlanStatus(project.getLong("id"));
if (hasSaveConPlan) {
OperationResult unAuditOpResult = AimCostGenByMeasureHelper.unAuditAimCost(dynamicObject.getPkValue());
if (null != unAuditOpResult && !unAuditOpResult.isSuccess()) {
this.getView().showMessage(((IOperateInfo)unAuditOpResult.getAllErrorOrValidateInfo().get(0)).getMessage());
}
}
}
if (dynamicObject.getBoolean("aimversionflag")) {
Boolean hasSaveConPlan = ReConPlanHelper.checkConPlanStatus(project.getLong("id"));
if (hasSaveConPlan) {
AimCostGenByMeasureHelper.deleteAimCost(dynamicObject.getPkValue());
}
}
dynamicObject.set("aimversionflag",false);
SaveServiceHelper.update(dynamicObject);
}
}
}