|
@@ -1,36 +1,19 @@
|
|
|
package com.galaxis.manatee.task;
|
|
|
|
|
|
-import com.fasterxml.jackson.annotation.JsonProperty;
|
|
|
-import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
-import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
-import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
|
|
-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.ChuanyunFindAllBizDTO;
|
|
|
-import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
|
|
|
-import com.galaxis.manatee.entity.chuanyun.dto.Filter;
|
|
|
-import com.galaxis.manatee.exception.BigSizeException;
|
|
|
-import com.galaxis.manatee.manager.ChuanYunManager;
|
|
|
+import com.galaxis.manatee.dao.ChuanyunSelfWorkHourDao;
|
|
|
+import com.galaxis.manatee.dao.ChuanyunUserCompanyDao;
|
|
|
+import com.galaxis.manatee.dao.ChuanyunWorkHourDao;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSelfWorkHourDO;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunWorkHourDO;
|
|
|
+import com.galaxis.manatee.service.LogService;
|
|
|
import com.galaxis.manatee.service.LogStandardService;
|
|
|
-import com.galaxis.manatee.service.LogUpdateService;
|
|
|
-import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
|
|
|
-import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
|
|
|
-import lombok.Data;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.data.domain.PageRequest;
|
|
|
-import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.util.StringUtils;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -41,48 +24,45 @@ import java.util.List;
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
public class WorkHourStatistics {
|
|
|
- private final ObjectMapper objectMapper = new ObjectMapper();
|
|
|
- private final ChuanYunManager chuanYunManager;
|
|
|
private final ChuanyunUserCompanyDao chuanyunUserCompanyDao;
|
|
|
private final ChuanyunWorkHourDao chuanyunWorkHourDao;
|
|
|
private final ChuanyunSelfWorkHourDao chuanyunSelfWorkHourDao;
|
|
|
- private final ChuanyunSelfCostDao chuanyunSelfCostDao;
|
|
|
- private final ChuanyunMemberCostDao chuanyunMemberCostDao;
|
|
|
private final LogStandardService logStandardService;
|
|
|
- private final LogUpdateService logUpdateService;
|
|
|
+ private final LogService logService;
|
|
|
|
|
|
- public WorkHourStatistics(ChuanYunManager chuanYunManager, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunWorkHourDao chuanyunWorkHourDao, ChuanyunSelfWorkHourDao chuanyunSelfWorkHourDao, ChuanyunSelfCostDao chuanyunSelfCostDao, ChuanyunMemberCostDao chuanyunMemberCostDao, LogStandardService logStandardService, LogUpdateService logUpdateService) {
|
|
|
- this.chuanYunManager = chuanYunManager;
|
|
|
+ public WorkHourStatistics(ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunWorkHourDao chuanyunWorkHourDao, ChuanyunSelfWorkHourDao chuanyunSelfWorkHourDao, LogStandardService logStandardService, LogService logService) {
|
|
|
this.chuanyunUserCompanyDao = chuanyunUserCompanyDao;
|
|
|
this.chuanyunWorkHourDao = chuanyunWorkHourDao;
|
|
|
this.chuanyunSelfWorkHourDao = chuanyunSelfWorkHourDao;
|
|
|
- this.chuanyunSelfCostDao = chuanyunSelfCostDao;
|
|
|
- this.chuanyunMemberCostDao = chuanyunMemberCostDao;
|
|
|
this.logStandardService = logStandardService;
|
|
|
- this.logUpdateService = logUpdateService;
|
|
|
+ this.logService = logService;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 每3小时上传一次所有日工时、周工时、月工时
|
|
|
+ * 每2天执行一次所有工时数据的标准化、上传操作。
|
|
|
*/
|
|
|
- @Scheduled(fixedDelay = 10800000L)
|
|
|
+ @Scheduled(fixedDelay = 8640000000L)
|
|
|
public void updateHour(){
|
|
|
- logUpdateService.updateAllChuanyunSelfWorkHour();
|
|
|
- logUpdateService.updateAllChuanyunWeekMemberHour();
|
|
|
- logUpdateService.updateAllChuanyunSelfCost();
|
|
|
+ //每日工时标准化
|
|
|
+ standardWorkHour();
|
|
|
+ standardWeeklyWorkHour();
|
|
|
+ standardMonthlyWorkHour();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新数据到
|
|
|
+ */
|
|
|
+ @Scheduled(fixedDelay = 864000000L)
|
|
|
+ public void updateWorkHour(){
|
|
|
+ logService.updateAllChuanyunSelfWorkHour();
|
|
|
+ logService.updateAllChuanyunWeekMemberHour();
|
|
|
+ logService.updateAllChuanyunSelfCost();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 更新所有项目工时
|
|
|
*/
|
|
|
-// @Scheduled(fixedDelay = 432000000L)
|
|
|
- @Async
|
|
|
public void standardHour() {
|
|
|
- //每日工时标准化
|
|
|
- standardWorkHour();
|
|
|
- standardWeeklyWorkHour();
|
|
|
-// standardMonthlyWorkHour();
|
|
|
-// projectMemberHour();
|
|
|
//离职人员工时标准化
|
|
|
// quitStandardHour();
|
|
|
}
|
|
@@ -91,183 +71,21 @@ public class WorkHourStatistics {
|
|
|
* 每日工时标准化
|
|
|
*/
|
|
|
private void standardWorkHour() {
|
|
|
- var pageSize = 20;
|
|
|
- var page = 0;
|
|
|
- while (true) {
|
|
|
- var pageable = PageRequest.of(page, pageSize);
|
|
|
- var chuanyunUserCompanyList = chuanyunUserCompanyDao.findAllByStatus(1, pageable);
|
|
|
- if (page <= chuanyunUserCompanyList.getTotalPages()) {
|
|
|
- page += 1;
|
|
|
- //逐个将员工每天工时进行统计汇总
|
|
|
- List<ChuanyunUserCompanyDO> userCompanyDOList = chuanyunUserCompanyList.getContent();
|
|
|
- //工时标准化
|
|
|
- userCompanyDOList.forEach(chuanyunUserCompanyDO -> logStandardService.standardHourByUserCompanyAndIsRecent(chuanyunUserCompanyDO, false));
|
|
|
- } else {
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ chuanyunUserCompanyDao.findAll().forEach(chuanyunUserCompanyDO -> logStandardService.standardSelfWorkHourByUserId(chuanyunUserCompanyDO.getUserId()));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 人员-项目-周度工时汇总
|
|
|
*/
|
|
|
private void standardWeeklyWorkHour() {
|
|
|
- logStandardService.standardAllWeekMemberHour();
|
|
|
+ logService.standardAllWeekMemberHour();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 单月工时汇总
|
|
|
*/
|
|
|
private void standardMonthlyWorkHour() {
|
|
|
- var flag = true;
|
|
|
- var pageSize = 20;
|
|
|
- var page = 0;
|
|
|
- log.info("开始月工时标准化");
|
|
|
- while (flag) {
|
|
|
- var pageable = PageRequest.of(page, pageSize);
|
|
|
- var chuanyunUserCompanyList = chuanyunUserCompanyDao.findAllByStatus(1, pageable);
|
|
|
- if (page <= chuanyunUserCompanyList.getTotalPages()) {
|
|
|
- page += 1;
|
|
|
- List<ChuanyunUserCompanyDO> userCompanyDOList = chuanyunUserCompanyList.getContent();
|
|
|
- //单项目单人单月成本
|
|
|
- userCompanyDOList.forEach(this::standardMonthlyHour);
|
|
|
- } else {
|
|
|
- flag = false;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 员工每月、各个项目标准工时会职工
|
|
|
- *
|
|
|
- * @param chuanyunUserCompanyDO 员工信息
|
|
|
- */
|
|
|
- private void standardMonthlyHour(ChuanyunUserCompanyDO chuanyunUserCompanyDO) {
|
|
|
- log.info(chuanyunUserCompanyDO.getUserName() + "月工时更新");
|
|
|
- //删除上一次状态为审核中,但本次已经审核通过的数据
|
|
|
- chuanyunSelfCostDao.findAllByStatusAndUserId(ChuanYunConstant.IN_PROCESS, chuanyunUserCompanyDO.getUserId()).forEach(chuanyunSelfCostDO -> {
|
|
|
- List<ChuanyunSelfWorkHourDO> chuanyunSelfWorkHourList = chuanyunSelfWorkHourDao.findAllByUserIdAndProjectIdAndProjectTypeAndStatusAndDayLogDateBetween(
|
|
|
- chuanyunSelfCostDO.getUserId(),
|
|
|
- chuanyunSelfCostDO.getProjectId(),
|
|
|
- chuanyunSelfCostDO.getProjectType(),
|
|
|
- ChuanYunConstant.IN_PROCESS,
|
|
|
- chuanyunSelfCostDO.getDayLogDate(),
|
|
|
- chuanyunSelfCostDO.getDayLogDate().plusMonths(1L));
|
|
|
- //如果没有仍在审批中的每日工时,则将该月、该项目的审核中的月工时统计删除,manatee数据库与氚云
|
|
|
- if (chuanyunSelfWorkHourList.size() == 0) {
|
|
|
- //删除manatee中的在审核工时
|
|
|
- chuanyunSelfCostDao.delete(chuanyunSelfCostDO);
|
|
|
- //删除氚云中的在审核工时
|
|
|
- List<String> matchers = new ArrayList<>();
|
|
|
- matchers.add("F0000003_2," + chuanyunSelfCostDO.getProjectId());
|
|
|
- matchers.add("F0000009_2," + ChuanYunConstant.IN_PROCESS);
|
|
|
- matchers.add("F0000002_2," + chuanyunSelfCostDO.getUserId());
|
|
|
- matchers.add("F0000008_2," + chuanyunSelfCostDO.getProjectType());
|
|
|
- matchers.add("F0000004_2," + chuanyunSelfCostDO.getDayLogDate());
|
|
|
- var filter = Filter.instance(0, 1, true, "And", matchers);
|
|
|
- try {
|
|
|
- ChuanyunFindAllBizDTO<Object> chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunMemberMonthCostDO.SCHEMA_CODE, filter);
|
|
|
- if (chuanyunFindAllResponse.getReturnData() != null) {
|
|
|
- List<ChuanyunMemberMonthCostDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {
|
|
|
- });
|
|
|
- result.forEach(chuanyunMemberMonthCostDO -> {
|
|
|
- try {
|
|
|
- chuanYunManager.delete(ChuanyunMemberMonthCostDO.SCHEMA_CODE, chuanyunMemberMonthCostDO.getObjectId());
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("逐条删除失败" + e.getMessage());
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- log.error("删除已审核通过的月度数据汇总失败");
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- //每月每项目工时,按月-项目-用户分组统计标准工时
|
|
|
- List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.getMonthProjectHour(chuanyunUserCompanyDO.getUserId());
|
|
|
- DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
- list.forEach(projectMonth -> {
|
|
|
- //获取人员-月度-相同工时状态标准工时汇总
|
|
|
- ChuanyunSelfWorkHourDO monthHour = chuanyunSelfWorkHourDao.getMonthHour(projectMonth.getUserId(), df.format(projectMonth.getDayLogDate()), projectMonth.getStatus());
|
|
|
- ChuanyunSelfCostDO chuanyunSelfCostDO = new ChuanyunSelfCostDO();
|
|
|
- chuanyunSelfCostDO.setStatus(projectMonth.getStatus());
|
|
|
- if (monthHour != null) {
|
|
|
- chuanyunSelfCostDO.setMonthlyTotalHour(monthHour.getStandardWorkHour());
|
|
|
- }
|
|
|
- chuanyunSelfCostDO.setProjectId(projectMonth.getProjectId());
|
|
|
- chuanyunSelfCostDO.setProjectType(projectMonth.getProjectType());
|
|
|
- chuanyunSelfCostDO.setUserId(projectMonth.getUserId());
|
|
|
- chuanyunSelfCostDO.setDayLogDate(projectMonth.getDayLogDate().withDayOfMonth(1));
|
|
|
- chuanyunSelfCostDO.setTotalHour(projectMonth.getStandardWorkHour());
|
|
|
- chuanyunSelfCostDO.setDepartmentId(chuanyunUserCompanyDO.getDepartmentId());
|
|
|
- ChuanyunSelfCostDO oldSelfDO = chuanyunSelfCostDao.getOldSelfDO(chuanyunSelfCostDO.getUserId(),
|
|
|
- chuanyunSelfCostDO.getProjectId(),
|
|
|
- chuanyunSelfCostDO.getProjectType(),
|
|
|
- df.format(chuanyunSelfCostDO.getDayLogDate()),
|
|
|
- projectMonth.getStatus());
|
|
|
- if (oldSelfDO != null) {
|
|
|
- chuanyunSelfCostDao.delete(oldSelfDO);
|
|
|
- }
|
|
|
- chuanyunSelfCostDao.save(chuanyunSelfCostDO);
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 人员项目工时汇总
|
|
|
- */
|
|
|
- private void projectMemberHour() {
|
|
|
- List<ChuanyunMemberCostDO> list = chuanyunMemberCostDao.getMemberCost();
|
|
|
- list.forEach(chuanyunMemberCostDO -> {
|
|
|
- if (StringUtils.isEmpty(chuanyunMemberCostDO.getProjectId())) {
|
|
|
- ChuanyunMemberCostDO oldCostDO = chuanyunMemberCostDao.findByUserIdAndProjectIdAndProjectTypeAndStatus(chuanyunMemberCostDO.getUserId(), chuanyunMemberCostDO.getProjectId(), chuanyunMemberCostDO.getProjectType(), chuanyunMemberCostDO.getStatus());
|
|
|
- if (oldCostDO != null) {
|
|
|
- chuanyunMemberCostDao.delete(oldCostDO);
|
|
|
- }
|
|
|
- chuanyunMemberCostDao.save(chuanyunMemberCostDO);
|
|
|
- //搜索是否有审批中数据
|
|
|
- ChuanyunMemberCostDO processdo = chuanyunMemberCostDao.getProcessProjectMemberCost(chuanyunMemberCostDO.getProjectId(), chuanyunMemberCostDO.getProjectType(), chuanyunMemberCostDO.getUserId());
|
|
|
- if (processdo == null) {
|
|
|
- chuanyunMemberCostDao.deleteByProjectIdAndUserIdAndProjectTypeAndStatus(chuanyunMemberCostDO.getProjectId(), chuanyunMemberCostDO.getUserId(), chuanyunMemberCostDO.getProjectType(), "2");
|
|
|
- deleteExamineStatus(ChuanyunProjectMemberCostDO.SCHEMA_CODE, "F0000007", "F0000001", chuanyunMemberCostDO.getProjectId(), "F0000002", chuanyunMemberCostDO.getUserId(), "", "", "", "", "", "", "F0000005", chuanyunMemberCostDO.getProjectType());
|
|
|
- }
|
|
|
- //更新氚云数据
|
|
|
- try {
|
|
|
- ChuanyunProjectMemberCostDTO chuanyunProjectMemberCostDTO = new ChuanyunProjectMemberCostDTO();
|
|
|
- chuanyunProjectMemberCostDTO.setProjectId(chuanyunMemberCostDO.getProjectId());
|
|
|
- chuanyunProjectMemberCostDTO.setUserId(chuanyunMemberCostDO.getUserId());
|
|
|
- chuanyunProjectMemberCostDTO.setWorkHour(chuanyunMemberCostDO.getTotalHour());
|
|
|
- chuanyunProjectMemberCostDTO.setProjectType(chuanyunMemberCostDO.getProjectType());
|
|
|
- chuanyunProjectMemberCostDTO.setStatus(chuanyunMemberCostDO.getStatus());
|
|
|
- chuanyunProjectMemberCostDTO.setPersonDays(chuanyunMemberCostDO.getPersonDays());
|
|
|
- List<String> matchers = new ArrayList<>();
|
|
|
- matchers.add("F0000001_2," + chuanyunMemberCostDO.getProjectId());
|
|
|
- matchers.add("F0000005_2," + chuanyunMemberCostDO.getProjectType());
|
|
|
- matchers.add("F0000007_2," + chuanyunMemberCostDO.getStatus());
|
|
|
- matchers.add("F0000002_2," + chuanyunMemberCostDO.getUserId());
|
|
|
- var filter = Filter.instance(0, 1, true, "And", matchers);
|
|
|
- var chuanyunFindAllResponse = chuanYunManager.findAll(ChuanyunProjectMemberCostDO.SCHEMA_CODE, filter);
|
|
|
- var projectMemberString = objectMapper.writeValueAsString(chuanyunProjectMemberCostDTO);
|
|
|
- ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
- if (chuanyunFindAllResponse.getReturnData() != null) {
|
|
|
- List<ChuanyunProjectMemberCostDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {
|
|
|
- });
|
|
|
- ChuanyunProjectMemberCostDO oldProjectMemberCostDO = result.get(0);
|
|
|
- chuanyunSaveDTO = chuanYunManager.update(ChuanyunProjectMemberCostDO.SCHEMA_CODE, oldProjectMemberCostDO.getObjectId(), projectMemberString);
|
|
|
- } else {
|
|
|
- chuanyunSaveDTO = chuanYunManager.save(ChuanyunProjectMemberCostDO.SCHEMA_CODE, projectMemberString, true);
|
|
|
- }
|
|
|
- if (!chuanyunSaveDTO.getSuccessful()) {
|
|
|
- log.warn("新增项目成员工时汇总失败");
|
|
|
- } else {
|
|
|
- log.info("新增项目成员工时汇总成功");
|
|
|
- }
|
|
|
- } catch (JsonProcessingException | BigSizeException e) {
|
|
|
- e.printStackTrace();
|
|
|
- log.warn("########" + chuanyunMemberCostDO + "");
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ logService.standardAllSelfCost();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -308,230 +126,4 @@ public class WorkHourStatistics {
|
|
|
log.info("离职人员工时标准化完成" + selfList.size());
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 删除状态为审核中数据
|
|
|
- *
|
|
|
- * @param schemaCode 氚云表ID
|
|
|
- */
|
|
|
- public void deleteExamineStatus(String schemaCode, String statusCode, String projectCode, String projectId, String userCode, String userId, String yearCode, String year, String monthCode, String month, String weekCode, String week, String typeCode, String projectType) {
|
|
|
- try {
|
|
|
- List<String> matchers = new ArrayList<>();
|
|
|
- matchers.add(statusCode + "_2," + "2");
|
|
|
- matchers.add(projectCode + "_2," + projectId);
|
|
|
- if (!StringUtils.isEmpty(userId)) {
|
|
|
- matchers.add(userCode + "_2," + userId);
|
|
|
- }
|
|
|
- if (!StringUtils.isEmpty(year)) {
|
|
|
- matchers.add(yearCode + "_2," + year);
|
|
|
- }
|
|
|
- if (!StringUtils.isEmpty(month)) {
|
|
|
- matchers.add(monthCode + "_2," + month);
|
|
|
- }
|
|
|
- if (!StringUtils.isEmpty(week)) {
|
|
|
- matchers.add(weekCode + "_2," + week);
|
|
|
- }
|
|
|
- if (!StringUtils.isEmpty(projectType)) {
|
|
|
- matchers.add(typeCode + "_2," + projectType);
|
|
|
- }
|
|
|
- var filter = Filter.instance(0, Integer.MAX_VALUE, true, "And", matchers);
|
|
|
- var chuanyunFindAllResponse = chuanYunManager.findAll(schemaCode, filter);
|
|
|
- if (chuanyunFindAllResponse.getReturnData() != null) {
|
|
|
- List<ChuanyunCommonDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {
|
|
|
- });
|
|
|
- result.forEach(basicDO -> {
|
|
|
- ChuanyunSaveDTO chuanyunSaveDTO = chuanYunManager.delete(schemaCode, basicDO.getObjectId());
|
|
|
- if (!chuanyunSaveDTO.getSuccessful()) {
|
|
|
- log.warn("删除状态为审核中数据失败");
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- log.error(e.getMessage());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Data
|
|
|
- static class ChuanyunProjectMemberCostDTO {
|
|
|
-
|
|
|
- /**
|
|
|
- * 项目ID
|
|
|
- */
|
|
|
- @JsonProperty("F0000001")
|
|
|
- private String projectId;
|
|
|
-
|
|
|
- /**
|
|
|
- * 项目类型
|
|
|
- */
|
|
|
- @JsonProperty("F0000005")
|
|
|
- private String projectType;
|
|
|
-
|
|
|
- /**
|
|
|
- * 用户ID
|
|
|
- */
|
|
|
- @JsonProperty("F0000002")
|
|
|
- private String userId;
|
|
|
-
|
|
|
- /**
|
|
|
- * 工时
|
|
|
- */
|
|
|
- @JsonProperty("F0000003")
|
|
|
- private BigDecimal workHour;
|
|
|
-
|
|
|
- /**
|
|
|
- * 总人天
|
|
|
- */
|
|
|
- @JsonProperty("F0000006")
|
|
|
- private BigDecimal personDays;
|
|
|
-
|
|
|
- /**
|
|
|
- * 工时状态
|
|
|
- */
|
|
|
- @JsonProperty("F0000007")
|
|
|
- private String status;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 人员项目周度工时
|
|
|
- */
|
|
|
- @Data
|
|
|
- static class ChuanyunProjectMemberWeekHourDTO {
|
|
|
-
|
|
|
- @JsonProperty("F0000001")
|
|
|
- private String projectId;
|
|
|
-
|
|
|
- @JsonProperty("F0000002")
|
|
|
- private String userId;
|
|
|
-
|
|
|
- @JsonProperty("F0000003")
|
|
|
- private String projectType;
|
|
|
-
|
|
|
- @JsonProperty("F0000004")
|
|
|
- private BigDecimal totalHour;
|
|
|
-
|
|
|
- @JsonProperty("F0000005")
|
|
|
- private BigDecimal personDays;
|
|
|
-
|
|
|
- @JsonProperty("F0000008")
|
|
|
- private String year;
|
|
|
-
|
|
|
- @JsonProperty("F0000006")
|
|
|
- private String week;
|
|
|
-
|
|
|
- @JsonProperty("F0000007")
|
|
|
- private String hourStatus;
|
|
|
-
|
|
|
- /**
|
|
|
- * 部门信息
|
|
|
- */
|
|
|
- @JsonProperty("F0000009")
|
|
|
- private String departmentId;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 工时标准化更新数据
|
|
|
- */
|
|
|
- @Data
|
|
|
- static class ChuanyunSelfWorkHourDTO {
|
|
|
-
|
|
|
- @JsonProperty("F0000002")
|
|
|
- private String userId;
|
|
|
-
|
|
|
- @JsonProperty("F0000001")
|
|
|
- private String projectId;
|
|
|
-
|
|
|
- /**
|
|
|
- * 项目类型
|
|
|
- */
|
|
|
- @JsonProperty("F0000005")
|
|
|
- private String projectType;
|
|
|
-
|
|
|
- @JsonProperty("F0000009")
|
|
|
- private String departmentName;
|
|
|
-
|
|
|
- /**
|
|
|
- * 流程状态
|
|
|
- */
|
|
|
- @JsonProperty("F0000006")
|
|
|
- private String status;
|
|
|
-
|
|
|
- @JsonProperty("F0000003")
|
|
|
- @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
|
|
|
- @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
|
|
|
- private LocalDateTime dayLogDate;
|
|
|
-
|
|
|
- @JsonProperty("F0000004")
|
|
|
- private BigDecimal standardWorkHour;
|
|
|
-
|
|
|
- /**
|
|
|
- * 部门Id
|
|
|
- */
|
|
|
- @JsonProperty("F0000007")
|
|
|
- private String departmentId;
|
|
|
-
|
|
|
- @JsonProperty("F0000008")
|
|
|
- private String userName;
|
|
|
-
|
|
|
- @JsonProperty("F0000010")
|
|
|
- private String bg;
|
|
|
- }
|
|
|
-
|
|
|
- @Data
|
|
|
- static class ChuanyunMemberMonthCostDTO {
|
|
|
- /**
|
|
|
- * 项目ID
|
|
|
- */
|
|
|
- @JsonProperty("F0000003")
|
|
|
- private String projectId;
|
|
|
-
|
|
|
- /**
|
|
|
- * 项目类型
|
|
|
- */
|
|
|
- @JsonProperty("F0000008")
|
|
|
- private String projectType;
|
|
|
-
|
|
|
- /**
|
|
|
- * 日志流程状态
|
|
|
- */
|
|
|
- @JsonProperty("F0000009")
|
|
|
- private String status;
|
|
|
-
|
|
|
- /**
|
|
|
- * 用户ID
|
|
|
- */
|
|
|
- @JsonProperty("F0000002")
|
|
|
- private String userId;
|
|
|
-
|
|
|
- /**
|
|
|
- * 日期
|
|
|
- */
|
|
|
- @JsonProperty("F0000004")
|
|
|
- @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
|
|
|
- @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
|
|
|
- private LocalDateTime dayLogDate;
|
|
|
-
|
|
|
- /**
|
|
|
- * 工时
|
|
|
- */
|
|
|
- @JsonProperty("F0000005")
|
|
|
- private BigDecimal workHour;
|
|
|
-
|
|
|
- /**
|
|
|
- * 成本
|
|
|
- */
|
|
|
- @JsonProperty("F0000006")
|
|
|
- private BigDecimal cost;
|
|
|
-
|
|
|
- /**
|
|
|
- * 月度工时汇总
|
|
|
- */
|
|
|
- @JsonProperty("F0000007")
|
|
|
- private BigDecimal monthWorkHour;
|
|
|
-
|
|
|
- /**
|
|
|
- * 部门Id
|
|
|
- */
|
|
|
- @JsonProperty("F0000010")
|
|
|
- private String departmentId;
|
|
|
- }
|
|
|
}
|