Files
kunshan-bzfm-mes-backend/DOAN.Admin.WebApi/Controllers/MES/Group/GroupScheduleController.cs

282 lines
9.2 KiB
C#
Raw Normal View History

2025-03-12 15:32:38 +08:00
using Microsoft.AspNetCore.Mvc;
using DOAN.Model.MES.group;
using DOAN.Model.MES.group.Dto;
using DOAN.Service.group.IService;
using DOAN.Admin.WebApi.Filters;
using SqlSugar.Extensions;
using System.Collections.Generic;
using System;
using static System.Runtime.InteropServices.JavaScript.JSType;
//创建时间2024-08-08
namespace DOAN.Admin.WebApi.Controllers
{
/// <summary>
/// 排班
/// </summary>
[Verify]
[Route("mes/groupManagement/GroupSchedule")]
public class GroupScheduleController : BaseController
{
/// <summary>
/// 排班接口
/// </summary>
private readonly IGroupScheduleService _GroupScheduleService;
public GroupScheduleController(IGroupScheduleService GroupScheduleService)
{
_GroupScheduleService = GroupScheduleService;
}
/// <summary>
/// 查询排班列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
//[ActionPermissionFilter(Permission = "business:groupschedule:list")]
2025-03-12 15:32:38 +08:00
public IActionResult QueryGroupSchedule([FromQuery] GroupScheduleQueryDto parm)
{
var response = _GroupScheduleService.GetList(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询排班详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
[HttpGet("{Id}")]
// [ActionPermissionFilter(Permission = "business:groupschedule:query")]
public IActionResult GetGroupSchedule(string Id)
{
var response = _GroupScheduleService.GetInfo(Id);
var info = response.Adapt<GroupSchedule>();
return SUCCESS(info);
}
/// <summary>
/// 添加排班
/// </summary>
/// <returns></returns>
[HttpPost]
// [ActionPermissionFilter(Permission = "business:groupschedule:add")]
[Log(Title = "排班", BusinessType = BusinessType.INSERT)]
public IActionResult AddGroupSchedule([FromBody] GroupScheduleDto parm)
{
var modal = parm.Adapt<GroupSchedule>().ToCreate(HttpContext);
var response = _GroupScheduleService.AddGroupSchedule(modal);
return SUCCESS(response);
}
/// <summary>
/// 更新排班
/// </summary>
/// <returns></returns>
[HttpPut]
// [ActionPermissionFilter(Permission = "business:groupschedule:edit")]
[Log(Title = "排班", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateGroupSchedule([FromBody] GroupScheduleDto parm)
{
var modal = parm.Adapt<GroupSchedule>().ToUpdate(HttpContext);
var response = _GroupScheduleService.UpdateGroupSchedule(modal);
return ToResponse(response);
}
//TODO 获取班组
[HttpGet("get_group")]
public IActionResult GetGroup(string group_name="", string group_code = "")
{
var response = _GroupScheduleService.GetALLGroup(group_code, group_name);
return SUCCESS(response);
}
/// <summary>
/// 1 根据日期获取班组
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
[HttpGet("list_by_date")]
public IActionResult ListGroupByDate(GroupScheduleQueryDto2 query)
{
if (query.ScheduleDate == DateTime.MinValue)
{
return SUCCESS(null);
}
var response = _GroupScheduleService.ListGroupByDate(query);
return SUCCESS(response);
}
// TODO 2 根据日期添加班组
/// <summary>
/// 添加排班
/// </summary>
/// <returns></returns>
[HttpPost("bydate_add")]
[Log(Title = "排班", BusinessType = BusinessType.INSERT)]
public IActionResult AddGroupSchedule2([FromBody] GroupScheduleDto parm)
{
if (parm.ScheduleDate == DateTime.MinValue)
{
return SUCCESS(null);
};
2025-03-18 17:50:08 +08:00
parm.ScheduleDate = parm.ScheduleDate.Value.Date;
2025-03-12 15:32:38 +08:00
var modal = parm.Adapt<GroupSchedule>().ToCreate(HttpContext);
var response = _GroupScheduleService.AddGroupSchedule(modal);
return SUCCESS(response);
}
// TODO
/// <summary>
/// 3 删除班组
/// </summary>
/// <returns></returns>
[HttpDelete("{ids}")]
// [ActionPermissionFilter(Permission = "business:groupschedule:delete")]
[Log(Title = "排班", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteGroupSchedule(string ids)
{
string[] idsArr = Tools.SpitStrArrary(ids);
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
var response = _GroupScheduleService.Delete(idsArr);
return ToResponse(response);
}
/// <summary>
/// //TODO 查询班组绑定的人员
/// </summary>
2025-03-19 13:48:02 +08:00
/// <param name="group_code">班组id</param>
2025-03-12 15:32:38 +08:00
/// <returns></returns>
[HttpGet("list_person_bind")]
2025-03-19 19:37:52 +08:00
public IActionResult SearchPerson_group_bind(DateTime schedule_date, string group_code)
2025-03-12 15:32:38 +08:00
{
2025-03-19 13:48:02 +08:00
if (string.IsNullOrEmpty(group_code))
2025-03-12 15:32:38 +08:00
{
return SUCCESS(null);
}
2025-03-19 19:37:52 +08:00
var response = _GroupScheduleService.SearchPerson_group_bind(schedule_date.Date,group_code);
2025-03-12 15:32:38 +08:00
return SUCCESS(response);
}
/// <summary>
/// TODO 查询排班未绑定的人员
/// </summary>
2025-03-19 13:48:02 +08:00
/// <param name="group_code">班id</param>
2025-03-12 15:32:38 +08:00
/// <returns></returns>
[HttpPost("list_person_bind_no")]
public IActionResult SearchPerson_group_bind_No([FromBody] GroupScheduleQueryDto3 parm)
{
2025-03-19 13:48:02 +08:00
if (string.IsNullOrEmpty(parm.group_code))
2025-03-12 15:32:38 +08:00
{
return SUCCESS(null);
}
var response = _GroupScheduleService.SearchPerson_group_bind_No(parm);
return SUCCESS(response);
}
//TODO 班组添加人员
[HttpGet("add_person")]
2025-03-19 15:18:44 +08:00
public IActionResult GroupAddPerson(string group_code, string person_id,DateTime schedule_date)
2025-03-12 15:32:38 +08:00
{
if (string.IsNullOrEmpty(group_code)) { return SUCCESS(null); }
2025-03-12 15:32:38 +08:00
if (string.IsNullOrEmpty(person_id)) { return SUCCESS(null); }
var response = _GroupScheduleService
2025-03-19 15:18:44 +08:00
.GroupAddPerson(group_code, person_id, schedule_date, HttpContext.GetName());
2025-03-12 15:32:38 +08:00
return SUCCESS(response);
}
//TODO 班组删除人员
[HttpGet("delete_person")]
public IActionResult GroupRemovePerson(string group_code, string person_id)
2025-03-12 15:32:38 +08:00
{
if (string.IsNullOrEmpty(group_code)) { return SUCCESS(null); }
2025-03-12 15:32:38 +08:00
if (string.IsNullOrEmpty(person_id)) { return SUCCESS(null); }
var response = _GroupScheduleService
.GroupRemovePerson(group_code, person_id);
2025-03-12 15:32:38 +08:00
return SUCCESS(response);
}
//TODO 获取月份的排班情况
/// <summary>
/// 获取月份的排班情况
/// </summary>
/// <param name="month_str"></param>
/// <returns> <日期,排组的数量></returns>
[HttpGet("month_schedule_result")]
public IActionResult GetMonthScheduleResult(string yearmonth)
{
if (string.IsNullOrEmpty(yearmonth)) { return SUCCESS(null); }
(int Year, int Month) ExtractYearAndMonth(string dateString)
{
if (DateTime.TryParseExact(dateString, "yyyy-MM", null, 0, out DateTime date)) // 使用 0 代替 None
{
return (date.Year, date.Month);
}
else
{
throw new ArgumentException("Invalid date format.", nameof(dateString));
}
}
(int Year, int Month) result = ExtractYearAndMonth(yearmonth);
var response = _GroupScheduleService.GetMonthScheduleResult(result.Year, result.Month);
return SUCCESS(response);
}
//TODO 复制班组
/// <summary>
/// 复制班组
/// </summary>
/// <param name="date">要排的日期</param>
/// <returns>-2 已有数据不可复制 -1 前一天无数据无法复制 >=1 复制的数量</returns>
[HttpGet("CopyGroup")]
public IActionResult CopyGroup(DateTime date)
{
var response= _GroupScheduleService.CopyPreDaySchedule(date,HttpContext.GetName());
return SUCCESS(response);
}
//TODO 获取工艺路线
public IActionResult GetAllRoutes()
{
var response = _GroupScheduleService.GetAllRoutes();
return SUCCESS(response);
}
//TODO 获取人员拥有的技能
public IActionResult GetSkillsOFperson(string person_id,int route_id)
{
var response = _GroupScheduleService.GetSkillsOFperson(person_id, route_id);
return SUCCESS(response);
}
}
}