Files
ERP/oa-backend/src/main/java/com/kaidi/oa/seed/RdDeclPlanSeeder.java
T
Qiufeng 1affcd9a5e
Signed Release / release (push) Failing after 5m1s
feat: add PostgreSQL web installation wizard
2026-08-04 07:42:20 +08:00

126 lines
4.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.kaidi.oa.seed;
import com.kaidi.oa.common.Money;
import com.kaidi.oa.domain.RdDeclPlan;
import com.kaidi.oa.repository.RdDeclPlanRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import java.time.Instant;
/**
* 申报服务部——年度/季度申报计划种子数据(Gap 1 [low] 补完)。
*
* 原缺口:rd-decl-plans 台账为 0 条数据,前端页面 rddeclplan.vue 虽已存在但列表空白。
* 本 Seeder 在表为空时注入 4 条演示计划(跨状态:执行中/已批准/草稿/已完成),
* 使 rddeclplan 页面首次打开即有数据可见。
*
* 注意:本 seeder 独立于 DataSeederOrder=2 在 DataSeeder Order=1 之后运行),
* 不修改 DataSeeder 的大构造函数。
*/
@DemoSeed
@Order(2)
public class RdDeclPlanSeeder implements CommandLineRunner {
private static final Logger log = LoggerFactory.getLogger(RdDeclPlanSeeder.class);
private final RdDeclPlanRepository planRepo;
public RdDeclPlanSeeder(RdDeclPlanRepository planRepo) {
this.planRepo = planRepo;
}
@Override
public void run(String... args) {
if (planRepo.count() > 0) {
return; // 已有数据,跳过
}
log.info("Seeding RdDeclPlan demonstration data...");
// 1. 执行中:高新技术企业认定申报(主力计划)
RdDeclPlan p1 = new RdDeclPlan();
p1.setName("2026年度高新技术企业认定申报计划");
p1.setPeriodType("年度");
p1.setPlanYear(2026);
p1.setPolicyCategory("资质类");
p1.setProgramName("高新技术企业");
p1.setDepartment("申报服务部");
p1.setOwner("李申报");
p1.setBudget(Money.of(80000.0));
p1.setExpectedBenefit(Money.of(500000.0));
p1.setPlanApplyDate("2026-08-01");
p1.setPlanEndDate("2026-11-30");
p1.setStatus("执行中");
p1.setProgress(45);
p1.setRemark("每三年复评一次,本次为第二轮;需财务审计报告+知识产权数量满足要求");
p1.setCreatedAt(Instant.now());
p1.setUpdatedAt(Instant.now());
planRepo.save(p1);
// 2. 已批准:专精特新中小企业申报
RdDeclPlan p2 = new RdDeclPlan();
p2.setName("2026年度专精特新中小企业认定申报计划");
p2.setPeriodType("年度");
p2.setPlanYear(2026);
p2.setPolicyCategory("资质类");
p2.setProgramName("专精特新中小企业");
p2.setDepartment("申报服务部");
p2.setOwner("王申报");
p2.setBudget(Money.of(30000.0));
p2.setExpectedBenefit(Money.of(200000.0));
p2.setPlanApplyDate("2026-09-01");
p2.setPlanEndDate("2026-12-31");
p2.setStatus("已批准");
p2.setProgress(0);
p2.setRemark("省级专精特新首次申报,需研发费用占比≥3%、知识产权≥2项");
p2.setCreatedAt(Instant.now());
p2.setUpdatedAt(Instant.now());
planRepo.save(p2);
// 3. 草稿:研发费用加计扣除季度申请
RdDeclPlan p3 = new RdDeclPlan();
p3.setName("2026年Q3研发费用加计扣除预缴申请计划");
p3.setPeriodType("季度");
p3.setPlanYear(2026);
p3.setPlanQuarter("Q3");
p3.setPolicyCategory("资金类");
p3.setProgramName("研发费用加计扣除");
p3.setDepartment("申报服务部");
p3.setOwner("张申报");
p3.setBudget(Money.of(5000.0));
p3.setExpectedBenefit(Money.of(120000.0));
p3.setPlanApplyDate("2026-07-15");
p3.setPlanEndDate("2026-07-31");
p3.setStatus("草稿");
p3.setProgress(0);
p3.setRemark("每季度预缴税款时享受,需财务提供研发费用辅助账");
p3.setCreatedAt(Instant.now());
p3.setUpdatedAt(Instant.now());
planRepo.save(p3);
// 4. 已完成:科技型中小企业评价(已结案)
RdDeclPlan p4 = new RdDeclPlan();
p4.setName("2025年度科技型中小企业评价申报计划");
p4.setPeriodType("年度");
p4.setPlanYear(2025);
p4.setPolicyCategory("资质类");
p4.setProgramName("科技型中小企业");
p4.setDepartment("申报服务部");
p4.setOwner("李申报");
p4.setBudget(Money.of(10000.0));
p4.setExpectedBenefit(Money.of(80000.0));
p4.setPlanApplyDate("2025-05-01");
p4.setPlanEndDate("2025-06-30");
p4.setStatus("已完成");
p4.setProgress(100);
p4.setRemark("已完成在科技部门户网站填报并获评,有效期至2026年底");
p4.setCreatedAt(Instant.now().minusSeconds(86400L * 180));
p4.setUpdatedAt(Instant.now().minusSeconds(86400L * 30));
planRepo.save(p4);
log.info("Seeded {} RdDeclPlan records.", planRepo.count());
}
}