diff --git a/main/java/shkd/repc/recon/opplugin/ConsettlebillAuditOPPlugin.java b/main/java/shkd/repc/recon/opplugin/ConsettlebillAuditOPPlugin.java index f3de417..d0a6679 100644 --- a/main/java/shkd/repc/recon/opplugin/ConsettlebillAuditOPPlugin.java +++ b/main/java/shkd/repc/recon/opplugin/ConsettlebillAuditOPPlugin.java @@ -31,34 +31,62 @@ public class ConsettlebillAuditOPPlugin extends AbstractOperationServicePlugIn { DynamicObjectCollection qeug_bondentrys = contractbills.getDynamicObjectCollection("qeug_bondentry"); for (DynamicObject qeugBondentry : qeug_bondentrys) { String qeugYear = qeugBondentry.getString("qeug_year");//年限 - switch (qeugYear){ + //1月、2月、3月、4月、5月、半年、1年、2年、3年、4年、5年 + Date updatedDate = null; // 声明一个变量用于保存更新后的日期 + + switch (qeugYear) { case "A": - //1年 - if (null !=bizdate) { - // 将 Date 转换为 LocalDate - LocalDate localBizDate = bizdate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - // 加上一年 - LocalDate newBizDate = localBizDate.plusYears(1); - //转换回 Date 类型 - Date updatedBizDate = Date.from(newBizDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); - qeugBondentry.set("qeug_finalpaymentdate",updatedBizDate);//最终付款日期 - } + updatedDate = updateBizDate(bizdate, 1); // 1个月 break; case "B": - //半年 - if (null !=bizdate) { - LocalDate localBizDate = bizdate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - // 加上六个月 - LocalDate newBizDate = localBizDate.plusMonths(6); - Date updatedBizDate = Date.from(newBizDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); - qeugBondentry.set("qeug_finalpaymentdate",updatedBizDate);//最终付款日期 - } + updatedDate = updateBizDate(bizdate, 2); // 2个月 + break; + case "C": + updatedDate = updateBizDate(bizdate, 3); // 3个月 + break; + case "D": + updatedDate = updateBizDate(bizdate, 4); // 4个月 + break; + case "E": + updatedDate = updateBizDate(bizdate, 5); // 5个月 + break; + case "F": + updatedDate = updateBizDate(bizdate, 6); // 6个月 + break; + case "G": + updatedDate = updateBizDate(bizdate, 12); // 一年 + break; + case "H": + updatedDate = updateBizDate(bizdate, 24); // 两年 + break; + case "I": + updatedDate = updateBizDate(bizdate, 36); // 三年 + break; + case "J": + updatedDate = updateBizDate(bizdate, 48); // 四年 + break; + case "K": + updatedDate = updateBizDate(bizdate, 60); // 五年 + break; default: break; } + // 在 switch 语句外设置最终付款日期 + if (updatedDate != null) { + qeugBondentry.set("qeug_finalpaymentdate", updatedDate); // 设置最终付款日期 + } } SaveServiceHelper.save(new DynamicObject[]{contractbills}); } } } + + private Date updateBizDate(Date bizdate, int monthsToAdd) { + if (bizdate != null) { + LocalDate localBizDate = bizdate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); // 将 Date 转换为 LocalDate + LocalDate newBizDate = localBizDate.plusMonths(monthsToAdd); // 根据传入的月份数加上月份 + return Date.from(newBizDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); // 返回更新后的 Date 类型 + } + return null; + } }