合同结算公用插件优化系统逻辑

This commit is contained in:
xuhaihui 2025-09-21 14:43:51 +08:00
parent f0464df02d
commit 349b5af144
2 changed files with 15 additions and 12 deletions

View File

@ -22,7 +22,7 @@ import java.util.Date;
* 单据界面插件 * 单据界面插件
* 合同结算公共插件插件 * 合同结算公共插件插件
*/ */
public class ContractSettleBillPlugin extends ContractSettleCommonEditPluginExt{ public class ContractSettleBillPlugin extends ContractSettleCommonEditPlugin{
@Override @Override
protected void setDateEditMinAndMaxDate() { protected void setDateEditMinAndMaxDate() {
@ -81,9 +81,9 @@ public class ContractSettleBillPlugin extends ContractSettleCommonEditPluginExt{
}else if (StringUtils.equals(name, "zcgj_adjustmounttax")) { }else if (StringUtils.equals(name, "zcgj_adjustmounttax")) {
//this.adjustAmountTax(changeData); //this.adjustAmountTax(changeData);
} }
} else { }/* else {
this.setDateEditMinAndMaxDate(); this.setDateEditMinAndMaxDate();
} }*/
} }

View File

@ -289,13 +289,12 @@ public class ContractSettleCommonEditPluginExt extends AbstractContBillPlugin im
for(int var7 = 0; var7 < var6; ++var7) { for(int var7 = 0; var7 < var6; ++var7) {
int rowIndex = var5[var7]; int rowIndex = var5[var7];
itemPayItem = this.getModel().getEntryRowEntity("payitemdetailentry", rowIndex); itemPayItem = this.getModel().getEntryRowEntity("payitemdetailentry", rowIndex);
detailunitproject = itemPayItem.getDynamicObject("detailpayitem"); DynamicObject detailpayitem = itemPayItem.getDynamicObject("detailpayitem");
if (detailunitproject != null) { if (detailpayitem != null) {
DynamicObject detailunitproject1 = (DynamicObject)itemPayItem.get("detailunitproject");//二开修改 // 修复正确获取detailunitproject并生成mapKey
String mapKey = (detailunitproject1 != null ? detailunitproject1.getString("id") : "") DynamicObject detailunitproject1 = (DynamicObject)itemPayItem.get("detailunitproject");
+ "," + (detailunitproject1 != null ? detailunitproject1.getString("id") : "");//二开修改 String mapKey = detailpayitem.getString("id") + "," + (detailunitproject1 != null ? detailunitproject1.getString("id") : "");
// DynamicObject detailunitproject = (DynamicObject)itemPayItem.get("detailunitproject");//系统标准
// String mapKey = detailunitproject.getString("id") + "," + (detailunitproject != null ? detailunitproject.getString("id") : "");//系统标准
itemOfTaxAmt = (BigDecimal)ofTaxMap.getOrDefault(mapKey, BigDecimal.ZERO); itemOfTaxAmt = (BigDecimal)ofTaxMap.getOrDefault(mapKey, BigDecimal.ZERO);
itemOfTaxAmt = itemOfTaxAmt.add(itemPayItem.getBigDecimal("detailoftaxamt") == null ? BigDecimal.ZERO : itemPayItem.getBigDecimal("detailoftaxamt")); itemOfTaxAmt = itemOfTaxAmt.add(itemPayItem.getBigDecimal("detailoftaxamt") == null ? BigDecimal.ZERO : itemPayItem.getBigDecimal("detailoftaxamt"));
ofTaxMap.put(mapKey, itemOfTaxAmt); ofTaxMap.put(mapKey, itemOfTaxAmt);
@ -324,9 +323,13 @@ public class ContractSettleCommonEditPluginExt extends AbstractContBillPlugin im
} }
itemEntry = (DynamicObject)iterator.next(); itemEntry = (DynamicObject)iterator.next();
itemPayItem = itemEntry.getDynamicObject("payitem"); /* itemPayItem = itemEntry.getDynamicObject("payitem");
detailunitproject = (DynamicObject)itemEntry.get("itemunitproject"); detailunitproject = (DynamicObject)itemEntry.get("itemunitproject");
uniquekey = itemPayItem.getString("id") + "," + (detailunitproject != null ? detailunitproject.getString("id") : ""); uniquekey = itemPayItem.getString("id") + "," + (detailunitproject != null ? detailunitproject.getString("id") : "");*///系统源码
itemPayItem = itemEntry.getDynamicObject("payitem");//合同支付项-名称
DynamicObject itemunitproject = (DynamicObject)itemEntry.get("itemunitproject");//合同支付项-单位工程
// 修复正确生成uniquekey以匹配mapKey
uniquekey = itemPayItem.getString("id") + "," + (itemunitproject != null ? itemunitproject.getString("id") : "");//二开修改
} while(!ofTaxMap.containsKey(uniquekey)); } while(!ofTaxMap.containsKey(uniquekey));
BigDecimal itemDetailOfTaxAmt = (BigDecimal)ofTaxMap.getOrDefault(uniquekey, BigDecimal.ZERO); BigDecimal itemDetailOfTaxAmt = (BigDecimal)ofTaxMap.getOrDefault(uniquekey, BigDecimal.ZERO);