zhangyao 1 месяц назад
Родитель
Сommit
b475800e5b

+ 41 - 0
com.awspaas.user.apps.donenow_crm/template/page/CONF.html

@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title><#formTitle></title>
+    <link rel="stylesheet" href="../commons/css/font/iconfont.css"/>
+    <link rel="stylesheet" href="../commons/css/awsui.css"/>
+    <style>
+        .awsui-col-lg-10 {
+            width:80%;
+        }
+        .awsui-col-lg-2 {
+            width:15%;
+        }
+    </style>
+</head>
+<body>
+<div class="awsui-code-content" id="confFormDiv" style="padding-top: 20px;">
+    <div class="awsui-container-fluid" id="confForm">
+
+
+
+    </div>
+</div>
+
+
+<input id="sid" type="hidden" name="sid" value="<#sid>">
+</body>
+<script language="JavaScript" src="../commons/js/jquery/scripts/jquery.js"></script>
+<script language="JavaScript" src="../commons/js/awsui.js"></script>
+<script src="../apps/com.awspaas.user.apps.donenow_crm/CONF.js"></script>
+<script>
+    const sid = "<#sid>";
+    const cateId = "<#cateId>";
+    const objectId = "<#objectId>";
+    const colFields = '<#colFields>';
+    $(function () {
+        init(colFields);
+    });
+</script>
+</html>

+ 106 - 0
com.awspaas.user.apps.donenow_crm/web/com.awspaas.user.apps.donenow_crm/CONF.js

@@ -0,0 +1,106 @@
+var colFieldIDs = [];
+function init(colFields) {
+	
+    const colFieldData = JSON.parse(colFields);
+    console.log(colFieldData);
+    for (var i = 0; i < colFieldData.length; i++) {
+        let colField = colFieldData[i];
+        colFieldIDs.push(colField.name);
+        if (colField.type == 526) {//单行文本
+            let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-text">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '" style="width:100%;"><input type="text" class="awsui-input" id="' + colField.name + '" name="' + colField.name + '"></span></div></div>';
+            $("#confForm").append(htmlRow);
+        } else if (colField.type == 527) {//多行文本
+            let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-textar">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '"  style="width:100%;"><textarea type="text"  rows="4" class="awsui-input" id="' + colField.name + '" name="' + colField.name + '">' + colField.value + '</textarea></span></div></div>';
+            $("#confForm").append(htmlRow);
+        } else if (colField.type == 528) {//日期
+            let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-text">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '"  style="width:100%;"><input type="text" class="awsui-datepicker awsui-input" id="' + colField.name + '" name="' + colField.name + '"/></span></div></div>';
+            $("#confForm").append(htmlRow);
+        } else if (colField.type == 529) {//数字
+            let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-text">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '"  style="width:100%;"><input type="number" class="awsui-input" id="' + colField.name + '" name="' + colField.name + '"></span></div></div>';
+            $("#confForm").append(htmlRow);
+        } else if (colField.type == 530) {//列表
+            let options = '';
+            for (var j = 0; j < colField.list.length; j++) {
+                let option = colField.list[j];
+                options += '<option value="' + option.VALUE + '">' + option.LABEL + '</option>';
+            }
+            console.log("options",options);
+            let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-text">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '"  style="width:100%;"><select id="' + colField.name + '" name="' + colField.name + '">' + options + '</select></span></div></div>';
+            $("#confForm").append(htmlRow);
+        } else if (colField.type == 532) {//布尔
+            let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-text">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '"  style="width:100%;"><input type="checkbox" id="' + colField.name + '" name="' + colField.name + '" ' + (colField.value == 1 ? 'checked' : '') + '></span></div></div>';
+            $("#confForm").append(htmlRow);
+        }
+
+
+        $("#" + colField.name).val(colField.value);
+        if (colField.type == 528) {
+            $("#" + colField.name).datepicker({
+                format: "yyyy-mm-dd",
+                autoclose: true
+            });
+        } else if (colField.type == 530) {
+            $("#" + colField.name).select2();
+            $(".select2-container").css("width", "100%");
+
+            $("#" + colField.name).val([colField.value]).trigger("change"); //单选赋值
+
+        } else if (colField.type == 532 && colField.value == 1) {
+            $("#" + colField.name).switchButton();
+        }
+    }
+
+   // $("#confFormDiv").css("height", colFieldIDs.length*50+"px");
+
+    $(".required").find(".awsui-input").focus(function () {
+        $.each($(".required").find(".awsui-input"), function (i, el) {
+            $(el).css("background-color", "#fff");
+        });
+        $(this).css("background-color", "#FFFFCC");
+    });
+    $(".required").find(".awsui-input").blur(function () {
+        var inputVal = $(this).val();
+        if (inputVal == "") {
+            $(this).tooltip({
+                positon: "top",
+                text: "不允许为空,请重新输入",
+                bgcolor: "#f9f9f9",
+                color: "red",
+                borderColor: "red",
+                close: false
+            });
+            return false;
+        }
+    });
+}
+
+function saveConf(objectId) {
+	
+    //必填校验
+    $(".required").find(".awsui-input").each(function () {
+        if ($(this).val() == "") {
+        
+        }
+    });
+
+    let confForm = {};
+    for (var i = 0; i < colFieldIDs.length; i++) {
+		
+        let id = colFieldIDs[i];
+		let aaa=$("#" + id).val();
+		debugger;
+        confForm[id] = aaa;
+    }
+    awsui.ajax.request({
+        type: "POST",
+        url: "./jd?cmd=com.awspaas.user.apps.donenow_crm_save&sid=" + sid,
+        data: "cateId="+cateId+"&objectId="+objectId+"&data="+JSON.stringify(confForm),
+        success: function (res) {
+            console.log(res);
+
+        }
+    });
+}
+
+
+

+ 184 - 0
com.awspaas.user.apps.donenow_crm/web/com.awspaas.user.apps.donenow_crm/template/formstyle/CONF.css

@@ -0,0 +1,184 @@
+/*以下固定模板,不能修改*/
+/*DoneNow主题*/
+/**/
+/*admin*/
+.aws-form-container .form-container .form-row .form-row-col {}
+.aws-form.awsui-form-table-line .form-container .el-form-item .aws-form-item__label {
+    white-space: normal;
+    text-overflow: ellipsis;
+    overflow: hidden
+}
+.form-content-box .form-row-col .form-words-title {
+    white-space: normal
+}
+.aws-form.awsui-form-table-line .form-container .form-row-col .el-form-item__label {
+    width: 250px !important
+}
+.form-content-box .form-row .el-form-item .el-input .el-input__wrapper {
+    box-shadow: none;
+    border-width: 1px;
+    border-style: solid
+}
+.form-content-box .form-row .form-row-col:not(.readonly) .el-form-item__content .component-effect:not(.aws-select,.awsui-address) {
+    border-style: solid;
+    border-width: 1px
+}
+.form-content-box .form-row .el-textarea__inner {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #dcdfe6 !important;
+    box-shadow: none
+}
+.form-content-box .form-row .el-date-editor.el-input__wrapper {
+    border-style: solid;
+    border-width: 1px
+}
+.form-content-box .form-row .field-contianer .span-style {
+    box-shadow: none;
+    border-width: 1px;
+    border-style: solid;
+    border-color: #dcdfe6
+}
+.form-content-box .form-row .card-content {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #dcdfe6
+}
+.form-content-box .form-row .related-query-table-vxe .vxe-table--render-default .vxe-table--border-line {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #dcdfe6
+}
+.awsui-form-table-line .form-content-box .form-row .form-textarea .el-textarea {
+    border-width: 0px
+}
+.form-content-box .form-row .el-input-number {
+    box-shadow: 0 0 0 0px var(--el-input-focus-border-color) inset
+}
+.form-content-box .form-row .el-textarea__inner:focus {
+    box-shadow: 0 0 0 0px var(--el-input-focus-border-color) inset
+}
+.form-content-box .form-row .el-textarea__inner:hover {
+    box-shadow: 0 0 0 0px var(--el-input-focus-border-color) inset;
+    --el-input-focus-border-color: #dcdfe6}
+.aws-form.awsui-form-table-line .form-container .form-row-col .el-textarea__inner {
+    border-style: solid;
+    border-width: 1px
+}
+.form-content-box .form-row .form-row-col:not(.readonly) .el-form-item__content .component-effect.form-combobox-design {
+    border: none
+}
+.aws-form:not(.awsui-form-table-line) .form-container .form-row .form-textarea .el-textarea {
+    border: none
+}
+.form-container-designer .form-container .form-row .form-textarea .el-textarea {
+    border: none
+}
+.form-content-box .form-row .el-form-item__content > .form-grid-div > .multiColumn-body .multiColumn-row:not(.field-style) {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #dcdfe6
+}
+.form-content-box .form-row .related-table .vxe-table--border-line {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #dcdfe6
+}
+.form-content-box .form-row .el-form-item .el-upload-dragger {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #dcdfe6
+}
+.form-content-box .form-row .custom-btn-wrapper .custom-btn-common {
+    border-style: solid;
+    border-width: 1px
+}
+.form-content-box .form-row .xcode .no-data {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #dcdfe6
+}
+.form-content-box .form-row .data-history .isDesign {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #dcdfe6
+}
+.form-content-box .form-row .data-history .nonDesign {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #dcdfe6
+}
+.form-content-box .form-row .form-row-col:not(.readonly) .awsui-address {
+    box-shadow: none;
+    border-width: 1px;
+    border-style: solid;
+    border-color: #dcdfe6 !important
+}
+.form-content-box .form-row .el-form-item .awsui-select .el-select__wrapper {
+    box-shadow: none;
+    border-width: 1px;
+    border-style: solid;
+    border-color: #dcdfe6 !important
+}
+.form-content-box .form-row .form-row-col:not(.readonly) .component-effect:not(.form-grid-div,.awsui-input-number,.awsui-address) {
+    border-color: #dcdfe6
+}
+.form-content-box .form-row .el-input.is-disabled .el-input__wrapper {
+    border-color: #dcdfe6 !important;
+    box-shadow: none;
+    border-width: 1px
+}
+.form-content-box .form-row .el-input__wrapper:hover {
+    border-color: #dcdfe6 !important;
+    box-shadow: none;
+    border-width: 1px
+}
+.form-content-box .form-row .el-input {
+    --el-input-focus-border-color: #dcdfe6;
+    --el-input-border-color: #dcdfe6}
+.form-content-box .form-row .el-select {
+    --el-select-input-focus-border-color: none;
+    --el-select-border-color-hover: #dcdfe6}
+.form-content-box .form-row .el-textarea {
+    --el-input-border-color: #dcdfe6}
+.form-content-box .form-row .el-date-editor--daterange {
+    border-color: #dcdfe6 !important;
+    box-shadow: none;
+    border-width: 1px
+}
+.form-content-box .form-row .el-input .el-input__wrapper {
+    border-color: #dcdfe6 !important;
+    box-shadow: none;
+    border-width: 1px
+}
+.form-container .form-row-col .el-textarea {
+    border-color: #dcdfe6 !important;
+    box-shadow: none;
+    border-width: 1px
+}
+.form-content-box .form-row .awsui-input-number {
+    border-color: #dcdfe6 !important;
+    box-shadow: none;
+    border-width: 1px
+}
+.form-content-box .form-row .related-query-table-vxe .vxe-table--render-default.border--full .vxe-header--column {
+    border-bottom-color: #dcdfe6
+}
+.form-content-box .form-row .related-query-table-vxe .vxe-table .vxe-table--header-wrapper .vxe-table--header-border-line {
+    --el-input-border-color: #dcdfe6}
+.form-content-box .form-row .aws-form-context-button .custom-btn-wrapper .custom-btn-common {
+    border-color: #dcdfe6
+}
+.form-content-box .el-form-item__content {
+    margin-top: 0px
+}
+.aws-form.awsui-form-table-line .form-container .form-row .form-row-col>.el-form-item>.el-form-item__content {
+    margin-top: 0px
+}
+.form-row .form-row-col .el-form-item__label {}
+.form-row .form-row-col .form-signature-img .awsui-button--text {}
+.form-content-box .form-row-col .doc-header .title {}
+.form-content-box .form-row-col .apply-user .userName {}
+.form-content-box .form-row-col .form-words {
+    font-size: 0px !important
+}

+ 4 - 4
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/controller/contractServiceController.java

@@ -153,11 +153,11 @@ public class contractServiceController {
 
         for (String serviceId : serviceIds) {
             try {
-                //String bindid = contractServiceAdj.getInstance().editServicePurchase(uc, serviceId, "临时--分摊采购");
-                //String boId = DBSql.getString("SELECT ID FROM BO_EU_DNCTT_CONTRACT_SERVICE_PURCHASE_ADJUST where BINDID=?", new Object[]{bindid});
-                //contractServiceAdj.getInstance().execServicePurchaseAdj(uc, boId, null);
+                String bindid = contractServiceAdj.getInstance().editServicePurchase(uc, serviceId, "临时--分摊采购");
+                String boId = DBSql.getString("SELECT ID FROM BO_EU_DNCTT_CONTRACT_SERVICE_PURCHASE_ADJUST where BINDID=?", new Object[]{bindid});
+                contractServiceAdj.getInstance().execServicePurchaseAdj(uc, boId, null);
 
-                contractServiceAdj.getInstance().paySplitServiceMonth(uc, serviceId);
+                //contractServiceAdj.getInstance().paySplitServiceMonth(uc, serviceId);
 
             } catch (Exception ex) {
 

+ 4 - 0
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/controller/invoiceController.java

@@ -8,6 +8,7 @@ import com.actionsoft.bpms.util.DBSql;
 import com.actionsoft.sdk.local.SDK;
 import com.awspaas.user.apps.donenow_ctt.service.InvoiceDealDto;
 import com.awspaas.user.apps.donenow_ctt.service.InvoiceService;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.List;
 
@@ -45,6 +46,9 @@ public class invoiceController {
 
         SDK.getLogAPI().consoleInfo("处理账单:" + accDeduIds + "账单开始时间:" + startDate + "账单结束时间:" + endDate);
 
+        if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate))
+            return ResponseObject.newErrResponse("请选择账单时间");
+
         invoiceDealDto.setDateRangeFromStr(startDate);
         invoiceDealDto.setDateRangeToStr(endDate);
 

+ 1 - 1
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/service/contractService.java

@@ -2651,7 +2651,7 @@ public class contractService {
                         CONTRACT_ID = bo.getString("CONTRACT_ID");
                         cad.set("CONTRACT_ID", CONTRACT_ID);
                         bo.set("APPROVE_AND_POST_DATE", approveDate);
-                        bo.set("SETUP_FEE_APPROVE_POST_USER_ID", uc.getUID());
+                        bo.set("APPROVE_AND_POST_USER_ID", uc.getUID());
                         SDK.getBOAPI().update("BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD", bo, connUpdate);
 
                         cad.set("TYPE_ID", cttConstant.ACCOUNT_DEDUCTION_TYPE_SERVICE);//类型(服务)

+ 41 - 21
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/service/contractServiceAdj.java

@@ -346,32 +346,43 @@ public class contractServiceAdj {
 
         RowMap lastServicePeriod = DBSql.getMap("SELECT * FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE CONTRACT_SERVICE_ID=? ORDER BY PERIOD_BEGIN_DATE DESC", new Object[]{serviceId});//最后一笔服务周期
 
+
         LocalDate PERIOD_BEGIN_DATE = TypeUtil.convert(lastServicePeriod.get("PERIOD_BEGIN_DATE"), LocalDate.class);
         LocalDate PERIOD_END_DATE = TypeUtil.convert(lastServicePeriod.get("PERIOD_END_DATE"), LocalDate.class);
+        if (PERIOD_END_DATE.equals(newEndDate))
+            return "无需修改";
+
+        String EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE APPROVE_AND_POST_DATE IS NOT NULL and CONTRACT_SERVICE_ID=? AND  PERIOD_END_DATE >=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
+        if (StringUtils.isBlank(EFFECTIVE_DATE))
+            return "已审批不能修改了";
+
 
         String bindId = editServiceSale(uc, serviceId, "修改结束日期");
 
         BO adjBO = SDK.getBOAPI().getByProcess("BO_EU_DNCTT_CONTRACT_SERVICE_SALE_ADJUST", bindId);
 
-        if (PERIOD_END_DATE.equals(newEndDate))
-            return "无需修改";
-
         if (PERIOD_END_DATE.isAfter(newEndDate)) {
             //缩短
 
             if (PERIOD_BEGIN_DATE.isBefore(newEndDate)) {
-                if (lastServicePeriod.get("APPROVE_AND_POST_DATE") != null && StringUtils.isNotBlank(lastServicePeriod.getString("APPROVE_AND_POST_USER_ID")))
-                    return "已审批不能修改了";
 
                 adjBO.set("EFFECTIVE_DATE", PERIOD_BEGIN_DATE);
+
             } else {
 
-                String EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE APPROVE_AND_POST_DATE IS NULL and CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE <=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
+                EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE APPROVE_AND_POST_DATE IS NULL and CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE <=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
 
-                LocalDate EFFECTIVE_DATE1 = TypeUtil.convert(lastServicePeriod.get("EFFECTIVE_DATE"), LocalDate.class);
+                LocalDate EFFECTIVE_DATE1 = null;
+                if (StringUtils.isBlank(EFFECTIVE_DATE)) {
+                    EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_END_DATE) as PERIOD_END_DATE FROM BO_EU_DNCTT_CONTRACT_SERVICE_PERIOD WHERE  CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE <=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
+
+                    EFFECTIVE_DATE1 = TypeUtil.convert(EFFECTIVE_DATE, LocalDate.class);
+                    EFFECTIVE_DATE1 = EFFECTIVE_DATE1.plusDays(1);
+
+                } else {
+                    EFFECTIVE_DATE1 = TypeUtil.convert(EFFECTIVE_DATE, LocalDate.class);
+                }
 
-                if (EFFECTIVE_DATE1.isAfter(newEndDate))
-                    return "已审批不能修改了";
 
                 adjBO.set("EFFECTIVE_DATE", EFFECTIVE_DATE1);
 
@@ -480,28 +491,40 @@ public class contractServiceAdj {
         LocalDate PERIOD_BEGIN_DATE = TypeUtil.convert(lastServicePeriod.get("PERIOD_BEGIN_DATE"), LocalDate.class);
         LocalDate PERIOD_END_DATE = TypeUtil.convert(lastServicePeriod.get("PERIOD_END_DATE"), LocalDate.class);
 
-        String bindId = editServiceSale(uc, serviceId, "修改结束日期");
-
-        BO adjBO = SDK.getBOAPI().getByProcess("BO_EU_DNCTT_CONTRACT_SERVICE_PURCHASE_ADJUST", bindId);
 
         if (PERIOD_END_DATE.equals(newEndDate))
             return "无需修改";
 
+        String EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN WHERE  PAY_AMOUNT<>0 and PAY_AMOUNT is not NULL  and CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE >=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
+
+        if (StringUtils.isNotBlank(EFFECTIVE_DATE))
+            return "已审批不能修改了";
+
+
+        String bindId = editServicePurchase(uc, serviceId, "修改结束日期");
+
+        BO adjBO = SDK.getBOAPI().getByProcess("BO_EU_DNCTT_CONTRACT_SERVICE_PURCHASE_ADJUST", bindId);
+
+
         if (PERIOD_END_DATE.isAfter(newEndDate)) {
             //缩短
             if (PERIOD_BEGIN_DATE.isBefore(newEndDate)) {
-                if (lastServicePeriod.get("PAY_AMOUNT") != null && lastServicePeriod.getDouble("PAY_AMOUNT") != 0)
-                    return "已审批不能修改了";
 
                 adjBO.set("PURCHASE_START_DATE", PERIOD_BEGIN_DATE);
             } else {
 
-                String EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN WHERE  PAY_AMOUNT<>0 and PAY_AMOUNT is not NULL  and CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE <=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
+                EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_BEGIN_DATE) as PERIOD_BEGIN_DATE FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN WHERE PAY_AMOUNT<>0 and PAY_AMOUNT is not NULL and CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE <=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
+
+                LocalDate EFFECTIVE_DATE1 = null;
+                if (StringUtils.isBlank(EFFECTIVE_DATE)) {
+                    EFFECTIVE_DATE = DBSql.getString("SELECT max(PERIOD_END_DATE) as PERIOD_END_DATE FROM BO_EU_DNIVT_ORDER_PAYMENT_PLAN WHERE  CONTRACT_SERVICE_ID=? AND  PERIOD_BEGIN_DATE <=?", new Object[]{serviceId, LocalDateYYYYMMDD(newEndDate)});
 
-                LocalDate EFFECTIVE_DATE1 = TypeUtil.convert(lastServicePeriod.get("EFFECTIVE_DATE"), LocalDate.class);
+                    EFFECTIVE_DATE1 = TypeUtil.convert(EFFECTIVE_DATE, LocalDate.class);
+                    EFFECTIVE_DATE1 = EFFECTIVE_DATE1.plusDays(1);
 
-                if (EFFECTIVE_DATE1.isAfter(newEndDate))
-                    return "已审批不能修改了";
+                } else {
+                    EFFECTIVE_DATE1 = TypeUtil.convert(EFFECTIVE_DATE, LocalDate.class);
+                }
 
                 adjBO.set("PURCHASE_START_DATE", EFFECTIVE_DATE1);
 
@@ -530,9 +553,6 @@ public class contractServiceAdj {
         adjBO.set("PURCHASE_END_DATE", newEndDate);
         SDK.getBOAPI().update("BO_EU_DNCTT_CONTRACT_SERVICE_PURCHASE_ADJUST", adjBO);
 
-        //execServicePurchaseAdj(uc, adjBO.getId());
-        //DBSql.update("update bo_eu_dnctt_contract_service set PURCHASE_END_DATE=? where ID=?", new Object[]{LocalDateYYYYMMDD(newEndDate), serviceId});
-
         if (execServicePurchaseAdj(uc, adjBO.getId(), null) == false) {
             DBSql.update("delete from BO_EU_DNCTT_CONTRACT_SERVICE_PURCHASE_ADJUST where ID=? AND IS_EFFECTIVE<>'已执行'", new Object[]{adjBO.getId()});
         } else {

+ 5 - 0
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/service/PaymentPlanService.java

@@ -183,6 +183,11 @@ public class PaymentPlanService {
                 SDK.getBOAPI().createDataBO(boName, paymentPlan, uc, conn);
             }
 
+            if (boName.equals("BO_EU_DNIVT_ORDER_PAYMENT_PLAN")) {
+                createServicePaymentPlan(uc, orderId, SERVICE_ID, VENDOR_ACCOUNT_ID, orderProduct, "BO_EU_DNIVT_ORDER_PAYMENT_PLAN_MONTH", conn);
+                paySplitServiceMonth(uc, SERVICE_ID);
+            }
+
             return;
         }