Преглед на файлове

针对明夷,填写日报和按周填报也生成批量待审核记录

seyason преди 1 година
родител
ревизия
948d74b813

+ 48 - 20
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -869,26 +869,54 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             //成都明夷电子,需要生成批量记录
             Company company = companyMapper.selectById(companyId);
             System.out.println(company.getCompanyName()+", date==="+date);
-            if (company.getCompanyName().equals("成都明夷电子科技有限公司") &&  date != null && date.contains("@")) {
-                String[] split = date.split("\\@");
-                String startDate = split[0];
-                String endDate = split[1];
-                //删除已有的记录
-                reportBatchMapper.delete(new QueryWrapper<ReportBatch>().eq("start_date", startDate).eq("end_date", endDate).eq("creator_id", reportList.get(0).getCreatorId()));
-                DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                ReportBatch batch = new ReportBatch();
-                batch.setCreatorId(reportList.get(0).getCreatorId());
-                batch.setState(0);
-                batch.setCompanyId(companyId);
-                batch.setStartDate(LocalDate.parse(startDate, dateTimeFormatter));
-                batch.setEndDate(LocalDate.parse(endDate, dateTimeFormatter));
-                batch.setTotalWorkTime(reportList.stream().mapToDouble(Report::getWorkingTime).sum());
-                reportBatchMapper.insert(batch);
-                System.out.println("生成了批记录batchId==="+batch.getId());
-                //更新batchId
-                reportList.forEach(r->r.setBatchId(batch.getId()));
-                List<Integer> collect = reportList.stream().map(Report::getId).collect(Collectors.toList());
-                reportMapper.update(new Report().setBatchId(batch.getId()), new QueryWrapper<Report>().in("id", collect));
+            if (company.getCompanyName().equals("成都明夷电子科技有限公司")) {
+                if (date.contains("@")) {
+                    //批量填报
+                    String[] split = date.split("\\@");
+                    String startDate = split[0];
+                    String endDate = split[1];
+                    //删除已有的记录
+                    reportBatchMapper.delete(new QueryWrapper<ReportBatch>().eq("start_date", startDate).eq("end_date", endDate).eq("creator_id", reportList.get(0).getCreatorId()));
+                    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                    ReportBatch batch = new ReportBatch();
+                    batch.setCreatorId(reportList.get(0).getCreatorId());
+                    batch.setState(0);
+                    batch.setCompanyId(companyId);
+                    batch.setStartDate(LocalDate.parse(startDate, dateTimeFormatter));
+                    batch.setEndDate(LocalDate.parse(endDate, dateTimeFormatter));
+                    batch.setTotalWorkTime(reportList.stream().mapToDouble(Report::getWorkingTime).sum());
+                    reportBatchMapper.insert(batch);
+                    System.out.println("生成了批记录batchId==="+batch.getId());
+                    //更新batchId
+                    reportList.forEach(r->r.setBatchId(batch.getId()));
+                    List<Integer> collect = reportList.stream().map(Report::getId).collect(Collectors.toList());
+                    reportMapper.update(new Report().setBatchId(batch.getId()), new QueryWrapper<Report>().in("id", collect));
+                } else {
+                    //每日或按周填报,为每天生成一条记录
+                    List<LocalDate> dateList = reportList.stream().map(Report::getCreateDate).collect(Collectors.toList());
+                    List<Report> updateBIdList = new ArrayList<>();
+                    for (Report r : reportList) {
+                        LocalDate curDate = r.getCreateDate();
+                        //删除已有的记录
+                        reportBatchMapper.delete(new QueryWrapper<ReportBatch>().eq("start_date", curDate).eq("end_date", curDate).eq("creator_id", r.getCreatorId()));
+
+                        ReportBatch batch = new ReportBatch();
+                        batch.setCreatorId(reportList.get(0).getCreatorId());
+                        batch.setState(0);
+                        batch.setCompanyId(companyId);
+                        batch.setStartDate(curDate);
+                        batch.setEndDate(curDate);
+                        batch.setTotalWorkTime(reportList.stream().filter(item->item.getCreateDate().equals(curDate) && item.getCreatorId().equals(r.getCreatorId())).mapToDouble(Report::getWorkingTime).sum());
+                        reportBatchMapper.insert(batch);
+                        //更新batchId
+                        Report uItem = new Report();
+                        uItem.setId(r.getId());
+                        uItem.setBatchId(batch.getId());
+                        updateBIdList.add(uItem);
+                    }
+                    reportService.updateBatchById(updateBIdList);
+                }
+
             }
         } else {
             //没有需要更新的,则