|
@@ -44,6 +44,7 @@ import java.sql.Timestamp;
|
|
import java.text.DecimalFormat;
|
|
import java.text.DecimalFormat;
|
|
import java.text.ParseException;
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
|
|
+import java.time.DayOfWeek;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
@@ -445,10 +446,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
String[] split = associateDegrees.split("\\,");
|
|
String[] split = associateDegrees.split("\\,");
|
|
for (int i=0;i<split.length; i++) {
|
|
for (int i=0;i<split.length; i++) {
|
|
HashMap map = new HashMap();
|
|
HashMap map = new HashMap();
|
|
- Integer id = Integer.parseInt(split[i]);
|
|
|
|
- map.put("id", id);
|
|
|
|
- map.put("name", degreeList.stream().filter(d->d.getId().equals(id)).findFirst().get().getName());
|
|
|
|
- degreeMapList.add(map);
|
|
|
|
|
|
+ if (!StringUtils.isEmpty(split[i])) {
|
|
|
|
+ Integer id = Integer.parseInt(split[i]);
|
|
|
|
+ map.put("id", id);
|
|
|
|
+ map.put("name", degreeList.stream().filter(d->d.getId().equals(id)).findFirst().get().getName());
|
|
|
|
+ degreeMapList.add(map);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
r.setDegreeList(degreeMapList);
|
|
r.setDegreeList(degreeMapList);
|
|
@@ -648,7 +651,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
String date,HttpServletRequest request) {
|
|
String date,HttpServletRequest request) {
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
try {
|
|
try {
|
|
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
User curUser = userMapper.selectById(request.getHeader("Token"));
|
|
User curUser = userMapper.selectById(request.getHeader("Token"));
|
|
Integer companyId = curUser.getCompanyId();
|
|
Integer companyId = curUser.getCompanyId();
|
|
Integer isEngeering = companyMapper.selectById(companyId).getPackageEngineering();
|
|
Integer isEngeering = companyMapper.selectById(companyId).getPackageEngineering();
|
|
@@ -656,47 +659,34 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
if (curUser.getRole() == 0) {//普通员工
|
|
if (curUser.getRole() == 0) {//普通员工
|
|
leaderId = curUser.getId();
|
|
leaderId = curUser.getId();
|
|
}
|
|
}
|
|
- //根据权限,管理员查看全部人员的,各个项目负责人只看自己负责的项目参与人员的日报
|
|
|
|
- List<Map<String, Object>> nameList = reportMapper.getDetailByState(state, companyId, leaderId, isEngeering);
|
|
|
|
- //按部门过滤
|
|
|
|
- if (departmentId != null) {
|
|
|
|
- nameList = nameList.stream().filter(map->((Long)map.get("departmentId")) == departmentId.longValue()).collect(Collectors.toList());
|
|
|
|
- }
|
|
|
|
- //按日期过滤
|
|
|
|
- if (!StringUtils.isEmpty(date)) {
|
|
|
|
- nameList = nameList.stream().filter(map->{
|
|
|
|
- return (sdf.format((java.sql.Date)map.get("date"))).equals(date);
|
|
|
|
- }).collect(Collectors.toList());
|
|
|
|
|
|
+ List<Map<String, Object>> auditReportList = reportMapper.getAuditReportList(date, companyId, departmentId, projectId, leaderId, isEngeering);
|
|
|
|
+ //抽取姓名,进行分组
|
|
|
|
+ List<Map<String, Object>> nameList = new ArrayList<Map<String, Object>>();
|
|
|
|
+ Map<String, Object> lastName = null;
|
|
|
|
+ //某个用户某天下的各个项目日报列表
|
|
|
|
+ List<Map<String, Object>> userDailyReportList = null;
|
|
|
|
+ for (Map a : auditReportList) {
|
|
|
|
+ String createDate = (String)a.get("date");
|
|
|
|
+ String name = (String)a.get("name");
|
|
|
|
+
|
|
|
|
+ if (lastName == null || !(lastName.get("name").equals(name) && lastName.get("dateStr").equals(createDate))) {
|
|
|
|
+ lastName = new HashMap<String, Object>();
|
|
|
|
+ lastName.put("dateStr", createDate);
|
|
|
|
+ lastName.put("name", name);
|
|
|
|
+ nameList.add(lastName);
|
|
|
|
+ userDailyReportList = new ArrayList<>();
|
|
|
|
+ lastName.put("data", userDailyReportList);
|
|
|
|
+ }
|
|
|
|
+ //每组日报数据都加上去
|
|
|
|
+ userDailyReportList.add(a);
|
|
}
|
|
}
|
|
- nameList.forEach(n->{
|
|
|
|
- n.put("dateStr",sdf.format((java.sql.Date)n.get("date")));
|
|
|
|
- });
|
|
|
|
|
|
|
|
- List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
|
|
|
|
List<Profession> professions = professionMapper.selectList(new QueryWrapper<Profession>().eq("company_id", curUser.getCompanyId()));
|
|
List<Profession> professions = professionMapper.selectList(new QueryWrapper<Profession>().eq("company_id", curUser.getCompanyId()));
|
|
for (int index=0;index<nameList.size(); index++) {
|
|
for (int index=0;index<nameList.size(); index++) {
|
|
Map<String, Object> map2 = nameList.get(index);
|
|
Map<String, Object> map2 = nameList.get(index);
|
|
- java.sql.Date createDate = (java.sql.Date)map2.get("date");
|
|
|
|
- List<Map<String, Object>> list2 = null;
|
|
|
|
- if (leaderId == null) {
|
|
|
|
- //管理员,直接获取每个人的报告
|
|
|
|
- list2 = reportMapper.getReportByDate(createDate.toString(), (String)map2.get("id"));
|
|
|
|
- } else {
|
|
|
|
- //获取相关项目的报告
|
|
|
|
- List<Map<String, Object>> inchargeReportList= reportMapper.getInchargeReportByDate(createDate.toString(), leaderId, state);
|
|
|
|
- list2 =
|
|
|
|
- inchargeReportList.stream().filter(i->i.get("creatorId").equals(map2.get("id"))).collect(Collectors.toList());
|
|
|
|
- }
|
|
|
|
- //按项目过滤
|
|
|
|
- if (projectId != null) {
|
|
|
|
- list2 = list2.stream().filter(report->(((Integer)report.get("projectId")).equals(projectId))).collect(Collectors.toList());
|
|
|
|
- }
|
|
|
|
- if (list2.size() == 0) {
|
|
|
|
- //被项目过滤掉了,没有数据。
|
|
|
|
- nameList.remove(index);
|
|
|
|
- index--;
|
|
|
|
- } else {
|
|
|
|
- //项目专业进度
|
|
|
|
|
|
+ List<Map<String, Object>> list2 = (List)map2.get("data");
|
|
|
|
+ //项目专业进度
|
|
|
|
+ if (isEngeering == 1) {
|
|
for (Map<String, Object> map : list2) {
|
|
for (Map<String, Object> map : list2) {
|
|
//获取当前项目的工程专业进度
|
|
//获取当前项目的工程专业进度
|
|
List<ReportProfessionProgress> progressList = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().eq("report_id", (int)map.get("id")));
|
|
List<ReportProfessionProgress> progressList = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().eq("report_id", (int)map.get("id")));
|
|
@@ -705,19 +695,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
});
|
|
});
|
|
map.put("professionProgressList", progressList);
|
|
map.put("professionProgressList", progressList);
|
|
}
|
|
}
|
|
- map2.put("data", list2);
|
|
|
|
- double reportTime = 0;
|
|
|
|
- BigDecimal total = new BigDecimal(0);
|
|
|
|
- for (Map<String, Object> m : list2) {
|
|
|
|
- double t = (double) m.get("time");
|
|
|
|
- reportTime += t;
|
|
|
|
- total = total.add((BigDecimal)m.get("cost"));
|
|
|
|
- }
|
|
|
|
- DecimalFormat df = new DecimalFormat("0.00");
|
|
|
|
- map2.put("reportTime", df.format(reportTime));
|
|
|
|
- map2.put("cost", total);
|
|
|
|
- map2.put("state", list2.get(0).get("state"));
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ double reportTime = 0;
|
|
|
|
+ BigDecimal total = new BigDecimal(0);
|
|
|
|
+ //计算每日汇总的工时成本
|
|
|
|
+ for (Map<String, Object> m : list2) {
|
|
|
|
+ double t = (double) m.get("time");
|
|
|
|
+ reportTime += t;
|
|
|
|
+ total = total.add((BigDecimal)m.get("cost"));
|
|
|
|
+ }
|
|
|
|
+ DecimalFormat df = new DecimalFormat("0.00");
|
|
|
|
+ map2.put("reportTime", df.format(reportTime));
|
|
|
|
+ map2.put("cost", total);
|
|
|
|
+ map2.put("state", list2.get(0).get("state"));
|
|
}
|
|
}
|
|
|
|
|
|
//设置照片显示
|
|
//设置照片显示
|
|
@@ -753,7 +744,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
//审核通过某天某人的某报告
|
|
//审核通过某天某人的某报告
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg approveReport(String id, String reportIds, HttpServletRequest request) {
|
|
|
|
|
|
+ public HttpRespMsg approveReport(String reportIds, Integer isDepartment, HttpServletRequest request) {
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
try {
|
|
try {
|
|
User user = userMapper.selectById(request.getHeader("Token"));
|
|
User user = userMapper.selectById(request.getHeader("Token"));
|
|
@@ -761,55 +752,72 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
final List<Long> ids = ListUtil.convertIdsArrayToList(reportIds);
|
|
final List<Long> ids = ListUtil.convertIdsArrayToList(reportIds);
|
|
if (company.getPackageEngineering() == 1) {
|
|
if (company.getPackageEngineering() == 1) {
|
|
//检查是否有专业进度待审核
|
|
//检查是否有专业进度待审核
|
|
- List<ReportProfessionProgress> list = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().eq("report_id", ids.get(0)).eq("audit_state", 0));
|
|
|
|
- if (list.size() > 0) {
|
|
|
|
- //专业待审核的状态,进行专业审核
|
|
|
|
- List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
- List<Integer> projectIds = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- List<ProjectProfession> myProfessionList = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("incharger_id", user.getId()).in("project_id", projectIds));
|
|
|
|
- if (myProfessionList.size() == 0) {
|
|
|
|
- httpRespMsg.setError("只有专业负责人才能进行专业审核");
|
|
|
|
|
|
+ List<ReportProfessionProgress> list = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).eq("audit_state", 0));
|
|
|
|
+ if (isDepartment != null) {
|
|
|
|
+ //进行的是部门审核, 需要专业审核都通过才能进行部门审核
|
|
|
|
+ if (list.size() > 0) {
|
|
|
|
+ httpRespMsg.setError("只有专业审核全部通过才能进行操作");
|
|
|
|
+ return httpRespMsg;
|
|
} else {
|
|
} else {
|
|
- List<Integer> collect = myProfessionList.stream().map(ProjectProfession::getProfessionId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- ReportProfessionProgress item = new ReportProfessionProgress();
|
|
|
|
- item.setAuditState(1);
|
|
|
|
- reportProfessionProgressService.update(item, new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).in("profession_id", collect));
|
|
|
|
-
|
|
|
|
- //全部的专业都审核通过的情况下,更新部门待审核状态
|
|
|
|
- int count = reportProfessionProgressService.count(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).ne("audit_state", 1));
|
|
|
|
- if (count == 0) {
|
|
|
|
- Report report = new Report();
|
|
|
|
- report.setDepartmentAuditState(0);
|
|
|
|
|
|
+ Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
+ //部门待审核,部门审核通过
|
|
|
|
+ if (report.getDepartmentAuditState() == 0) {
|
|
|
|
+ report = new Report();
|
|
|
|
+ report.setDepartmentAuditState(1);
|
|
reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
- //部门待审核,部门审核通过
|
|
|
|
- if (report.getDepartmentAuditState() == 0) {
|
|
|
|
- report = new Report();
|
|
|
|
- report.setDepartmentAuditState(1);
|
|
|
|
- reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
|
|
+ //专业审核或者项目审核
|
|
|
|
+ if (list.size() > 0) {
|
|
|
|
+ //专业待审核的状态,进行专业审核
|
|
|
|
+ List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ List<Integer> projectIds = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ List<ProjectProfession> myProfessionList = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("incharger_id", user.getId()).in("project_id", projectIds));
|
|
|
|
+ if (myProfessionList.size() == 0) {
|
|
|
|
+ httpRespMsg.setError("只有专业负责人才能进行专业审核");
|
|
|
|
+ } else {
|
|
|
|
+ List<Integer> collect = myProfessionList.stream().map(ProjectProfession::getProfessionId).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ ReportProfessionProgress item = new ReportProfessionProgress();
|
|
|
|
+ item.setAuditState(1);
|
|
|
|
+ reportProfessionProgressService.update(item, new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).in("profession_id", collect));
|
|
|
|
+
|
|
|
|
+ //全部的专业都审核通过的情况下,更新部门待审核状态
|
|
|
|
+ int count = reportProfessionProgressService.count(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).ne("audit_state", 1));
|
|
|
|
+ if (count == 0) {
|
|
|
|
+ Report report = new Report();
|
|
|
|
+ report.setDepartmentAuditState(0);
|
|
|
|
+ reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
- //最终进行项目经理审核
|
|
|
|
- reportMapper.update(new Report().setState(1),
|
|
|
|
- new QueryWrapper<Report>().in("id", ids));
|
|
|
|
- List<Report> finalReportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
- List<ReportProfessionProgress> professionProgressList = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids));
|
|
|
|
-
|
|
|
|
- //审核通过时,才会更新到个人的专业进度上去
|
|
|
|
- professionProgressList.forEach(pro->{
|
|
|
|
- PpMembs memb = new PpMembs();
|
|
|
|
- memb.setProgress(pro.getProgress());
|
|
|
|
- Report report1 = finalReportList.stream().filter(f -> f.getId().equals(pro.getReportId())).findFirst().get();
|
|
|
|
- Integer projectId = report1.getProjectId();
|
|
|
|
- //更新个人在项目中的专业进度
|
|
|
|
- ppMembsMapper.update(memb, new QueryWrapper<PpMembs>().eq("project_id", projectId)
|
|
|
|
- .eq("memb_id", report1.getCreatorId()).eq("profession_id", pro.getProfessionId()));
|
|
|
|
- });
|
|
|
|
- notifyLeaders(finalReportList);
|
|
|
|
|
|
+ Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
+ //部门待审核,部门审核通过
|
|
|
|
+ if (report.getDepartmentAuditState() == 0) {
|
|
|
|
+ report = new Report();
|
|
|
|
+ report.setDepartmentAuditState(1);
|
|
|
|
+ reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ } else {
|
|
|
|
+ //最终进行项目经理审核
|
|
|
|
+ reportMapper.update(new Report().setState(1),
|
|
|
|
+ new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ List<Report> finalReportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ List<ReportProfessionProgress> professionProgressList = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids));
|
|
|
|
+
|
|
|
|
+ //审核通过时,才会更新到个人的专业进度上去
|
|
|
|
+ professionProgressList.forEach(pro->{
|
|
|
|
+ PpMembs memb = new PpMembs();
|
|
|
|
+ memb.setProgress(pro.getProgress());
|
|
|
|
+ Report report1 = finalReportList.stream().filter(f -> f.getId().equals(pro.getReportId())).findFirst().get();
|
|
|
|
+ Integer projectId = report1.getProjectId();
|
|
|
|
+ //更新个人在项目中的专业进度
|
|
|
|
+ ppMembsMapper.update(memb, new QueryWrapper<PpMembs>().eq("project_id", projectId)
|
|
|
|
+ .eq("memb_id", report1.getCreatorId()).eq("profession_id", pro.getProfessionId()));
|
|
|
|
+ });
|
|
|
|
+ notifyLeaders(finalReportList);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -940,7 +948,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
//审核未通过 以及 撤销审核某天某人
|
|
//审核未通过 以及 撤销审核某天某人
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg denyReport(String id, String date, String reportIds, String reason, HttpServletRequest request) {
|
|
|
|
|
|
+ public HttpRespMsg denyReport(String date, String reportIds, String reason, Integer isDepartment, HttpServletRequest request) {
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
try {
|
|
try {
|
|
User user = userMapper.selectById(request.getHeader("Token"));
|
|
User user = userMapper.selectById(request.getHeader("Token"));
|
|
@@ -952,32 +960,47 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
Report oneReport = reportMapper.selectById(ids.get(0));
|
|
Report oneReport = reportMapper.selectById(ids.get(0));
|
|
if (company.getPackageEngineering() == 1) {
|
|
if (company.getPackageEngineering() == 1) {
|
|
//检查是否有专业进度待审核
|
|
//检查是否有专业进度待审核
|
|
- List<ReportProfessionProgress> list = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().eq("report_id", ids.get(0)).eq("audit_state", 0));
|
|
|
|
-
|
|
|
|
- if (list.size() > 0) {
|
|
|
|
- //只能是自己负责的专业
|
|
|
|
- List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
- List<Integer> projectIds = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- List<ProjectProfession> myProfessionList = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("incharger_id", user.getId()).in("project_id", projectIds));
|
|
|
|
- if (myProfessionList.size() == 0) {
|
|
|
|
- httpRespMsg.setError("只有专业负责人才能进行专业审核");
|
|
|
|
|
|
+ List<ReportProfessionProgress> list = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).eq("audit_state", 0));
|
|
|
|
+ if (isDepartment != null) {
|
|
|
|
+ if (list.size() > 0) {
|
|
|
|
+ httpRespMsg.setError("只有专业审核全部通过才可操作");
|
|
|
|
+ return httpRespMsg;
|
|
} else {
|
|
} else {
|
|
- List<Integer> collect = myProfessionList.stream().map(ProjectProfession::getProfessionId).collect(Collectors.toList());
|
|
|
|
- //专业待审核的状态,进行专业审核驳回
|
|
|
|
- ReportProfessionProgress item = new ReportProfessionProgress();
|
|
|
|
- item.setAuditState(2);
|
|
|
|
- reportProfessionProgressService.update(item, new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).in("profession_id", collect));
|
|
|
|
|
|
+ Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
+ //部门待审核,部门审核驳回
|
|
|
|
+ if (report.getDepartmentAuditState() == 0) {
|
|
|
|
+ report = new Report();
|
|
|
|
+ report.setDepartmentAuditState(2);
|
|
|
|
+ reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
- //部门待审核,部门审核驳回
|
|
|
|
- if (report.getDepartmentAuditState() == 0) {
|
|
|
|
- report = new Report();
|
|
|
|
- report.setDepartmentAuditState(2);
|
|
|
|
- reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
|
|
+ if (list.size() > 0) {
|
|
|
|
+ //只能是自己负责的专业
|
|
|
|
+ List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ List<Integer> projectIds = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ List<ProjectProfession> myProfessionList = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("incharger_id", user.getId()).in("project_id", projectIds));
|
|
|
|
+ if (myProfessionList.size() == 0) {
|
|
|
|
+ httpRespMsg.setError("只有专业负责人才能进行专业审核");
|
|
|
|
+ } else {
|
|
|
|
+ List<Integer> collect = myProfessionList.stream().map(ProjectProfession::getProfessionId).collect(Collectors.toList());
|
|
|
|
+ //专业待审核的状态,进行专业审核驳回
|
|
|
|
+ ReportProfessionProgress item = new ReportProfessionProgress();
|
|
|
|
+ item.setAuditState(2);
|
|
|
|
+ reportProfessionProgressService.update(item, new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).in("profession_id", collect));
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
+ //部门待审核,部门审核驳回
|
|
|
|
+ if (report.getDepartmentAuditState() == 0) {
|
|
|
|
+ report = new Report();
|
|
|
|
+ report.setDepartmentAuditState(2);
|
|
|
|
+ reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
//直接进行项目经理审核驳回
|
|
//直接进行项目经理审核驳回
|
|
reportMapper.update(new Report().setState(2)
|
|
reportMapper.update(new Report().setState(2)
|
|
@@ -994,7 +1017,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
fillUserId = oneReport.getFillUserid();
|
|
fillUserId = oneReport.getFillUserid();
|
|
} else {
|
|
} else {
|
|
str = "您"+date+"填写的日报中"+pNames+"项目被领导驳回。原因:" + reason;
|
|
str = "您"+date+"填写的日报中"+pNames+"项目被领导驳回。原因:" + reason;
|
|
- fillUserId = id;
|
|
|
|
|
|
+ fillUserId = oneReport.getCreatorId();
|
|
}
|
|
}
|
|
|
|
|
|
informationMapper.insert(new Information().setType(0).setContent(date).setUserId(fillUserId).setMsg(str));
|
|
informationMapper.insert(new Information().setType(0).setContent(date).setUserId(fillUserId).setMsg(str));
|
|
@@ -1079,15 +1102,25 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public HttpRespMsg getMembList(String date, Integer manageDeptId, HttpServletRequest request) {
|
|
public HttpRespMsg getMembList(String date, Integer manageDeptId, HttpServletRequest request) {
|
|
- Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
|
|
|
|
|
|
+ String token = request.getHeader("Token");
|
|
|
|
+ Integer companyId = userMapper.selectById(token).getCompanyId();
|
|
//获取当日已填写的人员报告
|
|
//获取当日已填写的人员报告
|
|
List<Map<String, Object>> reportNameByDate = reportMapper.getReportNameByDate(date, companyId, null);
|
|
List<Map<String, Object>> reportNameByDate = reportMapper.getReportNameByDate(date, companyId, null);
|
|
|
|
|
|
HttpRespMsg departmentList = departmentService.getDepartmentList(request);
|
|
HttpRespMsg departmentList = departmentService.getDepartmentList(request);
|
|
List<DepartmentVO> list = (List<DepartmentVO>) departmentList.data;
|
|
List<DepartmentVO> list = (List<DepartmentVO>) departmentList.data;
|
|
if (manageDeptId != null && manageDeptId > 0) {
|
|
if (manageDeptId != null && manageDeptId > 0) {
|
|
- //指定查看某个部门下的
|
|
|
|
- list = getSpecifiedDept(list, manageDeptId);
|
|
|
|
|
|
+ //指定查看某个部门下的,一个人可能负责多个部门
|
|
|
|
+ List<Department> allMDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", token));
|
|
|
|
+ if (allMDeptList.size() == 1) {
|
|
|
|
+ list = getSpecifiedDept(list, manageDeptId);
|
|
|
|
+ } else {
|
|
|
|
+ ArrayList realMDeptList = new ArrayList<>();
|
|
|
|
+ for (Department d : allMDeptList) {
|
|
|
|
+ realMDeptList.addAll(getSpecifiedDept(list, d.getDepartmentId()));
|
|
|
|
+ }
|
|
|
|
+ list = realMDeptList;
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
//加上未分配的部门
|
|
//加上未分配的部门
|
|
DepartmentVO unAssignedDept = new DepartmentVO();
|
|
DepartmentVO unAssignedDept = new DepartmentVO();
|
|
@@ -1120,52 +1153,68 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg batchApproveReport(String reportIds, HttpServletRequest request) {
|
|
|
|
|
|
+ public HttpRespMsg batchApproveReport(String reportIds, Integer isDepartment, HttpServletRequest request) {
|
|
User user = userMapper.selectById(request.getHeader("Token"));
|
|
User user = userMapper.selectById(request.getHeader("Token"));
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
final List<Long> ids = ListUtil.convertIdsArrayToList(reportIds);
|
|
final List<Long> ids = ListUtil.convertIdsArrayToList(reportIds);
|
|
if (company.getPackageEngineering() == 1) {
|
|
if (company.getPackageEngineering() == 1) {
|
|
//检查是否有专业进度待审核
|
|
//检查是否有专业进度待审核
|
|
- List<ReportProfessionProgress> list = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().eq("report_id", ids.get(0)).eq("audit_state", 0));
|
|
|
|
- if (list.size() > 0) {
|
|
|
|
- //专业待审核的状态,进行专业审核
|
|
|
|
- List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
- List<Integer> projectIds = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- List<ProjectProfession> myProfessionList = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("incharger_id", user.getId()).in("project_id", projectIds));
|
|
|
|
- if (myProfessionList.size() == 0) {
|
|
|
|
- httpRespMsg.setError("只能专业负责人才能进行专业审核");
|
|
|
|
|
|
+ List<ReportProfessionProgress> list = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).eq("audit_state", 0));
|
|
|
|
+ if (isDepartment != null) {
|
|
|
|
+ if (list.size() > 0) {
|
|
|
|
+ httpRespMsg.setError("只有专业审核全部通过才能操作");
|
|
|
|
+ return httpRespMsg;
|
|
} else {
|
|
} else {
|
|
- List<Integer> collect = myProfessionList.stream().map(ProjectProfession::getProfessionId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- ReportProfessionProgress item = new ReportProfessionProgress();
|
|
|
|
- item.setAuditState(1);
|
|
|
|
- reportProfessionProgressService.update(item, new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).in("profession_id", collect));
|
|
|
|
-
|
|
|
|
- //全部的专业都审核通过的情况下,更新部门待审核状态
|
|
|
|
- int count = reportProfessionProgressService.count(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).ne("audit_state", 1));
|
|
|
|
- if (count == 0) {
|
|
|
|
- Report report = new Report();
|
|
|
|
- report.setDepartmentAuditState(0);
|
|
|
|
|
|
+ Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
+ //部门待审核,部门审核通过
|
|
|
|
+ if (report.getDepartmentAuditState() == 0) {
|
|
|
|
+ report = new Report();
|
|
|
|
+ report.setDepartmentAuditState(1);
|
|
reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
- //部门待审核,部门审核通过
|
|
|
|
- if (report.getDepartmentAuditState() == 0) {
|
|
|
|
- report = new Report();
|
|
|
|
- report.setDepartmentAuditState(1);
|
|
|
|
- reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
|
|
+ if (list.size() > 0) {
|
|
|
|
+ //专业待审核的状态,进行专业审核
|
|
|
|
+ List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ List<Integer> projectIds = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ List<ProjectProfession> myProfessionList = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("incharger_id", user.getId()).in("project_id", projectIds));
|
|
|
|
+ if (myProfessionList.size() == 0) {
|
|
|
|
+ httpRespMsg.setError("只能专业负责人才能进行专业审核");
|
|
|
|
+ } else {
|
|
|
|
+ List<Integer> collect = myProfessionList.stream().map(ProjectProfession::getProfessionId).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ ReportProfessionProgress item = new ReportProfessionProgress();
|
|
|
|
+ item.setAuditState(1);
|
|
|
|
+ reportProfessionProgressService.update(item, new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).in("profession_id", collect));
|
|
|
|
+
|
|
|
|
+ //全部的专业都审核通过的情况下,更新部门待审核状态
|
|
|
|
+ int count = reportProfessionProgressService.count(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).ne("audit_state", 1));
|
|
|
|
+ if (count == 0) {
|
|
|
|
+ Report report = new Report();
|
|
|
|
+ report.setDepartmentAuditState(0);
|
|
|
|
+ reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
- //直接进行项目经理审核
|
|
|
|
- reportMapper.update(new Report().setState(1),
|
|
|
|
- new QueryWrapper<Report>().in("id", ids));
|
|
|
|
- List<Report> finalReportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
- notifyLeaders(finalReportList);
|
|
|
|
|
|
+ Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
+ //部门待审核,部门审核通过
|
|
|
|
+ if (report.getDepartmentAuditState() == 0) {
|
|
|
|
+ report = new Report();
|
|
|
|
+ report.setDepartmentAuditState(1);
|
|
|
|
+ reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ } else {
|
|
|
|
+ //直接进行项目经理审核
|
|
|
|
+ reportMapper.update(new Report().setState(1),
|
|
|
|
+ new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ List<Report> finalReportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ notifyLeaders(finalReportList);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
} else {
|
|
} else {
|
|
//直接进行项目经理审核
|
|
//直接进行项目经理审核
|
|
reportMapper.update(new Report().setState(1),
|
|
reportMapper.update(new Report().setState(1),
|
|
@@ -1176,38 +1225,52 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg batchDenyReport(String reportIds, HttpServletRequest request) {
|
|
|
|
|
|
+ public HttpRespMsg batchDenyReport(String reportIds, Integer isDepartment, HttpServletRequest request) {
|
|
User user = userMapper.selectById(request.getHeader("Token"));
|
|
User user = userMapper.selectById(request.getHeader("Token"));
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
Company company = companyMapper.selectById(user.getCompanyId());
|
|
final List<Long> ids = ListUtil.convertIdsArrayToList(reportIds);
|
|
final List<Long> ids = ListUtil.convertIdsArrayToList(reportIds);
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
if (company.getPackageEngineering() == 1) {
|
|
if (company.getPackageEngineering() == 1) {
|
|
//检查是否有专业进度待审核
|
|
//检查是否有专业进度待审核
|
|
- List<ReportProfessionProgress> list = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().eq("report_id", ids.get(0)).eq("audit_state", 0));
|
|
|
|
-
|
|
|
|
- if (list.size() > 0) {
|
|
|
|
- //只能是自己负责的专业
|
|
|
|
- List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
- List<Integer> projectIds = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- List<ProjectProfession> myProfessionList = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("incharger_id", user.getId()).in("project_id", projectIds));
|
|
|
|
- if (myProfessionList.size() == 0) {
|
|
|
|
- httpRespMsg.setError("只能专业负责人才能进行专业审核");
|
|
|
|
|
|
+ List<ReportProfessionProgress> list = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).eq("audit_state", 0));
|
|
|
|
+ if (isDepartment != null) {
|
|
|
|
+ if (list.size() > 0) {
|
|
|
|
+ httpRespMsg.setError("只有专业审核全部通过才能操作");
|
|
|
|
+ return httpRespMsg;
|
|
} else {
|
|
} else {
|
|
- List<Integer> collect = myProfessionList.stream().map(ProjectProfession::getProfessionId).collect(Collectors.toList());
|
|
|
|
- //专业待审核的状态,进行专业审核驳回
|
|
|
|
- ReportProfessionProgress item = new ReportProfessionProgress();
|
|
|
|
- item.setAuditState(2);
|
|
|
|
- reportProfessionProgressService.update(item, new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).in("profession_id", collect));
|
|
|
|
|
|
+ Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
+ //部门待审核,部门审核通过
|
|
|
|
+ if (report.getDepartmentAuditState() == 0) {
|
|
|
|
+ report = new Report();
|
|
|
|
+ report.setDepartmentAuditState(1);
|
|
|
|
+ reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
} else {
|
|
} else {
|
|
- Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
- //部门待审核,部门审核驳回
|
|
|
|
- if (report.getDepartmentAuditState() == 0) {
|
|
|
|
- report = new Report();
|
|
|
|
- report.setDepartmentAuditState(2);
|
|
|
|
- reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
|
|
+ if (list.size() > 0) {
|
|
|
|
+ //只能是自己负责的专业
|
|
|
|
+ List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ List<Integer> projectIds = reportList.stream().map(Report::getProjectId).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ List<ProjectProfession> myProfessionList = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("incharger_id", user.getId()).in("project_id", projectIds));
|
|
|
|
+ if (myProfessionList.size() == 0) {
|
|
|
|
+ httpRespMsg.setError("只能专业负责人才能进行专业审核");
|
|
|
|
+ } else {
|
|
|
|
+ List<Integer> collect = myProfessionList.stream().map(ProjectProfession::getProfessionId).collect(Collectors.toList());
|
|
|
|
+ //专业待审核的状态,进行专业审核驳回
|
|
|
|
+ ReportProfessionProgress item = new ReportProfessionProgress();
|
|
|
|
+ item.setAuditState(2);
|
|
|
|
+ reportProfessionProgressService.update(item, new QueryWrapper<ReportProfessionProgress>().in("report_id", ids).in("profession_id", collect));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ Report report = reportMapper.selectById(ids.get(0));
|
|
|
|
+ //部门待审核,部门审核驳回
|
|
|
|
+ if (report.getDepartmentAuditState() == 0) {
|
|
|
|
+ report = new Report();
|
|
|
|
+ report.setDepartmentAuditState(2);
|
|
|
|
+ reportMapper.update(report, new QueryWrapper<Report>().in("id", ids));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1615,7 +1678,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
List<String> projectList = new ArrayList<>();
|
|
List<String> projectList = new ArrayList<>();
|
|
List<Project> allProjectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
|
|
List<Project> allProjectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
|
|
List<Report> reportList = new ArrayList<>();
|
|
List<Report> reportList = new ArrayList<>();
|
|
- int projectNameStartIndex = (withCheckIn==null?2:9);
|
|
|
|
|
|
+ int projectNameStartIndex = (withCheckIn==null?2:6);
|
|
|
|
|
|
for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
|
|
for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
|
|
Row row = sheet.getRow(rowIndex);
|
|
Row row = sheet.getRow(rowIndex);
|
|
@@ -2021,97 +2084,108 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg listDeptImportByState(Integer state, String leaderId, Integer projectId, String date, HttpServletRequest request) {
|
|
|
|
|
|
+ public HttpRespMsg listDeptImportByState(String leaderId, Integer projectId, String startDate, String endDate, Integer departmentId, HttpServletRequest request) {
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
try {
|
|
try {
|
|
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
User curUser = userMapper.selectById(request.getHeader("Token"));
|
|
User curUser = userMapper.selectById(request.getHeader("Token"));
|
|
Integer companyId = curUser.getCompanyId();
|
|
Integer companyId = curUser.getCompanyId();
|
|
-
|
|
|
|
|
|
+ Integer isEngeering = companyMapper.selectById(companyId).getPackageEngineering();
|
|
//根据权限,日报审核员只看自己负责的人员的日报
|
|
//根据权限,日报审核员只看自己负责的人员的日报
|
|
- List<Map<String, Object>> nameList = reportMapper.getDetailImportByState(state, companyId, leaderId);
|
|
|
|
- System.out.println("数据size=="+nameList.size());
|
|
|
|
- //按日期过滤
|
|
|
|
- if (!StringUtils.isEmpty(date)) {
|
|
|
|
- nameList = nameList.stream().filter(map->{
|
|
|
|
- return (sdf.format((java.sql.Date)map.get("date"))).equals(date);
|
|
|
|
- }).collect(Collectors.toList());
|
|
|
|
|
|
+ List<Integer> filterDeptIds = null;
|
|
|
|
+ if (departmentId != null) {
|
|
|
|
+ filterDeptIds = new ArrayList<>();
|
|
|
|
+ Department dept = departmentMapper.selectById(departmentId);
|
|
|
|
+ List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
|
|
|
|
+ List<Department> subDepts = getSubDepts(dept, allDepts);
|
|
|
|
+ filterDeptIds.add(departmentId);
|
|
|
|
+ filterDeptIds.addAll(subDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList()));
|
|
}
|
|
}
|
|
- nameList.forEach(n->{
|
|
|
|
- n.put("dateStr",sdf.format((java.sql.Date)n.get("date")));
|
|
|
|
- });
|
|
|
|
|
|
+ List<Map<String, Object>> auditReportList = reportMapper.getDeptImportAuditList(companyId, leaderId, startDate, endDate, filterDeptIds, projectId);
|
|
|
|
+// //抽取姓名,进行分组
|
|
|
|
+// List<Map<String, Object>> nameList = new ArrayList<Map<String, Object>>();
|
|
|
|
+// Map<String, Object> lastName = null;
|
|
|
|
+// //某个用户某天下的各个项目日报列表
|
|
|
|
+// List<Map<String, Object>> userDailyReportList = null;
|
|
|
|
+// for (Map a : auditReportList) {
|
|
|
|
+// String createDate = (String)a.get("date");
|
|
|
|
+// String name = (String)a.get("name");
|
|
|
|
+//
|
|
|
|
+// if (lastName == null || !(lastName.get("name").equals(name) && lastName.get("dateStr").equals(createDate))) {
|
|
|
|
+// lastName = new HashMap<String, Object>();
|
|
|
|
+// lastName.put("dateStr", createDate);
|
|
|
|
+// lastName.put("name", name);
|
|
|
|
+// nameList.add(lastName);
|
|
|
|
+// userDailyReportList = new ArrayList<>();
|
|
|
|
+// lastName.put("data", userDailyReportList);
|
|
|
|
+// }
|
|
|
|
+// //每组日报数据都加上去
|
|
|
|
+// userDailyReportList.add(a);
|
|
|
|
+// }
|
|
|
|
|
|
- List<Profession> professions = professionMapper.selectList(new QueryWrapper<Profession>().eq("company_id", curUser.getCompanyId()));
|
|
|
|
- for (int index=0;index<nameList.size(); index++) {
|
|
|
|
- Map<String, Object> map2 = nameList.get(index);
|
|
|
|
- java.sql.Date createDate = (java.sql.Date)map2.get("date");
|
|
|
|
- List<Map<String, Object>> list2 = null;
|
|
|
|
-// if (leaderId == null) {
|
|
|
|
-// //按部门导入的,直接获取每个人的报告
|
|
|
|
- list2 = reportMapper.getReportByDate(createDate.toString(), (String)map2.get("id"));
|
|
|
|
-// } else {
|
|
|
|
- //获取相关项目的报告
|
|
|
|
-// List<Map<String, Object>> inchargeReportList= reportMapper.getInchargeReportByDate(createDate.toString(), leaderId, state);
|
|
|
|
-// list2 =
|
|
|
|
-// inchargeReportList.stream().filter(i->i.get("creatorId").equals(map2.get("id"))).collect(Collectors.toList());
|
|
|
|
|
|
+
|
|
|
|
+// List<Profession> professions = professionMapper.selectList(new QueryWrapper<Profession>().eq("company_id", curUser.getCompanyId()));
|
|
|
|
+// for (int index=0;index<nameList.size(); index++) {
|
|
|
|
+// Map<String, Object> map2 = nameList.get(index);
|
|
|
|
+// List<Map<String, Object>> list2 = (List)map2.get("data");
|
|
|
|
+// //项目专业进度
|
|
|
|
+// if (isEngeering == 1) {
|
|
|
|
+// for (Map<String, Object> map : list2) {
|
|
|
|
+// //获取当前项目的工程专业进度
|
|
|
|
+// List<ReportProfessionProgress> progressList = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().eq("report_id", (int)map.get("id")));
|
|
|
|
+// progressList.stream().forEach(p->{
|
|
|
|
+// p.setProfessionName(professions.stream().filter(m->m.getId().equals(p.getProfessionId())).findFirst().get().getName());
|
|
|
|
+// });
|
|
|
|
+// map.put("professionProgressList", progressList);
|
|
|
|
+// }
|
|
// }
|
|
// }
|
|
- //按项目过滤
|
|
|
|
- if (projectId != null) {
|
|
|
|
- list2 = list2.stream().filter(report->(((Integer)report.get("projectId")).equals(projectId))).collect(Collectors.toList());
|
|
|
|
- }
|
|
|
|
- if (list2.size() == 0) {
|
|
|
|
- //被项目过滤掉了,没有数据。
|
|
|
|
- nameList.remove(index);
|
|
|
|
- index--;
|
|
|
|
- } else {
|
|
|
|
- //项目专业进度
|
|
|
|
- for (Map<String, Object> map : list2) {
|
|
|
|
- //获取当前项目的工程专业进度
|
|
|
|
- List<ReportProfessionProgress> progressList = reportProfessionProgressService.list(new QueryWrapper<ReportProfessionProgress>().eq("report_id", (int)map.get("id")));
|
|
|
|
- progressList.stream().forEach(p->{
|
|
|
|
- p.setProfessionName(professions.stream().filter(m->m.getId().equals(p.getProfessionId())).findFirst().get().getName());
|
|
|
|
- });
|
|
|
|
- map.put("professionProgressList", progressList);
|
|
|
|
- }
|
|
|
|
- map2.put("data", list2);
|
|
|
|
- double reportTime = 0;
|
|
|
|
- BigDecimal total = new BigDecimal(0);
|
|
|
|
- for (Map<String, Object> m : list2) {
|
|
|
|
- double t = (double) m.get("time");
|
|
|
|
- reportTime += t;
|
|
|
|
- total = total.add((BigDecimal)m.get("cost"));
|
|
|
|
- }
|
|
|
|
- DecimalFormat df = new DecimalFormat("0.00");
|
|
|
|
- map2.put("reportTime", df.format(reportTime));
|
|
|
|
- map2.put("cost", total);
|
|
|
|
- map2.put("state", list2.get(0).get("state"));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+//
|
|
|
|
+// double reportTime = 0;
|
|
|
|
+// BigDecimal total = new BigDecimal(0);
|
|
|
|
+// //计算每日汇总的工时成本
|
|
|
|
+// for (Map<String, Object> m : list2) {
|
|
|
|
+// double t = (double) m.get("time");
|
|
|
|
+// reportTime += t;
|
|
|
|
+// total = total.add((BigDecimal)m.get("cost"));
|
|
|
|
+// }
|
|
|
|
+// DecimalFormat df = new DecimalFormat("0.00");
|
|
|
|
+// map2.put("reportTime", df.format(reportTime));
|
|
|
|
+// map2.put("cost", total);
|
|
|
|
+// map2.put("state", list2.get(0).get("state"));
|
|
|
|
+// }
|
|
|
|
|
|
- //设置照片显示
|
|
|
|
- for (Map map : nameList) {
|
|
|
|
- List<Map<String, Object>> reportList = (List<Map<String, Object>>)map.get("data");
|
|
|
|
- for (Map<String, Object> report : reportList) {
|
|
|
|
- String picStr = (String)report.get("picStr");
|
|
|
|
- if (picStr != null) {
|
|
|
|
- JSONArray array = JSONArray.parseArray(picStr.replaceAll("@", ","));
|
|
|
|
- List<String> picList = new ArrayList<>();
|
|
|
|
- for (int i=0;i<array.size(); i++) {
|
|
|
|
- String string = array.getString(i);
|
|
|
|
- string = "/upload/" + string + ".jpg";
|
|
|
|
- picList.add(string);
|
|
|
|
- }
|
|
|
|
- report.put("pics", picList);
|
|
|
|
- }
|
|
|
|
- if (((Integer)report.get("multiWorktime")) == 1) {
|
|
|
|
- //设置多个工时情况下的报告列表
|
|
|
|
- String timeStr = (String)report.get("content");
|
|
|
|
- report.put("worktimeList", JSONArray.parse(timeStr));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ //设置照片和项目工时成本显示
|
|
|
|
+// for (Map map : nameList) {
|
|
|
|
+// List<Map<String, Object>> reportList = (List<Map<String, Object>>)map.get("data");
|
|
|
|
+// StringBuilder sb = new StringBuilder();
|
|
|
|
+// for (int t=0;t<reportList.size(); t++) {
|
|
|
|
+// Map<String, Object> report = reportList.get(t);
|
|
|
|
+// String picStr = (String)report.get("picStr");
|
|
|
|
+// if (picStr != null) {
|
|
|
|
+// JSONArray array = JSONArray.parseArray(picStr.replaceAll("@", ","));
|
|
|
|
+// List<String> picList = new ArrayList<>();
|
|
|
|
+// for (int i=0;i<array.size(); i++) {
|
|
|
|
+// String string = array.getString(i);
|
|
|
|
+// string = "/upload/" + string + ".jpg";
|
|
|
|
+// picList.add(string);
|
|
|
|
+// }
|
|
|
|
+// report.put("pics", picList);
|
|
|
|
+// }
|
|
|
|
+// if (((Integer)report.get("multiWorktime")) == 1) {
|
|
|
|
+// //设置多个工时情况下的报告列表
|
|
|
|
+// String timeStr = (String)report.get("content");
|
|
|
|
+// report.put("worktimeList", JSONArray.parse(timeStr));
|
|
|
|
+// }
|
|
|
|
+// //抽取项目,工时和成本
|
|
|
|
+// sb.append(report.get("project")+"("+report.get("time")+"h/"+report.get("cost")+"元)");
|
|
|
|
+// if (t < reportList.size() -1) {
|
|
|
|
+// sb.append(" | ");
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// map.put("allProjectTime", sb.toString());
|
|
|
|
+// }
|
|
|
|
|
|
- }
|
|
|
|
- httpRespMsg.data = nameList;
|
|
|
|
|
|
+ httpRespMsg.data = auditReportList;
|
|
} catch (NullPointerException e) {
|
|
} catch (NullPointerException e) {
|
|
httpRespMsg.setError("验证失败");
|
|
httpRespMsg.setError("验证失败");
|
|
return httpRespMsg;
|
|
return httpRespMsg;
|
|
@@ -2119,4 +2193,29 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
return httpRespMsg;
|
|
return httpRespMsg;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public HttpRespMsg getlastWeekFillTime(String userId) {
|
|
|
|
+ HttpRespMsg msg = new HttpRespMsg();
|
|
|
|
+ LocalDate now = LocalDate.now();
|
|
|
|
+ //取上周
|
|
|
|
+ LocalDate lastWeek = now.minusWeeks(1);
|
|
|
|
+
|
|
|
|
+ int weekDay = lastWeek.getDayOfWeek().getValue();
|
|
|
|
+ LocalDate monday = lastWeek.minusDays(weekDay-1);
|
|
|
|
+ LocalDate sunday = monday.plusDays(6);
|
|
|
|
+ List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().eq("creator_id", userId).between("create_date", monday, sunday));
|
|
|
|
+ List<Integer> pids = reportList.stream().map(Report::getProjectId).distinct().collect(Collectors.toList());
|
|
|
|
+ List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", pids));
|
|
|
|
+ String collect = projectList.stream().map(Project::getProjectName).collect(Collectors.joining(","));
|
|
|
|
+ //计算总工时
|
|
|
|
+ double sum = reportList.stream().mapToDouble(Report::getWorkingTime).sum();
|
|
|
|
+ double waiting = reportList.stream().filter(r -> r.getState() == 0).mapToDouble(Report::getWorkingTime).sum();
|
|
|
|
+ double reject = reportList.stream().filter(r -> r.getState() == 2).mapToDouble(Report::getWorkingTime).sum();
|
|
|
|
+ double pass = reportList.stream().filter(r -> r.getState() == 1).mapToDouble(Report::getWorkingTime).sum();
|
|
|
|
+ String str = "您上周共参与了" + projectList.size()+"个项目,总工时为" + sum+"小时。其中审核通过"+pass
|
|
|
|
+ +"小时, 待审核"+waiting+"小时,驳回"+reject+"小时。";
|
|
|
|
+ msg.data = str;
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|