浏览代码

1.更新日工时统计

WoNiu 4 年之前
父节点
当前提交
647ff7269a

+ 6 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunSelfWorkHourDao.java

@@ -60,6 +60,8 @@ public interface ChuanyunSelfWorkHourDao extends GalaxisRepository<ChuanyunSelfW
             "chuanyun_self_work_hour.project_id," +
             "chuanyun_self_work_hour.project_id," +
             "chuanyun_self_work_hour.project_type," +
             "chuanyun_self_work_hour.project_type," +
             "chuanyun_self_work_hour.status," +
             "chuanyun_self_work_hour.status," +
+            "chuanyun_self_work_hour.department_name," +
+            "chuanyun_self_work_hour.department_id," +
             "chuanyun_self_work_hour.object_id " +
             "chuanyun_self_work_hour.object_id " +
             "FROM chuanyun_self_work_hour " +
             "FROM chuanyun_self_work_hour " +
             "WHERE chuanyun_self_work_hour.user_id=? " +
             "WHERE chuanyun_self_work_hour.user_id=? " +
@@ -83,6 +85,8 @@ public interface ChuanyunSelfWorkHourDao extends GalaxisRepository<ChuanyunSelfW
             "chuanyun_self_work_hour.project_id," +
             "chuanyun_self_work_hour.project_id," +
             "chuanyun_self_work_hour.project_type," +
             "chuanyun_self_work_hour.project_type," +
             "chuanyun_self_work_hour.status," +
             "chuanyun_self_work_hour.status," +
+            "chuanyun_self_work_hour.department_id," +
+            "chuanyun_self_work_hour.department_name," +
             "chuanyun_self_work_hour.object_id " +
             "chuanyun_self_work_hour.object_id " +
             "FROM chuanyun_self_work_hour " +
             "FROM chuanyun_self_work_hour " +
             "WHERE chuanyun_self_work_hour.user_id=? " +
             "WHERE chuanyun_self_work_hour.user_id=? " +
@@ -109,6 +113,8 @@ public interface ChuanyunSelfWorkHourDao extends GalaxisRepository<ChuanyunSelfW
             "chuanyun_self_work_hour.status," +
             "chuanyun_self_work_hour.status," +
             "chuanyun_self_work_hour.project_type," +
             "chuanyun_self_work_hour.project_type," +
             "chuanyun_self_work_hour.project_id," +
             "chuanyun_self_work_hour.project_id," +
+            "chuanyun_self_work_hour.department_id," +
+            "chuanyun_self_work_hour.department_name," +
             "chuanyun_self_work_hour.object_id "+
             "chuanyun_self_work_hour.object_id "+
             "FROM chuanyun_self_work_hour " +
             "FROM chuanyun_self_work_hour " +
             "WHERE chuanyun_self_work_hour.user_id= ?1 " +
             "WHERE chuanyun_self_work_hour.user_id= ?1 " +

+ 12 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunUserDepartmentNameDao.java

@@ -0,0 +1,12 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSelfWorkHourDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunUserDepartmentNameDO;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunUserDepartmentNameDao extends GalaxisRepository<ChuanyunUserDepartmentNameDO,String> {
+
+    ChuanyunUserDepartmentNameDO findByUserName(String username);
+}

+ 5 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunWorkHourDao.java

@@ -26,6 +26,7 @@ public interface ChuanyunWorkHourDao extends GalaxisRepository<ChuanyunWorkHourD
             "chuanyun_day_log.project_id," +
             "chuanyun_day_log.project_id," +
             "chuanyun_day_log.project_type," +
             "chuanyun_day_log.project_type," +
             "chuanyun_log.user_id," +
             "chuanyun_log.user_id," +
+            "chuanyun_log.department_name," +
             "chuanyun_log.status," +
             "chuanyun_log.status," +
             "chuanyun_day_log.day_log_date " +
             "chuanyun_day_log.day_log_date " +
             "FROM chuanyun_day_log "+
             "FROM chuanyun_day_log "+
@@ -48,6 +49,7 @@ public interface ChuanyunWorkHourDao extends GalaxisRepository<ChuanyunWorkHourD
     @Query(value="SELECT\n" +
     @Query(value="SELECT\n" +
             "\tchuanyun_day_log.project_id,\n" +
             "\tchuanyun_day_log.project_id,\n" +
             "  chuanyun_day_log.project_type,\n" +
             "  chuanyun_day_log.project_type,\n" +
+            "chuanyun_log.department_name," +
             "  chuanyun_log.user_id,\n" +
             "  chuanyun_log.user_id,\n" +
             "  chuanyun_day_log.day_log_date,\n" +
             "  chuanyun_day_log.day_log_date,\n" +
             "  chuanyun_day_log.hours_worked,\n" +
             "  chuanyun_day_log.hours_worked,\n" +
@@ -71,6 +73,7 @@ public interface ChuanyunWorkHourDao extends GalaxisRepository<ChuanyunWorkHourD
             "chuanyun_day_log.project_id," +
             "chuanyun_day_log.project_id," +
             "chuanyun_day_log.project_type," +
             "chuanyun_day_log.project_type," +
             "chuanyun_log.user_id," +
             "chuanyun_log.user_id," +
+            "chuanyun_log.department_name," +
             "chuanyun_log.status," +
             "chuanyun_log.status," +
             "chuanyun_day_log.day_log_date " +
             "chuanyun_day_log.day_log_date " +
             "FROM chuanyun_day_log "+
             "FROM chuanyun_day_log "+
@@ -97,6 +100,7 @@ public interface ChuanyunWorkHourDao extends GalaxisRepository<ChuanyunWorkHourD
             "chuanyun_day_log.project_id," +
             "chuanyun_day_log.project_id," +
             "chuanyun_day_log.project_type," +
             "chuanyun_day_log.project_type," +
             "chuanyun_log.user_id," +
             "chuanyun_log.user_id," +
+            "chuanyun_log.department_name," +
             "chuanyun_log.status," +
             "chuanyun_log.status," +
             "chuanyun_day_log.day_log_date " +
             "chuanyun_day_log.day_log_date " +
             "FROM chuanyun_day_log "+
             "FROM chuanyun_day_log "+
@@ -119,6 +123,7 @@ public interface ChuanyunWorkHourDao extends GalaxisRepository<ChuanyunWorkHourD
             "\tchuanyun_day_log.project_id,\n" +
             "\tchuanyun_day_log.project_id,\n" +
             "\tchuanyun_day_log.project_type,\n" +
             "\tchuanyun_day_log.project_type,\n" +
             "\tchuanyun_log.user_id,\n" +
             "\tchuanyun_log.user_id,\n" +
+            "chuanyun_log.department_name," +
             "\tchuanyun_day_log.day_log_date,\n" +
             "\tchuanyun_day_log.day_log_date,\n" +
             "\tSUM(\n" +
             "\tSUM(\n" +
             "\t\tchuanyun_day_log.hours_worked\n" +
             "\t\tchuanyun_day_log.hours_worked\n" +

+ 4 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSelfWorkHourDO.java

@@ -35,6 +35,10 @@ public class ChuanyunSelfWorkHourDO {
 
 
     private String projectId;
     private String projectId;
 
 
+    private String departmentId;
+
+    private String departmentName;
+
     /**
     /**
      * 流程状态
      * 流程状态
      */
      */

+ 22 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunUserDepartmentNameDO.java

@@ -0,0 +1,22 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+@Slf4j
+@Data
+@Entity(name = "CHUANYUN_USER_DEPARTMENT_NAME")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunUserDepartmentNameDO {
+
+    @Id
+    private int id;
+
+    private String userName;
+
+    private String departmentName;
+}

+ 2 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunWorkHourDO.java

@@ -35,6 +35,8 @@ public class ChuanyunWorkHourDO {
 
 
     private String projectId;
     private String projectId;
 
 
+    private String departmentName;
+
     /**
     /**
      * 流程状态
      * 流程状态
      */
      */

+ 26 - 9
src/main/java/com/galaxis/manatee/task/ChuanyunHumanResourceScheduledTask.java

@@ -4,10 +4,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.galaxis.manatee.constant.ChuanYunConstant;
 import com.galaxis.manatee.constant.ChuanYunConstant;
 import com.galaxis.manatee.dao.*;
 import com.galaxis.manatee.dao.*;
-import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunGroupProjectDO;
-import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunHolidaySalaryRuleDO;
-import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunLogDO;
-import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPayrollDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.*;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.Filter;
 import com.galaxis.manatee.entity.chuanyun.dto.Filter;
 import com.galaxis.manatee.manager.ChuanYunManager;
 import com.galaxis.manatee.manager.ChuanYunManager;
@@ -36,14 +33,16 @@ public class ChuanyunHumanResourceScheduledTask {
     private final ChuanyunHolidaySalaryRuleDao chuanyunHolidaySalaryRuleDao;
     private final ChuanyunHolidaySalaryRuleDao chuanyunHolidaySalaryRuleDao;
     private final ChuanyunUserCompanyDao chuanyunUserCompanyDao;
     private final ChuanyunUserCompanyDao chuanyunUserCompanyDao;
     private final ChuanyunPayrollDao chuanyunPayrollDao;
     private final ChuanyunPayrollDao chuanyunPayrollDao;
+    private final ChuanyunUserDepartmentNameDao chuanyunUserDepartmentNameDao;
 
 
-    public ChuanyunHumanResourceScheduledTask(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunHolidaySalaryRuleDao chuanyunHolidaySalaryRuleDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunPayrollDao chuanyunPayrollDao) {
+    public ChuanyunHumanResourceScheduledTask(ChuanYunManager chuanYunManager, ChuanyunLogDao chuanyunLogDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunHolidaySalaryRuleDao chuanyunHolidaySalaryRuleDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunPayrollDao chuanyunPayrollDao, ChuanyunUserDepartmentNameDao chuanyunUserDepartmentNameDao) {
         this.chuanYunManager = chuanYunManager;
         this.chuanYunManager = chuanYunManager;
         this.chuanyunLogDao = chuanyunLogDao;
         this.chuanyunLogDao = chuanyunLogDao;
         this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
         this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
         this.chuanyunHolidaySalaryRuleDao = chuanyunHolidaySalaryRuleDao;
         this.chuanyunHolidaySalaryRuleDao = chuanyunHolidaySalaryRuleDao;
         this.chuanyunUserCompanyDao = chuanyunUserCompanyDao;
         this.chuanyunUserCompanyDao = chuanyunUserCompanyDao;
         this.chuanyunPayrollDao = chuanyunPayrollDao;
         this.chuanyunPayrollDao = chuanyunPayrollDao;
+        this.chuanyunUserDepartmentNameDao = chuanyunUserDepartmentNameDao;
     }
     }
 
 
     /**
     /**
@@ -70,7 +69,7 @@ public class ChuanyunHumanResourceScheduledTask {
         //由于需要统计流程中的日志,在日志数据同步时将状态为2的数据一并统计
         //由于需要统计流程中的日志,在日志数据同步时将状态为2的数据一并统计
 //        matchersString.add("Status_2,1");
 //        matchersString.add("Status_2,1");
         matchersString.add("Status_6,[1;2;3]");
         matchersString.add("Status_6,[1;2;3]");
-//        matchersString.add("logDate_4,2020-08-01 00:00:00");
+//        matchersString.add("logDate_4,2019-01-01 00:00:00");
         while (flag) {
         while (flag) {
             Long startTime= Instant.now().getEpochSecond();
             Long startTime= Instant.now().getEpochSecond();
             try {
             try {
@@ -104,7 +103,7 @@ public class ChuanyunHumanResourceScheduledTask {
                         //针对前期测试数据,可能出现日志为空的情况,跳过不处理
                         //针对前期测试数据,可能出现日志为空的情况,跳过不处理
                         chuanyunLogDO.getDayLogList().forEach(chuanyunDayLog -> {
                         chuanyunLogDO.getDayLogList().forEach(chuanyunDayLog -> {
                             try{
                             try{
-                                //离职人员补全用户Id
+                                //离职人员补全用户Id及部门ID
                                 if (StringUtils.isEmpty(chuanyunLogDO.getUserId())){
                                 if (StringUtils.isEmpty(chuanyunLogDO.getUserId())){
                                     var name="";
                                     var name="";
                                     if (StringUtils.isEmpty(chuanyunDayLog.getContent())){
                                     if (StringUtils.isEmpty(chuanyunDayLog.getContent())){
@@ -113,6 +112,15 @@ public class ChuanyunHumanResourceScheduledTask {
                                         name=chuanyunDayLog.getContent();
                                         name=chuanyunDayLog.getContent();
                                     }
                                     }
                                     chuanyunLogDO.setUserId(getCharacters(name));
                                     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()));
+                                  }
                                 }
                                 }
 
 
                                 if(!"生产项目".equals(chuanyunDayLog.getProjectType())&& StringUtils.isEmpty(chuanyunDayLog.getProjectId())){
                                 if(!"生产项目".equals(chuanyunDayLog.getProjectType())&& StringUtils.isEmpty(chuanyunDayLog.getProjectId())){
@@ -123,7 +131,7 @@ public class ChuanyunHumanResourceScheduledTask {
                                 }
                                 }
                             }catch (Exception e){
                             }catch (Exception e){
                                 e.printStackTrace();
                                 e.printStackTrace();
-                                log.warn(chuanyunDayLog+"");
+                                log.warn(chuanyunLogDO+"");
                             }
                             }
                         });
                         });
                         //判断所属部门是否正确
                         //判断所属部门是否正确
@@ -253,7 +261,7 @@ public class ChuanyunHumanResourceScheduledTask {
         log.info("凯乐士薪酬项同步"+totalCount);
         log.info("凯乐士薪酬项同步"+totalCount);
     }
     }
 
 
-    @Scheduled(fixedDelay = 3600000L)
+//    @Scheduled(fixedDelay = 3600000L)
     private void updateRecentLog() {
     private void updateRecentLog() {
         var objectMapper = new ObjectMapper();
         var objectMapper = new ObjectMapper();
         var start = 0;
         var start = 0;
@@ -334,4 +342,13 @@ public class ChuanyunHumanResourceScheduledTask {
         str = str.replaceAll(reg, " ");
         str = str.replaceAll(reg, " ");
         return str.trim();
         return str.trim();
     }
     }
+
+    private String getDepartmentName(String str){
+        if (str.contains("/")){
+            String[] department = str.split("/");
+            return department[department.length-1];
+        }else {
+            return str;
+        }
+    }
 }
 }

+ 6 - 1
src/main/java/com/galaxis/manatee/task/WorkHourStatistics.java

@@ -112,6 +112,7 @@ public class WorkHourStatistics {
                 try{
                 try{
                     ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO = new ChuanyunSelfWorkHourDO();
                     ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO = new ChuanyunSelfWorkHourDO();
                     chuanyunSelfWorkHourDO.setStatus(self.getStatus());
                     chuanyunSelfWorkHourDO.setStatus(self.getStatus());
+                    chuanyunSelfWorkHourDO.setDepartmentName(self.getDepartmentName());
                     chuanyunSelfWorkHourDO.setUserId(chuanyunUserCompanyDO.getUserId());
                     chuanyunSelfWorkHourDO.setUserId(chuanyunUserCompanyDO.getUserId());
                     chuanyunSelfWorkHourDO.setProjectType(self.getProjectType());
                     chuanyunSelfWorkHourDO.setProjectType(self.getProjectType());
                     if(ChuanYunConstant.PRODUCTION_PROJECT.equals(self.getProjectType())){
                     if(ChuanYunConstant.PRODUCTION_PROJECT.equals(self.getProjectType())){
@@ -301,12 +302,13 @@ public class WorkHourStatistics {
                         ChuanyunSelfWorkHourDTO chuanyunSelfWorkHourDTO = new ChuanyunSelfWorkHourDTO();
                         ChuanyunSelfWorkHourDTO chuanyunSelfWorkHourDTO = new ChuanyunSelfWorkHourDTO();
                         BeanUtils.copyProperties(chuanyunSelfWorkHourDO,chuanyunSelfWorkHourDTO);
                         BeanUtils.copyProperties(chuanyunSelfWorkHourDO,chuanyunSelfWorkHourDTO);
                         chuanyunSelfWorkHourDTO.setDepartmentId(departmentId);
                         chuanyunSelfWorkHourDTO.setDepartmentId(departmentId);
-                        ChuanyunUserCompanyDO chuanyunUserCompanyDO =chuanyunUserCompanyDao.findByUserId(chuanyunSelfWorkHourDTO.getUserId());
+                        ChuanyunUserCompanyDO chuanyunUserCompanyDO =chuanyunUserCompanyDao.findByUserId(chuanyunSelfWorkHourDO.getUserId());
                         if (chuanyunUserCompanyDO!=null){
                         if (chuanyunUserCompanyDO!=null){
                             chuanyunSelfWorkHourDTO.setUserName(chuanyunUserCompanyDO.getUserName());
                             chuanyunSelfWorkHourDTO.setUserName(chuanyunUserCompanyDO.getUserName());
                         }else{
                         }else{
                             chuanyunSelfWorkHourDTO.setUserName(chuanyunSelfWorkHourDTO.getUserId());
                             chuanyunSelfWorkHourDTO.setUserName(chuanyunSelfWorkHourDTO.getUserId());
                         }
                         }
+                        chuanyunSelfWorkHourDTO.setDepartmentName(chuanyunSelfWorkHourDO.getDepartmentName());
                         List<String> matchers = new ArrayList<>();
                         List<String> matchers = new ArrayList<>();
                         matchers.add("F0000001_2,"+chuanyunSelfWorkHourDO.getProjectId());
                         matchers.add("F0000001_2,"+chuanyunSelfWorkHourDO.getProjectId());
                         matchers.add("F0000002_2,"+chuanyunSelfWorkHourDO.getUserId());
                         matchers.add("F0000002_2,"+chuanyunSelfWorkHourDO.getUserId());
@@ -729,6 +731,9 @@ public class WorkHourStatistics {
         @JsonProperty("F0000005")
         @JsonProperty("F0000005")
         private String projectType;
         private String projectType;
 
 
+        @JsonProperty("F0000009")
+        private String departmentName;
+
         /**
         /**
          * 流程状态
          * 流程状态
          */
          */

+ 2 - 0
src/main/java/com/galaxis/manatee/task/WorkHourStatisticsRecently.java

@@ -185,6 +185,7 @@ public class WorkHourStatisticsRecently {
                 chuanyunSelfWorkHourDO.setStatus(self.getStatus());
                 chuanyunSelfWorkHourDO.setStatus(self.getStatus());
                 chuanyunSelfWorkHourDO.setUserId(chuanyunUserCompanyDO.getUserId());
                 chuanyunSelfWorkHourDO.setUserId(chuanyunUserCompanyDO.getUserId());
                 chuanyunSelfWorkHourDO.setProjectType(self.getProjectType());
                 chuanyunSelfWorkHourDO.setProjectType(self.getProjectType());
+                chuanyunSelfWorkHourDO.setDepartmentName(self.getDepartmentName());
                 if(ChuanYunConstant.PRODUCTION_PROJECT.equals(self.getProjectType())){
                 if(ChuanYunConstant.PRODUCTION_PROJECT.equals(self.getProjectType())){
                     chuanyunSelfWorkHourDO.setProjectId(ChuanYunConstant.PRODUCTION_PROJECT_ID);
                     chuanyunSelfWorkHourDO.setProjectId(ChuanYunConstant.PRODUCTION_PROJECT_ID);
                 }else{
                 }else{
@@ -242,6 +243,7 @@ public class WorkHourStatisticsRecently {
                         if (chuanyunUserCompanyDO!=null){
                         if (chuanyunUserCompanyDO!=null){
                             chuanyunSelfWorkHourDTO.setDepartmentId(chuanyunUserCompanyDO.getDepartmentId());
                             chuanyunSelfWorkHourDTO.setDepartmentId(chuanyunUserCompanyDO.getDepartmentId());
                         }
                         }
+                        chuanyunSelfWorkHourDTO.setDepartmentName(chuanyunSelfWorkHourDO.getDepartmentName());
                         if (!StringUtils.isEmpty(chuanyunSelfWorkHourDO.getProjectId())&&!chuanyunSelfWorkHourDO.getProjectId().equals("production_project")){
                         if (!StringUtils.isEmpty(chuanyunSelfWorkHourDO.getProjectId())&&!chuanyunSelfWorkHourDO.getProjectId().equals("production_project")){
                             List<String> matchers = new ArrayList<>();
                             List<String> matchers = new ArrayList<>();
                             matchers.add("F0000001_2,"+chuanyunSelfWorkHourDO.getProjectId());
                             matchers.add("F0000001_2,"+chuanyunSelfWorkHourDO.getProjectId());