|
@@ -134,6 +134,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
private ExcelExportService excelExportService;
|
|
|
@Resource
|
|
|
private PlanProcedureTotalMapper planProcedureTotalMapper;
|
|
|
+ @Resource
|
|
|
+ private ProdProcedureTeamMapper prodProcedureTeamMapper;
|
|
|
+ @Resource
|
|
|
+ private PlanMapper planMapper;
|
|
|
@Autowired
|
|
|
RestTemplate restTemplate;
|
|
|
|
|
@@ -144,14 +148,31 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
public HttpRespMsg submitReport(Report report, HttpServletRequest request) {
|
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
String token = request.getHeader("TOKEN");
|
|
|
+ Integer companyId = userMapper.selectById(token).getCompanyId();
|
|
|
report.setCreatorId(token);
|
|
|
+ LocalDate today = LocalDate.now();
|
|
|
+ report.setCreateDate(today);
|
|
|
+ report.setCompanyId(companyId);
|
|
|
+ //检查今日该员工的该工序是否已经有报工
|
|
|
+ Report existReport = reportMapper.selectOne(new QueryWrapper<Report>().eq("creator_id", token).eq("prod_procedure_id", report.getProdProcedureId()).eq("create_date", today));
|
|
|
//计算工作时长
|
|
|
- planProcedureTotalMapper.selectOne(new QueryWrapper<PlanProcedureTotal>().eq("plan_id", report.getPlanId()).eq("procedure_id", report.getProdProcedureId()));
|
|
|
-
|
|
|
- if (report.getId() == null) {
|
|
|
+ ProdProcedureTeam prodProcedureTeam = prodProcedureTeamMapper.selectById(report.getUserProcedureTeamId());
|
|
|
+ double curReportTime = 0.0;
|
|
|
+ //查找上一次该工序的报工
|
|
|
+ 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) {
|
|
|
+ curReportTime = (prodProcedureTeam.getWorkTime() * (report.getProgress() - lastReport.getProgress())/100);
|
|
|
+ } else {
|
|
|
+ curReportTime = (prodProcedureTeam.getWorkTime() * report.getProgress()/100);
|
|
|
+ }
|
|
|
+ report.setWorkingTime(curReportTime);//本次报工的工时数
|
|
|
+ Plan plan = planMapper.selectById(report.getPlanId());
|
|
|
+ report.setDeptId(plan.getStationId());
|
|
|
+ report.setProductId(plan.getProductId());
|
|
|
+ if (existReport == null) {
|
|
|
reportMapper.insert(report);
|
|
|
} else {
|
|
|
- reportMapper.updateById(report);
|
|
|
+ reportMapper.updateById(existReport);
|
|
|
}
|
|
|
return httpRespMsg;
|
|
|
}
|
|
@@ -241,15 +262,15 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
String id = (String) n.get("id");
|
|
|
userIds.add(id);
|
|
|
});
|
|
|
- List<Map<String, Object>> reportList = reportMapper.getUserReportByDate(date, userIds);
|
|
|
+ List<ReportVO> reportList = reportMapper.getUserReportByDate(date, userIds);
|
|
|
for (Map<String, Object> memb : nameList) {
|
|
|
//再根据人分别获取当天的报告
|
|
|
- List<Map<String, Object>> rList = new ArrayList<Map<String, Object>>();
|
|
|
+ List<ReportVO> rList = new ArrayList<ReportVO>();
|
|
|
BigDecimal total = new BigDecimal(0);
|
|
|
- for (Map<String, Object> report : reportList) {
|
|
|
- if (((String)report.get("creatorId")).equals((String)memb.get("id"))) {
|
|
|
+ for (ReportVO report : reportList) {
|
|
|
+ if (report.getCreatorId().equals((String)memb.get("id"))) {
|
|
|
rList.add(report);
|
|
|
- total = total.add((BigDecimal) report.get("cost"));
|
|
|
+ total = total.add(report.getCost());
|
|
|
}
|
|
|
}
|
|
|
memb.put("data", rList);
|
|
@@ -293,21 +314,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
String id = (String) n.get("id");
|
|
|
userIds.add(id);
|
|
|
});
|
|
|
- List<Map<String, Object>> reportList = reportMapper.getUserReportByDate(date, userIds);
|
|
|
+ List<ReportVO> reportList = reportMapper.getUserReportByDate(date, userIds);
|
|
|
for (Map<String, Object> map : nameList) {
|
|
|
//再根据人分别获取当天的报告
|
|
|
- List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
|
|
|
- BigDecimal total = new BigDecimal(0);
|
|
|
- for (Map<String, Object> report : reportList) {
|
|
|
- if (((String)report.get("creatorId")).equals((String)map.get("id"))) {
|
|
|
+ List<ReportVO> list = new ArrayList<ReportVO>();
|
|
|
+// BigDecimal total = new BigDecimal(0);
|
|
|
+ for (ReportVO report : reportList) {
|
|
|
+ if (report.getCreatorId().equals((String)map.get("id"))) {
|
|
|
list.add(report);
|
|
|
- total = total.add((BigDecimal) report.get("cost"));
|
|
|
+// total = total.add(report.getCost());
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
map.put("data", list);
|
|
|
- map.put("cost", total);
|
|
|
- double reportTime = 0;
|
|
|
+// map.put("cost", total);
|
|
|
+ double reportTime = reportList.stream().filter(r->r.getCreatorId().equals((String)map.get("id"))).mapToDouble(ReportVO::getWorkingTime).sum();
|
|
|
if (list.size() > 0) {
|
|
|
int state = 1;
|
|
|
map.put("state", state);
|