|
|
|
|
@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; |
|
|
|
|
import io.swagger.v3.oas.annotations.Operation; |
|
|
|
|
import io.swagger.v3.oas.annotations.Parameter; |
|
|
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
|
|
|
|
import jakarta.annotation.PostConstruct; |
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import jakarta.validation.Valid; |
|
|
|
|
|
|
|
|
|
@ -13,8 +14,10 @@ import org.springblade.core.mp.support.Condition; |
|
|
|
|
import org.springblade.core.mp.support.Query; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.enums.TrainingStatusEnum; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.excel.CultivateDetailExcel; |
|
|
|
|
import org.springblade.desk.jobTransfer.pojo.request.CultivateDetailQuery; |
|
|
|
|
import org.springframework.scheduling.annotation.Scheduled; |
|
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
@ -27,6 +30,7 @@ import org.springblade.core.tool.utils.DateUtil; |
|
|
|
|
import org.springblade.core.excel.util.ExcelUtil; |
|
|
|
|
import org.springblade.core.tool.constant.BladeConstant; |
|
|
|
|
|
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
@ -126,4 +130,82 @@ public class CultivateDetailController extends BladeController { |
|
|
|
|
ExcelUtil.export(response, "培训安排数据" + DateUtil.time(), "培训安排数据表", list, CultivateDetailExcel.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 培训安排 配置 |
|
|
|
|
*/ |
|
|
|
|
@PostMapping("/configured") |
|
|
|
|
@ApiOperationSupport(order = 10) |
|
|
|
|
@Operation(summary = "配置", description = "传入cultivateDetail") |
|
|
|
|
public R configured(@Valid @RequestBody CultivateDetailEntity cultivateDetail) { |
|
|
|
|
cultivateDetail.setCaStatus(TrainingStatusEnum.WAIT_DISTRIBUTE.getCode().shortValue()); |
|
|
|
|
return R.status(cultivateDetailService.updateById(cultivateDetail)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 批量下发 |
|
|
|
|
*/ |
|
|
|
|
@PostMapping("/issued") |
|
|
|
|
@ApiOperationSupport(order = 11) |
|
|
|
|
@Operation(summary = "批量下发", description = "传入cultivateDetails") |
|
|
|
|
public R issued(@Valid @RequestBody List<CultivateDetailEntity> cultivateDetails) { |
|
|
|
|
for (CultivateDetailEntity cultivateDetail : cultivateDetails) { |
|
|
|
|
Short caStatus = cultivateDetail.getCaStatus(); |
|
|
|
|
if (!(TrainingStatusEnum.WAIT_DISTRIBUTE.getCode().shortValue() == caStatus)) { |
|
|
|
|
return R.fail("请选择状态为待下发的记录"); |
|
|
|
|
} |
|
|
|
|
cultivateDetail.setCaStatus(TrainingStatusEnum.ISSUED.getCode().shortValue()); |
|
|
|
|
cultivateDetail.setDistributeTime(new Date()); |
|
|
|
|
} |
|
|
|
|
return R.status(cultivateDetailService.saveOrUpdateBatch(cultivateDetails)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 批量资料上传 |
|
|
|
|
*/ |
|
|
|
|
@PostMapping("/uploadMaterials") |
|
|
|
|
@ApiOperationSupport(order = 12) |
|
|
|
|
@Operation(summary = "批量资料上传", description = "传入cultivateDetails") |
|
|
|
|
public R uploadMaterials(@Valid @RequestBody List<CultivateDetailEntity> cultivateDetails) { |
|
|
|
|
for (CultivateDetailEntity cultivateDetail : cultivateDetails) { |
|
|
|
|
Short caStatus = cultivateDetail.getCaStatus(); |
|
|
|
|
if (!(TrainingStatusEnum.ISSUED.getCode().shortValue() == caStatus)) { |
|
|
|
|
return R.fail("请选择状态为培训中的记录"); |
|
|
|
|
} |
|
|
|
|
cultivateDetail.setCaStatus(TrainingStatusEnum.TRAINED.getCode().shortValue()); |
|
|
|
|
} |
|
|
|
|
return R.status(cultivateDetailService.saveOrUpdateBatch(cultivateDetails)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 批量培训完成 |
|
|
|
|
*/ |
|
|
|
|
@PostMapping("/trainingCompleted") |
|
|
|
|
@ApiOperationSupport(order = 13) |
|
|
|
|
@Operation(summary = "批量培训完成", description = "传入cultivateDetails") |
|
|
|
|
public R trainingCompleted(@Valid @RequestBody List<CultivateDetailEntity> cultivateDetails) { |
|
|
|
|
for (CultivateDetailEntity cultivateDetail : cultivateDetails) { |
|
|
|
|
Short caStatus = cultivateDetail.getCaStatus(); |
|
|
|
|
if (!(TrainingStatusEnum.TRAINED.getCode().shortValue() == caStatus)) { |
|
|
|
|
return R.fail("请选择状态为待确认的记录"); |
|
|
|
|
} |
|
|
|
|
cultivateDetail.setCaStatus(TrainingStatusEnum.OK_TRAINED.getCode().shortValue()); |
|
|
|
|
cultivateDetail.setFinishTime(new Date()); |
|
|
|
|
} |
|
|
|
|
return R.status(cultivateDetailService.saveOrUpdateBatch(cultivateDetails)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@PostConstruct // 项目启动后立即执行一次
|
|
|
|
|
public void init() { |
|
|
|
|
exceed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 更新培训记录超期状态 |
|
|
|
|
* TODO 以后需要交由PowerJob服务统一管理 |
|
|
|
|
*/ |
|
|
|
|
@Scheduled(cron = "0 0 0 * * ?") // 每天凌晨0点执行
|
|
|
|
|
public void exceed() { |
|
|
|
|
cultivateDetailService.exceed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|