入库单关联付款申请单
This commit is contained in:
parent
983f92a0d3
commit
8b911d3a83
|
|
@ -0,0 +1,85 @@
|
||||||
|
package zcgj.zcdev.zcdev.pr.plugin.operate;
|
||||||
|
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.db.tx.TX;
|
||||||
|
import kd.bos.db.tx.TXHandle;
|
||||||
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||||
|
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||||
|
import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
|
||||||
|
import kd.bos.logging.Log;
|
||||||
|
import kd.bos.logging.LogFactory;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 入库单审核时反写付款申请单付款分录冲销金额
|
||||||
|
*/
|
||||||
|
public class MaterialinbillReversalamountOp extends AbstractOperationServicePlugIn {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(MaterialinbillReversalamountOp.class);
|
||||||
|
|
||||||
|
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||||
|
e.getFieldKeys().add("zcgj_prepayentry");
|
||||||
|
e.getFieldKeys().add("zcgj_prepayentry.zcgj_sourceapplybillid");
|
||||||
|
e.getFieldKeys().add("zcgj_prepayentry.zcgj_sourceapplyentryid");
|
||||||
|
e.getFieldKeys().add("zcgj_prepayentry.zcgj_boltamount");
|
||||||
|
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void endOperationTransaction(EndOperationTransactionArgs e) {
|
||||||
|
String operationKey = e.getOperationKey();
|
||||||
|
DynamicObject[] dataEntities = e.getDataEntities();
|
||||||
|
switch (operationKey) {
|
||||||
|
case "audit"://审核
|
||||||
|
log.info("执行OutFinaceconfirmReversalamountOp的提交操作,开始更新付款申请单付款信息分录冲销金额");
|
||||||
|
updateInApplyReversaAmt(dataEntities, true);
|
||||||
|
break;
|
||||||
|
case "unaudit"://反审核
|
||||||
|
log.info("执行OutFinaceconfirmReversalamountOp的撤销操作,开始更新付款申请单付款信息分录冲销金额");
|
||||||
|
updateInApplyReversaAmt(dataEntities, false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*public void endOperationTransaction(EndOperationTransactionArgs e) {
|
||||||
|
}*/
|
||||||
|
|
||||||
|
protected void updateInApplyReversaAmt(DynamicObject[] dataEntities, boolean isSubmit){
|
||||||
|
List<DynamicObject> updateData = new ArrayList<>();
|
||||||
|
for (DynamicObject dataEntity : dataEntities) {
|
||||||
|
long id = dataEntity.getLong("id");
|
||||||
|
DynamicObjectCollection prepayentryCollection = dataEntity.getDynamicObjectCollection("zcgj_prepayentry");//冲销预付分录
|
||||||
|
for (DynamicObject prepay : prepayentryCollection) {
|
||||||
|
long sourceapplybillid = prepay.getLong("zcgj_sourceapplybillid");
|
||||||
|
long sourceapplyentryid = prepay.getLong("zcgj_sourceapplyentryid");
|
||||||
|
BigDecimal boltamount = prepay.getBigDecimal("zcgj_boltamount");//支出财务确认单冲销金额
|
||||||
|
DynamicObject paymentapply = BusinessDataServiceHelper.loadSingle(sourceapplybillid, "ec_paymentapply");//工程资金付款申请单
|
||||||
|
if (paymentapply != null) {
|
||||||
|
DynamicObjectCollection entryentityCollection = paymentapply.getDynamicObjectCollection("entryentity");
|
||||||
|
for (DynamicObject dynamicObject : entryentityCollection) {
|
||||||
|
BigDecimal thisrealpayamt = dynamicObject.getBigDecimal("thisrealpayamt");//付款申请单本次实付金额
|
||||||
|
long pkValue = (long)dynamicObject.getPkValue();
|
||||||
|
if(pkValue==sourceapplyentryid){
|
||||||
|
BigDecimal zcgjYreversalamount = dynamicObject.getBigDecimal("zcgj_yreversalamount");
|
||||||
|
if(!isSubmit){
|
||||||
|
boltamount = boltamount.multiply(BigDecimal.ZERO.subtract(BigDecimal.ONE));//取相反数
|
||||||
|
}
|
||||||
|
zcgjYreversalamount = zcgjYreversalamount.add(boltamount);
|
||||||
|
dynamicObject.set("zcgj_yreversalamount",zcgjYreversalamount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
updateData.add(paymentapply);
|
||||||
|
}
|
||||||
|
if(!updateData.isEmpty()){
|
||||||
|
try (TXHandle txType = TX.requiresNew("updateAmt")) {
|
||||||
|
SaveServiceHelper.save(updateData.toArray(new DynamicObject[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
package zcgj.zcdev.zcdev.pr.plugin.other;
|
||||||
|
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
|
||||||
|
import kd.bos.entity.botp.plugin.args.AfterBuildDrawFilterEventArgs;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 入库单上拉付款申请单botp插件
|
||||||
|
*/
|
||||||
|
public class MaterialinbillGetPaymentapplyBotpPlugin extends AbstractConvertPlugIn {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterBuildDrawFilter(AfterBuildDrawFilterEventArgs e) {
|
||||||
|
//选单过滤
|
||||||
|
super.afterBuildDrawFilter(e);
|
||||||
|
System.out.println("afterBuildDrawFilter——>");
|
||||||
|
QFilter plugFilter = e.getPlugFilter();//插件追加的选单条件
|
||||||
|
String sourceLayout = e.getSourceLayout();//获取插件设置的选单时打开的源单列表布局
|
||||||
|
DynamicObject targetDataEntity = e.getTargetDataEntity();//当前数据包
|
||||||
|
DynamicObjectCollection prepayentryCollection = targetDataEntity.getDynamicObjectCollection("zcgj_prepayentry");
|
||||||
|
List<Long> ids = new ArrayList<>();
|
||||||
|
for (DynamicObject dynamicObject : prepayentryCollection) {
|
||||||
|
long aLong = dynamicObject.getLong("zcgj_sourceapplybillid");
|
||||||
|
ids.add(aLong);
|
||||||
|
}
|
||||||
|
QFilter filter = new QFilter("id", QCP.not_in, ids);
|
||||||
|
DynamicObject contract = targetDataEntity.getDynamicObject("contract");
|
||||||
|
if(contract != null) {
|
||||||
|
long contractId = contract.getLong("id");
|
||||||
|
filter = filter.and(new QFilter("entryentity.contract", QCP.equals, contractId));
|
||||||
|
}
|
||||||
|
filter = filter.and(new QFilter("entryentity.paymenttype", QCP.equals, "PREPAYMENT"));
|
||||||
|
e.setPlugFilter(filter);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue