初始化人员资源-sjx

liweidong
sunjianxi 2 days ago
parent d546943c30
commit eb95fc294d
  1. 13
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/PersonAbilityController.java
  2. 2
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IPersonResourceService.java
  3. 88
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/PersonResourceServiceImpl.java

@ -51,12 +51,14 @@ import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity;
import org.springblade.scheduling.pojo.entity.PersonAbilityEntity;
import org.springblade.scheduling.scheduling.excel.PersonAbilityExcel;
import org.springblade.scheduling.scheduling.service.IPersonAbilityService;
import org.springblade.scheduling.scheduling.service.IPersonResourceService;
import org.springblade.scheduling.scheduling.vo.PersonAbilityVO;
import org.springblade.scheduling.scheduling.wrapper.PersonAbilityWrapper;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
/**
* 人员能力表 控制器
@ -71,6 +73,7 @@ import java.util.Map;
public class PersonAbilityController extends BladeController {
private final IPersonAbilityService personAbilityService;
private final IPersonResourceService personResourceService;
/**
* 人员能力表 详情
@ -116,7 +119,15 @@ public class PersonAbilityController extends BladeController {
if(CollectionUtils.isNotEmpty(list)){
return R.status(false,"该人员能力已存在!");
}
return R.status(personAbilityService.save(entity));
boolean flag = personAbilityService.save(entity);
if(flag){
//异步执行
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
//初始化设备资源
personResourceService.initSinglePersonResource(entity);
});
}
return R.status(true);
}
/**

@ -28,6 +28,7 @@ package org.springblade.scheduling.scheduling.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.scheduling.pojo.entity.PersonAbilityEntity;
import org.springblade.scheduling.pojo.entity.PersonResourceEntity;
import org.springblade.scheduling.scheduling.excel.PersonResourceExcel;
import org.springblade.scheduling.scheduling.vo.PersonResourceVO;
@ -60,4 +61,5 @@ public interface IPersonResourceService extends BaseService<PersonResourceEntity
void initPersonResource();
void initSinglePersonResource(PersonAbilityEntity entity);
}

@ -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);
}
}

Loading…
Cancel
Save