新增工资/仓储/生产日报等模块,移除旧考勤模块

- 新增 PayRoll(工资)、Wms(仓储)、Prod(车速/缫丝/考勤/丝片检测/丝片台账/纤检日报/质量日报) 模块
- 新增对应 Domain 实体、Application DTO/Service、Api Controller 与前端页面
- 移除旧 Attendance 考勤模块(Controller/Service/Entity/DTO 及 5 个前端页面),由 Prod/Kaoqin 取代
- 调整路由、仪表盘、Lsjl 流丝记录实体与服务
- 更新业务种子数据与 DbSeeder
- 补充工作进度文档 14-27
This commit is contained in:
yanpeng200212
2026-10-27 09:09:57 +08:00
parent 69c4052a64
commit 1f1b184411
119 changed files with 21576 additions and 1668 deletions
@@ -0,0 +1,187 @@
namespace F9WebAiTest.Application.Dtos.Prod;
// ==================== 考勤登记(CQDJ) ====================
/// <summary>登记明细(读 / 写共用)</summary>
public class CqdjItemDto
{
public long Id { get; set; }
public long DepId { get; set; } // 出勤部门(流动 / 代班时可为其它部门)
public long WorktypeId { get; set; } // 出勤工种
public int TypeCq { get; set; } // 出勤类型(1正常 2请假 3流动 4加班 5代班 6外派 7旷工 8工伤)
public int TypeQj { get; set; } // 请假类型(0无 1事假 2病假 3产假 4婚假 5丧假 6公假 7年假 9调休 10轮休)
public decimal Hours { get; set; }
public string Jizu { get; set; } = "";
public string CtStart { get; set; } = "";
public string CtEnd { get; set; } = "";
public int DangcheNum { get; set; }
public string Memo { get; set; } = "";
}
/// <summary>登记行(一人一天)</summary>
public class CqdjRowDto
{
public long Id { get; set; } // 已保存的主表 Id(0=未保存)
public long EmployeeId { get; set; }
public string EmployeeCode { get; set; } = "";
public string EmployeeName { get; set; } = "";
public long DepId { get; set; }
public string DepName { get; set; } = "";
public long WorktypeId { get; set; }
public string WorktypeName { get; set; } = "";
public int Banci { get; set; }
public bool IsXuegong { get; set; } // 学工(未转正)
public bool Saved { get; set; } // 是否已入库
public decimal HoursStandard { get; set; }
public decimal HoursCq { get; set; }
public decimal HoursQj { get; set; }
public decimal HoursLd { get; set; }
public decimal HoursJb { get; set; }
public decimal HoursDb { get; set; }
public decimal HoursWp { get; set; }
public decimal HoursKg { get; set; }
public decimal HoursGs { get; set; }
public int CsYeban { get; set; }
public string Memo { get; set; } = "";
public List<CqdjItemDto> Items { get; set; } = new();
}
/// <summary>登记查询结果(一次性返回整组,前端整组编辑)</summary>
public class CqdjViewDto
{
public DateTime Date { get; set; }
public string DateText => Date.ToString("yyyy-MM-dd");
public long DepId { get; set; }
public long WorktypeId { get; set; }
public int Banci { get; set; }
public List<CqdjRowDto> Rows { get; set; } = new();
}
/// <summary>整组保存入参(先软删该 日期+部门+工种+班次 的旧登记,再整批新增)</summary>
public class CqdjSaveDto
{
public DateTime Date { get; set; }
public long DepId { get; set; }
public long WorktypeId { get; set; } // 0 = 全部工种
public int Banci { get; set; }
public List<CqdjSaveRowDto> Rows { get; set; } = new();
}
public class CqdjSaveRowDto
{
public long EmployeeId { get; set; }
public long DepId { get; set; } // 0 = 取职工所在部门
public long WorktypeId { get; set; } // 0 = 取职工工种
public bool IsXuegong { get; set; }
public decimal HoursStandard { get; set; }
public int CsYeban { get; set; }
public string Memo { get; set; } = "";
public List<CqdjItemDto> Items { get; set; } = new();
}
/// <summary>「添加职工」下拉选项</summary>
public class CqdjEmpOptionDto
{
public long Id { get; set; }
public string Code { get; set; } = "";
public string Name { get; set; } = "";
public long DepId { get; set; }
public string DepName { get; set; } = "";
public long WorktypeId { get; set; }
public string WorktypeName { get; set; } = "";
public bool IsXuegong { get; set; }
}
// ==================== 考勤统计(CQTJ) ====================
/// <summary>统计行(一人一行,月快照)</summary>
public class CqtjRowDto
{
public long Id { get; set; }
public int Year { get; set; }
public int Month { get; set; }
public long DepId { get; set; }
public string DepName { get; set; } = "";
public long WorktypeId { get; set; }
public string WorktypeName { get; set; } = "";
public long EmployeeId { get; set; }
public string EmployeeCode { get; set; } = "";
public string EmployeeName { get; set; } = "";
public decimal DaysCqStandard { get; set; }
public decimal DaysCqActual { get; set; }
public decimal CqTianci { get; set; }
public decimal HoursCq { get; set; }
public decimal HoursQj { get; set; }
public decimal HoursLd { get; set; }
public decimal HoursJb { get; set; }
public decimal HoursDb { get; set; }
public decimal HoursWp { get; set; }
public decimal HoursKg { get; set; }
public int CsYeban { get; set; }
public decimal HoursQjShijia { get; set; }
public decimal HoursQjBj { get; set; }
public decimal HoursQjHj { get; set; }
public decimal HoursQjCj { get; set; }
public decimal HoursQjLx { get; set; }
public decimal HoursQjSangjia { get; set; }
public decimal HoursQjGj { get; set; }
public decimal HoursQjNj { get; set; }
public decimal HoursQjTx { get; set; }
public decimal HoursXgCq { get; set; }
public decimal HoursXgJiaban { get; set; }
public decimal HoursFadingjiaqi { get; set; }
public decimal HoursQjQqmc { get; set; }
public decimal HoursQjQqcal { get; set; }
public decimal JineQuanqin { get; set; }
public decimal JineJb { get; set; }
public decimal JineLiudong { get; set; }
public decimal JineDaiban { get; set; }
public decimal JineYb { get; set; }
public decimal JineKgKk { get; set; }
public decimal JineJqBzHj { get; set; }
public decimal JineJqBzBj { get; set; }
public decimal JineJqBzLx { get; set; }
public decimal JineJqBzSangjia { get; set; }
public decimal JineJqBzFading { get; set; }
public decimal JineJqBzTxnj { get; set; }
public decimal JineJqBz { get; set; }
public string Memo { get; set; } = "";
}
/// <summary>统计整组保存(先软删该 年/月/部门 的旧快照,再整批新增)</summary>
public class CqtjSaveDto
{
public int Year { get; set; }
public int Month { get; set; }
public long DepId { get; set; }
public List<CqtjRowDto> Rows { get; set; } = new();
}
/// <summary>一键生成入参</summary>
public class CqtjGenerateDto
{
public int Year { get; set; }
public int Month { get; set; }
}
/// <summary>统计录入视图(附加展示用的账期信息)</summary>
public class CqtjViewDto
{
public int Year { get; set; }
public int Month { get; set; }
public long DepId { get; set; }
public string DepName { get; set; } = "";
public decimal QsQuanqinDays { get; set; } // 薪资配置账期的前缫出勤天数
public bool Exists { get; set; } // true=库中已有快照,false=本次实时算出
public List<CqtjRowDto> Rows { get; set; } = new();
}