|
@@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
|
|
import com.galaxis.manatee.constant.ChuanYunConstant;
|
|
|
import com.galaxis.manatee.dao.*;
|
|
|
import com.galaxis.manatee.entity.chuanyun.data.object.*;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunDayWorkAbcDTO;
|
|
|
import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunFindAllBizDTO;
|
|
|
import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
|
|
|
import com.galaxis.manatee.entity.chuanyun.dto.Filter;
|
|
@@ -31,6 +32,8 @@ import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.UUID;
|
|
|
|
|
|
/**
|
|
|
* @author zcj
|
|
@@ -369,30 +372,56 @@ public class ChuanyunProjectScheduledTask {
|
|
|
}
|
|
|
updateChuanyunStandardWorkHour();
|
|
|
}
|
|
|
-//TODO 统计的sql需要修改;
|
|
|
-// @Scheduled(fixedDelay = 3600000L)
|
|
|
-// private void standardDayWorkAbcHour() {
|
|
|
-// standardDayAbcHour();
|
|
|
-// }
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * 员工工时abc分析
|
|
|
-// */
|
|
|
-// private void standardDayAbcHour() {
|
|
|
-// List<ChuanyunDayWorkAbcDO> dayWorkAbcList = chuanyunDayWorkAbcDao.queryDayWorkAbc();
|
|
|
-// dayWorkAbcList.forEach(dayWork -> {
|
|
|
-// try {
|
|
|
-// ChuanyunDayWorkAbcDO chuanyunDayWorkAbcDO = chuanyunDayWorkAbcDao.findByProjectId(dayWork.getProjectId());
|
|
|
-// if (chuanyunDayWorkAbcDO != null) {
|
|
|
-// chuanyunDayWorkAbcDao.delete(chuanyunDayWorkAbcDO);
|
|
|
-// }
|
|
|
-// chuanyunDayWorkAbcDao.save(dayWork);
|
|
|
-// }catch(Exception e) {
|
|
|
-// log.error(e.getMessage());
|
|
|
-// e.printStackTrace();
|
|
|
-// }
|
|
|
-// });
|
|
|
-// }
|
|
|
+
|
|
|
+ @Scheduled(fixedDelay = 3600000L)
|
|
|
+ private void standardDayWorkAbcHour() {
|
|
|
+ standardDayAbcHour();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 员工工时abc分析
|
|
|
+ */
|
|
|
+ private void standardDayAbcHour() {
|
|
|
+ log.info("开始更新工时abc分析数据");
|
|
|
+ long startTime=Instant.now().getEpochSecond();
|
|
|
+ List<Map> dayWorkAbcList = chuanyunDayWorkAbcDao.queryDayWorkAbc();
|
|
|
+ dayWorkAbcList.forEach(dayWork -> {
|
|
|
+ try {
|
|
|
+ String projectId = (String)dayWork.get("project_id");
|
|
|
+ String projecrtName = (String)dayWork.get("project_name");
|
|
|
+ String projectCode = (String)dayWork.get("project_code");
|
|
|
+ BigDecimal totalTime = (BigDecimal)dayWork.get("total_time");
|
|
|
+ ChuanyunDayWorkAbcDO dayWorkAbcDO = new ChuanyunDayWorkAbcDO();
|
|
|
+ ChuanyunDayWorkAbcDO planDayWorkAbc = chuanyunDayWorkAbcDao.queryDayWorkAbcTotalTime(projectId, 0);
|
|
|
+ if(planDayWorkAbc != null) {
|
|
|
+ dayWorkAbcDO.setPlanTime(planDayWorkAbc.getTotalTime());
|
|
|
+ }
|
|
|
+ ChuanyunDayWorkAbcDO sellDayWorkAbc = chuanyunDayWorkAbcDao.queryDayWorkAbcTotalTime(projectId, 1);
|
|
|
+ if(sellDayWorkAbc != null) {
|
|
|
+ dayWorkAbcDO.setSellTime(sellDayWorkAbc.getTotalTime());
|
|
|
+ }
|
|
|
+ ChuanyunDayWorkAbcDO otherWorkAbc = chuanyunDayWorkAbcDao.queryDayWorkAbcTotalTime(projectId, 2);
|
|
|
+ if(otherWorkAbc != null) {
|
|
|
+ dayWorkAbcDO.setOtherTime(otherWorkAbc.getTotalTime());
|
|
|
+ }
|
|
|
+ ChuanyunDayWorkAbcDO chuanyunDayWorkAbcDO = chuanyunDayWorkAbcDao.findByProjectId(projectId);
|
|
|
+ if (chuanyunDayWorkAbcDO != null) {
|
|
|
+ chuanyunDayWorkAbcDao.delete(chuanyunDayWorkAbcDO);
|
|
|
+ }
|
|
|
+ dayWorkAbcDO.setObjectId(UUID.randomUUID().toString());
|
|
|
+ dayWorkAbcDO.setProjectId(projectId);
|
|
|
+ dayWorkAbcDO.setProjectCode(projectCode);
|
|
|
+ dayWorkAbcDO.setProjectName(projecrtName);
|
|
|
+ dayWorkAbcDO.setTotalTime(totalTime);
|
|
|
+ chuanyunDayWorkAbcDao.save(dayWorkAbcDO);
|
|
|
+ }catch(Exception e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ log.info("周工时abc分析耗时"+(Instant.now().getEpochSecond()-startTime)+"秒");
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 员工单日、各个项目工时标准化,并保存
|