feat: 添加工单管理服务及相关测试

refactor: 重构工单服务接口和实现
test: 添加工单服务的单元测试和集成测试
This commit is contained in:
2026-01-28 17:54:15 +08:00
parent 4d5893d124
commit 4f91390d01
21 changed files with 2379 additions and 1481 deletions

View File

@@ -0,0 +1,48 @@
using DOAN.Model.MES.product;
using DOAN.Model.MES.product.Dto;
namespace DOAN.Service.MES.product.IService
{
/// <summary>
/// 核心工单管理服务接口
/// </summary>
public interface IProWorkorderCoreService
{
/// <summary>
/// 获取工单详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
ProWorkorder GetInfo(string Id);
/// <summary>
/// 添加生产工单
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
ProWorkorder AddProWorkorder(ProWorkorder model);
/// <summary>
/// 修改生产工单
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
int UpdateProWorkorder(ProWorkorder model);
/// <summary>
/// 插入工单、新增工单
/// </summary>
/// <param name="proWorkorder"></param>
/// <param name="next_id"></param>
/// <returns></returns>
int Insert_workOrder(ProWorkorder proWorkorder, string next_id);
/// <summary>
/// 插入工单2
/// </summary>
/// <param name="proWorkorder"></param>
/// <param name="next_id"></param>
/// <returns></returns>
int Insert_workOrder2(ProWorkorder proWorkorder, string next_id);
}
}

View File

@@ -0,0 +1,18 @@
using DOAN.Model.MES.product;
namespace DOAN.Service.MES.product.IService
{
/// <summary>
/// 工单导出服务接口
/// </summary>
public interface IProWorkorderExportService
{
/// <summary>
/// 工单导出
/// </summary>
/// <param name="exportTime"></param>
/// <param name="pager"></param>
/// <returns></returns>
List<ProWorkorder> WorkOrderExport(DateTime exportTime);
}
}

View File

@@ -0,0 +1,26 @@
using Microsoft.AspNetCore.Http;
namespace DOAN.Service.MES.product.IService
{
/// <summary>
/// 工单导入服务接口
/// </summary>
public interface IProWorkorderImportService
{
/// <summary>
/// 导入工单 必须整删除 整改
/// </summary>
/// <param name="formFile"></param>
/// <param name="username"></param>
/// <returns></returns>
int ImportData(IFormFile formFile, string username);
/// <summary>
/// 分批导入,追加导入
/// </summary>
/// <param name="formFile"></param>
/// <param name="username"></param>
/// <returns></returns>
int ImportDataAppend(IFormFile formFile, string username);
}
}

View File

@@ -0,0 +1,46 @@
using DOAN.Model.MES.product;
using DOAN.Model.MES.product.Dto;
namespace DOAN.Service.MES.product.IService
{
/// <summary>
/// 工单查询服务接口
/// </summary>
public interface IProWorkorderQueryService
{
/// <summary>
/// 查询生产工单列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
PagedInfo<ProWorkorderDto3> GetList(ProWorkorderQueryDto parm);
/// <summary>
/// 获取工单无校验
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
PagedInfo<ProWorkorderDto> GetList_NOCheck(ProWorkorderQueryDto parm);
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
ProWorkorder GetInfo(string Id);
/// <summary>
/// 获取工单进度跟踪列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
PagedInfo<ProWorkorderTranceProgressDto> GetWorkorderTraceProgressList(ProWorkorderQueryDto query);
/// <summary>
/// 查询BOM 及其所需数量
/// </summary>
/// <param name="workorder_num"></param>
/// <returns></returns>
List<WorkOrderBom> SearchBOMNum(string workorder_num);
}
}

View File

@@ -0,0 +1,45 @@
using DOAN.Model.MES.base_;
using DOAN.Model.MES.base_.Dto;
using DOAN.Model.MES.product.Dto;
namespace DOAN.Service.MES.product.IService
{
/// <summary>
/// 参考数据服务接口
/// </summary>
public interface IProWorkorderReferenceService
{
/// <summary>
/// 获取物料信息
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
List<BaseMaterialList> GetMaterialInfo(BaseMaterialListQueryDto5 parm);
/// <summary>
/// 获取客户信息
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
List<BaseCustom> GetCustomInfo(BaseCustomQueryDto2 parm);
/// <summary>
/// 获取所有工艺路线
/// </summary>
/// <returns></returns>
List<BaseWorkRoute> GetAllRoute();
/// <summary>
/// 获取班组
/// </summary>
/// <returns></returns>
List<BaseGroup> GetGroupList();
/// <summary>
/// 获取工艺路线
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
List<BaseWorkRoute> GetProcessRoute(DateTime dateTime);
}
}

View File

@@ -44,7 +44,7 @@ namespace DOAN.Service.MES.product.IService
int ImportDataAppend(IFormFile formFile,string username);
public PagedInfo<ProWorkorder> WorkOrderExport(DateTime exportTime, PagerInfo pager);
public List<ProWorkorder> WorkOrderExport(DateTime exportTime);
List<BaseMaterialList> GetMaterialInfo(BaseMaterialListQueryDto5 parm);
List<BaseCustom> GetCustomInfo(BaseCustomQueryDto2 parm);

View File

@@ -0,0 +1,59 @@
using System.IO;
using System.Threading.Tasks;
using DOAN.Model.MES.product;
using DOAN.Model.MES.product.Dto;
using Infrastructure;
namespace DOAN.Service.MES.product.IService
{
/// <summary>
/// 工单工具服务接口
/// </summary>
public interface IProWorkorderUtilityService
{
/// <summary>
/// 生成工单号
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
int Generate_workorder(ProWorkorderQueryDto2 parm);
/// <summary>
/// 移动工单
/// </summary>
/// <param name="id"></param>
/// <param name="type"></param>
/// <returns></returns>
int MoveWorkorder(string id, int type);
/// <summary>
/// 查询BOM及其所需数量
/// </summary>
/// <param name="workorder_num"></param>
/// <returns></returns>
List<WorkOrderBom> SearchBOMNum(string workorder_num);
/// <summary>
/// 工单日志
/// </summary>
/// <param name="workorder"></param>
/// <param name="log"></param>
/// <param name="Operator"></param>
/// <returns></returns>
int WorkOrderLog(string workorder, string log, string Operator);
/// <summary>
/// 导出PDF
/// </summary>
/// <param name="workorderArray"></param>
/// <returns></returns>
Task<(string, Stream)> ExportPDFByQuestPDFDemo(string[] workorderArray);
/// <summary>
/// 打印工单
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
Task<CustomException> PrintTicketsByTemplate(ProWorkorderExportDto param);
}
}