|
@@ -42,8 +42,9 @@ public class WorkHourStatisticsRecently {
|
|
|
private final ChuanyunWeekMemberHourDao chuanyunWeekMemberHourDao;
|
|
|
private final ChuanyunSelfCostDao chuanyunSelfCostDao;
|
|
|
private final ChuanyunProjectCostDao chuanyunProjectCostDao;
|
|
|
+ private final ChuanyunUserDepartmentNameDao chuanyunUserDepartmentNameDao;
|
|
|
|
|
|
- public WorkHourStatisticsRecently(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunWorkHourDao chuanyunWorkHourDao, ChuanyunSelfWorkHourDao chuanyunSelfWorkHourDao, ChuanyunWeekMemberHourDao chuanyunWeekMemberHourDao, ChuanyunSelfCostDao chuanyunSelfCostDao, ChuanyunProjectCostDao chuanyunProjectCostDao) {
|
|
|
+ public WorkHourStatisticsRecently(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunWorkHourDao chuanyunWorkHourDao, ChuanyunSelfWorkHourDao chuanyunSelfWorkHourDao, ChuanyunWeekMemberHourDao chuanyunWeekMemberHourDao, ChuanyunSelfCostDao chuanyunSelfCostDao, ChuanyunProjectCostDao chuanyunProjectCostDao, ChuanyunUserDepartmentNameDao chuanyunUserDepartmentNameDao) {
|
|
|
this.chuanYunManager = chuanYunManager;
|
|
|
this.chuanyunLogDao = chuanyunLogDao;
|
|
|
this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
|
|
@@ -53,6 +54,7 @@ public class WorkHourStatisticsRecently {
|
|
|
this.chuanyunWeekMemberHourDao = chuanyunWeekMemberHourDao;
|
|
|
this.chuanyunSelfCostDao = chuanyunSelfCostDao;
|
|
|
this.chuanyunProjectCostDao = chuanyunProjectCostDao;
|
|
|
+ this.chuanyunUserDepartmentNameDao = chuanyunUserDepartmentNameDao;
|
|
|
}
|
|
|
|
|
|
@Scheduled(fixedDelay = 3600000L)
|
|
@@ -111,6 +113,25 @@ public class WorkHourStatisticsRecently {
|
|
|
//根据projectId获取code,如果是生产项目,则不用处理
|
|
|
//针对前期测试数据,可能出现日志为空的情况,跳过不处理
|
|
|
chuanyunLogDO.getDayLogList().forEach(chuanyunDayLog -> {
|
|
|
+ //离职人员补全用户Id及部门ID
|
|
|
+ if (StringUtils.isEmpty(chuanyunLogDO.getUserId())){
|
|
|
+ var name="";
|
|
|
+ if (StringUtils.isEmpty(chuanyunDayLog.getContent())){
|
|
|
+ name=chuanyunLogDO.getName();
|
|
|
+ }else {
|
|
|
+ name=chuanyunDayLog.getContent();
|
|
|
+ }
|
|
|
+ chuanyunLogDO.setUserId(getCharacters(name));
|
|
|
+ ChuanyunUserDepartmentNameDO chuanyunUserDepartmentNameDO = chuanyunUserDepartmentNameDao.findByUserName(chuanyunLogDO.getUserId());
|
|
|
+ if (chuanyunUserDepartmentNameDO!=null){
|
|
|
+ chuanyunLogDO.setDepartmentName(chuanyunUserDepartmentNameDO.getDepartmentName());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ ChuanyunUserCompanyDO chuanyunUserCompanyDO = chuanyunUserCompanyDao.findByUserId(chuanyunLogDO.getUserObject().getObjectId());
|
|
|
+ if (chuanyunUserCompanyDO!=null){
|
|
|
+ chuanyunLogDO.setDepartmentName(getDepartmentName(chuanyunUserCompanyDO.getDepartment()));
|
|
|
+ }
|
|
|
+ }
|
|
|
try{
|
|
|
if(!"生产项目".equals(chuanyunDayLog.getProjectType())&& StringUtils.isEmpty(chuanyunDayLog.getProjectId())){
|
|
|
log.info(chuanyunLogDO+"");
|
|
@@ -647,4 +668,19 @@ public class WorkHourStatisticsRecently {
|
|
|
log.error(e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private String getCharacters(String str){
|
|
|
+ String reg = "[^\u4e00-\u9fa5]";
|
|
|
+ str = str.replaceAll(reg, " ");
|
|
|
+ return str.trim();
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getDepartmentName(String str){
|
|
|
+ if (str.contains("/")){
|
|
|
+ String[] department = str.split("/");
|
|
|
+ return department[department.length-1];
|
|
|
+ }else {
|
|
|
+ return str;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|