Ver código fonte

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper

Lijy 2 anos atrás
pai
commit
85ddd8f625

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/CompanyDingdingServiceImpl.java

@@ -242,7 +242,7 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
     public void sendReportApproveMsg(Integer companyId, Long agentId, String auditorName, String evaluate, LocalDate date, String useridList) {
         if (isDev) return;
         CompanyDingding dingding = getOne(new QueryWrapper<CompanyDingding>().eq("company_id", companyId));
-        TimeType timeType = timeTypeMapper.selectById(new QueryWrapper<TimeType>().eq("company_id", companyId));
+        TimeType timeType = timeTypeMapper.selectById(companyId);
         DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
         if (isPrivateDeploy) {
             List<OapiMessageCorpconversationAsyncsendV2Request.Form> form=new ArrayList<>();

+ 21 - 10
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java

@@ -1164,7 +1164,10 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             //加上待分摊的无工时项目,如果当前项目列表没有的话
             if (assignNoProUser != null && assignNoProUser && noProjectItem.project != null) {
                 List<FinanceProjects> financeProjects = financeProjectsMapper.selectList(new QueryWrapper<FinanceProjects>().eq("company_id", companyId).eq("ymonth", yearMonth));
-
+                if (financeProjects.size() == 0) {
+                    httpRespMsg.setError("缺少待分摊项目,请重新设置并保存分摊比例设置");
+                    return httpRespMsg;
+                }
                 //检查是否已经设置好分配规则
                 ProjectPercentage percentage = projectPercentageMapper.selectOne(new QueryWrapper<ProjectPercentage>().eq("company_id", companyId).eq("ymonth", yearMonth));
                 List<Map> noPUserDataList = new ArrayList<>();
@@ -1176,8 +1179,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     //获取设置的项目
                     String data = percentage.getData();
                     JSONArray parse = JSONArray.parseArray(data);
+
                     //获取到无项目人员配置的项目
-                    financeProjects.forEach(f->{
+                    for (FinanceProjects f : financeProjects) {
                         for (int i = 0; i < parse.size(); i++) {
                             JSONObject json = parse.getJSONObject(i);
                             String userId = json.getString("id");
@@ -1187,16 +1191,22 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                             userCostMap.put("creatorId", userId);
                             userCostMap.put("workingTime", 0.0f);
                             double percent = json.getDouble(f.getProjectId()+"");
-                            Finance finance = noProjectUser.stream().filter(no -> no.getUserId().equals(userId)).findFirst().get();
+                            Optional<Finance> first = noProjectUser.stream().filter(no -> no.getUserId().equals(userId)).findFirst();
+                            if (first.isPresent()) {
+                                Finance finance = first.get();
 //                            BigDecimal curProjectCost = finance.getTotalCost().multiply(new BigDecimal(percent)).divide(new BigDecimal(100));
-                            userCostMap.put("finance", finance);
-                            userCostMap.put("percent", percent);
-                            userCostMap.put("project", f.getProjectId());
-                            userCostMap.put("projectId", f.getProjectId());
-                            userCostMap.put("projectCode", f.getProjectCode());
-                            noPUserDataList.add(userCostMap);
+                                userCostMap.put("finance", finance);
+                                userCostMap.put("percent", percent);
+                                userCostMap.put("project", f.getProjectName());
+                                userCostMap.put("projectId", f.getProjectId());
+                                userCostMap.put("projectCode", f.getProjectCode());
+                                noPUserDataList.add(userCostMap);
+                                System.out.println("添加="+f.getProjectId()+", "+f.getProjectName()+", "+percent);
+                            } else {
+                                System.out.println("未找到人员=="+username);
+                            }
                         }
-                    });
+                    }
                 }
 
 
@@ -1221,6 +1231,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 //按比例分配
                 for (ProjectSumItem p : pList) {
                     List<Map> filterUserList = noPUserDataList.stream().filter(map->((Integer)map.get("projectId")).equals(p.projectId)).collect(Collectors.toList());
+                    System.out.println("过滤到的无项目人员size==="+filterUserList.size());
                     for (Map f : filterUserList) {
                         String curUserId = (String)f.get("creatorId");
                         double percent = (double)f.get("percent");

+ 28 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectPercentageServiceImpl.java

@@ -26,6 +26,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -61,7 +62,7 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
             f.setCompanyId(user.getCompanyId());
             f.setYmonth(ymonth);
         });
-        financeProjectsService.remove(new QueryWrapper<FinanceProjects>().eq("company_id", user.getCompanyId()));
+        financeProjectsService.remove(new QueryWrapper<FinanceProjects>().eq("company_id", user.getCompanyId()).eq("ymonth", ymonth));
         financeProjectsService.saveBatch(financeProjects);
 
         ProjectPercentage projectPercentage = projectPercentageMapper.selectOne(new QueryWrapper<ProjectPercentage>().eq("company_id", user.getCompanyId())
@@ -90,7 +91,7 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
         Integer companyId = user.getCompanyId();
         List<Project> allProjects = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
 
-        List<FinanceProjects> flist = financeProjectsService.list(new QueryWrapper<FinanceProjects>().eq("company_id", user.getCompanyId()));
+        List<FinanceProjects> flist = financeProjectsService.list(new QueryWrapper<FinanceProjects>().eq("company_id", user.getCompanyId()).eq("ymonth", ymonth));
         ProjectPercentage projectPercentage = projectPercentageMapper.selectOne(new QueryWrapper<ProjectPercentage>().eq("company_id",user.getCompanyId())
                 .eq("ymonth", ymonth));
 
@@ -153,6 +154,7 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
             String dataStringOne;
             List<String> projectList = new ArrayList<>();
             List<Project> allProjectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
+            List<FinanceProjects> filterFPList = new ArrayList<>();
             int projectNameStartIndex=1;
             int dataCount = 0;
             for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
@@ -217,7 +219,22 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
                         }
                         String stringCellValue = row.getCell(i).getStringCellValue();
                         s+=Integer.parseInt(stringCellValue);
-                        jsonObject.put(projectList.get(i-1),stringCellValue);
+                        String pid = projectList.get(i-1);
+                        jsonObject.put(pid,stringCellValue);
+                        if (!filterFPList.stream().anyMatch(f->f.getProjectId().equals(pid))) {
+                            //不存在的项目,要加进去
+                            FinanceProjects fp = new FinanceProjects();
+                            fp.setCompanyId(companyId);
+                            fp.setYmonth(ymonth);
+                            Optional<Project> first = allProjectList.stream().filter(ap -> ap.getId().equals(pid)).findFirst();
+                            if (first.isPresent()) {
+                                Project project = first.get();
+                                fp.setProjectId(project.getId());
+                                fp.setProjectName(project.getProjectName());
+                                fp.setProjectCode(project.getProjectCode());
+                                filterFPList.add(fp);
+                            }
+                        }
                     }
                     dataStringOne=jsonObject.toJSONString();
                     if(rowIndex!=rowNum){
@@ -251,6 +268,14 @@ public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageM
                 projectPercentage.setCompanyId(companyId);
                 projectPercentageService.save(projectPercentage);
             }
+            //保存projectFinance(当月的待分摊项目)表
+            List<FinanceProjects> list = financeProjectsService.list(new QueryWrapper<FinanceProjects>().eq("company_id", companyId).eq("ymonth", ymonth));
+            List<Integer> removeIds = list.stream().filter(li -> !filterFPList.stream().anyMatch(fp -> fp.getProjectId().equals(li.getProjectId()))).map(FinanceProjects::getId).collect(Collectors.toList());
+            if (removeIds.size() > 0) {
+                financeProjectsService.removeByIds(removeIds);
+            }
+            List<FinanceProjects> addData = filterFPList.stream().filter(fp -> !list.stream().anyMatch(li -> li.getProjectId().equals(fp.getProjectId()))).collect(Collectors.toList());
+            financeProjectsService.saveBatch(addData);
             msg.data=dataCount;
             return msg;
         }catch (IOException e){

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -2781,6 +2781,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                     SubProject sp = new SubProject();
                                     sp.setName(s);
                                     sp.setProjectId(project.getId());
+                                    sp.setCompanyId(user.getCompanyId());
                                     subProjectMapper.insert(sp);
                                 }
                             }

+ 6 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -734,7 +734,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         }
 
         //批量新增或更新
-        reportService.saveOrUpdateBatch(reportList);
+        if (reportList.size() > 0) {
+            reportService.saveOrUpdateBatch(reportList);
+        } else {
+            //没有需要更新的,则
+        }
+
         //更新任务完成状态
         List<Integer> finishedTaskIds = reportList.stream().filter(r->r.getTaskId() != null && r.getTaskId() != 0 && r.getTaskFinish() == 1)
                 .map(Report::getTaskId).collect(Collectors.toList());
@@ -898,9 +903,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         reportLogService.saveBatch(addLogList);
     }
 
-
-
-
     private void loadPicFromCorpWXServer(Integer companyId, List<Report> reportList) {
         List<Report> batchUpdateList = new ArrayList<>();
         if (wxCorpInfoMapper.selectCount(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId)) > 0) {

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -363,7 +363,7 @@
                   <el-table-column prop="groupName" label="分组名称" min-width="100"></el-table-column>
                   <el-table-column prop="workingTime" label="工时(h)" min-width="50" align="right" header-align="center">
                     <template slot-scope="scope">
-                      <span style="margin-right:20px">{{scope.row.leftworkingTime ? scope.row.leftworkingTime.toFixed(1) + '(h)' : ''}}</span>
+                      <span style="margin-right:20px">{{scope.row.workingTime ? scope.row.workingTime.toFixed(1) + '(h)' : ''}}</span>
                     </template>
                   </el-table-column>
                 </el-table-column>
@@ -377,7 +377,7 @@
                   <el-table-column prop="groupName" label="分组名称" min-width="100"></el-table-column>
                   <el-table-column prop="workingTime" label="工时(h)" min-width="50" align="right" header-align="center">
                     <template slot-scope="scope">
-                      <span style="margin-right:20px">{{scope.row.rightworkingTime ? scope.row.rightworkingTime.toFixed(1) + '(h)' : ''}}</span>
+                      <span style="margin-right:20px">{{scope.row.workingTime ? scope.row.workingTime.toFixed(1) + '(h)' : ''}}</span>
                     </template>
                   </el-table-column>
                 </el-table-column>

+ 2 - 3
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

@@ -762,9 +762,9 @@
                             this.form.domains[i].isOvertime = false
                             delete this.form.domains[i].overtimeHours
                         }
-                        allhour += this.form.domains[i].workingTime
+                        allhour += this.form.domains[i].workingTime*1
                     }
-                    if(allhour > this.user.timeType.allday && this.isWeekend){
+                    if(allhour > this.user.timeType.allday && !this.isWeekend){
                         this.form.domains[this.clickTimeIndex].isOvertime = true
                         this.form.domains[this.clickTimeIndex].overtimeHours = allhour - this.user.timeType.allday
                     }
@@ -1276,7 +1276,6 @@
                 this.form.domains.push(item)
                 this.canEdit = true
                 this.$forceUpdate()
-                console.log('cancanneed',this.flgLg);
             },
 
             // 移除项目

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/weekEdit.vue

@@ -1254,7 +1254,7 @@
                     id: null,
                     projectId: "",
                     projectName: "",
-                    workingTime: this.reportTimeType.type==3?(leftProgress*this.reportTimeType.allday/100).toFixed(1):"4.0",
+                    workingTime: this.reportTimeType.type==3?(leftProgress*this.reportTimeType.allday/100).toFixed(1): 4.0,
                     progress:leftProgress,
                     content: "",
                     state: 2,