From e89e50e3fe00de860a403523d698925e0dc63616 Mon Sep 17 00:00:00 2001 From: qinyulong Date: Tue, 13 Jan 2026 09:07:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=B9=E8=AE=AD=E5=AE=89=E6=8E=92=EF=BC=9A?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E3=80=81=E6=89=B9=E9=87=8F=E4=B8=8B=E5=8F=91?= =?UTF-8?q?=E3=80=81=E6=89=B9=E9=87=8F=E8=B5=84=E6=96=99=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E3=80=81=E6=89=B9=E9=87=8F=E5=9F=B9=E8=AE=AD=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E3=80=81=E6=9B=B4=E6=96=B0=E5=9F=B9=E8=AE=AD=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E8=B6=85=E6=9C=9F=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CultivateDetailController.java | 82 +++++++++++++++++++ .../mapper/CultivateDetailMapper.java | 4 + .../mapper/CultivateDetailMapper.xml | 12 +++ .../service/ICultivateDetailService.java | 4 + .../impl/CultivateDetailServiceImpl.java | 5 ++ 5 files changed, 107 insertions(+) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java index 40f388e1..fea2e567 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/controller/CultivateDetailController.java @@ -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 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 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 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(); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CultivateDetailMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CultivateDetailMapper.java index b21bd807..34b87a7d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CultivateDetailMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CultivateDetailMapper.java @@ -37,4 +37,8 @@ public interface CultivateDetailMapper extends BaseMapper */ List exportCultivateDetail(@Param("ew") Wrapper queryWrapper); + /** + * 培训超期 + */ + void exceed(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CultivateDetailMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CultivateDetailMapper.xml index 76ba2cec..1a7f9c64 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CultivateDetailMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/mapper/CultivateDetailMapper.xml @@ -122,4 +122,16 @@ FROM MES_CULTIVATE_DETAIL ${ew.customSqlSegment} + + UPDATE MES_CULTIVATE_DETAIL cd + SET cd.CA_STATUS = 4, -- 4表示已到期 + cd.UPDATE_TIME = SYSDATE + WHERE cd.CA_STATUS = 3 -- 当前状态为已下发-培训中 + AND cd.IS_DELETED = 0 + AND EXISTS (SELECT 1 + FROM MES_TRAINING_PLAN tp + WHERE tp.ID = cd.PLAN_ID + AND tp.IS_DELETED = 0 + AND SYSDATE > (cd.DISTRIBUTE_TIME + tp.CYCLE)) + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICultivateDetailService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICultivateDetailService.java index 38b7e05e..9a558f5a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICultivateDetailService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/ICultivateDetailService.java @@ -35,4 +35,8 @@ public interface ICultivateDetailService extends BaseService exportCultivateDetail(Wrapper queryWrapper); + /** + * 培训超期 + */ + void exceed(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CultivateDetailServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CultivateDetailServiceImpl.java index cdc4e3a4..e66d9306 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CultivateDetailServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/jobTransfer/service/impl/CultivateDetailServiceImpl.java @@ -37,4 +37,9 @@ public class CultivateDetailServiceImpl extends BaseServiceImpl