|
@@ -54,10 +54,18 @@ public class PaymentPlanService {
|
|
|
* 创建付款计划
|
|
* 创建付款计划
|
|
|
* @param uc
|
|
* @param uc
|
|
|
* @param orderId
|
|
* @param orderId
|
|
|
|
|
+ * @param serviceId
|
|
|
*/
|
|
*/
|
|
|
- public void createPaymentPlan(UserContext uc, String orderId) {
|
|
|
|
|
|
|
+ public void createPaymentPlan(UserContext uc, String orderId, String serviceId) {
|
|
|
BO purchaseOrder = SDK.getBOAPI().get("BO_EU_DNIVT_ORDER", orderId);
|
|
BO purchaseOrder = SDK.getBOAPI().get("BO_EU_DNIVT_ORDER", orderId);
|
|
|
- List<BO> orderProducts = SDK.getBOAPI().query("BO_EU_DNIVT_ORDER_PRODUCT").bindId(purchaseOrder.getBindId()).list();
|
|
|
|
|
|
|
+ List<BO> orderProducts = null;
|
|
|
|
|
+
|
|
|
|
|
+ if (StringUtils.isNotBlank(serviceId)) {
|
|
|
|
|
+ orderProducts = SDK.getBOAPI().query("BO_EU_DNIVT_ORDER_PRODUCT").bindId(purchaseOrder.getBindId()).addQuery("CONTRACT_SERVICE_ID=", serviceId).list();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ orderProducts = SDK.getBOAPI().query("BO_EU_DNIVT_ORDER_PRODUCT").bindId(purchaseOrder.getBindId()).list();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
String VENDOR_ACCOUNT_ID = purchaseOrder.getString("VENDOR_ACCOUNT_ID");//供应商账户ID
|
|
String VENDOR_ACCOUNT_ID = purchaseOrder.getString("VENDOR_ACCOUNT_ID");//供应商账户ID
|
|
|
List<String> serviceIds = new ArrayList<>();
|
|
List<String> serviceIds = new ArrayList<>();
|
|
|
Connection conn = null;
|
|
Connection conn = null;
|
|
@@ -85,9 +93,9 @@ public class PaymentPlanService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (isOnlyOne) {
|
|
|
|
|
|
|
+ if (isOnlyOne && StringUtils.isBlank(serviceId)) {
|
|
|
total += 1;
|
|
total += 1;
|
|
|
- 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) AND IS_END=0 ";
|
|
|
DBSql.update(conn, sql, new Object[]{orderId});
|
|
DBSql.update(conn, sql, new Object[]{orderId});
|
|
|
//全部采购项 合并生成一条采购计划
|
|
//全部采购项 合并生成一条采购计划
|
|
|
ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance("obj_5cb4ae4a42944fd0a9a284ff4c64c65d", uc.getUID(), "付款计划");
|
|
ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance("obj_5cb4ae4a42944fd0a9a284ff4c64c65d", uc.getUID(), "付款计划");
|
|
@@ -170,7 +178,7 @@ public class PaymentPlanService {
|
|
|
|
|
|
|
|
if (RULE_CATE.equals("609")) { //一次性付费
|
|
if (RULE_CATE.equals("609")) { //一次性付费
|
|
|
|
|
|
|
|
- String sql = "delete from " + boName + " where ORDER_ID = ? and CONTRACT_COST_ID=? and CONTRACT_SERVICE_ID=? and (PAY_AMOUNT is null or PAY_AMOUNT = 0)";
|
|
|
|
|
|
|
+ String sql = "delete from " + boName + " where ORDER_ID = ? and CONTRACT_COST_ID=? and CONTRACT_SERVICE_ID=? and (PAY_AMOUNT is null or PAY_AMOUNT = 0) AND IS_END=0 ";
|
|
|
DBSql.update(conn, sql, new Object[]{orderId, orderProduct.getString("CONTRACT_COST_ID"), SERVICE_ID});
|
|
DBSql.update(conn, sql, new Object[]{orderId, orderProduct.getString("CONTRACT_COST_ID"), SERVICE_ID});
|
|
|
|
|
|
|
|
BO paymentPlan = new BO();
|
|
BO paymentPlan = new BO();
|
|
@@ -206,14 +214,14 @@ public class PaymentPlanService {
|
|
|
LocalDate START_DATE = PERIOD_BEGIN_DATE;
|
|
LocalDate START_DATE = PERIOD_BEGIN_DATE;
|
|
|
LocalDate PERIOD_END_DATE = service.get("PURCHASE_END_DATE", LocalDate.class);//新增采购结束时间
|
|
LocalDate PERIOD_END_DATE = service.get("PURCHASE_END_DATE", LocalDate.class);//新增采购结束时间
|
|
|
|
|
|
|
|
- LocalDate YS_EFFECTIVE_DATE=PERIOD_BEGIN_DATE;
|
|
|
|
|
- LocalDate YS_END_DATE=PERIOD_END_DATE;
|
|
|
|
|
|
|
+ LocalDate YS_EFFECTIVE_DATE = PERIOD_BEGIN_DATE;
|
|
|
|
|
+ LocalDate YS_END_DATE = PERIOD_END_DATE;
|
|
|
|
|
|
|
|
String PURCHASE_CALC_METHOD_1STPERIOD = service.getString("PURCHASE_CALC_METHOD_1STPERIOD");
|
|
String PURCHASE_CALC_METHOD_1STPERIOD = service.getString("PURCHASE_CALC_METHOD_1STPERIOD");
|
|
|
|
|
|
|
|
if (PURCHASE_CALC_METHOD_1STPERIOD.equals("4598") || PURCHASE_CALC_METHOD_1STPERIOD.equals("4595") || PURCHASE_CALC_METHOD_1STPERIOD.equals("4592")) {
|
|
if (PURCHASE_CALC_METHOD_1STPERIOD.equals("4598") || PURCHASE_CALC_METHOD_1STPERIOD.equals("4595") || PURCHASE_CALC_METHOD_1STPERIOD.equals("4592")) {
|
|
|
|
|
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
//固定价格,按照整个月计算
|
|
//固定价格,按照整个月计算
|
|
|
if (service.getString("FIXED_PRICE").equals("1")) {
|
|
if (service.getString("FIXED_PRICE").equals("1")) {
|
|
|
PERIOD_BEGIN_DATE = (PERIOD_BEGIN_DATE.withDayOfMonth(1)); //当月1号
|
|
PERIOD_BEGIN_DATE = (PERIOD_BEGIN_DATE.withDayOfMonth(1)); //当月1号
|
|
@@ -405,7 +413,7 @@ public class PaymentPlanService {
|
|
|
for (RowMap payPlan : payPlanList) {
|
|
for (RowMap payPlan : payPlanList) {
|
|
|
LocalDate PAY_PERIOD_BEGIN_DATE = TypeUtil.convert(payPlan.get("PERIOD_BEGIN_DATE"), LocalDate.class);
|
|
LocalDate PAY_PERIOD_BEGIN_DATE = TypeUtil.convert(payPlan.get("PERIOD_BEGIN_DATE"), LocalDate.class);
|
|
|
|
|
|
|
|
- // SDK.getLogAPI().consoleInfo("PAY_PERIOD_BEGIN_DATE:" + PAY_PERIOD_BEGIN_DATE.toString());
|
|
|
|
|
|
|
+ // SDK.getLogAPI().consoleInfo("PAY_PERIOD_BEGIN_DATE:" + PAY_PERIOD_BEGIN_DATE.toString());
|
|
|
|
|
|
|
|
// 跳过已处理过的付款计划(通过上一个周期末日期+1判断)
|
|
// 跳过已处理过的付款计划(通过上一个周期末日期+1判断)
|
|
|
if (LAST_DATE != null && PAY_PERIOD_BEGIN_DATE.isBefore(LAST_DATE)) {
|
|
if (LAST_DATE != null && PAY_PERIOD_BEGIN_DATE.isBefore(LAST_DATE)) {
|