Min 1 年間 前
コミット
ea07098eb3

+ 37 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportLogController.java

@@ -3,8 +3,10 @@ package com.management.platform.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.R;
 import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
+import com.management.platform.service.ReportLogDetailService;
 import com.management.platform.service.ReportLogService;
 import com.management.platform.service.ReportService;
 import com.management.platform.util.ExcelUtil;
@@ -66,6 +68,8 @@ public class ReportLogController {
     private String path;
     @Resource
     private ReportService reportService;
+    @Resource
+    private ReportLogDetailService reportLogDetailService;
 
     @RequestMapping("/get")
     public HttpRespMsg get(String creatorId, String createDate) {
@@ -233,6 +237,7 @@ public class ReportLogController {
             StringBuilder sb=new StringBuilder();
             List<Report> needUpdateReportList=new ArrayList<>();
             List<ReportLog> needUpdateReportLogList=new ArrayList<>();
+            List<ReportLogDetail> needUpdateReportLogDetailList=new ArrayList<>();
             for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
                 XSSFRow row = sheet.getRow(rowIndex);
                 if (row == null) {
@@ -294,7 +299,7 @@ public class ReportLogController {
                             return msg;
                         }
                         String creatorId = reports.get(0).getCreatorId();
-                        if(!creatorId.equals(reportLog.getOperatorId())){
+                        if(reportLog.getMsg().contains("审核通过了")){
                             reportLog.setOperateDate(auditDateTime);
                             needUpdateReportLogList.add(reportLog);
                         }
@@ -302,6 +307,15 @@ public class ReportLogController {
                         reports.forEach(r->{
                             r.setProjectAuditTime(finalAuditDateTime);
                         });
+                        List<Integer> details = reports.stream().map(Report::getId).distinct().collect(Collectors.toList());
+                        List<ReportLogDetail> reportLogDetails = reportLogDetailService.list(new LambdaQueryWrapper<ReportLogDetail>().in(ReportLogDetail::getReportId, details));
+                        reportLogDetails.forEach(r->{
+//                            if(r.getMsg()!=null&&r.getMsg().contains("审核通过了")&&!r.getOperatorId().equals(creatorId)){
+                            if(r.getMsg()!=null&&r.getMsg().contains("审核通过了")){
+                                r.setOperateDate(finalAuditDateTime);
+                                needUpdateReportLogDetailList.add(r);
+                            }
+                        });
                         needUpdateReportList.addAll(reports);
                     }
                     if(createTimeCellValue!=null&&!StringUtils.isEmpty(createTimeCellValue)){
@@ -312,14 +326,29 @@ public class ReportLogController {
                             return msg;
                         }
                         String creatorId = reports.get(0).getCreatorId();
-                        if(creatorId.equals(reportLog.getOperatorId())){
-                            reportLog.setOperateDate(createTimeTime);
-                            needUpdateReportLogList.add(reportLog);
-                        }
+                        Integer id = reports.get(0).getId();
+                        List<ReportLog> list = reportLogService.list(new LambdaQueryWrapper<ReportLog>().apply("FIND_IN_SET(" + id + ",report_ids)"));
+                        List<ReportLog> reportLogs = list.stream().filter(l -> l.getMsg().contains("提交了")).collect(Collectors.toList());
+                        LocalDateTime finalCreateTimeTime1 = createTimeTime;
+                        reportLogs.forEach(r->{
+                            if(creatorId.equals(r.getOperatorId())){
+                                r.setOperateDate(finalCreateTimeTime1);
+                                needUpdateReportLogList.add(r);
+                            }
+                        });
                         LocalDateTime finalCreateTimeTime = createTimeTime;
                         reports.forEach(r->{
                             r.setCreateTime(finalCreateTimeTime);
                         });
+                        List<Integer> details = reports.stream().map(Report::getId).distinct().collect(Collectors.toList());
+                        List<ReportLogDetail> reportLogDetails = reportLogDetailService.list(new LambdaQueryWrapper<ReportLogDetail>().in(ReportLogDetail::getReportId, details));
+                        reportLogDetails.forEach(r->{
+//                            if(r.getMsg()!=null&&r.getMsg().contains("提交了")&&r.getOperatorId().equals(creatorId)){
+                            if(r.getMsg()!=null&&r.getMsg().contains("提交了")){
+                                r.setOperateDate(finalCreateTimeTime1);
+                                needUpdateReportLogDetailList.add(r);
+                            }
+                        });
                         needUpdateReportList.addAll(reports);
                     }
                 }else {
@@ -336,6 +365,9 @@ public class ReportLogController {
             if(needUpdateReportLogList.size()>0){
                 reportLogService.updateBatchById(needUpdateReportLogList);
             }
+            if(needUpdateReportLogDetailList.size()>0){
+                reportLogDetailService.updateBatchById(needUpdateReportLogDetailList);
+            }
             if(sb.length()>0){
                 msg.setMsg("更新完成,其中编号["+sb.toString()+"]的填报数据不存在");
             }else {

+ 16 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/WxCorpInfoController.java

@@ -252,15 +252,22 @@ public class WxCorpInfoController {
                 BigDecimal price=new BigDecimal(0);
                 //初始化 工作时长
                 double workTime=0;
-                //初始话 工作日期
-                JSONArray sp_record = info.getJSONArray("sp_record");
-                //获取最后一个审批节点
-                JSONObject last_sp_record = sp_record.getJSONObject(sp_record.size() - 1);
-                JSONArray details = last_sp_record.getJSONArray("details");
-                //获取最后详情
-                JSONObject lastDetail = details.getJSONObject(details.size() - 1);
-                long sptime = lastDetail.getLongValue("sptime");
-                LocalDate createDate=LocalDate.now();
+//                //初始话 工作日期
+//                JSONArray sp_record = info.getJSONArray("sp_record");
+//                //获取最后一个审批节点
+//                JSONObject last_sp_record = sp_record.getJSONObject(sp_record.size() - 1);
+//                JSONArray details = last_sp_record.getJSONArray("details");
+//                //获取最后详情
+//                JSONObject lastDetail = details.getJSONObject(details.size() - 1);
+//                long sptime = lastDetail.getLongValue("sptime");
+//                LocalDate createDate=LocalDate.now();
+                long apply_time = info.getLongValue("apply_time");
+                LocalDate createDate;
+                if(apply_time>0){
+                    createDate=  DateTimeUtil.getLocalDateFromUnix(apply_time);
+                }else {
+                    createDate  =LocalDate.now();
+                }
                 //初始化工位
                 Integer deptId=0;
                 for (int i1 = 0; i1 < contents.size(); i1++) {
@@ -313,12 +320,6 @@ public class WxCorpInfoController {
                             long s_timestamp = date.getLongValue("s_timestamp");
                             LocalDate localDateFromUnix = DateTimeUtil.getLocalDateFromUnix(s_timestamp);
                             plan.setStartDate(localDateFromUnix);
-                            if(sptime>0){
-                                createDate= DateTimeUtil.getLocalDateFromUnix(sptime);
-                            }else {
-                                createDate=localDateFromUnix;
-                            }
-
                         }
                     }
                     if(title.getJSONObject(0).getString("text").equals("结束时间")){
@@ -327,11 +328,6 @@ public class WxCorpInfoController {
                             long s_timestamp = date.getLongValue("s_timestamp");
                             LocalDate localDateFromUnix = DateTimeUtil.getLocalDateFromUnix(s_timestamp);
                             plan.setEndDate(localDateFromUnix);
-                            if(sptime>0){
-                                createDate= DateTimeUtil.getLocalDateFromUnix(sptime);
-                            }else {
-                                createDate=localDateFromUnix;
-                            }
                         }
                     }
                     if(title.getJSONObject(0).getString("text").equals("工作时长")){

+ 14 - 19
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/task/TimingTask.java

@@ -395,14 +395,20 @@ public class TimingTask {
                 //初始化 工作时长
                 double workTime=0;
                 //初始话 工作日期
-                JSONArray sp_record = info.getJSONArray("sp_record");
-                //获取最后一个审批节点
-                JSONObject last_sp_record = sp_record.getJSONObject(sp_record.size() - 1);
-                JSONArray details = last_sp_record.getJSONArray("details");
-                //获取最后详情
-                JSONObject lastDetail = details.getJSONObject(details.size() - 1);
-                long sptime = lastDetail.getLongValue("sptime");
-                LocalDate createDate=LocalDate.now();
+//                JSONArray sp_record = info.getJSONArray("sp_record");
+//                //获取最后一个审批节点
+//                JSONObject last_sp_record = sp_record.getJSONObject(sp_record.size() - 1);
+//                JSONArray details = last_sp_record.getJSONArray("details");
+//                //获取最后详情
+//                JSONObject lastDetail = details.getJSONObject(details.size() - 1);
+//                long sptime = lastDetail.getLongValue("sptime");
+                long apply_time = info.getLongValue("apply_time");
+                LocalDate createDate;
+                if(apply_time>0){
+                    createDate=  DateTimeUtil.getLocalDateFromUnix(apply_time);
+                }else {
+                    createDate  =LocalDate.now();
+                }
                 //初始化工位
                 Integer deptId=0;
                 for (int i1 = 0; i1 < contents.size(); i1++) {
@@ -455,12 +461,6 @@ public class TimingTask {
                             long s_timestamp = date.getLongValue("s_timestamp");
                             LocalDate localDateFromUnix = DateTimeUtil.getLocalDateFromUnix(s_timestamp);
                             plan.setStartDate(localDateFromUnix);
-                            if(sptime>0){
-                                createDate= DateTimeUtil.getLocalDateFromUnix(sptime);
-                            }else {
-                                createDate=localDateFromUnix;
-                            }
-
                         }
                     }
                     if(title.getJSONObject(0).getString("text").equals("结束时间")){
@@ -469,11 +469,6 @@ public class TimingTask {
                             long s_timestamp = date.getLongValue("s_timestamp");
                             LocalDate localDateFromUnix = DateTimeUtil.getLocalDateFromUnix(s_timestamp);
                             plan.setEndDate(localDateFromUnix);
-                            if(sptime>0){
-                                createDate= DateTimeUtil.getLocalDateFromUnix(sptime);
-                            }else {
-                                createDate=localDateFromUnix;
-                            }
                         }
                     }
                     if(title.getJSONObject(0).getString("text").equals("工作时长")){