|
@@ -148,7 +148,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
public HttpRespMsg submitReport(Report report, HttpServletRequest request) {
|
|
public HttpRespMsg submitReport(Report report, HttpServletRequest request) {
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
String token = request.getHeader("TOKEN");
|
|
String token = request.getHeader("TOKEN");
|
|
- Integer companyId = userMapper.selectById(token).getCompanyId();
|
|
|
|
|
|
+ User user = userMapper.selectById(token);
|
|
|
|
+ Integer companyId = user.getCompanyId();
|
|
report.setCreatorId(token);
|
|
report.setCreatorId(token);
|
|
LocalDate today = LocalDate.now();
|
|
LocalDate today = LocalDate.now();
|
|
report.setCreateDate(today);
|
|
report.setCreateDate(today);
|
|
@@ -161,19 +162,37 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
//查找上一次该工序的报工
|
|
//查找上一次该工序的报工
|
|
Report lastReport = reportMapper.selectOne(new QueryWrapper<Report>().eq("creator_id", token).eq("prod_procedure_id", report.getProdProcedureId()).lt("create_date", today).orderByDesc("create_date").last("limit 1"));
|
|
Report lastReport = reportMapper.selectOne(new QueryWrapper<Report>().eq("creator_id", token).eq("prod_procedure_id", report.getProdProcedureId()).lt("create_date", today).orderByDesc("create_date").last("limit 1"));
|
|
if (lastReport != null) {
|
|
if (lastReport != null) {
|
|
|
|
+ if (report.getProgress() <= lastReport.getProgress()) {
|
|
|
|
+ httpRespMsg.setError("进度必须大于上次报工进度("+lastReport.getProgress()+"%)");
|
|
|
|
+ return httpRespMsg;
|
|
|
|
+ }
|
|
curReportTime = (prodProcedureTeam.getWorkTime() * (report.getProgress() - lastReport.getProgress())/100);
|
|
curReportTime = (prodProcedureTeam.getWorkTime() * (report.getProgress() - lastReport.getProgress())/100);
|
|
} else {
|
|
} else {
|
|
curReportTime = (prodProcedureTeam.getWorkTime() * report.getProgress()/100);
|
|
curReportTime = (prodProcedureTeam.getWorkTime() * report.getProgress()/100);
|
|
}
|
|
}
|
|
|
|
+
|
|
report.setWorkingTime(curReportTime);//本次报工的工时数
|
|
report.setWorkingTime(curReportTime);//本次报工的工时数
|
|
Plan plan = planMapper.selectById(report.getPlanId());
|
|
Plan plan = planMapper.selectById(report.getPlanId());
|
|
report.setDeptId(plan.getStationId());
|
|
report.setDeptId(plan.getStationId());
|
|
report.setProductId(plan.getProductId());
|
|
report.setProductId(plan.getProductId());
|
|
|
|
+ if (report.getProgress() == 100) {
|
|
|
|
+ //设置质检人
|
|
|
|
+ if (report.getCheckType() == 0) {
|
|
|
|
+ report.setCheckerId(user.getId());
|
|
|
|
+ }
|
|
|
|
+ prodProcedureTeam.setCheckerId(report.getCheckerId());
|
|
|
|
+ }
|
|
|
|
+ prodProcedureTeam.setUpdateTime(LocalDateTime.now());
|
|
|
|
+ prodProcedureTeam.setProgress(report.getProgress());
|
|
if (existReport == null) {
|
|
if (existReport == null) {
|
|
reportMapper.insert(report);
|
|
reportMapper.insert(report);
|
|
} else {
|
|
} else {
|
|
- reportMapper.updateById(existReport);
|
|
|
|
|
|
+ report.setId(existReport.getId());
|
|
|
|
+ reportMapper.updateById(report);
|
|
}
|
|
}
|
|
|
|
+ //更新自己执行的工序上的进度
|
|
|
|
+
|
|
|
|
+ prodProcedureTeamMapper.updateById(prodProcedureTeam);
|
|
return httpRespMsg;
|
|
return httpRespMsg;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -188,7 +207,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
user.setPassword(null);
|
|
user.setPassword(null);
|
|
userList.add(user);
|
|
userList.add(user);
|
|
} else if (checkType == 1) {
|
|
} else if (checkType == 1) {
|
|
- userList = userMapper.selectList(new QueryWrapper<User>().select("id, name, corpwx_userid").eq("department_id", deptId));
|
|
|
|
|
|
+ List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
|
|
|
|
+ List<Integer> deptIncludeSubDeptIds = departmentService.getDeptIncludeSubDeptIds(deptId, allDeptList);
|
|
|
|
+ userList = userMapper.selectList(new QueryWrapper<User>().select("id, name, corpwx_userid").in("department_id", deptIncludeSubDeptIds));
|
|
} else if (checkType == 2) {
|
|
} else if (checkType == 2) {
|
|
List<DepartmentOtherManager> otherManagers = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("department_id", deptId));
|
|
List<DepartmentOtherManager> otherManagers = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("department_id", deptId));
|
|
List<String> userIds = otherManagers.stream().map(DepartmentOtherManager::getOtherManagerId).collect(Collectors.toList());
|
|
List<String> userIds = otherManagers.stream().map(DepartmentOtherManager::getOtherManagerId).collect(Collectors.toList());
|
|
@@ -212,7 +233,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
if (functionList.size() == 0) {
|
|
if (functionList.size() == 0) {
|
|
String leaderId = user.getId();
|
|
String leaderId = user.getId();
|
|
//不是项目经理,只看自己的报告
|
|
//不是项目经理,只看自己的报告
|
|
- List<Map<String, Object>> list = new ArrayList<>();
|
|
|
|
|
|
+ List<ReportVO> list = new ArrayList<>();
|
|
//没有指定员工或者指定的就是自己
|
|
//没有指定员工或者指定的就是自己
|
|
if (targetUid == null || targetUid.equals(user.getId())) {
|
|
if (targetUid == null || targetUid.equals(user.getId())) {
|
|
//查看自己的日报
|
|
//查看自己的日报
|
|
@@ -227,10 +248,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
double reportTime = 0;
|
|
double reportTime = 0;
|
|
BigDecimal total = new BigDecimal(0);
|
|
BigDecimal total = new BigDecimal(0);
|
|
int state = 1;
|
|
int state = 1;
|
|
- for (Map<String, Object> m : list) {
|
|
|
|
- double t = (double) m.get("time");
|
|
|
|
|
|
+ for (ReportVO m : list) {
|
|
|
|
+ double t = m.getWorkingTime();
|
|
reportTime += t;
|
|
reportTime += t;
|
|
- total = total.add((BigDecimal)m.get("cost"));
|
|
|
|
|
|
+ total = total.add(m.getCost());
|
|
}
|
|
}
|
|
|
|
|
|
DecimalFormat df = new DecimalFormat("0.00");
|
|
DecimalFormat df = new DecimalFormat("0.00");
|
|
@@ -1480,7 +1501,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
Optional<Map<String, Object>> first = reportNameByDate.stream().filter(r -> r.get("id").equals(u.getId())).findFirst();
|
|
Optional<Map<String, Object>> first = reportNameByDate.stream().filter(r -> r.get("id").equals(u.getId())).findFirst();
|
|
//获取角色请假情况 存在同条件下多条请假记录
|
|
//获取角色请假情况 存在同条件下多条请假记录
|
|
if (first.isPresent()) {
|
|
if (first.isPresent()) {
|
|
- user.put("state", first.get().get("state"));
|
|
|
|
user.put("workingTime", first.get().get("workingTime"));
|
|
user.put("workingTime", first.get().get("workingTime"));
|
|
}
|
|
}
|
|
userMapList.add(user);
|
|
userMapList.add(user);
|
|
@@ -1809,7 +1829,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
Integer corpwxDeptId = (Integer) data.get("corpwxDeptId");
|
|
Integer corpwxDeptId = (Integer) data.get("corpwxDeptId");
|
|
Map<String, Object> map = new HashMap<>();
|
|
Map<String, Object> map = new HashMap<>();
|
|
String date = new SimpleDateFormat("yyyy-MM-dd").format((Date)data.get("createDate"));
|
|
String date = new SimpleDateFormat("yyyy-MM-dd").format((Date)data.get("createDate"));
|
|
- map.put("workingTime", data.get("workingTime"));
|
|
|
|
|
|
+ map.put("workingTime", (double)data.get("workingTime"));
|
|
map.put("createDate", date);
|
|
map.put("createDate", date);
|
|
if (id.equals(lastUserId)) {
|
|
if (id.equals(lastUserId)) {
|
|
//同一个用户的数据
|
|
//同一个用户的数据
|
|
@@ -1826,6 +1846,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
lastUserData.worktimeList.add(map);
|
|
lastUserData.worktimeList.add(map);
|
|
userMonthWorks.add(lastUserData);
|
|
userMonthWorks.add(lastUserData);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ lastUserData.totalWorkTime += (double)map.get("workingTime");
|
|
lastUserId = id;
|
|
lastUserId = id;
|
|
}
|
|
}
|
|
|
|
|