diff --git a/DOAN.Admin.WebApi/Controllers/MES/Material/MmLocationController.cs b/DOAN.Admin.WebApi/Controllers/MES/Material/MmLocationController.cs
new file mode 100644
index 0000000..9ef2695
--- /dev/null
+++ b/DOAN.Admin.WebApi/Controllers/MES/Material/MmLocationController.cs
@@ -0,0 +1,102 @@
+using Microsoft.AspNetCore.Mvc;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Service.BZFM.IBZFMService;
+using DOAN.Admin.WebApi.Filters;
+
+//创建时间:2025-12-25
+namespace DOAN.Admin.WebApi.Controllers.BZFM
+{
+ ///
+ /// 库位表
+ ///
+ [Verify]
+ [Route("BZFM/MmLocation")]
+ public class MmLocationController : BaseController
+ {
+ ///
+ /// 库位表接口
+ ///
+ private readonly IMmLocationService _MmLocationService;
+
+ public MmLocationController(IMmLocationService MmLocationService)
+ {
+ _MmLocationService = MmLocationService;
+ }
+
+ ///
+ /// 查询库位表列表
+ ///
+ ///
+ ///
+ [HttpGet("list")]
+ [ActionPermissionFilter(Permission = "mmlocation:list")]
+ public IActionResult QueryMmLocation([FromQuery] MmLocationQueryDto parm)
+ {
+ var response = _MmLocationService.GetList(parm);
+ return SUCCESS(response);
+ }
+
+
+ ///
+ /// 查询库位表详情
+ ///
+ ///
+ ///
+ [HttpGet("{Id}")]
+ [ActionPermissionFilter(Permission = "mmlocation:query")]
+ public IActionResult GetMmLocation(int Id)
+ {
+ var response = _MmLocationService.GetInfo(Id);
+
+ var info = response.Adapt();
+ return SUCCESS(info);
+ }
+
+ ///
+ /// 添加库位表
+ ///
+ ///
+ [HttpPost]
+ [ActionPermissionFilter(Permission = "mmlocation:add")]
+ [Log(Title = "库位表", BusinessType = BusinessType.INSERT)]
+ public IActionResult AddMmLocation([FromBody] MmLocationDto parm)
+ {
+ var modal = parm.Adapt().ToCreate(HttpContext);
+
+ var response = _MmLocationService.AddMmLocation(modal);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 更新库位表
+ ///
+ ///
+ [HttpPut]
+ [ActionPermissionFilter(Permission = "mmlocation:edit")]
+ [Log(Title = "库位表", BusinessType = BusinessType.UPDATE)]
+ public IActionResult UpdateMmLocation([FromBody] MmLocationDto parm)
+ {
+ var modal = parm.Adapt().ToUpdate(HttpContext);
+ var response = _MmLocationService.UpdateMmLocation(modal);
+
+ return ToResponse(response);
+ }
+
+ ///
+ /// 删除库位表
+ ///
+ ///
+ [HttpPost("delete/{ids}")]
+ [ActionPermissionFilter(Permission = "mmlocation:delete")]
+ [Log(Title = "库位表", BusinessType = BusinessType.DELETE)]
+ public IActionResult DeleteMmLocation([FromRoute]string ids)
+ {
+ var idArr = Tools.SplitAndConvert(ids);
+
+ return ToResponse(_MmLocationService.Delete(idArr));
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Admin.WebApi/Controllers/MES/Material/MmMaterialCategoryController.cs b/DOAN.Admin.WebApi/Controllers/MES/Material/MmMaterialCategoryController.cs
new file mode 100644
index 0000000..044cbd5
--- /dev/null
+++ b/DOAN.Admin.WebApi/Controllers/MES/Material/MmMaterialCategoryController.cs
@@ -0,0 +1,102 @@
+using Microsoft.AspNetCore.Mvc;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Service.BZFM.IBZFMService;
+using DOAN.Admin.WebApi.Filters;
+
+//创建时间:2025-12-25
+namespace DOAN.Admin.WebApi.Controllers.BZFM
+{
+ ///
+ /// 物料分类表
+ ///
+ [Verify]
+ [Route("BZFM/MmMaterialCategory")]
+ public class MmMaterialCategoryController : BaseController
+ {
+ ///
+ /// 物料分类表接口
+ ///
+ private readonly IMmMaterialCategoryService _MmMaterialCategoryService;
+
+ public MmMaterialCategoryController(IMmMaterialCategoryService MmMaterialCategoryService)
+ {
+ _MmMaterialCategoryService = MmMaterialCategoryService;
+ }
+
+ ///
+ /// 查询物料分类表列表
+ ///
+ ///
+ ///
+ [HttpGet("list")]
+ [ActionPermissionFilter(Permission = "mmmaterialcategory:list")]
+ public IActionResult QueryMmMaterialCategory([FromQuery] MmMaterialCategoryQueryDto parm)
+ {
+ var response = _MmMaterialCategoryService.GetList(parm);
+ return SUCCESS(response);
+ }
+
+
+ ///
+ /// 查询物料分类表详情
+ ///
+ ///
+ ///
+ [HttpGet("{Id}")]
+ [ActionPermissionFilter(Permission = "mmmaterialcategory:query")]
+ public IActionResult GetMmMaterialCategory(int Id)
+ {
+ var response = _MmMaterialCategoryService.GetInfo(Id);
+
+ var info = response.Adapt();
+ return SUCCESS(info);
+ }
+
+ ///
+ /// 添加物料分类表
+ ///
+ ///
+ [HttpPost]
+ [ActionPermissionFilter(Permission = "mmmaterialcategory:add")]
+ [Log(Title = "物料分类表", BusinessType = BusinessType.INSERT)]
+ public IActionResult AddMmMaterialCategory([FromBody] MmMaterialCategoryDto parm)
+ {
+ var modal = parm.Adapt().ToCreate(HttpContext);
+
+ var response = _MmMaterialCategoryService.AddMmMaterialCategory(modal);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 更新物料分类表
+ ///
+ ///
+ [HttpPut]
+ [ActionPermissionFilter(Permission = "mmmaterialcategory:edit")]
+ [Log(Title = "物料分类表", BusinessType = BusinessType.UPDATE)]
+ public IActionResult UpdateMmMaterialCategory([FromBody] MmMaterialCategoryDto parm)
+ {
+ var modal = parm.Adapt().ToUpdate(HttpContext);
+ var response = _MmMaterialCategoryService.UpdateMmMaterialCategory(modal);
+
+ return ToResponse(response);
+ }
+
+ ///
+ /// 删除物料分类表
+ ///
+ ///
+ [HttpPost("delete/{ids}")]
+ [ActionPermissionFilter(Permission = "mmmaterialcategory:delete")]
+ [Log(Title = "物料分类表", BusinessType = BusinessType.DELETE)]
+ public IActionResult DeleteMmMaterialCategory([FromRoute]string ids)
+ {
+ var idArr = Tools.SplitAndConvert(ids);
+
+ return ToResponse(_MmMaterialCategoryService.Delete(idArr));
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Admin.WebApi/Controllers/MES/Material/MmMaterialController.cs b/DOAN.Admin.WebApi/Controllers/MES/Material/MmMaterialController.cs
new file mode 100644
index 0000000..a23ab7d
--- /dev/null
+++ b/DOAN.Admin.WebApi/Controllers/MES/Material/MmMaterialController.cs
@@ -0,0 +1,102 @@
+using Microsoft.AspNetCore.Mvc;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Service.BZFM.IBZFMService;
+using DOAN.Admin.WebApi.Filters;
+
+//创建时间:2025-12-25
+namespace DOAN.Admin.WebApi.Controllers.BZFM
+{
+ ///
+ /// 物料表
+ ///
+ [Verify]
+ [Route("BZFM/MmMaterial")]
+ public class MmMaterialController : BaseController
+ {
+ ///
+ /// 物料表接口
+ ///
+ private readonly IMmMaterialService _MmMaterialService;
+
+ public MmMaterialController(IMmMaterialService MmMaterialService)
+ {
+ _MmMaterialService = MmMaterialService;
+ }
+
+ ///
+ /// 查询物料表列表
+ ///
+ ///
+ ///
+ [HttpGet("list")]
+ [ActionPermissionFilter(Permission = "mmmaterial:list")]
+ public IActionResult QueryMmMaterial([FromQuery] MmMaterialQueryDto parm)
+ {
+ var response = _MmMaterialService.GetList(parm);
+ return SUCCESS(response);
+ }
+
+
+ ///
+ /// 查询物料表详情
+ ///
+ ///
+ ///
+ [HttpGet("{Id}")]
+ [ActionPermissionFilter(Permission = "mmmaterial:query")]
+ public IActionResult GetMmMaterial(int Id)
+ {
+ var response = _MmMaterialService.GetInfo(Id);
+
+ var info = response.Adapt();
+ return SUCCESS(info);
+ }
+
+ ///
+ /// 添加物料表
+ ///
+ ///
+ [HttpPost]
+ [ActionPermissionFilter(Permission = "mmmaterial:add")]
+ [Log(Title = "物料表", BusinessType = BusinessType.INSERT)]
+ public IActionResult AddMmMaterial([FromBody] MmMaterialDto parm)
+ {
+ var modal = parm.Adapt().ToCreate(HttpContext);
+
+ var response = _MmMaterialService.AddMmMaterial(modal);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 更新物料表
+ ///
+ ///
+ [HttpPut]
+ [ActionPermissionFilter(Permission = "mmmaterial:edit")]
+ [Log(Title = "物料表", BusinessType = BusinessType.UPDATE)]
+ public IActionResult UpdateMmMaterial([FromBody] MmMaterialDto parm)
+ {
+ var modal = parm.Adapt().ToUpdate(HttpContext);
+ var response = _MmMaterialService.UpdateMmMaterial(modal);
+
+ return ToResponse(response);
+ }
+
+ ///
+ /// 删除物料表
+ ///
+ ///
+ [HttpPost("delete/{ids}")]
+ [ActionPermissionFilter(Permission = "mmmaterial:delete")]
+ [Log(Title = "物料表", BusinessType = BusinessType.DELETE)]
+ public IActionResult DeleteMmMaterial([FromRoute]string ids)
+ {
+ var idArr = Tools.SplitAndConvert(ids);
+
+ return ToResponse(_MmMaterialService.Delete(idArr));
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Admin.WebApi/Controllers/MES/Material/MmRecordInboundController.cs b/DOAN.Admin.WebApi/Controllers/MES/Material/MmRecordInboundController.cs
new file mode 100644
index 0000000..d6fef26
--- /dev/null
+++ b/DOAN.Admin.WebApi/Controllers/MES/Material/MmRecordInboundController.cs
@@ -0,0 +1,102 @@
+using Microsoft.AspNetCore.Mvc;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Service.BZFM.IBZFMService;
+using DOAN.Admin.WebApi.Filters;
+
+//创建时间:2025-12-25
+namespace DOAN.Admin.WebApi.Controllers.BZFM
+{
+ ///
+ /// 入库记录表
+ ///
+ [Verify]
+ [Route("BZFM/MmRecordInbound")]
+ public class MmRecordInboundController : BaseController
+ {
+ ///
+ /// 入库记录表接口
+ ///
+ private readonly IMmRecordInboundService _MmRecordInboundService;
+
+ public MmRecordInboundController(IMmRecordInboundService MmRecordInboundService)
+ {
+ _MmRecordInboundService = MmRecordInboundService;
+ }
+
+ ///
+ /// 查询入库记录表列表
+ ///
+ ///
+ ///
+ [HttpGet("list")]
+ [ActionPermissionFilter(Permission = "mmrecordinbound:list")]
+ public IActionResult QueryMmRecordInbound([FromQuery] MmRecordInboundQueryDto parm)
+ {
+ var response = _MmRecordInboundService.GetList(parm);
+ return SUCCESS(response);
+ }
+
+
+ ///
+ /// 查询入库记录表详情
+ ///
+ ///
+ ///
+ [HttpGet("{Id}")]
+ [ActionPermissionFilter(Permission = "mmrecordinbound:query")]
+ public IActionResult GetMmRecordInbound(int Id)
+ {
+ var response = _MmRecordInboundService.GetInfo(Id);
+
+ var info = response.Adapt();
+ return SUCCESS(info);
+ }
+
+ ///
+ /// 添加入库记录表
+ ///
+ ///
+ [HttpPost]
+ [ActionPermissionFilter(Permission = "mmrecordinbound:add")]
+ [Log(Title = "入库记录表", BusinessType = BusinessType.INSERT)]
+ public IActionResult AddMmRecordInbound([FromBody] MmRecordInboundDto parm)
+ {
+ var modal = parm.Adapt().ToCreate(HttpContext);
+
+ var response = _MmRecordInboundService.AddMmRecordInbound(modal);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 更新入库记录表
+ ///
+ ///
+ [HttpPut]
+ [ActionPermissionFilter(Permission = "mmrecordinbound:edit")]
+ [Log(Title = "入库记录表", BusinessType = BusinessType.UPDATE)]
+ public IActionResult UpdateMmRecordInbound([FromBody] MmRecordInboundDto parm)
+ {
+ var modal = parm.Adapt().ToUpdate(HttpContext);
+ var response = _MmRecordInboundService.UpdateMmRecordInbound(modal);
+
+ return ToResponse(response);
+ }
+
+ ///
+ /// 删除入库记录表
+ ///
+ ///
+ [HttpPost("delete/{ids}")]
+ [ActionPermissionFilter(Permission = "mmrecordinbound:delete")]
+ [Log(Title = "入库记录表", BusinessType = BusinessType.DELETE)]
+ public IActionResult DeleteMmRecordInbound([FromRoute]string ids)
+ {
+ var idArr = Tools.SplitAndConvert(ids);
+
+ return ToResponse(_MmRecordInboundService.Delete(idArr));
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Admin.WebApi/Controllers/MES/Material/MmRecordOutboundController.cs b/DOAN.Admin.WebApi/Controllers/MES/Material/MmRecordOutboundController.cs
new file mode 100644
index 0000000..d716663
--- /dev/null
+++ b/DOAN.Admin.WebApi/Controllers/MES/Material/MmRecordOutboundController.cs
@@ -0,0 +1,102 @@
+using Microsoft.AspNetCore.Mvc;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Service.BZFM.IBZFMService;
+using DOAN.Admin.WebApi.Filters;
+
+//创建时间:2025-12-25
+namespace DOAN.Admin.WebApi.Controllers.BZFM
+{
+ ///
+ /// 出库记录表
+ ///
+ [Verify]
+ [Route("BZFM/MmRecordOutbound")]
+ public class MmRecordOutboundController : BaseController
+ {
+ ///
+ /// 出库记录表接口
+ ///
+ private readonly IMmRecordOutboundService _MmRecordOutboundService;
+
+ public MmRecordOutboundController(IMmRecordOutboundService MmRecordOutboundService)
+ {
+ _MmRecordOutboundService = MmRecordOutboundService;
+ }
+
+ ///
+ /// 查询出库记录表列表
+ ///
+ ///
+ ///
+ [HttpGet("list")]
+ [ActionPermissionFilter(Permission = "mmrecordoutbound:list")]
+ public IActionResult QueryMmRecordOutbound([FromQuery] MmRecordOutboundQueryDto parm)
+ {
+ var response = _MmRecordOutboundService.GetList(parm);
+ return SUCCESS(response);
+ }
+
+
+ ///
+ /// 查询出库记录表详情
+ ///
+ ///
+ ///
+ [HttpGet("{Id}")]
+ [ActionPermissionFilter(Permission = "mmrecordoutbound:query")]
+ public IActionResult GetMmRecordOutbound(int Id)
+ {
+ var response = _MmRecordOutboundService.GetInfo(Id);
+
+ var info = response.Adapt();
+ return SUCCESS(info);
+ }
+
+ ///
+ /// 添加出库记录表
+ ///
+ ///
+ [HttpPost]
+ [ActionPermissionFilter(Permission = "mmrecordoutbound:add")]
+ [Log(Title = "出库记录表", BusinessType = BusinessType.INSERT)]
+ public IActionResult AddMmRecordOutbound([FromBody] MmRecordOutboundDto parm)
+ {
+ var modal = parm.Adapt().ToCreate(HttpContext);
+
+ var response = _MmRecordOutboundService.AddMmRecordOutbound(modal);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 更新出库记录表
+ ///
+ ///
+ [HttpPut]
+ [ActionPermissionFilter(Permission = "mmrecordoutbound:edit")]
+ [Log(Title = "出库记录表", BusinessType = BusinessType.UPDATE)]
+ public IActionResult UpdateMmRecordOutbound([FromBody] MmRecordOutboundDto parm)
+ {
+ var modal = parm.Adapt().ToUpdate(HttpContext);
+ var response = _MmRecordOutboundService.UpdateMmRecordOutbound(modal);
+
+ return ToResponse(response);
+ }
+
+ ///
+ /// 删除出库记录表
+ ///
+ ///
+ [HttpPost("delete/{ids}")]
+ [ActionPermissionFilter(Permission = "mmrecordoutbound:delete")]
+ [Log(Title = "出库记录表", BusinessType = BusinessType.DELETE)]
+ public IActionResult DeleteMmRecordOutbound([FromRoute]string ids)
+ {
+ var idArr = Tools.SplitAndConvert(ids);
+
+ return ToResponse(_MmRecordOutboundService.Delete(idArr));
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Admin.WebApi/Controllers/MES/Material/MmTransactionTypeController.cs b/DOAN.Admin.WebApi/Controllers/MES/Material/MmTransactionTypeController.cs
new file mode 100644
index 0000000..915325e
--- /dev/null
+++ b/DOAN.Admin.WebApi/Controllers/MES/Material/MmTransactionTypeController.cs
@@ -0,0 +1,102 @@
+using Microsoft.AspNetCore.Mvc;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Service.BZFM.IBZFMService;
+using DOAN.Admin.WebApi.Filters;
+
+//创建时间:2025-12-25
+namespace DOAN.Admin.WebApi.Controllers.BZFM
+{
+ ///
+ /// 出入库类别对照表
+ ///
+ [Verify]
+ [Route("BZFM/MmTransactionType")]
+ public class MmTransactionTypeController : BaseController
+ {
+ ///
+ /// 出入库类别对照表接口
+ ///
+ private readonly IMmTransactionTypeService _MmTransactionTypeService;
+
+ public MmTransactionTypeController(IMmTransactionTypeService MmTransactionTypeService)
+ {
+ _MmTransactionTypeService = MmTransactionTypeService;
+ }
+
+ ///
+ /// 查询出入库类别对照表列表
+ ///
+ ///
+ ///
+ [HttpGet("list")]
+ [ActionPermissionFilter(Permission = "mmtransactiontype:list")]
+ public IActionResult QueryMmTransactionType([FromQuery] MmTransactionTypeQueryDto parm)
+ {
+ var response = _MmTransactionTypeService.GetList(parm);
+ return SUCCESS(response);
+ }
+
+
+ ///
+ /// 查询出入库类别对照表详情
+ ///
+ ///
+ ///
+ [HttpGet("{Id}")]
+ [ActionPermissionFilter(Permission = "mmtransactiontype:query")]
+ public IActionResult GetMmTransactionType(int Id)
+ {
+ var response = _MmTransactionTypeService.GetInfo(Id);
+
+ var info = response.Adapt();
+ return SUCCESS(info);
+ }
+
+ ///
+ /// 添加出入库类别对照表
+ ///
+ ///
+ [HttpPost]
+ [ActionPermissionFilter(Permission = "mmtransactiontype:add")]
+ [Log(Title = "出入库类别对照表", BusinessType = BusinessType.INSERT)]
+ public IActionResult AddMmTransactionType([FromBody] MmTransactionTypeDto parm)
+ {
+ var modal = parm.Adapt().ToCreate(HttpContext);
+
+ var response = _MmTransactionTypeService.AddMmTransactionType(modal);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 更新出入库类别对照表
+ ///
+ ///
+ [HttpPut]
+ [ActionPermissionFilter(Permission = "mmtransactiontype:edit")]
+ [Log(Title = "出入库类别对照表", BusinessType = BusinessType.UPDATE)]
+ public IActionResult UpdateMmTransactionType([FromBody] MmTransactionTypeDto parm)
+ {
+ var modal = parm.Adapt().ToUpdate(HttpContext);
+ var response = _MmTransactionTypeService.UpdateMmTransactionType(modal);
+
+ return ToResponse(response);
+ }
+
+ ///
+ /// 删除出入库类别对照表
+ ///
+ ///
+ [HttpPost("delete/{ids}")]
+ [ActionPermissionFilter(Permission = "mmtransactiontype:delete")]
+ [Log(Title = "出入库类别对照表", BusinessType = BusinessType.DELETE)]
+ public IActionResult DeleteMmTransactionType([FromRoute]string ids)
+ {
+ var idArr = Tools.SplitAndConvert(ids);
+
+ return ToResponse(_MmTransactionTypeService.Delete(idArr));
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/Dto/MmLocationDto.cs b/DOAN.Model/MES/Material/Dto/MmLocationDto.cs
new file mode 100644
index 0000000..f530b6c
--- /dev/null
+++ b/DOAN.Model/MES/Material/Dto/MmLocationDto.cs
@@ -0,0 +1,53 @@
+
+namespace DOAN.Model.BZFM.Dto
+{
+ ///
+ /// 库位表查询对象
+ ///
+ public class MmLocationQueryDto : PagerInfo
+ {
+ }
+
+ ///
+ /// 库位表输入输出对象
+ ///
+ public class MmLocationDto
+ {
+ [Required(ErrorMessage = "主键ID不能为空")]
+ public int Id { get; set; }
+
+ [Required(ErrorMessage = "库位编码不能为空")]
+ public string LocationCode { get; set; }
+
+ [Required(ErrorMessage = "库位名称不能为空")]
+ public string LocationName { get; set; }
+
+ [Required(ErrorMessage = "仓库编码不能为空")]
+ public string WarehouseCode { get; set; }
+
+ public string WarehouseName { get; set; }
+
+ public string AreaCode { get; set; }
+
+ public string AreaName { get; set; }
+
+ public decimal Capacity { get; set; }
+
+ public string Unit { get; set; }
+
+ public string LocationType { get; set; }
+
+ public string Status { get; set; }
+
+ public DateTime? CreatedTime { get; set; }
+
+ public DateTime? UpdatedTime { get; set; }
+
+ public string Description { get; set; }
+
+
+
+ [ExcelColumn(Name = "库位类型(半成品/成品/临时/返工/报废)")]
+ public string LocationTypeLabel { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/Dto/MmMaterialCategoryDto.cs b/DOAN.Model/MES/Material/Dto/MmMaterialCategoryDto.cs
new file mode 100644
index 0000000..9b37b42
--- /dev/null
+++ b/DOAN.Model/MES/Material/Dto/MmMaterialCategoryDto.cs
@@ -0,0 +1,42 @@
+
+namespace DOAN.Model.BZFM.Dto
+{
+ ///
+ /// 物料分类表查询对象
+ ///
+ public class MmMaterialCategoryQueryDto : PagerInfo
+ {
+ }
+
+ ///
+ /// 物料分类表输入输出对象
+ ///
+ public class MmMaterialCategoryDto
+ {
+ [Required(ErrorMessage = "主键ID不能为空")]
+ public int Id { get; set; }
+
+ [Required(ErrorMessage = "分类编码不能为空")]
+ public string CategoryCode { get; set; }
+
+ [Required(ErrorMessage = "分类名称不能为空")]
+ public string CategoryName { get; set; }
+
+ public string ParentCode { get; set; }
+
+ public int? LevelNo { get; set; }
+
+ public string Description { get; set; }
+
+ public string Status { get; set; }
+
+ public DateTime? CreatedTime { get; set; }
+
+ public DateTime? UpdatedTime { get; set; }
+
+
+
+ [ExcelColumn(Name = "状态(0/1)")]
+ public string StatusLabel { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/Dto/MmMaterialDto.cs b/DOAN.Model/MES/Material/Dto/MmMaterialDto.cs
new file mode 100644
index 0000000..06fd5c1
--- /dev/null
+++ b/DOAN.Model/MES/Material/Dto/MmMaterialDto.cs
@@ -0,0 +1,54 @@
+
+namespace DOAN.Model.BZFM.Dto
+{
+ ///
+ /// 物料表查询对象
+ ///
+ public class MmMaterialQueryDto : PagerInfo
+ {
+ }
+
+ ///
+ /// 物料表输入输出对象
+ ///
+ public class MmMaterialDto
+ {
+ [Required(ErrorMessage = "主键ID不能为空")]
+ public int Id { get; set; }
+
+ [Required(ErrorMessage = "物料编码不能为空")]
+ public string MaterialCode { get; set; }
+
+ [Required(ErrorMessage = "物料名称不能为空")]
+ public string MaterialName { get; set; }
+
+ public string Specification { get; set; }
+
+ public string CategoryCode { get; set; }
+
+ public string CategoryName { get; set; }
+
+ public string Unit { get; set; }
+
+ public string Type { get; set; }
+
+ public string SupplierCode { get; set; }
+
+ public string SupplierName { get; set; }
+
+ public decimal SafetyStock { get; set; }
+
+ public string Status { get; set; }
+
+ public DateTime? CreatedTime { get; set; }
+
+ public DateTime? UpdatedTime { get; set; }
+
+ public string Description { get; set; }
+
+
+
+ [ExcelColumn(Name = "物料类型(原材料/半成品/产成品/打包材料/辅料)")]
+ public string TypeLabel { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/Dto/MmRecordInboundDto.cs b/DOAN.Model/MES/Material/Dto/MmRecordInboundDto.cs
new file mode 100644
index 0000000..db78773
--- /dev/null
+++ b/DOAN.Model/MES/Material/Dto/MmRecordInboundDto.cs
@@ -0,0 +1,65 @@
+
+namespace DOAN.Model.BZFM.Dto
+{
+ ///
+ /// 入库记录表查询对象
+ ///
+ public class MmRecordInboundQueryDto : PagerInfo
+ {
+ }
+
+ ///
+ /// 入库记录表输入输出对象
+ ///
+ public class MmRecordInboundDto
+ {
+ public string Unit { get; set; }
+
+ public DateTime? CreatedTime { get; set; }
+
+ public string Remarks { get; set; }
+
+ public string Operator { get; set; }
+
+ public string SupplierName { get; set; }
+
+ public string SupplierCode { get; set; }
+
+ public DateTime? ExpiryDate { get; set; }
+
+ public DateTime? ProductionDate { get; set; }
+
+ public string BatchNo { get; set; }
+
+ [Required(ErrorMessage = "入库类型不能为空")]
+ public string TransactionType { get; set; }
+
+ [Required(ErrorMessage = "主键ID不能为空")]
+ public int Id { get; set; }
+
+ [Required(ErrorMessage = "入库数量不能为空")]
+ public decimal Quantity { get; set; }
+
+ public string LocationName { get; set; }
+
+ public string LocationCode { get; set; }
+
+ public string WarehouseName { get; set; }
+
+ [Required(ErrorMessage = "仓库编码不能为空")]
+ public string WarehouseCode { get; set; }
+
+ public string MaterialName { get; set; }
+
+ [Required(ErrorMessage = "物料编码不能为空")]
+ public string MaterialCode { get; set; }
+
+ [Required(ErrorMessage = "入库单号不能为空")]
+ public string InboundNo { get; set; }
+
+
+
+ [ExcelColumn(Name = "入库类型")]
+ public string TransactionTypeLabel { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/Dto/MmRecordOutboundDto.cs b/DOAN.Model/MES/Material/Dto/MmRecordOutboundDto.cs
new file mode 100644
index 0000000..2307af4
--- /dev/null
+++ b/DOAN.Model/MES/Material/Dto/MmRecordOutboundDto.cs
@@ -0,0 +1,59 @@
+
+namespace DOAN.Model.BZFM.Dto
+{
+ ///
+ /// 出库记录表查询对象
+ ///
+ public class MmRecordOutboundQueryDto : PagerInfo
+ {
+ }
+
+ ///
+ /// 出库记录表输入输出对象
+ ///
+ public class MmRecordOutboundDto
+ {
+ [Required(ErrorMessage = "主键ID不能为空")]
+ public int Id { get; set; }
+
+ [Required(ErrorMessage = "出库单号不能为空")]
+ public string OutboundNo { get; set; }
+
+ [Required(ErrorMessage = "物料编码不能为空")]
+ public string MaterialCode { get; set; }
+
+ public string MaterialName { get; set; }
+
+ [Required(ErrorMessage = "仓库编码不能为空")]
+ public string WarehouseCode { get; set; }
+
+ public string WarehouseName { get; set; }
+
+ public string LocationCode { get; set; }
+
+ public string LocationName { get; set; }
+
+ [Required(ErrorMessage = "出库数量不能为空")]
+ public decimal Quantity { get; set; }
+
+ public string Unit { get; set; }
+
+ [Required(ErrorMessage = "出库类型不能为空")]
+ public string TransactionType { get; set; }
+
+ public string BatchNo { get; set; }
+
+ public string OrderNo { get; set; }
+
+ public string Operator { get; set; }
+
+ public string Remarks { get; set; }
+
+ public DateTime? CreatedTime { get; set; }
+
+
+
+ [ExcelColumn(Name = "出库类型")]
+ public string TransactionTypeLabel { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/Dto/MmTransactionTypeDto.cs b/DOAN.Model/MES/Material/Dto/MmTransactionTypeDto.cs
new file mode 100644
index 0000000..4570485
--- /dev/null
+++ b/DOAN.Model/MES/Material/Dto/MmTransactionTypeDto.cs
@@ -0,0 +1,41 @@
+
+namespace DOAN.Model.BZFM.Dto
+{
+ ///
+ /// 出入库类别对照表查询对象
+ ///
+ public class MmTransactionTypeQueryDto : PagerInfo
+ {
+ }
+
+ ///
+ /// 出入库类别对照表输入输出对象
+ ///
+ public class MmTransactionTypeDto
+ {
+ [Required(ErrorMessage = "主键ID不能为空")]
+ public int Id { get; set; }
+
+ [Required(ErrorMessage = "类别编码不能为空")]
+ public string TypeCode { get; set; }
+
+ [Required(ErrorMessage = "类别名称不能为空")]
+ public string TypeName { get; set; }
+
+ [Required(ErrorMessage = "操作方向(入库/出库)不能为空")]
+ public string TransactionDirection { get; set; }
+
+ public string Description { get; set; }
+
+ public string Status { get; set; }
+
+ public DateTime? CreatedTime { get; set; }
+
+ public DateTime? UpdatedTime { get; set; }
+
+
+
+ [ExcelColumn(Name = "状态(停用/启用)")]
+ public string StatusLabel { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/MmLocation.cs b/DOAN.Model/MES/Material/MmLocation.cs
new file mode 100644
index 0000000..da1a37b
--- /dev/null
+++ b/DOAN.Model/MES/Material/MmLocation.cs
@@ -0,0 +1,91 @@
+
+namespace DOAN.Model.BZFM
+{
+ ///
+ /// 库位表
+ ///
+ [SugarTable("mm_location")]
+ public class MmLocation
+ {
+ ///
+ /// 主键ID
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 库位编码
+ ///
+ [SugarColumn(ColumnName = "location_code")]
+ public string LocationCode { get; set; }
+
+ ///
+ /// 库位名称
+ ///
+ [SugarColumn(ColumnName = "location_name")]
+ public string LocationName { get; set; }
+
+ ///
+ /// 仓库编码
+ ///
+ [SugarColumn(ColumnName = "warehouse_code")]
+ public string WarehouseCode { get; set; }
+
+ ///
+ /// 仓库名称
+ ///
+ [SugarColumn(ColumnName = "warehouse_name")]
+ public string WarehouseName { get; set; }
+
+ ///
+ /// 区域编码
+ ///
+ [SugarColumn(ColumnName = "area_code")]
+ public string AreaCode { get; set; }
+
+ ///
+ /// 区域名称
+ ///
+ [SugarColumn(ColumnName = "area_name")]
+ public string AreaName { get; set; }
+
+ ///
+ /// 容量
+ ///
+ public decimal Capacity { get; set; }
+
+ ///
+ /// 容量单位
+ ///
+ public string Unit { get; set; }
+
+ ///
+ /// 库位类型(半成品/成品/临时/返工/报废)
+ ///
+ [SugarColumn(ColumnName = "location_type")]
+ public string LocationType { get; set; }
+
+ ///
+ /// 状态(停用/启用)
+ ///
+ public string Status { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "created_time")]
+ public DateTime? CreatedTime { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "updated_time")]
+ public DateTime? UpdatedTime { get; set; }
+
+ ///
+ /// 描述
+ ///
+ public string Description { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/MmMaterial.cs b/DOAN.Model/MES/Material/MmMaterial.cs
new file mode 100644
index 0000000..0dacaf4
--- /dev/null
+++ b/DOAN.Model/MES/Material/MmMaterial.cs
@@ -0,0 +1,96 @@
+
+namespace DOAN.Model.BZFM
+{
+ ///
+ /// 物料表
+ ///
+ [SugarTable("mm_material")]
+ public class MmMaterial
+ {
+ ///
+ /// 主键ID
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 物料编码
+ ///
+ [SugarColumn(ColumnName = "material_code")]
+ public string MaterialCode { get; set; }
+
+ ///
+ /// 物料名称
+ ///
+ [SugarColumn(ColumnName = "material_name")]
+ public string MaterialName { get; set; }
+
+ ///
+ /// 规格型号
+ ///
+ public string Specification { get; set; }
+
+ ///
+ /// 物料分类编码
+ ///
+ [SugarColumn(ColumnName = "category_code")]
+ public string CategoryCode { get; set; }
+
+ ///
+ /// 物料分类名称
+ ///
+ [SugarColumn(ColumnName = "category_name")]
+ public string CategoryName { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Unit { get; set; }
+
+ ///
+ /// 物料类型(原材料/半成品/产成品/打包材料/辅料)
+ ///
+ public string Type { get; set; }
+
+ ///
+ /// 供应商编码
+ ///
+ [SugarColumn(ColumnName = "supplier_code")]
+ public string SupplierCode { get; set; }
+
+ ///
+ /// 供应商名称
+ ///
+ [SugarColumn(ColumnName = "supplier_name")]
+ public string SupplierName { get; set; }
+
+ ///
+ /// 安全库存
+ ///
+ [SugarColumn(ColumnName = "safety_stock")]
+ public decimal SafetyStock { get; set; }
+
+ ///
+ /// 状态(停用/启用)
+ ///
+ public string Status { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "created_time")]
+ public DateTime? CreatedTime { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "updated_time")]
+ public DateTime? UpdatedTime { get; set; }
+
+ ///
+ /// 描述
+ ///
+ public string Description { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/MmMaterialCategory.cs b/DOAN.Model/MES/Material/MmMaterialCategory.cs
new file mode 100644
index 0000000..40b4216
--- /dev/null
+++ b/DOAN.Model/MES/Material/MmMaterialCategory.cs
@@ -0,0 +1,63 @@
+
+namespace DOAN.Model.BZFM
+{
+ ///
+ /// 物料分类表
+ ///
+ [SugarTable("mm_material_category")]
+ public class MmMaterialCategory
+ {
+ ///
+ /// 主键ID
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 分类编码
+ ///
+ [SugarColumn(ColumnName = "category_code")]
+ public string CategoryCode { get; set; }
+
+ ///
+ /// 分类名称
+ ///
+ [SugarColumn(ColumnName = "category_name")]
+ public string CategoryName { get; set; }
+
+ ///
+ /// 父级分类编码
+ ///
+ [SugarColumn(ColumnName = "parent_code")]
+ public string ParentCode { get; set; }
+
+ ///
+ /// 层级
+ ///
+ [SugarColumn(ColumnName = "level_no")]
+ public int? LevelNo { get; set; }
+
+ ///
+ /// 描述
+ ///
+ public string Description { get; set; }
+
+ ///
+ /// 状态(0/1)
+ ///
+ public string Status { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "created_time")]
+ public DateTime? CreatedTime { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "updated_time")]
+ public DateTime? UpdatedTime { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/MmRecordInbound.cs b/DOAN.Model/MES/Material/MmRecordInbound.cs
new file mode 100644
index 0000000..0a6a4b0
--- /dev/null
+++ b/DOAN.Model/MES/Material/MmRecordInbound.cs
@@ -0,0 +1,121 @@
+
+namespace DOAN.Model.BZFM
+{
+ ///
+ /// 入库记录表
+ ///
+ [SugarTable("mm_record_inbound")]
+ public class MmRecordInbound
+ {
+ ///
+ /// 计量单位
+ ///
+ public string Unit { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "created_time")]
+ public DateTime? CreatedTime { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Remarks { get; set; }
+
+ ///
+ /// 操作员
+ ///
+ public string Operator { get; set; }
+
+ ///
+ /// 供应商名称
+ ///
+ [SugarColumn(ColumnName = "supplier_name")]
+ public string SupplierName { get; set; }
+
+ ///
+ /// 供应商编码
+ ///
+ [SugarColumn(ColumnName = "supplier_code")]
+ public string SupplierCode { get; set; }
+
+ ///
+ /// 有效期至
+ ///
+ [SugarColumn(ColumnName = "expiry_date")]
+ public DateTime? ExpiryDate { get; set; }
+
+ ///
+ /// 生产日期
+ ///
+ [SugarColumn(ColumnName = "production_date")]
+ public DateTime? ProductionDate { get; set; }
+
+ ///
+ /// 批次号
+ ///
+ [SugarColumn(ColumnName = "batch_no")]
+ public string BatchNo { get; set; }
+
+ ///
+ /// 入库类型
+ ///
+ [SugarColumn(ColumnName = "transaction_type")]
+ public string TransactionType { get; set; }
+
+ ///
+ /// 主键ID
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 入库数量
+ ///
+ public decimal Quantity { get; set; }
+
+ ///
+ /// 库位名称
+ ///
+ [SugarColumn(ColumnName = "location_name")]
+ public string LocationName { get; set; }
+
+ ///
+ /// 库位编码
+ ///
+ [SugarColumn(ColumnName = "location_code")]
+ public string LocationCode { get; set; }
+
+ ///
+ /// 仓库名称
+ ///
+ [SugarColumn(ColumnName = "warehouse_name")]
+ public string WarehouseName { get; set; }
+
+ ///
+ /// 仓库编码
+ ///
+ [SugarColumn(ColumnName = "warehouse_code")]
+ public string WarehouseCode { get; set; }
+
+ ///
+ /// 物料名称
+ ///
+ [SugarColumn(ColumnName = "material_name")]
+ public string MaterialName { get; set; }
+
+ ///
+ /// 物料编码
+ ///
+ [SugarColumn(ColumnName = "material_code")]
+ public string MaterialCode { get; set; }
+
+ ///
+ /// 入库单号
+ ///
+ [SugarColumn(ColumnName = "inbound_no")]
+ public string InboundNo { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/MmRecordOutbound.cs b/DOAN.Model/MES/Material/MmRecordOutbound.cs
new file mode 100644
index 0000000..9a4610e
--- /dev/null
+++ b/DOAN.Model/MES/Material/MmRecordOutbound.cs
@@ -0,0 +1,103 @@
+
+namespace DOAN.Model.BZFM
+{
+ ///
+ /// 出库记录表
+ ///
+ [SugarTable("mm_record_outbound")]
+ public class MmRecordOutbound
+ {
+ ///
+ /// 主键ID
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 出库单号
+ ///
+ [SugarColumn(ColumnName = "outbound_no")]
+ public string OutboundNo { get; set; }
+
+ ///
+ /// 物料编码
+ ///
+ [SugarColumn(ColumnName = "material_code")]
+ public string MaterialCode { get; set; }
+
+ ///
+ /// 物料名称
+ ///
+ [SugarColumn(ColumnName = "material_name")]
+ public string MaterialName { get; set; }
+
+ ///
+ /// 仓库编码
+ ///
+ [SugarColumn(ColumnName = "warehouse_code")]
+ public string WarehouseCode { get; set; }
+
+ ///
+ /// 仓库名称
+ ///
+ [SugarColumn(ColumnName = "warehouse_name")]
+ public string WarehouseName { get; set; }
+
+ ///
+ /// 库位编码
+ ///
+ [SugarColumn(ColumnName = "location_code")]
+ public string LocationCode { get; set; }
+
+ ///
+ /// 库位名称
+ ///
+ [SugarColumn(ColumnName = "location_name")]
+ public string LocationName { get; set; }
+
+ ///
+ /// 出库数量
+ ///
+ public decimal Quantity { get; set; }
+
+ ///
+ /// 计量单位
+ ///
+ public string Unit { get; set; }
+
+ ///
+ /// 出库类型
+ ///
+ [SugarColumn(ColumnName = "transaction_type")]
+ public string TransactionType { get; set; }
+
+ ///
+ /// 批次号
+ ///
+ [SugarColumn(ColumnName = "batch_no")]
+ public string BatchNo { get; set; }
+
+ ///
+ /// 关联订单号
+ ///
+ [SugarColumn(ColumnName = "order_no")]
+ public string OrderNo { get; set; }
+
+ ///
+ /// 操作员
+ ///
+ public string Operator { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Remarks { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "created_time")]
+ public DateTime? CreatedTime { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/Material/MmTransactionType.cs b/DOAN.Model/MES/Material/MmTransactionType.cs
new file mode 100644
index 0000000..71f4dab
--- /dev/null
+++ b/DOAN.Model/MES/Material/MmTransactionType.cs
@@ -0,0 +1,57 @@
+
+namespace DOAN.Model.BZFM
+{
+ ///
+ /// 出入库类别对照表
+ ///
+ [SugarTable("mm_transaction_type")]
+ public class MmTransactionType
+ {
+ ///
+ /// 主键ID
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 类别编码
+ ///
+ [SugarColumn(ColumnName = "type_code")]
+ public string TypeCode { get; set; }
+
+ ///
+ /// 类别名称
+ ///
+ [SugarColumn(ColumnName = "type_name")]
+ public string TypeName { get; set; }
+
+ ///
+ /// 操作方向(入库/出库)
+ ///
+ [SugarColumn(ColumnName = "transaction_direction")]
+ public string TransactionDirection { get; set; }
+
+ ///
+ /// 描述
+ ///
+ public string Description { get; set; }
+
+ ///
+ /// 状态(停用/启用)
+ ///
+ public string Status { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "created_time")]
+ public DateTime? CreatedTime { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "updated_time")]
+ public DateTime? UpdatedTime { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Service/MES/Material/IService/IMmLocationService.cs b/DOAN.Service/MES/Material/IService/IMmLocationService.cs
new file mode 100644
index 0000000..7bd16f7
--- /dev/null
+++ b/DOAN.Service/MES/Material/IService/IMmLocationService.cs
@@ -0,0 +1,21 @@
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+
+namespace DOAN.Service.BZFM.IBZFMService
+{
+ ///
+ /// 库位表service接口
+ ///
+ public interface IMmLocationService : IBaseService
+ {
+ PagedInfo GetList(MmLocationQueryDto parm);
+
+ MmLocation GetInfo(int Id);
+
+
+ MmLocation AddMmLocation(MmLocation parm);
+ int UpdateMmLocation(MmLocation parm);
+
+
+ }
+}
diff --git a/DOAN.Service/MES/Material/IService/IMmMaterialCategoryService.cs b/DOAN.Service/MES/Material/IService/IMmMaterialCategoryService.cs
new file mode 100644
index 0000000..2ef09fe
--- /dev/null
+++ b/DOAN.Service/MES/Material/IService/IMmMaterialCategoryService.cs
@@ -0,0 +1,21 @@
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+
+namespace DOAN.Service.BZFM.IBZFMService
+{
+ ///
+ /// 物料分类表service接口
+ ///
+ public interface IMmMaterialCategoryService : IBaseService
+ {
+ PagedInfo GetList(MmMaterialCategoryQueryDto parm);
+
+ MmMaterialCategory GetInfo(int Id);
+
+
+ MmMaterialCategory AddMmMaterialCategory(MmMaterialCategory parm);
+ int UpdateMmMaterialCategory(MmMaterialCategory parm);
+
+
+ }
+}
diff --git a/DOAN.Service/MES/Material/IService/IMmMaterialService.cs b/DOAN.Service/MES/Material/IService/IMmMaterialService.cs
new file mode 100644
index 0000000..f65439d
--- /dev/null
+++ b/DOAN.Service/MES/Material/IService/IMmMaterialService.cs
@@ -0,0 +1,21 @@
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+
+namespace DOAN.Service.BZFM.IBZFMService
+{
+ ///
+ /// 物料表service接口
+ ///
+ public interface IMmMaterialService : IBaseService
+ {
+ PagedInfo GetList(MmMaterialQueryDto parm);
+
+ MmMaterial GetInfo(int Id);
+
+
+ MmMaterial AddMmMaterial(MmMaterial parm);
+ int UpdateMmMaterial(MmMaterial parm);
+
+
+ }
+}
diff --git a/DOAN.Service/MES/Material/IService/IMmRecordInboundService.cs b/DOAN.Service/MES/Material/IService/IMmRecordInboundService.cs
new file mode 100644
index 0000000..33584ca
--- /dev/null
+++ b/DOAN.Service/MES/Material/IService/IMmRecordInboundService.cs
@@ -0,0 +1,21 @@
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+
+namespace DOAN.Service.BZFM.IBZFMService
+{
+ ///
+ /// 入库记录表service接口
+ ///
+ public interface IMmRecordInboundService : IBaseService
+ {
+ PagedInfo GetList(MmRecordInboundQueryDto parm);
+
+ MmRecordInbound GetInfo(int Id);
+
+
+ MmRecordInbound AddMmRecordInbound(MmRecordInbound parm);
+ int UpdateMmRecordInbound(MmRecordInbound parm);
+
+
+ }
+}
diff --git a/DOAN.Service/MES/Material/IService/IMmRecordOutboundService.cs b/DOAN.Service/MES/Material/IService/IMmRecordOutboundService.cs
new file mode 100644
index 0000000..75c8623
--- /dev/null
+++ b/DOAN.Service/MES/Material/IService/IMmRecordOutboundService.cs
@@ -0,0 +1,21 @@
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+
+namespace DOAN.Service.BZFM.IBZFMService
+{
+ ///
+ /// 出库记录表service接口
+ ///
+ public interface IMmRecordOutboundService : IBaseService
+ {
+ PagedInfo GetList(MmRecordOutboundQueryDto parm);
+
+ MmRecordOutbound GetInfo(int Id);
+
+
+ MmRecordOutbound AddMmRecordOutbound(MmRecordOutbound parm);
+ int UpdateMmRecordOutbound(MmRecordOutbound parm);
+
+
+ }
+}
diff --git a/DOAN.Service/MES/Material/IService/IMmTransactionTypeService.cs b/DOAN.Service/MES/Material/IService/IMmTransactionTypeService.cs
new file mode 100644
index 0000000..e93b568
--- /dev/null
+++ b/DOAN.Service/MES/Material/IService/IMmTransactionTypeService.cs
@@ -0,0 +1,21 @@
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+
+namespace DOAN.Service.BZFM.IBZFMService
+{
+ ///
+ /// 出入库类别对照表service接口
+ ///
+ public interface IMmTransactionTypeService : IBaseService
+ {
+ PagedInfo GetList(MmTransactionTypeQueryDto parm);
+
+ MmTransactionType GetInfo(int Id);
+
+
+ MmTransactionType AddMmTransactionType(MmTransactionType parm);
+ int UpdateMmTransactionType(MmTransactionType parm);
+
+
+ }
+}
diff --git a/DOAN.Service/MES/Material/MmLocationService.cs b/DOAN.Service/MES/Material/MmLocationService.cs
new file mode 100644
index 0000000..40afcfc
--- /dev/null
+++ b/DOAN.Service/MES/Material/MmLocationService.cs
@@ -0,0 +1,79 @@
+using Infrastructure.Attribute;
+using Infrastructure.Extensions;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Repository;
+using DOAN.Service.BZFM.IBZFMService;
+
+namespace DOAN.Service.BZFM
+{
+ ///
+ /// 库位表Service业务层处理
+ ///
+ [AppService(ServiceType = typeof(IMmLocationService), ServiceLifetime = LifeTime.Transient)]
+ public class MmLocationService : BaseService, IMmLocationService
+ {
+ ///
+ /// 查询库位表列表
+ ///
+ ///
+ ///
+ public PagedInfo GetList(MmLocationQueryDto parm)
+ {
+ var predicate = QueryExp(parm);
+
+ var response = Queryable()
+ .Where(predicate.ToExpression())
+ .ToPage(parm);
+
+ return response;
+ }
+
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public MmLocation GetInfo(int Id)
+ {
+ var response = Queryable()
+ .Where(x => x.Id == Id)
+ .First();
+
+ return response;
+ }
+
+ ///
+ /// 添加库位表
+ ///
+ ///
+ ///
+ public MmLocation AddMmLocation(MmLocation model)
+ {
+ return Insertable(model).ExecuteReturnEntity();
+ }
+
+ ///
+ /// 修改库位表
+ ///
+ ///
+ ///
+ public int UpdateMmLocation(MmLocation model)
+ {
+ return Update(model, true);
+ }
+
+ ///
+ /// 查询导出表达式
+ ///
+ ///
+ ///
+ private static Expressionable QueryExp(MmLocationQueryDto parm)
+ {
+ var predicate = Expressionable.Create();
+
+ return predicate;
+ }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Service/MES/Material/MmMaterialCategoryService.cs b/DOAN.Service/MES/Material/MmMaterialCategoryService.cs
new file mode 100644
index 0000000..ce2e66e
--- /dev/null
+++ b/DOAN.Service/MES/Material/MmMaterialCategoryService.cs
@@ -0,0 +1,79 @@
+using Infrastructure.Attribute;
+using Infrastructure.Extensions;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Repository;
+using DOAN.Service.BZFM.IBZFMService;
+
+namespace DOAN.Service.BZFM
+{
+ ///
+ /// 物料分类表Service业务层处理
+ ///
+ [AppService(ServiceType = typeof(IMmMaterialCategoryService), ServiceLifetime = LifeTime.Transient)]
+ public class MmMaterialCategoryService : BaseService, IMmMaterialCategoryService
+ {
+ ///
+ /// 查询物料分类表列表
+ ///
+ ///
+ ///
+ public PagedInfo GetList(MmMaterialCategoryQueryDto parm)
+ {
+ var predicate = QueryExp(parm);
+
+ var response = Queryable()
+ .Where(predicate.ToExpression())
+ .ToPage(parm);
+
+ return response;
+ }
+
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public MmMaterialCategory GetInfo(int Id)
+ {
+ var response = Queryable()
+ .Where(x => x.Id == Id)
+ .First();
+
+ return response;
+ }
+
+ ///
+ /// 添加物料分类表
+ ///
+ ///
+ ///
+ public MmMaterialCategory AddMmMaterialCategory(MmMaterialCategory model)
+ {
+ return Insertable(model).ExecuteReturnEntity();
+ }
+
+ ///
+ /// 修改物料分类表
+ ///
+ ///
+ ///
+ public int UpdateMmMaterialCategory(MmMaterialCategory model)
+ {
+ return Update(model, true);
+ }
+
+ ///
+ /// 查询导出表达式
+ ///
+ ///
+ ///
+ private static Expressionable QueryExp(MmMaterialCategoryQueryDto parm)
+ {
+ var predicate = Expressionable.Create();
+
+ return predicate;
+ }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Service/MES/Material/MmMaterialService.cs b/DOAN.Service/MES/Material/MmMaterialService.cs
new file mode 100644
index 0000000..04606cf
--- /dev/null
+++ b/DOAN.Service/MES/Material/MmMaterialService.cs
@@ -0,0 +1,79 @@
+using Infrastructure.Attribute;
+using Infrastructure.Extensions;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Repository;
+using DOAN.Service.BZFM.IBZFMService;
+
+namespace DOAN.Service.BZFM
+{
+ ///
+ /// 物料表Service业务层处理
+ ///
+ [AppService(ServiceType = typeof(IMmMaterialService), ServiceLifetime = LifeTime.Transient)]
+ public class MmMaterialService : BaseService, IMmMaterialService
+ {
+ ///
+ /// 查询物料表列表
+ ///
+ ///
+ ///
+ public PagedInfo GetList(MmMaterialQueryDto parm)
+ {
+ var predicate = QueryExp(parm);
+
+ var response = Queryable()
+ .Where(predicate.ToExpression())
+ .ToPage(parm);
+
+ return response;
+ }
+
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public MmMaterial GetInfo(int Id)
+ {
+ var response = Queryable()
+ .Where(x => x.Id == Id)
+ .First();
+
+ return response;
+ }
+
+ ///
+ /// 添加物料表
+ ///
+ ///
+ ///
+ public MmMaterial AddMmMaterial(MmMaterial model)
+ {
+ return Insertable(model).ExecuteReturnEntity();
+ }
+
+ ///
+ /// 修改物料表
+ ///
+ ///
+ ///
+ public int UpdateMmMaterial(MmMaterial model)
+ {
+ return Update(model, true);
+ }
+
+ ///
+ /// 查询导出表达式
+ ///
+ ///
+ ///
+ private static Expressionable QueryExp(MmMaterialQueryDto parm)
+ {
+ var predicate = Expressionable.Create();
+
+ return predicate;
+ }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Service/MES/Material/MmRecordInboundService.cs b/DOAN.Service/MES/Material/MmRecordInboundService.cs
new file mode 100644
index 0000000..9febd2a
--- /dev/null
+++ b/DOAN.Service/MES/Material/MmRecordInboundService.cs
@@ -0,0 +1,79 @@
+using Infrastructure.Attribute;
+using Infrastructure.Extensions;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Repository;
+using DOAN.Service.BZFM.IBZFMService;
+
+namespace DOAN.Service.BZFM
+{
+ ///
+ /// 入库记录表Service业务层处理
+ ///
+ [AppService(ServiceType = typeof(IMmRecordInboundService), ServiceLifetime = LifeTime.Transient)]
+ public class MmRecordInboundService : BaseService, IMmRecordInboundService
+ {
+ ///
+ /// 查询入库记录表列表
+ ///
+ ///
+ ///
+ public PagedInfo GetList(MmRecordInboundQueryDto parm)
+ {
+ var predicate = QueryExp(parm);
+
+ var response = Queryable()
+ .Where(predicate.ToExpression())
+ .ToPage(parm);
+
+ return response;
+ }
+
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public MmRecordInbound GetInfo(int Id)
+ {
+ var response = Queryable()
+ .Where(x => x.Id == Id)
+ .First();
+
+ return response;
+ }
+
+ ///
+ /// 添加入库记录表
+ ///
+ ///
+ ///
+ public MmRecordInbound AddMmRecordInbound(MmRecordInbound model)
+ {
+ return Insertable(model).ExecuteReturnEntity();
+ }
+
+ ///
+ /// 修改入库记录表
+ ///
+ ///
+ ///
+ public int UpdateMmRecordInbound(MmRecordInbound model)
+ {
+ return Update(model, true);
+ }
+
+ ///
+ /// 查询导出表达式
+ ///
+ ///
+ ///
+ private static Expressionable QueryExp(MmRecordInboundQueryDto parm)
+ {
+ var predicate = Expressionable.Create();
+
+ return predicate;
+ }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Service/MES/Material/MmRecordOutboundService.cs b/DOAN.Service/MES/Material/MmRecordOutboundService.cs
new file mode 100644
index 0000000..d50291d
--- /dev/null
+++ b/DOAN.Service/MES/Material/MmRecordOutboundService.cs
@@ -0,0 +1,79 @@
+using Infrastructure.Attribute;
+using Infrastructure.Extensions;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Repository;
+using DOAN.Service.BZFM.IBZFMService;
+
+namespace DOAN.Service.BZFM
+{
+ ///
+ /// 出库记录表Service业务层处理
+ ///
+ [AppService(ServiceType = typeof(IMmRecordOutboundService), ServiceLifetime = LifeTime.Transient)]
+ public class MmRecordOutboundService : BaseService, IMmRecordOutboundService
+ {
+ ///
+ /// 查询出库记录表列表
+ ///
+ ///
+ ///
+ public PagedInfo GetList(MmRecordOutboundQueryDto parm)
+ {
+ var predicate = QueryExp(parm);
+
+ var response = Queryable()
+ .Where(predicate.ToExpression())
+ .ToPage(parm);
+
+ return response;
+ }
+
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public MmRecordOutbound GetInfo(int Id)
+ {
+ var response = Queryable()
+ .Where(x => x.Id == Id)
+ .First();
+
+ return response;
+ }
+
+ ///
+ /// 添加出库记录表
+ ///
+ ///
+ ///
+ public MmRecordOutbound AddMmRecordOutbound(MmRecordOutbound model)
+ {
+ return Insertable(model).ExecuteReturnEntity();
+ }
+
+ ///
+ /// 修改出库记录表
+ ///
+ ///
+ ///
+ public int UpdateMmRecordOutbound(MmRecordOutbound model)
+ {
+ return Update(model, true);
+ }
+
+ ///
+ /// 查询导出表达式
+ ///
+ ///
+ ///
+ private static Expressionable QueryExp(MmRecordOutboundQueryDto parm)
+ {
+ var predicate = Expressionable.Create();
+
+ return predicate;
+ }
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Service/MES/Material/MmTransactionTypeService.cs b/DOAN.Service/MES/Material/MmTransactionTypeService.cs
new file mode 100644
index 0000000..9f75a29
--- /dev/null
+++ b/DOAN.Service/MES/Material/MmTransactionTypeService.cs
@@ -0,0 +1,79 @@
+using Infrastructure.Attribute;
+using Infrastructure.Extensions;
+using DOAN.Model.BZFM.Dto;
+using DOAN.Model.BZFM;
+using DOAN.Repository;
+using DOAN.Service.BZFM.IBZFMService;
+
+namespace DOAN.Service.BZFM
+{
+ ///
+ /// 出入库类别对照表Service业务层处理
+ ///
+ [AppService(ServiceType = typeof(IMmTransactionTypeService), ServiceLifetime = LifeTime.Transient)]
+ public class MmTransactionTypeService : BaseService, IMmTransactionTypeService
+ {
+ ///
+ /// 查询出入库类别对照表列表
+ ///
+ ///
+ ///
+ public PagedInfo GetList(MmTransactionTypeQueryDto parm)
+ {
+ var predicate = QueryExp(parm);
+
+ var response = Queryable()
+ .Where(predicate.ToExpression())
+ .ToPage(parm);
+
+ return response;
+ }
+
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public MmTransactionType GetInfo(int Id)
+ {
+ var response = Queryable()
+ .Where(x => x.Id == Id)
+ .First();
+
+ return response;
+ }
+
+ ///
+ /// 添加出入库类别对照表
+ ///
+ ///
+ ///
+ public MmTransactionType AddMmTransactionType(MmTransactionType model)
+ {
+ return Insertable(model).ExecuteReturnEntity();
+ }
+
+ ///
+ /// 修改出入库类别对照表
+ ///
+ ///
+ ///
+ public int UpdateMmTransactionType(MmTransactionType model)
+ {
+ return Update(model, true);
+ }
+
+ ///
+ /// 查询导出表达式
+ ///
+ ///
+ ///
+ private static Expressionable QueryExp(MmTransactionTypeQueryDto parm)
+ {
+ var predicate = Expressionable.Create();
+
+ return predicate;
+ }
+ }
+}
\ No newline at end of file