diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseDefectController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseDefectController.cs new file mode 100644 index 00000000..06ff0bc6 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseDefectController.cs @@ -0,0 +1,100 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-01-02 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量BackEnd基础缺陷项 + /// + [Verify] + [Route("/mes/qc/BackEnd/QcBackEndBaseDefect")] + public class QcBackEndBaseDefectController : BaseController + { + /// + /// 质量BackEnd基础缺陷项接口 + /// + private readonly IQcBackEndBaseDefectService _QcBackEndBaseDefectService; + + public QcBackEndBaseDefectController(IQcBackEndBaseDefectService QcBackEndBaseDefectService) + { + _QcBackEndBaseDefectService = QcBackEndBaseDefectService; + } + + /// + /// 查询质量BackEnd基础缺陷项列表 + /// + /// + /// + [HttpGet("list")] + public IActionResult QueryQcBackEndBaseDefect([FromQuery] QcBackEndBaseDefectQueryDto parm) + { + var response = _QcBackEndBaseDefectService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询质量BackEnd基础缺陷项详情 + /// + /// + /// + [HttpGet("{Id}")] + public IActionResult GetQcBackEndBaseDefect(int Id) + { + var response = _QcBackEndBaseDefectService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量BackEnd基础缺陷项 + /// + /// + [HttpPost] + [Log(Title = "质量BackEnd基础缺陷项", BusinessType = BusinessType.INSERT)] + public IActionResult AddQcBackEndBaseDefect([FromBody] QcBackEndBaseDefectDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndBaseDefectService.AddQcBackEndBaseDefect(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量BackEnd基础缺陷项 + /// + /// + [HttpPut] + [Log(Title = "质量BackEnd基础缺陷项", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateQcBackEndBaseDefect([FromBody] QcBackEndBaseDefectDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackEndBaseDefectService.UpdateQcBackEndBaseDefect(modal); + + return ToResponse(response); + } + + /// + /// 删除质量BackEnd基础缺陷项 + /// + /// + [HttpDelete("{ids}")] + [Log(Title = "质量BackEnd基础缺陷项", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteQcBackEndBaseDefect(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _QcBackEndBaseDefectService.Delete(idsArr); + + return ToResponse(response); + } + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseGroupController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseGroupController.cs new file mode 100644 index 00000000..74440d42 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseGroupController.cs @@ -0,0 +1,100 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-01-02 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量BackEnd班组 + /// + [Verify] + [Route("/mes/qc/BackEnd/QcBackEndBaseGroup")] + public class QcBackEndBaseGroupController : BaseController + { + /// + /// 质量BackEnd班组接口 + /// + private readonly IQcBackEndBaseGroupService _QcBackEndBaseGroupService; + + public QcBackEndBaseGroupController(IQcBackEndBaseGroupService QcBackEndBaseGroupService) + { + _QcBackEndBaseGroupService = QcBackEndBaseGroupService; + } + + /// + /// 查询质量BackEnd班组列表 + /// + /// + /// + [HttpGet("list")] + public IActionResult QueryQcBackEndBaseGroup([FromQuery] QcBackEndBaseGroupQueryDto parm) + { + var response = _QcBackEndBaseGroupService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询质量BackEnd班组详情 + /// + /// + /// + [HttpGet("{Id}")] + public IActionResult GetQcBackEndBaseGroup(int Id) + { + var response = _QcBackEndBaseGroupService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量BackEnd班组 + /// + /// + [HttpPost] + [Log(Title = "质量BackEnd班组", BusinessType = BusinessType.INSERT)] + public IActionResult AddQcBackEndBaseGroup([FromBody] QcBackEndBaseGroupDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndBaseGroupService.AddQcBackEndBaseGroup(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量BackEnd班组 + /// + /// + [HttpPut] + [Log(Title = "质量BackEnd班组", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateQcBackEndBaseGroup([FromBody] QcBackEndBaseGroupDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackEndBaseGroupService.UpdateQcBackEndBaseGroup(modal); + + return ToResponse(response); + } + + /// + /// 删除质量BackEnd班组 + /// + /// + [HttpDelete("{ids}")] + [Log(Title = "质量BackEnd班组", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteQcBackEndBaseGroup(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _QcBackEndBaseGroupService.Delete(idsArr); + + return ToResponse(response); + } + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseLabelAnalysisController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseLabelAnalysisController.cs new file mode 100644 index 00000000..384683f1 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseLabelAnalysisController.cs @@ -0,0 +1,104 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-01-02 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量BackEnd基础标签解析 + /// + [Verify] + [Route("/mes/qc/BackEnd/QcBackEndBaseLabelAnalysis")] + public class QcBackEndBaseLabelAnalysisController : BaseController + { + /// + /// 质量BackEnd基础标签解析接口 + /// + private readonly IQcBackEndBaseLabelAnalysisService _QcBackEndBaseLabelAnalysisService; + + public QcBackEndBaseLabelAnalysisController(IQcBackEndBaseLabelAnalysisService QcBackEndBaseLabelAnalysisService) + { + _QcBackEndBaseLabelAnalysisService = QcBackEndBaseLabelAnalysisService; + } + + /// + /// 查询质量BackEnd基础标签解析列表 + /// + /// + /// + [HttpGet("list")] + public IActionResult QueryQcBackEndBaseLabelAnalysis([FromQuery] QcBackEndBaseLabelAnalysisQueryDto parm) + { + var response = _QcBackEndBaseLabelAnalysisService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询质量BackEnd基础标签解析详情 + /// + /// + /// + [HttpGet("{Id}")] + public IActionResult GetQcBackEndBaseLabelAnalysis(int Id) + { + var response = _QcBackEndBaseLabelAnalysisService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量BackEnd基础标签解析 + /// + /// + [HttpPost] + [Log(Title = "质量BackEnd基础标签解析", BusinessType = BusinessType.INSERT)] + public IActionResult AddQcBackEndBaseLabelAnalysis([FromBody] QcBackEndBaseLabelAnalysisDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndBaseLabelAnalysisService.AddQcBackEndBaseLabelAnalysis(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量BackEnd基础标签解析 + /// + /// + [HttpPut] + [Log(Title = "质量BackEnd基础标签解析", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateQcBackEndBaseLabelAnalysis([FromBody] QcBackEndBaseLabelAnalysisDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackEndBaseLabelAnalysisService.UpdateQcBackEndBaseLabelAnalysis(modal); + + return ToResponse(response); + } + + /// + /// 删除质量BackEnd基础标签解析 + /// + /// + [HttpDelete("{ids}")] + [Log(Title = "质量BackEnd基础标签解析", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteQcBackEndBaseLabelAnalysis(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _QcBackEndBaseLabelAnalysisService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseSiteController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseSiteController.cs new file mode 100644 index 00000000..ed6823d5 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndBaseSiteController.cs @@ -0,0 +1,104 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-01-02 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量BackEnd基础站点 + /// + [Verify] + [Route("/mes/qc/BackEnd/QcBackEndBaseSite")] + public class QcBackEndBaseSiteController : BaseController + { + /// + /// 质量BackEnd基础站点接口 + /// + private readonly IQcBackEndBaseSiteService _QcBackEndBaseSiteService; + + public QcBackEndBaseSiteController(IQcBackEndBaseSiteService QcBackEndBaseSiteService) + { + _QcBackEndBaseSiteService = QcBackEndBaseSiteService; + } + + /// + /// 查询质量BackEnd基础站点列表 + /// + /// + /// + [HttpGet("list")] + public IActionResult QueryQcBackEndBaseSite([FromQuery] QcBackEndBaseSiteQueryDto parm) + { + var response = _QcBackEndBaseSiteService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询质量BackEnd基础站点详情 + /// + /// + /// + [HttpGet("{Id}")] + public IActionResult GetQcBackEndBaseSite(int Id) + { + var response = _QcBackEndBaseSiteService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量BackEnd基础站点 + /// + /// + [HttpPost] + [Log(Title = "质量BackEnd基础站点", BusinessType = BusinessType.INSERT)] + public IActionResult AddQcBackEndBaseSite([FromBody] QcBackEndBaseSiteDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndBaseSiteService.AddQcBackEndBaseSite(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量BackEnd基础站点 + /// + /// + [HttpPut] + [Log(Title = "质量BackEnd基础站点", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateQcBackEndBaseSite([FromBody] QcBackEndBaseSiteDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackEndBaseSiteService.UpdateQcBackEndBaseSite(modal); + + return ToResponse(response); + } + + /// + /// 删除质量BackEnd基础站点 + /// + /// + [HttpDelete("{ids}")] + [Log(Title = "质量BackEnd基础站点", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteQcBackEndBaseSite(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _QcBackEndBaseSiteService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndController.cs new file mode 100644 index 00000000..077dbf93 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndController.cs @@ -0,0 +1,203 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Model.Business; +using ZR.Model.Dto; +using ZR.Service.Business.IBusinessService; + +//创建时间:2025-01-02 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量BackEnd业务模块 + /// + [Route("/mes/qc/BackEnd/QcBackEndController")] + public class QcBackEndController : BaseController + { + /// + /// 质量BackEnd业务模块接口 + /// + private readonly IQcBackEndService _QcBackEndService; + + public QcBackEndController(IQcBackEndService QcBackEndService) + { + _QcBackEndService = QcBackEndService; + } + + /// + /// 获取班组下拉 + /// + /// + [HttpGet("GetGroupOptions")] + [AllowAnonymous] + public IActionResult GetGroupOptions() + { + var response = _QcBackEndService.GetGroupOptions(); + return SUCCESS(response); + } + + /// + /// 获取站点下拉 + /// + /// + [HttpGet("GetStieOptions")] + [AllowAnonymous] + public IActionResult GetStieOptions() + { + var response = _QcBackEndService.GetStieOptions(); + return SUCCESS(response); + } + + /// + /// 获取缺陷项初始数据 + /// + /// + [HttpGet("GetDefectInitOptions")] + [AllowAnonymous] + public IActionResult GetDefectInitOptions() + { + var response = _QcBackEndService.GetDefectInitOptions(); + return SUCCESS(response); + } + + /// + /// 获取缺陷项列表初始数据 + /// + /// + [HttpGet("GetDefectTableOptions")] + [AllowAnonymous] + public IActionResult GetDefectTableOptions() + { + var response = _QcBackEndService.GetDefectTableOptions(); + return SUCCESS(response); + } + + /// + /// 解析标签 + /// + /// 标签内容 + /// 解析方式 + /// + [HttpGet("AnalyzeLabel")] + [AllowAnonymous] + public IActionResult AnalyzeLabel(string label, int type) + { + var response = _QcBackEndService.AnalyzeLabelToDto(label, type); + return SUCCESS(response); + } + + /// + /// 开始工单 + /// + /// + [HttpPost("StartBackEndWorkOrder")] + [AllowAnonymous] + public IActionResult StartBackEndWorkOrder([FromBody] QcBackEndWorkorderDetailDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndService.StartBackEndWorkOrder(modal); + + return SUCCESS(response); + } + + /// + /// 修改缺陷项 + /// + /// + [HttpPost("ChangeWorkOrderDefect")] + [AllowAnonymous] + public IActionResult StartBackEndWorkOrder([FromBody] QcBackEndWorkorderDefectDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndService.ChangeWorkOrderDefect(modal); + + return SUCCESS(response); + } + + /// + /// 获取工单缺陷项 + /// + /// + [HttpGet("GetWorkOrderDefectList")] + [AllowAnonymous] + public IActionResult GetWorkOrderDefectList(string workOrder) + { + var response = _QcBackEndService.GetWorkOrderDefectList(workOrder); + + return SUCCESS(response); + } + + /// + /// 扫描内标签,添加标签记录 + /// + /// + [HttpPost("ScanInnerLabel")] + [AllowAnonymous] + public IActionResult ScanInnerLabel([FromBody] QcBackEndLabelScanDto parm) + { + try + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndService.ScanInnerLabel(modal); + + return SUCCESS(response); + }catch(Exception ex) + { + return SUCCESS("请刷新页面,错误代码:" + ex.Message); + } + + } + + /// + /// 结束工单,并生成质量报表 + /// + /// + [HttpGet("EndBackEndWorkOrderAndCreateStatistics")] + [AllowAnonymous] + public IActionResult EndBackEndWorkOrderAndCreateStatistics(string workOrder) + { + var response = _QcBackEndService.EndBackEndWorkOrderAndCreateStatistics(workOrder); + + return SUCCESS(response); + } + + /// + /// 更新工单相关信息 + /// + /// + [HttpGet("UpdateWorkOrderDetail")] + [AllowAnonymous] + public IActionResult UpdateWorkOrderDetail(string workOrder) + { + var response = _QcBackEndService.UpdateWorkOrderDetail(workOrder); + + return SUCCESS(response); + } + + /// + /// 自动生成标签记录 + /// + /// + [HttpPost("GenerateVirtualLabel")] + [AllowAnonymous] + public IActionResult GenerateVirtualLabel([FromBody] QcBackEndWorkorderDetailDto parm) + { + try + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndService.GenerateVirtualLabel(modal); + + return SUCCESS(response); + } + catch (Exception ex) + { + return ToResponse(ApiResult.Error(ex.Message)); + } + + } + } +} diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndLogWorkorderController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndLogWorkorderController.cs new file mode 100644 index 00000000..2b3fb9af --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndLogWorkorderController.cs @@ -0,0 +1,100 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-01-02 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量BackEnd工单操作日志 + /// + [Verify] + [Route("/mes/qc/BackEnd/QcBackEndLogWorkorder")] + public class QcBackEndLogWorkorderController : BaseController + { + /// + /// 质量BackEnd工单操作日志接口 + /// + private readonly IQcBackEndLogWorkorderService _QcBackEndLogWorkorderService; + + public QcBackEndLogWorkorderController(IQcBackEndLogWorkorderService QcBackEndLogWorkorderService) + { + _QcBackEndLogWorkorderService = QcBackEndLogWorkorderService; + } + + /// + /// 查询质量BackEnd工单操作日志列表 + /// + /// + /// + [HttpGet("list")] + public IActionResult QueryQcBackEndLogWorkorder([FromQuery] QcBackEndLogWorkorderQueryDto parm) + { + var response = _QcBackEndLogWorkorderService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询质量BackEnd工单操作日志详情 + /// + /// + /// + [HttpGet("{Id}")] + public IActionResult GetQcBackEndLogWorkorder(string Id) + { + var response = _QcBackEndLogWorkorderService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量BackEnd工单操作日志 + /// + /// + [HttpPost] + [Log(Title = "质量BackEnd工单操作日志", BusinessType = BusinessType.INSERT)] + public IActionResult AddQcBackEndLogWorkorder([FromBody] QcBackEndLogWorkorderDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndLogWorkorderService.AddQcBackEndLogWorkorder(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量BackEnd工单操作日志 + /// + /// + [HttpPut] + [Log(Title = "质量BackEnd工单操作日志", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateQcBackEndLogWorkorder([FromBody] QcBackEndLogWorkorderDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackEndLogWorkorderService.UpdateQcBackEndLogWorkorder(modal); + + return ToResponse(response); + } + + /// + /// 删除质量BackEnd工单操作日志 + /// + /// + [HttpDelete("{ids}")] + [Log(Title = "质量BackEnd工单操作日志", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteQcBackEndLogWorkorder(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _QcBackEndLogWorkorderService.Delete(idsArr); + + return ToResponse(response); + } + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndRecordLabelScanController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndRecordLabelScanController.cs new file mode 100644 index 00000000..539e5371 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndRecordLabelScanController.cs @@ -0,0 +1,100 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-01-02 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量BackEnd扫码标签记录 + /// + [Verify] + [Route("/mes/qc/BackEnd/QcBackEndRecordLabelScan")] + public class QcBackEndRecordLabelScanController : BaseController + { + /// + /// 质量BackEnd扫码标签记录接口 + /// + private readonly IQcBackEndRecordLabelScanService _QcBackEndRecordLabelScanService; + + public QcBackEndRecordLabelScanController(IQcBackEndRecordLabelScanService QcBackEndRecordLabelScanService) + { + _QcBackEndRecordLabelScanService = QcBackEndRecordLabelScanService; + } + + /// + /// 查询质量BackEnd扫码标签记录列表 + /// + /// + /// + [HttpGet("list")] + public IActionResult QueryQcBackEndRecordLabelScan([FromQuery] QcBackEndRecordLabelScanQueryDto parm) + { + var response = _QcBackEndRecordLabelScanService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询质量BackEnd扫码标签记录详情 + /// + /// + /// + [HttpGet("{Id}")] + public IActionResult GetQcBackEndRecordLabelScan(string Id) + { + var response = _QcBackEndRecordLabelScanService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量BackEnd扫码标签记录 + /// + /// + [HttpPost] + [Log(Title = "质量BackEnd扫码标签记录", BusinessType = BusinessType.INSERT)] + public IActionResult AddQcBackEndRecordLabelScan([FromBody] QcBackEndRecordLabelScanDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndRecordLabelScanService.AddQcBackEndRecordLabelScan(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量BackEnd扫码标签记录 + /// + /// + [HttpPut] + [Log(Title = "质量BackEnd扫码标签记录", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateQcBackEndRecordLabelScan([FromBody] QcBackEndRecordLabelScanDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackEndRecordLabelScanService.UpdateQcBackEndRecordLabelScan(modal); + + return ToResponse(response); + } + + /// + /// 删除质量BackEnd扫码标签记录 + /// + /// + [HttpDelete("{ids}")] + [Log(Title = "质量BackEnd扫码标签记录", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteQcBackEndRecordLabelScan(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _QcBackEndRecordLabelScanService.Delete(idsArr); + + return ToResponse(response); + } + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndRecordWorkorderDefectController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndRecordWorkorderDefectController.cs new file mode 100644 index 00000000..8a45e033 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndRecordWorkorderDefectController.cs @@ -0,0 +1,100 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-01-02 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量BackEnd工单缺陷项记录 + /// + [Verify] + [Route("/mes/qc/BackEnd/QcBackEndRecordWorkorderDefect")] + public class QcBackEndRecordWorkorderDefectController : BaseController + { + /// + /// 质量BackEnd工单缺陷项记录接口 + /// + private readonly IQcBackEndRecordWorkorderDefectService _QcBackEndRecordWorkorderDefectService; + + public QcBackEndRecordWorkorderDefectController(IQcBackEndRecordWorkorderDefectService QcBackEndRecordWorkorderDefectService) + { + _QcBackEndRecordWorkorderDefectService = QcBackEndRecordWorkorderDefectService; + } + + /// + /// 查询质量BackEnd工单缺陷项记录列表 + /// + /// + /// + [HttpGet("list")] + public IActionResult QueryQcBackEndRecordWorkorderDefect([FromQuery] QcBackEndRecordWorkorderDefectQueryDto parm) + { + var response = _QcBackEndRecordWorkorderDefectService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询质量BackEnd工单缺陷项记录详情 + /// + /// + /// + [HttpGet("{Id}")] + public IActionResult GetQcBackEndRecordWorkorderDefect(string Id) + { + var response = _QcBackEndRecordWorkorderDefectService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量BackEnd工单缺陷项记录 + /// + /// + [HttpPost] + [Log(Title = "质量BackEnd工单缺陷项记录", BusinessType = BusinessType.INSERT)] + public IActionResult AddQcBackEndRecordWorkorderDefect([FromBody] QcBackEndRecordWorkorderDefectDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndRecordWorkorderDefectService.AddQcBackEndRecordWorkorderDefect(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量BackEnd工单缺陷项记录 + /// + /// + [HttpPut] + [Log(Title = "质量BackEnd工单缺陷项记录", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateQcBackEndRecordWorkorderDefect([FromBody] QcBackEndRecordWorkorderDefectDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackEndRecordWorkorderDefectService.UpdateQcBackEndRecordWorkorderDefect(modal); + + return ToResponse(response); + } + + /// + /// 删除质量BackEnd工单缺陷项记录 + /// + /// + [HttpDelete("{ids}")] + [Log(Title = "质量BackEnd工单缺陷项记录", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteQcBackEndRecordWorkorderDefect(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _QcBackEndRecordWorkorderDefectService.Delete(idsArr); + + return ToResponse(response); + } + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndServiceStatisticsController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndServiceStatisticsController.cs new file mode 100644 index 00000000..7620a12a --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndServiceStatisticsController.cs @@ -0,0 +1,194 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Model.Business; +using ZR.Model.Dto; +using ZR.Service.Business.IBusinessService; + +//创建时间:2025-01-02 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量BackEnd统计报表业务模块 + /// + [Verify] + [Route("/mes/qc/BackEnd/QcBackEndServiceStatistics")] + public class QcBackEndServiceStatisticsController : BaseController + { + /// + /// 质量BackEnd统计报表业务模块接口 + /// + private readonly IQcBackEndServiceStatisticsService _QcBackEndServiceStatisticsService; + + public QcBackEndServiceStatisticsController( + IQcBackEndServiceStatisticsService QcBackEndServiceStatisticsService + ) + { + _QcBackEndServiceStatisticsService = QcBackEndServiceStatisticsService; + } + + /// + /// 查询质量BackEnd统计报表业务模块列表 + /// + /// + /// + [HttpGet("list")] + public IActionResult QueryQcBackEndServiceStatistics( + [FromQuery] QcBackEndServiceStatisticsQueryDto parm + ) + { + var response = _QcBackEndServiceStatisticsService.GetList(parm); + return SUCCESS(response); + } + + /// + /// 查询质量BackEnd统计报表业务模块列表 + /// + /// + /// + [HttpPost("GetReviseList")] + [AllowAnonymous] + public IActionResult GetReviseList([FromBody] QcBackEndServiceStatisticsQueryDto parm) + { + var response = _QcBackEndServiceStatisticsService.GetReviseList(parm); + + // 初始化统计数据 + int totalRequireNumber = 0; + int totalQualifiedNumber = 0; + int totalPolishNumber = 0; + int totalDamoNumber = 0; + int totalBaofeiNumber = 0; + int totalListCount = 0; + + // 将动态属性转换为字典并合并到主对象中,并计算统计数据 + var resultWithDefects = response + .Select(item => + { + var itemDict = new Dictionary(); + foreach (var prop in typeof(QcBackEndServiceStatisticsDto).GetProperties()) + { + itemDict[prop.Name] = prop.GetValue(item); + } + + // 添加动态属性 + foreach (var dynamicProp in item.DynamicProperties) + { + itemDict[dynamicProp.Key] = dynamicProp.Value; + } + + // 累加统计数据 + totalRequireNumber += Convert.ToInt32(item.RequireNumber); + totalQualifiedNumber += Convert.ToInt32(item.QualifiedNumber); + totalPolishNumber += Convert.ToInt32(item.PolishNumber); + totalDamoNumber += Convert.ToInt32(item.DamoNumber); + totalBaofeiNumber += Convert.ToInt32(item.BaofeiNumber); + totalListCount += 1; + + // 移除不要的属性 + itemDict["DynamicProperties"] = null; + itemDict["GroupDefectJson"] = ""; + return itemDict; + }) + .ToList(); + // 数据除三 + totalRequireNumber = totalRequireNumber / 3; + totalQualifiedNumber = totalQualifiedNumber / 3; + totalPolishNumber = totalPolishNumber / 3; + totalDamoNumber = totalDamoNumber / 3; + totalBaofeiNumber = totalBaofeiNumber / 3; + totalListCount = totalListCount / 3; + // 计算合格率 + double qualifiedRate = 0.0; + if (totalRequireNumber > 0) + { + qualifiedRate = (double)totalQualifiedNumber / totalRequireNumber * 100; + } + else + { + qualifiedRate = 0.0; + } + // 创建统计数据字典 + var statistics = new Dictionary + { + { "TotalRequireNumber", totalRequireNumber }, + { "TotalQualifiedNumber", totalQualifiedNumber }, + { "QualifiedRate", $"{qualifiedRate:F1}%" }, + { "TotalPolishNumber", totalPolishNumber }, + { "TotalDamoNumber", totalDamoNumber }, + { "TotalBaofeiNumber", totalBaofeiNumber }, + { "TotalListCount", totalListCount } + }; + // 创建分页结果 + var pageList = resultWithDefects.Skip((parm.PageNum - 1) * parm.PageSize).Take(parm.PageSize).ToList(); + + // 返回包含数据和统计数据的对象 + var result = new { statistics = statistics, pageList ,total = resultWithDefects.Count }; + + return SUCCESS(result); + } + + /// + /// 查询质量BackEnd统计报表业务模块详情 + /// + /// + /// + [HttpGet("{Id}")] + public IActionResult GetQcBackEndServiceStatistics(string Id) + { + var response = _QcBackEndServiceStatisticsService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量BackEnd统计报表业务模块 + /// + /// + [HttpPost] + [Log(Title = "质量BackEnd统计报表业务模块", BusinessType = BusinessType.INSERT)] + public IActionResult AddQcBackEndServiceStatistics([FromBody] QcBackEndServiceStatisticsDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndServiceStatisticsService.AddQcBackEndServiceStatistics(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量BackEnd统计报表业务模块 + /// + /// + [HttpPut] + [Log(Title = "质量BackEnd统计报表业务模块", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateQcBackEndServiceStatistics( + [FromBody] QcBackEndServiceStatisticsDto parm + ) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackEndServiceStatisticsService.UpdateQcBackEndServiceStatistics(modal); + + return ToResponse(response); + } + + /// + /// 删除质量BackEnd统计报表业务模块 + /// + /// + [HttpDelete("{ids}")] + [Log(Title = "质量BackEnd统计报表业务模块", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteQcBackEndServiceStatistics(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) + { + return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); + } + + var response = _QcBackEndServiceStatisticsService.Delete(idsArr); + + return ToResponse(response); + } + } +} diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndServiceWorkorderController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndServiceWorkorderController.cs new file mode 100644 index 00000000..3b7dd471 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackEndServiceWorkorderController.cs @@ -0,0 +1,104 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-01-02 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量BackEnd工单业务模块 + /// + [Verify] + [Route("/mes/qc/BackEnd/QcBackEndServiceWorkorder")] + public class QcBackEndServiceWorkorderController : BaseController + { + /// + /// 质量BackEnd工单业务模块接口 + /// + private readonly IQcBackEndServiceWorkorderService _QcBackEndServiceWorkorderService; + + public QcBackEndServiceWorkorderController(IQcBackEndServiceWorkorderService QcBackEndServiceWorkorderService) + { + _QcBackEndServiceWorkorderService = QcBackEndServiceWorkorderService; + } + + /// + /// 查询质量BackEnd工单业务模块列表 + /// + /// + /// + [HttpGet("list")] + public IActionResult QueryQcBackEndServiceWorkorder([FromQuery] QcBackEndServiceWorkorderQueryDto parm) + { + var response = _QcBackEndServiceWorkorderService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询质量BackEnd工单业务模块详情 + /// + /// + /// + [HttpGet("{Id}")] + public IActionResult GetQcBackEndServiceWorkorder(string Id) + { + var response = _QcBackEndServiceWorkorderService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量BackEnd工单业务模块 + /// + /// + [HttpPost] + [Log(Title = "质量BackEnd工单业务模块", BusinessType = BusinessType.INSERT)] + public IActionResult AddQcBackEndServiceWorkorder([FromBody] QcBackEndServiceWorkorderDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackEndServiceWorkorderService.AddQcBackEndServiceWorkorder(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量BackEnd工单业务模块 + /// + /// + [HttpPut] + [Log(Title = "质量BackEnd工单业务模块", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateQcBackEndServiceWorkorder([FromBody] QcBackEndServiceWorkorderDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackEndServiceWorkorderService.UpdateQcBackEndServiceWorkorder(modal); + + return ToResponse(response); + } + + /// + /// 删除质量BackEnd工单业务模块 + /// + /// + [HttpDelete("{ids}")] + [Log(Title = "质量BackEnd工单业务模块", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteQcBackEndServiceWorkorder(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _QcBackEndServiceWorkorderService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackendBaseOutpackageController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackendBaseOutpackageController.cs new file mode 100644 index 00000000..35627f49 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/qc/backend/QcBackendBaseOutpackageController.cs @@ -0,0 +1,111 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Model.Business; +using ZR.Model.Dto; +using ZR.Service.Business.IBusinessService; + +//创建时间:2025-05-06 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量后道外箱标签打印配置 + + /// + [Verify] + [Route("/mes/qc/BackEnd/QcBackendBaseOutpackage")] + public class QcBackendBaseOutpackageController : BaseController + { + /// + /// 质量后道外箱标签打印配置 + /// + private readonly IQcBackendBaseOutpackageService _QcBackendBaseOutpackageService; + + public QcBackendBaseOutpackageController( + IQcBackendBaseOutpackageService QcBackendBaseOutpackageService + ) + { + _QcBackendBaseOutpackageService = QcBackendBaseOutpackageService; + } + + /// + /// 查询质量后道外箱标签打印配置 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "business:qcbackendbaseoutpackage:list")] + public IActionResult QueryQcBackendBaseOutpackage( + [FromQuery] QcBackendBaseOutpackageQueryDto parm + ) + { + var response = _QcBackendBaseOutpackageService.GetList(parm); + return SUCCESS(response); + } + + /// + /// 查询质量后道外箱标签打印配置 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "business:qcbackendbaseoutpackage:query")] + public IActionResult GetQcBackendBaseOutpackage(int Id) + { + var response = _QcBackendBaseOutpackageService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量后道外箱标签打印配置 + + /// + /// + [HttpPost] + public IActionResult AddQcBackendBaseOutpackage([FromBody] QcBackendBaseOutpackageDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackendBaseOutpackageService.AddQcBackendBaseOutpackage(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量后道外箱标签打印配置 + + /// + /// + [HttpPut] + public IActionResult UpdateQcBackendBaseOutpackage( + [FromBody] QcBackendBaseOutpackageDto parm + ) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackendBaseOutpackageService.UpdateQcBackendBaseOutpackage(modal); + + return ToResponse(response); + } + + /// + /// 删除质量后道外箱标签打印配置 + + /// + /// + [HttpDelete("{ids}")] + public IActionResult DeleteQcBackendBaseOutpackage(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) + { + return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); + } + + var response = _QcBackendBaseOutpackageService.Delete(idsArr); + + return ToResponse(response); + } + } +} diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Admin.WebApi/Controllers/Business/QcBackendBaseOutpackageController.cs b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Admin.WebApi/Controllers/Business/QcBackendBaseOutpackageController.cs new file mode 100644 index 00000000..1c388203 --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Admin.WebApi/Controllers/Business/QcBackendBaseOutpackageController.cs @@ -0,0 +1,119 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Service.Business.IBusinessService; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; + +//创建时间:2025-05-06 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 质量后道外箱标签打印配置 + + /// + [Verify] + [Route("business/QcBackendBaseOutpackage")] + public class QcBackendBaseOutpackageController : BaseController + { + /// + /// 质量后道外箱标签打印配置 +接口 + /// + private readonly IQcBackendBaseOutpackageService _QcBackendBaseOutpackageService; + + public QcBackendBaseOutpackageController(IQcBackendBaseOutpackageService QcBackendBaseOutpackageService) + { + _QcBackendBaseOutpackageService = QcBackendBaseOutpackageService; + } + + /// + /// 查询质量后道外箱标签打印配置 +列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "business:qcbackendbaseoutpackage:list")] + public IActionResult QueryQcBackendBaseOutpackage([FromQuery] QcBackendBaseOutpackageQueryDto parm) + { + var response = _QcBackendBaseOutpackageService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询质量后道外箱标签打印配置 +详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "business:qcbackendbaseoutpackage:query")] + public IActionResult GetQcBackendBaseOutpackage(int Id) + { + var response = _QcBackendBaseOutpackageService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加质量后道外箱标签打印配置 + + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "business:qcbackendbaseoutpackage:add")] + [Log(Title = "质量后道外箱标签打印配置 +", BusinessType = BusinessType.INSERT)] + public IActionResult AddQcBackendBaseOutpackage([FromBody] QcBackendBaseOutpackageDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _QcBackendBaseOutpackageService.AddQcBackendBaseOutpackage(modal); + + return SUCCESS(response); + } + + /// + /// 更新质量后道外箱标签打印配置 + + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "business:qcbackendbaseoutpackage:edit")] + [Log(Title = "质量后道外箱标签打印配置 +", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateQcBackendBaseOutpackage([FromBody] QcBackendBaseOutpackageDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _QcBackendBaseOutpackageService.UpdateQcBackendBaseOutpackage(modal); + + return ToResponse(response); + } + + /// + /// 删除质量后道外箱标签打印配置 + + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:qcbackendbaseoutpackage:delete")] + [Log(Title = "质量后道外箱标签打印配置 +", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteQcBackendBaseOutpackage(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _QcBackendBaseOutpackageService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Model/Dto/Business/QcBackendBaseOutpackageDto.cs b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Model/Dto/Business/QcBackendBaseOutpackageDto.cs new file mode 100644 index 00000000..e971e479 --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Model/Dto/Business/QcBackendBaseOutpackageDto.cs @@ -0,0 +1,33 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.Dto +{ + /// + /// 质量后道外箱标签打印配置 +查询对象 + /// + public class QcBackendBaseOutpackageQueryDto : PagerInfo + { + } + + /// + /// 质量后道外箱标签打印配置 +输入输出对象 + /// + public class QcBackendBaseOutpackageDto + { + [Required(ErrorMessage = "主键不能为空")] + public int Id { get; set; } + + public string Name { get; set; } + + public string FileUrl { get; set; } + + public int? PackageNum { get; set; } + + public string CheckStr { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Model/Models/Business/QcBackendBaseOutpackage.cs b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Model/Models/Business/QcBackendBaseOutpackage.cs new file mode 100644 index 00000000..adc9cc3f --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Model/Models/Business/QcBackendBaseOutpackage.cs @@ -0,0 +1,41 @@ + +namespace ZR.Model.Business +{ + /// + /// 质量后道外箱标签打印配置 + + /// + [SugarTable("qc_backend_base_outpackage")] + public class QcBackendBaseOutpackage + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + /// + /// 对应箱标签名称 + /// + public string Name { get; set; } + + /// + /// Bartender打印文件对应地址 + /// + [SugarColumn(ColumnName = "file_url")] + public string FileUrl { get; set; } + + /// + /// 满箱容量 + /// + [SugarColumn(ColumnName = "package_num")] + public int? PackageNum { get; set; } + + /// + /// 对应匹配零件描述的校验字段 + /// + [SugarColumn(ColumnName = "check_str")] + public string CheckStr { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Service/Business/IBusinessService/IQcBackendBaseOutpackageService.cs b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Service/Business/IBusinessService/IQcBackendBaseOutpackageService.cs new file mode 100644 index 00000000..dfabe46f --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Service/Business/IBusinessService/IQcBackendBaseOutpackageService.cs @@ -0,0 +1,24 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量后道外箱标签打印配置 +service接口 + /// + public interface IQcBackendBaseOutpackageService : IBaseService + { + PagedInfo GetList(QcBackendBaseOutpackageQueryDto parm); + + QcBackendBaseOutpackage GetInfo(int Id); + + QcBackendBaseOutpackage AddQcBackendBaseOutpackage(QcBackendBaseOutpackage parm); + + int UpdateQcBackendBaseOutpackage(QcBackendBaseOutpackage parm); + + } +} diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Service/Business/QcBackendBaseOutpackageService.cs b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Service/Business/QcBackendBaseOutpackageService.cs new file mode 100644 index 00000000..88f8e8f1 --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Service/Business/QcBackendBaseOutpackageService.cs @@ -0,0 +1,84 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; + +namespace ZR.Service.Business +{ + /// + /// 质量后道外箱标签打印配置 +Service业务层处理 + /// + [AppService(ServiceType = typeof(IQcBackendBaseOutpackageService), ServiceLifetime = LifeTime.Transient)] + public class QcBackendBaseOutpackageService : BaseService, IQcBackendBaseOutpackageService + { + /// + /// 查询质量后道外箱标签打印配置 +列表 + /// + /// + /// + public PagedInfo GetList(QcBackendBaseOutpackageQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public QcBackendBaseOutpackage GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加质量后道外箱标签打印配置 + + /// + /// + /// + public QcBackendBaseOutpackage AddQcBackendBaseOutpackage(QcBackendBaseOutpackage model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量后道外箱标签打印配置 + + /// + /// + /// + public int UpdateQcBackendBaseOutpackage(QcBackendBaseOutpackage model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackendBaseOutpackage() + //{ + // Name = model.Name, + // FileUrl = model.FileUrl, + // PackageNum = model.PackageNum, + // CheckStr = model.CheckStr, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Vue/src/api/business/qcBackendBaseOutpackage.js b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Vue/src/api/business/qcBackendBaseOutpackage.js new file mode 100644 index 00000000..81ad6e8b --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Vue/src/api/business/qcBackendBaseOutpackage.js @@ -0,0 +1,62 @@ +import request from '@/utils/request' + +/** +* 质量后道外箱标签打印配置 +分页查询 +* @param {查询条件} data +*/ +export function listQcBackendBaseOutpackage(query) { + return request({ + url: 'business/QcBackendBaseOutpackage/list', + method: 'get', + params: query, + }) +} + +/** +* 新增质量后道外箱标签打印配置 + +* @param data +*/ +export function addQcBackendBaseOutpackage(data) { + return request({ + url: 'business/QcBackendBaseOutpackage', + method: 'post', + data: data, + }) +} +/** +* 修改质量后道外箱标签打印配置 + +* @param data +*/ +export function updateQcBackendBaseOutpackage(data) { + return request({ + url: 'business/QcBackendBaseOutpackage', + method: 'PUT', + data: data, + }) +} +/** +* 获取质量后道外箱标签打印配置 +详情 +* @param {Id} +*/ +export function getQcBackendBaseOutpackage(id) { + return request({ + url: 'business/QcBackendBaseOutpackage/' + id, + method: 'get' + }) +} + +/** +* 删除质量后道外箱标签打印配置 + +* @param {主键} pid +*/ +export function delQcBackendBaseOutpackage(pid) { + return request({ + url: 'business/QcBackendBaseOutpackage/' + pid, + method: 'delete' + }) +} diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Vue/src/views/business/QcBackendBaseOutpackage.vue b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Vue/src/views/business/QcBackendBaseOutpackage.vue new file mode 100644 index 00000000..6da6db67 --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/ZR.Vue/src/views/business/QcBackendBaseOutpackage.vue @@ -0,0 +1,301 @@ + + + \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/sql/QcBackendBaseOutpackage.sql b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/sql/QcBackendBaseOutpackage.sql new file mode 100644 index 00000000..93838c2d --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/Generatecode/20250506/sql/QcBackendBaseOutpackage.sql @@ -0,0 +1,26 @@ +use ZrAdmin; + +-- 菜单 +INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time) +VALUES ('质量后道外箱标签打印配置 +', 0, 999, 'QcBackendBaseOutpackage', 'business/QcBackendBaseOutpackage', 0, 0, 'C', '0', '0', 'business:qcbackendbaseoutpackage:list', 'icon1', 'system', sysdate()); + +-- 按钮父菜单id +SELECT @menuId := LAST_INSERT_ID(); + + +INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time) +VALUES ('查询', @menuId, 1, '#', NULL, 0, 0, 'F', '0', '0', 'business:qcbackendbaseoutpackage:query', '', 'system', sysdate()); + +INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time) +VALUES ('新增', @menuId, 2, '#', NULL, 0, 0, 'F', '0', '0', 'business:qcbackendbaseoutpackage:add', '', 'system', sysdate()); + +INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time) +VALUES ('删除', @menuId, 3, '#', NULL, 0, 0, 'F', '0', '0', 'business:qcbackendbaseoutpackage:delete', '', 'system', sysdate()); + +INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time) +VALUES ('修改', @menuId, 4, '#', NULL, 0, 0, 'F', '0', '0', 'business:qcbackendbaseoutpackage:edit', '', 'system', sysdate()); + + +SELECT * FROM sys_menu WHERE parentId = @menuId; +SELECT * FROM sys_menu WHERE menuId = @menuId; \ No newline at end of file diff --git a/ZR.Model/MES/qc/DTO/QcBackEndBaseDefectDto.cs b/ZR.Model/MES/qc/DTO/backend/QcBackEndBaseDefectDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcBackEndBaseDefectDto.cs rename to ZR.Model/MES/qc/DTO/backend/QcBackEndBaseDefectDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcBackEndBaseGroupDto.cs b/ZR.Model/MES/qc/DTO/backend/QcBackEndBaseGroupDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcBackEndBaseGroupDto.cs rename to ZR.Model/MES/qc/DTO/backend/QcBackEndBaseGroupDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcBackEndBaseLabelAnalysisDto.cs b/ZR.Model/MES/qc/DTO/backend/QcBackEndBaseLabelAnalysisDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcBackEndBaseLabelAnalysisDto.cs rename to ZR.Model/MES/qc/DTO/backend/QcBackEndBaseLabelAnalysisDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcBackEndBaseSiteDto.cs b/ZR.Model/MES/qc/DTO/backend/QcBackEndBaseSiteDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcBackEndBaseSiteDto.cs rename to ZR.Model/MES/qc/DTO/backend/QcBackEndBaseSiteDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcBackEndLogWorkorderDto.cs b/ZR.Model/MES/qc/DTO/backend/QcBackEndLogWorkorderDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcBackEndLogWorkorderDto.cs rename to ZR.Model/MES/qc/DTO/backend/QcBackEndLogWorkorderDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcBackEndRecordLabelScanDto.cs b/ZR.Model/MES/qc/DTO/backend/QcBackEndRecordLabelScanDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcBackEndRecordLabelScanDto.cs rename to ZR.Model/MES/qc/DTO/backend/QcBackEndRecordLabelScanDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcBackEndRecordWorkorderDefectDto.cs b/ZR.Model/MES/qc/DTO/backend/QcBackEndRecordWorkorderDefectDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcBackEndRecordWorkorderDefectDto.cs rename to ZR.Model/MES/qc/DTO/backend/QcBackEndRecordWorkorderDefectDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcBackEndServiceStatisticsDto.cs b/ZR.Model/MES/qc/DTO/backend/QcBackEndServiceStatisticsDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcBackEndServiceStatisticsDto.cs rename to ZR.Model/MES/qc/DTO/backend/QcBackEndServiceStatisticsDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcBackEndServiceWorkorderDto.cs b/ZR.Model/MES/qc/DTO/backend/QcBackEndServiceWorkorderDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcBackEndServiceWorkorderDto.cs rename to ZR.Model/MES/qc/DTO/backend/QcBackEndServiceWorkorderDto.cs diff --git a/ZR.Model/MES/qc/DTO/backend/QcBackendBaseOutpackageDto.cs b/ZR.Model/MES/qc/DTO/backend/QcBackendBaseOutpackageDto.cs new file mode 100644 index 00000000..af31c688 --- /dev/null +++ b/ZR.Model/MES/qc/DTO/backend/QcBackendBaseOutpackageDto.cs @@ -0,0 +1,31 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.Dto +{ + /// + /// 质量后道外箱标签打印配置 + /// + public class QcBackendBaseOutpackageQueryDto : PagerInfo + { + } + + /// + /// 质量后道外箱标签打印配置 + /// + public class QcBackendBaseOutpackageDto + { + [Required(ErrorMessage = "主键不能为空")] + public int Id { get; set; } + + public string Name { get; set; } + + public string FileUrl { get; set; } + + public int? PackageNum { get; set; } + + public string CheckStr { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/qc/DTO/QcGp12BaseDefectDto.cs b/ZR.Model/MES/qc/DTO/gp12/QcGp12BaseDefectDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcGp12BaseDefectDto.cs rename to ZR.Model/MES/qc/DTO/gp12/QcGp12BaseDefectDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcGp12BaseGroupDto.cs b/ZR.Model/MES/qc/DTO/gp12/QcGp12BaseGroupDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcGp12BaseGroupDto.cs rename to ZR.Model/MES/qc/DTO/gp12/QcGp12BaseGroupDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcGp12BaseLabelAnalysisDto.cs b/ZR.Model/MES/qc/DTO/gp12/QcGp12BaseLabelAnalysisDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcGp12BaseLabelAnalysisDto.cs rename to ZR.Model/MES/qc/DTO/gp12/QcGp12BaseLabelAnalysisDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcGp12BaseSiteDto.cs b/ZR.Model/MES/qc/DTO/gp12/QcGp12BaseSiteDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcGp12BaseSiteDto.cs rename to ZR.Model/MES/qc/DTO/gp12/QcGp12BaseSiteDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcGp12LogWorkorderDto.cs b/ZR.Model/MES/qc/DTO/gp12/QcGp12LogWorkorderDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcGp12LogWorkorderDto.cs rename to ZR.Model/MES/qc/DTO/gp12/QcGp12LogWorkorderDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcGp12RecordLabelScanDto.cs b/ZR.Model/MES/qc/DTO/gp12/QcGp12RecordLabelScanDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcGp12RecordLabelScanDto.cs rename to ZR.Model/MES/qc/DTO/gp12/QcGp12RecordLabelScanDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcGp12RecordWorkorderDefectDto.cs b/ZR.Model/MES/qc/DTO/gp12/QcGp12RecordWorkorderDefectDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcGp12RecordWorkorderDefectDto.cs rename to ZR.Model/MES/qc/DTO/gp12/QcGp12RecordWorkorderDefectDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcGp12ServiceStatisticsDto.cs b/ZR.Model/MES/qc/DTO/gp12/QcGp12ServiceStatisticsDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcGp12ServiceStatisticsDto.cs rename to ZR.Model/MES/qc/DTO/gp12/QcGp12ServiceStatisticsDto.cs diff --git a/ZR.Model/MES/qc/DTO/QcGp12ServiceWorkorderDto.cs b/ZR.Model/MES/qc/DTO/gp12/QcGp12ServiceWorkorderDto.cs similarity index 100% rename from ZR.Model/MES/qc/DTO/QcGp12ServiceWorkorderDto.cs rename to ZR.Model/MES/qc/DTO/gp12/QcGp12ServiceWorkorderDto.cs diff --git a/ZR.Model/MES/qc/QcBackEndBaseDefect.cs b/ZR.Model/MES/qc/backend/QcBackEndBaseDefect.cs similarity index 100% rename from ZR.Model/MES/qc/QcBackEndBaseDefect.cs rename to ZR.Model/MES/qc/backend/QcBackEndBaseDefect.cs diff --git a/ZR.Model/MES/qc/QcBackEndBaseGroup.cs b/ZR.Model/MES/qc/backend/QcBackEndBaseGroup.cs similarity index 100% rename from ZR.Model/MES/qc/QcBackEndBaseGroup.cs rename to ZR.Model/MES/qc/backend/QcBackEndBaseGroup.cs diff --git a/ZR.Model/MES/qc/QcBackEndBaseLabelAnalysis.cs b/ZR.Model/MES/qc/backend/QcBackEndBaseLabelAnalysis.cs similarity index 100% rename from ZR.Model/MES/qc/QcBackEndBaseLabelAnalysis.cs rename to ZR.Model/MES/qc/backend/QcBackEndBaseLabelAnalysis.cs diff --git a/ZR.Model/MES/qc/QcBackEndBaseSite.cs b/ZR.Model/MES/qc/backend/QcBackEndBaseSite.cs similarity index 100% rename from ZR.Model/MES/qc/QcBackEndBaseSite.cs rename to ZR.Model/MES/qc/backend/QcBackEndBaseSite.cs diff --git a/ZR.Model/MES/qc/QcBackEndLogWorkorder.cs b/ZR.Model/MES/qc/backend/QcBackEndLogWorkorder.cs similarity index 100% rename from ZR.Model/MES/qc/QcBackEndLogWorkorder.cs rename to ZR.Model/MES/qc/backend/QcBackEndLogWorkorder.cs diff --git a/ZR.Model/MES/qc/QcBackEndRecordLabelScan.cs b/ZR.Model/MES/qc/backend/QcBackEndRecordLabelScan.cs similarity index 100% rename from ZR.Model/MES/qc/QcBackEndRecordLabelScan.cs rename to ZR.Model/MES/qc/backend/QcBackEndRecordLabelScan.cs diff --git a/ZR.Model/MES/qc/QcBackEndRecordWorkorderDefect.cs b/ZR.Model/MES/qc/backend/QcBackEndRecordWorkorderDefect.cs similarity index 100% rename from ZR.Model/MES/qc/QcBackEndRecordWorkorderDefect.cs rename to ZR.Model/MES/qc/backend/QcBackEndRecordWorkorderDefect.cs diff --git a/ZR.Model/MES/qc/QcBackEndServiceStatistics.cs b/ZR.Model/MES/qc/backend/QcBackEndServiceStatistics.cs similarity index 100% rename from ZR.Model/MES/qc/QcBackEndServiceStatistics.cs rename to ZR.Model/MES/qc/backend/QcBackEndServiceStatistics.cs diff --git a/ZR.Model/MES/qc/QcBackEndServiceWorkorder.cs b/ZR.Model/MES/qc/backend/QcBackEndServiceWorkorder.cs similarity index 100% rename from ZR.Model/MES/qc/QcBackEndServiceWorkorder.cs rename to ZR.Model/MES/qc/backend/QcBackEndServiceWorkorder.cs diff --git a/ZR.Model/MES/qc/backend/QcBackendBaseOutpackage.cs b/ZR.Model/MES/qc/backend/QcBackendBaseOutpackage.cs new file mode 100644 index 00000000..adc9cc3f --- /dev/null +++ b/ZR.Model/MES/qc/backend/QcBackendBaseOutpackage.cs @@ -0,0 +1,41 @@ + +namespace ZR.Model.Business +{ + /// + /// 质量后道外箱标签打印配置 + + /// + [SugarTable("qc_backend_base_outpackage")] + public class QcBackendBaseOutpackage + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + /// + /// 对应箱标签名称 + /// + public string Name { get; set; } + + /// + /// Bartender打印文件对应地址 + /// + [SugarColumn(ColumnName = "file_url")] + public string FileUrl { get; set; } + + /// + /// 满箱容量 + /// + [SugarColumn(ColumnName = "package_num")] + public int? PackageNum { get; set; } + + /// + /// 对应匹配零件描述的校验字段 + /// + [SugarColumn(ColumnName = "check_str")] + public string CheckStr { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/qc/QcGp12BaseDefect.cs b/ZR.Model/MES/qc/gp12/QcGp12BaseDefect.cs similarity index 100% rename from ZR.Model/MES/qc/QcGp12BaseDefect.cs rename to ZR.Model/MES/qc/gp12/QcGp12BaseDefect.cs diff --git a/ZR.Model/MES/qc/QcGp12BaseGroup.cs b/ZR.Model/MES/qc/gp12/QcGp12BaseGroup.cs similarity index 100% rename from ZR.Model/MES/qc/QcGp12BaseGroup.cs rename to ZR.Model/MES/qc/gp12/QcGp12BaseGroup.cs diff --git a/ZR.Model/MES/qc/QcGp12BaseLabelAnalysis.cs b/ZR.Model/MES/qc/gp12/QcGp12BaseLabelAnalysis.cs similarity index 100% rename from ZR.Model/MES/qc/QcGp12BaseLabelAnalysis.cs rename to ZR.Model/MES/qc/gp12/QcGp12BaseLabelAnalysis.cs diff --git a/ZR.Model/MES/qc/QcGp12BaseSite.cs b/ZR.Model/MES/qc/gp12/QcGp12BaseSite.cs similarity index 100% rename from ZR.Model/MES/qc/QcGp12BaseSite.cs rename to ZR.Model/MES/qc/gp12/QcGp12BaseSite.cs diff --git a/ZR.Model/MES/qc/QcGp12LogWorkorder.cs b/ZR.Model/MES/qc/gp12/QcGp12LogWorkorder.cs similarity index 100% rename from ZR.Model/MES/qc/QcGp12LogWorkorder.cs rename to ZR.Model/MES/qc/gp12/QcGp12LogWorkorder.cs diff --git a/ZR.Model/MES/qc/QcGp12RecordLabelScan.cs b/ZR.Model/MES/qc/gp12/QcGp12RecordLabelScan.cs similarity index 100% rename from ZR.Model/MES/qc/QcGp12RecordLabelScan.cs rename to ZR.Model/MES/qc/gp12/QcGp12RecordLabelScan.cs diff --git a/ZR.Model/MES/qc/QcGp12RecordWorkorderDefect.cs b/ZR.Model/MES/qc/gp12/QcGp12RecordWorkorderDefect.cs similarity index 100% rename from ZR.Model/MES/qc/QcGp12RecordWorkorderDefect.cs rename to ZR.Model/MES/qc/gp12/QcGp12RecordWorkorderDefect.cs diff --git a/ZR.Model/MES/qc/QcGp12ServiceStatistics.cs b/ZR.Model/MES/qc/gp12/QcGp12ServiceStatistics.cs similarity index 100% rename from ZR.Model/MES/qc/QcGp12ServiceStatistics.cs rename to ZR.Model/MES/qc/gp12/QcGp12ServiceStatistics.cs diff --git a/ZR.Model/MES/qc/QcGp12ServiceWorkorder.cs b/ZR.Model/MES/qc/gp12/QcGp12ServiceWorkorder.cs similarity index 100% rename from ZR.Model/MES/qc/QcGp12ServiceWorkorder.cs rename to ZR.Model/MES/qc/gp12/QcGp12ServiceWorkorder.cs diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseDefectService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseDefectService.cs new file mode 100644 index 00000000..61ae45c5 --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseDefectService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量BackEnd基础缺陷项service接口 + /// + public interface IQcBackEndBaseDefectService : IBaseService + { + PagedInfo GetList(QcBackEndBaseDefectQueryDto parm); + + QcBackEndBaseDefect GetInfo(int Id); + + QcBackEndBaseDefect AddQcBackEndBaseDefect(QcBackEndBaseDefect parm); + + int UpdateQcBackEndBaseDefect(QcBackEndBaseDefect parm); + + } +} diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseGroupService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseGroupService.cs new file mode 100644 index 00000000..49996b32 --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseGroupService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量BackEnd班组service接口 + /// + public interface IQcBackEndBaseGroupService : IBaseService + { + PagedInfo GetList(QcBackEndBaseGroupQueryDto parm); + + QcBackEndBaseGroup GetInfo(int Id); + + QcBackEndBaseGroup AddQcBackEndBaseGroup(QcBackEndBaseGroup parm); + + int UpdateQcBackEndBaseGroup(QcBackEndBaseGroup parm); + + } +} diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseLabelAnalysisService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseLabelAnalysisService.cs new file mode 100644 index 00000000..439e73d4 --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseLabelAnalysisService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量BackEnd基础标签解析service接口 + /// + public interface IQcBackEndBaseLabelAnalysisService : IBaseService + { + PagedInfo GetList(QcBackEndBaseLabelAnalysisQueryDto parm); + + QcBackEndBaseLabelAnalysis GetInfo(int Id); + + QcBackEndBaseLabelAnalysis AddQcBackEndBaseLabelAnalysis(QcBackEndBaseLabelAnalysis parm); + + int UpdateQcBackEndBaseLabelAnalysis(QcBackEndBaseLabelAnalysis parm); + + } +} diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseSiteService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseSiteService.cs new file mode 100644 index 00000000..663547bc --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackEndBaseSiteService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量BackEnd基础站点service接口 + /// + public interface IQcBackEndBaseSiteService : IBaseService + { + PagedInfo GetList(QcBackEndBaseSiteQueryDto parm); + + QcBackEndBaseSite GetInfo(int Id); + + QcBackEndBaseSite AddQcBackEndBaseSite(QcBackEndBaseSite parm); + + int UpdateQcBackEndBaseSite(QcBackEndBaseSite parm); + + } +} diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackEndLogWorkorderService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackEndLogWorkorderService.cs new file mode 100644 index 00000000..31562094 --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackEndLogWorkorderService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量BackEnd工单操作日志service接口 + /// + public interface IQcBackEndLogWorkorderService : IBaseService + { + PagedInfo GetList(QcBackEndLogWorkorderQueryDto parm); + + QcBackEndLogWorkorder GetInfo(string Id); + + QcBackEndLogWorkorder AddQcBackEndLogWorkorder(QcBackEndLogWorkorder parm); + + int UpdateQcBackEndLogWorkorder(QcBackEndLogWorkorder parm); + + } +} diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackEndRecordLabelScanService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackEndRecordLabelScanService.cs new file mode 100644 index 00000000..c4a6f91c --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackEndRecordLabelScanService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量BackEnd扫码标签记录service接口 + /// + public interface IQcBackEndRecordLabelScanService : IBaseService + { + PagedInfo GetList(QcBackEndRecordLabelScanQueryDto parm); + + QcBackEndRecordLabelScan GetInfo(string Id); + + QcBackEndRecordLabelScan AddQcBackEndRecordLabelScan(QcBackEndRecordLabelScan parm); + + int UpdateQcBackEndRecordLabelScan(QcBackEndRecordLabelScan parm); + + } +} diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackEndRecordWorkorderDefectService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackEndRecordWorkorderDefectService.cs new file mode 100644 index 00000000..21348484 --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackEndRecordWorkorderDefectService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量BackEnd工单缺陷项记录service接口 + /// + public interface IQcBackEndRecordWorkorderDefectService : IBaseService + { + PagedInfo GetList(QcBackEndRecordWorkorderDefectQueryDto parm); + + QcBackEndRecordWorkorderDefect GetInfo(string Id); + + QcBackEndRecordWorkorderDefect AddQcBackEndRecordWorkorderDefect(QcBackEndRecordWorkorderDefect parm); + + int UpdateQcBackEndRecordWorkorderDefect(QcBackEndRecordWorkorderDefect parm); + + } +} diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackEndService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackEndService.cs new file mode 100644 index 00000000..fa255fcd --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackEndService.cs @@ -0,0 +1,90 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量BackEnd工单业务模块service接口 + /// + public interface IQcBackEndService : IBaseService + { + /// + /// 获取班组下拉 + /// + /// + List GetGroupOptions(); + + /// + /// 获取站点下拉 + /// + /// + List GetStieOptions(); + + /// + /// 获取缺陷项渲染数据 + /// + /// + List GetDefectInitOptions(); + + /// + /// 获取缺陷项菜单列表的渲染数据 + /// + /// + List GetDefectTableOptions(); + + /// + /// 解析标签 + /// + /// 标签内容 扫码内容 + /// 解析方法 1-全解析 2-只看零件号 + /// + QcBackEndLabelAnalysisDto AnalyzeLabelToDto(string label,int type); + + /// + /// 开始工单(标签重复则开启旧工单) + /// + /// + QcBackEndServiceWorkorder StartBackEndWorkOrder(QcBackEndWorkorderDetailDto data); + + /// + /// 工单缺陷项修改 + /// + /// + QcBackEndServiceWorkorder ChangeWorkOrderDefect(QcBackEndWorkorderDefectDto data); + + /// + /// 触摸屏工单缺陷项获取 + /// + /// + List GetWorkOrderDefectList(string workorder); + + /// + /// 触摸屏扫内标签零件 + /// + /// + string ScanInnerLabel(QcBackEndLabelScanDto data); + + /// + /// 结束工单并生成质量报表 + /// + /// + string EndBackEndWorkOrderAndCreateStatistics(string workorder); + + /// + /// 更新工单相关信息 + /// + /// 工单号 + /// + public QcBackEndServiceWorkorder UpdateWorkOrderDetail(string workorder); + + /// + /// 生成虚拟标签 + /// + /// 工单信息 + /// + public QcBackEndServiceWorkorder GenerateVirtualLabel(QcBackEndWorkorderDetailDto workorderDetail); + } +} diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackEndServiceStatisticsService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackEndServiceStatisticsService.cs new file mode 100644 index 00000000..f9b3141d --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackEndServiceStatisticsService.cs @@ -0,0 +1,35 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量BackEnd统计报表业务模块service接口 + /// + public interface IQcBackEndServiceStatisticsService : IBaseService + { + /// + /// 获取原始数据 + /// + /// + /// + PagedInfo GetList(QcBackEndServiceStatisticsQueryDto parm); + + /// + /// 获取修正格式后的列表数据 + /// + /// + /// + List GetReviseList(QcBackEndServiceStatisticsQueryDto parm); + + QcBackEndServiceStatistics GetInfo(string Id); + + QcBackEndServiceStatistics AddQcBackEndServiceStatistics(QcBackEndServiceStatistics parm); + + int UpdateQcBackEndServiceStatistics(QcBackEndServiceStatistics parm); + + } +} diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackEndServiceWorkorderService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackEndServiceWorkorderService.cs new file mode 100644 index 00000000..0a78787c --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackEndServiceWorkorderService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using System.Collections.Generic; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量BackEnd工单业务模块service接口 + /// + public interface IQcBackEndServiceWorkorderService : IBaseService + { + PagedInfo GetList(QcBackEndServiceWorkorderQueryDto parm); + + QcBackEndServiceWorkorder GetInfo(string Id); + + QcBackEndServiceWorkorder AddQcBackEndServiceWorkorder(QcBackEndServiceWorkorder parm); + + int UpdateQcBackEndServiceWorkorder(QcBackEndServiceWorkorder parm); + + } +} diff --git a/ZR.Service/mes/qc/IService/backend/IQcBackendBaseOutpackageService.cs b/ZR.Service/mes/qc/IService/backend/IQcBackendBaseOutpackageService.cs new file mode 100644 index 00000000..9520158d --- /dev/null +++ b/ZR.Service/mes/qc/IService/backend/IQcBackendBaseOutpackageService.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using ZR.Model; +using ZR.Model.Business; +using ZR.Model.Dto; + +namespace ZR.Service.Business.IBusinessService +{ + /// + /// 质量后道外箱标签打印配置 + /// + public interface IQcBackendBaseOutpackageService : IBaseService + { + PagedInfo GetList(QcBackendBaseOutpackageQueryDto parm); + + QcBackendBaseOutpackage GetInfo(int Id); + + QcBackendBaseOutpackage AddQcBackendBaseOutpackage(QcBackendBaseOutpackage parm); + + int UpdateQcBackendBaseOutpackage(QcBackendBaseOutpackage parm); + } +} diff --git a/ZR.Service/mes/qc/IService/IQcGp12BaseDefectService.cs b/ZR.Service/mes/qc/IService/gp12/IQcGp12BaseDefectService.cs similarity index 100% rename from ZR.Service/mes/qc/IService/IQcGp12BaseDefectService.cs rename to ZR.Service/mes/qc/IService/gp12/IQcGp12BaseDefectService.cs diff --git a/ZR.Service/mes/qc/IService/IQcGp12BaseGroupService.cs b/ZR.Service/mes/qc/IService/gp12/IQcGp12BaseGroupService.cs similarity index 100% rename from ZR.Service/mes/qc/IService/IQcGp12BaseGroupService.cs rename to ZR.Service/mes/qc/IService/gp12/IQcGp12BaseGroupService.cs diff --git a/ZR.Service/mes/qc/IService/IQcGp12BaseLabelAnalysisService.cs b/ZR.Service/mes/qc/IService/gp12/IQcGp12BaseLabelAnalysisService.cs similarity index 100% rename from ZR.Service/mes/qc/IService/IQcGp12BaseLabelAnalysisService.cs rename to ZR.Service/mes/qc/IService/gp12/IQcGp12BaseLabelAnalysisService.cs diff --git a/ZR.Service/mes/qc/IService/IQcGp12BaseSiteService.cs b/ZR.Service/mes/qc/IService/gp12/IQcGp12BaseSiteService.cs similarity index 100% rename from ZR.Service/mes/qc/IService/IQcGp12BaseSiteService.cs rename to ZR.Service/mes/qc/IService/gp12/IQcGp12BaseSiteService.cs diff --git a/ZR.Service/mes/qc/IService/IQcGp12LogWorkorderService.cs b/ZR.Service/mes/qc/IService/gp12/IQcGp12LogWorkorderService.cs similarity index 100% rename from ZR.Service/mes/qc/IService/IQcGp12LogWorkorderService.cs rename to ZR.Service/mes/qc/IService/gp12/IQcGp12LogWorkorderService.cs diff --git a/ZR.Service/mes/qc/IService/IQcGp12RecordLabelScanService.cs b/ZR.Service/mes/qc/IService/gp12/IQcGp12RecordLabelScanService.cs similarity index 100% rename from ZR.Service/mes/qc/IService/IQcGp12RecordLabelScanService.cs rename to ZR.Service/mes/qc/IService/gp12/IQcGp12RecordLabelScanService.cs diff --git a/ZR.Service/mes/qc/IService/IQcGp12RecordWorkorderDefectService.cs b/ZR.Service/mes/qc/IService/gp12/IQcGp12RecordWorkorderDefectService.cs similarity index 100% rename from ZR.Service/mes/qc/IService/IQcGp12RecordWorkorderDefectService.cs rename to ZR.Service/mes/qc/IService/gp12/IQcGp12RecordWorkorderDefectService.cs diff --git a/ZR.Service/mes/qc/IService/IQcGp12Service.cs b/ZR.Service/mes/qc/IService/gp12/IQcGp12Service.cs similarity index 100% rename from ZR.Service/mes/qc/IService/IQcGp12Service.cs rename to ZR.Service/mes/qc/IService/gp12/IQcGp12Service.cs diff --git a/ZR.Service/mes/qc/IService/IQcGp12ServiceStatisticsService.cs b/ZR.Service/mes/qc/IService/gp12/IQcGp12ServiceStatisticsService.cs similarity index 100% rename from ZR.Service/mes/qc/IService/IQcGp12ServiceStatisticsService.cs rename to ZR.Service/mes/qc/IService/gp12/IQcGp12ServiceStatisticsService.cs diff --git a/ZR.Service/mes/qc/IService/IQcGp12ServiceWorkorderService.cs b/ZR.Service/mes/qc/IService/gp12/IQcGp12ServiceWorkorderService.cs similarity index 100% rename from ZR.Service/mes/qc/IService/IQcGp12ServiceWorkorderService.cs rename to ZR.Service/mes/qc/IService/gp12/IQcGp12ServiceWorkorderService.cs diff --git a/ZR.Service/mes/qc/backend/QcBackEndBaseDefectService.cs b/ZR.Service/mes/qc/backend/QcBackEndBaseDefectService.cs new file mode 100644 index 00000000..92268a21 --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackEndBaseDefectService.cs @@ -0,0 +1,86 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; + +namespace ZR.Service.Business +{ + /// + /// 质量BackEnd基础缺陷项Service业务层处理 + /// + [AppService(ServiceType = typeof(IQcBackEndBaseDefectService), ServiceLifetime = LifeTime.Transient)] + public class QcBackEndBaseDefectService : BaseService, IQcBackEndBaseDefectService + { + /// + /// 查询质量BackEnd基础缺陷项列表 + /// + /// + /// + public PagedInfo GetList(QcBackEndBaseDefectQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public QcBackEndBaseDefect GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加质量BackEnd基础缺陷项 + /// + /// + /// + public QcBackEndBaseDefect AddQcBackEndBaseDefect(QcBackEndBaseDefect model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量BackEnd基础缺陷项 + /// + /// + /// + public int UpdateQcBackEndBaseDefect(QcBackEndBaseDefect model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackEndBaseDefect() + //{ + // Name = model.Name, + // Code = model.Code, + // Group = model.Group, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/qc/backend/QcBackEndBaseGroupService.cs b/ZR.Service/mes/qc/backend/QcBackEndBaseGroupService.cs new file mode 100644 index 00000000..8c507958 --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackEndBaseGroupService.cs @@ -0,0 +1,85 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; + +namespace ZR.Service.Business +{ + /// + /// 质量BackEnd班组Service业务层处理 + /// + [AppService(ServiceType = typeof(IQcBackEndBaseGroupService), ServiceLifetime = LifeTime.Transient)] + public class QcBackEndBaseGroupService : BaseService, IQcBackEndBaseGroupService + { + /// + /// 查询质量BackEnd班组列表 + /// + /// + /// + public PagedInfo GetList(QcBackEndBaseGroupQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public QcBackEndBaseGroup GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加质量BackEnd班组 + /// + /// + /// + public QcBackEndBaseGroup AddQcBackEndBaseGroup(QcBackEndBaseGroup model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量BackEnd班组 + /// + /// + /// + public int UpdateQcBackEndBaseGroup(QcBackEndBaseGroup model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackEndBaseGroup() + //{ + // Name = model.Name, + // Code = model.Code, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/qc/backend/QcBackEndBaseLabelAnalysisService.cs b/ZR.Service/mes/qc/backend/QcBackEndBaseLabelAnalysisService.cs new file mode 100644 index 00000000..bed8bea4 --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackEndBaseLabelAnalysisService.cs @@ -0,0 +1,87 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; + +namespace ZR.Service.Business +{ + /// + /// 质量BackEnd基础标签解析Service业务层处理 + /// + [AppService(ServiceType = typeof(IQcBackEndBaseLabelAnalysisService), ServiceLifetime = LifeTime.Transient)] + public class QcBackEndBaseLabelAnalysisService : BaseService, IQcBackEndBaseLabelAnalysisService + { + /// + /// 查询质量BackEnd基础标签解析列表 + /// + /// + /// + public PagedInfo GetList(QcBackEndBaseLabelAnalysisQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public QcBackEndBaseLabelAnalysis GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加质量BackEnd基础标签解析 + /// + /// + /// + public QcBackEndBaseLabelAnalysis AddQcBackEndBaseLabelAnalysis(QcBackEndBaseLabelAnalysis model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量BackEnd基础标签解析 + /// + /// + /// + public int UpdateQcBackEndBaseLabelAnalysis(QcBackEndBaseLabelAnalysis model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackEndBaseLabelAnalysis() + //{ + // Name = model.Name, + // Code = model.Code, + // Expression = model.Expression, + // Sort = model.Sort, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/qc/backend/QcBackEndBaseSiteService.cs b/ZR.Service/mes/qc/backend/QcBackEndBaseSiteService.cs new file mode 100644 index 00000000..50f7ea6b --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackEndBaseSiteService.cs @@ -0,0 +1,85 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; + +namespace ZR.Service.Business +{ + /// + /// 质量BackEnd基础站点Service业务层处理 + /// + [AppService(ServiceType = typeof(IQcBackEndBaseSiteService), ServiceLifetime = LifeTime.Transient)] + public class QcBackEndBaseSiteService : BaseService, IQcBackEndBaseSiteService + { + /// + /// 查询质量BackEnd基础站点列表 + /// + /// + /// + public PagedInfo GetList(QcBackEndBaseSiteQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public QcBackEndBaseSite GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加质量BackEnd基础站点 + /// + /// + /// + public QcBackEndBaseSite AddQcBackEndBaseSite(QcBackEndBaseSite model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量BackEnd基础站点 + /// + /// + /// + public int UpdateQcBackEndBaseSite(QcBackEndBaseSite model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackEndBaseSite() + //{ + // Name = model.Name, + // Code = model.Code, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/qc/backend/QcBackEndLogWorkorderService.cs b/ZR.Service/mes/qc/backend/QcBackEndLogWorkorderService.cs new file mode 100644 index 00000000..16cbe798 --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackEndLogWorkorderService.cs @@ -0,0 +1,85 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; + +namespace ZR.Service.Business +{ + /// + /// 质量BackEnd工单操作日志Service业务层处理 + /// + [AppService(ServiceType = typeof(IQcBackEndLogWorkorderService), ServiceLifetime = LifeTime.Transient)] + public class QcBackEndLogWorkorderService : BaseService, IQcBackEndLogWorkorderService + { + /// + /// 查询质量BackEnd工单操作日志列表 + /// + /// + /// + public PagedInfo GetList(QcBackEndLogWorkorderQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public QcBackEndLogWorkorder GetInfo(string Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加质量BackEnd工单操作日志 + /// + /// + /// + public QcBackEndLogWorkorder AddQcBackEndLogWorkorder(QcBackEndLogWorkorder model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量BackEnd工单操作日志 + /// + /// + /// + public int UpdateQcBackEndLogWorkorder(QcBackEndLogWorkorder model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackEndLogWorkorder() + //{ + // Name = model.Name, + // Content = model.Content, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/qc/backend/QcBackEndRecordLabelScanService.cs b/ZR.Service/mes/qc/backend/QcBackEndRecordLabelScanService.cs new file mode 100644 index 00000000..71d00bef --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackEndRecordLabelScanService.cs @@ -0,0 +1,92 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; + +namespace ZR.Service.Business +{ + /// + /// 质量BackEnd扫码标签记录Service业务层处理 + /// + [AppService(ServiceType = typeof(IQcBackEndRecordLabelScanService), ServiceLifetime = LifeTime.Transient)] + public class QcBackEndRecordLabelScanService : BaseService, IQcBackEndRecordLabelScanService + { + /// + /// 查询质量BackEnd扫码标签记录列表 + /// + /// + /// + public PagedInfo GetList(QcBackEndRecordLabelScanQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public QcBackEndRecordLabelScan GetInfo(string Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加质量BackEnd扫码标签记录 + /// + /// + /// + public QcBackEndRecordLabelScan AddQcBackEndRecordLabelScan(QcBackEndRecordLabelScan model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量BackEnd扫码标签记录 + /// + /// + /// + public int UpdateQcBackEndRecordLabelScan(QcBackEndRecordLabelScan model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackEndRecordLabelScan() + //{ + // WorkOrder = model.WorkOrder, + // PartNumber = model.PartNumber, + // Team = model.Team, + // SiteNo = model.SiteNo, + // ComNo = model.ComNo, + // Label = model.Label, + // LabelType = model.LabelType, + // LabelSort = model.LabelSort, + // ScanTime = model.ScanTime, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/qc/backend/QcBackEndRecordWorkorderDefectService.cs b/ZR.Service/mes/qc/backend/QcBackEndRecordWorkorderDefectService.cs new file mode 100644 index 00000000..83bc171a --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackEndRecordWorkorderDefectService.cs @@ -0,0 +1,93 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; + +namespace ZR.Service.Business +{ + /// + /// 质量BackEnd工单缺陷项记录Service业务层处理 + /// + [AppService(ServiceType = typeof(IQcBackEndRecordWorkorderDefectService), ServiceLifetime = LifeTime.Transient)] + public class QcBackEndRecordWorkorderDefectService : BaseService, IQcBackEndRecordWorkorderDefectService + { + /// + /// 查询质量BackEnd工单缺陷项记录列表 + /// + /// + /// + public PagedInfo GetList(QcBackEndRecordWorkorderDefectQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public QcBackEndRecordWorkorderDefect GetInfo(string Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加质量BackEnd工单缺陷项记录 + /// + /// + /// + public QcBackEndRecordWorkorderDefect AddQcBackEndRecordWorkorderDefect(QcBackEndRecordWorkorderDefect model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量BackEnd工单缺陷项记录 + /// + /// + /// + public int UpdateQcBackEndRecordWorkorderDefect(QcBackEndRecordWorkorderDefect model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackEndRecordWorkorderDefect() + //{ + // WorkOrder = model.WorkOrder, + // PartNumber = model.PartNumber, + // Team = model.Team, + // SiteNo = model.SiteNo, + // ComNo = model.ComNo, + // DefectCode = model.DefectCode, + // DefectName = model.DefectName, + // DefectType = model.DefectType, + // DefectNum = model.DefectNum, + // ClickTime = model.ClickTime, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/qc/backend/QcBackEndService.cs b/ZR.Service/mes/qc/backend/QcBackEndService.cs new file mode 100644 index 00000000..f5d6a52c --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackEndService.cs @@ -0,0 +1,965 @@ +using System; +using System.Globalization; +using System.Linq; +using System.Text.Json; +using System.Text.RegularExpressions; +using System.Transactions; +using Aliyun.OSS; +using AutoMapper; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using JinianNet.JNTemplate; +using Microsoft.AspNetCore.Http.HttpResults; +using SqlSugar; +using ZR.Model; +using ZR.Model.Business; +using ZR.Model.Dto; +using ZR.Model.MES.wms; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using static System.Runtime.InteropServices.JavaScript.JSType; + +namespace ZR.Service.Business +{ + /// + /// 质量BackEnd工单业务模块Service业务层处理 + /// + [AppService(ServiceType = typeof(IQcBackEndService), ServiceLifetime = LifeTime.Transient)] + public class QcBackEndService : BaseService, IQcBackEndService + { + public QcBackEndLabelAnalysisDto AnalyzeLabelToDto(string label, int type) + { + QcBackEndLabelAnalysisDto labelAnalysisDto = + new() + { + IsOk = true, + Msg = "解析成功!", + LabelCode = label, + }; + // 判断内外箱标签 + + // 解析零件号 + labelAnalysisDto.Partnumber = DoAnalyzePartnumber(label); + // 解析数量 + labelAnalysisDto.Number = DoAnalyzeQuantity(label); + if (string.IsNullOrEmpty(labelAnalysisDto.Partnumber)) + { + labelAnalysisDto.IsOk = false; + labelAnalysisDto.Msg = "标签,零件号解析异常!"; + } + + // TYPE === 1 时,同时根据物料清单获取详细信息 + if (type == 1) + { + WmMaterial material = Context + .Queryable() + .Where(it => it.Partnumber == labelAnalysisDto.Partnumber) + .Where(it => it.Type == 1) + .Where(it => it.Status == 1) + .First(); + if (material == null) + { + labelAnalysisDto.IsOk = false; + labelAnalysisDto.Msg = "物料清单内无此零件号!请检查物料清单:" + labelAnalysisDto.Partnumber; + } + else + { + labelAnalysisDto.Color = material.Color; + labelAnalysisDto.Specification = material.Specification; + labelAnalysisDto.Description = !string.IsNullOrEmpty(material.Description) + ? material.Description + : material.ProductName; + } + } + + return labelAnalysisDto; + } + + // 标签的零件号解析 + public string DoAnalyzePartnumber(string label) + { + // 通用规则下的标签零件号抓取 + var predicate = Expressionable + .Create() + .And(it => it.Code == "PartNumber") + .And(it => it.Status == "1"); + List analysisList = Context + .Queryable() + .Where(predicate.ToExpression()) + .ToList(); + foreach (QcBackEndBaseLabelAnalysis analysis in analysisList) + { + if (string.IsNullOrEmpty(analysis.Expression)) + { + continue; + } + // 零件号正则表达式 + Regex pattern = new(@analysis.Expression); + Match match = pattern.Match(label); + if (match.Success && match.Groups.Count > 1) + { + return match.Groups[1].Value; + } + } + // 非通用规则下的标签零件号抓取 + // 解析T58门把手产品标签 + try + { + // 直接从标签中截取前 15 个字符作为零件号 + if (!string.IsNullOrEmpty(label) && label.Length >= 40 && label.EndsWith('$')) + { + return label.Substring(0, 17); + } + } + catch (Exception) + { + return ""; + } + return ""; + } + + // 标签的数量解析 + public int DoAnalyzeQuantity(string label) + { + int result = 0; + // 标签零件号抓取 + var predicate = Expressionable + .Create() + .And(it => it.Code == "Quantity") + .And(it => it.Status == "1"); + List analysisList = Context + .Queryable() + .Where(predicate.ToExpression()) + .ToList(); + foreach (QcBackEndBaseLabelAnalysis analysis in analysisList) + { + if (string.IsNullOrEmpty(analysis.Expression)) + { + continue; + } + // 零件号正则表达式 + Regex pattern = new(@analysis.Expression); + Match match = pattern.Match(label); + if (match.Success && match.Groups.Count > 1) + { + if (Int32.TryParse(match.Groups[1].Value, out result)) + { + return result; + } + else + { + return -1; + } + } + } + return -1; + } + + public List GetDefectInitOptions() + { + List defectList = new(); + var predicate = Expressionable.Create().And(it => it.Status == "1"); + /*List groupList = Context + .Queryable() + .Where(predicate.ToExpression()) + .GroupBy(it => it.Group) + .Select(it => it.Group) + .ToList();*/ + List groupList = new() + { + "油漆", + "设备", + "毛坯", + "程序", + "班组操作" + }; + foreach (string group in groupList) + { + QcBackEndAlterationDefectDto defectDto = new(); + defectDto.GroupName = group; + List children = Context + .Queryable() + .Where(it => it.Group == group) + .Where(predicate.ToExpression()) + .Select(it => new QcBackEndChildrenDefectDto + { + Name = it.Name, + Code = it.Code, + Type = it.Type, + Num = 0 + }) + .ToList(); + defectDto.Children = children; + defectList.Add(defectDto); + } + return defectList; + } + + public List GetDefectTableOptions() + { + List defectList = new(); + var predicate = Expressionable + .Create() + .And(it => it.Type == "打磨") + .And(it => it.Status == "1"); + /* List groupList = Context + .Queryable() + .Where(predicate.ToExpression()) + .GroupBy(it => it.Group) + .Select(it => it.Group) + .ToList();*/ + List groupList = new() + { + "油漆", + "设备", + "毛坯", + "程序", + "班组操作" + }; + foreach (string group in groupList) + { + QcBackEndAlterationDefectDto defectDto = new(); + defectDto.GroupName = group; + List children = Context + .Queryable() + .Where(it => it.Group == group) + .Where(predicate.ToExpression()) + .Select(it => new QcBackEndChildrenDefectDto + { + Name = it.Name, + Code = SqlFunc.IIF( + SqlFunc.Length(it.Code) >= 2, + SqlFunc.MergeString( + SqlFunc.Substring(it.Code, 0, 1), // 获取第一个字符(注意:SQL 中索引通常从1开始) + SqlFunc.Substring(it.Code, SqlFunc.Length(it.Code) - 1, 1) // 获取最后一个字符 + ), + it.Code + ), + Type = it.Type, + Num = 0 + }) + .ToList(); + defectDto.Children = children; + defectList.Add(defectDto); + } + return defectList; + } + + public List GetGroupOptions() + { + var predicate = Expressionable.Create().And(it => it.Status == "1"); + + var response = Context + .Queryable() + .Where(predicate.ToExpression()) + .Select(it => new QcBackEndBaseGroupDto()) + .ToList(); + return response; + } + + public List GetStieOptions() + { + var predicate = Expressionable.Create().And(it => it.Status == "1"); + + var response = Context + .Queryable() + .Where(predicate.ToExpression()) + .Select(it => new QcBackEndBaseSiteDto()) + .ToList(); + return response; + } + + public QcBackEndServiceWorkorder StartBackEndWorkOrder(QcBackEndWorkorderDetailDto data) + { + // 检查是否是已扫过的外箱标签 + QcBackEndServiceWorkorder oldWorkOrder = Context + .Queryable() + .Where(it => it.Label == data.Label) + .First(); + if (oldWorkOrder != null) + { + return oldWorkOrder; + } + // 没有旧记录则开启新的记录 + try + { + // 检查箱标签是否当内标签扫过 + bool isInnerLabelScan = Context + .Queryable() + .Where(it => it.Label == data.Label) + .Where(it => it.LabelType == 2) + .Any(); + if (isInnerLabelScan) + { + throw new Exception("标签异常,该标签已经当内标签扫过!"); + } + Context.Ado.BeginTran(); + DateTime nowTime = DateTime.Now; + // 创建新工单号 + QcBackEndWorkorderDetailDto workorderInfo = GetNewWorkOrderCreate(data); + // 赋值 + data.WorkOrder = workorderInfo.WorkOrder; + data.SerialNumber = workorderInfo.SerialNumber; + data.StartTime = nowTime; + QcBackEndServiceWorkorder newModel = GetNewWorkOrderInfo(data); + QcBackEndServiceWorkorder result = Context.Insertable(newModel).ExecuteReturnEntity(); + if (result == null) + { + Context.Ado.RollbackTran(); + throw new Exception("插入新工单异常"); + } + // 工单开始记录 + QcBackEndRecordLabelScan newScanLabelRecord = + new() + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + WorkOrder = result.WorkOrder, + PartNumber = result.PartNumber, + Team = result.Team, + SiteNo = result.SiteNo, + ComNo = result.ComNo, + Label = result.Label, + LabelType = 1, + LabelSort = 1, + ScanTime = $"{nowTime:yyyy-MM-dd HH:mm:ss}", + Type = "1", + Status = "1", + Remark = "新工单创建扫描箱标签", + CreatedBy = "后台系统", + CreatedTime = nowTime, + }; + int res = Context.Insertable(newScanLabelRecord).ExecuteCommand(); + if (res == 0) + { + Context.Ado.RollbackTran(); + throw new Exception("插入标签记录异常"); + } + QcBackEndLogWorkorder qcBackEndLog = + new() + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + Name = "工单开始", + Content = $"工单:{result.WorkOrder}开始,开始时间{nowTime:yyyy-MM-dd HH:mm:ss}", + Type = "100", + Status = "1", + Remark = "触摸屏操作记录", + CreatedBy = "系统", + CreatedTime = nowTime + }; + Context.Insertable(qcBackEndLog).ExecuteCommand(); + Context.Ado.CommitTran(); + return result; + } + catch (Exception ex) + { + Context.Ado.RollbackTran(); + + throw new Exception(ex.Message); + } + } + + // 创建新工单号 + public QcBackEndWorkorderDetailDto GetNewWorkOrderCreate(QcBackEndWorkorderDetailDto data) + { + QcBackEndWorkorderDetailDto result = new(); + string newWorkOrder = ""; + DateTime today = DateTime.Today; + // 检查是否是已扫过的外箱标签 + QcBackEndServiceWorkorder lastWorkOrder = Context + .Queryable() + .Where(it => it.CreatedTime.Value.Date == today) + .OrderByDescending(it => it.SerialNumber) + .First(); + if (lastWorkOrder != null) + { + // 递增序列号 + int sequenceNumber = lastWorkOrder.SerialNumber + 1; + if (data.IsOnetime == 1) + { + newWorkOrder = $"W{today:yyyyMMdd}{sequenceNumber:D3}"; + } + else if (data.IsPolish == 1) + { + newWorkOrder = $"P{today:yyyyMMdd}{sequenceNumber:D3}"; + } + else + { + newWorkOrder = $"{today:yyyyMMdd}{sequenceNumber:D3}"; + } + result.SerialNumber = sequenceNumber; + } + else + { + // 如果今天还没有创建过工单,则从 "001" 开始 + if (data.IsOnetime == 1) + { + newWorkOrder = $"W{today:yyyyMMdd}001"; + } + else if (data.IsPolish == 1) + { + newWorkOrder = $"P{today:yyyyMMdd}001"; + } + else + { + newWorkOrder = $"{today:yyyyMMdd}001"; + } + result.SerialNumber = 1; + } + result.WorkOrder = newWorkOrder; + return result; + } + + public static QcBackEndServiceWorkorder GetNewWorkOrderInfo(QcBackEndWorkorderDetailDto data) + { + // 新工单 + + QcBackEndServiceWorkorder model = + new() + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + WorkOrder = data.WorkOrder, + SerialNumber = data.SerialNumber, + PartNumber = data.PartNumber, + Specification = data.Specification, + Color = data.Color, + Description = data.Description, + Team = data.Team, + SiteNo = data.SiteNo, + ComNo = data.ComNo, + IsOnetime = data.IsOnetime, + IsPolish = data.IsPolish, + IsBack = data.IsBack, + IsOut = data.IsOut, + StartTime = data.StartTime, + EndTime = null, + Label = data.Label, + RequireNumber = 0, + QualifiedNumber = 0, + PolishNumber = 0, + DamoNumber = 0, + BaofeiNumber = 0, + Type = "1", + Status = "1", + Remark = "系统新增工单", + CreatedBy = data.CreatedBy, + CreatedTime = data.CreatedTime, + UpdatedBy = data.UpdatedBy, + UpdatedTime = data.UpdatedTime + }; + return model; + } + + public QcBackEndServiceWorkorder ChangeWorkOrderDefect(QcBackEndWorkorderDefectDto data) + { + try + { + if(string.IsNullOrEmpty(data.DefectCode)) + { + throw new Exception("缺陷项传入为空!"); + } + Context.Ado.BeginTran(); + DateTime nowTime = DateTime.Now; + // 获取缺陷信息 + QcBackEndBaseDefect defect = Context + .Queryable() + .Where(it => it.Code == data.DefectCode && it.Status == "1") + .First(); + if (defect == null) + { + throw new Exception("缺陷项不在缺陷清单中!"); + } + + // 工单信息修改 + QcBackEndServiceWorkorder qcBackEndWorkorder = Context + .Queryable() + .Where(it => it.WorkOrder == data.WorkOrder) + .First(); + if (qcBackEndWorkorder == null) + { + throw new Exception("工单不存在!"); + } + + // 获取当前工作单缺陷记录 + QcBackEndRecordWorkorderDefect workOrderDefect = Context + .Queryable() + .Where(it => it.WorkOrder == data.WorkOrder && it.DefectCode == data.DefectCode) + .First(); + + if (data.Type == "1") + { + // Type === 1 短按新增 + if (workOrderDefect != null) + { + // 数据库中有记录,DefectNum + 1 + workOrderDefect.DefectNum += 1; + workOrderDefect.UpdatedTime = data.CreatedTime; + workOrderDefect.UpdatedBy = data.CreatedBy; + Context.Updateable(workOrderDefect).ExecuteCommand(); + } + else + { + // 数据库中无记录,新增记录并设置 DefectNum = 1 + workOrderDefect = new QcBackEndRecordWorkorderDefect + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + WorkOrder = data.WorkOrder, + PartNumber = qcBackEndWorkorder.PartNumber, + Team = qcBackEndWorkorder.Team, + SiteNo = qcBackEndWorkorder.SiteNo, + ComNo = qcBackEndWorkorder.ComNo, + DefectName = defect.Name, + DefectCode = data.DefectCode, + DefectType = defect.Type, + ClickTime = $"{nowTime:yyyy-MM-dd HH:mm:ss}", + Type = "1", + Status = "1", + Remark = "", + CreatedBy = data.CreatedBy, + CreatedTime = data.CreatedTime, + DefectNum = 1 + }; + Context.Insertable(workOrderDefect).ExecuteCommand(); + } + } + else if (data.Type == "2") + { + // Type == 2 长按修改 + if (workOrderDefect != null) + { + // 数据库中有记录,直接赋值 + workOrderDefect.UpdatedTime = data.CreatedTime; + workOrderDefect.UpdatedBy = data.CreatedBy; + workOrderDefect.DefectNum = data.DefectNum; // 假设 data.DefectNum 存在 + Context.Updateable(workOrderDefect).ExecuteCommand(); + } + else + { + // 数据库中无记录,新增记录 + workOrderDefect = new QcBackEndRecordWorkorderDefect + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + WorkOrder = data.WorkOrder, + PartNumber = qcBackEndWorkorder.PartNumber, + Team = qcBackEndWorkorder.Team, + SiteNo = qcBackEndWorkorder.SiteNo, + ComNo = qcBackEndWorkorder.ComNo, + DefectName = defect.Name, + DefectCode = data.DefectCode, + DefectType = defect.Type, + ClickTime = $"{nowTime:yyyy-MM-dd HH:mm:ss}", + Type = "1", + Status = "1", + Remark = "", + CreatedBy = data.CreatedBy, + CreatedTime = data.CreatedTime, + DefectNum = data.DefectNum // 假设 data.DefectNum 存在 + }; + Context.Insertable(workOrderDefect).ExecuteCommand(); + } + } + UpdateWorkOrderDetail(data.WorkOrder); + // 提交事务 + Context.Ado.CommitTran(); + return qcBackEndWorkorder; + } + catch (Exception ex) + { + // 回滚事务 + Context.Ado.RollbackTran(); + throw new Exception("操作失败!", ex); + } + } + + public List GetWorkOrderDefectList(string workorder) + { + return Context + .Queryable() + .Where(it => it.WorkOrder == workorder) + .ToList(); + } + + public QcBackEndServiceWorkorder UpdateWorkOrderDetail(string workorder) + { + QcBackEndServiceWorkorder qcBackEndWorkorder = Context + .Queryable() + .Where(it => it.WorkOrder == workorder) + // .Where(it=>it.Status == "1") + .First(); + // 更新工单中的统计数据 + qcBackEndWorkorder.QualifiedNumber = Context + .Queryable() + .Where(it => it.WorkOrder == workorder) + .Where(it => it.LabelType == 2) + .Count(); + + qcBackEndWorkorder.PolishNumber = + Context + .Queryable() + .Where(it => it.WorkOrder == workorder && it.DefectType == "抛光") + .Sum(it => it.DefectNum) ?? 0; + + qcBackEndWorkorder.DamoNumber = + Context + .Queryable() + .Where(it => it.WorkOrder == workorder && it.DefectType == "打磨") + .Sum(it => it.DefectNum) ?? 0; + + qcBackEndWorkorder.BaofeiNumber = + Context + .Queryable() + .Where(it => it.WorkOrder == workorder && it.DefectType == "报废") + .Sum(it => it.DefectNum) ?? 0; + qcBackEndWorkorder.RequireNumber = + qcBackEndWorkorder.PolishNumber + + qcBackEndWorkorder.DamoNumber + + qcBackEndWorkorder.BaofeiNumber + + (qcBackEndWorkorder.QualifiedNumber ?? 0); + + // 更新工单统计信息到数据库 + Context + .Updateable(qcBackEndWorkorder) + .UpdateColumns(it => new + { + it.RequireNumber, + it.QualifiedNumber, + it.PolishNumber, + it.DamoNumber, + it.BaofeiNumber + }) + .ExecuteCommand(); + return qcBackEndWorkorder; + } + + public string ScanInnerLabel(QcBackEndLabelScanDto data) + { + DateTime nowTime = DateTime.Now; + // 标签防错 (内标签零件号) + string partNumber = DoAnalyzePartnumber(data.Label); + // 内标签包含外标签 + if (!partNumber.Contains(data.PartNumber)) + { + return "内标签零件号与工单零件号不一致!"; + } + bool hasAny = Context + .Queryable() + .Where(it => it.Label == data.Label) + .Any(); + if (hasAny) + { + return "重复扫码!"; + } + // 标签录入 + int sort = 0; + QcBackEndRecordLabelScan labelScan = Context + .Queryable() + .Where(it => it.WorkOrder == data.WorkOrder) + .Where(it => it.LabelType == 2) + .OrderByDescending(it => it.LabelSort) + .First(); + if (labelScan != null) + { + sort = labelScan.LabelSort ?? 0; + } + QcBackEndRecordLabelScan newLabelScran = + new() + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + WorkOrder = data.WorkOrder, + PartNumber = data.PartNumber, + Team = data.Team, + SiteNo = data.SiteNo, + ComNo = data.ComNo, + Label = data.Label, + LabelType = 2, + LabelSort = sort + 1, + ScanTime = $"{nowTime:yyyy-MM-dd HH:mm:ss}", + Type = "1", + Status = "1", + Remark = "扫描标签", + CreatedBy = data.CreatedBy, + CreatedTime = data.CreatedTime, + }; + int res = Context.Insertable(newLabelScran).ExecuteCommand(); + if (res == 0) + { + return "标签录入系统失败!"; + } + //TODO 触发箱标签判定 + if(sort > 28 && (sort + 1) % 28 == 0) + { + /* int packageSort = 0; + QcBackEndRecordLabelScan packagelabelScan = Context + .Queryable() + .Where(it => it.WorkOrder == data.WorkOrder) + .Where(it => it.LabelType == 1) + .OrderByDescending(it => it.LabelSort) + .First(); + if (labelScan != null) + { + packageSort = packagelabelScan.LabelSort ?? 0; + } + QcBackEndRecordLabelScan newPackagePrintLabel = + new() + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + WorkOrder = data.WorkOrder, + PartNumber = data.PartNumber, + Team = data.Team, + SiteNo = data.SiteNo, + ComNo = data.ComNo, + Label = data.Label, + LabelType = 1, + LabelSort = packageSort + 1, + ScanTime = $"{nowTime:yyyy-MM-dd HH:mm:ss}", + Type = "1", + Status = "1", + Remark = "自动出满箱标签", + CreatedBy = data.CreatedBy, + CreatedTime = data.CreatedTime, + }; + int res2 = Context.Insertable(newPackagePrintLabel).ExecuteCommand();*/ + } + return "ok"; + } + + public string EndBackEndWorkOrderAndCreateStatistics(string workorder) + { + try + { + Context.Ado.BeginTran(); + DateTime nowTime = DateTime.Now; + // 工单信息修改 + QcBackEndServiceWorkorder qcBackEndWorkorder = Context + .Queryable() + .Where(it => it.WorkOrder == workorder) + .First(); + if (qcBackEndWorkorder == null) + { + throw new Exception("工单不存在!"); + } + qcBackEndWorkorder.EndTime = nowTime; + qcBackEndWorkorder.Type = "2"; + if (!qcBackEndWorkorder.Remark.Contains("已生成过报表")) + { + qcBackEndWorkorder.Remark += "已生成过报表"; + } + Context.Updateable(qcBackEndWorkorder).ExecuteCommand(); + // 生成报表记录 + List addList = new(); + string groupCode = SnowFlakeSingle.Instance.NextId().ToString(); + addList.Add(CreateNewStatistics(qcBackEndWorkorder, groupCode, 1)); + addList.Add(CreateNewStatistics(qcBackEndWorkorder, groupCode, 2)); + addList.Add(CreateNewStatistics(qcBackEndWorkorder, groupCode, 3)); + Context + .Deleteable() + .Where(it => it.WorkOrder == workorder) + .ExecuteCommand(); + Context.Insertable(addList).ExecuteCommand(); + + QcBackEndLogWorkorder qcBackEndLog = + new() + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + Name = "工单结束", + Content = $"工单:{workorder}结束,结束时间{nowTime:yyyy-MM-dd HH:mm:ss}", + Type = "200", + Status = "1", + Remark = "触摸屏操作记录", + CreatedBy = "系统", + CreatedTime = nowTime + }; + Context.Insertable(qcBackEndLog).ExecuteCommand(); + // 提交事务 + Context.Ado.CommitTran(); + return "ok"; + } + catch (Exception ex) + { + // 回滚事务 + Context.Ado.RollbackTran(); + return ex.Message; + } + } + + public QcBackEndServiceStatistics CreateNewStatistics( + QcBackEndServiceWorkorder data, + string groupCode, + int groupSort + ) + { + List defectList = Context + .Queryable() + .Where(it => it.WorkOrder == data.WorkOrder) + .WhereIF(groupSort == 1, it => it.DefectType == "抛光") + .WhereIF(groupSort == 2, it => it.DefectType == "打磨") + .WhereIF(groupSort == 3, it => it.DefectType == "报废") + .ToList(); + string JsonString = JsonSerializer.Serialize(defectList); + // 计算合格率 + string qualifiedRate = CalculateQualifiedRate(data); + DateTime nowTime = DateTime.Now; + QcBackEndServiceStatistics workorderStatistics = + new() + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + WorkOrder = data.WorkOrder, + PartNumber = data.PartNumber, + Specification = data.Specification, + Color = data.Color, + Description = data.Description, + Team = data.Team, + SiteNo = data.SiteNo, + ComNo = data.ComNo, + IsOnetime = data.IsOnetime, + IsPolish = data.IsPolish, + IsBack = data.IsBack, + IsOut = data.IsOut, + StartTime = data.StartTime, + EndTime = data.EndTime, + Label = data.Label, + RequireNumber = data.RequireNumber, + QualifiedNumber = data.QualifiedNumber, + QualifiedRate = qualifiedRate, + PolishNumber = data.PolishNumber, + DamoNumber = data.DamoNumber, + BaofeiNumber = data.BaofeiNumber, + GroupCode = groupCode, + GroupSort = groupSort, + GroupDefectJson = JsonString, + Type = "1", + Status = "1", + Remark = "结束工单系统新增质量报表", + CreatedBy = "后端", + CreatedTime = nowTime, + }; + return workorderStatistics; + } + + public static string CalculateQualifiedRate(QcBackEndServiceWorkorder data) + { + if (data == null || data.RequireNumber <= 0) + { + return "0%"; + } + + double qualifiedRate = + (double)data.QualifiedNumber.Value / data.RequireNumber.Value * 100; + return $"{qualifiedRate:F1}%"; + } + + public QcBackEndServiceWorkorder GenerateVirtualLabel(QcBackEndWorkorderDetailDto workorderDetail) + { + try + { + Context.Ado.BeginTran(); + + // 检查当前工单已扫码合格数 + int qualifiedNumber = workorderDetail.QualifiedNumber ?? -1; + if (qualifiedNumber < 0) + { + throw new ArgumentException("传入合格数异常!", nameof(workorderDetail.QualifiedNumber)); + } + + int labelCount = GetLabelCountForWorkOrder(workorderDetail.WorkOrder); + + if (labelCount < qualifiedNumber) + { + GenerateVirtualLabels(workorderDetail, qualifiedNumber - labelCount); + } + else if (labelCount > qualifiedNumber) + { + DeleteExcessLabels(workorderDetail.WorkOrder, labelCount - qualifiedNumber); + } + + Context.Ado.CommitTran(); + return UpdateWorkOrderDetail(workorderDetail.WorkOrder); + } + catch (Exception e) + { + Context.Ado.RollbackTran(); + throw new Exception($"生成虚拟标签时出错: {e.Message}", e); + } + } + + private int GetLabelCountForWorkOrder(string workOrder) + { + return Context.Queryable() + .Where(it => it.WorkOrder == workOrder && it.LabelType == 2) + .Count(); + } + + private void GenerateVirtualLabels(QcBackEndWorkorderDetailDto workOrderDetail, int countToGenerate) + { + List virtualLabels = new List(); + int nextLabelNumber = GetNextLabelNumber(workOrderDetail.WorkOrder); + + for (int i = 0; i < countToGenerate; i++) + { + string uniqueLabel = GenerateUniqueSequentialLabel(workOrderDetail.WorkOrder, nextLabelNumber++); + virtualLabels.Add(new QcBackEndRecordLabelScan + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + WorkOrder = workOrderDetail.WorkOrder, + PartNumber = workOrderDetail.PartNumber, + Team = workOrderDetail.Team, + SiteNo = workOrderDetail.SiteNo, + ComNo = workOrderDetail.ComNo, + ScanTime = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"), + Type = "2", + Status = "1", + Remark = "虚拟标签", + CreatedTime = DateTime.UtcNow, + CreatedBy = "系统", + LabelType = 2, + LabelSort = nextLabelNumber, + Label = uniqueLabel + }); + } + + Context.Insertable(virtualLabels).ExecuteCommand(); + } + + private void DeleteExcessLabels(string workOrder, int countToDelete) + { + var labelsToDelete = Context.Queryable() + .Where(it => it.WorkOrder == workOrder && it.LabelType == 2) + .OrderByDescending(it => it.LabelSort) + .Take(countToDelete) + .ToList(); + + Context.Deleteable(labelsToDelete).ExecuteCommand(); + } + + private int GetNextLabelNumber(string workOrder) + { + return Context.Queryable() + .Where(it => it.WorkOrder == workOrder && it.LabelType == 2) + .Max(it => it.LabelSort ?? 0); + } + + private string GenerateUniqueSequentialLabel(string workOrder, int number) + { + const string prefix = "VIRT"; + string baseLabel = $"{prefix}-{GenerateUniqueId()}-{number:D5}"; + string uniqueLabel = baseLabel; + while (IsLabelExists(workOrder, uniqueLabel)) + { + uniqueLabel = $"{baseLabel}-{GenerateUniqueId()}"; + } + + return uniqueLabel; + } + + private bool IsLabelExists(string workOrder, string label) + { + return Context.Queryable() + .Any(it => it.WorkOrder == workOrder && it.LabelType == 2 && it.Label == label); + } + + private string GenerateUniqueId() + { + return Guid.NewGuid().ToString("N").Substring(0, 10); // Generate a 10-character unique ID + } + + } +} diff --git a/ZR.Service/mes/qc/backend/QcBackEndServiceStatisticsService.cs b/ZR.Service/mes/qc/backend/QcBackEndServiceStatisticsService.cs new file mode 100644 index 00000000..70906a57 --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackEndServiceStatisticsService.cs @@ -0,0 +1,221 @@ +using System; +using System.Linq; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using Newtonsoft.Json; +using SqlSugar; +using ZR.Model; +using ZR.Model.Business; +using ZR.Model.Dto; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; + +namespace ZR.Service.Business +{ + /// + /// 质量BackEnd统计报表业务模块Service业务层处理 + /// + [AppService( + ServiceType = typeof(IQcBackEndServiceStatisticsService), + ServiceLifetime = LifeTime.Transient + )] + public class QcBackEndServiceStatisticsService + : BaseService, + IQcBackEndServiceStatisticsService + { + /// + /// 查询质量BackEnd统计报表业务模块列表 + /// + /// + /// + public PagedInfo GetList(QcBackEndServiceStatisticsQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + /// + /// 获取详情 + /// + /// + /// + public QcBackEndServiceStatistics GetInfo(string Id) + { + var response = Queryable().Where(x => x.Id == Id).First(); + + return response; + } + + /// + /// 添加质量BackEnd统计报表业务模块 + /// + /// + /// + public QcBackEndServiceStatistics AddQcBackEndServiceStatistics(QcBackEndServiceStatistics model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量BackEnd统计报表业务模块 + /// + /// + /// + public int UpdateQcBackEndServiceStatistics(QcBackEndServiceStatistics model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackEndServiceStatistics() + //{ + // WorkOrder = model.WorkOrder, + // PartNumber = model.PartNumber, + // Description = model.Description, + // Specification = model.Specification, + // Color = model.Color, + // Team = model.Team, + // SiteNo = model.SiteNo, + // ComNo = model.ComNo, + // IsOnetime = model.IsOnetime, + // IsBack = model.IsBack, + // IsPolish = model.IsPolish, + // IsOut = model.IsOut, + // StartTime = model.StartTime, + // EndTime = model.EndTime, + // Label = model.Label, + // RequireNumber = model.RequireNumber, + // QualifiedNumber = model.QualifiedNumber, + // QualifiedRate = model.QualifiedRate, + // DamoNumber = model.DamoNumber, + // BaofeiNumber = model.BaofeiNumber, + // GroupCode = model.GroupCode, + // GroupSort = model.GroupSort, + // GroupDefectJson = model.GroupDefectJson, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + public List GetReviseList(QcBackEndServiceStatisticsQueryDto parm) + { + var predicate = Expressionable + .Create() + .AndIF( + !string.IsNullOrEmpty(parm.WorkOrder), + x => x.WorkOrder.Contains(parm.WorkOrder) + ) + .AndIF( + !string.IsNullOrEmpty(parm.PartNumber), + x => x.PartNumber.Contains(parm.PartNumber) + ) + .AndIF( + !string.IsNullOrEmpty(parm.Description), + x => x.Description.Contains(parm.Description) + ) + .AndIF(!string.IsNullOrEmpty(parm.Team), x => x.Team == parm.Team) + .AndIF(!string.IsNullOrEmpty(parm.SiteNo), x => x.SiteNo == parm.SiteNo) + .AndIF(!string.IsNullOrEmpty(parm.ComNo), x => x.ComNo == parm.ComNo) + .AndIF(parm.IsOnetime.HasValue, x => x.IsOnetime == parm.IsOnetime.Value) + .AndIF(parm.IsBack.HasValue, x => x.IsBack == parm.IsBack.Value) + .AndIF(parm.IsPolish.HasValue, x => x.IsPolish == parm.IsPolish.Value) + .AndIF(parm.IsOut.HasValue, x => x.IsOut == parm.IsOut.Value) + .AndIF( + parm.StartTime.HasValue && parm.EndTime.HasValue, + x => x.StartTime >= parm.StartTime.Value && x.StartTime <= parm.EndTime.Value + ) + .And(x => x.Status == "1") + .ToExpression(); + var query = Context.Queryable().Where(predicate); + var result = query + .OrderByIF(parm.StatisticsOrderType == 1, it => it.WorkOrder) + .OrderByIF(parm.StatisticsOrderType == 2, it => it.PartNumber) + .OrderByIF(parm.StatisticsOrderType == 3, it => it.QualifiedRate, OrderByType.Desc) + .OrderByIF(parm.StatisticsOrderType == 4, it => it.StartTime) + .OrderBy(it => it.GroupCode) + .OrderBy(it => it.GroupSort) + .ToList(); + List defectList = Context.Queryable().ToList(); + var resultList = new List(); + foreach (var item in result) + { + var dto = new QcBackEndServiceStatisticsDto + { + Id = item.Id, + WorkOrder = item.WorkOrder, + PartNumber = item.PartNumber, + Description = item.Description, + Specification = item.Specification, + Color = item.Color, + Team = item.Team, + SiteNo = item.SiteNo, + ComNo = item.ComNo, + IsOnetime = item.IsOnetime, + IsBack = item.IsBack, + IsPolish = item.IsPolish, + IsOut = item.IsOut, + StartTime = item.StartTime, + EndTime = item.EndTime, + Label = item.Label, + RequireNumber = item.RequireNumber, + QualifiedNumber = item.QualifiedNumber, + QualifiedRate = item.QualifiedRate, + PolishNumber = item.PolishNumber, + DamoNumber = item.DamoNumber, + BaofeiNumber = item.BaofeiNumber, + GroupCode = item.GroupCode, + GroupSort = item.GroupSort, + GroupDefectJson = item.GroupDefectJson, + Type = item.Type, + Status = item.Status, + Remark = item.Remark, + CreatedBy = item.CreatedBy, + CreatedTime = item.CreatedTime, + UpdatedBy = item.UpdatedBy, + UpdatedTime = item.UpdatedTime + }; + // 解析 GroupDefectJson + if (!string.IsNullOrEmpty(item.GroupDefectJson)) + { + try + { + var defects = JsonConvert.DeserializeObject< + List + >(item.GroupDefectJson); + foreach (var defect in defects) + { + var baseDefect = defectList.FirstOrDefault(d => + d.Code == defect.DefectCode + ); + if (baseDefect != null) + { + // 取得第一个和最后一个字符 + string code = defect.DefectCode; + char firstChar = code[0]; + char lastChar = code[code.Length - 1]; + // 组合第一个和最后一个字符 + string propertyName = $"{firstChar}{lastChar}"; + dto.AddDynamicProperty(propertyName, defect.DefectNum); + } + } + } + catch (Exception ex) + { + Console.WriteLine($"Error parsing GroupDefectJson: {ex.Message}"); + } + } + resultList.Add(dto); + } + + return resultList; + } + } +} diff --git a/ZR.Service/mes/qc/backend/QcBackEndServiceWorkorderService.cs b/ZR.Service/mes/qc/backend/QcBackEndServiceWorkorderService.cs new file mode 100644 index 00000000..83f44ea6 --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackEndServiceWorkorderService.cs @@ -0,0 +1,102 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; +using ZR.Model.Business; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; +using System.Linq; + +namespace ZR.Service.Business +{ + /// + /// 质量BackEnd工单业务模块Service业务层处理 + /// + [AppService(ServiceType = typeof(IQcBackEndServiceWorkorderService), ServiceLifetime = LifeTime.Transient)] + public class QcBackEndServiceWorkorderService : BaseService, IQcBackEndServiceWorkorderService + { + /// + /// 查询质量BackEnd工单业务模块列表 + /// + /// + /// + public PagedInfo GetList(QcBackEndServiceWorkorderQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public QcBackEndServiceWorkorder GetInfo(string Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加质量BackEnd工单业务模块 + /// + /// + /// + public QcBackEndServiceWorkorder AddQcBackEndServiceWorkorder(QcBackEndServiceWorkorder model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量BackEnd工单业务模块 + /// + /// + /// + public int UpdateQcBackEndServiceWorkorder(QcBackEndServiceWorkorder model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackEndServiceWorkorder() + //{ + // WorkOrder = model.WorkOrder, + // PartNumber = model.PartNumber, + // Description = model.Description, + // Specification = model.Specification, + // Color = model.Color, + // Team = model.Team, + // SiteNo = model.SiteNo, + // ComNo = model.ComNo, + // IsOnetime = model.IsOnetime, + // IsBack = model.IsBack, + // IsPolish = model.IsPolish, + // IsOut = model.IsOut, + // StartTime = model.StartTime, + // EndTime = model.EndTime, + // Label = model.Label, + // RequireNumber = model.RequireNumber, + // QualifiedNumber = model.QualifiedNumber, + // DamoNumber = model.DamoNumber, + // BaofeiNumber = model.BaofeiNumber, + // Type = model.Type, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/qc/backend/QcBackendBaseOutpackageService.cs b/ZR.Service/mes/qc/backend/QcBackendBaseOutpackageService.cs new file mode 100644 index 00000000..1ac9da5a --- /dev/null +++ b/ZR.Service/mes/qc/backend/QcBackendBaseOutpackageService.cs @@ -0,0 +1,83 @@ +using System; +using System.Linq; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using SqlSugar; +using ZR.Model; +using ZR.Model.Business; +using ZR.Model.Dto; +using ZR.Repository; +using ZR.Service.Business.IBusinessService; + +namespace ZR.Service.Business +{ + /// + /// 质量后道外箱标签打印配置 + /// + [AppService( + ServiceType = typeof(IQcBackendBaseOutpackageService), + ServiceLifetime = LifeTime.Transient + )] + public class QcBackendBaseOutpackageService + : BaseService, + IQcBackendBaseOutpackageService + { + /// + /// 查询质量后道外箱标签打印配置 + /// + /// + /// + public PagedInfo GetList(QcBackendBaseOutpackageQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + /// + /// 获取详情 + /// + /// + /// + public QcBackendBaseOutpackage GetInfo(int Id) + { + var response = Queryable().Where(x => x.Id == Id).First(); + + return response; + } + + /// + /// 添加质量后道外箱标签打印配置 + + /// + /// + /// + public QcBackendBaseOutpackage AddQcBackendBaseOutpackage(QcBackendBaseOutpackage model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改质量后道外箱标签打印配置 + + /// + /// + /// + public int UpdateQcBackendBaseOutpackage(QcBackendBaseOutpackage model) + { + //var response = Update(w => w.Id == model.Id, it => new QcBackendBaseOutpackage() + //{ + // Name = model.Name, + // FileUrl = model.FileUrl, + // PackageNum = model.PackageNum, + // CheckStr = model.CheckStr, + //}); + //return response; + return Update(model, true); + } + } +} diff --git a/ZR.Service/mes/qc/QcGp12BaseDefectService.cs b/ZR.Service/mes/qc/gp12/QcGp12BaseDefectService.cs similarity index 100% rename from ZR.Service/mes/qc/QcGp12BaseDefectService.cs rename to ZR.Service/mes/qc/gp12/QcGp12BaseDefectService.cs diff --git a/ZR.Service/mes/qc/QcGp12BaseGroupService.cs b/ZR.Service/mes/qc/gp12/QcGp12BaseGroupService.cs similarity index 100% rename from ZR.Service/mes/qc/QcGp12BaseGroupService.cs rename to ZR.Service/mes/qc/gp12/QcGp12BaseGroupService.cs diff --git a/ZR.Service/mes/qc/QcGp12BaseLabelAnalysisService.cs b/ZR.Service/mes/qc/gp12/QcGp12BaseLabelAnalysisService.cs similarity index 100% rename from ZR.Service/mes/qc/QcGp12BaseLabelAnalysisService.cs rename to ZR.Service/mes/qc/gp12/QcGp12BaseLabelAnalysisService.cs diff --git a/ZR.Service/mes/qc/QcGp12BaseSiteService.cs b/ZR.Service/mes/qc/gp12/QcGp12BaseSiteService.cs similarity index 100% rename from ZR.Service/mes/qc/QcGp12BaseSiteService.cs rename to ZR.Service/mes/qc/gp12/QcGp12BaseSiteService.cs diff --git a/ZR.Service/mes/qc/QcGp12LogWorkorderService.cs b/ZR.Service/mes/qc/gp12/QcGp12LogWorkorderService.cs similarity index 100% rename from ZR.Service/mes/qc/QcGp12LogWorkorderService.cs rename to ZR.Service/mes/qc/gp12/QcGp12LogWorkorderService.cs diff --git a/ZR.Service/mes/qc/QcGp12RecordLabelScanService.cs b/ZR.Service/mes/qc/gp12/QcGp12RecordLabelScanService.cs similarity index 100% rename from ZR.Service/mes/qc/QcGp12RecordLabelScanService.cs rename to ZR.Service/mes/qc/gp12/QcGp12RecordLabelScanService.cs diff --git a/ZR.Service/mes/qc/QcGp12RecordWorkorderDefectService.cs b/ZR.Service/mes/qc/gp12/QcGp12RecordWorkorderDefectService.cs similarity index 100% rename from ZR.Service/mes/qc/QcGp12RecordWorkorderDefectService.cs rename to ZR.Service/mes/qc/gp12/QcGp12RecordWorkorderDefectService.cs diff --git a/ZR.Service/mes/qc/QcGp12Service.cs b/ZR.Service/mes/qc/gp12/QcGp12Service.cs similarity index 100% rename from ZR.Service/mes/qc/QcGp12Service.cs rename to ZR.Service/mes/qc/gp12/QcGp12Service.cs diff --git a/ZR.Service/mes/qc/QcGp12ServiceStatisticsService.cs b/ZR.Service/mes/qc/gp12/QcGp12ServiceStatisticsService.cs similarity index 100% rename from ZR.Service/mes/qc/QcGp12ServiceStatisticsService.cs rename to ZR.Service/mes/qc/gp12/QcGp12ServiceStatisticsService.cs diff --git a/ZR.Service/mes/qc/QcGp12ServiceWorkorderService.cs b/ZR.Service/mes/qc/gp12/QcGp12ServiceWorkorderService.cs similarity index 100% rename from ZR.Service/mes/qc/QcGp12ServiceWorkorderService.cs rename to ZR.Service/mes/qc/gp12/QcGp12ServiceWorkorderService.cs