From dac58ddb77b45a6879ba9548bbeca5ec00f00051 Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Fri, 22 Mar 2024 08:54:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93=E6=A8=A1=E5=9D=97=5F?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E8=B4=A7=E7=89=A9=E8=AE=B0=E5=BD=95:init?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/qc/FQC/QCStatisticsController.cs | 12 +- .../mes/wms/WmGoodsOutProductionController.cs | 111 +++++++++++ .../mes/wms/WmOutOrderController.cs | 31 +++ ZR.Admin.WebApi/appsettings.development.json | 8 +- .../ZrAdmin.NET-出库货物记录表-0322083827.zip | Bin 0 -> 9324 bytes .../MES/wms/Dto/ResultionPackageCodeDto.cs | 2 +- .../MES/wms/Dto/WmGoodsOutProductionDto.cs | 58 ++++++ ZR.Model/MES/wms/Dto/WmMaterialDto.cs | 35 +++- ZR.Model/MES/wms/Dto/WmOutOrderDto.cs | 4 +- ZR.Model/MES/wms/WmGoodsOutProduction.cs | 114 +++++++++++ ZR.Model/MES/wms/WmOutOrderPlan.cs | 86 ++++++++ ZR.Service/mes/qc/FirstFQCService.cs | 12 +- .../mes/qc/IService/IQCStatisticsService.cs | 2 + ZR.Service/mes/qc/QCStatisticsService.cs | 35 ++++ ZR.Service/mes/qc/QcinspectionItemService.cs | 2 - .../IService/IWmGoodsOutProductionService.cs | 24 +++ .../mes/wms/IService/IWmOutOrderService.cs | 5 + .../wms/WMentryWarehousing_productService.cs | 2 +- .../mes/wms/WmGoodsOutProductionService.cs | 92 +++++++++ ZR.Service/mes/wms/WmOutOrderService.cs | 185 ++++++++++++++++++ 20 files changed, 800 insertions(+), 20 deletions(-) create mode 100644 ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsOutProductionController.cs create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-出库货物记录表-0322083827.zip create mode 100644 ZR.Model/MES/wms/Dto/WmGoodsOutProductionDto.cs create mode 100644 ZR.Model/MES/wms/WmGoodsOutProduction.cs create mode 100644 ZR.Model/MES/wms/WmOutOrderPlan.cs create mode 100644 ZR.Service/mes/wms/IService/IWmGoodsOutProductionService.cs create mode 100644 ZR.Service/mes/wms/WmGoodsOutProductionService.cs diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/FQC/QCStatisticsController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/FQC/QCStatisticsController.cs index 704b502b..c28e2425 100644 --- a/ZR.Admin.WebApi/Controllers/mes/qc/FQC/QCStatisticsController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/qc/FQC/QCStatisticsController.cs @@ -4,9 +4,13 @@ using ZR.Admin.WebApi.Hubs; using ZR.Service.mes.qc.IService; using Microsoft.AspNetCore.Mvc; using ZR.Model.MES.qc; +using System.Collections.Generic; namespace ZR.Admin.WebApi.Controllers.mes.qc.FQC { + /// + /// 生成报表 + /// [Route("mes/qc/statistics")] public class QCStatisticsController : BaseController { @@ -64,8 +68,12 @@ namespace ZR.Admin.WebApi.Controllers.mes.qc.FQC } - - + [HttpGet("delete_statisticsTable")] + public IActionResult DeleteStatisticsTable(string workorderid) + { + int deletenum= qcStatistics.DeleteStatisticsTable(workorderid); + return SUCCESS(deletenum); + } } } diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsOutProductionController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsOutProductionController.cs new file mode 100644 index 00000000..0a366b0b --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsOutProductionController.cs @@ -0,0 +1,111 @@ +using Microsoft.AspNetCore.Mvc; + + +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; +using ZR.Service.mes.wms.IService; + +//创建时间:2024-03-22 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 出库货物记录表 + /// + [Verify] + [Route("/mes/wm/WmGoodsOutProduction")] + public class WmGoodsOutProductionController : BaseController + { + /// + /// 出库货物记录表接口 + /// + private readonly IWmGoodsOutProductionService _WmGoodsOutProductionService; + + public WmGoodsOutProductionController(IWmGoodsOutProductionService WmGoodsOutProductionService) + { + _WmGoodsOutProductionService = WmGoodsOutProductionService; + } + + /// + /// 查询出库货物记录表列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "business:wmgoodsoutproduction:list")] + public IActionResult QueryWmGoodsOutProduction([FromQuery] WmGoodsOutProductionQueryDto parm) + { + var response = _WmGoodsOutProductionService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询出库货物记录表详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "business:wmgoodsoutproduction:query")] + public IActionResult GetWmGoodsOutProduction(string Id) + { + var response = _WmGoodsOutProductionService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加出库货物记录表 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "business:wmgoodsoutproduction:add")] + [Log(Title = "出库货物记录表", BusinessType = BusinessType.INSERT)] + public IActionResult AddWmGoodsOutProduction([FromBody] WmGoodsOutProductionDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _WmGoodsOutProductionService.AddWmGoodsOutProduction(modal); + + return SUCCESS(response); + } + + /// + /// 更新出库货物记录表 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "business:wmgoodsoutproduction:edit")] + [Log(Title = "出库货物记录表", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateWmGoodsOutProduction([FromBody] WmGoodsOutProductionDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _WmGoodsOutProductionService.UpdateWmGoodsOutProduction(modal); + + return ToResponse(response); + } + + /// + /// 删除出库货物记录表 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:wmgoodsoutproduction:delete")] + [Log(Title = "出库货物记录表", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteWmGoodsOutProduction(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _WmGoodsOutProductionService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs index bbb11512..95c6631d 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs @@ -135,6 +135,37 @@ namespace ZR.Admin.WebApi.Controllers + /// + /// 生成出货单的物料信息 + /// + /// + [HttpGet("getoutorder_matrials")] + public IActionResult Queryoutoder_matrials(string shipment_num) + { + if (shipment_num == null) + { + return SUCCESS(null); + + } + List data = _WmOutOrderService.Queryoutoder_matrials(shipment_num); + return SUCCESS(data); + } + /// + /// 生成出货单的出货计划 + /// + /// + /// + [HttpGet("generate_outorderplan")] + public IActionResult Generate_outorderplan(string shipment_num) + { + if (shipment_num == null) + { + return SUCCESS(null); + } + List WmOutOrderPlanList= _WmOutOrderService.Generate_outorderplan(shipment_num); + + return SUCCESS(WmOutOrderPlanList); + } } diff --git a/ZR.Admin.WebApi/appsettings.development.json b/ZR.Admin.WebApi/appsettings.development.json index 820527f3..cb3bc60b 100644 --- a/ZR.Admin.WebApi/appsettings.development.json +++ b/ZR.Admin.WebApi/appsettings.development.json @@ -10,13 +10,13 @@ "dbConfigs": [ { - //外网连接服务器 - "Conn": "Data Source=localhost;User ID=root;Password=123456;Initial Catalog=ZrAdmin;", + //本地连接服务器 + // "Conn": "Data Source=localhost;User ID=root;Password=123456;Initial Catalog=ZrAdmin;", //外网连接服务器 //"Conn": "Data Source=47.116.122.230;Port=3307;User ID=root;Password=123456;Initial Catalog=ZrAdmin;", //内网连接服务器 - //"Conn": "Data Source=192.168.0.36;Port=3306;User ID=root;Password=123456;Initial Catalog=ZrAdmin;", + "Conn": "Data Source=192.168.0.36;Port=3306;User ID=root;Password=123456;Initial Catalog=ZrAdmin;", "Type": 0, //数据库类型 MySql = 0, SqlServer = 1, Oracle = 3,PgSql = 4, "ConfigId": "0", //多租户唯一标识 "IsAutoCloseConnection": true @@ -26,7 +26,7 @@ //代码生成数据库配置 "CodeGenDbConfig": { //代码生成连接字符串,注意{dbName}为固定格式,不要填写数据库名 - "Conn": "Data Source=127.0.0.1;Port=3306;User ID=root;Password=123456;Initial Catalog={dbName};", + "Conn": "Data Source=192.168.0.36;Port=3306;User ID=root;Password=123456;Initial Catalog={dbName};", "DbType": 0, "IsAutoCloseConnection": true, "DbName": "ZrAdmin" //代码生成默认连接数据库 diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-出库货物记录表-0322083827.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-出库货物记录表-0322083827.zip new file mode 100644 index 0000000000000000000000000000000000000000..5950f51e7bdb59417038376d0789b80b6ec6c721 GIT binary patch literal 9324 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 Mzd6$Kr2n}4UxatsssI20 literal 0 HcmV?d00001 diff --git a/ZR.Model/MES/wms/Dto/ResultionPackageCodeDto.cs b/ZR.Model/MES/wms/Dto/ResultionPackageCodeDto.cs index a59d0d8a..2c8d30de 100644 --- a/ZR.Model/MES/wms/Dto/ResultionPackageCodeDto.cs +++ b/ZR.Model/MES/wms/Dto/ResultionPackageCodeDto.cs @@ -13,7 +13,7 @@ namespace ZR.Model.MES.wms.Dto /// public string originalCode { get; set; } /// - /// 批次号 + /// 批次号(工单号+箱子号) /// public string PatchCode { get; set; } /// diff --git a/ZR.Model/MES/wms/Dto/WmGoodsOutProductionDto.cs b/ZR.Model/MES/wms/Dto/WmGoodsOutProductionDto.cs new file mode 100644 index 00000000..8094957d --- /dev/null +++ b/ZR.Model/MES/wms/Dto/WmGoodsOutProductionDto.cs @@ -0,0 +1,58 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.MES.wms.Dto +{ + /// + /// 出库货物记录表查询对象 + /// + public class WmGoodsOutProductionQueryDto : PagerInfo + { + } + + /// + /// 出库货物记录表输入输出对象 + /// + public class WmGoodsOutProductionDto + { + [Required(ErrorMessage = "雪花id不能为空")] + public string Id { get; set; } + + public string FkNowProductionId { get; set; } + + public string FkOutOrderId { get; set; } + + [Required(ErrorMessage = "箱子编号(MES)不能为空")] + public string PackageCode { get; set; } + + [Required(ErrorMessage = "箱子编号(客户)不能为空")] + public string PackageCodeClient { get; set; } + + public string PackageCodeOriginal { get; set; } + + [Required(ErrorMessage = "库位编号不能为空")] + public string LocationCode { get; set; } + + public string Partnumber { get; set; } + + public int? GoodsNumLogic { get; set; } + + public int? GoodsNumAction { get; set; } + + public DateTime? EntryWarehouseTime { get; set; } + + public DateTime? OutTime { get; set; } + + public string Remark { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/wms/Dto/WmMaterialDto.cs b/ZR.Model/MES/wms/Dto/WmMaterialDto.cs index 5dfe2ab2..3a8ba13a 100644 --- a/ZR.Model/MES/wms/Dto/WmMaterialDto.cs +++ b/ZR.Model/MES/wms/Dto/WmMaterialDto.cs @@ -52,7 +52,7 @@ namespace ZR.Model.MES.wms.Dto /// 带库存记录的物料库存表 /// public class WmMaterialQuery_stockQuantityDto : WmMaterialQueryDto - { + { /// /// 库存数量 /// @@ -61,9 +61,38 @@ namespace ZR.Model.MES.wms.Dto /// /// 需要出货数量 /// - public int requireOutNum { get; set; } + public int requireOutNum { get; set; } } + /// + /// 出货单中物料信息打印 + /// + public class WmMaterialQuery_print + { + + /// + /// 物料号 + /// + public string Partnumber { get; set; } + /// + /// 产品名称 + /// + public string ProductName { get; set; } + /// + /// 需求数量 + /// + public int RequireOutNum { get; set; } + + //现有箱数 + public int PackageNum { get; set; } + + //现有零件数 + public int ItemNum { get; set; } + + + } + + /// /// 带需要出货数量的物料库存表 @@ -85,7 +114,7 @@ namespace ZR.Model.MES.wms.Dto /// public class WmMaterialDto { - + public string Id { get; set; } public string Partnumber { get; set; } diff --git a/ZR.Model/MES/wms/Dto/WmOutOrderDto.cs b/ZR.Model/MES/wms/Dto/WmOutOrderDto.cs index 71c71885..ba220f43 100644 --- a/ZR.Model/MES/wms/Dto/WmOutOrderDto.cs +++ b/ZR.Model/MES/wms/Dto/WmOutOrderDto.cs @@ -66,6 +66,8 @@ namespace ZR.Model.MES.wms.Dto //带出货数量的物料表 public List MaterialList { get; set; } - } + + + } \ No newline at end of file diff --git a/ZR.Model/MES/wms/WmGoodsOutProduction.cs b/ZR.Model/MES/wms/WmGoodsOutProduction.cs new file mode 100644 index 00000000..8ce77552 --- /dev/null +++ b/ZR.Model/MES/wms/WmGoodsOutProduction.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace ZR.Model.MES.wms +{ + /// + /// 出库货物记录表 + /// + [SugarTable("wm_goods_out_production")] + public class WmGoodsOutProduction + { + /// + /// 雪花id + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = false)] + public string Id { get; set; } + + /// + /// 成品库当前货物表主键 + /// + [SugarColumn(ColumnName = "fk_now_production_id")] + public string FkNowProductionId { get; set; } + + /// + /// 出库单号 + /// + [SugarColumn(ColumnName = "fk_out_order_id")] + public string FkOutOrderId { get; set; } + + /// + /// 箱子编号(MES) + /// + [SugarColumn(ColumnName = "package_code")] + public string PackageCode { get; set; } + + /// + /// 箱子编号(客户) + /// + [SugarColumn(ColumnName = "package_code_client")] + public string PackageCodeClient { get; set; } + + /// + /// 箱子编号(原始码) + /// + [SugarColumn(ColumnName = "package_code_original")] + public string PackageCodeOriginal { get; set; } + + /// + /// 库位编号 + /// + [SugarColumn(ColumnName = "location_code")] + public string LocationCode { get; set; } + + /// + /// 零件号 + /// + public string Partnumber { get; set; } + + /// + /// 箱子中货物数量(理论) + /// + [SugarColumn(ColumnName = "goods_num_logic")] + public int? GoodsNumLogic { get; set; } + + /// + /// 箱子中货物数量(实际) + /// + [SugarColumn(ColumnName = "goods_num_action")] + public int? GoodsNumAction { get; set; } + + /// + /// 入库时间 + /// + [SugarColumn(ColumnName = "entry_warehouse_time")] + public DateTime? EntryWarehouseTime { get; set; } + + /// + /// 出库时间 + /// + [SugarColumn(ColumnName = "out_time")] + public DateTime? OutTime { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + + /// + /// 更新人 + /// + [SugarColumn(ColumnName = "uPDATED_BY")] + public string UpdatedBy { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "uPDATED_TIME")] + public DateTime? UpdatedTime { get; set; } + + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "cREATED_BY")] + public string CreatedBy { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "cREATED_TIME")] + public DateTime? CreatedTime { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/wms/WmOutOrderPlan.cs b/ZR.Model/MES/wms/WmOutOrderPlan.cs new file mode 100644 index 00000000..a82e0b7b --- /dev/null +++ b/ZR.Model/MES/wms/WmOutOrderPlan.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZR.Model.MES.wms +{ + /// + /// 出库计划 + /// + [SugarTable("wm_out_order_plan")] + public class WmOutOrderPlan + { + /// + /// id + /// + [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + /// + /// 出库单号 + /// + [SugarColumn(ColumnName = "fk_out_order_id")] + public string FkOutOrderId { get; set; } + /// + /// 批次号(工单号+箱号) + /// + [SugarColumn(ColumnName = "patchcode")] + public string Patchcode { get; set; } + /// + /// 物料号 + /// + [SugarColumn(ColumnName = "material_code")] + public string MaterialCode { get; set; } + /// + /// 所属仓库 + /// + [SugarColumn(ColumnName = "warehouse_code")] + public string WarehouseCode { get; set; } + /// + /// 批次箱数 + /// + [SugarColumn(ColumnName = "package_num")] + public int? PackageNum { get; set; } + /// + /// 批次零件数 + /// + [SugarColumn(ColumnName = "partnumber_num")] + public int? PartnumberNum { get; set; } + /// + /// 需求零件数 + /// + [SugarColumn(ColumnName = "require_num")] + public int? RequireNum { get; set; } + /// + /// 批次时间 + /// + [SugarColumn(ColumnName = "patchtime")] + public string Patchtime { get; set; } + /// + /// 出库顺序 + /// + [SugarColumn(ColumnName = "outorder")] + public int? Outorder { get; set; } + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "CREATED_BY")] + public string CreatedBy { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "CREATED_TIME")] + public DateTime? CreatedTime { get; set; } + /// + /// 更新人 + /// + [SugarColumn(ColumnName = "UPDATED_BY")] + public string UpdatedBy { get; set; } + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "UPDATED_TIME")] + public DateTime? UpdatedTime { get; set; } + } +} diff --git a/ZR.Service/mes/qc/FirstFQCService.cs b/ZR.Service/mes/qc/FirstFQCService.cs index 2a28a9d4..e08c5e29 100644 --- a/ZR.Service/mes/qc/FirstFQCService.cs +++ b/ZR.Service/mes/qc/FirstFQCService.cs @@ -1398,12 +1398,12 @@ namespace ZR.Service.mes.qc QcQualityStatisticsFirst first = new QcQualityStatisticsFirst(); first.Id = SnowFlakeSingle.Instance.NextId().ToString(); first.WorkorderId = workorderID; - ProWorkorder_v2 workorder= Context.Queryable().Where(it => it.Id == first.WorkorderId).First(); - first.Color = workorder?.Colour; + ProWorkorder_v2 workorder_item = Context.Queryable().Where(it => it.ClientWorkorder == workorderID).First(); if (workorder_item != null) { + first.Color = workorder_item?.Colour; first.FinishedPartNumber = workorder_item.FinishedPartNumber; first.ProductDescription = workorder_item.ProductDescription; first.RequireNumber = workorder_item.PreviousNumber; @@ -1615,13 +1615,12 @@ namespace ZR.Service.mes.qc QcQualityStatisticsFirst first2 = new QcQualityStatisticsFirst(); first2.Id = SnowFlakeSingle.Instance.NextId().ToString(); first2.WorkorderId = workorderID; - ProWorkorder_v2 workorder2 = Context.Queryable().Where(it => it.Id == first.WorkorderId).First(); - first2.Color = workorder2?.Colour; + ProWorkorder_v2 workorder_item2 = Context.Queryable().Where(it => it.ClientWorkorder == workorderID).First(); if (workorder_item2 != null) { - + first2.Color = workorder_item2?.Colour; first2.FinishedPartNumber = workorder_item2.FinishedPartNumber; first2.ProductDescription = workorder_item2.ProductDescription; first2.RequireNumber = workorder_item2.PreviousNumber; @@ -1839,12 +1838,13 @@ namespace ZR.Service.mes.qc first3.WorkorderId = workorderID; ProWorkorder_v2 workorder3 = Context.Queryable().Where(it => it.Id == first.WorkorderId).First(); - first3.Color = workorder3?.Colour; + ProWorkorder_v2 workorder_item3 = Context.Queryable().Where(it => it.ClientWorkorder == workorderID).First(); if (workorder_item3 != null) { + first3.Color = workorder_item3?.Colour; first3.FinishedPartNumber = workorder_item3.FinishedPartNumber; first3.ProductDescription = workorder_item3.ProductDescription; first3.RequireNumber = workorder_item3.PreviousNumber; diff --git a/ZR.Service/mes/qc/IService/IQCStatisticsService.cs b/ZR.Service/mes/qc/IService/IQCStatisticsService.cs index 34147448..70dc7d7f 100644 --- a/ZR.Service/mes/qc/IService/IQCStatisticsService.cs +++ b/ZR.Service/mes/qc/IService/IQCStatisticsService.cs @@ -22,5 +22,7 @@ namespace ZR.Service.mes.qc.IService //获取 总检 (List,int) GetQualityStatisticsTable_total(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize); #endregion + + public int DeleteStatisticsTable(string workorderid); } } diff --git a/ZR.Service/mes/qc/QCStatisticsService.cs b/ZR.Service/mes/qc/QCStatisticsService.cs index 2dfb866e..d962972f 100644 --- a/ZR.Service/mes/qc/QCStatisticsService.cs +++ b/ZR.Service/mes/qc/QCStatisticsService.cs @@ -13,9 +13,19 @@ using ZR.Service.mes.qc.IService; namespace ZR.Service.mes.qc { + /// + /// 查询报表 + /// [AppService(ServiceType = typeof(IQCStatisticsService), ServiceLifetime = LifeTime.Transient)] public class QCStatisticsService : BaseService, IQCStatisticsService { + + + + + + + /// /// 获取质量统计表 首检 /// @@ -153,5 +163,30 @@ namespace ZR.Service.mes.qc return (data, totalNum); } + + /// + /// 删除首检,二检,三检报表 + /// + /// + /// + public int DeleteStatisticsTable(string workorderid) + { + int num = 0; + num = num + Context.Deleteable() + .Where(it => it.WorkorderId == workorderid).ExecuteCommand(); + + + num = num + Context.Deleteable().Where(it => it.WorkorderId == workorderid).ExecuteCommand(); + + + num = num + Context.Deleteable().Where(it => it.WorkorderId == workorderid).ExecuteCommand(); + + + num = num + Context.Deleteable().Where(it => it.WorkorderId == workorderid).ExecuteCommand(); + + + return num; + + } } } diff --git a/ZR.Service/mes/qc/QcinspectionItemService.cs b/ZR.Service/mes/qc/QcinspectionItemService.cs index c4bf573f..638dc6ae 100644 --- a/ZR.Service/mes/qc/QcinspectionItemService.cs +++ b/ZR.Service/mes/qc/QcinspectionItemService.cs @@ -32,8 +32,6 @@ namespace ZR.Service.mes.qc .AndIF(!string.IsNullOrEmpty(inspectionType), it => it.InspectionType == inspectionType) .ToExpression(); - - return Queryable().Where(predicate).OrderBy(x => x.Order).ToList(); } } diff --git a/ZR.Service/mes/wms/IService/IWmGoodsOutProductionService.cs b/ZR.Service/mes/wms/IService/IWmGoodsOutProductionService.cs new file mode 100644 index 00000000..7b119d3a --- /dev/null +++ b/ZR.Service/mes/wms/IService/IWmGoodsOutProductionService.cs @@ -0,0 +1,24 @@ +using System; +using ZR.Model; +using ZR.Model.Dto; +using System.Collections.Generic; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; + +namespace ZR.Service.mes.wms.IService +{ + /// + /// 出库货物记录表service接口 + /// + public interface IWmGoodsOutProductionService : IBaseService + { + PagedInfo GetList(WmGoodsOutProductionQueryDto parm); + + WmGoodsOutProduction GetInfo(string Id); + + WmGoodsOutProduction AddWmGoodsOutProduction(WmGoodsOutProduction parm); + + int UpdateWmGoodsOutProduction(WmGoodsOutProduction parm); + + } +} diff --git a/ZR.Service/mes/wms/IService/IWmOutOrderService.cs b/ZR.Service/mes/wms/IService/IWmOutOrderService.cs index e7e2c98e..fe5045fb 100644 --- a/ZR.Service/mes/wms/IService/IWmOutOrderService.cs +++ b/ZR.Service/mes/wms/IService/IWmOutOrderService.cs @@ -26,5 +26,10 @@ namespace ZR.Service.mes.wms.IService (List, int) GetmaterialList(WmMaterialQueryDto parm); + + List Queryoutoder_matrials(string shipment_num); + + List Generate_outorderplan(string shipment_num); + } } diff --git a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs index 9cfc528f..74427e2d 100644 --- a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs +++ b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs @@ -215,7 +215,7 @@ namespace ZR.Service.mes.wms //todo 解析工单号 string workoderidid = splitstr[2].Substring(7); resultionPackageCode.WorkoderID = workoderidid; - //todo 生产描述 + //todo 生产时间 resultionPackageCode.ProductionTime="20"+ workoderidid.Substring(0,6); //todo 解析箱子中产品数量 string product_num = splitstr[3].Substring(4); diff --git a/ZR.Service/mes/wms/WmGoodsOutProductionService.cs b/ZR.Service/mes/wms/WmGoodsOutProductionService.cs new file mode 100644 index 00000000..d062e0ee --- /dev/null +++ b/ZR.Service/mes/wms/WmGoodsOutProductionService.cs @@ -0,0 +1,92 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using ZR.Model; +using ZR.Model.Dto; + +using ZR.Repository; +using System.Linq; +using ZR.Service.mes.wms.IService; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; + +namespace ZR.Service.Business +{ + /// + /// 出库货物记录表Service业务层处理 + /// + [AppService(ServiceType = typeof(IWmGoodsOutProductionService), ServiceLifetime = LifeTime.Transient)] + public class WmGoodsOutProductionService : BaseService, IWmGoodsOutProductionService + { + /// + /// 查询出库货物记录表列表 + /// + /// + /// + public PagedInfo GetList(WmGoodsOutProductionQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public WmGoodsOutProduction GetInfo(string Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加出库货物记录表 + /// + /// + /// + public WmGoodsOutProduction AddWmGoodsOutProduction(WmGoodsOutProduction model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改出库货物记录表 + /// + /// + /// + public int UpdateWmGoodsOutProduction(WmGoodsOutProduction model) + { + //var response = Update(w => w.Id == model.Id, it => new WmGoodsOutProduction() + //{ + // PackageCode = model.PackageCode, + // PackageCodeClient = model.PackageCodeClient, + // PackageCodeOriginal = model.PackageCodeOriginal, + // LocationCode = model.LocationCode, + // Partnumber = model.Partnumber, + // GoodsNumLogic = model.GoodsNumLogic, + // GoodsNumAction = model.GoodsNumAction, + // EntryWarehouseTime = model.EntryWarehouseTime, + // OutTime = model.OutTime, + // Remark = model.Remark, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/wms/WmOutOrderService.cs b/ZR.Service/mes/wms/WmOutOrderService.cs index 92d9850a..c59db9fe 100644 --- a/ZR.Service/mes/wms/WmOutOrderService.cs +++ b/ZR.Service/mes/wms/WmOutOrderService.cs @@ -8,6 +8,8 @@ using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; using Mapster; using System.Collections.Generic; +using System.Data; +using JinianNet.JNTemplate.Dynamic; namespace ZR.Service.mes.wms { @@ -220,5 +222,188 @@ namespace ZR.Service.mes.wms return (material_stockQuantity_list, total); } + + + + /// + /// 查询出货单的物料信息 + /// + /// + /// + public List Queryoutoder_matrials(string shipment_num) + { + + List stockList = Context.Queryable() + .LeftJoin((mo, m) => mo.FkMaterialId == m.Id) + .Where(mo => mo.FkOutorderId == shipment_num) + .Select((mo, m) => new WmMaterialQuery_print() + { + //物料号 + Partnumber = m.Partnumber, + // 描述 + ProductName = m.ProductName, + //需求零件数 + RequireOutNum = mo.OuthouseNum + + + }).ToList(); + if (stockList != null && stockList.Count > 0) + { + foreach (var stock in stockList) + { + //现有箱数 + stock.PackageNum = Context.Queryable().Where(it => it.Partnumber == shipment_num).Count(); + + //现有零件数 + int? num = Context.Queryable().Where(it => it.Partnumber == shipment_num).Sum(it => it.GoodsNumLogic); + stock.PackageNum = num ?? 0; + } + } + + + + return stockList; + + + + } + + /// + /// 生成出货单的出货计划 + /// + /// 出货单号 + /// + public List Generate_outorderplan(string shipment_num) + { + + List wmOutOrderPlans = new List(); + // 获取当前出货单下的物料信息 + List materialQuery_Prints = this.Queryoutoder_matrials(shipment_num); + if (materialQuery_Prints != null && materialQuery_Prints.Count > 0) + { + foreach (var material in materialQuery_Prints) + { + //todo 判断要出多少货 按照最早工单和批次号 进行出货(重要算法) + //1. 这个物料要出多少货 + int require_num = material.RequireOutNum; + + // 物料号 + string partnumber = material.Partnumber; + + + /*此物料下的最早列表 + List wmGoodsNows = Context.Queryable().Where(it => it.Partnumber == partnumber) + .OrderByDescending(it => it.EntryWarehouseTime).ToList(); + if (wmGoodsNows != null && wmGoodsNows.Count > 0) + { + + foreach (var witem in wmGoodsNows) + { + if (require_num >= witem.GoodsNumLogic) + { // 取出同一批次下列表 + string patchcode = witem.PackageCodeClient.Split("_")[0]; + List Samebatch_wmGoodsNows = Context.Queryable() + .Where(it => it.Partnumber == partnumber) + .Where(it => it.PackageCodeClient.StartsWith(patchcode)).ToList(); + 出货计划 + WmOutOrderPlan orderPlan = new WmOutOrderPlan(); + + orderPlan.FkOutOrderId = shipment_num; + + orderPlan.Patchcode = witem.PackageCodeClient; + orderPlan.MaterialCode = witem.Partnumber; + orderPlan.WarehouseCode = witem.LocationCode; + orderPlan.PackageNum = 1; + orderPlan.RequireNum = require_num; + orderPlan.Patchtime = Resolution_bath(witem.PackageCodeClient); + + + + wmOutOrderPlans.Add(orderPlan); + + + + } + else + { + 一个箱子就可以做一个出货计划 + WmOutOrderPlan orderPlan = new WmOutOrderPlan(); + + orderPlan.FkOutOrderId = shipment_num; + + orderPlan.Patchcode = witem.PackageCodeClient; + orderPlan.MaterialCode = witem.Partnumber; + orderPlan.WarehouseCode = witem.LocationCode; + orderPlan.PackageNum = 1; + orderPlan.RequireNum = require_num; + orderPlan.Patchtime = Resolution_bath(witem.PackageCodeClient); + + + + } + + } + }*/ + + List wmGoodsNowsList = Context.Queryable().Where(it => it.Partnumber == partnumber) + .OrderByDescending(it => it.PackageCodeClient).ToList(); + foreach(var witem in wmGoodsNowsList) + { + int accumulation_num = 0; + if (require_num>= accumulation_num) + { + WmOutOrderPlan orderPlan = new WmOutOrderPlan(); + orderPlan.FkOutOrderId = shipment_num; + + orderPlan.Patchcode = witem.PackageCodeClient; + orderPlan.MaterialCode = witem.Partnumber; + orderPlan.WarehouseCode = witem.LocationCode; + orderPlan.PackageNum =int.Parse( witem.PackageCodeClient.Split("_")[1] ); + orderPlan.RequireNum = require_num; + orderPlan.Patchtime = Resolution_bath(witem.PackageCodeClient); + wmOutOrderPlans.Add(orderPlan); + + accumulation_num = accumulation_num+ witem.GoodsNumLogic??0; + + } + else + { //超了 + break; + } + } + + + + + + } + + + + } + foreach (var witem in wmOutOrderPlans) + { + witem.Outorder = wmOutOrderPlans.IndexOf(witem); + } + + + return wmOutOrderPlans; + + } + + /// + /// 传入批次号 解析出时间 BNW240318007_105 + /// + /// + /// + private string Resolution_bath(string bath_code) + { + if (string.IsNullOrEmpty(bath_code)) + { + return ""; + } + string temp = bath_code.Split("_")[0]; + return "20" + temp.Substring(2, 6); + } } } \ No newline at end of file