|
@@ -39,6 +39,10 @@ public class commissionFormAfterSave extends ExecuteListener {
|
|
|
String boName = processExecutionContext.getParameterOfString(ListenerConst.FORM_EVENT_PARAM_BONAME);
|
|
String boName = processExecutionContext.getParameterOfString(ListenerConst.FORM_EVENT_PARAM_BONAME);
|
|
|
UserContext uc = processExecutionContext.getUserContext();
|
|
UserContext uc = processExecutionContext.getUserContext();
|
|
|
|
|
|
|
|
|
|
+ String _ADJUST = StringUtils.EMPTY;
|
|
|
|
|
+ if (boName.equals("BO_EU_DNCTT_COMMISSION_ADJUST")) {
|
|
|
|
|
+ _ADJUST = "_ADJUST";
|
|
|
|
|
+ }
|
|
|
//佣金表单和佣金调整表单 保存时触发
|
|
//佣金表单和佣金调整表单 保存时触发
|
|
|
if (boName.equals("BO_EU_DNCTT_COMMISSION") || boName.equals("BO_EU_DNCTT_COMMISSION_ADJUST")) {
|
|
if (boName.equals("BO_EU_DNCTT_COMMISSION") || boName.equals("BO_EU_DNCTT_COMMISSION_ADJUST")) {
|
|
|
|
|
|
|
@@ -103,13 +107,20 @@ public class commissionFormAfterSave extends ExecuteListener {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
-//校验
|
|
|
|
|
|
|
+ //校验
|
|
|
|
|
+ LocalDate EFFECTIVE_DATE = getLocalDate(commissionBO.get("PERIOD_BEGIN_DATE"));//服务生效日期
|
|
|
|
|
+ String EFFECTIVE_DATE_STR = EFFECTIVE_DATE.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
|
|
|
|
|
- //涉及到已审批的 不能修改
|
|
|
|
|
|
|
+ if (DBSql.getInt("SELECT count(1) FROM BO_EU_DNCTT_COMMISSION_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 BINDID=? AND PERIOD_END_DATE>=?", new Object[]{commissionBO.get("COMMISSION_BINDID"), EFFECTIVE_DATE_STR}) > 0) {
|
|
|
|
|
+ throw new BPMNError("500", EFFECTIVE_DATE_STR + "之后的佣金周期已被审批,则不能修改到当前日期");
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ if (DBSql.getInt("SELECT count(1) FROM BO_EU_DNCTT_COMMISSION_PERIOD_AGENT 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 BINDID=? AND PERIOD_END_DATE>=?", new Object[]{commissionBO.get("COMMISSION_BINDID"), EFFECTIVE_DATE_STR}) > 0) {
|
|
|
|
|
+ throw new BPMNError("500", EFFECTIVE_DATE_STR + "之后的佣金周期已被审批,则不能修改到当前日期");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
- }
|
|
|
|
|
List<PERIOD> periodList = getPeriodList(RULE_CATE, PERIOD_BEGIN_DATE, PERIOD_END_DATE);//周期
|
|
List<PERIOD> periodList = getPeriodList(RULE_CATE, PERIOD_BEGIN_DATE, PERIOD_END_DATE);//周期
|
|
|
if (periodList.size() > 0) {
|
|
if (periodList.size() > 0) {
|
|
|
Connection conn = null;
|
|
Connection conn = null;
|
|
@@ -128,10 +139,22 @@ public class commissionFormAfterSave extends ExecuteListener {
|
|
|
DBSql.update(conn, "DELETE FROM BO_EU_DNCTT_COMMISSION_PERIOD_SALES WHERE BINDID = ? AND PERIOD_BEGIN_DATE>? ", new Object[]{bindid, PERIOD_END_DATE_Str});
|
|
DBSql.update(conn, "DELETE FROM BO_EU_DNCTT_COMMISSION_PERIOD_SALES WHERE BINDID = ? AND PERIOD_BEGIN_DATE>? ", new Object[]{bindid, PERIOD_END_DATE_Str});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- List<BO> commissionAgentList = SDK.getBOAPI().query("BO_EU_DNCTT_COMMISSION_AGENT").addQuery("BINDID =", bindid).list();
|
|
|
|
|
- List<BO> commissionSalesList = SDK.getBOAPI().query("BO_EU_DNCTT_COMMISSION_SALES").addQuery("BINDID =", bindid).list();
|
|
|
|
|
|
|
+ List<BO> commissionAgentList = SDK.getBOAPI().query("BO_EU_DNCTT_COMMISSION_AGENT" + _ADJUST).addQuery("BINDID =", bindid).list();
|
|
|
|
|
+ List<BO> commissionSalesList = SDK.getBOAPI().query("BO_EU_DNCTT_COMMISSION_SALES" + _ADJUST).addQuery("BINDID =", bindid).list();
|
|
|
|
|
|
|
|
if (boName.equals("BO_EU_DNCTT_COMMISSION_ADJUST")) {
|
|
if (boName.equals("BO_EU_DNCTT_COMMISSION_ADJUST")) {
|
|
|
|
|
+
|
|
|
|
|
+ //当前生效日期之后的调整设置为 作废
|
|
|
|
|
+ List<BO> editServiceList = SDK.getBOAPI().query("BO_EU_DNCTT_COMMISSION_ADJUST").connection(conn).addQuery("COMMISSION_BINDID =", COMMISSION_BINDID).addQuery("IS_EFFECTIVE =", "已执行").addQuery("PERIOD_BEGIN_DATE >", PERIOD_BEGIN_DATE_final.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))).orderBy("PERIOD_BEGIN_DATE").asc().list();
|
|
|
|
|
+
|
|
|
|
|
+ if (editServiceList != null && editServiceList.size() > 0) {
|
|
|
|
|
+ //在此次调整之后有新的
|
|
|
|
|
+ for (BO editServiceOld : editServiceList) {
|
|
|
|
|
+ editServiceOld.set("IS_EFFECTIVE", "作废");
|
|
|
|
|
+ SDK.getBOAPI().update("BO_EU_DNCTT_COMMISSION_ADJUST", editServiceOld, conn);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
PERIOD firstPeriod = periodList.get(0);
|
|
PERIOD firstPeriod = periodList.get(0);
|
|
|
if (firstPeriod.getRate().compareTo(BigDecimal.ONE) == 0) {
|
|
if (firstPeriod.getRate().compareTo(BigDecimal.ONE) == 0) {
|
|
|
String periodBOID = DBSql.getString(conn, "SELECT ID FROM BO_EU_DNCTT_COMMISSION_PERIOD WHERE PERIOD_BEGIN_DATE=? AND BINDID=?", new Object[]{firstPeriod.getPeriodBeginDateStr(), bindid});
|
|
String periodBOID = DBSql.getString(conn, "SELECT ID FROM BO_EU_DNCTT_COMMISSION_PERIOD WHERE PERIOD_BEGIN_DATE=? AND BINDID=?", new Object[]{firstPeriod.getPeriodBeginDateStr(), bindid});
|
|
@@ -278,10 +301,10 @@ public class commissionFormAfterSave extends ExecuteListener {
|
|
|
|
|
|
|
|
//更新佣金
|
|
//更新佣金
|
|
|
if (boName.equals("BO_EU_DNCTT_COMMISSION_ADJUST")) {
|
|
if (boName.equals("BO_EU_DNCTT_COMMISSION_ADJUST")) {
|
|
|
-
|
|
|
|
|
|
|
+ commissionBO.set("IS_EFFECTIVE", "已执行");
|
|
|
|
|
+ SDK.getBOAPI().update("BO_EU_DNCTT_COMMISSION_ADJUST", commissionBO, conn);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
conn.commit();
|
|
conn.commit();
|
|
|
} catch (SQLException e) {
|
|
} catch (SQLException e) {
|
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -292,7 +315,6 @@ public class commissionFormAfterSave extends ExecuteListener {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -480,6 +502,9 @@ public class commissionFormAfterSave extends ExecuteListener {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 周期
|
|
|
|
|
+ */
|
|
|
private class PERIOD {
|
|
private class PERIOD {
|
|
|
private LocalDate PERIOD_BEGIN_DATE;
|
|
private LocalDate PERIOD_BEGIN_DATE;
|
|
|
private LocalDate PERIOD_END_DATE;
|
|
private LocalDate PERIOD_END_DATE;
|