diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TravelInvoiceOverdueRemindersOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TravelInvoiceOverdueRemindersOp.java index 5282222..35e2494 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TravelInvoiceOverdueRemindersOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TravelInvoiceOverdueRemindersOp.java @@ -82,7 +82,7 @@ public class TravelInvoiceOverdueRemindersOp extends AbstractOperationServicePlu "id", filterArray); - if(load != null && load.length > 0){ + if(load == null || load.length == 0){ DynamicObjectCollection entryentity = dataEntity.getDynamicObjectCollection("invoiceentry");//发票信息 List dateList = new ArrayList<>(); for (DynamicObject dynamicObject : entryentity) { diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettlementValidator.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettlementValidator.java index d2ef3f4..3c071d1 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettlementValidator.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutContractSettlementValidator.java @@ -26,62 +26,64 @@ public class OutContractSettlementValidator extends OutContractSettleValidator { long referbillid = payitemdetailentry.getLong("referbillid"); QFilter f1 = new QFilter("id", "=", referbillid); DynamicObject outcontractmeasure = BusinessDataServiceHelper.loadSingle("ec_outcontractmeasure", new QFilter[]{f1}); - DynamicObjectCollection listmodelentry = outcontractmeasure.getDynamicObjectCollection("listmodelentry"); - //判断是否有含有计量单id 若有跳过 避免多次新增 - Set set = new HashSet(); + if(outcontractmeasure!=null){ + DynamicObjectCollection listmodelentry = outcontractmeasure.getDynamicObjectCollection("listmodelentry"); + //判断是否有含有计量单id 若有跳过 避免多次新增 + Set set = new HashSet(); // QFilter f2 = new QFilter("id", "!=", "0"); - DynamicObjectCollection query = QueryServiceHelper.query(dataEntity1.getDynamicObjectType().getName(), "listmodelentry.zcgj_jldenrtyid", null); + DynamicObjectCollection query = QueryServiceHelper.query(dataEntity1.getDynamicObjectType().getName(), "listmodelentry.zcgj_jldenrtyid", null); // DynamicObject[] jldenrtyids = BusinessDataServiceHelper.load(listmodelentrys.getDynamicObjectType().getName(),"zcgj_jldenrtyid", new QFilter[]{f2}); - for (DynamicObject object : query) { - String id = object.getString("listmodelentry.zcgj_jldenrtyid"); - if (id != null) { - set.add(id); + for (DynamicObject object : query) { + String id = object.getString("listmodelentry.zcgj_jldenrtyid"); + if (id != null) { + set.add(id); + } } - } - for (DynamicObject listmodelEntry : listmodelentry) { - String id = listmodelEntry.getString("id"); - if (set.contains(id)) { - continue; - } - DynamicObject addNew = listmodelentrys.addNew(); - addNew.set("modelname", listmodelEntry.getString("modelname"));//清单模板名称 - addNew.set("cmptype", listmodelEntry.getString("cmptype"));//文本 - addNew.set("totalamount", listmodelEntry.getBigDecimal("totalamount"));//税额 - addNew.set("totaltax", listmodelEntry.getBigDecimal("totaltax"));//税额 - addNew.set("totaloftaxamount", listmodelEntry.getBigDecimal("totaloftaxamount"));//价税合计 - addNew.set("listmodelid", listmodelEntry.getLong(("listmodelid")));//清单模板id - addNew.set("zcgj_jldenrtyid", id);//计量单分录id - DynamicObjectCollection listEntry = addNew.getDynamicObjectCollection("listentry");//结算分录 - DynamicObjectCollection measureEntry = listmodelEntry.getDynamicObjectCollection("listentry");//计量分录 - for (DynamicObject dynamicObject : measureEntry) { - DynamicObject object = listEntry.addNew(); - object.set("listing", dynamicObject.getDynamicObject("listing"));//清单编码 - object.set("listingname", dynamicObject.getString("listingname"));//清单名称 - object.set("materiel", dynamicObject.getDynamicObject("materiel"));//物料编码 - object.set("resourceitem", dynamicObject.getDynamicObject("listing"));//资源编码 - object.set("resname", dynamicObject.getString("resname"));//资源名称 - object.set("boqnumber", dynamicObject.getDynamicObject("boqnumber"));//工程量清单编码 - object.set("contlistnumber", dynamicObject.getDynamicObject("contlistnumber"));// - object.set("measureunit", dynamicObject.getDynamicObject("measureunit"));//计量单位 - object.set("totalqty", dynamicObject.getBigDecimal("totalqty"));//总数量 - object.set("entrytaxrate", dynamicObject.getBigDecimal("entrytaxrate"));//税率(%) - object.set("curtaxprice", dynamicObject.getBigDecimal("curtaxprice"));//当前含税单价 - object.set("currentprice", dynamicObject.getBigDecimal("currentprice"));//当前单价 - object.set("currentamt", dynamicObject.getBigDecimal("currentamt"));//当前金额 - object.set("currenttaxamt", dynamicObject.getBigDecimal("currenttaxamt"));//当前税额 - object.set("currentoftax", dynamicObject.getBigDecimal("currentoftax"));//当前价税合计 - object.set("preqty", dynamicObject.getBigDecimal("preqty"));//期初累计计量数量 - object.set("preamout", dynamicObject.getBigDecimal("preamout"));//期初累计计量金额 - object.set("thisqty", dynamicObject.getBigDecimal("thisqty"));//本期计量数量 - object.set("thisamount", dynamicObject.getBigDecimal("thisamount"));//本期计量不含税金额 - object.set("thistax", dynamicObject.getBigDecimal("thistax"));//本期税额 - object.set("thisoftaxmount", dynamicObject.getBigDecimal("thisoftaxmount"));//本期计量含税金额 - object.set("lstqty", dynamicObject.getBigDecimal("lstqty"));//期末累计计量数量 - object.set("lstamount", dynamicObject.getBigDecimal("lstamount"));//期末累计计量不含税金额 - object.set("listca", dynamicObject.getDynamicObject("listca"));//成本科目 - object.set("listcbs", dynamicObject.getDynamicObject("listcbs"));//成本分解结构 - object.set("listboq", dynamicObject.getDynamicObject("listboq"));//工程量清单 - object.set("desc", dynamicObject.getString("desc"));//说明 + for (DynamicObject listmodelEntry : listmodelentry) { + String id = listmodelEntry.getString("id"); + if (set.contains(id)) { + continue; + } + DynamicObject addNew = listmodelentrys.addNew(); + addNew.set("modelname", listmodelEntry.getString("modelname"));//清单模板名称 + addNew.set("cmptype", listmodelEntry.getString("cmptype"));//文本 + addNew.set("totalamount", listmodelEntry.getBigDecimal("totalamount"));//税额 + addNew.set("totaltax", listmodelEntry.getBigDecimal("totaltax"));//税额 + addNew.set("totaloftaxamount", listmodelEntry.getBigDecimal("totaloftaxamount"));//价税合计 + addNew.set("listmodelid", listmodelEntry.getLong(("listmodelid")));//清单模板id + addNew.set("zcgj_jldenrtyid", id);//计量单分录id + DynamicObjectCollection listEntry = addNew.getDynamicObjectCollection("listentry");//结算分录 + DynamicObjectCollection measureEntry = listmodelEntry.getDynamicObjectCollection("listentry");//计量分录 + for (DynamicObject dynamicObject : measureEntry) { + DynamicObject object = listEntry.addNew(); + object.set("listing", dynamicObject.getDynamicObject("listing"));//清单编码 + object.set("listingname", dynamicObject.getString("listingname"));//清单名称 + object.set("materiel", dynamicObject.getDynamicObject("materiel"));//物料编码 + object.set("resourceitem", dynamicObject.getDynamicObject("listing"));//资源编码 + object.set("resname", dynamicObject.getString("resname"));//资源名称 + object.set("boqnumber", dynamicObject.getDynamicObject("boqnumber"));//工程量清单编码 + object.set("contlistnumber", dynamicObject.getDynamicObject("contlistnumber"));// + object.set("measureunit", dynamicObject.getDynamicObject("measureunit"));//计量单位 + object.set("totalqty", dynamicObject.getBigDecimal("totalqty"));//总数量 + object.set("entrytaxrate", dynamicObject.getBigDecimal("entrytaxrate"));//税率(%) + object.set("curtaxprice", dynamicObject.getBigDecimal("curtaxprice"));//当前含税单价 + object.set("currentprice", dynamicObject.getBigDecimal("currentprice"));//当前单价 + object.set("currentamt", dynamicObject.getBigDecimal("currentamt"));//当前金额 + object.set("currenttaxamt", dynamicObject.getBigDecimal("currenttaxamt"));//当前税额 + object.set("currentoftax", dynamicObject.getBigDecimal("currentoftax"));//当前价税合计 + object.set("preqty", dynamicObject.getBigDecimal("preqty"));//期初累计计量数量 + object.set("preamout", dynamicObject.getBigDecimal("preamout"));//期初累计计量金额 + object.set("thisqty", dynamicObject.getBigDecimal("thisqty"));//本期计量数量 + object.set("thisamount", dynamicObject.getBigDecimal("thisamount"));//本期计量不含税金额 + object.set("thistax", dynamicObject.getBigDecimal("thistax"));//本期税额 + object.set("thisoftaxmount", dynamicObject.getBigDecimal("thisoftaxmount"));//本期计量含税金额 + object.set("lstqty", dynamicObject.getBigDecimal("lstqty"));//期末累计计量数量 + object.set("lstamount", dynamicObject.getBigDecimal("lstamount"));//期末累计计量不含税金额 + object.set("listca", dynamicObject.getDynamicObject("listca"));//成本科目 + object.set("listcbs", dynamicObject.getDynamicObject("listcbs"));//成本分解结构 + object.set("listboq", dynamicObject.getDynamicObject("listboq"));//工程量清单 + object.set("desc", dynamicObject.getString("desc"));//说明 + } } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentApplyFundExtOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentApplyFundExtOp.java index 877ce5d..3a5274d 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentApplyFundExtOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentApplyFundExtOp.java @@ -25,8 +25,8 @@ public class PaymentApplyFundExtOp extends PaymentApplyFundOp { // 删除标品校验器 validators.removeIf(validator -> validator instanceof PaymentMaxAmountValidator); validators.removeIf(validator -> validator instanceof PaymentTypeValidator); - // 添加定制二开的校验器(位置放第一位,优先执行) - validators.add(0, new PaymentMaxAmountExtValidator()); + // 添加定制二开的校验器(位置放第一位,优先执行) 不需要产品校验,自定义开发校验 + //validators.add(0, new PaymentMaxAmountExtValidator()); } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentMaxAmountExtValidator.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentMaxAmountExtValidator.java index d0d3f3c..cd5216a 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentMaxAmountExtValidator.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentMaxAmountExtValidator.java @@ -27,7 +27,8 @@ public class PaymentMaxAmountExtValidator extends PaymentMaxAmountValidator { if(contractObj!=null) { String zcgjPricetype = contractObj.getString("zcgj_pricetype"); - if(!"bdlbdj".equals(zcgjPricetype)){ //如果支出合同计价方式为不定量不定价时,则移除校验 + //if(!"bdlbdj".equals(zcgjPricetype)){ //如果支出合同计价方式为不定量不定价时,则移除校验 + //20250318 全放开,后续在增加特定逻辑校验 BigDecimal maxShouldPayAmount = this.calculateMaxShouldPayAmount(contract); DynamicObject contCurrency = contract.getDynamicObject("currency"); if (contCurrency != null) { @@ -44,10 +45,10 @@ public class PaymentMaxAmountExtValidator extends PaymentMaxAmountValidator { } else if (maxShouldPayAmount.compareTo(curMaxShouldPayAmount) != 0) { this.addErrorMessage(dataEntity, String.format(ResManager.loadKDString("合同付款信息:第%s行因暂存期间存在其他单据提交审核,导致应付金额上限发生变化,本单数据未刷新,继续提交将超过应付金额上限。", "PaymentMaxAmountValidator_1", "ec-contract-opplugin", new Object[0]), i + 1)); } else { - this.addErrorMessage(dataEntity, String.format(ResManager.loadKDString("合同付款信息:第%s行本次应付金额不允许超应付金额上限,请确认。", "PaymentMaxAmountValidator_2", "ec-contract-opplugin", new Object[0]), i + 1)); + //this.addErrorMessage(dataEntity, String.format(ResManager.loadKDString("合同付款信息:第%s行本次应付金额不允许超应付金额上限,请确认。", "PaymentMaxAmountValidator_2", "ec-contract-opplugin", new Object[0]), i + 1)); } } - } + //} } } @@ -58,9 +59,9 @@ public class PaymentMaxAmountExtValidator extends PaymentMaxAmountValidator { DynamicObject contractObj = BusinessDataServiceHelper.loadSingle("ec_out_contract", "id,zcgj_pricetype", new QFilter[]{contractIdFilter}); if(contractObj!=null){ String zcgjPricetype = contractObj.getString("zcgj_pricetype"); - if(!"bdlbdj".equals(zcgjPricetype)){ //如果支出合同计价方式为不定量不定价时,则移除校验 - super.maxApplyAmountValidate( shouldPayAmountMap, deductionAmountMap, contractTypeApplyAmountMap, appliedAmountMap, appliedBillMap, dataEntity, i, entry, contract, type, key); - } + //if(!"bdlbdj".equals(zcgjPricetype)){ //如果支出合同计价方式为不定量不定价时,则移除校验 + // super.maxApplyAmountValidate( shouldPayAmountMap, deductionAmountMap, contractTypeApplyAmountMap, appliedAmountMap, appliedBillMap, dataEntity, i, entry, contract, type, key); + //} } }