|
@@ -45,7 +45,6 @@ import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
-import java.time.Period;
|
|
|
import java.time.chrono.ChronoLocalDate;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
@@ -1113,7 +1112,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
//统计每个项目中的人员时间成本投入
|
|
|
int curProjectId = (Integer)map.get("id");
|
|
|
- List<Map<String, Object>> membList = projectMapper.getProjectCost(companyId,startDate, endDate, curProjectId, userId,deptIds,filterDeptIds);
|
|
|
+ List<Map<String, Object>> membList = projectMapper.getProjectCost(companyId,startDate, endDate, curProjectId,null, userId,deptIds,filterDeptIds);
|
|
|
map.put("membList", membList);
|
|
|
for (Map<String, Object> membMap : membList) {
|
|
|
double pTotalTime = 0;
|
|
@@ -1379,7 +1378,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
|
|
|
//获取某个项目每个人分别需要的工时
|
|
|
@Override
|
|
|
- public HttpRespMsg getProjectCost(String startDate, String endDate, Integer projectId, HttpServletRequest request) {
|
|
|
+ public HttpRespMsg getProjectCost(String startDate, String endDate, Integer projectId,Integer stateKey, HttpServletRequest request) {
|
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
try {
|
|
|
User targetUser = userMapper.selectById(request.getHeader("Token"));
|
|
@@ -1420,7 +1419,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
if (timeType.getFixMonthcost() == 0) {
|
|
|
Map<String, Object> resultMap = new HashMap<>();
|
|
|
//数据下 非负责部门人员数据不展示
|
|
|
- List<Map<String, Object>> list = projectMapper.getProjectCost(companyId,startDate, endDate, projectId, null,deptIds,null);
|
|
|
+ List<Map<String, Object>> list = projectMapper.getProjectCost(companyId,startDate, endDate, projectId,stateKey, null,deptIds,null);
|
|
|
BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
|
|
|
for (Map<String, Object> map : list) {
|
|
|
if (!map.containsKey("costMoney")) {
|
|
@@ -1437,7 +1436,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
endDate = endDate + "-31";
|
|
|
List<Map<String, Object>> userMonthTimeCostList = projectMapper.getUserMonthTimeCost(companyId, startDate+"-01", endDate+"-31");
|
|
|
|
|
|
- List<Map<String, Object>> list = projectMapper.getProjectCost(companyId,startDate, endDate, projectId, null,deptIds,null);
|
|
|
+ List<Map<String, Object>> list = projectMapper.getProjectCost(companyId,startDate, endDate, projectId,stateKey, null,deptIds,null);
|
|
|
|
|
|
//检查财务表中是否已经导入成本
|
|
|
List<Finance> financeList = financeMapper.selectList(new QueryWrapper<Finance>().eq("ymonth", startDate).eq("company_id", companyId));
|
|
@@ -4562,20 +4561,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
List<TimelinessRateVO> resultList=new ArrayList<>();
|
|
|
for (User user : userList){
|
|
|
long days =dateTimeList.size();
|
|
|
- //请假的不参与及时率统计
|
|
|
List<LeaveSheet> leaveSheets = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(user.getId())
|
|
|
&&(ls.getStartDate().isAfter(ChronoLocalDate.from(sDate))||ls.getStartDate().isEqual(ChronoLocalDate.from(sDate)))
|
|
|
&&(ls.getEndDate().isBefore(ChronoLocalDate.from(eDate))||ls.getEndDate().isEqual(ChronoLocalDate.from(eDate)))).collect(Collectors.toList());
|
|
|
- if(leaveSheets.size()>0){
|
|
|
- for (LeaveSheet leaveSheet : leaveSheets) {
|
|
|
- Period next = Period.between(leaveSheet.getStartDate(),leaveSheet.getEndDate());
|
|
|
- if(next.getDays()<1){
|
|
|
- days-=1;
|
|
|
- }else {
|
|
|
- days-=next.getDays();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
TimelinessRateVO timelinessRateVO=new TimelinessRateVO();
|
|
|
timelinessRateVO.setUserName(user.getName());
|
|
|
timelinessRateVO.setTimelinessRate(String.valueOf(dft.format(0)));
|
|
@@ -4584,6 +4572,26 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
timelinessRateVO.setDepartmentName(first.get().getDepartmentName());
|
|
|
}
|
|
|
List<Map<String, Object>> mapList = listMap.get(user.getName());
|
|
|
+ //请假的不参与及时率统计
|
|
|
+ if(leaveSheets.size()>0){
|
|
|
+ for (LeaveSheet leaveSheet : leaveSheets) {
|
|
|
+ List<LocalDateTime> leaveDateList = getDays(leaveSheet.getStartDate().atTime(LocalTime.MIN), leaveSheet.getEndDate().atTime(LocalTime.MIN));
|
|
|
+ if(leaveSheet.getTimeDays()<=1){
|
|
|
+ days-=1;
|
|
|
+ }else{
|
|
|
+ days-=leaveSheet.getTimeDays();
|
|
|
+ }
|
|
|
+ for (LocalDateTime localDateTime : leaveDateList) {
|
|
|
+ if(mapList.stream().anyMatch(ml->{
|
|
|
+ Object date = ml.get("createDate");
|
|
|
+ LocalDate createDate = LocalDate.parse(String.valueOf(date));
|
|
|
+ return createDate.isEqual(localDateTime.toLocalDate());
|
|
|
+ })){
|
|
|
+ days++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
//去填未填日报非工作日
|
|
|
for (LocalDateTime localDateTime : dateTimeList) {
|
|
|
if(mapList!=null){
|
|
@@ -4623,6 +4631,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ System.out.println(days);
|
|
|
+ System.out.println(num);
|
|
|
BigDecimal bigDecimal=new BigDecimal(num);
|
|
|
BigDecimal divide;
|
|
|
if(days!=0){
|