From d90e49b431422090e706fbdb668734b101b4c1c9 Mon Sep 17 00:00:00 2001 From: OathK1per Date: Mon, 29 Nov 2021 15:40:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=8A=9B=E6=88=90=E6=9C=AC=E5=AF=BC?= =?UTF-8?q?=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();