diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/PersonAbilityController.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/PersonAbilityController.java index 393183c4..dd98c962 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/PersonAbilityController.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/PersonAbilityController.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 future = CompletableFuture.runAsync(() -> { + //初始化设备资源 + personResourceService.initSinglePersonResource(entity); + }); + } + return R.status(true); } /** diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IPersonResourceService.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IPersonResourceService.java index bc4cd218..e2691f62 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IPersonResourceService.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IPersonResourceService.java @@ -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 personAbilityList = personAbilityService.list(Wrappers.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 list = this.list(Wrappers.lambdaQuery().eq(PersonResourceEntity::getDateTime,today)); - if(CollectionUtils.isEmpty(list)){ - generateData(today); + for(PersonAbilityEntity personAbility : personAbilityList){ + LambdaQueryWrapper 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 list = this.list(wrapper); + if(CollectionUtils.isEmpty(list)){ + generateData(today,personAbility); + } } + } //删除3天之前的数据 List deleteList = this.list(Wrappers.lambdaQuery().le(PersonResourceEntity::getDateTime,DateFormatUtils.format(DateUtils.addDays(date,-3),"yyyy-MM-dd"))); @@ -95,43 +105,43 @@ public class PersonResourceServiceImpl extends BaseServiceImpl 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> teamIdList = baseMapper.selectTeamByWorkCenter(personAbility.getWorkCenterId()); - List resourceList = new ArrayList<>(); + public void generateData(String day,PersonAbilityEntity personAbility){ + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + //获取 + List> teamIdList = baseMapper.selectTeamByWorkCenter(personAbility.getWorkCenterId()); + List resourceList = new ArrayList<>(); - for(Map 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 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); } }