diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountCkOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountCkOp.java index 30cc9a3..f448dbf 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountCkOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountCkOp.java @@ -33,6 +33,7 @@ public class OutFinaceconfirmReversalamountCkOp extends AbstractOperationService 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_isprepay"); } @Override @@ -51,48 +52,36 @@ public class OutFinaceconfirmReversalamountCkOp extends AbstractOperationService for (int i = 0; i < entryEntityCollection.size(); i++) { DynamicObject entryEntity = entryEntityCollection.get(i); DynamicObjectCollection prepayentryCollection = dataEntity.getDynamicObjectCollection("zcgj_prepayentry");//冲销预付分录 - int seq = 0; - for (DynamicObject prepay : prepayentryCollection) { - seq++; - 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"); + String isprepay = dataEntity.getString("zcgj_isprepay"); + if("10".equals(isprepay)){ + if(prepayentryCollection == null || prepayentryCollection.isEmpty()){ + this.addFatalErrorMessage(extendedDataEntity, String.format("请录入冲销预付明细数据!")); + }else{ + int seq = 0; + for (DynamicObject prepay : prepayentryCollection) { + seq++; + 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"); - zcgjYreversalamount = zcgjYreversalamount.add(boltamount); - if(thisrealpayamt.subtract(zcgjYreversalamount).compareTo(BigDecimal.ZERO) < 0){ - this.addFatalErrorMessage(extendedDataEntity, String.format("冲销预付分录第%d行,冲销金额超限!",seq)); + for (DynamicObject dynamicObject : entryentityCollection) { + BigDecimal thisrealpayamt = dynamicObject.getBigDecimal("thisrealpayamt");//付款申请单本次实付金额 + long pkValue = (long)dynamicObject.getPkValue(); + if(pkValue==sourceapplyentryid){ + BigDecimal zcgjYreversalamount = dynamicObject.getBigDecimal("zcgj_yreversalamount"); + zcgjYreversalamount = zcgjYreversalamount.add(boltamount); + if(thisrealpayamt.subtract(zcgjYreversalamount).compareTo(BigDecimal.ZERO) < 0){ + this.addFatalErrorMessage(extendedDataEntity, String.format("冲销预付分录第%d行,冲销金额超限!",seq)); + } + } } } } } } - /*DynamicObject contract = entryEntity.getDynamicObject("contract");//合同名称 - String contractNumber = null; - if (contract != null) { - contractNumber = contract.getString("number");//合同编号 - } - String paymentType = entryEntity.getString("paymenttype");//支付类型 - DynamicObject settleType = entryEntity.getDynamicObject("settletype");//结算方式 - String settleTypeName = null; - if (settleType != null) { - settleTypeName = settleType.getString("name");//结算方式编码 - } - String combinationKey = contractNumber + "|" + paymentType + "|" + settleTypeName; - if (combinationIndices.containsKey(combinationKey)) { - this.addFatalErrorMessage(extendedDataEntity, "付款信息中一个合同不能填写多行相同的支付类型+结算方式"); - } else { - List indices = new ArrayList<>(); - indices.add(i); - combinationIndices.put(combinationKey, indices); - }*/ } } }