diff --git a/src/main/java/cn/palmte/work/controller/backend/AccountController.java b/src/main/java/cn/palmte/work/controller/backend/AccountController.java index aba1695..3036d9d 100644 --- a/src/main/java/cn/palmte/work/controller/backend/AccountController.java +++ b/src/main/java/cn/palmte/work/controller/backend/AccountController.java @@ -223,7 +223,7 @@ public class AccountController extends BaseController { 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[] headers = {"工号", "手机号码", "姓名", "常驻地", "一级部门", "直接主管", "职位", "角色名称", "公司邮件地址"}; String[] exportColumns = {"userName", "telephone", "realName", "workLocation", "deptName", "directManager", "positionName", "roleName", "companyEmail"}; ExportUtils.exportToExcel(headers, exportColumns, 1, 10000, httpServletResponse.getOutputStream(), (pN, pS) -> accountService.list(searchInfo, pN, pS).getList()); @@ -235,7 +235,7 @@ public class AccountController extends BaseController { @RequestMapping("/template") public void template(HttpServletResponse response) throws Exception { - String[] headers = new String[]{"工号", "手机号码", "姓名", "常驻地", "一级部门", "直接主管", "职位", "所属角色", "公司邮件地址"}; + String[] headers = new String[]{"工号", "手机号码", "姓名", "常驻地", "一级部门", "直接主管", "职位", "角色名称", "公司邮件地址"}; downloadHeader(response, Utils.generateExcelName("人员信息批量导入模板")); ExportUtils exportUtils = new ExportUtils(headers); exportUtils.write(response.getOutputStream()); 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 9624f1b..4b19265 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -541,4 +541,16 @@ public class ProjectController extends BaseController { } return ResponseMsg.buildSuccessMsg("成功"); } + + /** + * 项目提交审核 + */ + @RequestMapping("/saveApprove") + @ResponseBody + public ResponseMsg saveApprove(int id) throws Exception { + Project project = projectRepository.findOne(id); + projectService.saveApprove(project, InterfaceUtil.getAdmin()); + + return ResponseMsg.buildSuccessMsg("提交成功"); + } } diff --git a/src/main/java/cn/palmte/work/model/Project.java b/src/main/java/cn/palmte/work/model/Project.java index 296777c..3702164 100644 --- a/src/main/java/cn/palmte/work/model/Project.java +++ b/src/main/java/cn/palmte/work/model/Project.java @@ -125,7 +125,7 @@ public class Project { @Column(name = "huazhi_product_amount") private BigDecimal huazhiProductAmount; /** - *紫光其他产品金额 + *其他产品金额 */ @Column(name = "ziguang_other_amount") private BigDecimal ziguangOtherAmount; @@ -134,6 +134,16 @@ public class Project { */ @Column(name = "main_contract_collection_terms") private String mainContractCollectionTerms; + /** + * 价值及风险 + */ + @Column(name = "value_risk") + private String valueRisk; + /** + * 其他中的小类名称 + */ + @Column(name = "other_name") + private String otherName; /** * 项目创建时的配置的阀值 */ @@ -366,6 +376,22 @@ public class Project { this.mainContractCollectionTerms = mainContractCollectionTerms; } + public String getValueRisk() { + return valueRisk; + } + + public void setValueRisk(String valueRisk) { + this.valueRisk = valueRisk; + } + + public String getOtherName() { + return otherName; + } + + public void setOtherName(String otherName) { + this.otherName = otherName; + } + public BigDecimal getProjectContributionProfitRateThreshold() { return projectContributionProfitRateThreshold; } diff --git a/src/main/java/cn/palmte/work/service/AccountService.java b/src/main/java/cn/palmte/work/service/AccountService.java index 097bffc..9dfa168 100644 --- a/src/main/java/cn/palmte/work/service/AccountService.java +++ b/src/main/java/cn/palmte/work/service/AccountService.java @@ -103,7 +103,7 @@ public class AccountService { Admin oldAdmin = adminRepository.findOne(userId); Dept dept = deptRepository.findOne(admin.getDeptId()); SysRole sysRole = sysRoleRepository.findOne(admin.getRoleId()); - UserPosition userPosition = userPositionRepository.findOne(admin.getPositionId()); +// UserPosition userPosition = userPositionRepository.findOne(admin.getPositionId()); if (oldAdmin == null) { oldAdmin = new Admin(); String userName = admin.getUserName(); @@ -115,7 +115,7 @@ public class AccountService { oldAdmin.setRealName(admin.getRealName()); oldAdmin.setDeptName(dept.getName()); - oldAdmin.setPositionName(userPosition.getPositionName()); + oldAdmin.setPositionName(admin.getPositionName()); oldAdmin.setPassword(newPassword); oldAdmin.setSalt(salt); oldAdmin.setEnabled(1); @@ -126,10 +126,10 @@ public class AccountService { } else { String userName = admin.getUserName(); oldAdmin.setDeptId(admin.getDeptId()); - oldAdmin.setPositionId(admin.getPositionId()); +// oldAdmin.setPositionId(admin.getPositionId()); oldAdmin.setRealName(admin.getRealName()); oldAdmin.setDeptName(dept.getName()); - oldAdmin.setPositionName(userPosition.getPositionName()); + oldAdmin.setPositionName(admin.getPositionName()); //oldAdmin.setEmpCode(admin.getEmpCode()); oldAdmin.setWorkLocation(admin.getWorkLocation()); oldAdmin.setDirectManager(admin.getDirectManager()); @@ -362,15 +362,15 @@ public class AccountService { throw new Exception("职位不能为空"); } - UserPosition userPosition = userPositionRepository.findByPositionNameEquals(positionName.toString()); +// UserPosition userPosition = userPositionRepository.findByPositionNameEquals(positionName.toString()); +// +// if (null == userPosition) { +// throw new Exception("职位" + positionName.toString() + "不存在"); +// } - if (null == userPosition) { - throw new Exception("职位" + positionName.toString() + "不存在"); - } - - Object sysRole = m.get("所属角色"); + Object sysRole = m.get("所属角色名称"); if (sysRole == null || StrKit.isBlank(sysRole.toString())) { - throw new Exception("所属角色不能为空"); + throw new Exception("所属角色名称不能为空"); } SysRole role = sysRoleRepository.findByNameEqualsAndDeletedEquals(sysRole.toString(), 0); @@ -393,8 +393,8 @@ public class AccountService { admin.setDeptId(dept.getId()); admin.setDeptName(dept.getName()); admin.setDirectManager(directManager.toString()); - admin.setPositionId(userPosition.getId()); - admin.setPositionName(userPosition.getPositionName()); +// admin.setPositionId(userPosition.getId()); + admin.setPositionName(positionName.toString()); admin.setRoleId(role.getId()); admin.setRoleName(role.getName()); admin.setCompanyEmail(companyEmail.toString()); diff --git a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java index 99b51d6..a7245ce 100644 --- a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java +++ b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java @@ -755,6 +755,11 @@ public class ProjectBudgetService { budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING); + budgetApprove(approveStatusBudget, projectInDb, admin); + } + + public void budgetApprove(Integer approveStatusBudget, Project projectInDb, Admin admin) throws Exception { + if(null != approveStatusBudget && ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == approveStatusBudget){ //审核不通过的情况下重新编辑后就完成当前任务 @@ -769,6 +774,7 @@ public class ProjectBudgetService { projectInstanceService.startBudgetProcessInstance(projectInDb, admin); } } + /** * 编辑预算保存项目 */ diff --git a/src/main/java/cn/palmte/work/service/ProjectEstimateService.java b/src/main/java/cn/palmte/work/service/ProjectEstimateService.java index 2cae490..8431cc5 100644 --- a/src/main/java/cn/palmte/work/service/ProjectEstimateService.java +++ b/src/main/java/cn/palmte/work/service/ProjectEstimateService.java @@ -261,6 +261,10 @@ public class ProjectEstimateService { estimateEditSave(project, projectInDb, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING); + estimateApprove(approveStatusEstimate, projectInDb, admin); + } + + public void estimateApprove(Integer approveStatusEstimate, Project projectInDb, Admin admin) throws Exception { if(null != approveStatusEstimate && ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == approveStatusEstimate){ //审核不通过的情况下重新编辑后就完成当前任务【此时任务节点在第一个,也就是发起审批】 @@ -275,6 +279,7 @@ public class ProjectEstimateService { projectInstanceService.startEstimateProcessInstance(projectInDb, admin); } } + /** * 编辑概算保存项目 */ diff --git a/src/main/java/cn/palmte/work/service/ProjectService.java b/src/main/java/cn/palmte/work/service/ProjectService.java index 52751a4..b10e395 100644 --- a/src/main/java/cn/palmte/work/service/ProjectService.java +++ b/src/main/java/cn/palmte/work/service/ProjectService.java @@ -42,7 +42,10 @@ public class ProjectService { private AdminRepository adminRepository; @Autowired private ProjectEstimateService projectEstimateService; - + @Autowired + private ProjectInstanceService projectInstanceService; + @Autowired + private ProjectBudgetService projectBudgetService; private QueryHelper getQueryHelper(Map searchInfo) { /*"CASE p.type WHEN 1 THEN '工程集成类' WHEN 2 THEN '设备集成类' WHEN 3 THEN '战略合作类' ELSE '未知' AS typeDesc," + @@ -186,6 +189,8 @@ public class ProjectService { projectInDb.setHuazhiProductAmount(project.getHuazhiProductAmount()); projectInDb.setZiguangOtherAmount(project.getZiguangOtherAmount()); projectInDb.setMainContractCollectionTerms(project.getMainContractCollectionTerms()); + projectInDb.setValueRisk(project.getValueRisk()); + projectInDb.setOtherName(project.getOtherName()); /// projectInDb.setApproveStatusEstimate(approveStatusEnum.getApproveStatus()); @@ -337,4 +342,27 @@ public class ProjectService { return ResponseMsg.buildSuccessMsg("删除成功"); } + + public void saveApprove(Project project, Admin admin) throws Exception { + if (project.getApproveStatusEstimate() == ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()) { + Integer approveStatusEstimate = project.getApproveStatusEstimate(); + + projectEstimateService.estimateApprove(approveStatusEstimate, project, admin); + project.setApproveStatusEstimate(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus()); + } else if (project.getApproveStatusBudget() == ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()) { + Integer approveStatusBudget = project.getApproveStatusBudget(); + + projectBudgetService.budgetApprove(approveStatusBudget, project, admin); + project.setApproveStatusBudget(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus()); + } else if (project.getApproveStatusSettle() == ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()) { + projectInstanceService.startSettleProcessInstance(project, InterfaceUtil.getAdmin()); + project.setApproveStatusSettle(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus()); + } else if (project.getApproveStatusFinal() == ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()) { + projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin()); + project.setApproveStatusFinal(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus()); + } else { + return ; + } + projectRepository.save(project); + } } diff --git a/src/main/java/cn/palmte/work/service/StatisticsService.java b/src/main/java/cn/palmte/work/service/StatisticsService.java index 6855bea..dda3cfc 100644 --- a/src/main/java/cn/palmte/work/service/StatisticsService.java +++ b/src/main/java/cn/palmte/work/service/StatisticsService.java @@ -8,6 +8,7 @@ import cn.palmte.work.model.*; import cn.palmte.work.utils.InterfaceUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import top.jfunc.common.db.utils.Pagination; import top.jfunc.common.utils.CollectionUtil; import java.math.BigDecimal; @@ -47,6 +48,12 @@ public class StatisticsService { @Autowired private ProjectVisibleRepository projectVisibleRepository; + @Autowired + private SysRoleRepository sysRoleRepository; + + @Autowired + private Pagination pagination; + /** * 分月项目统计 获取主要指标数据、损益表 * @@ -67,9 +74,30 @@ public class StatisticsService { include.setTitle("预算金额(含税)"); exclude.setTitle("预算金额(不含税)"); - int adminId = InterfaceUtil.getAdminId(); - List projectIds = projectVisibleRepository.findProjectIdByTypeAndTid(ProjectVisible.TYPE_USER, adminId); - + Admin admin = InterfaceUtil.getAdmin(); + List projectList = null; + //项目可见性,根据角色和人员id + int roleId = admin.getRoleId(); + Integer adminId = admin.getId(); + String sql = "select proj.id, proj.name, proj.approve_status_settle from project_settle_cost psc left join project proj on psc.project_id = proj.id "; + //自己创建的肯定能看见,配置的可以看见,系统管理员可以看见 + SysRole sysRole = sysRoleRepository.findSysRoleById(roleId); + if(SysRole.ROLE_TYPE_SYSTEM != sysRole.getType()){ + sql = sql + " where (proj.creator_id=? OR proj.id in (SELECT pv1.project_id FROM project_visible pv1 WHERE pv1.type=1 AND pv1.tid=? UNION SELECT pv2.project_id FROM project_visible pv2 WHERE pv2.type=2 AND pv2.tid=?)) group by proj.id order by proj.id asc"; + projectList = pagination.find(sql, Project.class, adminId, roleId, adminId); + } else { + sql = sql + " group by proj.id order by proj.id asc"; + projectList = pagination.find(sql, Project.class); + } + List projects = new ArrayList<>(); + List projectIds = new ArrayList<>(); + for (Project project : projectList) { + if (project.getApproveStatusSettle() == 2) { + projects.add(project); + projectIds.add(project.getId()); + continue; + } + } if(CollectionUtil.isEmpty(projectIds)){ return statisticsBean; diff --git a/src/main/resources/templates/admin/account_input.ftl b/src/main/resources/templates/admin/account_input.ftl index bdfdfd4..d2f2fb6 100644 --- a/src/main/resources/templates/admin/account_input.ftl +++ b/src/main/resources/templates/admin/account_input.ftl @@ -140,23 +140,20 @@ * 职位 -
- +
+
+
* - 角色 + 角色名称
@@ -149,7 +149,7 @@ 一级部门 直接主管 职位 - 所属角色 + 角色名称 公司邮件地址 操作 diff --git a/src/main/resources/templates/admin/month_statistics.ftl b/src/main/resources/templates/admin/month_statistics.ftl index d76560b..cb53483 100644 --- a/src/main/resources/templates/admin/month_statistics.ftl +++ b/src/main/resources/templates/admin/month_statistics.ftl @@ -5,7 +5,7 @@
项目统计 / - 分月项目统计
+ 项目分月统计
diff --git a/src/main/resources/templates/admin/project_approve.ftl b/src/main/resources/templates/admin/project_approve.ftl index b78f971..151041b 100644 --- a/src/main/resources/templates/admin/project_approve.ftl +++ b/src/main/resources/templates/admin/project_approve.ftl @@ -199,20 +199,20 @@
-
-
*垫资利息
-
- ${Utils.format(project.advanceInterestAmount)}元 -
-
-
-
-
*垫资峰值
-
- ${Utils.format(project.advancePeakAmount)}元 -
-
-
+<#--
--> +<#--
*垫资利息
--> +<#--
--> +<#-- ${Utils.format(project.advanceInterestAmount)}元--> +<#--
--> +<#--
--> +<#--
--> +<#--
--> +<#--
*垫资峰值
--> +<#--
--> +<#-- ${Utils.format(project.advancePeakAmount)}元--> +<#--
--> +<#--
--> +<#--
-->
*合同金额
@@ -235,7 +235,7 @@
-
紫光其他产品金额
+
其他产品金额
${Utils.format(project.ziguangOtherAmount)}
@@ -244,11 +244,17 @@
*主合同收款条款
- ${project.mainContractCollectionTerms} +
${project.mainContractCollectionTerms!}
+
+
+
+
+
*价值及风险
+
+
${project.valueRisk!}
-
@@ -348,7 +354,7 @@ 成本 其他 - 其他 + ${project.otherName!} @@ -387,17 +393,22 @@ 类别 - 不含税金额(元) - 利润率(%) + - 项目毛利 + 项目毛利(元) + + + 项目毛利率(%) - 项目贡献利润率 + 项目贡献利润(元) + + + 项目贡献利润率(%) @@ -503,7 +514,7 @@ 成本 其他 - 其他 + ${project.otherName!} @@ -543,17 +554,22 @@ 类别 - 不含税金额(元) - 利润率(%) + - 项目毛利 + 项目毛利(元) + + + 项目毛利率(%) - 项目贡献利润率 + 项目贡献利润(元) + + + 项目贡献利润率(%) @@ -766,7 +782,7 @@ 成本 其他 - 其他 + ${project.otherName!} @@ -1118,7 +1134,7 @@ 成本 其他 - 其他 + ${project.otherName!} diff --git a/src/main/resources/templates/admin/project_budget_edit.ftl b/src/main/resources/templates/admin/project_budget_edit.ftl index a45a2c7..2eaf40e 100644 --- a/src/main/resources/templates/admin/project_budget_edit.ftl +++ b/src/main/resources/templates/admin/project_budget_edit.ftl @@ -95,23 +95,19 @@
*项目类型
- + value="工程集成类"<#elseif project.type=2>value="设备集成类"<#else>value="战略合作类" + required readonly/>
*垫资模式
- + value="A类-不垫资(战略合作)"<#elseif project.underwrittenMode=2>value="B类-不垫资(背靠背)" + <#elseif project.underwrittenMode=3>value="C类-垫资(账期覆盖)"<#else>value="D类-垫资(账期不覆盖)" />
@@ -134,24 +130,24 @@
-
-
*垫资利息
-
- -
-
-
-
-
*垫资峰值
-
- -
-
-
+<#--
--> +<#--
*垫资利息
--> +<#--
--> +<#-- +<#-- name="advanceInterestAmount" placeholder="单位(元)" maxlength="20"--> +<#-- value="${Utils.format(project.advanceInterestAmount)}" required />--> +<#--
--> +<#--
--> +<#--
--> +<#--
--> +<#--
*垫资峰值
--> +<#--
--> +<#-- +<#-- name="advancePeakAmount" placeholder="单位(元)" maxlength="20"--> +<#-- value="${Utils.format(project.advancePeakAmount)}" required />--> +<#--
--> +<#--
--> +<#--
-->
*合同金额
@@ -180,9 +176,9 @@
-
紫光其他产品金额
+
其他产品金额
-
@@ -191,9 +187,20 @@
*主合同收款条款
- + +
+
+
+
+
*价值及风险
+
+
@@ -289,7 +296,8 @@ 成本 其他 - 其他 + @@ -329,17 +337,22 @@ 类别 - 不含税金额(元) - 利润率(%) + - 项目毛利 + 项目毛利(元) + + + 项目毛利率(%) - 项目贡献利润率 + 项目贡献利润(元) + + + 项目贡献利润率(%) diff --git a/src/main/resources/templates/admin/project_estimate_add.ftl b/src/main/resources/templates/admin/project_estimate_add.ftl index 3b25f81..0e28f44 100644 --- a/src/main/resources/templates/admin/project_estimate_add.ftl +++ b/src/main/resources/templates/admin/project_estimate_add.ftl @@ -109,24 +109,24 @@
-
-
*垫资利息
-
- -
-
-
-
-
*垫资峰值
-
- -
-
-
+<#--
--> +<#--
*垫资利息
--> +<#--
--> +<#-- +<#-- name="advanceInterestAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"--> +<#-- value="" required />--> +<#--
--> +<#--
--> +<#--
--> +<#--
--> +<#--
*垫资峰值
--> +<#--
--> +<#-- +<#-- name="advancePeakAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"--> +<#-- value="" required />--> +<#--
--> +<#--
--> +<#--
-->
*合同金额
@@ -164,13 +164,23 @@
*主合同收款条款
- + +
+
+
+
+
*价值及风险
+
+
-
@@ -259,7 +269,8 @@ 成本 其他 - 其他 + @@ -298,17 +309,22 @@ 类别 - 不含税金额(元) - 利润率(%) + - 项目毛利 + 项目毛利(元) + + + 项目毛利率(%) - 项目贡献利润率 + 项目贡献利润(元) + + + 项目贡献利润率(%) diff --git a/src/main/resources/templates/admin/project_estimate_edit.ftl b/src/main/resources/templates/admin/project_estimate_edit.ftl index 6fb9017..4d6c866 100644 --- a/src/main/resources/templates/admin/project_estimate_edit.ftl +++ b/src/main/resources/templates/admin/project_estimate_edit.ftl @@ -116,24 +116,24 @@
-
-
*垫资利息
-
- -
-
-
-
-
*垫资峰值
-
- -
-
-
+<#--
--> +<#--
*垫资利息
--> +<#--
--> +<#-- +<#-- name="advanceInterestAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"--> +<#-- value="${Utils.format(project.advanceInterestAmount)}" required />--> +<#--
--> +<#--
--> +<#--
--> +<#--
--> +<#--
*垫资峰值
--> +<#--
--> +<#-- +<#-- name="advancePeakAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"--> +<#-- value="${Utils.format(project.advancePeakAmount)}" required />--> +<#--
--> +<#--
--> +<#--
-->
*合同金额
@@ -171,13 +171,23 @@
*主合同收款条款
- + +
+
+
+
+
*价值及风险
+
+
-
@@ -266,7 +276,8 @@ 成本 其他 - 其他 + @@ -305,17 +316,22 @@ 类别 - 不含税金额(元) - 利润率(%) + - 项目毛利 + 项目毛利(元) + + + 项目毛利率(%) - 项目贡献利润率 + 项目贡献利润(元) + + + 项目贡献利润率(%) diff --git a/src/main/resources/templates/admin/project_final_add.ftl b/src/main/resources/templates/admin/project_final_add.ftl index 9e919b2..1e058c9 100644 --- a/src/main/resources/templates/admin/project_final_add.ftl +++ b/src/main/resources/templates/admin/project_final_add.ftl @@ -139,7 +139,8 @@ 成本 其他 - 其他 + diff --git a/src/main/resources/templates/admin/project_final_edit.ftl b/src/main/resources/templates/admin/project_final_edit.ftl index d760d91..c75dcd4 100644 --- a/src/main/resources/templates/admin/project_final_edit.ftl +++ b/src/main/resources/templates/admin/project_final_edit.ftl @@ -139,7 +139,8 @@ 成本 其他 - 其他 + diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl index d48a208..5d5803d 100644 --- a/src/main/resources/templates/admin/project_list.ftl +++ b/src/main/resources/templates/admin/project_list.ftl @@ -278,6 +278,13 @@ onclick="location.href='${base}/project/detail?id=${list.id}'">查看 --> + <#if list.approveStatusEstimate == 0 || list.approveStatusBudget == 0 || list.approveStatusSettle == 0 || list.approveStatusFinal == 0> + + <#if adminId==list.approveId> @@ -348,6 +355,25 @@ diff --git a/src/main/resources/templates/admin/project_settle_add.ftl b/src/main/resources/templates/admin/project_settle_add.ftl index df8b916..a5a05de 100644 --- a/src/main/resources/templates/admin/project_settle_add.ftl +++ b/src/main/resources/templates/admin/project_settle_add.ftl @@ -163,7 +163,8 @@ 成本 其他 - 其他 + diff --git a/src/main/resources/templates/admin/project_settle_edit.ftl b/src/main/resources/templates/admin/project_settle_edit.ftl index 3edd9f6..180da1e 100644 --- a/src/main/resources/templates/admin/project_settle_edit.ftl +++ b/src/main/resources/templates/admin/project_settle_edit.ftl @@ -161,7 +161,8 @@ 成本 其他 - 其他 + diff --git a/src/main/resources/templates/admin/project_statistics.ftl b/src/main/resources/templates/admin/project_statistics.ftl index bcb7ff9..8e03f18 100644 --- a/src/main/resources/templates/admin/project_statistics.ftl +++ b/src/main/resources/templates/admin/project_statistics.ftl @@ -1,6 +1,23 @@ <#assign base=request.contextPath /> <#import "../common/defaultLayout.ftl" as defaultLayout> <@defaultLayout.layout> + + + +
@@ -28,40 +45,40 @@
- - - - - - - - - - - - - - - +
项目名称收入--设备类收入--工程类收入--服务类采购成本--设备类采购成本--施工类采购成本--服务类采购成本--其他成本--其他成本--项目管理成本财务费用--资金占用成本公司管理费用
+ + + + + + + + + + + + + + - + <#if (pager)?exists> <#list pager as list> - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -75,44 +92,44 @@
-
项目名称收入--设备类收入--工程类收入--服务类采购成本--设备类采购成本--施工类采购成本--服务类采购成本--其他成本--其他成本--项目管理成本财务费用--资金占用成本公司管理费用
${list.projectName!}${(list.incomeDevice!0)?string("0.##")}${(list.incomeEngineer!0)?string("0.##")}${(list.incomeService!0)?string("0.##")}${(list.costPurchaseDevice!0)?string("0.##")}${(list.costPurchaseBuild!0)?string("0.##")}${(list.costPurchaseService!0)?string("0.##")}${(list.costPurchaseOther!0)?string("0.##")}${(list.costOther!0)?string("0.##")}${(list.costProjectManage!0)?string("0.##")}${(list.costExpropriation!0)?string("0.##")}${(list.costCompanyManage!0)?string("0.##")}
${list.projectName!}${(list.incomeDevice!0)?string("0.##")}${(list.incomeEngineer!0)?string("0.##")}${(list.incomeService!0)?string("0.##")}${(list.costPurchaseDevice!0)?string("0.##")}${(list.costPurchaseBuild!0)?string("0.##")}${(list.costPurchaseService!0)?string("0.##")}${(list.costPurchaseOther!0)?string("0.##")}${(list.costOther!0)?string("0.##")}${(list.costProjectManage!0)?string("0.##")}${(list.costExpropriation!0)?string("0.##")}${(list.costCompanyManage!0)?string("0.##")}
- - - - - - - - - - - - - - - - +
项目名称营业收入营业成本项目管理成本其他财务费用项目毛利项目毛利率公司管理费用项目贡献利润项目贡献利润率所得税费用项目净利润项目净利润率
+ + + + + + + + + + + + + + + + - + <#if (pager)?exists> <#list pager as list> - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -125,46 +142,46 @@
-
项目名称营业收入营业成本项目管理成本其他财务费用项目毛利项目毛利率公司管理费用项目贡献利润项目贡献利润率所得税费用项目净利润项目净利润率
${list.projectName!}${(list.incomeTotal!0)?string("0.##")}${(list.costTotal2!0)?string("0.##")}${(list.costProjectManage!0)?string("0.##")}${(list.costOther!0)?string("0.##")}${(list.costExpropriation!0)?string("0.##")}${(list.grossProfit!0)?string("0.##")}${(list.grossProfitProfitMargin!0)?string("0.##")}${(list.costCompanyManage!0)?string("0.##")}${(list.contributionProfit!0)?string("0.##")}${(list.contributionProfitProfitMargin!0)?string("0.##")}${(list.taxCost!0)?string("0.##")}${(list.netProfit!0)?string("0.##")}${(list.netProfitProfitMargin!0)?string("0.##")}
${list.projectName!}${(list.incomeTotal!0)?string("0.##")}${(list.costTotal2!0)?string("0.##")}${(list.costProjectManage!0)?string("0.##")}${(list.costOther!0)?string("0.##")}${(list.costExpropriation!0)?string("0.##")}${(list.grossProfit!0)?string("0.##")}${(list.grossProfitProfitMargin!0)?string("0.##")}${(list.costCompanyManage!0)?string("0.##")}${(list.contributionProfit!0)?string("0.##")}${(list.contributionProfitProfitMargin!0)?string("0.##")}${(list.taxCost!0)?string("0.##")}${(list.netProfit!0)?string("0.##")}${(list.netProfitProfitMargin!0)?string("0.##")}
- - - - - - - - - - - - - - - - - +
项目名称销售商品、提供劳务收到的现金收到的税费返还收到的其他与经营活动有关的现金购买商品、接受劳务支付的现金支付的各项税费支付其他与经营活动有关的现金经营活动产生的现金流量净额投资活动现金流入投资活动现金流出投资活动产生的现金流量净额借款资金流入还款资金流出筹资活动产生的现金流量净额货币资金净增加额
+ + + + + + + + + + + + + + + + + - + <#if (pager)?exists> <#list pager as list> - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
项目名称销售商品、提供劳务收到的现金收到的税费返还收到的其他与经营活动有关的现金购买商品、接受劳务支付的现金支付的各项税费支付其他与经营活动有关的现金经营活动产生的现金流量净额投资活动现金流入投资活动现金流出投资活动产生的现金流量净额借款资金流入还款资金流出筹资活动产生的现金流量净额货币资金净增加额
${list.projectName!}${(list.saleIncomeCash!0)?string("0.##")}${(list.taxReturn!0)?string("0.##")}${(list.earnestMoneyIncome!0)?string("0.##")}${(list.purchaseCost!0)?string("0.##")}${(list.taxCost!0)?string("0.##")}${(list.earnestMoneyCost!0)?string("0.##")}${(list.netCashFlow!0)?string("0.##")}${(list.cashInflowFromInvestingActivities!0)?string("0.##")}${(list.cashOutflowFromInvestingActivities!0)?string("0.##")}${(list.netCashFromInvestingActivities!0)?string("0.##")}${(list.financingCapitalInflow!0)?string("0.##")}${(list.financingCapitalOutflow!0)?string("0.##")}${(list.financingCapitalCashflow!0)?string("0.##")}${(list.netIncreaseMonetaryFunds!0)?string("0.##")}
${list.projectName!}${(list.saleIncomeCash!0)?string("0.##")}${(list.taxReturn!0)?string("0.##")}${(list.earnestMoneyIncome!0)?string("0.##")}${(list.purchaseCost!0)?string("0.##")}${(list.taxCost!0)?string("0.##")}${(list.earnestMoneyCost!0)?string("0.##")}${(list.netCashFlow!0)?string("0.##")}${(list.cashInflowFromInvestingActivities!0)?string("0.##")}${(list.cashOutflowFromInvestingActivities!0)?string("0.##")}${(list.netCashFromInvestingActivities!0)?string("0.##")}${(list.financingCapitalInflow!0)?string("0.##")}${(list.financingCapitalOutflow!0)?string("0.##")}${(list.financingCapitalCashflow!0)?string("0.##")}${(list.netIncreaseMonetaryFunds!0)?string("0.##")}