|
@@ -11,9 +11,11 @@ import org.springframework.util.StringUtils;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.time.Instant;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 更新日志中所用到的服务
|
|
@@ -60,7 +62,7 @@ public class LogStandardService {
|
|
|
List<ChuanyunWorkHourDO> selfList = isRecent ? chuanyunWorkHourDao.getSelfWorkHourRecently(chuanyunUserCompanyDO.getUserId()) : chuanyunWorkHourDao.getSelfWorkHour(chuanyunUserCompanyDO.getUserId());
|
|
|
this.generateSelfWorkHourByWorkHourList(selfList);
|
|
|
log.info("每日工时标准化" + chuanyunUserCompanyDO.getUserName() + (Instant.now().getEpochSecond() - start) + "秒");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
log.warn("用户信息中userId缺失");
|
|
|
}
|
|
|
}
|
|
@@ -69,39 +71,41 @@ public class LogStandardService {
|
|
|
* 标准化最近一个月每周工时
|
|
|
*/
|
|
|
@Async
|
|
|
- public void standardWeekMemberHourRecent(){
|
|
|
+ public void standardWeekMemberHourRecent() {
|
|
|
List<ChuanyunWeekMemberHourDO> list = chuanyunWeekMemberHourDao.getWeekMemberHourRecently();
|
|
|
this.generateWeekMemberHourByWeekMemberHourList(list);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据用户Id标准化某个人的日工时
|
|
|
- * @param userId 用户Id
|
|
|
+ *
|
|
|
+ * @param userId 用户Id
|
|
|
*/
|
|
|
@Async
|
|
|
- public void standardSelfWorkHourByUserId(String userId){
|
|
|
- if (!StringUtils.isEmpty(userId)) {
|
|
|
+ public void standardSelfWorkHourByUserId(String userId) {
|
|
|
+ if (!userId.isBlank()) {
|
|
|
//从日志原始数据中获取每人每个项目每天工时。
|
|
|
List<ChuanyunWorkHourDO> selfList = chuanyunWorkHourDao.getSelfWorkHour(userId);
|
|
|
this.generateSelfWorkHourByWorkHourList(selfList);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
log.warn("用户信息中userId缺失");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据用户Id标准化某个人的工时
|
|
|
- * @param userId 用户Id
|
|
|
+ *
|
|
|
+ * @param userId 用户Id
|
|
|
*/
|
|
|
@Async
|
|
|
- public void standardWeekMemberHourByUserId(String userId){
|
|
|
+ public void standardWeekMemberHourByUserId(String userId) {
|
|
|
if (!StringUtils.isEmpty(userId)) {
|
|
|
- long start=Instant.now().getEpochSecond();
|
|
|
+ long start = Instant.now().getEpochSecond();
|
|
|
//更新数据库
|
|
|
List<ChuanyunWeekMemberHourDO> list = chuanyunWeekMemberHourDao.getWeekMemberHourByUserId(userId);
|
|
|
this.generateWeekMemberHourByWeekMemberHourList(list);
|
|
|
- log.info(userId+"统一周工时标准化"+(Instant.now().getEpochSecond()-start)+"秒");
|
|
|
- }else {
|
|
|
+ log.info(userId + "统一周工时标准化" + (Instant.now().getEpochSecond() - start) + "秒");
|
|
|
+ } else {
|
|
|
log.warn("用户信息中userId缺失");
|
|
|
}
|
|
|
}
|
|
@@ -110,14 +114,15 @@ public class LogStandardService {
|
|
|
* 根据用户Id标准化某个人的月工时
|
|
|
* 1.删除审核中的月工时
|
|
|
* 2.将新工时数据保存在manatee中
|
|
|
- * @param userId 用户Id
|
|
|
+ *
|
|
|
+ * @param userId 用户Id
|
|
|
*/
|
|
|
@Async
|
|
|
- public void standardSelfCostByUserId(String userId){
|
|
|
- long start=Instant.now().getEpochSecond();
|
|
|
+ public void standardSelfCostByUserId(String userId) {
|
|
|
+ long start = Instant.now().getEpochSecond();
|
|
|
//删除上一次状态为审核中,但本次已经审核通过的数据
|
|
|
- chuanyunSelfCostDao.findAllByStatusAndUserId(ChuanYunConstant.IN_PROCESS,userId).forEach(chuanyunSelfCostDO -> {
|
|
|
- List<ChuanyunSelfWorkHourDO> chuanyunSelfWorkHourList=chuanyunSelfWorkHourDao.findAllByUserIdAndProjectIdAndProjectTypeAndStatusAndDayLogDateBetween(
|
|
|
+ chuanyunSelfCostDao.findAllByStatusAndUserId(ChuanYunConstant.IN_PROCESS, userId).forEach(chuanyunSelfCostDO -> {
|
|
|
+ List<ChuanyunSelfWorkHourDO> chuanyunSelfWorkHourList = chuanyunSelfWorkHourDao.findAllByUserIdAndProjectIdAndProjectTypeAndStatusAndDayLogDateBetween(
|
|
|
chuanyunSelfCostDO.getUserId(),
|
|
|
chuanyunSelfCostDO.getProjectId(),
|
|
|
chuanyunSelfCostDO.getProjectType(),
|
|
@@ -125,55 +130,81 @@ public class LogStandardService {
|
|
|
chuanyunSelfCostDO.getDayLogDate(),
|
|
|
chuanyunSelfCostDO.getDayLogDate().plusMonths(1L));
|
|
|
//如果没有仍在审批中的每日工时,则将该月、该项目的审核中的月工时统计删除,manatee数据库与氚云
|
|
|
- if(chuanyunSelfWorkHourList.size()==0){
|
|
|
+ if (chuanyunSelfWorkHourList.size() == 0) {
|
|
|
//删除manatee中的在审核工时
|
|
|
chuanyunSelfCostDao.delete(chuanyunSelfCostDO);
|
|
|
dataArcherService.deleteSelfCostInProcess(chuanyunSelfCostDO);
|
|
|
}
|
|
|
});
|
|
|
- //每月每项目工时,按月-项目-用户分组统计标准工时
|
|
|
- List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.getMonthProjectHour(userId);
|
|
|
- list.forEach(projectMonth->{
|
|
|
+
|
|
|
+ // 获取单人月度各项目总工时
|
|
|
+ List<ChuanyunSelfWorkHourDO> userAllSelfWorkHours = chuanyunSelfWorkHourDao.findByUserId(userId);
|
|
|
+ Map<LocalDate, Map<String, Map<String, Map<String, BigDecimal>>>> map = userAllSelfWorkHours.stream().collect(
|
|
|
+ Collectors.groupingBy(chuanyunSelfWorkHourDO -> LocalDate.of(chuanyunSelfWorkHourDO.getDayLogDate().getYear(), chuanyunSelfWorkHourDO.getDayLogDate().getMonth(), 1),
|
|
|
+ Collectors.groupingBy(ChuanyunSelfWorkHourDO::getProjectId,
|
|
|
+ Collectors.groupingBy(ChuanyunSelfWorkHourDO::getProjectType,
|
|
|
+ Collectors.groupingBy(ChuanyunSelfWorkHourDO::getStatus, Collectors.reducing(BigDecimal.ZERO, ChuanyunSelfWorkHourDO::getStandardWorkHour, BigDecimal::add)
|
|
|
+ )))));
|
|
|
+
|
|
|
+
|
|
|
+ // 每月每项目工时,按月-项目-用户分组统计标准工时
|
|
|
+ // List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.getMonthProjectHour(userId);
|
|
|
+ ArrayList<ChuanyunSelfWorkHourDO> list1 = new ArrayList<>();
|
|
|
+ map.forEach((localDate, projectIdMapMap) ->
|
|
|
+ projectIdMapMap.forEach((projectId, projectTypeMapMap) ->
|
|
|
+ projectTypeMapMap.forEach((projectType, statusBigDecimalMap) ->
|
|
|
+ statusBigDecimalMap.forEach((status, standardWorkHour) -> {
|
|
|
+ ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO = new ChuanyunSelfWorkHourDO();
|
|
|
+ chuanyunSelfWorkHourDO.setStandardWorkHour(standardWorkHour);
|
|
|
+ chuanyunSelfWorkHourDO.setStatus(status);
|
|
|
+ chuanyunSelfWorkHourDO.setProjectId(projectId);
|
|
|
+ // 设置项目类型
|
|
|
+ chuanyunSelfWorkHourDO.setProjectType(projectType);
|
|
|
+ chuanyunSelfWorkHourDO.setDayLogDate(localDate.atStartOfDay());
|
|
|
+ chuanyunSelfWorkHourDO.setUserId(userId);
|
|
|
+ list1.add(chuanyunSelfWorkHourDO);
|
|
|
+ }))));
|
|
|
+
|
|
|
+ list1.forEach(projectMonth -> {
|
|
|
+ ChuanyunSelfCostDO chuanyunSelfCostDO = this.fromChuanyunSelfWorkHourDO(projectMonth);
|
|
|
//获取人员-月度-相同工时状态标准工时汇总
|
|
|
- ChuanyunSelfCostDO chuanyunSelfCostDO=this.fromChuanyunSelfWorkHourDO(projectMonth);
|
|
|
- ChuanyunSelfCostDO oldSelfDO = chuanyunSelfCostDao.getOldSelfDO(chuanyunSelfCostDO.getUserId(),
|
|
|
- chuanyunSelfCostDO.getProjectId(),
|
|
|
- chuanyunSelfCostDO.getProjectType(),
|
|
|
- df.format(chuanyunSelfCostDO.getDayLogDate()),
|
|
|
+ ChuanyunSelfCostDO oldSelfDO = chuanyunSelfCostDao.getOldSelfDO(userId,
|
|
|
+ projectMonth.getProjectId(),
|
|
|
+ projectMonth.getProjectType(),
|
|
|
+ df.format(projectMonth.getDayLogDate()),
|
|
|
projectMonth.getStatus());
|
|
|
- if (oldSelfDO !=null) {
|
|
|
+ if (oldSelfDO != null) {
|
|
|
chuanyunSelfCostDao.delete(oldSelfDO);
|
|
|
}
|
|
|
- chuanyunSelfCostDao.save(chuanyunSelfCostDO);
|
|
|
+ chuanyunSelfCostDao.saveAndFlush(chuanyunSelfCostDO);
|
|
|
});
|
|
|
- log.info(userId+"统一月工时标准化"+(Instant.now().getEpochSecond()-start)+"秒");
|
|
|
+ log.info(userId + "统一月工时标准化" + (Instant.now().getEpochSecond() - start) + "秒");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据日工时列表生成
|
|
|
- * @param updateList 待更新列表
|
|
|
+ *
|
|
|
+ * @param updateList 待更新列表
|
|
|
*/
|
|
|
- private void generateSelfWorkHourByWorkHourList(List<ChuanyunWorkHourDO> updateList){
|
|
|
+ private void generateSelfWorkHourByWorkHourList(List<ChuanyunWorkHourDO> updateList) {
|
|
|
//逐一将原始工时数据标准化后,更新到标准化工时表和氚云中
|
|
|
- updateList.forEach(self -> {
|
|
|
+ updateList.parallelStream().forEach(self -> {
|
|
|
try {
|
|
|
//新建标准化工时对象,并将原始数据更新到此对象中,并计算标准化之后的工时
|
|
|
- ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO=this.fromChuanyunWorkHourDO(self);
|
|
|
+ ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO = this.fromChuanyunWorkHourDO(self);
|
|
|
//查询系统中是否有重复的标准化工时数据,如果有重复的人、天、项目数据,将原数据删除后更新为最新的数据
|
|
|
- try{
|
|
|
- List<ChuanyunSelfWorkHourDO> list = new ArrayList<>();
|
|
|
- if (self.getStatus().equals("3")){
|
|
|
- list = chuanyunSelfWorkHourDao.findByUserIdAndProjectIdAndDayLogDateAndProjectTypeAndStatus(chuanyunSelfWorkHourDO.getUserId(), ChuanYunConstant.PRODUCTION_PROJECT.equals(self.getProjectType()) ? ChuanYunConstant.PRODUCTION_PROJECT_ID : self.getProjectId(), self.getDayLogDate(), self.getProjectType(),self.getStatus());
|
|
|
- }else{
|
|
|
+ try {
|
|
|
+ List<ChuanyunSelfWorkHourDO> list;
|
|
|
+ if (self.getStatus().equals("3")) {
|
|
|
+ list = chuanyunSelfWorkHourDao.findByUserIdAndProjectIdAndDayLogDateAndProjectTypeAndStatus(chuanyunSelfWorkHourDO.getUserId(), ChuanYunConstant.PRODUCTION_PROJECT.equals(self.getProjectType()) ? ChuanYunConstant.PRODUCTION_PROJECT_ID : self.getProjectId(), self.getDayLogDate(), self.getProjectType(), self.getStatus());
|
|
|
+ } else {
|
|
|
list = chuanyunSelfWorkHourDao.findByUserIdAndProjectIdAndDayLogDateAndProjectType(chuanyunSelfWorkHourDO.getUserId(), ChuanYunConstant.PRODUCTION_PROJECT.equals(self.getProjectType()) ? ChuanYunConstant.PRODUCTION_PROJECT_ID : self.getProjectId(), self.getDayLogDate(), self.getProjectType());
|
|
|
}
|
|
|
- if (list != null&&list.size()>0) {
|
|
|
- for (ChuanyunSelfWorkHourDO oldSelfWorkHour : list){
|
|
|
- chuanyunSelfWorkHourDao.delete(oldSelfWorkHour);
|
|
|
- }
|
|
|
+ if (list != null && list.size() > 0) {
|
|
|
+ chuanyunSelfWorkHourDao.deleteAll(list);
|
|
|
}
|
|
|
- chuanyunSelfWorkHourDao.save(chuanyunSelfWorkHourDO);
|
|
|
- }catch (Exception e){
|
|
|
+ chuanyunSelfWorkHourDao.saveAndFlush(chuanyunSelfWorkHourDO);
|
|
|
+ } catch (Exception e) {
|
|
|
log.error(e.getMessage());
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
@@ -186,36 +217,40 @@ public class LogStandardService {
|
|
|
|
|
|
/**
|
|
|
* 根据周工时列表
|
|
|
- * @param updateList 待更新的周工时列表
|
|
|
+ *
|
|
|
+ * @param updateList 待更新的周工时列表
|
|
|
*/
|
|
|
- private void generateWeekMemberHourByWeekMemberHourList(List<ChuanyunWeekMemberHourDO> updateList){
|
|
|
+ private void generateWeekMemberHourByWeekMemberHourList(List<ChuanyunWeekMemberHourDO> updateList) {
|
|
|
updateList.forEach(chuanyunWeekMemberHourDO -> {
|
|
|
- try{
|
|
|
- if (chuanyunWeekMemberHourDO!=null){
|
|
|
+ try {
|
|
|
+ if (chuanyunWeekMemberHourDO != null) {
|
|
|
ChuanyunWeekMemberHourDO weekMemberHourDO = ChuanyunWeekMemberHourDO.fromChuanyunWeekMemberHourDO(chuanyunWeekMemberHourDO);
|
|
|
- ChuanyunWeekMemberHourDO oldWeekHour = chuanyunWeekMemberHourDao.findByProjectIdAndUserIdAndWeekAndStatusAndProjectTypeAndYear(chuanyunWeekMemberHourDO.getProjectId(),chuanyunWeekMemberHourDO.getUserId(),chuanyunWeekMemberHourDO.getWeek(),chuanyunWeekMemberHourDO.getStatus(),chuanyunWeekMemberHourDO.getProjectType(),chuanyunWeekMemberHourDO.getYear());
|
|
|
+ ChuanyunWeekMemberHourDO oldWeekHour = chuanyunWeekMemberHourDao.findByProjectIdAndUserIdAndWeekAndStatusAndProjectTypeAndYear(chuanyunWeekMemberHourDO.getProjectId(), chuanyunWeekMemberHourDO.getUserId(), chuanyunWeekMemberHourDO.getWeek(), chuanyunWeekMemberHourDO.getStatus(), chuanyunWeekMemberHourDO.getProjectType(), chuanyunWeekMemberHourDO.getYear());
|
|
|
if (oldWeekHour != null) {
|
|
|
chuanyunWeekMemberHourDao.delete(oldWeekHour);
|
|
|
}
|
|
|
- chuanyunWeekMemberHourDao.save(weekMemberHourDO);
|
|
|
+ chuanyunWeekMemberHourDao.saveAndFlush(weekMemberHourDO);
|
|
|
//搜索是否还有处于审批中的数据
|
|
|
- ChuanyunWeekMemberHourDO processWeekHour = chuanyunWeekMemberHourDao.getProcessWeekHour(chuanyunWeekMemberHourDO.getProjectId(),chuanyunWeekMemberHourDO.getUserId(),chuanyunWeekMemberHourDO.getYear(),chuanyunWeekMemberHourDO.getWeek(),chuanyunWeekMemberHourDO.getProjectType());
|
|
|
- if (processWeekHour == null){
|
|
|
- chuanyunWeekMemberHourDao.deleteByProjectIdAndUserIdAndYearAndWeekAndStatusAndProjectType(chuanyunWeekMemberHourDO.getProjectId(),chuanyunWeekMemberHourDO.getUserId(),chuanyunWeekMemberHourDO.getYear(),chuanyunWeekMemberHourDO.getWeek(),"2",chuanyunWeekMemberHourDO.getProjectType());
|
|
|
+ ChuanyunWeekMemberHourDO processWeekHour = chuanyunWeekMemberHourDao.getProcessWeekHour(chuanyunWeekMemberHourDO.getProjectId(), chuanyunWeekMemberHourDO.getUserId(), chuanyunWeekMemberHourDO.getYear(), chuanyunWeekMemberHourDO.getWeek(), chuanyunWeekMemberHourDO.getProjectType());
|
|
|
+
|
|
|
+ if (processWeekHour == null) {
|
|
|
+ chuanyunWeekMemberHourDao.deleteByProjectIdAndUserIdAndYearAndWeekAndStatusAndProjectType(chuanyunWeekMemberHourDO.getProjectId(), chuanyunWeekMemberHourDO.getUserId(), chuanyunWeekMemberHourDO.getYear(), chuanyunWeekMemberHourDO.getWeek(), "2", chuanyunWeekMemberHourDO.getProjectType());
|
|
|
//同时删除氚云钟数据
|
|
|
- dataArcherService.deleteExamineStatus(ChuanyunProjectMemberWeekHourDO.SCHEMA_CODE,"F0000007","F0000001",chuanyunWeekMemberHourDO.getProjectId(),"F0000002",chuanyunWeekMemberHourDO.getUserId(),"F0000008",chuanyunWeekMemberHourDO.getYear(),"","","F0000006",chuanyunWeekMemberHourDO.getWeek(),"F0000003",chuanyunWeekMemberHourDO.getProjectType());
|
|
|
+ dataArcherService.deleteExamineStatus(ChuanyunProjectMemberWeekHourDO.SCHEMA_CODE, "F0000007", "F0000001", chuanyunWeekMemberHourDO.getProjectId(), "F0000002", chuanyunWeekMemberHourDO.getUserId(), "F0000008", chuanyunWeekMemberHourDO.getYear(), "", "", "F0000006", chuanyunWeekMemberHourDO.getWeek(), "F0000003", chuanyunWeekMemberHourDO.getProjectType());
|
|
|
}
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
- log.error(e.getMessage()+"周工时标准化异常");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("chuanyunWeekMemberHourDO: {}", chuanyunWeekMemberHourDO);
|
|
|
+ log.error(e.getMessage() + "周工时标准化异常");
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据日志原始数据统计的每日每人工时获取工时标准化后的标准化对象
|
|
|
- * @param chuanyunWorkHourDO 日志原始统计数据
|
|
|
- * @return 工时标准化对象
|
|
|
+ *
|
|
|
+ * @param chuanyunWorkHourDO 日志原始统计数据
|
|
|
+ * @return 工时标准化对象
|
|
|
*/
|
|
|
private ChuanyunSelfWorkHourDO fromChuanyunWorkHourDO(ChuanyunWorkHourDO chuanyunWorkHourDO) throws Exception {
|
|
|
//由于日志原始工时可能存在项目类型不准确的情况,需要根据项目ID获取真实的项目类型
|
|
@@ -226,14 +261,18 @@ public class LogStandardService {
|
|
|
throw new Exception("没有找到对应的项目");
|
|
|
}
|
|
|
//如果找到相应的项目,则使用项目实际的项目类型
|
|
|
- projectType=chuanyunGroupProject.getProjectType();
|
|
|
+ projectType = chuanyunGroupProject.getProjectType();
|
|
|
} catch (Exception e) {
|
|
|
//没有找到对应项目,使用原项目类型
|
|
|
- projectType=chuanyunWorkHourDO.getProjectType();
|
|
|
+ projectType = chuanyunWorkHourDO.getProjectType();
|
|
|
}
|
|
|
- ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO = ChuanyunSelfWorkHourDO.fromChuanyunWorkHourDO(chuanyunWorkHourDO,projectType);
|
|
|
+ ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO = ChuanyunSelfWorkHourDO.fromChuanyunWorkHourDO(chuanyunWorkHourDO, projectType);
|
|
|
//获取每人每天总工时
|
|
|
ChuanyunWorkHourDO oneDayTotalHour = chuanyunWorkHourDao.getDayWorkHour(chuanyunWorkHourDO.getUserId(), chuanyunWorkHourDO.getDayLogDate());
|
|
|
+
|
|
|
+ // 获取每天总工时
|
|
|
+// ChuanyunOneDayWorkHourDO oneDayTotalHour = chuanyunOneDayWorkHourDao.getOneDayTotalHour(chuanyunWorkHourDO.getUserId(), chuanyunWorkHourDO.getDayLogDate());
|
|
|
+
|
|
|
//工时标准化
|
|
|
if (oneDayTotalHour != null) {
|
|
|
BigDecimal standard = new BigDecimal(8);
|
|
@@ -242,17 +281,17 @@ public class LogStandardService {
|
|
|
} else {
|
|
|
BigDecimal personDays = (chuanyunWorkHourDO.getHoursWorked().divide(oneDayTotalHour.getHoursWorked(), 2, RoundingMode.HALF_UP)).multiply(standard);
|
|
|
chuanyunSelfWorkHourDO.setStandardWorkHour(personDays);
|
|
|
- }
|
|
|
- }else{
|
|
|
+ }
|
|
|
+ } else {
|
|
|
throw new Exception("获取每日总工时失败");
|
|
|
}
|
|
|
//获取人员所属BG
|
|
|
- if (StringUtils.isEmpty(chuanyunWorkHourDO.getBgName())){
|
|
|
- List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.findByUserIdAndProjectIdAndDayLogDateAndProjectType(chuanyunWorkHourDO.getUserId(),chuanyunWorkHourDO.getProjectId(),chuanyunWorkHourDO.getDayLogDate(),chuanyunWorkHourDO.getProjectType());
|
|
|
- if (list.size()>0&&list!=null){
|
|
|
+ if (StringUtils.isEmpty(chuanyunWorkHourDO.getBgName())) {
|
|
|
+ List<ChuanyunSelfWorkHourDO> list = chuanyunSelfWorkHourDao.findByUserIdAndProjectIdAndDayLogDateAndProjectType(chuanyunWorkHourDO.getUserId(), chuanyunWorkHourDO.getProjectId(), chuanyunWorkHourDO.getDayLogDate(), chuanyunWorkHourDO.getProjectType());
|
|
|
+ if (!Objects.isNull(list) && !list.isEmpty()) {
|
|
|
chuanyunSelfWorkHourDO.setBg(list.get(0).getBg());
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
chuanyunSelfWorkHourDO.setBg(chuanyunWorkHourDO.getBgName());
|
|
|
}
|
|
|
return chuanyunSelfWorkHourDO;
|
|
@@ -260,22 +299,23 @@ public class LogStandardService {
|
|
|
|
|
|
/**
|
|
|
* 根据ChuanyunSelfWorkHourDO获取ChuanyunSelfCostDO对象
|
|
|
- * @param chuanyunSelfWorkHourDO 统计月工时对象
|
|
|
- * @return 待保存的月工时对象
|
|
|
+ *
|
|
|
+ * @param chuanyunSelfWorkHourDO 统计月工时对象
|
|
|
+ * @return 待保存的月工时对象
|
|
|
*/
|
|
|
- private ChuanyunSelfCostDO fromChuanyunSelfWorkHourDO(ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO){
|
|
|
- ChuanyunSelfWorkHourDO monthHour = chuanyunSelfWorkHourDao.getMonthHour(chuanyunSelfWorkHourDO.getUserId(),df.format(chuanyunSelfWorkHourDO.getDayLogDate()),chuanyunSelfWorkHourDO.getStatus());
|
|
|
+ private ChuanyunSelfCostDO fromChuanyunSelfWorkHourDO(ChuanyunSelfWorkHourDO chuanyunSelfWorkHourDO) {
|
|
|
+
|
|
|
ChuanyunSelfCostDO chuanyunSelfCostDO = new ChuanyunSelfCostDO();
|
|
|
chuanyunSelfCostDO.setStatus(chuanyunSelfWorkHourDO.getStatus());
|
|
|
- if (monthHour!=null){
|
|
|
- chuanyunSelfCostDO.setMonthlyTotalHour(monthHour.getStandardWorkHour());
|
|
|
+ if (chuanyunSelfWorkHourDO.getStandardWorkHour() != null) {
|
|
|
+ chuanyunSelfCostDO.setMonthlyTotalHour(chuanyunSelfWorkHourDO.getStandardWorkHour());
|
|
|
}
|
|
|
chuanyunSelfCostDO.setProjectId(chuanyunSelfWorkHourDO.getProjectId());
|
|
|
chuanyunSelfCostDO.setProjectType(chuanyunSelfWorkHourDO.getProjectType());
|
|
|
chuanyunSelfCostDO.setUserId(chuanyunSelfWorkHourDO.getUserId());
|
|
|
chuanyunSelfCostDO.setDayLogDate(chuanyunSelfWorkHourDO.getDayLogDate().withDayOfMonth(1));
|
|
|
chuanyunSelfCostDO.setTotalHour(chuanyunSelfWorkHourDO.getStandardWorkHour());
|
|
|
- ChuanyunUserCompanyDO chuanyunUserCompanyDO=chuanyunUserCompanyDao.findByUserId(chuanyunSelfWorkHourDO.getUserId());
|
|
|
+ ChuanyunUserCompanyDO chuanyunUserCompanyDO = chuanyunUserCompanyDao.findByUserId(chuanyunSelfWorkHourDO.getUserId());
|
|
|
chuanyunSelfCostDO.setDepartmentId(chuanyunUserCompanyDO.getDepartmentId());
|
|
|
return chuanyunSelfCostDO;
|
|
|
}
|