|
|
|
|
@ -26,6 +26,7 @@ |
|
|
|
|
package org.springblade.scheduling.scheduling.service.impl; |
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
@ -44,7 +45,6 @@ import org.springblade.scheduling.scheduling.service.IPersonResourceService; |
|
|
|
|
import org.springblade.scheduling.scheduling.vo.PersonResourceVO; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
@ -81,12 +81,22 @@ public class PersonResourceServiceImpl extends BaseServiceImpl<PersonResourceMap |
|
|
|
|
log.info("初始化人力资源开始:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss")); |
|
|
|
|
//获取包括今天在内未来3天
|
|
|
|
|
Date date = new Date(); |
|
|
|
|
List<PersonAbilityEntity> personAbilityList = personAbilityService.list(Wrappers.<PersonAbilityEntity>lambdaQuery().isNotNull(PersonAbilityEntity::getWorkCenterId).isNotNull(PersonAbilityEntity::getCraftId).isNotNull(PersonAbilityEntity::getProcessId)); |
|
|
|
|
for(int i=0;i<7;i++){ |
|
|
|
|
String today = DateFormatUtils.format(DateUtils.addDays(date,i),"yyyy-MM-dd"); |
|
|
|
|
List<PersonResourceEntity> list = this.list(Wrappers.<PersonResourceEntity>lambdaQuery().eq(PersonResourceEntity::getDateTime,today)); |
|
|
|
|
if(CollectionUtils.isEmpty(list)){ |
|
|
|
|
generateData(today); |
|
|
|
|
for(PersonAbilityEntity personAbility : personAbilityList){ |
|
|
|
|
LambdaQueryWrapper<PersonResourceEntity> wrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
wrapper.eq(PersonResourceEntity::getDateTime,today); |
|
|
|
|
wrapper.eq(PersonResourceEntity::getWorkCenterId,personAbility.getWorkCenterId()); |
|
|
|
|
wrapper.eq(PersonResourceEntity::getCraftId,personAbility.getCraftId()); |
|
|
|
|
wrapper.eq(PersonResourceEntity::getProcessId,personAbility.getProcessId()); |
|
|
|
|
|
|
|
|
|
List<PersonResourceEntity> list = this.list(wrapper); |
|
|
|
|
if(CollectionUtils.isEmpty(list)){ |
|
|
|
|
generateData(today,personAbility); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
//删除3天之前的数据
|
|
|
|
|
List<PersonResourceEntity> deleteList = this.list(Wrappers.<PersonResourceEntity>lambdaQuery().le(PersonResourceEntity::getDateTime,DateFormatUtils.format(DateUtils.addDays(date,-3),"yyyy-MM-dd"))); |
|
|
|
|
@ -95,43 +105,43 @@ public class PersonResourceServiceImpl extends BaseServiceImpl<PersonResourceMap |
|
|
|
|
log.info("初始化人力资源结束:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void generateData(String day){ |
|
|
|
|
@Override |
|
|
|
|
public void initSinglePersonResource(PersonAbilityEntity entity) { |
|
|
|
|
//获取包括今天在内未来7天
|
|
|
|
|
Date date = new Date(); |
|
|
|
|
for(int i=0;i<7;i++){ |
|
|
|
|
String today = DateFormatUtils.format(DateUtils.addDays(date,i),"yyyy-MM-dd"); |
|
|
|
|
generateData(today,entity); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//获取设备能力列表
|
|
|
|
|
List<PersonAbilityEntity> personAbilityList = personAbilityService.list(); |
|
|
|
|
log.info("获取到的人员能力数量是:" + personAbilityList.size()); |
|
|
|
|
if(CollectionUtils.isNotEmpty(personAbilityList)){ |
|
|
|
|
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
|
|
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); |
|
|
|
|
LocalDate targetDate = LocalDate.parse(day, dateFormatter); |
|
|
|
|
for(PersonAbilityEntity personAbility : personAbilityList){ |
|
|
|
|
//获取
|
|
|
|
|
List<Map<String,Object>> teamIdList = baseMapper.selectTeamByWorkCenter(personAbility.getWorkCenterId()); |
|
|
|
|
List<PersonResourceEntity> resourceList = new ArrayList<>(); |
|
|
|
|
public void generateData(String day,PersonAbilityEntity personAbility){ |
|
|
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); |
|
|
|
|
//获取
|
|
|
|
|
List<Map<String,Object>> teamIdList = baseMapper.selectTeamByWorkCenter(personAbility.getWorkCenterId()); |
|
|
|
|
List<PersonResourceEntity> resourceList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
for(Map<String,Object> map : teamIdList){ |
|
|
|
|
LocalDateTime teamStartTime = LocalDateTime.parse(day + ' '+ map.get("startTime").toString(), dateTimeFormatter); |
|
|
|
|
LocalDateTime teamEndTime = LocalDateTime.parse(day + ' '+ map.get("endTime").toString(), dateTimeFormatter); |
|
|
|
|
PersonResourceEntity personResource = new PersonResourceEntity(); |
|
|
|
|
personResource.setDateTime(day); |
|
|
|
|
personResource.setCraftId(personAbility.getCraftId()); |
|
|
|
|
personResource.setCraftName(personAbility.getCraftName()); |
|
|
|
|
personResource.setPeriod(map.get("startTime").toString() + "-" + map.get("endTime").toString()); |
|
|
|
|
personResource.setStartTime(teamStartTime); |
|
|
|
|
personResource.setEndTime(teamEndTime); |
|
|
|
|
personResource.setIsUsed("0"); |
|
|
|
|
personResource.setProcessId(personAbility.getProcessId()); |
|
|
|
|
personResource.setProcessName(personAbility.getProcessName()); |
|
|
|
|
personResource.setTeamId(Long.parseLong(map.get("teamId").toString())); |
|
|
|
|
personResource.setWorkCenterId(personAbility.getWorkCenterId()); |
|
|
|
|
personResource.setWorkCenterName(personAbility.getWorkCenterName()); |
|
|
|
|
resourceList.add(personResource); |
|
|
|
|
} |
|
|
|
|
log.info("人员资源数量是:" + resourceList.size()); |
|
|
|
|
if(CollectionUtils.isNotEmpty(resourceList)){ |
|
|
|
|
this.saveBatch(resourceList); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
for(Map<String,Object> map : teamIdList){ |
|
|
|
|
LocalDateTime teamStartTime = LocalDateTime.parse(day + ' '+ map.get("startTime").toString(), dateTimeFormatter); |
|
|
|
|
LocalDateTime teamEndTime = LocalDateTime.parse(day + ' '+ map.get("endTime").toString(), dateTimeFormatter); |
|
|
|
|
PersonResourceEntity personResource = new PersonResourceEntity(); |
|
|
|
|
personResource.setDateTime(day); |
|
|
|
|
personResource.setCraftId(personAbility.getCraftId()); |
|
|
|
|
personResource.setCraftName(personAbility.getCraftName()); |
|
|
|
|
personResource.setPeriod(map.get("startTime").toString() + "-" + map.get("endTime").toString()); |
|
|
|
|
personResource.setStartTime(teamStartTime); |
|
|
|
|
personResource.setEndTime(teamEndTime); |
|
|
|
|
personResource.setIsUsed("0"); |
|
|
|
|
personResource.setProcessId(personAbility.getProcessId()); |
|
|
|
|
personResource.setProcessName(personAbility.getProcessName()); |
|
|
|
|
personResource.setTeamId(Long.parseLong(map.get("teamId").toString())); |
|
|
|
|
personResource.setWorkCenterId(personAbility.getWorkCenterId()); |
|
|
|
|
personResource.setWorkCenterName(personAbility.getWorkCenterName()); |
|
|
|
|
resourceList.add(personResource); |
|
|
|
|
} |
|
|
|
|
log.info("人员资源数量是:" + resourceList.size()); |
|
|
|
|
if(CollectionUtils.isNotEmpty(resourceList)){ |
|
|
|
|
this.saveBatch(resourceList); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|