付款处理单反写实付金额逻辑调整
This commit is contained in:
parent
678435ea8d
commit
4b11e6ec93
|
|
@ -51,6 +51,7 @@ public class CasPaybillToEcFundPlanApplyOp extends AbstractOperationServicePlugI
|
|||
for (DynamicObject dataEntity : dataEntities) {
|
||||
long id = dataEntity.getLong("id");
|
||||
// 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()) {
|
||||
|
|
@ -59,10 +60,14 @@ public class CasPaybillToEcFundPlanApplyOp extends AbstractOperationServicePlugI
|
|||
//计算实际付款金额
|
||||
DynamicObject paybill = BusinessDataServiceHelper.loadSingle(id, "cas_paybill");
|
||||
DynamicObject settletype = paybill.getDynamicObject("settletype");
|
||||
String typeString = "";
|
||||
if(settletype!=null){
|
||||
int zcgjZjjhhdseq = paybill.getInt("zcgj_zjjhhdseq");
|
||||
long zcgjZjjhhdid = paybill.getLong("zcgj_zjjhhdid");
|
||||
String billstatus = paybill.getString("billstatus");
|
||||
if(zcgjZjjhhdid !=0 && zcgjZjjhhdseq!=0 && "D".equals(billstatus)){
|
||||
// String typeString = "";
|
||||
/*if(settletype!=null){
|
||||
String type = settletype.getString("number");
|
||||
if("002".equals(type) || "JSFS04".equals(type)){ //司库-对公/电汇
|
||||
if("002".equals(type) || "JSFS01".equals(type) || "JSFS04".equals(type)){ //司库-对公/电汇
|
||||
//现金
|
||||
typeString = "XJ";
|
||||
}else if("JSFS07".equals(type)){ //银行承兑汇票
|
||||
|
|
@ -78,45 +83,49 @@ public class CasPaybillToEcFundPlanApplyOp extends AbstractOperationServicePlugI
|
|||
//其他金融产品
|
||||
typeString = "QTJRCP";
|
||||
}
|
||||
}
|
||||
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);
|
||||
}
|
||||
}*/
|
||||
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(!isPay){
|
||||
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);//
|
||||
//读取资金计划申请
|
||||
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");
|
||||
int entrtySeq = dynamicObject.getInt("seq");
|
||||
long entrtyId = dynamicObject.getLong("id");
|
||||
if(entrtyId == zcgjZjjhhdid){
|
||||
//if(typeString.equals(zcgjSetttype)){
|
||||
BigDecimal zcgjAmountpaid = dynamicObject.getBigDecimal("zcgj_amountpaid");
|
||||
BigDecimal zcgjAmountRecommended = zcgjAmountpaid !=null ? zcgjAmountpaid:BigDecimal.ZERO;//实际付款金额
|
||||
// BigDecimal amountrecommended = BigDecimal.ZERO;
|
||||
BigDecimal amountrecommended = dynamicObject.getBigDecimal("zcgj_amount_inpayment");
|
||||
if(!isPay){
|
||||
allActamt = allActamt.multiply(BigDecimal.ZERO.subtract(BigDecimal.ONE));//取相反数
|
||||
}
|
||||
|
||||
//zcgj_amount_remaining = zcgj_hdamount - zcgj_amount_inpayment - zcgj_amountpaid
|
||||
//剩余待拨付金额 = 财务核定金额 - 付款处理中金额 - 实付金额
|
||||
BigDecimal hdamount = dynamicObject.getBigDecimal("zcgj_hdamount");
|
||||
if(hdamount !=null && isPay){
|
||||
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);
|
||||
amountrecommended = amountrecommended.subtract(allActamt);
|
||||
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){
|
||||
BigDecimal subtract = hdamount.subtract(amountrecommended).subtract(allActamt);
|
||||
dynamicObject.set("zcgj_amount_remaining",subtract);
|
||||
}
|
||||
}
|
||||
}
|
||||
updateData.add(fundingplanapply);
|
||||
}
|
||||
updateData.add(fundingplanapply);
|
||||
|
||||
}
|
||||
}
|
||||
if(!updateData.isEmpty()){
|
||||
|
|
|
|||
Loading…
Reference in New Issue