|
@@ -93,7 +93,7 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//更新采购订单号
|
|
//更新采购订单号
|
|
|
- String PURCHASE_ORDER_NO = DBSql.getString("SELECT GROUP_CONCAT(PURCHASE_ORDER_NO) FROM " + IVTConstant.BO_EU_DNIVT_ORDER + " WHERE CLOSED=0 AND ID IN (SELECT ORDER_ID FROM BO_EU_DNIVT_ORDER_PRODUCT WHERE CONTRACT_COST_ID=?) ", new Object[]{cost.getString("ID")});
|
|
|
|
|
|
|
+ String PURCHASE_ORDER_NO = DBSql.getString("SELECT GROUP_CONCAT(PURCHASE_ORDER_NO) FROM " + IVTConstant.BO_EU_DNIVT_ORDER + " WHERE CLOSED=0 AND ISEND=1 AND ID IN (SELECT ORDER_ID FROM BO_EU_DNIVT_ORDER_PRODUCT WHERE CONTRACT_COST_ID=?) ", new Object[]{cost.getString("ID")});
|
|
|
DBSql.update("UPDATE BO_EU_DNCTT_CONTRACT_COST SET PURCHASE_ORDER_NO=? WHERE ID=?", new Object[]{PURCHASE_ORDER_NO, cost.getString("ID")});
|
|
DBSql.update("UPDATE BO_EU_DNCTT_CONTRACT_COST SET PURCHASE_ORDER_NO=? WHERE ID=?", new Object[]{PURCHASE_ORDER_NO, cost.getString("ID")});
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -111,6 +111,12 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
String SERVICE_ID = DBSql.getString("select SERVICE_ID from BO_EU_DNCTT_CONTRACT_COST where ID=?", new Object[]{orderProduct.getString("CONTRACT_COST_ID")});
|
|
String SERVICE_ID = DBSql.getString("select SERVICE_ID from BO_EU_DNCTT_CONTRACT_COST where ID=?", new Object[]{orderProduct.getString("CONTRACT_COST_ID")});
|
|
|
if (StringUtils.isNotBlank(SERVICE_ID)) {
|
|
if (StringUtils.isNotBlank(SERVICE_ID)) {
|
|
|
|
|
|
|
|
|
|
+ if (DBSql.getInt("select count(1) as cnt from BO_EU_DNIVT_ORDER_PAYMENT_PLAN where ORDER_ID = ? and CONTRACT_COST_ID=? and CONTRACT_SERVICE_ID=? AND PAY_AMOUNT is NOT null AND PAY_AMOUNT<>0", new Object[]{orderId, orderProduct.getString("CONTRACT_COST_ID"), SERVICE_ID}) > 0) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ String sql = "delete from BO_EU_DNIVT_ORDER_PAYMENT_PLAN where ORDER_ID = ? and CONTRACT_COST_ID=? and CONTRACT_SERVICE_ID=? and (PAY_AMOUNT is null or PAY_AMOUNT = 0)";
|
|
|
|
|
+ DBSql.update(sql, new Object[]{orderId, orderProduct.getString("CONTRACT_COST_ID"), SERVICE_ID});
|
|
|
|
|
+
|
|
|
logger.info("生成付款计划SERVICE_ID--" + SERVICE_ID);
|
|
logger.info("生成付款计划SERVICE_ID--" + SERVICE_ID);
|
|
|
|
|
|
|
|
BO service = SDK.getBOAPI().get("BO_EU_DNCTT_CONTRACT_SERVICE", SERVICE_ID);
|
|
BO service = SDK.getBOAPI().get("BO_EU_DNCTT_CONTRACT_SERVICE", SERVICE_ID);
|
|
@@ -124,42 +130,40 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
|
|
|
|
|
String RULE_CATE = service.getString("PURCHASE_PERIOD_TYPE");//采购周期
|
|
String RULE_CATE = service.getString("PURCHASE_PERIOD_TYPE");//采购周期
|
|
|
LocalDate PERIOD_BEGIN_DATE = service.get("EFFECTIVE_DATE", LocalDate.class);
|
|
LocalDate PERIOD_BEGIN_DATE = service.get("EFFECTIVE_DATE", LocalDate.class);
|
|
|
- LocalDate START_DATE = TypeUtil.convert(DBSql.getString("select START_DATE from BO_EU_DNCTT_CONTRACT where ID=?", new Object[]{service.getString("CONTRACT_ID")}), LocalDate.class);
|
|
|
|
|
- LocalDate PERIOD_END_DATE = TypeUtil.convert(DBSql.getString("select END_DATE from BO_EU_DNCTT_CONTRACT where ID=?", new Object[]{service.getString("CONTRACT_ID")}), LocalDate.class);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ LocalDate START_DATE = TypeUtil.convert(DBSql.getString("select START_DATE from BO_EU_DNCTT_CONTRACT where ID=?", new Object[]{service.getString("CONTRACT_ID")}).substring(0, 10), LocalDate.class);
|
|
|
|
|
+
|
|
|
|
|
+ LocalDate PERIOD_END_DATE = TypeUtil.convert(DBSql.getString("select END_DATE from BO_EU_DNCTT_CONTRACT where ID=?", new Object[]{service.getString("CONTRACT_ID")}).substring(0, 10), LocalDate.class);
|
|
|
|
|
|
|
|
List<PERIOD> periods = getPeriodList(RULE_CATE, PERIOD_BEGIN_DATE, START_DATE, PERIOD_END_DATE, StringUtils.isNotBlank(BILL_METHOD_ID) && BILL_METHOD_ID.equals("4601"));
|
|
List<PERIOD> periods = getPeriodList(RULE_CATE, PERIOD_BEGIN_DATE, START_DATE, PERIOD_END_DATE, StringUtils.isNotBlank(BILL_METHOD_ID) && BILL_METHOD_ID.equals("4601"));
|
|
|
|
|
|
|
|
if (periods.isEmpty())
|
|
if (periods.isEmpty())
|
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
- BigDecimal COST_TOTAL = service.get("COST_TOTAL", BigDecimal.class);//总金额
|
|
|
|
|
|
|
+ BigDecimal COST_TOTAL = orderProduct.get("COST_TOTAL", BigDecimal.class);//总金额
|
|
|
|
|
|
|
|
BigDecimal RATE_TOTAL = periods.stream().map(period -> period.getRate()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal RATE_TOTAL = periods.stream().map(period -> period.getRate()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
|
|
|
- if (RATE_TOTAL.equals(BigDecimal.ZERO))
|
|
|
|
|
|
|
+ if (RATE_TOTAL.equals(BigDecimal.ZERO) || COST_TOTAL == null || COST_TOTAL.equals(BigDecimal.ZERO))
|
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
BigDecimal UNIT_COST = COST_TOTAL.divide(RATE_TOTAL, 10, RoundingMode.HALF_UP);
|
|
BigDecimal UNIT_COST = COST_TOTAL.divide(RATE_TOTAL, 10, RoundingMode.HALF_UP);
|
|
|
for (PERIOD period : periods) {
|
|
for (PERIOD period : periods) {
|
|
|
total++;
|
|
total++;
|
|
|
- ProcessInstance processInstance = SDK.getProcessAPI()
|
|
|
|
|
- .createProcessInstance("obj_5cb4ae4a42944fd0a9a284ff4c64c65d",
|
|
|
|
|
- uc.getUID(),
|
|
|
|
|
- "付款计划");
|
|
|
|
|
|
|
+ ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance("obj_5cb4ae4a42944fd0a9a284ff4c64c65d", uc.getUID(), "付款计划");
|
|
|
|
|
|
|
|
BO paymentPlan = new BO();
|
|
BO paymentPlan = new BO();
|
|
|
paymentPlan.setBindId(processInstance.getId());
|
|
paymentPlan.setBindId(processInstance.getId());
|
|
|
paymentPlan.set("ORDER_ID", orderId);
|
|
paymentPlan.set("ORDER_ID", orderId);
|
|
|
paymentPlan.set("PLAN_DATE", period.getPeriodBeginDateStr());
|
|
paymentPlan.set("PLAN_DATE", period.getPeriodBeginDateStr());
|
|
|
- paymentPlan.set("PAY_AMOUNT", UNIT_COST.multiply(period.getRate()));
|
|
|
|
|
- paymentPlan.set("REMAIN_AMOUNT", paymentPlan.get("PAY_AMOUNT"));
|
|
|
|
|
|
|
+ paymentPlan.set("PLAN_AMOUNT", UNIT_COST.multiply(period.getRate()));
|
|
|
|
|
+ paymentPlan.set("REMAIN_AMOUNT", paymentPlan.get("PLAN_AMOUNT"));
|
|
|
paymentPlan.set("CONTRACT_COST_ID", orderProduct.getString("CONTRACT_COST_ID"));
|
|
paymentPlan.set("CONTRACT_COST_ID", orderProduct.getString("CONTRACT_COST_ID"));
|
|
|
paymentPlan.set("CONTRACT_SERVICE_ID", service.getId());
|
|
paymentPlan.set("CONTRACT_SERVICE_ID", service.getId());
|
|
|
SDK.getBOAPI().create("BO_EU_DNIVT_ORDER_PAYMENT_PLAN", paymentPlan, processInstance, uc);
|
|
SDK.getBOAPI().create("BO_EU_DNIVT_ORDER_PAYMENT_PLAN", paymentPlan, processInstance, uc);
|
|
|
|
|
|
|
|
- System.out.println("==== 创建付款计划:" + paymentPlan.get("PLAN_DATE") + ",金额:" + paymentPlan.get("PAY_AMOUNT") + " ====");
|
|
|
|
|
|
|
+ System.out.println("==== 创建付款计划:" + paymentPlan.get("PLAN_DATE") + ",金额:" + paymentPlan.get("PLAN_AMOUNT") + " ====");
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -181,11 +185,10 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
System.out.println("==== 订单类型判断:" + (isServiceOrder ? "服务类" : "非服务类") + ",服务类计划数量:" + servicePlanData.size() + " ====");
|
|
System.out.println("==== 订单类型判断:" + (isServiceOrder ? "服务类" : "非服务类") + ",服务类计划数量:" + servicePlanData.size() + " ====");
|
|
|
|
|
|
|
|
List<Map<String, Object>> payAmounts = queryPayAmount(uc, orderId);
|
|
List<Map<String, Object>> payAmounts = queryPayAmount(uc, orderId);
|
|
|
- boolean hasValidPayment = payAmounts.stream()
|
|
|
|
|
- .anyMatch(amountMap -> {
|
|
|
|
|
- Double amount = (Double) amountMap.get("实际付款金额");
|
|
|
|
|
- return amount != null && amount > 0;
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ boolean hasValidPayment = payAmounts.stream().anyMatch(amountMap -> {
|
|
|
|
|
+ Double amount = (Double) amountMap.get("实际付款金额");
|
|
|
|
|
+ return amount != null && amount > 0;
|
|
|
|
|
+ });
|
|
|
System.out.println("==== 有效付款检查结果:" + (hasValidPayment ? "存在有效付款" : "无有效付款") + " ====");
|
|
System.out.println("==== 有效付款检查结果:" + (hasValidPayment ? "存在有效付款" : "无有效付款") + " ====");
|
|
|
|
|
|
|
|
if (hasValidPayment) {
|
|
if (hasValidPayment) {
|
|
@@ -240,15 +243,7 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
return Collections.emptyList();
|
|
return Collections.emptyList();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- String mainSql = "SELECT " +
|
|
|
|
|
- "a.order_id 采购订单id, " +
|
|
|
|
|
- "a.CONTRACT_SERVICE_ID 合同服务ID, " +
|
|
|
|
|
- "b.PERIOD_END_DATE 计划付款时间, " +
|
|
|
|
|
- "b.PERIOD_COST 计划付款金额 " +
|
|
|
|
|
- "FROM `BO_EU_DNIVT_ORDER_PRODUCT` a " +
|
|
|
|
|
- "JOIN `BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD` b " +
|
|
|
|
|
- "ON a.CONTRACT_SERVICE_ID = b.CONTRACT_SERVICE_ID " +
|
|
|
|
|
- "WHERE a.ORDER_ID = ?";
|
|
|
|
|
|
|
+ String mainSql = "SELECT " + "a.order_id 采购订单id, " + "a.CONTRACT_SERVICE_ID 合同服务ID, " + "b.PERIOD_END_DATE 计划付款时间, " + "b.PERIOD_COST 计划付款金额 " + "FROM `BO_EU_DNIVT_ORDER_PRODUCT` a " + "JOIN `BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD` b " + "ON a.CONTRACT_SERVICE_ID = b.CONTRACT_SERVICE_ID " + "WHERE a.ORDER_ID = ?";
|
|
|
List<RowMap> mainRowMaps = DBSql.getMaps(mainSql, new Object[]{orderId});
|
|
List<RowMap> mainRowMaps = DBSql.getMaps(mainSql, new Object[]{orderId});
|
|
|
|
|
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
@@ -266,11 +261,7 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
if (StringUtils.isNotBlank(contractServiceId) && !processedServiceIds.contains(contractServiceId)) {
|
|
if (StringUtils.isNotBlank(contractServiceId) && !processedServiceIds.contains(contractServiceId)) {
|
|
|
processedServiceIds.add(contractServiceId);
|
|
processedServiceIds.add(contractServiceId);
|
|
|
|
|
|
|
|
- String adjustSql = "SELECT " +
|
|
|
|
|
- "effective_date 计划付款时间, " +
|
|
|
|
|
- "prorated_cost_change 计划付款金额 " +
|
|
|
|
|
- "FROM `BO_EU_DNCTT_CONTRACT_SERVICE_ADJUST` " +
|
|
|
|
|
- "WHERE CAST(CONTRACT_SERVICE_ID AS CHAR) = ?";
|
|
|
|
|
|
|
+ String adjustSql = "SELECT " + "effective_date 计划付款时间, " + "prorated_cost_change 计划付款金额 " + "FROM `BO_EU_DNCTT_CONTRACT_SERVICE_ADJUST` " + "WHERE CAST(CONTRACT_SERVICE_ID AS CHAR) = ?";
|
|
|
List<RowMap> adjustRowMaps = DBSql.getMaps(adjustSql, new Object[]{contractServiceId});
|
|
List<RowMap> adjustRowMaps = DBSql.getMaps(adjustSql, new Object[]{contractServiceId});
|
|
|
|
|
|
|
|
if (adjustRowMaps != null && !adjustRowMaps.isEmpty()) {
|
|
if (adjustRowMaps != null && !adjustRowMaps.isEmpty()) {
|
|
@@ -293,11 +284,7 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
return Collections.emptyList();
|
|
return Collections.emptyList();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- String sql = "select " +
|
|
|
|
|
- "ORDER_ID 采购订单id, " +
|
|
|
|
|
- "PAY_AMOUNT 实际付款金额 " +
|
|
|
|
|
- "from `BO_EU_DNIVT_ORDER_PAYMENT_PLAN` " +
|
|
|
|
|
- "where ORDER_ID = ?";
|
|
|
|
|
|
|
+ String sql = "select " + "ORDER_ID 采购订单id, " + "PAY_AMOUNT 实际付款金额 " + "from `BO_EU_DNIVT_ORDER_PAYMENT_PLAN` " + "where ORDER_ID = ?";
|
|
|
List<RowMap> rowMaps = DBSql.getMaps(sql, new Object[]{orderId});
|
|
List<RowMap> rowMaps = DBSql.getMaps(sql, new Object[]{orderId});
|
|
|
|
|
|
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
|
@@ -318,9 +305,7 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- String sql = "delete from `BO_EU_DNIVT_ORDER_PAYMENT_PLAN` " +
|
|
|
|
|
- "where ORDER_ID = ? " +
|
|
|
|
|
- "and (PAY_AMOUNT is null or PAY_AMOUNT = 0)";
|
|
|
|
|
|
|
+ String sql = "delete from BO_EU_DNIVT_ORDER_PAYMENT_PLAN where ORDER_ID = ? and (PAY_AMOUNT is null or PAY_AMOUNT = 0)";
|
|
|
return DBSql.update(sql, new Object[]{orderId});
|
|
return DBSql.update(sql, new Object[]{orderId});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -341,10 +326,7 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
System.out.println("==== 查询订单表成功,VENDOR_ACCOUNT_ID=" + vendorAccountId + " ====");
|
|
System.out.println("==== 查询订单表成功,VENDOR_ACCOUNT_ID=" + vendorAccountId + " ====");
|
|
|
|
|
|
|
|
// 3. 原有流程实例创建(保持不变)
|
|
// 3. 原有流程实例创建(保持不变)
|
|
|
- ProcessInstance processInstance = SDK.getProcessAPI()
|
|
|
|
|
- .createProcessInstance("obj_5cb4ae4a42944fd0a9a284ff4c64c65d",
|
|
|
|
|
- uc.getUID(),
|
|
|
|
|
- "付款计划");
|
|
|
|
|
|
|
+ ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance("obj_5cb4ae4a42944fd0a9a284ff4c64c65d", uc.getUID(), "付款计划");
|
|
|
System.out.println("==== 付款计划流程实例创建成功,bindId=" + processInstance.getId() + " ====");
|
|
System.out.println("==== 付款计划流程实例创建成功,bindId=" + processInstance.getId() + " ====");
|
|
|
|
|
|
|
|
// 4. 构建BO对象(新增:设置ACCOUNT_PAYEE=查询到的VENDOR_ACCOUNT_ID)
|
|
// 4. 构建BO对象(新增:设置ACCOUNT_PAYEE=查询到的VENDOR_ACCOUNT_ID)
|
|
@@ -367,9 +349,7 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- String sql = "select EXPECTED_SHIP_DATE " +
|
|
|
|
|
- "from `BO_EU_DNIVT_ORDER` " +
|
|
|
|
|
- "where id = ? ";
|
|
|
|
|
|
|
+ String sql = "select EXPECTED_SHIP_DATE " + "from `BO_EU_DNIVT_ORDER` " + "where id = ? ";
|
|
|
String expectedShipDate = DBSql.getString(sql, new Object[]{orderId});
|
|
String expectedShipDate = DBSql.getString(sql, new Object[]{orderId});
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(expectedShipDate)) {
|
|
if (StringUtils.isBlank(expectedShipDate)) {
|
|
@@ -390,9 +370,7 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// SQL查询:求和 cost_total 字段(数据库字段正确,无需修改)
|
|
// SQL查询:求和 cost_total 字段(数据库字段正确,无需修改)
|
|
|
- String sql = "select sum(`cost_total`) " +
|
|
|
|
|
- "from `BO_EU_DNIVT_ORDER_PRODUCT` " +
|
|
|
|
|
- "where order_id = ? ";
|
|
|
|
|
|
|
+ String sql = "select sum(`cost_total`) " + "from `BO_EU_DNIVT_ORDER_PRODUCT` " + "where order_id = ? ";
|
|
|
String totalCostStr = DBSql.getString(sql, new Object[]{orderId});
|
|
String totalCostStr = DBSql.getString(sql, new Object[]{orderId});
|
|
|
|
|
|
|
|
// 空值处理:查询结果为空返回null(与日期方法风格一致)
|
|
// 空值处理:查询结果为空返回null(与日期方法风格一致)
|
|
@@ -428,9 +406,17 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
private List<PERIOD> getPeriodList(String RULE_CATE, LocalDate CONTRACT_START_DATE, LocalDate PERIOD_BEGIN_DATE, LocalDate PERIOD_END_DATE, boolean isNaturalMonth) {
|
|
private List<PERIOD> getPeriodList(String RULE_CATE, LocalDate CONTRACT_START_DATE, LocalDate PERIOD_BEGIN_DATE, LocalDate PERIOD_END_DATE, boolean isNaturalMonth) {
|
|
|
|
|
+
|
|
|
|
|
+ logger.info("获取周期列表");
|
|
|
|
|
+ logger.info("RULE_CATE:" + RULE_CATE);
|
|
|
|
|
+ logger.info("CONTRACT_START_DATE:" + CONTRACT_START_DATE);
|
|
|
|
|
+ logger.info("PERIOD_BEGIN_DATE:" + PERIOD_BEGIN_DATE);
|
|
|
|
|
+ logger.info("PERIOD_END_DATE:" + PERIOD_END_DATE);
|
|
|
|
|
+ logger.info("isNaturalMonth:" + isNaturalMonth);
|
|
|
|
|
+
|
|
|
List<PERIOD> periodList = new ArrayList<>();
|
|
List<PERIOD> periodList = new ArrayList<>();
|
|
|
//一次性收费
|
|
//一次性收费
|
|
|
- if (RULE_CATE.equals(IVTConstant.PERIOD_TYPE_MONTH)) {
|
|
|
|
|
|
|
+ if (RULE_CATE.equals(IVTConstant.PERIOD_TYPE_ONE_TIME)) {
|
|
|
PERIOD period = new PERIOD();
|
|
PERIOD period = new PERIOD();
|
|
|
period.setPeriodBeginDate(PERIOD_BEGIN_DATE);
|
|
period.setPeriodBeginDate(PERIOD_BEGIN_DATE);
|
|
|
period.setPeriodEndDate(PERIOD_END_DATE);
|
|
period.setPeriodEndDate(PERIOD_END_DATE);
|
|
@@ -513,11 +499,7 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
// 若不是半年第一天,计算本半年剩余天数作为首个周期
|
|
// 若不是半年第一天,计算本半年剩余天数作为首个周期
|
|
|
if (PERIOD_BEGIN_DATE.getDayOfMonth() != 1 || (PERIOD_BEGIN_DATE.getMonthValue() - 1) % 6 != 0) {
|
|
if (PERIOD_BEGIN_DATE.getDayOfMonth() != 1 || (PERIOD_BEGIN_DATE.getMonthValue() - 1) % 6 != 0) {
|
|
|
Month endMonth = getHalfYearEndMonth(PERIOD_BEGIN_DATE.getMonth());
|
|
Month endMonth = getHalfYearEndMonth(PERIOD_BEGIN_DATE.getMonth());
|
|
|
- currLastDay = LocalDate.of(
|
|
|
|
|
- PERIOD_BEGIN_DATE.getYear(),
|
|
|
|
|
- endMonth,
|
|
|
|
|
- endMonth.length(PERIOD_BEGIN_DATE.isLeapYear())
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ currLastDay = LocalDate.of(PERIOD_BEGIN_DATE.getYear(), endMonth, endMonth.length(PERIOD_BEGIN_DATE.isLeapYear()));
|
|
|
periodDays = getDaysInCurrentHalfYear(PERIOD_BEGIN_DATE);
|
|
periodDays = getDaysInCurrentHalfYear(PERIOD_BEGIN_DATE);
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
@@ -581,6 +563,8 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ logger.info("currLastDay:" + currLastDay);
|
|
|
|
|
+ logger.info("periodDays:" + periodDays);
|
|
|
|
|
|
|
|
if (currLastDay != null) {
|
|
if (currLastDay != null) {
|
|
|
if (currLastDay.isBefore(PERIOD_END_DATE)) {
|
|
if (currLastDay.isBefore(PERIOD_END_DATE)) {
|
|
@@ -607,6 +591,9 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
} else {
|
|
} else {
|
|
|
START_DATE = PERIOD_BEGIN_DATE;
|
|
START_DATE = PERIOD_BEGIN_DATE;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ logger.info("START_DATE:" + START_DATE);
|
|
|
|
|
+
|
|
|
//循环
|
|
//循环
|
|
|
if (START_DATE != null && START_DATE.isBefore(PERIOD_END_DATE)) {
|
|
if (START_DATE != null && START_DATE.isBefore(PERIOD_END_DATE)) {
|
|
|
|
|
|
|
@@ -740,11 +727,7 @@ public class ivtOrderProcessAfterComplete extends ExecuteListener {
|
|
|
Month endMonth = getHalfYearEndMonth(currentMonth);
|
|
Month endMonth = getHalfYearEndMonth(currentMonth);
|
|
|
|
|
|
|
|
LocalDate halfYearStart = LocalDate.of(date.getYear(), startMonth, 1);
|
|
LocalDate halfYearStart = LocalDate.of(date.getYear(), startMonth, 1);
|
|
|
- LocalDate halfYearEnd = LocalDate.of(
|
|
|
|
|
- date.getYear(),
|
|
|
|
|
- endMonth,
|
|
|
|
|
- endMonth.length(date.isLeapYear())
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ LocalDate halfYearEnd = LocalDate.of(date.getYear(), endMonth, endMonth.length(date.isLeapYear()));
|
|
|
|
|
|
|
|
return GetPeriodDays(halfYearStart, halfYearEnd);
|
|
return GetPeriodDays(halfYearStart, halfYearEnd);
|
|
|
}
|
|
}
|