|
@@ -89,6 +89,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
@Resource
|
|
|
ExcelExportService excelExportService;
|
|
|
@Resource
|
|
|
+ UserCorpwxTimeMapper userCorpwxTimeMapper;
|
|
|
+ @Resource
|
|
|
private ProjectNotifyUserService projectNotifyUserService;
|
|
|
@Resource
|
|
|
private GroupParticipatorMapper groupParticipatorMapper;
|
|
@@ -7678,6 +7680,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
|
String token = request.getHeader("TOKEN");
|
|
|
User user = userMapper.selectById(token);
|
|
|
+ Company company = companyMapper.selectById(user.getCompanyId());
|
|
|
List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全公司工时分配");
|
|
|
List<SysRichFunction> functionDeptList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责部门工时分配");
|
|
|
List<Integer> deptIds=null;
|
|
@@ -7713,6 +7716,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
LocalDate localStartDate = LocalDate.parse(startDate, dateTimeFormatter);
|
|
|
LocalDate localEndDate = LocalDate.parse(endDate, dateTimeFormatter);
|
|
|
+ //如果没有开通OA模块,有开通企业微信同步考勤,从user_corpwx_time表中获取请假时长
|
|
|
+ List<UserCorpwxTime> userCorpwxTimeList = null;
|
|
|
+ if (company.getPackageOa() == 0 && allDay.getSyncCorpwxTime() == 1) {
|
|
|
+ userCorpwxTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().select("corpwx_userid, sum(ask_leave_time) as ask_leave_time").eq("company_id", companyId).between("create_date", startDate, endDate).groupBy("corpwx_userid"));
|
|
|
+ }
|
|
|
for (Map<String, Object> map : list) {
|
|
|
//取部门名
|
|
|
for (Department department : deptName) {
|
|
@@ -7737,8 +7745,20 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
}
|
|
|
int days = WorkDayCalculateUtils.getWorkDaysListInRange(startDate, endDate, 0).size();
|
|
|
Float allday = allDay.getAllday();
|
|
|
+ float leaveSum = 0.0f;
|
|
|
float standardHours = allday*days;
|
|
|
- float leaveSum = leaveSheetService.leaveTimeSum(companyId,startDate,endDate,standardHours,allday,leaveSheets);
|
|
|
+ if (company.getPackageOa() == 1) {
|
|
|
+ leaveSum = leaveSheetService.leaveTimeSum(companyId,startDate,endDate,standardHours,allday,leaveSheets);
|
|
|
+ } else if (wxCorpInfo != null && userCorpwxTimeList != null) {
|
|
|
+ Optional<UserCorpwxTime> find = userCorpwxTimeList.stream().filter(uct -> uct.getCorpwxUserid().equals(map.get("corpwxUserId"))).findFirst();
|
|
|
+ if (find.isPresent()) {
|
|
|
+ UserCorpwxTime userCorpwxTime = find.get();
|
|
|
+ Double askLeaveTime = userCorpwxTime.getAskLeaveTime();
|
|
|
+ if (askLeaveTime != null) {
|
|
|
+ leaveSum = askLeaveTime.floatValue();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
map.put("leaveSum",leaveSum + "h");
|
|
|
double workTimeDouble = Double.parseDouble(map.get("workingTime").toString()) + leaveSum;
|
|
|
BigDecimal workTimeBig = new BigDecimal(workTimeDouble);
|