|
@@ -12234,7 +12234,33 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
public HttpRespMsg getMembProjectCateRatio(String startDate, String endDate, Integer onlyShowWarning) {
|
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ List<UserCustom> userCustomList = userCustomMapper.selectList(new QueryWrapper<UserCustom>().eq("company_id", companyId));
|
|
|
List<UserCateTimeVo> timeList = projectMapper.getMembProjectCateTime(companyId, startDate, endDate);
|
|
|
+ if(!StringUtils.isEmpty(timeList)){
|
|
|
+ for(UserCateTimeVo u:timeList) {
|
|
|
+ HashMap map=new HashMap();
|
|
|
+ for (int i = 0; i < userCustomList.size(); i++) {
|
|
|
+ switch (i) {
|
|
|
+ case 0:
|
|
|
+ map.put(userCustomList.get(i).getName(),u.getPlate1());
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ map.put(userCustomList.get(i).getName(), u.getPlate2());
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ map.put(userCustomList.get(i).getName(), u.getPlate3());
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ map.put(userCustomList.get(i).getName(), u.getPlate4());
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ map.put(userCustomList.get(i).getName(), u.getPlate5());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ u.setPlateMap(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
CategoryRatioTblSetting categoryRatioTblSetting = categoryRatioTblSettingMapper.selectById(companyId);
|
|
|
//把timeList按照用户分组
|
|
|
Map<String, List<UserCateTimeVo>> userMap = timeList.stream().collect(Collectors.groupingBy(UserCateTimeVo::getUserId));
|
|
@@ -12245,6 +12271,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
map.put("userId", entry.getKey());
|
|
|
List<UserCateTimeVo> value = entry.getValue();
|
|
|
map.put("userName", value.get(0).getName());
|
|
|
+ map.put("plateMap", value.get(0).getPlateMap());
|
|
|
map.put("cateTimeList", value);
|
|
|
//计算这个人的总工时
|
|
|
double sum = value.stream().mapToDouble(UserCateTimeVo::getWorkingTime).sum();
|
|
@@ -12307,8 +12334,60 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
return msg;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg exportMembProjectCateRatio(String startDate, String endDate, Integer onlyShowWarning) {
|
|
|
+ HttpRespMsg msg=new HttpRespMsg();
|
|
|
+ Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
|
|
|
+ HttpRespMsg respMsg = getMembProjectCateRatio(startDate, endDate, onlyShowWarning);
|
|
|
+ Map<String,Object> resultMap= (Map<String, Object>) respMsg.getData();
|
|
|
+ List<Map<String, Object>> mapList = (List<Map<String, Object>>) resultMap.get("userList");
|
|
|
+ List<ProjectCategory> categoryList = (List<ProjectCategory>) resultMap.get("categoryList");
|
|
|
+ List<String> titleList =new ArrayList<>();
|
|
|
+ titleList.add("人员");
|
|
|
+ if(companyId==4374){
|
|
|
+ titleList.add("员工类型");
|
|
|
+ }
|
|
|
+ titleList.add("总工时");
|
|
|
+ List<String> otherTitileList = categoryList.stream().map(ProjectCategory::getName).collect(Collectors.toList());
|
|
|
+ titleList.addAll(otherTitileList);
|
|
|
+ List<List<String>> dataList=new ArrayList<>();
|
|
|
+ dataList.add(titleList);
|
|
|
+ for (Map<String, Object> map : mapList) {
|
|
|
+ List<String> item=new ArrayList<>();
|
|
|
+ if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
+ item.add("$userName="+map.get("userName")+"$");
|
|
|
+ }else {
|
|
|
+ item.add(map.get("userName")+"");
|
|
|
+ }
|
|
|
+ if(companyId==4374){
|
|
|
+ Map<String, Object> plateMap = (Map<String, Object>) map.get("plateMap");
|
|
|
+ item.add(plateMap.containsKey("员工类型")?(plateMap.get("员工类型")==null?"":String.valueOf(plateMap.get("员工类型"))):"");
|
|
|
+ }
|
|
|
+ item.add(map.get("workingTime")+"h");
|
|
|
+ List<UserCateTimeVo> cateTimeList = (List<UserCateTimeVo>) map.get("cateTimeList");
|
|
|
+ for (String categoryName : otherTitileList) {
|
|
|
+ Optional<UserCateTimeVo> first = cateTimeList.stream().filter(f -> String.valueOf(f.getCategoryName()).equals(categoryName)).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ BigDecimal decimal = new BigDecimal(first.get().getPercent());
|
|
|
+ item.add("工时:"+first.get().getWorkingTime()+"h"+"\n"+"占比:"+decimal.setScale(0,RoundingMode.HALF_UP).doubleValue()+"%");
|
|
|
+ }else {
|
|
|
+ item.add("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataList.add(item);
|
|
|
+ }
|
|
|
+ String title= "项目分类工时占比表_"+System.currentTimeMillis();
|
|
|
+ String fileName= title+".xlsx";
|
|
|
+ try {
|
|
|
+ return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName,dataList,path);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
|
|
|
-// public void setDeptIdList(Integer departmentId,List<Integer> deptIds){
|
|
|
+ // public void setDeptIdList(Integer departmentId,List<Integer> deptIds){
|
|
|
// LambdaQueryWrapper<Department> lqw = new LambdaQueryWrapper<>();
|
|
|
// lqw.eq(Department::getSuperiorId,departmentId);
|
|
|
// List<Department> departmentList = departmentMapper.selectList(lqw);
|
|
@@ -13030,7 +13109,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg projectExpendProcessList(Integer projectId, Integer categoryId, String userId, Integer pageIndex, Integer pageSize) {
|
|
|
+ public HttpRespMsg projectExpendProcessList(String startDate,String endDate,Integer projectId, Integer categoryId, String userId, Integer pageIndex, Integer pageSize) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
|
NumberFormat percentFormat = NumberFormat.getPercentInstance();
|
|
@@ -13051,8 +13130,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
if(!viewAll){
|
|
|
if(!incharger){
|
|
|
//只能查看本人的数据
|
|
|
- resultList=projectMapper.projectExpendProcessList(projectId,categoryId,user.getId(),companyId,null,start,size);
|
|
|
- total=projectMapper.projectExpendProcessListCount(projectId,categoryId,user.getId(),companyId,null);
|
|
|
+ resultList=projectMapper.projectExpendProcessList(startDate,endDate,projectId,categoryId,user.getId(),companyId,null,start,size);
|
|
|
+ total=projectMapper.projectExpendProcessListCount(startDate,endDate,projectId,categoryId,user.getId(),companyId,null);
|
|
|
}else {
|
|
|
List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().select(Department::getDepartmentId).eq(Department::getManagerId, user.getId()));
|
|
|
List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", user.getId()));
|
|
@@ -13066,12 +13145,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
List<Integer> branchDepartment = getBranchDepartment(integer, allDeptList);
|
|
|
deptIds.addAll(branchDepartment);
|
|
|
}
|
|
|
- resultList=projectMapper.projectExpendProcessList(projectId,categoryId,userId,companyId,deptIds,start,size);
|
|
|
- total=projectMapper.projectExpendProcessListCount(projectId,categoryId,userId,companyId,deptIds);
|
|
|
+ resultList=projectMapper.projectExpendProcessList(startDate,endDate,projectId,categoryId,userId,companyId,deptIds,start,size);
|
|
|
+ total=projectMapper.projectExpendProcessListCount(startDate,endDate,projectId,categoryId,userId,companyId,deptIds);
|
|
|
}
|
|
|
}else {
|
|
|
- resultList=projectMapper.projectExpendProcessList(projectId,categoryId,userId,companyId,null,start,size);
|
|
|
- total=projectMapper.projectExpendProcessListCount(projectId,categoryId,userId,companyId,null);
|
|
|
+ resultList=projectMapper.projectExpendProcessList(startDate,endDate,projectId,categoryId,userId,companyId,null,start,size);
|
|
|
+ total=projectMapper.projectExpendProcessListCount(startDate,endDate,projectId,categoryId,userId,companyId,null);
|
|
|
}
|
|
|
for (Map<String, Object> map : resultList) {
|
|
|
if(StringUtils.isEmpty(String.valueOf(map.get("executorString")))){
|
|
@@ -13119,13 +13198,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg exportProjectExpendProcessList(Integer projectId, Integer categoryId, String userId) {
|
|
|
+ public HttpRespMsg exportProjectExpendProcessList(String startDate,String endDate,Integer projectId, Integer categoryId, String userId) {
|
|
|
HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
|
NumberFormat percentFormat = NumberFormat.getPercentInstance();
|
|
|
percentFormat.setMaximumFractionDigits(2);
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
|
|
|
- HttpRespMsg resultMsg = projectExpendProcessList(projectId,categoryId,userId,null,null);
|
|
|
+ HttpRespMsg resultMsg = projectExpendProcessList(startDate,endDate,projectId,categoryId,userId,null,null);
|
|
|
Map<String, Object> msgData = (Map<String, Object>) resultMsg.getData();
|
|
|
List<Map<String, Object>> mapList = (List<Map<String, Object>>) msgData.get("record");
|
|
|
List<List<String>> dataList=new ArrayList<>();
|
|
@@ -13147,8 +13226,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
item.add(String.valueOf(map.get("projectName")));
|
|
|
item.add(String.valueOf(map.get("categoryName")));
|
|
|
item.add(String.valueOf(map.get("projectCode")));
|
|
|
- item.add(String.valueOf(map.get("planStartDate")));
|
|
|
- item.add(String.valueOf(map.get("planEndDate")));
|
|
|
+ item.add(map.get("planStartDate")==null?"":String.valueOf(map.get("planStartDate")));
|
|
|
+ item.add(map.get("planEndDate")==null?"":String.valueOf(map.get("planEndDate")));
|
|
|
item.add(String.valueOf(map.get("planHour")));
|
|
|
item.add(String.valueOf(map.get("realHour")));
|
|
|
item.add(String.valueOf(map.get("realCost")));
|
|
@@ -13422,8 +13501,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
list.add(String.valueOf(maps.get(i).get("planHour")));
|
|
|
list.add(String.valueOf(maps.get(i).get("consumeTime")));
|
|
|
list.add(String.valueOf(maps.get(i).get("residue")));
|
|
|
- list.add(String.valueOf(maps.get(i).get("planStartDate")));
|
|
|
- list.add(String.valueOf(maps.get(i).get("planEndDate")));
|
|
|
+ list.add(maps.get(i).get("planStartDate")==null?"":String.valueOf(maps.get(i).get("planStartDate")));
|
|
|
+ list.add(maps.get(i).get("planEndDate")==null?"":String.valueOf(maps.get(i).get("planEndDate")));
|
|
|
}
|
|
|
}
|
|
|
int k=0;
|