人力成本导入标准修改

master
OathK1per 2021-11-29 15:40:54 +08:00
parent f29ef2d3da
commit d90e49b431
1 changed files with 17 additions and 8 deletions

View File

@ -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;
}
}
public String[] getHeaders(List<ProjectUserTime> staff) {
@ -242,10 +251,10 @@ public class HumanCostService {
Admin admin = InterfaceUtil.getAdmin();
List<Project> 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();