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

中塑新材料的导出日报显示审批流程改成从reportLog获取

QuYueTing преди 8 месеца
родител
ревизия
105c3a3f7f

+ 4 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -1478,8 +1478,8 @@ public class ProjectController {
 
     //依斯倍定制 分组耗用进度表
     @RequestMapping("/groupExpendProcessList")
-    public HttpRespMsg groupExpendProcessList(String startDate,String endDate,Integer projectId,Integer pageIndex,Integer pageSize){
-        return projectService.groupExpendProcessList(startDate,endDate,projectId,pageIndex,pageSize);
+    public HttpRespMsg groupExpendProcessList(String stageName, String startDate,String endDate,Integer projectId,Integer pageIndex,Integer pageSize){
+        return projectService.groupExpendProcessList(stageName, startDate,endDate,projectId,pageIndex,pageSize);
     }
 
     //依斯倍定制 分组耗用图表
@@ -1508,8 +1508,8 @@ public class ProjectController {
 
     //依斯倍定制 导出分组耗用进度表
     @RequestMapping("/exportGroupExpendProcessList")
-    public HttpRespMsg exportGroupExpendProcessList(String startDate,String endDate,Integer projectId){
-        return projectService.exportGroupExpendProcessList(startDate,endDate,projectId);
+    public HttpRespMsg exportGroupExpendProcessList(String stageName, String startDate,String endDate,Integer projectId){
+        return projectService.exportGroupExpendProcessList(stageName, startDate,endDate,projectId);
     }
 
     //依斯倍定制 项目耗用进度表

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -283,9 +283,9 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg exportUserProjectProcessList(Integer deptId, String userId, Integer projectId);
 
-    HttpRespMsg groupExpendProcessList(String startDate, String endDate,Integer projectId,Integer pageIndex,Integer pageSize);
+    HttpRespMsg groupExpendProcessList(String stageName, String startDate, String endDate,Integer projectId,Integer pageIndex,Integer pageSize);
 
-    HttpRespMsg exportGroupExpendProcessList(String startDate, String endDate,Integer projectId);
+    HttpRespMsg exportGroupExpendProcessList(String stageName, String startDate, String endDate,Integer projectId);
 
     HttpRespMsg projectExpendProcessList(String startDate,String endDate,Integer projectId, Integer categoryId, String userId, Integer pageIndex, Integer pageSize);
 

+ 7 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -13617,8 +13617,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg groupExpendProcessList(String startDate, String endDate,Integer projectId,Integer pageIndex,Integer pageSize) {
-        HttpRespMsg msg=new HttpRespMsg();
+    public HttpRespMsg groupExpendProcessList(String stageName, String startDate, String endDate,Integer projectId,Integer pageIndex,Integer pageSize) {
+        HttpRespMsg msg = new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         NumberFormat percentFormat = NumberFormat.getPercentInstance();
         percentFormat.setMaximumFractionDigits(2);
@@ -13662,6 +13662,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         if(projectId!=null){
             queryWrapper.eq(Project::getId,projectId);
         }
+        if (!StringUtils.isEmpty(stageName)) {
+            queryWrapper.eq(Project::getCurrentStageName, stageName);
+        }
         IPage<Project> projectIPage = projectMapper.selectPage(new Page<>(pageIndex, pageSize),queryWrapper);
         List<Project> projectList = projectIPage.getRecords();
         //是否具有查看全部数据的权限
@@ -13906,11 +13909,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg exportGroupExpendProcessList(String startDate, String endDate,Integer projectId) {
+    public HttpRespMsg exportGroupExpendProcessList(String stageName, String startDate, String endDate,Integer projectId) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         NumberFormat percentFormat = NumberFormat.getPercentInstance();
         percentFormat.setMaximumFractionDigits(2);
-        HttpRespMsg resultMsg = groupExpendProcessList(startDate,endDate,projectId,null,null);
+        HttpRespMsg resultMsg = groupExpendProcessList(stageName, startDate,endDate,projectId,null,null);
         Map<String, Object> msgData = (Map<String, Object>) resultMsg.getData();
         List<Map<String, Object>> mapList = (List<Map<String, Object>>) msgData.get("record");
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();

+ 99 - 75
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -5098,7 +5098,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         double time = 0;
                         if (!StringUtils.isEmpty(stringCellValue)) {
                             time = Double.parseDouble(stringCellValue);
-                            if (time > 0) {
+                            if (time >= 0) {
+                                //0也加进去,按删除老的待审核日报来处理
                                 String pName = projectList.get(i-projectNameStartIndex);
                                 Project project = allProjectList.stream().filter(p -> p.getProjectName().equals(pName)||(p.getProjectCode()!=null&&p.getProjectCode().equals(pName))).findFirst().get();
                                 String subPName = subProjectList.get(i-projectNameStartIndex);
@@ -5176,7 +5177,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     msg.setError(MessageUtils.message("finance.importErrorByAllAdopt"));
                     return msg;
                 } else {
-                    reportService.saveBatch(reportList);
+                    //只保存工时不为0的数据
+                    List<Report> fReportList = reportList.stream().filter(r->r.getWorkingTime()>0).collect(Collectors.toList());
+                    reportService.saveBatch(fReportList);
                     msg.data = dataCount;
                     String originName = fileName;
                     //定义一个独立的文件夹
@@ -5956,6 +5959,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             }
             List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
             DateTimeFormatter dft = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
             for (Map<String, Object> map : allReportByDate) {
                 long p1 = System.currentTimeMillis();
                 List<String> item=new ArrayList<>();
@@ -6141,86 +6145,106 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                             item.add("");
                         }
                     }
-                    StringBuilder sb = new StringBuilder();
-                    boolean isFirst = true;
-                    String logMsg = (String)map.get("logMsg");
-                    if (logMsg != null) {
-                        String[] logMsgs = logMsg.split("❤");
-                        for (String msgItem : logMsgs) {
-                            String[] splitItems = msgItem.split("@");
-                            //operator_id@operate_date@msg
-                            String operateDateStr = splitItems[1];
-                            LocalDateTime operateDate = LocalDateTime.parse(operateDateStr, dtf);
-                            ReportLogDetail audit = new ReportLogDetail();
-                            audit.setOperatorId(splitItems[0]);
-                            audit.setOperateDate(operateDate);
-                            audit.setMsg(splitItems[2]);
-                            String auditMsg = audit.getMsg();
-
-                            if (company.getIsInternational() == 1) {
-                                operateDate = operateDate.plusSeconds(offsetSeconds);
+                    //全部导出的形式
+                    if (exportType==0) {
+                        StringBuilder sb = new StringBuilder();
+                        if (user.getCompanyId() == 839) {
+                            //直接从reportLog表查询,更准确
+                            List<ReportLog> rLogList = reportLogMapper.selectList(new QueryWrapper<ReportLog>().like("report_ids", "%"+map.get("id")+"%").eq("company_id", companyId).eq("create_date", map.get("createDate")).eq("creator_id", map.get("creatorId")));
+                            boolean isFirst = true;
+                            if (rLogList.size() > 0) {
+                                for (ReportLog rLog : rLogList) {
+                                    String logMsg = rLog.getMsg();
+                                    String time = dtf.format(rLog.getOperateDate());
+                                    String msg = time + " " + logMsg;
+                                    if (isFirst) {
+                                        isFirst = false;
+                                    } else {
+                                        sb.append("->");
+                                    }
+                                    sb.append(msg);
+                                }
                             }
-                            String time = dtf.format(operateDate);
-                            String msg= "";
-							if (auditMsg != null) {
-								if(needCorpWxTranslate){
-									Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(audit.getOperatorId())).findFirst();
-									if(first.isPresent()){
-                                        User corpwxUser = first.get();
-										String corpwxUserName = corpwxUser.getName();
-										if (!StringUtils.isEmpty(corpwxUserName) && (auditMsg.contains(corpwxUserName))) {
-											if(auditMsg.contains("提交了")){
-												int i = auditMsg.indexOf("提");
-												String substring = auditMsg.substring(0, i);
-												msg = time+" " + auditMsg.replace(substring,"$userName="+corpwxUserName+"$");
-											}else if(auditMsg.contains("审核通过了")){
-												int i = auditMsg.indexOf("审");
-												String substring = auditMsg.substring(0, i);
-												msg = time+" " + auditMsg.replace(substring,"$userName="+corpwxUserName+"$");
-											}else if(auditMsg.contains("驳回了")) {
-												int i = auditMsg.indexOf("驳");
-												String substring = auditMsg.substring(0, i);
-												msg = time+" " + auditMsg.replace(substring,"$userName="+corpwxUserName+"$");
-											}
-										} else {
-											msg = time+" " + auditMsg;
-										}
-									}
-								}else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
-                                    Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(audit.getOperatorId())).findFirst();
-                                    if(first.isPresent()){
-                                        String dingdingUserid = first.get().getDingdingUserid();
-                                        if (!StringUtils.isEmpty(dingdingUserid) && auditMsg.contains(dingdingUserid)) {
-                                            if(auditMsg.contains("提交了")){
-                                                int i = auditMsg.indexOf("提");
-                                                String substring = auditMsg.substring(0, i);
-                                                msg = time+" " + auditMsg.replace(substring,"\\$userName="+dingdingUserid+"$\\");
-                                            }else if(auditMsg.contains("审核通过了")){
-                                                int i = auditMsg.indexOf("审");
-                                                String substring = auditMsg.substring(0, i);
-                                                msg = time+" " + auditMsg.replace(substring,"\\$userName="+dingdingUserid+"$\\");
-                                            }else if(auditMsg.contains("驳回了")) {
-                                                int i = auditMsg.indexOf("驳");
-                                                String substring = auditMsg.substring(0, i);
-                                                msg = time+" " + auditMsg.replace(substring,"\\$userName="+dingdingUserid+"$\\");
+                        } else {
+                            boolean isFirst = true;
+                            String logMsg = (String)map.get("logMsg");
+                            if (logMsg != null) {
+                                String[] logMsgs = logMsg.split("❤");
+                                for (String msgItem : logMsgs) {
+                                    String[] splitItems = msgItem.split("@");
+                                    //operator_id@operate_date@msg
+                                    String operateDateStr = splitItems[1];
+                                    LocalDateTime operateDate = LocalDateTime.parse(operateDateStr, dtf);
+                                    ReportLogDetail audit = new ReportLogDetail();
+                                    audit.setOperatorId(splitItems[0]);
+                                    audit.setOperateDate(operateDate);
+                                    audit.setMsg(splitItems[2]);
+                                    String auditMsg = audit.getMsg();
+
+                                    if (company.getIsInternational() == 1) {
+                                        operateDate = operateDate.plusSeconds(offsetSeconds);
+                                    }
+                                    String time = dtf.format(operateDate);
+                                    String msg= "";
+                                    if (auditMsg != null) {
+                                        if(needCorpWxTranslate){
+                                            Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(audit.getOperatorId())).findFirst();
+                                            if(first.isPresent()){
+                                                User corpwxUser = first.get();
+                                                String corpwxUserName = corpwxUser.getName();
+                                                if (!StringUtils.isEmpty(corpwxUserName) && (auditMsg.contains(corpwxUserName))) {
+                                                    if(auditMsg.contains("提交了")){
+                                                        int i = auditMsg.indexOf("提");
+                                                        String substring = auditMsg.substring(0, i);
+                                                        msg = time+" " + auditMsg.replace(substring,"$userName="+corpwxUserName+"$");
+                                                    }else if(auditMsg.contains("审核通过了")){
+                                                        int i = auditMsg.indexOf("审");
+                                                        String substring = auditMsg.substring(0, i);
+                                                        msg = time+" " + auditMsg.replace(substring,"$userName="+corpwxUserName+"$");
+                                                    }else if(auditMsg.contains("驳回了")) {
+                                                        int i = auditMsg.indexOf("驳");
+                                                        String substring = auditMsg.substring(0, i);
+                                                        msg = time+" " + auditMsg.replace(substring,"$userName="+corpwxUserName+"$");
+                                                    }
+                                                } else {
+                                                    msg = time+" " + auditMsg;
+                                                }
                                             }
-                                        } else {
+                                        }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                                            Optional<User> first = userList.stream().filter(ul -> ul.getId().equals(audit.getOperatorId())).findFirst();
+                                            if(first.isPresent()){
+                                                String dingdingUserid = first.get().getDingdingUserid();
+                                                if (!StringUtils.isEmpty(dingdingUserid) && auditMsg.contains(dingdingUserid)) {
+                                                    if(auditMsg.contains("提交了")){
+                                                        int i = auditMsg.indexOf("提");
+                                                        String substring = auditMsg.substring(0, i);
+                                                        msg = time+" " + auditMsg.replace(substring,"\\$userName="+dingdingUserid+"$\\");
+                                                    }else if(auditMsg.contains("审核通过了")){
+                                                        int i = auditMsg.indexOf("审");
+                                                        String substring = auditMsg.substring(0, i);
+                                                        msg = time+" " + auditMsg.replace(substring,"\\$userName="+dingdingUserid+"$\\");
+                                                    }else if(auditMsg.contains("驳回了")) {
+                                                        int i = auditMsg.indexOf("驳");
+                                                        String substring = auditMsg.substring(0, i);
+                                                        msg = time+" " + auditMsg.replace(substring,"\\$userName="+dingdingUserid+"$\\");
+                                                    }
+                                                } else {
+                                                    msg = time+" " + auditMsg;
+                                                }
+                                            }
+                                        }else {
                                             msg = time+" " + auditMsg;
                                         }
                                     }
-                                }else {
-									msg = time+" " + auditMsg;
-								}
-							}
-                            if (!isFirst) {
-                                sb.append("->");
-                            } else {
-                                isFirst = false;
+                                    if (!isFirst) {
+                                        sb.append("->");
+                                    } else {
+                                        isFirst = false;
+                                    }
+                                    sb.append(msg);
+                                }
                             }
-                            sb.append(msg);
                         }
-                    }
-                    if (exportType==0) {
                         item.add(sb.toString());
                     }
                 }

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -1049,6 +1049,10 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                         }
                     }
                     userCorpwxTime.setWorkHours(time);
+                    //硬编码:跳过woy9TkCAAACItPe1U_gkLcvivCMgpqRg, 肖远。 2024-08-28日的考勤,他的比较特殊。上午的3小时为 1小时请假2小时调休。
+                    if (userCorpwxTime.getCorpwxUserid().equals("woy9TkCAAACItPe1U_gkLcvivCMgpqRg") && date.isEqual(LocalDate.of(2024, 8, 28))) {
+                        continue;
+                    }
                     synchronized (userLock){
                         UserCorpwxTime item = userCorpwxTimeMapper.selectOne(new QueryWrapper<UserCorpwxTime>().eq("corpwx_userid", (String) objects[i])
                                 .eq("create_date", date));