parent
6bf6c764c0
commit
b1c55f865b
|
@ -4,13 +4,14 @@ 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.bos.form.events.ClosedCallBackEvent;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* 单据界面插件
|
||||
* 费用登记和付款申请的发票分录合计行表单插件
|
||||
*/
|
||||
public class SumInvoiceEntryPlugin extends AbstractBillPlugIn implements Plugin {
|
||||
|
||||
|
@ -43,4 +44,10 @@ public class SumInvoiceEntryPlugin extends AbstractBillPlugIn implements Plugin
|
|||
super.afterDoOperation(args);
|
||||
updateAmt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
|
||||
super.closedCallBack(closedCallBackEvent);
|
||||
updateAmt();
|
||||
}
|
||||
}
|
|
@ -34,8 +34,8 @@ public class CreatTargetCostFormPlugin extends AbstractBillPlugIn implements Plu
|
|||
Object primaryKeyValue = dynamicObject.getPkValue();
|
||||
if ("qeug_creat".equals(evt.getItemKey())) {
|
||||
QFilter measurecostid = new QFilter("project", QCP.equals, dynamicObject.getDynamicObject("project").getPkValue());
|
||||
DynamicObject dynamicObject2 = BusinessDataServiceHelper.loadSingle("recos_aimcost", measurecostid.toArray());
|
||||
if (dynamicObject2!=null) {
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load("recos_aimcost", "id", measurecostid.toArray());
|
||||
if (load!=null&&load.length!=0) {
|
||||
this.getView().showMessage("存在对应目标成本,无法生成");
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
package shkd.repc.recos.opplugin;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||
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.operation.SaveServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* 单据操作插件
|
||||
*/
|
||||
public class DelBackTargetVersionOpPlugin extends AbstractOperationServicePlugIn implements Plugin {
|
||||
|
||||
@Override
|
||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||
super.onPreparePropertys(e);
|
||||
e.getFieldKeys().add("measurecostid");
|
||||
e.getFieldKeys().add("shapetype");
|
||||
e.getFieldKeys().add("project");
|
||||
e.getFieldKeys().add("project.id");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||
super.afterExecuteOperationTransaction(e);
|
||||
DynamicObject[] dataEntities1 = e.getDataEntities();
|
||||
if(dataEntities1!=null&&dataEntities1.length!=0){
|
||||
for (int i1 = 0; i1 < dataEntities1.length; i1++) {
|
||||
DynamicObject dynamicObject2 = dataEntities1[i1];
|
||||
if("0".equals(dynamicObject2.getString("shapetype"))){
|
||||
DynamicObject dynamicObject = dynamicObject2;
|
||||
QFilter measurecostid = new QFilter("project", QCP.equals, dynamicObject.getDynamicObject("project").getPkValue())
|
||||
.and("qeug_aimversionflag",QCP.equals,true);
|
||||
DynamicObject[] recos_measurecosts = BusinessDataServiceHelper.load("recos_measurecost", "id", measurecostid.toArray());
|
||||
if(recos_measurecosts!=null&&recos_measurecosts.length!=0){
|
||||
for (int i = 0; i < recos_measurecosts.length; i++) {
|
||||
DynamicObject recos_measurecost = recos_measurecosts[i];
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(recos_measurecost.getPkValue(), "recos_measurecost");
|
||||
dynamicObject1.set("qeug_aimversionflag",false);
|
||||
// dynamicObject1.set("aimversionflag",false);刷新所有目标版
|
||||
SaveServiceHelper.update(dynamicObject1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,115 @@
|
|||
package shkd.repc.recos.opplugin;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.resource.ResManager;
|
||||
import kd.bos.entity.ExtendedDataEntity;
|
||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||
import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import kd.repc.rebas.common.bizutil.ReOperateOptionUtil;
|
||||
import kd.repc.rebas.common.enums.ReBillStatusEnum;
|
||||
import kd.repc.rebas.common.util.ReDigitalUtil;
|
||||
import kd.repc.rebas.opplugin.base.RebasBillValidator;
|
||||
import kd.repc.recos.business.aimcost.ReAimCostUtil;
|
||||
import kd.repc.recos.business.conplan.ReConPlanGenByAimCostHelper;
|
||||
import kd.repc.recos.business.conplan.ReConPlanHelper;
|
||||
import kd.repc.recos.business.costversion.ReCostVersionSyncUtil;
|
||||
import kd.repc.recos.business.dyncost.ReDynCostSynUtil;
|
||||
import kd.repc.recos.opplugin.billtpl.RecosBillUnAuditOpPlugin;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public class ReAimCostUnAuditOpPluginTwo extends RecosBillUnAuditOpPlugin {
|
||||
public ReAimCostUnAuditOpPluginTwo() {
|
||||
}
|
||||
|
||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||
super.onPreparePropertys(e);
|
||||
List<String> fieldKeys = e.getFieldKeys();
|
||||
fieldKeys.add("billno");
|
||||
fieldKeys.add("project");
|
||||
fieldKeys.add("importflag");
|
||||
fieldKeys.add("measurecostid");
|
||||
fieldKeys.add("coststage");
|
||||
fieldKeys.add("projectversion");
|
||||
fieldKeys.add("bizdate");
|
||||
fieldKeys.add("handler");
|
||||
fieldKeys.add("shapetype");
|
||||
}
|
||||
|
||||
protected void checkBeforeOperation(RebasBillValidator validator, ExtendedDataEntity dataEntity) {
|
||||
super.checkBeforeOperation(validator, dataEntity);
|
||||
DynamicObject aimCost = dataEntity.getDataEntity();
|
||||
DynamicObject project = aimCost.getDynamicObject("project");
|
||||
boolean hasAdjustData = QueryServiceHelper.exists("recos_aimadjust", new QFilter[]{new QFilter("billstatus", "<>", ReBillStatusEnum.AUDITTED.getValue()), new QFilter("project", "=", project.getPkValue())});
|
||||
if (hasAdjustData) {
|
||||
validator.addErrorMessage(dataEntity, ResManager.loadKDString("已存在未审核的目标成本调整单,不允许反审核!", "ReAimCostUnAuditOpPlugin_0", "repc-recos-opplugin", new Object[0]));
|
||||
}
|
||||
|
||||
Optional.ofNullable(ReAimCostUtil.getLastAimCostHead(project.getPkValue(), Boolean.FALSE)).ifPresent((lastAimCost) -> {
|
||||
String currentVersion = aimCost.getString("billno").replace("V", "");
|
||||
String lastBillNo = lastAimCost.getString("billno").replace("V", "");
|
||||
String lastBigVersion = lastBillNo.substring(0, lastBillNo.lastIndexOf("."));
|
||||
String currentBigVersion = currentVersion.substring(0, currentVersion.lastIndexOf("."));
|
||||
if (ReDigitalUtil.compareTo(lastBigVersion, currentBigVersion) > 0) {
|
||||
validator.addErrorMessage(dataEntity, ResManager.loadKDString("已存在较新版目标成本,不允许反审核。", "ReAimCostUnAuditOpPlugin_1", "repc-recos-opplugin", new Object[0]));
|
||||
} else {
|
||||
if (ReDigitalUtil.compareTo(lastBigVersion, currentBigVersion) == 0) {
|
||||
String hisSmallVersion = lastBillNo.substring(lastBillNo.lastIndexOf(".") + 1);
|
||||
String currentSmallVersion = currentVersion.substring(currentVersion.lastIndexOf(".") + 1);
|
||||
if (ReDigitalUtil.compareTo(hisSmallVersion, currentSmallVersion) > 0) {
|
||||
validator.addErrorMessage(dataEntity, ResManager.loadKDString("已存在较新版目标成本,不允许反审核。", "ReAimCostUnAuditOpPlugin_1", "repc-recos-opplugin", new Object[0]));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
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) {
|
||||
validator.addErrorMessage(dataEntity, ResManager.loadKDString("存在已提交或已审核状态的合约规划,不允许反审核。", "ReAimCostUnAuditOpPlugin_2", "repc-recos-opplugin", new Object[0]));
|
||||
} else {
|
||||
boolean genByMeasureCost = !ReOperateOptionUtil.checkOperateSource(this.getOption(), "recos_measurecost") && ("0".equals(aimCost.getString("shapetype")) || aimCost.getLong("measurecostid") != 0L);
|
||||
if (genByMeasureCost) {
|
||||
// validator.addErrorMessage(dataEntity, ResManager.loadKDString("该目标成本为成本测算生成,如需反审核,请对成本测算进行反审核。", "ReAimCostUnAuditOpPlugin_3", "repc-recos-opplugin", new Object[0]));
|
||||
} else {
|
||||
boolean opFromMeasureCost = ReOperateOptionUtil.checkOperateSource(this.getOption(), "recos_measurecost");
|
||||
if (!opFromMeasureCost) {
|
||||
boolean comeFromAimAdjust = QueryServiceHelper.exists("recos_aimadjust", new QFilter[]{new QFilter("project", "=", project.getPkValue()), new QFilter("coststage", "=", aimCost.getDynamicObject("coststage").getPkValue()), new QFilter("projectversion", "=", aimCost.getString("projectversion")), new QFilter("bizdate", "=", aimCost.get("bizdate")), new QFilter("handler", "=", aimCost.getDynamicObject("handler").getPkValue())});
|
||||
if (comeFromAimAdjust) {
|
||||
validator.addErrorMessage(dataEntity, ResManager.loadKDString("该目标成本为目标成本调整生成,不允许反审核。", "ReAimCostUnAuditOpPlugin_4", "repc-recos-opplugin", new Object[0]));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void endUnAuditTransaction(EndOperationTransactionArgs args, DynamicObject model) {
|
||||
super.endUnAuditTransaction(args, model);
|
||||
}
|
||||
|
||||
protected void afterUnAuditTransaction(AfterOperationArgs args, DynamicObject model) {
|
||||
super.afterUnAuditTransaction(args, model);
|
||||
this.syncConPlanByAimCostUnAudit(model.getPkValue());
|
||||
ReCostVersionSyncUtil.syncCostVersionData("recos_aimcost");
|
||||
Optional.ofNullable(model.getDynamicObject("project")).ifPresent((p) -> {
|
||||
ReDynCostSynUtil.setDynCostLatestDataFlag(p.getPkValue());
|
||||
});
|
||||
}
|
||||
|
||||
public void syncConPlanByAimCostUnAudit(Object aimCostId) {
|
||||
DynamicObject aimCostObj = BusinessDataServiceHelper.loadSingle(aimCostId, "recos_aimcost");
|
||||
DynamicObject projectObj = aimCostObj.getDynamicObject("project");
|
||||
ReConPlanHelper.deleteConPlanData((Long)projectObj.getPkValue());
|
||||
DynamicObject preLastAimCost = ReAimCostUtil.getLastAimCostHead(projectObj.getPkValue(), true);
|
||||
if (null != preLastAimCost) {
|
||||
ReConPlanGenByAimCostHelper.syncConPlanByAimCost(preLastAimCost.getPkValue());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue