按入库单结算-判断上游有入库单时反写付款申请
This commit is contained in:
parent
17a68ff852
commit
b9905f695e
|
|
@ -34,6 +34,7 @@ public class OutFinaceconfirmReversalamountCkOp extends AbstractOperationService
|
|||
e.getFieldKeys().add("zcgj_prepayentry.zcgj_sourceapplyentryid");
|
||||
e.getFieldKeys().add("zcgj_prepayentry.zcgj_boltamount");
|
||||
e.getFieldKeys().add("zcgj_isprepay");
|
||||
e.getFieldKeys().add("zcgj_billsource");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -48,9 +49,8 @@ public class OutFinaceconfirmReversalamountCkOp extends AbstractOperationService
|
|||
ExtendedDataEntity[] extendedDataEntities = this.getDataEntities();
|
||||
for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) {
|
||||
DynamicObject dataEntity = extendedDataEntity.getDataEntity();//支出财务确认单
|
||||
DynamicObjectCollection entryEntityCollection = dataEntity.getDynamicObjectCollection("zcgj_prepayentry");//付款信息分录
|
||||
for (int i = 0; i < entryEntityCollection.size(); i++) {
|
||||
DynamicObject entryEntity = entryEntityCollection.get(i);
|
||||
String billsource = dataEntity.getString("zcgj_billsource");
|
||||
if(!"1".equals(billsource)){ //来源入库单时,不进行校验
|
||||
DynamicObjectCollection prepayentryCollection = dataEntity.getDynamicObjectCollection("zcgj_prepayentry");//冲销预付分录
|
||||
String isprepay = dataEntity.getString("zcgj_isprepay");
|
||||
if("10".equals(isprepay)){
|
||||
|
|
@ -62,7 +62,7 @@ public class OutFinaceconfirmReversalamountCkOp extends AbstractOperationService
|
|||
seq++;
|
||||
long sourceapplybillid = prepay.getLong("zcgj_sourceapplybillid");
|
||||
long sourceapplyentryid = prepay.getLong("zcgj_sourceapplyentryid");
|
||||
BigDecimal boltamount = prepay.getBigDecimal("zcgj_boltamount");//支出财务确认单冲销金额
|
||||
BigDecimal boltamount = prepay.getBigDecimal("zcgj_boltamount");//支出财务确认单本次冲销金额
|
||||
DynamicObject paymentapply = BusinessDataServiceHelper.loadSingle(sourceapplybillid, "ec_paymentapply");//工程资金付款申请单
|
||||
if (paymentapply != null) {
|
||||
DynamicObjectCollection entryentityCollection = paymentapply.getDynamicObjectCollection("entryentity");
|
||||
|
|
@ -83,6 +83,7 @@ public class OutFinaceconfirmReversalamountCkOp extends AbstractOperationService
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ public class OutFinaceconfirmReversalamountOp extends AbstractOperationServicePl
|
|||
e.getFieldKeys().add("zcgj_prepayentry.zcgj_sourceapplybillid");
|
||||
e.getFieldKeys().add("zcgj_prepayentry.zcgj_sourceapplyentryid");
|
||||
e.getFieldKeys().add("zcgj_prepayentry.zcgj_boltamount");
|
||||
e.getFieldKeys().add("zcgj_billsource");
|
||||
|
||||
}
|
||||
@Override
|
||||
|
|
@ -55,91 +56,37 @@ public class OutFinaceconfirmReversalamountOp extends AbstractOperationServicePl
|
|||
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));//取相反数
|
||||
String billsource = dataEntity.getString("zcgj_billsource");
|
||||
if("1".equals(billsource)){//来源入库单时,不反写付款申请单
|
||||
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);
|
||||
}
|
||||
zcgjYreversalamount = zcgjYreversalamount.add(boltamount);
|
||||
dynamicObject.set("zcgj_yreversalamount",zcgjYreversalamount);
|
||||
}
|
||||
}
|
||||
updateData.add(paymentapply);
|
||||
}
|
||||
updateData.add(paymentapply);
|
||||
}
|
||||
if(!updateData.isEmpty()){
|
||||
try (TXHandle txType = TX.requiresNew("updateAmt")) {
|
||||
SaveServiceHelper.save(updateData.toArray(new DynamicObject[0]));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// idList.add(id);
|
||||
/*Map<String, HashSet<Long>> sourceBills = BFTrackerServiceHelper.findSourceBills("cas_paybill", new Long[]{id});
|
||||
HashSet<Long> zcgjEcFundingplanapply = sourceBills.get("zcgj_ec_fundingplanapply");
|
||||
if(zcgjEcFundingplanapply != null && !zcgjEcFundingplanapply.isEmpty()) {
|
||||
Long dataId = (Long)zcgjEcFundingplanapply.toArray()[0];
|
||||
|
||||
//计算实际付款金额
|
||||
DynamicObject paybill = BusinessDataServiceHelper.loadSingle(id, "cas_paybill");
|
||||
DynamicObject settletype = paybill.getDynamicObject("settletype");
|
||||
String typeString = "";
|
||||
|
||||
DynamicObjectCollection entryCpllection = paybill.getDynamicObjectCollection("entry");
|
||||
BigDecimal allActamt = BigDecimal.ZERO;
|
||||
for (DynamicObject entry : entryCpllection) {
|
||||
BigDecimal val = entry.getBigDecimal("e_actamt");
|
||||
BigDecimal eActamt = val !=null ?val:BigDecimal.ZERO;//获取实付金额
|
||||
allActamt = allActamt.add(eActamt);
|
||||
}
|
||||
|
||||
//读取资金计划申请
|
||||
DynamicObject fundingplanapply = BusinessDataServiceHelper.loadSingle(dataId, "zcgj_ec_fundingplanapply");
|
||||
DynamicObjectCollection zcgjFinApprovedAmount = fundingplanapply.getDynamicObjectCollection("zcgj_fin_approved_amount");
|
||||
for (DynamicObject dynamicObject : zcgjFinApprovedAmount) {
|
||||
String zcgjSetttype = dynamicObject.getString("zcgj_setttype");
|
||||
if(typeString.equals(zcgjSetttype)){
|
||||
BigDecimal zcgjAmountpaid = dynamicObject.getBigDecimal("zcgj_amountpaid");
|
||||
BigDecimal zcgjAmountRecommended = zcgjAmountpaid !=null ? zcgjAmountpaid:BigDecimal.ZERO;//实际付款金额
|
||||
BigDecimal amountrecommended = BigDecimal.ZERO;
|
||||
if(!isSubmit){
|
||||
amountrecommended = allActamt;
|
||||
allActamt = allActamt.multiply(BigDecimal.ZERO.subtract(BigDecimal.ONE));//取相反数
|
||||
}
|
||||
allActamt = allActamt.add(zcgjAmountRecommended);
|
||||
dynamicObject.set("zcgj_amountpaid", allActamt);//实付金额
|
||||
dynamicObject.set("zcgj_amount_inpayment",amountrecommended);//
|
||||
|
||||
//zcgj_amount_remaining = zcgj_hdamount - zcgj_amount_inpayment - zcgj_amountpaid
|
||||
//剩余待拨付金额 = 财务核定金额 - 付款处理中金额 - 实付金额
|
||||
BigDecimal hdamount = dynamicObject.getBigDecimal("zcgj_hdamount");
|
||||
if(hdamount !=null && isSubmit){
|
||||
BigDecimal subtract = hdamount.subtract(amountrecommended).subtract(allActamt);
|
||||
dynamicObject.set("zcgj_amount_remaining",subtract);
|
||||
}else if(hdamount != null){
|
||||
BigDecimal subtract = hdamount.add(amountrecommended).subtract(allActamt);//实付金额已经成为相反数
|
||||
dynamicObject.set("zcgj_amount_remaining",subtract);
|
||||
}
|
||||
if(!updateData.isEmpty()){
|
||||
try (TXHandle txType = TX.requiresNew("updateAmt")) {
|
||||
SaveServiceHelper.save(updateData.toArray(new DynamicObject[0]));
|
||||
}
|
||||
}
|
||||
updateData.add(fundingplanapply);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
/*if(!updateData.isEmpty()){
|
||||
try (TXHandle txType = TX.requiresNew("updateAmt")) {
|
||||
SaveServiceHelper.save(updateData.toArray(new DynamicObject[0]));
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ public class OutContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin
|
|||
boolean isReversabillid = outContractSettle.getBoolean("zcgj_is_reversabillid");
|
||||
boolean isInvalid = outContractSettle.getBoolean("zcgj_is_invalid");
|
||||
boolean nofinconfirm = outContractSettle.getBoolean("zcgj_nofinconfirm");
|
||||
|
||||
if(!isReversabillid && !isInvalid && !nofinconfirm) {
|
||||
//如果时冲销单据
|
||||
//生成支出财务确认单 start
|
||||
|
|
@ -51,6 +52,10 @@ public class OutContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin
|
|||
outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer"));
|
||||
outFinaceconfirm.set("billstatus","A");
|
||||
outFinaceconfirm.set("creator",outContractSettle.getDynamicObject("creator"));
|
||||
//按入库单结算-判断上游有入库单
|
||||
if(outContractSettle.getBoolean("issettlebymatin")){
|
||||
outFinaceconfirm.set("zcgj_billsource","1");
|
||||
}
|
||||
DynamicObjectCollection itementry = outContractSettle.getDynamicObjectCollection("itementry");
|
||||
|
||||
DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry");
|
||||
|
|
|
|||
Loading…
Reference in New Issue