|
@@ -461,21 +461,24 @@ public class contractServiceController {
|
|
|
} else {
|
|
} else {
|
|
|
//生效日期之后有审批通过的;
|
|
//生效日期之后有审批通过的;
|
|
|
if (DBSql.getInt("SELECT count(1) FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE APPROVE_AND_POST_USER_ID IS NOT NULL AND LENGTH(APPROVE_AND_POST_USER_ID)>1 AND APPROVE_AND_POST_DATE IS NOT NULL and CONTRACT_SERVICE_ID=? AND PERIOD_END_DATE>=?", new Object[]{serviceId, TerminationDate}) > 0) {
|
|
if (DBSql.getInt("SELECT count(1) FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE APPROVE_AND_POST_USER_ID IS NOT NULL AND LENGTH(APPROVE_AND_POST_USER_ID)>1 AND APPROVE_AND_POST_DATE IS NOT NULL and CONTRACT_SERVICE_ID=? AND PERIOD_END_DATE>=?", new Object[]{serviceId, TerminationDate}) > 0) {
|
|
|
- String minStart = DBSql.getString("SELECT DATE_FORMAT(MIN(PERIOD_BEGIN_DATE), '%Y-%m-%d') FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE (APPROVE_AND_POST_USER_ID IS NULL OR LENGTH(APPROVE_AND_POST_USER_ID)=0) AND APPROVE_AND_POST_DATE IS NULL and CONTRACT_SERVICE_ID=? AND PERIOD_END_DATE>=?", new Object[]{serviceId, TerminationDate});
|
|
|
|
|
- if (StringUtils.isNotBlank(minStart)) {
|
|
|
|
|
- SERVICE_END_DATE = getLocalDate(minStart);
|
|
|
|
|
|
|
+ String maxEnd = DBSql.getString("SELECT DATE_FORMAT(MAX(PERIOD_END_DATE), '%Y-%m-%d') FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE (APPROVE_AND_POST_USER_ID IS NOT NULL AND LENGTH(APPROVE_AND_POST_USER_ID)>1) AND APPROVE_AND_POST_DATE IS NOT NULL AND CONTRACT_SERVICE_ID=? AND PERIOD_END_DATE>=?", new Object[]{serviceId, TerminationDate});
|
|
|
|
|
+ if (StringUtils.isNotBlank(maxEnd)) {
|
|
|
|
|
+ SERVICE_END_DATE = getLocalDate(maxEnd).plusDays(1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ System.out.println("服务终止日期:" + TerminationDate + "--" + LocalDateYYYYMMDD(SERVICE_END_DATE)); //服务终止日期:2026-02-28--2026-02-01
|
|
|
|
|
+
|
|
|
Connection conn = null;
|
|
Connection conn = null;
|
|
|
try {
|
|
try {
|
|
|
conn = DBSql.open();
|
|
conn = DBSql.open();
|
|
|
conn.setAutoCommit(false);
|
|
conn.setAutoCommit(false);
|
|
|
|
|
|
|
|
-
|
|
|
|
|
// TerminationDate 到 SERVICE_END_DATE 之间的金额要退款
|
|
// TerminationDate 到 SERVICE_END_DATE 之间的金额要退款
|
|
|
- List<RowMap> periodList = DBSql.getMaps("select * from BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD where CONTRACT_SERVICE_ID=? AND PERIOD_END_DATE>=? AND PERIOD_BEGIN_DATE<=? ORDER BY PERIOD_BEGIN_DATE", new Object[]{serviceId, TerminationDate, LocalDateYYYYMMDD(SERVICE_END_DATE)});
|
|
|
|
|
|
|
+ List<RowMap> periodList = DBSql.getMaps(conn, "select * from BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD where CONTRACT_SERVICE_ID=? AND PERIOD_END_DATE>=? AND PERIOD_BEGIN_DATE<=? ORDER BY PERIOD_BEGIN_DATE", new Object[]{serviceId, TerminationDate, LocalDateYYYYMMDD(SERVICE_END_DATE)});
|
|
|
|
|
+
|
|
|
|
|
+ System.out.println("需要退款个数:" + periodList.size());
|
|
|
|
|
|
|
|
for (RowMap period : periodList) {
|
|
for (RowMap period : periodList) {
|
|
|
|
|
|
|
@@ -515,7 +518,7 @@ public class contractServiceController {
|
|
|
itemBO.set("PERIOD_ADJUSTED_PRICE", itemBO.get("PERIOD_PRICE"));
|
|
itemBO.set("PERIOD_ADJUSTED_PRICE", itemBO.get("PERIOD_PRICE"));
|
|
|
itemBO.set("PARTYA_PERIOD_PRICE", PARTYA_PERIOD_PRICE.multiply(periodRate));
|
|
itemBO.set("PARTYA_PERIOD_PRICE", PARTYA_PERIOD_PRICE.multiply(periodRate));
|
|
|
itemBO.set("PERIOD_COST", PERIOD_COST.multiply(periodRate));
|
|
itemBO.set("PERIOD_COST", PERIOD_COST.multiply(periodRate));
|
|
|
- SDK.getBOAPI().createDataBO("BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD", itemBO, uc);
|
|
|
|
|
|
|
+ SDK.getBOAPI().createDataBO("BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD", itemBO, uc, conn);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//生效日期之后的服务周期删除
|
|
//生效日期之后的服务周期删除
|