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 3280232..cdae9a5 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -1,9 +1,6 @@ package cn.palmte.work.controller.backend; -import cn.palmte.work.bean.ApproveStatusEnum; -import cn.palmte.work.bean.BudgetBean; -import cn.palmte.work.bean.EstimateBean; -import cn.palmte.work.bean.ResponseMsg; +import cn.palmte.work.bean.*; import cn.palmte.work.model.*; import cn.palmte.work.service.ProjectBudgetService; import cn.palmte.work.service.ProjectEstimateService; @@ -35,11 +32,12 @@ import java.util.concurrent.ConcurrentHashMap; /** * 项目管理功能 + * * @author xiongshiyan at 2021/10/29 , contact me with email yanshixiong@126.com or phone 15208384257 */ @Controller @RequestMapping("/project") -public class ProjectController extends BaseController{ +public class ProjectController extends BaseController { private static final Logger logger = LoggerFactory.getLogger(ProjectController.class); @Autowired @@ -55,15 +53,15 @@ public class ProjectController extends BaseController{ * 项目列表 */ @RequestMapping("/list") - public String list(@RequestParam(value = "keywords",required = false) String keywords, + public String list(@RequestParam(value = "keywords", required = false) String keywords, @RequestParam(value = PAGE_NUMBER, defaultValue = DEFAULT_PAGE_NUMBER) int pageNumber, @RequestParam(value = PAGE_SIZE, defaultValue = DEFAULT_PAGE_SIZE) int pageSize, Map model) { //当前登录人的角色类型 - model.put("keywords",keywords); + model.put("keywords", keywords); model.put("deptList", deptRepository.findAll()); - ConcurrentHashMap searchInfo = getSearchInfo(keywords,model); - model.put("pager",projectService.list(searchInfo,pageNumber,pageSize)); + ConcurrentHashMap searchInfo = getSearchInfo(keywords, model); + model.put("pager", projectService.list(searchInfo, pageNumber, pageSize)); /*Page myApproveProjects = projectService.findMyApproveProjects(searchInfo, InterfaceUtil.getAdminId(), 1, Integer.MAX_VALUE); model.put("hasApproveProjects", CollectionUtil.isNotEmpty(myApproveProjects.getList()) ? "1" : "0");*/ return "admin/project_list"; @@ -73,11 +71,11 @@ public class ProjectController extends BaseController{ * 项目导出 */ @RequestMapping("/export") - public void export(@RequestParam(value = "keywords",required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException { + public void export(@RequestParam(value = "keywords", required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException { Map searchInfo = getSearchInfo(keywords); - downloadHeader(httpServletResponse , Utils.generateExcelName("项目报表"), "application/octet-stream"); - String[] headers = {"项目名称","项目类型","项目状态","审核状态","当前审核人","项目创建者","部门名称","项目开始时间","项目结束时间","最后更新时间"}; - String[] exportColumns = {"name","typeDesc","statusDesc","approveStatusDesc","approveName","creatorName","deptName","startDate","endDate","lastUpdateTime"}; + downloadHeader(httpServletResponse, Utils.generateExcelName("项目报表"), "application/octet-stream"); + String[] headers = {"项目名称", "项目类型", "项目状态", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"}; + String[] exportColumns = {"name", "typeDesc", "statusDesc", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDate", "endDate", "lastUpdateTime"}; ExportUtils.exportToExcel(headers, exportColumns, 1, 10000, httpServletResponse.getOutputStream(), (pN, pS) -> projectService.list(searchInfo, pN, pS).getList()); } @@ -91,7 +89,7 @@ public class ProjectController extends BaseController{ //TODO 根据登录人的部门 Dept one = deptRepository.findOne(1); - model.put("dept",one); + model.put("dept", one); return "admin/project_estimate_add"; } @@ -116,7 +114,7 @@ public class ProjectController extends BaseController{ @RequestMapping("/edit") - public String edit(@RequestParam("id") int id,Map model) { + public String edit(@RequestParam("id") int id, Map model) { Project project = projectService.getProject(id); model.put("project", project); EstimateBean estimateBean = projectEstimateService.getEstimate(project); @@ -125,6 +123,7 @@ public class ProjectController extends BaseController{ model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils")); return "admin/project_estimate_edit"; } + @RequestMapping("/estimateEditSave") public String estimateEditSave(Project project, EstimateBean estimateBean, Map model) { projectService.estimateEditSave(project, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT); @@ -141,7 +140,7 @@ public class ProjectController extends BaseController{ * 进项目预算页面 */ @RequestMapping("/budgetEdit") - public String budget(@RequestParam("id") int id,Map model) { + public String budget(@RequestParam("id") int id, Map model) { Project project = projectService.getProject(id); model.put("project", project); BudgetBean budgetBean = projectBudgetService.getBudget(project); @@ -175,6 +174,7 @@ public class ProjectController extends BaseController{ projectService.budgetEditSave(project, budgetBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT); return "redirect:/project/list"; } + /** * 进行项目预算保存并提交审核 */ @@ -204,6 +204,7 @@ public class ProjectController extends BaseController{ return ResponseMsg.buildSuccessMsg("成功"); } + /** * 保存成本明细 */ @@ -224,6 +225,7 @@ public class ProjectController extends BaseController{ return ResponseMsg.buildSuccessMsg("成功"); } + /** * 保存项目管理成本明细 */ @@ -244,6 +246,7 @@ public class ProjectController extends BaseController{ return ResponseMsg.buildSuccessMsg("成功"); } + /** * 保存项资金计划明细 */ @@ -266,21 +269,19 @@ public class ProjectController extends BaseController{ } - - /** * 待我审核项目列表 */ @RequestMapping("/listApprove") - public String listApprove(@RequestParam(value = "keywords",required = false) String keywords, - @RequestParam(value = PAGE_NUMBER, defaultValue = DEFAULT_PAGE_NUMBER) int pageNumber, - @RequestParam(value = PAGE_SIZE, defaultValue = DEFAULT_PAGE_SIZE) int pageSize, - Map model) { + public String listApprove(@RequestParam(value = "keywords", required = false) String keywords, + @RequestParam(value = PAGE_NUMBER, defaultValue = DEFAULT_PAGE_NUMBER) int pageNumber, + @RequestParam(value = PAGE_SIZE, defaultValue = DEFAULT_PAGE_SIZE) int pageSize, + Map model) { //当前登录人的角色类型 - model.put("keywords",keywords); + model.put("keywords", keywords); model.put("deptList", deptRepository.findAll()); - ConcurrentHashMap searchInfo = getSearchInfo(keywords,model); - model.put("pager",projectService.findMyApproveProjects(searchInfo,InterfaceUtil.getAdminId(),pageNumber,pageSize)); + ConcurrentHashMap searchInfo = getSearchInfo(keywords, model); + model.put("pager", projectService.findMyApproveProjects(searchInfo, InterfaceUtil.getAdminId(), pageNumber, pageSize)); return "admin/project_list_approve"; } @@ -288,28 +289,92 @@ public class ProjectController extends BaseController{ * 待我审核项目导出 */ @RequestMapping("/exportApprove") - public void exportApprove(@RequestParam(value = "keywords",required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException { + public void exportApprove(@RequestParam(value = "keywords", required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException { Map searchInfo = getSearchInfo(keywords); - downloadHeader(httpServletResponse , Utils.generateExcelName("待我审核项目报表"), "application/octet-stream"); - String[] headers = {"项目名称","项目类型","项目状态","审核状态","当前审核人","项目创建者","部门名称","项目开始时间","项目结束时间","最后更新时间"}; - String[] exportColumns = {"name","typeDesc","statusDesc","approveStatusDesc","approveName","creatorName","deptName","startDate","endDate","lastUpdateTime"}; + downloadHeader(httpServletResponse, Utils.generateExcelName("待我审核项目报表"), "application/octet-stream"); + String[] headers = {"项目名称", "项目类型", "项目状态", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"}; + String[] exportColumns = {"name", "typeDesc", "statusDesc", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDate", "endDate", "lastUpdateTime"}; ExportUtils.exportToExcel(headers, exportColumns, 1, 10000, httpServletResponse.getOutputStream(), (pN, pS) -> projectService.findMyApproveProjects(searchInfo, InterfaceUtil.getAdminId(), pN, pS).getList()); } + /** + * 项目查看页面 + * + * @param id + * @param model + * @return + */ + @RequestMapping("/detail") + public String detail(@RequestParam("id") int id, Map model) { + Project project = projectService.getProject(id); + EstimateBean estimateBean = projectEstimateService.getEstimate(project); + model.put("estimateBean", estimateBean); + model.put("project", project); + BudgetBean budgetBean = projectBudgetService.getBudget(project); + //预算主页面数据 + model.put("budgetBean", budgetBean); + //收入明细 + model.put("incomeDetails", projectBudgetService.getBudgetIncomeDetail(project)); + //成本明细 + model.put("costDetails", projectBudgetService.getBudgetCostDetail(project)); + //项目管理成本明细 + model.put("costProjectManageDetails", projectBudgetService.getBudgetCostProjectManageDetail(project)); + List projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project); + //资金计划明细 + model.put("projectBudgetPlanDetails", projectBudgetPlanDetails); + //资金计划总【上面汇总表】 + model.put("projectBudgetPlanDetailTotal", projectBudgetService.getProjectBudgetPlanDetailTotal(project, projectBudgetPlanDetails)); + //资金计划表中的统计信息【下面资金小表】 + model.put("underwrittenPlanStatistic", projectBudgetService.getProjectUnderwrittenPlanStatisticBean(projectBudgetPlanDetails)); + //现金表 + model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails)); + model.put("finalBean", new FinalBean()); + //freemarker可以利用的静态方法 + model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils")); + return "admin/project_detail"; + } - - - - - - - + /** + * 审核页面 + * @param id + * @param model + * @return + */ + @RequestMapping("/approve") + public String approve(@RequestParam("id") int id, Map model) { + Project project = projectService.getProject(id); + EstimateBean estimateBean = projectEstimateService.getEstimate(project); + model.put("estimateBean", estimateBean); + model.put("project", project); + BudgetBean budgetBean = projectBudgetService.getBudget(project); + //预算主页面数据 + model.put("budgetBean", budgetBean); + //收入明细 + model.put("incomeDetails", projectBudgetService.getBudgetIncomeDetail(project)); + //成本明细 + model.put("costDetails", projectBudgetService.getBudgetCostDetail(project)); + //项目管理成本明细 + model.put("costProjectManageDetails", projectBudgetService.getBudgetCostProjectManageDetail(project)); + List projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project); + //资金计划明细 + model.put("projectBudgetPlanDetails", projectBudgetPlanDetails); + //资金计划总【上面汇总表】 + model.put("projectBudgetPlanDetailTotal", projectBudgetService.getProjectBudgetPlanDetailTotal(project, projectBudgetPlanDetails)); + //资金计划表中的统计信息【下面资金小表】 + model.put("underwrittenPlanStatistic", projectBudgetService.getProjectUnderwrittenPlanStatisticBean(projectBudgetPlanDetails)); + //现金表 + model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails)); + model.put("finalBean", new FinalBean()); + //freemarker可以利用的静态方法 + model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils")); + return "admin/project_approve"; + } @InitBinder - public void initBinder(WebDataBinder webDataBinder){ + public void initBinder(WebDataBinder webDataBinder) { webDataBinder.addCustomFormatter(new DateFormatter("yyyy-MM-dd")); } } diff --git a/src/main/resources/templates/admin/project_approve.ftl b/src/main/resources/templates/admin/project_approve.ftl new file mode 100644 index 0000000..1db827c --- /dev/null +++ b/src/main/resources/templates/admin/project_approve.ftl @@ -0,0 +1,2095 @@ +<#assign base=request.contextPath /> + +<#import "../common/defaultLayout.ftl" as defaultLayout> +<@defaultLayout.layout> + + + +
+
+
+
项目审核 / + ${project.name}
+
+ +
+ +
+ +
+
+ + + + +
+
*部门名称 +
+
+ ${project.deptName} +
+
+
+ +
+
*项目计划开始时间 +
+
+ ${project.startDate} +
+
+
+
+
*项目计划结束时间 +
+
+ ${project.endDate} +
+
+
+ +
+
*项目名称 +
+
+ ${project.name} +
+
+
+ +
+
*项目类型 +
+
+ + <#if (project.type) =1> + 工程集成类 + <#elseif (project.type) =2> + 设备集成类 + <#elseif (project.type) =3> + 战略合作类 + + +
+
+
+
+
*垫资模式 +
+
+ + <#if (project.underwrittenMode) =1> + A类-不垫资(战略合作) + <#elseif (project.underwrittenMode) =2> + B类-不垫资(背靠背) + <#elseif (project.underwrittenMode) =3> + C类-垫资(账期覆盖) + <#elseif (project.underwrittenMode) =4> + D类-垫资(账期不覆盖) + + +
+
+
+ +
+
*客户名称 +
+
+ ${project.customer} +
+
+
+ +
+
*终端客户名称 +
+
+ ${project.terminalCustomer} +
+
+
+
+
*垫资利息 +
+
+ ${project.advanceInterestAmount}元 +
+
+
+
+
*垫资峰值 +
+
+ ${project.advancePeakAmount}元 +
+
+
+
+
*合同金额 +
+
+ ${project.contractAmount}元 +
+
+
+
+
*行业场景应用 +
+
+ ${project.industryScenario} +
+
+
+
+
*华智产品金额 +
+
+ ${project.huazhiProductAmount!}元 +
+
+
+
+
*紫光其他产品金额 +
+
+ ${project.ziguangOtherAmount!}元 +
+
+
+
+
*主合同收款条款 +
+
+ ${project.mainContractCollectionTerms} +
+
+
+ +
+ +
+ + +
+
+ 收入 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用含税金额(元)不含税金额(元)
收入设备类 + +
收入工程类 + +
收入服务类 + +
合计
+ 成本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用费用项目含税金额(元)不含税金额(元)
成本采购成本设备
成本采购成本施工
成本采购成本服务
成本采购成本其他
成本项目管理成本项目管理成本<#----> + / +
成本其他其他 + +
合计
+ 管理 + + + + + + + + + + + + + + + + + + +
类别费用项目不含税金额(元)
财务费用资金占用成本
公司管理费用
+ + 利润率计算 + + + + + + + + + + + + + + + + + + +
类别不含税金额(元)利润率(%)
项目毛利
项目贡献利润率
+
+ +
+ +
+
+ 收入 + 收入明细表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用含税金额(元)不含税金额(元)
收入设备类
收入工程类
收入服务类
合计
+ 成本 + 采购成本明细表 + 项目管理成本表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用费用项目含税金额(元)不含税金额(元)
成本采购成本设备
成本采购成本施工
成本采购成本服务
成本采购成本其他
成本项目管理成本项目管理成本<#----> + / +
成本其他其他
合计
+ 管理 + 资金计划表 + + + + + + + + + + + + + + + + + + +
类别费用项目不含税金额(元)
财务费用资金占用成本
公司管理费用
+ + 利润率计算 + + + + + + + + + + + + + + + + + + +
类别不含税金额(元)利润率(%)
项目毛利
项目贡献利润率
+ + 现金流量表 + 资金计划表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别金额(元)
销售商品、提供劳务收到的现金a
收到的税费返还b/ +
收到其他与经营活动有关的现金c
购买商品、接受劳务支付的现d
支付的各项税费e/ +
支付其他与经营活动有关的现金f
经营活动产生的现金流量净额g
投资活动现金流入h/
投资活动现金流出i/
投资活动产生的现金流量净额j/
融资资金流入k
还款资金流出l
筹资活动产生的现金流量净额m
货币资金净增加额n
+
+ +
+ +
+
+ 收入 + 收入明细表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用含税金额(元)不含税金额(元)
收入设备类
收入工程类
收入服务类
合计
+ 成本 + 采购成本明细表 + 项目管理成本表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用费用项目含税金额(元)不含税金额(元)
成本采购成本设备
成本采购成本施工
成本采购成本服务
成本采购成本其他
成本项目管理成本项目管理成本<#----> + / +
成本其他其他
合计
+ 管理 + 资金计划表 + + + + + + + + + + + + + + + + + + +
类别费用项目不含税金额(元)
财务费用资金占用成本
公司管理费用
+ + 利润率计算 + + + + + + + + + + + + + + + + + + +
类别不含税金额(元)利润率(%)
项目毛利
项目贡献利润率
+ + 现金流量表 + 资金计划表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别金额(元)
销售商品、提供劳务收到的现金a
收到的税费返还b/ +
收到其他与经营活动有关的现金c
购买商品、接受劳务支付的现d
支付的各项税费e/ +
支付其他与经营活动有关的现金f
经营活动产生的现金流量净额g
投资活动现金流入h/
投资活动现金流出i/
投资活动产生的现金流量净额j/
融资资金流入k
还款资金流出l
筹资活动产生的现金流量净额m
货币资金净增加额n
+
+ +
+ + +
+
+ 收入 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用概算总额(元)预算总额(元)结算总额(元)决算总额(元)
收入设备类
收入工程类
收入服务类
合计 + +
+ 成本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用费用项目概算总额(元)预算总额(元)结算总额(元)决算总额(元)
成本采购成本设备
成本采购成本施工
成本采购成本服务
成本采购成本其他
成本项目管理成本项目管理成本
成本其他其他
合计
+ 管理 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用项目概算总额(元)预算总额(元)结算总额(元)决算总额(元)
财务费用资金占用成本
公司管理费用
所得税费用//
合计 + + + +
+ + 利润率计算 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别概算总额(元)预算总额(元)结算总额(元)决算总额(元)利润率(%)
项目毛利
项目贡献利润
项目净利润
+ + 现金流量表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别预算总额(元)结算总额(元)决算总额(元)
销售商品、提供劳务收到的现金 +
收到的税费返还/ +
收到其他与经营活动有关的现金 +
购买商品、接受劳务支付的现金 +
支付的各项税费/ +
支付其他与经营活动有关的现金 +
经营活动产生的现金流量净额 + +
投资活动现金流入/ +
投资活动现金流出/
投资活动产生的现金流量净额/
融资资金流入
还款资金流出
筹资活动产生的现金流量净额
货币资金净增加额
合计 + + +
+
+ +
+ + +
+ + + <#--收入明细表弹窗--> +
+
+
新增销售收入明细表——${project.name}
+
+ + + + + + + + + + + + + + + <#if incomeDetails??> + <#list incomeDetails as incomeDetail> + + + + + + + + + + + + + + + +
类别名称单位数量单价税率(%)含税总金额(元)不含税金额(元)操作
+ + + +
+ +
+ +
+
+ <#--采购成本明细弹窗--> +
+
+
新增采购成本明细表——${project.name}
+
+ + + + + + + + + + + + + + + + <#if costDetails??> + <#list costDetails as costDetail> + + + + + + + + + + + + + + + + +
大类类别名称单位数量单价税率(%)含税总金额(元)不含税金额(元)操作
+ + + + + + + +
+ +
+ +
+
+ <#--项目管理明细表弹窗--> +
+
+
新增项目管理成本明细表——${project.name}
+
+ + + + + + + + + + + + + + + + + <#if costProjectManageDetails??> + <#list costProjectManageDetails as costProjectManageDetail> + + + + + + + + + + + + + + + + + +
财务费用类别业务项目项目明细单位数量单价总金额(元)预估计算方法预估依据备注操作
+ + readonly><#if costProjectManageDetail.deletable==1> + + +
+ +
+ +
+
+ <#--资金计划明细表弹窗--> +
+
+
新增资金计划明细表——${project.name}
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <#if projectBudgetPlanDetails??> + <#list projectBudgetPlanDetails as projectBudgetPlanDetail> + + + + + + + + + + + + + + + + + + + + +
月份设备支出工程支出经营性开支保证金支出支出合计销售收款保证金收款收款合计资金余额资金利息垫资计划还款计划操作
+ + + + + +
+ + + + + + + + + + + + + + + + + +
垫资峰值时间垫资峰值金额利率资金利息
+
+ + +
+ +
+
+ + <#--审核弹窗--> +
+
+
审核——${project.name}
+
+ +
+
+
+ +
+
审核
+ +
+ + +
+ +
+
+
+ +
+
+ *审核意见
+
+ +
+
+
+ +
+
+
+ +
+ +
+
+ + +
+ + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/templates/admin/project_detail.ftl b/src/main/resources/templates/admin/project_detail.ftl new file mode 100644 index 0000000..1958af0 --- /dev/null +++ b/src/main/resources/templates/admin/project_detail.ftl @@ -0,0 +1,1385 @@ +<#assign base=request.contextPath /> + +<#import "../common/defaultLayout.ftl" as defaultLayout> +<@defaultLayout.layout> + + + +
+
+
+
项目查看 / ${project.name}
+
+ +
+ +
+ +
+
+ + + + +
+
*部门名称
+
+ ${project.deptName} +
+
+
+ +
+
*项目计划开始时间
+
+ ${project.startDate} +
+
+
+
+
*项目计划结束时间
+
+ ${project.endDate} +
+
+
+ +
+
*项目名称
+
+ ${project.name} +
+
+
+ +
+
*项目类型
+
+ + <#if (project.type) =1> + 工程集成类 + <#elseif (project.type) =2> + 设备集成类 + <#elseif (project.type) =3> + 战略合作类 + + +
+
+
+
+
*垫资模式
+
+ + <#if (project.underwrittenMode) =1> + A类-不垫资(战略合作) + <#elseif (project.underwrittenMode) =2> + B类-不垫资(背靠背) + <#elseif (project.underwrittenMode) =3> + C类-垫资(账期覆盖) + <#elseif (project.underwrittenMode) =4> + D类-垫资(账期不覆盖) + + +
+
+
+ +
+
*客户名称
+
+ ${project.customer} +
+
+
+ +
+
*终端客户名称
+
+ ${project.terminalCustomer} +
+
+
+
+
*垫资利息
+
+ ${project.advanceInterestAmount}元 +
+
+
+
+
*垫资峰值
+
+ ${project.advancePeakAmount}元 +
+
+
+
+
*合同金额
+
+ ${project.contractAmount}元 +
+
+
+
+
*行业场景应用
+
+ ${project.industryScenario} +
+
+
+
+
*华智产品金额
+
+ ${project.huazhiProductAmount!}元 +
+
+
+
+
*紫光其他产品金额
+
+ ${project.ziguangOtherAmount!}元 +
+
+
+
+
*主合同收款条款
+
+ ${project.mainContractCollectionTerms} +
+
+
+ +
+ +
+ + +
+
+ 收入 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用含税金额(元)不含税金额(元)
收入设备类
收入工程类
收入服务类
合计
+ 成本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用费用项目含税金额(元)不含税金额(元)
成本采购成本设备
成本采购成本施工
成本采购成本服务
成本采购成本其他
成本项目管理成本项目管理成本<#---->/
成本其他其他
合计
+ 管理 + + + + + + + + + + + + + + + + + + +
类别费用项目不含税金额(元)
财务费用资金占用成本
公司管理费用
+ + 利润率计算 + + + + + + + + + + + + + + + + + + +
类别不含税金额(元)利润率(%)
项目毛利
项目贡献利润率
+
+ +
+ +
+
+ 收入 + 收入明细表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用含税金额(元)不含税金额(元)
收入设备类
收入工程类
收入服务类
合计
+ 成本 + 采购成本明细表 + 项目管理成本表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用费用项目含税金额(元)不含税金额(元)
成本采购成本设备
成本采购成本施工
成本采购成本服务
成本采购成本其他
成本项目管理成本项目管理成本<#---->/
成本其他其他
合计
+ 管理 + 资金计划表 + + + + + + + + + + + + + + + + + + +
类别费用项目不含税金额(元)
财务费用资金占用成本
公司管理费用
+ + 利润率计算 + + + + + + + + + + + + + + + + + + +
类别不含税金额(元)利润率(%)
项目毛利
项目贡献利润率
+ + 现金流量表 + 资金计划表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别金额(元)
销售商品、提供劳务收到的现金a
收到的税费返还b/
收到其他与经营活动有关的现金c
购买商品、接受劳务支付的现d
支付的各项税费e/
支付其他与经营活动有关的现金f
经营活动产生的现金流量净额g
投资活动现金流入h/
投资活动现金流出i/
投资活动产生的现金流量净额j/
融资资金流入k
还款资金流出l
筹资活动产生的现金流量净额m
货币资金净增加额n
+
+ +
+ +
+
+ 收入 + 收入明细表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用含税金额(元)不含税金额(元)
收入设备类
收入工程类
收入服务类
合计
+ 成本 + 采购成本明细表 + 项目管理成本表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用费用项目含税金额(元)不含税金额(元)
成本采购成本设备
成本采购成本施工
成本采购成本服务
成本采购成本其他
成本项目管理成本项目管理成本<#---->/
成本其他其他
合计
+ 管理 + 资金计划表 + + + + + + + + + + + + + + + + + + +
类别费用项目不含税金额(元)
财务费用资金占用成本
公司管理费用
+ + 利润率计算 + + + + + + + + + + + + + + + + + + +
类别不含税金额(元)利润率(%)
项目毛利
项目贡献利润率
+ + 现金流量表 + 资金计划表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别金额(元)
销售商品、提供劳务收到的现金a
收到的税费返还b/
收到其他与经营活动有关的现金c
购买商品、接受劳务支付的现d
支付的各项税费e/
支付其他与经营活动有关的现金f
经营活动产生的现金流量净额g
投资活动现金流入h/
投资活动现金流出i/
投资活动产生的现金流量净额j/
融资资金流入k
还款资金流出l
筹资活动产生的现金流量净额m
货币资金净增加额n
+
+ +
+ + +
+
+ 收入 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用概算总额(元)预算总额(元)结算总额(元)决算总额(元)
收入设备类
收入工程类
收入服务类
合计
+ 成本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用费用项目概算总额(元)预算总额(元)结算总额(元)决算总额(元)
成本采购成本设备
成本采购成本施工
成本采购成本服务
成本采购成本其他
成本项目管理成本项目管理成本
成本其他其他
合计
+ 管理 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用项目概算总额(元)预算总额(元)结算总额(元)决算总额(元)
财务费用资金占用成本
公司管理费用
所得税费用//
合计
+ + 利润率计算 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别概算总额(元)预算总额(元)结算总额(元)决算总额(元)利润率(%)
项目毛利
项目贡献利润
项目净利润
+ + 现金流量表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别预算总额(元)结算总额(元)决算总额(元)
销售商品、提供劳务收到的现金
收到的税费返还/
收到其他与经营活动有关的现金
购买商品、接受劳务支付的现金
支付的各项税费/
支付其他与经营活动有关的现金
经营活动产生的现金流量净额
投资活动现金流入/
投资活动现金流出/
投资活动产生的现金流量净额/
融资资金流入
还款资金流出
筹资活动产生的现金流量净额
货币资金净增加额
合计
+
+ +
+ + + + + +
+ + + + <#--收入明细表弹窗--> +
+
+
新增销售收入明细表——${project.name}
+
+ + + + + + + + + + + + + + + <#if incomeDetails??> + <#list incomeDetails as incomeDetail> + + + + + + + + + + + + + + + +
类别名称单位数量单价税率(%)含税总金额(元)不含税金额(元)操作
+ +
+ +
+ +
+
+ <#--采购成本明细弹窗--> +
+
+
新增采购成本明细表——${project.name}
+
+ + + + + + + + + + + + + + + + <#if costDetails??> + <#list costDetails as costDetail> + + + + + + + + + + + + + + + + +
大类类别名称单位数量单价税率(%)含税总金额(元)不含税金额(元)操作
+ + + +
+ +
+ +
+
+ <#--项目管理明细表弹窗--> +
+
+
新增项目管理成本明细表——${project.name}
+
+ + + + + + + + + + + + + + + + + <#if costProjectManageDetails??> + <#list costProjectManageDetails as costProjectManageDetail> + + + + + + + + + + + + + + + + + +
财务费用类别业务项目项目明细单位数量单价总金额(元)预估计算方法预估依据备注操作
+ + readonly><#if costProjectManageDetail.deletable==1> + +
+ +
+ +
+
+ <#--资金计划明细表弹窗--> +
+
+
新增资金计划明细表——${project.name}
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <#if projectBudgetPlanDetails??> + <#list projectBudgetPlanDetails as projectBudgetPlanDetail> + + + + + + + + + + + + + + + + + + + + +
月份设备支出工程支出经营性开支保证金支出支出合计销售收款保证金收款收款合计资金余额资金利息垫资计划还款计划操作
+ + + + + + + + + + + + + + + + + +
垫资峰值时间垫资峰值金额利率资金利息
+ + +
+ +
+
+ + +
+
+
+
+
+ *审核意见:
+
+
+ ${project.name} +
+
+
+
+
+
+
+ + +
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl index 298d1b6..caf00c9 100644 --- a/src/main/resources/templates/admin/project_list.ftl +++ b/src/main/resources/templates/admin/project_list.ftl @@ -219,6 +219,16 @@ onclick="location.href='${base}/project/final/edit?id=${list.id}'">发起决算 + +