From d90e49b431422090e706fbdb668734b101b4c1c9 Mon Sep 17 00:00:00 2001 From: OathK1per Date: Mon, 29 Nov 2021 15:40:54 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BA=BA=E5=8A=9B=E6=88=90=E6=9C=AC?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=A0=87=E5=87=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../palmte/work/service/HumanCostService.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/cn/palmte/work/service/HumanCostService.java b/src/main/java/cn/palmte/work/service/HumanCostService.java index aea198e..dcb8a9d 100644 --- a/src/main/java/cn/palmte/work/service/HumanCostService.java +++ b/src/main/java/cn/palmte/work/service/HumanCostService.java @@ -122,8 +122,8 @@ public class HumanCostService { Project project = projectRepository.findByProjectName(projectName); if (project == null) { throw new Exception(projectName + "不存在"); - } else if (project.getStatus() != Project.STATUS_SETTLE || project.getApproveStatusSettle() == 1 || project.getApproveStatusSettle() == 2) { - throw new Exception(projectName + "不在项目结算的可编辑状态"); + } else if (project.getStatus() == Project.STATUS_ESTIMATE || (project.getStatus() == Project.STATUS_ESTIMATE && project.getApproveStatusEstimate() != 2) || (project.getStatus() == Project.STATUS_FINAL && project.getApproveStatusFinal() == 2)) { + throw new Exception(projectName + "不在项目人力成本的可导入状态"); } if (projectSet.contains(projectName)) { throw new Exception("项目名称存在重复!"); @@ -180,6 +180,11 @@ public class HumanCostService { errorList.add(e.getMessage()); } } + if (errorCount > 0) { + final ResponseMsg msg = ResponseMsg.buildSuccessMsg(String.format("失败:%d", errorCount)); + msg.setData(errorList); + return msg; + } for (String key : staffCost.keySet()) { try { if (staffCost.getOrDefault(key, BigDecimal.valueOf(0)).compareTo(BigDecimal.valueOf(1)) != 0) { @@ -195,10 +200,14 @@ public class HumanCostService { int row = projectUserTimeRepository.deleteByTime(date); logger.info("删除重复条目:" + row + "条"); projectUserTimeRepository.save(saveList); + final ResponseMsg msg = ResponseMsg.buildSuccessMsg(String.format("成功:%d, 失败:%d", successCount, errorCount)); + msg.setData(errorList); + return msg; + } else { + final ResponseMsg msg = ResponseMsg.buildSuccessMsg(String.format("失败:%d", errorCount)); + msg.setData(errorList); + return msg; } - final ResponseMsg msg = ResponseMsg.buildSuccessMsg(String.format("成功:%d, 失败:%d", successCount, errorCount)); - msg.setData(errorList); - return msg; } public String[] getHeaders(List staff) { @@ -242,10 +251,10 @@ public class HumanCostService { Admin admin = InterfaceUtil.getAdmin(); List projectList = null; if (admin.getRoleLevel() <= 2 || admin.getRoleLevel() == 4) { - String sql = "select proj.id, proj.name from project proj where (proj.status = ? or (proj.status = ? and proj.approve_status_budget = ?)) order by proj.id asc"; - projectList = pagination.find(sql, Project.class, Project.STATUS_SETTLE, Project.STATUS_BUDGET, 2); + String sql = "select proj.id, proj.name from project proj where (proj.status = ? or (proj.status = ? and proj.approve_status_budget = ?) or (proj.status = ? and proj.approve_status_final <> ?)) order by proj.id asc"; + projectList = pagination.find(sql, Project.class, Project.STATUS_SETTLE, Project.STATUS_BUDGET, 2, Project.STATUS_FINAL, 2); } else { - String sql = "select proj.id, proj.name from project proj where (proj.status = ? or (proj.status = ? and proj.approve_status_budget = ?)) and " + + String sql = "select proj.id, proj.name from project proj where (proj.status = ? or (proj.status = ? and proj.approve_status_budget = ?) or (proj.status = ? and proj.approve_status_final <> ?)) and " + " (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=?)) order by proj.id asc"; //项目可见性,根据角色和人员id int roleId = admin.getRoleId(); From 0f4a71a3833f8313fe3f45d1cc49af034ec84d41 Mon Sep 17 00:00:00 2001 From: pengqiang <1067496116@qq.com> Date: Tue, 30 Nov 2021 09:58:19 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E9=99=A4=E6=B3=95=E8=BF=90=E7=AE=97?= =?UTF-8?q?=E6=97=B6=20=E5=A2=9E=E5=8A=A0=E9=99=A4=E6=95=B0=E4=B8=BA0?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/cn/palmte/work/bean/FormerBean.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/cn/palmte/work/bean/FormerBean.java b/src/main/java/cn/palmte/work/bean/FormerBean.java index 1c1d7e6..94e732a 100644 --- a/src/main/java/cn/palmte/work/bean/FormerBean.java +++ b/src/main/java/cn/palmte/work/bean/FormerBean.java @@ -114,6 +114,10 @@ public class FormerBean extends IncomeCostBean{ if (null == grossProfit || null == incomeTotalTaxExclude) { return handleSpecial(null); } + + if (incomeTotalTaxExclude.compareTo(BigDecimal.ZERO) == 0) { + return BigDecimal.ZERO; + } return grossProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); } @@ -134,6 +138,9 @@ public class FormerBean extends IncomeCostBean{ if (null == contributionProfit || null == incomeTotalTaxExclude) { return handleSpecial(null); } + if (incomeTotalTaxExclude.compareTo(BigDecimal.ZERO) == 0) { + return BigDecimal.ZERO; + } return contributionProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); } @@ -155,6 +162,9 @@ public class FormerBean extends IncomeCostBean{ if (null == netProfit || null == incomeTotalTaxExclude) { return handleSpecial(null); } + if (incomeTotalTaxExclude.compareTo(BigDecimal.ZERO) == 0) { + return BigDecimal.ZERO; + } return netProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); } From 875c23985478c096c9a69bcdb326f1ce2769c9ff Mon Sep 17 00:00:00 2001 From: pengqiang <1067496116@qq.com> Date: Tue, 30 Nov 2021 11:19:18 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E9=99=A4=E6=B3=95=E8=BF=90=E7=AE=97?= =?UTF-8?q?=E6=97=B6=20=E4=BF=9D=E7=95=994=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/cn/palmte/work/bean/FormerBean.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/cn/palmte/work/bean/FormerBean.java b/src/main/java/cn/palmte/work/bean/FormerBean.java index 94e732a..e405c65 100644 --- a/src/main/java/cn/palmte/work/bean/FormerBean.java +++ b/src/main/java/cn/palmte/work/bean/FormerBean.java @@ -118,7 +118,7 @@ public class FormerBean extends IncomeCostBean{ if (incomeTotalTaxExclude.compareTo(BigDecimal.ZERO) == 0) { return BigDecimal.ZERO; } - return grossProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); + return grossProfit.divide(incomeTotalTaxExclude, 4).multiply(new BigDecimal(100)); } public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) { @@ -141,7 +141,7 @@ public class FormerBean extends IncomeCostBean{ if (incomeTotalTaxExclude.compareTo(BigDecimal.ZERO) == 0) { return BigDecimal.ZERO; } - return contributionProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); + return contributionProfit.divide(incomeTotalTaxExclude, 4).multiply(new BigDecimal(100)); } @@ -165,7 +165,7 @@ public class FormerBean extends IncomeCostBean{ if (incomeTotalTaxExclude.compareTo(BigDecimal.ZERO) == 0) { return BigDecimal.ZERO; } - return netProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); + return netProfit.divide(incomeTotalTaxExclude, 4).multiply(new BigDecimal(100)); } public void setNetProfitProfitMargin(BigDecimal netProfitProfitMargin) { From 8da7c908e0ca89e8bc388c90c6bbfa6b1695cd06 Mon Sep 17 00:00:00 2001 From: OathK1per Date: Tue, 30 Nov 2021 11:38:13 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=E5=8F=AF=E8=A7=81=E6=80=A7=E6=9D=83?= =?UTF-8?q?=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../work/controller/backend/HumanCostController.java | 4 ++-- .../palmte/work/controller/backend/ProjectController.java | 1 + .../java/cn/palmte/work/service/HumanCostService.java | 2 +- src/main/resources/templates/admin/project_list.ftl | 8 ++++---- src/main/resources/templates/admin/project_settle_add.ftl | 2 +- .../resources/templates/admin/project_settle_edit.ftl | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/cn/palmte/work/controller/backend/HumanCostController.java b/src/main/java/cn/palmte/work/controller/backend/HumanCostController.java index 138c9da..a666035 100644 --- a/src/main/java/cn/palmte/work/controller/backend/HumanCostController.java +++ b/src/main/java/cn/palmte/work/controller/backend/HumanCostController.java @@ -60,12 +60,12 @@ public class HumanCostController extends BaseController{ Admin admin = getAdmin(); int roleLevel = admin.getRoleLevel(); List selfProjects = projectRepository.findByCreator(admin.getId(), new Date()); - if (roleLevel <= 2 || roleLevel == 4) { + if (roleLevel <= 3 || roleLevel == 6) { model.put("deptVary", 1); model.put("deptList", deptRepository.findAll()); model.put("projectList", projectRepository.findAll()); model.put("showSalary", 1); - } else if (roleLevel == 3) { + } else if (roleLevel == 4 || roleLevel == 5) { model.put("deptVary", -1); model.put("deptList", new ArrayList<>()); model.put("projectList", projectRepository.findByDeptId(admin.getDeptId())); 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 be1b8d6..c467e1c 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -80,6 +80,7 @@ public class ProjectController extends BaseController { //当前登录人的角色类型 model.put("keywords", keywords); model.put("adminId", InterfaceUtil.getAdminId()); + model.put("admin", InterfaceUtil.getAdmin()); model.put("deptList", deptService.findAll()); ConcurrentHashMap searchInfo = getSearchInfo(keywords, model); model.put("pager", projectService.list(searchInfo, pageNumber, pageSize)); diff --git a/src/main/java/cn/palmte/work/service/HumanCostService.java b/src/main/java/cn/palmte/work/service/HumanCostService.java index dcb8a9d..8362abf 100644 --- a/src/main/java/cn/palmte/work/service/HumanCostService.java +++ b/src/main/java/cn/palmte/work/service/HumanCostService.java @@ -250,7 +250,7 @@ public class HumanCostService { } Admin admin = InterfaceUtil.getAdmin(); List projectList = null; - if (admin.getRoleLevel() <= 2 || admin.getRoleLevel() == 4) { + if (admin.getRoleLevel() <= 3 || admin.getRoleLevel() == 6) { String sql = "select proj.id, proj.name from project proj where (proj.status = ? or (proj.status = ? and proj.approve_status_budget = ?) or (proj.status = ? and proj.approve_status_final <> ?)) order by proj.id asc"; projectList = pagination.find(sql, Project.class, Project.STATUS_SETTLE, Project.STATUS_BUDGET, 2, Project.STATUS_FINAL, 2); } else { diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl index 6990191..8af61f2 100644 --- a/src/main/resources/templates/admin/project_list.ftl +++ b/src/main/resources/templates/admin/project_list.ftl @@ -238,7 +238,7 @@ <#-- --> <#-- 项目等于预算状态、预算审核等于通过状态 --> - <#if (list.status==5 && list.approveStatusBudget=2) || (list.status=10 && list.approveStatusSettle=2) > + <#if admin.getRoleLevel() == 6 && ((list.status==5 && list.approveStatusBudget=2) || (list.status=10 && list.approveStatusSettle=2)) >