diff --git a/src/main/java/cn/palmte/work/bean/CertaintyEnum.java b/src/main/java/cn/palmte/work/bean/CertaintyEnum.java index c6eb3ef..e810d6a 100644 --- a/src/main/java/cn/palmte/work/bean/CertaintyEnum.java +++ b/src/main/java/cn/palmte/work/bean/CertaintyEnum.java @@ -4,6 +4,7 @@ package cn.palmte.work.bean; * @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257 */ public enum CertaintyEnum { + PLAN_O(-1,""), PLAN_A(1,"A:基本确定中标,待签合同,合同签订中"), PLAN_B(2,"B:客户产品参数、商务评分、商务资质引导成功"), PLAN_C(3,"C:项目初期引导阶段"); diff --git a/src/main/java/cn/palmte/work/bean/IsSecondEnum.java b/src/main/java/cn/palmte/work/bean/IsSecondEnum.java index 1e8b4b1..06bb077 100644 --- a/src/main/java/cn/palmte/work/bean/IsSecondEnum.java +++ b/src/main/java/cn/palmte/work/bean/IsSecondEnum.java @@ -4,6 +4,7 @@ package cn.palmte.work.bean; * @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257 */ public enum IsSecondEnum { + PLAN_O(-1,""), PLAN_A(1,"是"), PLAN_B(2,"否"); @@ -38,6 +39,6 @@ public enum IsSecondEnum { if(isSecond == 2){ return PLAN_B; } - throw new IllegalArgumentException("Unkown isSecond:"+isSecond); + return PLAN_O; } } diff --git a/src/main/java/cn/palmte/work/bean/ResolvePlanEnum.java b/src/main/java/cn/palmte/work/bean/ResolvePlanEnum.java index 025996b..79f1d3e 100644 --- a/src/main/java/cn/palmte/work/bean/ResolvePlanEnum.java +++ b/src/main/java/cn/palmte/work/bean/ResolvePlanEnum.java @@ -4,6 +4,7 @@ package cn.palmte.work.bean; * @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257 */ public enum ResolvePlanEnum { + PLAN_O(-1,""), PLAN_A(1,"公共服务(智慧交通、雪亮工程、治安防控体系等)"), PLAN_B(2,"泛行业(智慧园区、智慧医疗、智慧工地等)"), PLAN_C(3,"其他生态"); diff --git a/src/main/java/cn/palmte/work/bean/SignTypeEnum.java b/src/main/java/cn/palmte/work/bean/SignTypeEnum.java index 782b677..120b8a8 100644 --- a/src/main/java/cn/palmte/work/bean/SignTypeEnum.java +++ b/src/main/java/cn/palmte/work/bean/SignTypeEnum.java @@ -4,6 +4,7 @@ package cn.palmte.work.bean; * @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257 */ public enum SignTypeEnum { + PLAN_O(-1,""), PLAN_A(1,"紫光汇智直接投标"); private int signType; @@ -34,6 +35,6 @@ public enum SignTypeEnum { if(signType == 1){ return PLAN_A; } - throw new IllegalArgumentException("Unkown signType:"+signType); + return PLAN_O; } } diff --git a/src/main/java/cn/palmte/work/bean/UnderwrittenModeEnum.java b/src/main/java/cn/palmte/work/bean/UnderwrittenModeEnum.java index a2c8eac..f94efb0 100644 --- a/src/main/java/cn/palmte/work/bean/UnderwrittenModeEnum.java +++ b/src/main/java/cn/palmte/work/bean/UnderwrittenModeEnum.java @@ -4,6 +4,7 @@ package cn.palmte.work.bean; * @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257 */ public enum UnderwrittenModeEnum { + PLAN_O(-1,""), PLAN_A(1,"A类-不垫资(战略合作)"), PLAN_B(2,"B类-不垫资(背靠背)"), PLAN_C(3,"C类-垫资(账期覆盖)"), diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java index 18fbdcd..a52e145 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -130,7 +130,7 @@ public class ProjectController extends BaseController { String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "垫资利息", "垫资峰值", "项目合同金额", "项目毛利", "项目毛利率", "项目把握度", "汇智产品金额", "华智产品金额", "华三产品金额", "其他产品金额", "项目状态", "行业场景应用", "解决方案", "客户名称", "终端客户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "签单方式", "合作对象", "项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"}; - String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeDesc", "advanceInterestAmount", "advancePeakAmount", "contractRound", "grossProfit", "grossProfitMargin", "certaintyStr", "huizhiRound", "huazhiRound", + String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitRound", "grossProfitMarginRound", "certaintyStr", "huizhiRound", "huazhiRound", "huasanRound", "ziguangRound", "statusDesc", "industryScenario", "resolvePlan", "customer", "terminalCustomer", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "collaborator", "principal", "valueRisk", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDateYM", "endDateYM", "lastUpdateTime"}; ExportUtils.exportToExcel(headers, exportColumns, 1, 10000, @@ -149,9 +149,9 @@ public class ProjectController extends BaseController { ServletOutputStream outputStream = response.getOutputStream(); ExportExcelUtils exportExcelUtils = new ExportExcelUtils(); String[] headers0 = {"部门名称", "项目编号", "项目名称", "项目类型", "项目计划开始时间", "项目计划结束时间", "垫资模式", "合作对象", "垫资利息", "垫资峰值", "合同金额", "项目毛利", "项目毛利率", "华智产品金额", "汇智产品金额", "华三产品金额", "其他产品金额", "项目把握度", "行业场景应用", "项目解决方案", "客户名称", "终端客户名称", "价值及风险"}; - String[] columns0 = {"deptName", "projectNo", "name", "typeDesc", "startDate", "endDate", "underwrittenModeStr", "collaborator", "advanceInterestAmount", "advancePeakAmount", "contractAmount", "grossProfit", "grossProfitMargin", "huazhiProductAmount", "huizhiProductAmount", "huasanProductAmount", "ziguangOtherAmount", "certaintyStr", "industryScenario", "resolvePlanStr", "customer", "terminalCustomer", "valueRisk"}; + String[] columns0 = {"deptName", "projectNo", "name", "typeDesc", "startDate", "endDate", "underwrittenModeStr", "collaborator", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitRound", "grossProfitMarginRound", "huazhiRound", "huizhiRound", "huasanRound", "ziguangRound", "certaintyStr", "industryScenario", "resolvePlanStr", "customer", "terminalCustomer", "valueRisk"}; exportExcelUtils.exportProjectExcel(headers0, columns0, project, "yyyy-MM-dd", 0, "项目基本信息", outputStream); - String[] headers1 = {"项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "签单方式", "主合同收款条款", "主合具体解决方案", "计收计划"}; + String[] headers1 = {"项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "签单方式", "主合同收款条款", "主合同具体解决方案", "计收计划"}; String[] columns1 = {"principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection"}; exportExcelUtils.exportProjectExcel(headers1, columns1, project, "yyyy-MM-dd", 0, "项目其他信息", outputStream); BudgetBean budgetBean = projectBudgetService.getBudget(project); diff --git a/src/main/java/cn/palmte/work/service/ProjectService.java b/src/main/java/cn/palmte/work/service/ProjectService.java index ef7b001..24a4368 100644 --- a/src/main/java/cn/palmte/work/service/ProjectService.java +++ b/src/main/java/cn/palmte/work/service/ProjectService.java @@ -186,6 +186,10 @@ public class ProjectService { public Project addProject(Project project, Admin admin, ApproveStatusEnum approveStatusEnum) { String projectNo = numSeqService.generate(); + if (project.getUnderwrittenMode() != 1) { + project.setCollaborator(null); + project.setCollaboratorUrl(null); + } project.setProjectNo(projectNo); project.setTypeDesc(TypeEnum.parseType(project.getType()).getTypeDesc()); project.setUnderwrittenModeStr(UnderwrittenModeEnum.parseUnderwrittenMode(project.getUnderwrittenMode()).getUnderwrittenModeStr()); @@ -238,8 +242,13 @@ public class ProjectService { projectInDb.setResolvePlan(project.getResolvePlan()); projectInDb.setResolvePlanStr(ResolvePlanEnum.parseResolvePlan(project.getResolvePlan()).getResolvePlanStr()); - projectInDb.setCollaborator(project.getCollaborator()); - projectInDb.setCollaboratorUrl(project.getCollaboratorUrl()); + if (project.getUnderwrittenMode() != 1) { + projectInDb.setCollaborator(null); + projectInDb.setCollaboratorUrl(null); + } else { + projectInDb.setCollaborator(project.getCollaborator()); + projectInDb.setCollaboratorUrl(project.getCollaboratorUrl()); + } projectInDb.setGrossProfit(project.getGrossProfit()); projectInDb.setGrossProfitMargin(project.getGrossProfitMargin()); projectInDb.setStartDate(project.getStartDate()); diff --git a/src/main/resources/static/assets/js/project_budget.js b/src/main/resources/static/assets/js/project_budget.js index 630e907..795e435 100644 --- a/src/main/resources/static/assets/js/project_budget.js +++ b/src/main/resources/static/assets/js/project_budget.js @@ -88,13 +88,7 @@ $(function () { $("#saveDraft").attr('disabled', true); $("#collaboratorUrl").val($("#collaboratorUrl_span").text()); - - checkName(); - if (result == 1) { - window.confirm('项目名称已存在'); - $("#saveDraft").attr('disabled', false); - return; - } + checkIfFillIn(); var dataIncome = collectData("am-modal-prompt-input-income"); if (dataIncome.length <= 0) { @@ -207,13 +201,7 @@ $(function () { $("#saveApprove").attr('disabled', true); $("#collaboratorUrl").val($("#collaboratorUrl_span").text()); - - checkName(); - if (result == 1) { - window.confirm('项目名称已存在'); - $("#saveApprove").attr('disabled', false); - return; - } + checkIfFillIn(); var dataIncome = collectData("am-modal-prompt-input-income"); if (dataIncome.length <= 0) { @@ -338,6 +326,182 @@ $(function () { }; }); +//立项表填写检查 +function checkIfFillIn() { + var name = $("#name").val(); + var startTime = $("#startDate").val(); + var endTime = $("#endDate").val(); + var underwrittenMode = $("#underwrittenMode").val(); + var collaborator = $("#collaborator").val(); + var advanceInterestAmount = $("#advanceInterestAmount").val(); + var advancePeakAmount = $("#advancePeakAmount").val(); + var contractAmount = $("#contractAmount").val(); + var grossProfit = $("#grossProfit").val(); + var grossProfitMargin = $("#grossProfitMargin").val(); + var huizhiProductAmount = $("#huizhiProductAmount").val(); + var huazhiProductAmount = $("#huazhiProductAmount").val(); + var huasanProductAmount = $("#huasanProductAmount").val(); + var ziguangOtherAmount = $("#ziguangOtherAmount").val(); + var industryScenario = $("#industryScenario").val(); + var customer = $("#customer").val(); + var terminalCustomer = $("#terminalCustomer").val(); + var valueRisk = $("#valueRisk").val(); + + // var incomeDeviceTaxInclude = $("#incomeDeviceTaxInclude").val(); + // var incomeDeviceTaxExclude = $("#incomeDeviceTaxExclude").val(); + // var incomeEngineerTaxInclude = $("#incomeEngineerTaxInclude").val(); + // var incomeEngineerTaxExclude = $("#incomeEngineerTaxExclude").val(); + // var incomeServiceTaxInclude = $("#incomeServiceTaxInclude").val(); + // var incomeServiceTaxExclude = $("#incomeServiceTaxExclude").val(); + // var costPurchaseDeviceTaxInclude = $("#costPurchaseDeviceTaxInclude").val(); + // var costPurchaseDeviceTaxExclude = $("#costPurchaseDeviceTaxExclude").val(); + // var costPurchaseBuildTaxInclude = $("#costPurchaseBuildTaxInclude").val(); + // var costPurchaseBuildTaxExclude = $("#costPurchaseBuildTaxExclude").val(); + // var costPurchaseServiceTaxInclude = $("#costPurchaseServiceTaxInclude").val(); + // var costPurchaseServiceTaxExclude = $("#costPurchaseServiceTaxExclude").val(); + // var costPurchaseOtherTaxInclude = $("#costPurchaseOtherTaxInclude").val(); + // var costPurchaseOtherTaxExclude = $("#costPurchaseOtherTaxExclude").val(); + // var costCompanyManageTaxExclude = $("#costCompanyManageTaxExclude ").val(); + // var costProjectManageTaxExclude = $("#costProjectManageTaxExclude ").val(); + // var costOtherOtherTaxInclude = $("#costOtherOtherTaxInclude").val(); + // var costOtherOtherTaxExclude = $("#costOtherOtherTaxExclude").val(); + + if (name.length <= 0) { + window.confirm('项目名称不能为空'); + check = 1; + return; + } + + checkName(); + if (result == 1) { + window.confirm('项目名称已存在'); + check = 1; + return; + } + + if (startTime.length <= 0) { + window.confirm('项目计划开始时间不能为空'); + check = 1; + return; + } + + if (endTime.length <= 0) { + window.confirm('项目计划结束时间不能为空'); + check = 1; + return; + } + + if (startTime > endTime) { + window.confirm('开始日期应早于结束日期'); + check = 1; + return; + } + + // if (projectNo.length <= 0) { + // window.confirm('项目编号不能为空'); + // check = 1; + // return; + // } + // + // checkProjectNo(); + // if (projectNoResult == 1) { + // window.confirm('项目编号已存在'); + // check = 1; + // return; + // } + + if (underwrittenMode == 1 && (collaborator == undefined || collaborator.length <= 0)) { + window.confirm('合作对象不能为空'); + check = 1; + return; + } + + + if (advanceInterestAmount == undefined || advanceInterestAmount.length <= 0) { + window.confirm('垫资利息不能为空'); + check = 1; + return; + } + + if (advancePeakAmount == undefined || advancePeakAmount.length <= 0) { + window.confirm('垫资峰值不能为空'); + check = 1; + return; + } + + if (contractAmount == undefined || contractAmount.length <= 0) { + window.confirm('合同金额不能为空'); + check = 1; + return; + } + + if (grossProfit == undefined || grossProfit.length <= 0) { + window.confirm('项目毛利不能为空'); + check = 1; + return; + } + + if (grossProfitMargin == undefined || grossProfitMargin.length <= 0) { + window.confirm('项目毛利率不能为空'); + check = 1; + return; + } + + if (huizhiProductAmount == undefined || huizhiProductAmount.length <= 0) { + window.confirm('汇智产品金额不能为空'); + check = 1; + return; + } + + if (huazhiProductAmount == undefined || huazhiProductAmount.length <= 0) { + window.confirm('华智产品金额不能为空'); + check = 1; + return; + } + + if (huasanProductAmount == undefined || huasanProductAmount.length <= 0) { + window.confirm('华三产品金额不能为空'); + check = 1; + return; + } + + if (ziguangOtherAmount == undefined || ziguangOtherAmount.length <= 0) { + window.confirm('其他产品金额不能为空'); + check = 1; + return; + } + + if (industryScenario == undefined || industryScenario.length <= 0) { + window.confirm('行业应用场景不能为空'); + check = 1; + return; + } + + // if (mainContractCollectionTerms == undefined || mainContractCollectionTerms.length <= 0) { + // window.confirm('主合同收款条款不能为空'); + // check = 1; + // return; + // } + + if (customer == undefined || customer.length <= 0) { + window.confirm('客户名称不能为空'); + check = 1; + return; + } + + if (terminalCustomer == undefined || terminalCustomer.length <= 0) { + window.confirm('终端客户名称不能为空'); + check = 1; + return; + } + + if (valueRisk == undefined || valueRisk.length <= 0) { + window.confirm('价值及风险不能为空'); + check = 1; + return; + } +} + /** * 一维数组变二维数组 * @param list diff --git a/src/main/resources/templates/admin/monthly_settle_info.ftl b/src/main/resources/templates/admin/monthly_settle_info.ftl index 64e0c2d..0a72d6b 100644 --- a/src/main/resources/templates/admin/monthly_settle_info.ftl +++ b/src/main/resources/templates/admin/monthly_settle_info.ftl @@ -124,15 +124,15 @@