Browse Source

1.修改集团日志部门字段

WoNiu 3 years ago
parent
commit
d131cabf78

+ 3 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunLogDO.java

@@ -51,6 +51,9 @@ public class ChuanyunLogDO extends BasicDO{
      */
     @JsonProperty("user")
     private String userId;
+
+    @JsonProperty("F0000078")
+    private String department;
     /**
      * 日志时间
      */

+ 118 - 0
src/main/java/com/galaxis/manatee/task/HistoryDayWorkHourStatistics.java

@@ -0,0 +1,118 @@
+package com.galaxis.manatee.task;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.galaxis.manatee.dao.ChuanyunGroupProjectDao;
+import com.galaxis.manatee.dao.ChuanyunHisrotyDayWorkHourDao;
+import com.galaxis.manatee.dao.ChuanyunSelfWorkHourDao;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunHisrotyDayWorkHourDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSelfWorkHourDO;
+import com.galaxis.manatee.entity.chuanyun.dto.Filter;
+import com.galaxis.manatee.manager.ChuanYunManager;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.List;
+
+@Service
+@Slf4j
+public class HistoryDayWorkHourStatistics {
+
+    private final Integer pageSize=100;
+    private final ChuanYunManager chuanYunManager;
+    private final ChuanyunSelfWorkHourDao chuanyunSelfWorkHourDao;
+    private final ChuanyunGroupProjectDao chuanyunGroupProjectDao;
+    private final ChuanyunHisrotyDayWorkHourDao chuanyunHisrotyDayWorkHourDao;
+
+    public HistoryDayWorkHourStatistics(ChuanYunManager chuanYunManager, ChuanyunSelfWorkHourDao chuanyunSelfWorkHourDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunHisrotyDayWorkHourDao chuanyunHisrotyDayWorkHourDao) {
+        this.chuanYunManager = chuanYunManager;
+        this.chuanyunSelfWorkHourDao = chuanyunSelfWorkHourDao;
+        this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
+        this.chuanyunHisrotyDayWorkHourDao = chuanyunHisrotyDayWorkHourDao;
+    }
+
+//    @Scheduled(fixedDelay = 3600000L)
+    private void getDataFromChuanyun() {
+        updateHistoryDayWorkHour();
+        standardDayWorkHour();
+    }
+
+    private void updateHistoryDayWorkHour(){
+        var objectMapper=new ObjectMapper();
+        var start=0;
+        var totalCount=0L;
+        var flag=true;
+        while (flag){
+            try{
+                //从氚云查询数据
+                var filter= Filter.instance(start,start+pageSize,true);
+                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunHisrotyDayWorkHourDO.SCHEMA_CODE,filter);
+                if(chuanyunFindAllResponse.getReturnData()==null){
+                    flag=false;
+                    continue;
+                }
+                if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
+                    start+=pageSize;
+                }else{
+                    flag=false;
+                }
+                List<ChuanyunHisrotyDayWorkHourDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                result.forEach(chuanyunHisrotyDayWorkHourDO -> {
+
+                    log.warn(chuanyunHisrotyDayWorkHourDO.toString());
+                    chuanyunHisrotyDayWorkHourDO.setUserId(chuanyunHisrotyDayWorkHourDO.getUserIdObject().getObjectId());
+                    if (!StringUtils.isBlank(chuanyunHisrotyDayWorkHourDO.getProjectId())){
+                        chuanyunHisrotyDayWorkHourDO.setProjectType(chuanyunGroupProjectDao.findByObjectId(chuanyunHisrotyDayWorkHourDO.getProjectId()).getProjectType());
+                    }
+//                    List<ChuanyunHisrotyDayWorkHourDO> oldHisrotyDayWorkHourDO = chuanyunHisrotyDayWorkHourDao.findByUserIdAndProjectIdAndAndDayLogDate(chuanyunHisrotyDayWorkHourDO.getUserId(),chuanyunHisrotyDayWorkHourDO.getProjectId(),chuanyunHisrotyDayWorkHourDO.getDayLogDate());
+//                    if (oldHisrotyDayWorkHourDO.size()>0){
+//                        oldHisrotyDayWorkHourDO.forEach(chuanyunHisrotyDayWorkHourDO1 -> {
+//                            chuanyunHisrotyDayWorkHourDao.delete(chuanyunHisrotyDayWorkHourDO1);
+//                        });
+//                    }
+
+                });
+                chuanyunHisrotyDayWorkHourDao.saveAll(result);
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+    }
+
+
+    private void standardDayWorkHour(){
+        BigDecimal standard = new BigDecimal(8);
+        BigDecimal zero = new BigDecimal(0);
+        List<ChuanyunHisrotyDayWorkHourDO> list = chuanyunHisrotyDayWorkHourDao.findDayHour();
+        list.forEach(chuanyunHisrotyDayWorkHourDO -> {
+            ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO = new ChuanyunSelfWorkHourDO();
+            chuanyunSelfWorkHourDO.setUserId(chuanyunHisrotyDayWorkHourDO.getUserId());
+            chuanyunSelfWorkHourDO.setProjectId(chuanyunHisrotyDayWorkHourDO.getProjectId());
+            chuanyunSelfWorkHourDO.setDayLogDate(chuanyunHisrotyDayWorkHourDO.getDayLogDate());
+            chuanyunSelfWorkHourDO.setStatus("1");
+            chuanyunSelfWorkHourDO.setProjectType(chuanyunHisrotyDayWorkHourDO.getProjectType());
+            ChuanyunHisrotyDayWorkHourDO totalDayHour = chuanyunHisrotyDayWorkHourDao.findTotalDayHour(chuanyunHisrotyDayWorkHourDO.getUserId(),chuanyunHisrotyDayWorkHourDO.getDayLogDate());
+            log.warn(chuanyunHisrotyDayWorkHourDO.toString());
+            if (totalDayHour != null){
+                if (chuanyunHisrotyDayWorkHourDO.getWorkHour().compareTo(standard)<=0){
+                    chuanyunSelfWorkHourDO.setStandardWorkHour(chuanyunHisrotyDayWorkHourDO.getWorkHour());
+                }else {
+                    if (totalDayHour.getWorkHour().compareTo(zero)==1){
+                        BigDecimal personDays = (chuanyunHisrotyDayWorkHourDO.getWorkHour().divide(totalDayHour.getWorkHour(), 2, RoundingMode.HALF_UP)).multiply(standard);
+                        chuanyunSelfWorkHourDO.setStandardWorkHour(personDays);
+                    }
+                }
+            }
+//            ChuanyunSelfWorkHourDO oldSelfWorkHourDO = chuanyunSelfWorkHourDao.findByUserIdAndProjectIdAndDayLogDateAndProjectTypeAndStatus(chuanyunHisrotyDayWorkHourDO.getUserId(),chuanyunHisrotyDayWorkHourDO.getProjectId(),chuanyunHisrotyDayWorkHourDO.getDayLogDate(),chuanyunHisrotyDayWorkHourDO.getProjectType(),chuanyunHisrotyDayWorkHourDO.getStatus().toString());
+//            if (oldSelfWorkHourDO!=null){
+//                chuanyunSelfWorkHourDao.delete(oldSelfWorkHourDO);
+//            }
+            chuanyunSelfWorkHourDao.save(chuanyunSelfWorkHourDO);
+        });
+    }
+}