From 3ab1ba3064bd319c0788a5c82cdc203cca34318b Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Wed, 13 Mar 2024 17:30:57 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=A8=A1=E5=9D=97init?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WMentryWarehousing_productController.cs | 92 ++++++++++++++- .../mes/wms/WMlocationInfoController.cs | 19 ++- ZR.Model/MES/wms/Dto/WmgoodsDto.cs | 23 ++++ ZR.Model/MES/wms/WmGoodsNowProduction.cs | 69 +++++++++++ ZR.Model/MES/wms/WmPackingrecord.cs | 76 ++++++++++++ .../mes/wms/IService/IWMWarehousingService.cs | 13 ++ .../wms/IService/IWMlocationInfoService.cs | 4 +- .../wms/WMentryWarehousing_productService.cs | 111 ++++++++++++++++++ ZR.Service/mes/wms/WMlocationInfoService.cs | 12 ++ 9 files changed, 411 insertions(+), 8 deletions(-) create mode 100644 ZR.Model/MES/wms/Dto/WmgoodsDto.cs create mode 100644 ZR.Model/MES/wms/WmGoodsNowProduction.cs create mode 100644 ZR.Model/MES/wms/WmPackingrecord.cs diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs index 9ab4a6c8..d294c392 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs @@ -1,10 +1,15 @@ using Infrastructure.Extensions; using JinianNet.JNTemplate; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.IdentityModel.Tokens; +using ZR.Admin.WebApi.Extensions; +using ZR.Model.Dto; using ZR.Model.MES.qu; using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; using ZR.Service.mes.wms.IService; +using static System.Runtime.InteropServices.JavaScript.JSType; namespace ZR.Admin.WebApi.Controllers.mes.wms { @@ -18,7 +23,7 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms private readonly IWMentryWarehousing_productService wm_entryWarehousing_productService; public WMentryWarehousing_productController(IWMentryWarehousing_productService wm_entryWarehousing_productService) { - this.wm_entryWarehousing_productService = wm_entryWarehousing_productService; + this.wm_entryWarehousing_productService = wm_entryWarehousing_productService; } /// @@ -28,7 +33,11 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms [HttpGet("is_production_location")] public IActionResult IsProductionLocation(string production_location_code = "") { + if(string.IsNullOrEmpty(production_location_code)) + { + return ToResponse(new ApiResult(200, "传入为空", false)); + } // 查询 wm_info 表,根据库位码,查询在表中是否存在,true false bool state = this.wm_entryWarehousing_productService.IsProductionLoacation(production_location_code); @@ -42,7 +51,24 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms [HttpGet("is_production_package")] public IActionResult IsProductionPackage(string package_code = "") { - return ToResponse(new ApiResult(200, "success", true)); + if (string.IsNullOrEmpty(package_code)) + { + return ToResponse(new ApiResult(200, "传入为空", false)); + + } + int state = this.wm_entryWarehousing_productService.isProductionPackage(package_code); + string msg = null; + if (state == 0) + msg = "外箱标签码不存在"; + else if (state == 1) + msg = "success"; + + else if (state == 2) + msg = "误扫码,不是外箱标签码"; + + + return ToResponse(new ApiResult(200, msg, state)); + } /// @@ -52,8 +78,66 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms [HttpGet("is_full_package")] public IActionResult IsFullPackage(string package_code = "") { - return ToResponse(new ApiResult(200, "success", true)); + + if (string.IsNullOrEmpty(package_code)) + { + return ToResponse(new ApiResult(200, "传入为空", false)); + + } + bool state = this.wm_entryWarehousing_productService.isFullPackage(package_code); + string msg = state ? "满箱" : "不满箱"; + + return ToResponse(new ApiResult(200, msg, true)); + } + /// + /// 4.入库 + /// + /// + /// + [HttpPost("into_product_warehouse")] + public IActionResult IntoProductwarehouse([FromBody] WmgoodsDto wmgoodsDto) + { + if(wmgoodsDto == null) + { + return ToResponse(new ApiResult(200, "传入为空", false)); + } + string msg = ""; + bool data = false; + string createName=HttpContext.GetName(); + + int status=this.wm_entryWarehousing_productService.IntoProductwarehouse(wmgoodsDto, createName); + if(status == 0) + { + msg = "数据插入异常"; + data = false; + + } + else if(status == 1) + { + msg = "success"; + data = true; + + } + return ToResponse(new ApiResult(200, msg, data)); + } + /// + /// 获取库位已经存在箱子 + /// + /// + /// + [HttpGet("packagelist")] + public IActionResult Getpackagelist(string locationcode) + { + if(string.IsNullOrEmpty(locationcode)) + { + return ToResponse(new ApiResult(200, "传入为空", false)); + } + string msg = null; + + List productionList= this.wm_entryWarehousing_productService.Getpackagelist(locationcode); + + return ToResponse(new ApiResult(200, msg, productionList)); } } - + } diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WMlocationInfoController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WMlocationInfoController.cs index 73062a85..f1bab376 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WMlocationInfoController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WMlocationInfoController.cs @@ -5,6 +5,7 @@ using Microsoft.IdentityModel.Tokens; using ZR.Model.MES.qu; using ZR.Model.MES.wms; using ZR.Service.mes.wms.IService; +using static System.Runtime.InteropServices.JavaScript.JSType; namespace ZR.Admin.WebApi.Controllers.mes.wms { @@ -13,7 +14,7 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms public class WMlocationInfoController : BaseController { - private readonly IWMlocationInfoService wm_locationInfoService; + private readonly IWMlocationInfoService wm_locationInfoService; public WMlocationInfoController(IWMlocationInfoService wm_locationInfoService) { this.wm_locationInfoService = wm_locationInfoService; @@ -25,11 +26,25 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms /// /// [HttpGet("production_warehouse_info")] - public IActionResult Queryproduction_warehouse_info(string shelf = "", int layer = 0,int pageNum=0,int pageSize=0) + public IActionResult Queryproduction_warehouse_info(string shelf = "", int layer = 0, int pageNum = 0, int pageSize = 0) { (List, int) data = wm_locationInfoService.Getwminfo_product(shelf, layer, pageNum, pageSize); return ToResponse(new ApiResult(200, "success", data)); } + + /// + /// 获取库位信息 + /// + [HttpGet("get_location_info")] + public IActionResult Querylocationinfo(int warehouse_num, string locationcode = "") + { + + WmInfo wmInfo= wm_locationInfoService.Getlocationinfo(warehouse_num, locationcode); + return ToResponse(new ApiResult(200, "success", wmInfo)); + + + + } } } diff --git a/ZR.Model/MES/wms/Dto/WmgoodsDto.cs b/ZR.Model/MES/wms/Dto/WmgoodsDto.cs new file mode 100644 index 00000000..1d46812d --- /dev/null +++ b/ZR.Model/MES/wms/Dto/WmgoodsDto.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZR.Model.MES.wms.Dto +{ + /// + /// 待入库货物 + /// + public class WmgoodsDto + { + /// + /// 货架 + /// + public string location { set; get; } + /// + /// 箱子列表 + /// + public string[] packagelist { set; get; } + } +} diff --git a/ZR.Model/MES/wms/WmGoodsNowProduction.cs b/ZR.Model/MES/wms/WmGoodsNowProduction.cs new file mode 100644 index 00000000..39421fcc --- /dev/null +++ b/ZR.Model/MES/wms/WmGoodsNowProduction.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace ZR.Model.MES.wms +{ + /// + /// 成品库当前货物表 + /// + [SugarTable("wm_goods_now_production")] + public class WmGoodsNowProduction + { + /// + /// 雪花id + /// + [SugarColumn(ColumnName = "id", IsPrimaryKey = true)] + public string Id { get; set; } + /// + /// 箱子编号 + /// + [SugarColumn(ColumnName = "package_code")] + public string PackageCode { get; set; } + /// + /// 库位编号 + /// + [SugarColumn(ColumnName = "location_code")] + public string LocationCode { 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 = "remark")] + 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; } + } +} diff --git a/ZR.Model/MES/wms/WmPackingrecord.cs b/ZR.Model/MES/wms/WmPackingrecord.cs new file mode 100644 index 00000000..fa3bc5b4 --- /dev/null +++ b/ZR.Model/MES/wms/WmPackingrecord.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace ZR.Model.MES.wms +{ + /// + /// 包装记录 + /// + [SugarTable("wm_packingrecord")] + public class WmPackingrecord + { + /// + /// + /// + [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + /// + /// 零件号 + /// + [SugarColumn(ColumnName = "PartNum")] + public string PartNum { get; set; } + /// + /// 设备名称(ID) + /// + [SugarColumn(ColumnName = "Machine")] + public string Machine { get; set; } + /// + /// 产品条码 + /// + [SugarColumn(ColumnName = "ProductCode")] + public string ProductCode { get; set; } + /// + /// 箱条码 + /// + [SugarColumn(ColumnName = "PackingCode")] + public string PackingCode { get; set; } + /// + /// 扫码记录 + /// + [SugarColumn(ColumnName = "ScannerContent")] + public string ScannerContent { get; set; } + /// + /// 工单号 + /// + [SugarColumn(ColumnName = "WorkOrderNum")] + public string WorkOrderNum { get; set; } + /// + /// 备用3 + /// + [SugarColumn(ColumnName = "Standby3")] + public string Standby3 { get; set; } + /// + /// 备用4 + /// + [SugarColumn(ColumnName = "Standby4")] + public string Standby4 { get; set; } + /// + /// 备用5 + /// + [SugarColumn(ColumnName = "Standby5")] + public string Standby5 { get; set; } + /// + /// 指示是否满箱 + /// 默认值: b'0' + /// + [SugarColumn(ColumnName = "BFilled")] + public bool BFilled { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "CreateTime")] + public DateTime? CreateTime { get; set; } + } +} diff --git a/ZR.Service/mes/wms/IService/IWMWarehousingService.cs b/ZR.Service/mes/wms/IService/IWMWarehousingService.cs index 8bef042d..62584d02 100644 --- a/ZR.Service/mes/wms/IService/IWMWarehousingService.cs +++ b/ZR.Service/mes/wms/IService/IWMWarehousingService.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading.Tasks; using ZR.Model.MES.qc.DTO; using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; namespace ZR.Service.mes.wms.IService { @@ -16,6 +17,18 @@ namespace ZR.Service.mes.wms.IService // 获取库位列表 public bool IsProductionLoacation(string production_location_code); + // 判断是否为成品箱子码 + public int isProductionPackage(string production_packcode); + + //判断箱子是否满 + public bool isFullPackage(string production_packcode); + + // 货物入库 + public int IntoProductwarehouse(WmgoodsDto wmgoods, string createName); + + //获取库位已经存在的货物 + public List Getpackagelist(string location); + } diff --git a/ZR.Service/mes/wms/IService/IWMlocationInfoService.cs b/ZR.Service/mes/wms/IService/IWMlocationInfoService.cs index 1fa833d3..c6a7ae14 100644 --- a/ZR.Service/mes/wms/IService/IWMlocationInfoService.cs +++ b/ZR.Service/mes/wms/IService/IWMlocationInfoService.cs @@ -15,7 +15,7 @@ namespace ZR.Service.mes.wms.IService // 获取成品库信息 public (List,int) Getwminfo_product(string shelf , int layer, int pageNum , int pageSize); - - + // 获取库位信息 + public WmInfo Getlocationinfo(int warehouse_num, string locationcode); } } diff --git a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs index 3ab1952d..baa1f2cb 100644 --- a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs +++ b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs @@ -6,9 +6,11 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using ZR.Model.MES.qu; using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; using ZR.Service.mes.qc.IService; using ZR.Service.mes.wms.IService; @@ -17,6 +19,85 @@ namespace ZR.Service.mes.wms [AppService(ServiceType = typeof(IWMentryWarehousing_productService), ServiceLifetime = LifeTime.Transient)] public class WMentryWarehousing_productService : BaseService, IWMentryWarehousing_productService { + //货物入库 + public int IntoProductwarehouse(WmgoodsDto wmgoods, string createName) + { + List preparegoodsList = new List(); + if (wmgoods.packagelist != null && wmgoods.packagelist.Count() > 0) + { + for (int i = 0; i < wmgoods.packagelist.Count(); i++) + { + WmGoodsNowProduction wmGood = new WmGoodsNowProduction(); + wmGood.Id = SnowFlakeSingle.Instance.NextId().ToString(); + + + wmGood.PackageCode = Getpack_no(wmgoods.packagelist[i]); + wmGood.LocationCode = wmgoods.location; + + string workorder_id = wmgoods.packagelist[i].Substring(3, 9); + + + wmGood.GoodsNumLogic = Context.Queryable() + .Where(it => it.WorkOrderNum == workorder_id) + .Count(); + + wmGood.EntryWarehouseTime = DateTime.Now; + wmGood.CreatedBy = createName; + wmGood.CreatedTime = DateTime.Now; + + + preparegoodsList.Add(wmGood); + + + } + + } + + int result = Context.Insertable(preparegoodsList).ExecuteCommand(); + return result; + } + + //判断箱子是否满 + public bool isFullPackage(string production_packcode) + { + string workorder_id = production_packcode.Substring(3, 9); + string flow_id = production_packcode.Substring(13, 3); + bool isExist = Context.Queryable() + .Where(it => it.WorkOrderNum == workorder_id) + .Where(it => it.PackingCode.EndsWith(flow_id)) + .Where(it => it.BFilled == true).Any(); + return isExist; + } + + /// + /// 判断是否为成品箱子码 + /// + /// + /// + public int isProductionPackage(string production_packcode) + { + Regex r = new Regex("BNW_\\d{9}_\\d{3}"); + //todo 不是箱子 + if (!r.IsMatch(production_packcode)) + { + return 2; + } + string workorder_id = production_packcode.Substring(3, 9); + string flow_id = production_packcode.Substring(13, 3); + bool isExist = Context.Queryable() + .Where(it => it.WorkOrderNum == workorder_id) + .Where(it => it.PackingCode.EndsWith(flow_id)) + .Any(); + if (!isExist) + { + return 0; + } + + + return 1; + + } + bool IWMentryWarehousing_productService.IsProductionLoacation(string production_location_code) { @@ -24,5 +105,35 @@ namespace ZR.Service.mes.wms .Where(it => it.Location.Equals(production_location_code)).Any(); } + /// + /// 获取箱子唯一识别号 + /// + /// + /// + private string Getpack_no(string production_packcode) + { + string workorder_id = production_packcode.Substring(3, 9); + string flow_id = production_packcode.Substring(13, 3); + + WmPackingrecord record = Context.Queryable() + .Where(it => it.WorkOrderNum == workorder_id) + .Where(it => it.PackingCode.EndsWith(flow_id)) + .First(); + + + if (record == null) + { + return null; + } + + return record.ProductCode; + } + + //获取库位已经存在的货物 + public List Getpackagelist(string location) + { + return Context.Queryable().Where(it=>it.LocationCode==location).ToList(); + + } } } diff --git a/ZR.Service/mes/wms/WMlocationInfoService.cs b/ZR.Service/mes/wms/WMlocationInfoService.cs index 9480305f..fa759a8b 100644 --- a/ZR.Service/mes/wms/WMlocationInfoService.cs +++ b/ZR.Service/mes/wms/WMlocationInfoService.cs @@ -16,6 +16,18 @@ namespace ZR.Service.mes.wms [AppService(ServiceType = typeof(IWMlocationInfoService), ServiceLifetime = LifeTime.Transient)] public class WMlocationInfoService : BaseService, IWMlocationInfoService { + /// + /// 查询库位信息 + /// + /// + /// + /// + /// + public WmInfo Getlocationinfo(int warehouse_num, string locationcode) + { + return Context.Queryable().Where(it=>it.WarehouseNum== warehouse_num && it.Location==locationcode).First(); + } + /// /// 获取成品库库位信息 /// From 46cca98136c61d544d7e1ab44f771c3f9ed80ed5 Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Thu, 14 Mar 2024 08:18:42 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/WMentryWarehousing_productService.cs | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs index baa1f2cb..26122623 100644 --- a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs +++ b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs @@ -76,14 +76,31 @@ namespace ZR.Service.mes.wms /// public int isProductionPackage(string production_packcode) { - Regex r = new Regex("BNW_\\d{9}_\\d{3}"); + Regex r = new Regex("CodeBNW\\d{9}_\\d{0,3}"); + Regex r1 = new Regex("Code=BNW\\d{9}_\\d{0,3}"); + + //todo 不是箱子 - if (!r.IsMatch(production_packcode)) + if (!r.IsMatch(production_packcode)& !r1.IsMatch(production_packcode)) { return 2; + } + // 匹配 CodeBNW\\d{9}_\\d{0,3} + + if (r.IsMatch(production_packcode)) + { + string workorder_id = production_packcode.Substring(3, 9); + string flow_id = production_packcode.Substring(13, 3).ToString("000"); + + } + + if (r1.IsMatch(production_packcode)) + { + + } string workorder_id = production_packcode.Substring(3, 9); - string flow_id = production_packcode.Substring(13, 3); + string flow_id = production_packcode.Substring(13, 3).ToString("000"); bool isExist = Context.Queryable() .Where(it => it.WorkOrderNum == workorder_id) .Where(it => it.PackingCode.EndsWith(flow_id)) From 9b9aedfa37ff3c98a026c277aa09e4431155a44d Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Thu, 14 Mar 2024 13:43:09 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Admin.WebApi/appsettings.development.json | 4 ++-- ZR.Service/mes/wms/WMentryWarehousing_productService.cs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ZR.Admin.WebApi/appsettings.development.json b/ZR.Admin.WebApi/appsettings.development.json index 427f6649..19cf5430 100644 --- a/ZR.Admin.WebApi/appsettings.development.json +++ b/ZR.Admin.WebApi/appsettings.development.json @@ -11,9 +11,9 @@ { //外网连接服务器 - //"Conn": "Data Source=47.116.122.230;Port=3307;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 diff --git a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs index 26122623..dd9482fb 100644 --- a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs +++ b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs @@ -89,8 +89,8 @@ namespace ZR.Service.mes.wms if (r.IsMatch(production_packcode)) { - string workorder_id = production_packcode.Substring(3, 9); - string flow_id = production_packcode.Substring(13, 3).ToString("000"); + //string workorder_id = production_packcode.Substring(3, 9); + //string flow_id = production_packcode.Substring(13, 3).ToString("000"); } @@ -100,7 +100,7 @@ namespace ZR.Service.mes.wms } string workorder_id = production_packcode.Substring(3, 9); - string flow_id = production_packcode.Substring(13, 3).ToString("000"); + string flow_id = production_packcode.Substring(13, 3); bool isExist = Context.Queryable() .Where(it => it.WorkOrderNum == workorder_id) .Where(it => it.PackingCode.EndsWith(flow_id)) From 2099805a6b7190ddfbdedbea7ca0aaccdfa458ca Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Fri, 15 Mar 2024 17:55:50 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WMentryWarehousing_productController.cs | 85 +++++- ZR.Admin.WebApi/ZR.Admin.WebApi.csproj | 2 - ZR.Admin.WebApi/appsettings.development.json | 7 +- ZR.Admin.WebApi/appsettings.production.json | 2 +- ZR.Common/ZR.Common.csproj | 2 + .../MES/wms/Dto/ResultionPackageCodeDto.cs | 46 ++++ ZR.Model/MES/wms/Dto/WmgoodsDto.cs | 2 +- ZR.Model/MES/wms/WmGoodsNowProduction.cs | 15 +- .../mes/wms/IService/IWMWarehousingService.cs | 6 + .../wms/WMentryWarehousing_productService.cs | 258 +++++++++++++----- ZR.Tasks/ZR.Tasks.csproj | 1 - 11 files changed, 331 insertions(+), 95 deletions(-) create mode 100644 ZR.Model/MES/wms/Dto/ResultionPackageCodeDto.cs diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs index d294c392..6047f6ea 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs @@ -31,9 +31,10 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms /// /// [HttpGet("is_production_location")] + [Log(Title = "判断是否为库位码")] public IActionResult IsProductionLocation(string production_location_code = "") { - if(string.IsNullOrEmpty(production_location_code)) + if (string.IsNullOrEmpty(production_location_code)) { return ToResponse(new ApiResult(200, "传入为空", false)); @@ -49,6 +50,7 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms /// /// [HttpGet("is_production_package")] + [Log(Title = "判断是否为成品库箱子码")] public IActionResult IsProductionPackage(string package_code = "") { if (string.IsNullOrEmpty(package_code)) @@ -76,6 +78,7 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms /// /// [HttpGet("is_full_package")] + [Log(Title = "判断是否为满箱")] public IActionResult IsFullPackage(string package_code = "") { @@ -85,9 +88,16 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms } bool state = this.wm_entryWarehousing_productService.isFullPackage(package_code); - string msg = state ? "满箱" : "不满箱"; - - return ToResponse(new ApiResult(200, msg, true)); + string msg = null; + if (state) + { + msg = "满箱"; + }else + { + msg = "零头箱"; + } + + return ToResponse(new ApiResult(200, msg, state)); } /// /// 4.入库 @@ -95,24 +105,25 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms /// /// [HttpPost("into_product_warehouse")] - public IActionResult IntoProductwarehouse([FromBody] WmgoodsDto wmgoodsDto) + [Log(Title = "入库")] + public IActionResult IntoProductwarehouse([FromBody] WmgoodsDto wmgoodsDto) { - if(wmgoodsDto == null) + if (wmgoodsDto == null) { return ToResponse(new ApiResult(200, "传入为空", false)); } string msg = ""; bool data = false; - string createName=HttpContext.GetName(); + string createName = HttpContext.GetName(); - int status=this.wm_entryWarehousing_productService.IntoProductwarehouse(wmgoodsDto, createName); - if(status == 0) + int status = this.wm_entryWarehousing_productService.IntoProductwarehouse(wmgoodsDto, createName); + if (status == 0) { msg = "数据插入异常"; data = false; } - else if(status == 1) + else if (status == 1) { msg = "success"; data = true; @@ -126,18 +137,66 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms /// /// [HttpGet("packagelist")] + [Log(Title = "获取库位已经存在箱子")] public IActionResult Getpackagelist(string locationcode) { - if(string.IsNullOrEmpty(locationcode)) + if (string.IsNullOrEmpty(locationcode)) { return ToResponse(new ApiResult(200, "传入为空", false)); } string msg = null; - List productionList= this.wm_entryWarehousing_productService.Getpackagelist(locationcode); - + List productionList = this.wm_entryWarehousing_productService.Getpackagelist(locationcode); + return ToResponse(new ApiResult(200, msg, productionList)); } + /// + /// 解析外标签码 + /// + /// + /// + [HttpGet("resolution_package")] + public IActionResult ResolutionPackage(string code = "") + { + if (string.IsNullOrEmpty(code)) + { + + return ToResponse(new ApiResult(200, "传入为空", false)); + } + ResultionPackageCodeDto data = this.wm_entryWarehousing_productService.ResolutionPackage(code); + return ToResponse(new ApiResult(200, "success", data)); + + } + /// + /// 7 判断箱子是否存在成品库仓库里 + /// + /// + /// + [HttpGet("is_existed_warehouse")] + public IActionResult IsExistedWarehouse(string originalCode = "") + { + if (string.IsNullOrEmpty(originalCode)) + { + + return ToResponse(new ApiResult(200, "传入为空", false)); + } + string msg = null; + bool data = this.wm_entryWarehousing_productService.IsExistedWarehouse(originalCode); + if (data) + { + msg = "存在"; + + } + else + { + msg = "不存在"; + } + + return ToResponse(new ApiResult(200, msg, data)); + + } + + } } diff --git a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj index 1661fd65..e4f213a0 100644 --- a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj +++ b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj @@ -41,8 +41,6 @@ - - diff --git a/ZR.Admin.WebApi/appsettings.development.json b/ZR.Admin.WebApi/appsettings.development.json index 19cf5430..1be1a9b5 100644 --- a/ZR.Admin.WebApi/appsettings.development.json +++ b/ZR.Admin.WebApi/appsettings.development.json @@ -11,9 +11,12 @@ { //外网连接服务器 - "Conn": "Data Source=47.116.122.230;Port=3307;User ID=root;Password=123456;Initial Catalog=ZrAdmin;", + "Conn": "Data Source=127.0.0.01;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 diff --git a/ZR.Admin.WebApi/appsettings.production.json b/ZR.Admin.WebApi/appsettings.production.json index d664dd28..569c59e8 100644 --- a/ZR.Admin.WebApi/appsettings.production.json +++ b/ZR.Admin.WebApi/appsettings.production.json @@ -11,7 +11,7 @@ { //"Conn": "Data Source=147.116.122.230;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.60.251;Port=3306;User ID=root;Password=123456;Initial Catalog=ZrAdmin;", "DbType": 0, //数据库类型 MySql = 0, SqlServer = 1, Oracle = 3,PgSql = 4 "ConfigId": "0", //多租户唯一标识 "IsAutoCloseConnection": true diff --git a/ZR.Common/ZR.Common.csproj b/ZR.Common/ZR.Common.csproj index 942ceb01..b890470b 100644 --- a/ZR.Common/ZR.Common.csproj +++ b/ZR.Common/ZR.Common.csproj @@ -11,6 +11,8 @@ + + diff --git a/ZR.Model/MES/wms/Dto/ResultionPackageCodeDto.cs b/ZR.Model/MES/wms/Dto/ResultionPackageCodeDto.cs new file mode 100644 index 00000000..a59d0d8a --- /dev/null +++ b/ZR.Model/MES/wms/Dto/ResultionPackageCodeDto.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZR.Model.MES.wms.Dto +{ + public class ResultionPackageCodeDto + { + /// + /// 原始码 + /// + public string originalCode { get; set; } + /// + /// 批次号 + /// + public string PatchCode { get; set; } + /// + /// 零件号 + /// + public string PartNumner { get; set; } + + /// + /// 工单号 + /// + public string WorkoderID { get; set; } + /// + /// 数量 + /// + public string Quantity { get; set; } + + /// + /// 生产时间 + /// + public string ProductionTime { get; set; } + + /// + /// 产品描述 + /// + public string ProductionDescribe { get; set; } + + + + } +} diff --git a/ZR.Model/MES/wms/Dto/WmgoodsDto.cs b/ZR.Model/MES/wms/Dto/WmgoodsDto.cs index 1d46812d..33eabfab 100644 --- a/ZR.Model/MES/wms/Dto/WmgoodsDto.cs +++ b/ZR.Model/MES/wms/Dto/WmgoodsDto.cs @@ -16,7 +16,7 @@ namespace ZR.Model.MES.wms.Dto /// public string location { set; get; } /// - /// 箱子列表 + /// 箱子列表(原始外箱标签码) /// public string[] packagelist { set; get; } } diff --git a/ZR.Model/MES/wms/WmGoodsNowProduction.cs b/ZR.Model/MES/wms/WmGoodsNowProduction.cs index 39421fcc..5d0d7d0f 100644 --- a/ZR.Model/MES/wms/WmGoodsNowProduction.cs +++ b/ZR.Model/MES/wms/WmGoodsNowProduction.cs @@ -16,10 +16,23 @@ namespace ZR.Model.MES.wms [SugarColumn(ColumnName = "id", IsPrimaryKey = true)] public string Id { 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; } + + /// /// 库位编号 /// diff --git a/ZR.Service/mes/wms/IService/IWMWarehousingService.cs b/ZR.Service/mes/wms/IService/IWMWarehousingService.cs index 62584d02..6f24bdb6 100644 --- a/ZR.Service/mes/wms/IService/IWMWarehousingService.cs +++ b/ZR.Service/mes/wms/IService/IWMWarehousingService.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using ZR.Model.MES.qc.DTO; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; +using static Org.BouncyCastle.Crypto.Engines.SM2Engine; namespace ZR.Service.mes.wms.IService { @@ -29,6 +30,11 @@ namespace ZR.Service.mes.wms.IService //获取库位已经存在的货物 public List Getpackagelist(string location); + //解析外箱标签码 + public ResultionPackageCodeDto ResolutionPackage(string code); + + public bool IsExistedWarehouse(string originalCode); + } diff --git a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs index dd9482fb..05cf9ef9 100644 --- a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs +++ b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs @@ -1,6 +1,8 @@ -using Infrastructure.Attribute; +using Aliyun.OSS; +using Infrastructure.Attribute; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.DependencyInjection; +using Model.DBModel; using SqlSugar; using System; using System.Collections.Generic; @@ -13,28 +15,48 @@ using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; using ZR.Service.mes.qc.IService; using ZR.Service.mes.wms.IService; +using static Org.BouncyCastle.Crypto.Engines.SM2Engine; namespace ZR.Service.mes.wms { [AppService(ServiceType = typeof(IWMentryWarehousing_productService), ServiceLifetime = LifeTime.Transient)] public class WMentryWarehousing_productService : BaseService, IWMentryWarehousing_productService { + + private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); //货物入库 public int IntoProductwarehouse(WmgoodsDto wmgoods, string createName) { List preparegoodsList = new List(); + + + if (wmgoods.packagelist != null && wmgoods.packagelist.Count() > 0) { for (int i = 0; i < wmgoods.packagelist.Count(); i++) { + + ResultionPackageCodeDto resultionPackage= ResolutionPackagecode(wmgoods.packagelist[i]); WmGoodsNowProduction wmGood = new WmGoodsNowProduction(); wmGood.Id = SnowFlakeSingle.Instance.NextId().ToString(); + string flow = resultionPackage.PatchCode.Split('_')[1]; + int flow_num = 0; + try + { + flow_num = Convert.ToInt32(flow); + }catch(Exception ex) + { + flow_num = -1; + } + + wmGood.PackageCode = Getpack_no(resultionPackage.WorkoderID, flow_num.ToString("000")); + wmGood.PackageCodeClient = resultionPackage.PatchCode; + wmGood.PackageCodeOriginal = resultionPackage.originalCode; - wmGood.PackageCode = Getpack_no(wmgoods.packagelist[i]); wmGood.LocationCode = wmgoods.location; - string workorder_id = wmgoods.packagelist[i].Substring(3, 9); + string workorder_id = resultionPackage.WorkoderID; wmGood.GoodsNumLogic = Context.Queryable() @@ -57,84 +79,21 @@ namespace ZR.Service.mes.wms return result; } - //判断箱子是否满 - public bool isFullPackage(string production_packcode) - { - string workorder_id = production_packcode.Substring(3, 9); - string flow_id = production_packcode.Substring(13, 3); - bool isExist = Context.Queryable() - .Where(it => it.WorkOrderNum == workorder_id) - .Where(it => it.PackingCode.EndsWith(flow_id)) - .Where(it => it.BFilled == true).Any(); - return isExist; - } + /// - /// 判断是否为成品箱子码 + /// 获取mes的箱子码 /// - /// + /// 工单 + /// 序号 /// - public int isProductionPackage(string production_packcode) - { - Regex r = new Regex("CodeBNW\\d{9}_\\d{0,3}"); - Regex r1 = new Regex("Code=BNW\\d{9}_\\d{0,3}"); - - - //todo 不是箱子 - if (!r.IsMatch(production_packcode)& !r1.IsMatch(production_packcode)) - { - return 2; - } - // 匹配 CodeBNW\\d{9}_\\d{0,3} - - if (r.IsMatch(production_packcode)) - { - //string workorder_id = production_packcode.Substring(3, 9); - //string flow_id = production_packcode.Substring(13, 3).ToString("000"); - - } - - if (r1.IsMatch(production_packcode)) - { - - - } - string workorder_id = production_packcode.Substring(3, 9); - string flow_id = production_packcode.Substring(13, 3); - bool isExist = Context.Queryable() - .Where(it => it.WorkOrderNum == workorder_id) - .Where(it => it.PackingCode.EndsWith(flow_id)) - .Any(); - if (!isExist) - { - return 0; - } - - - return 1; - - } - - bool IWMentryWarehousing_productService.IsProductionLoacation(string production_location_code) + private string Getpack_no(string workordorid, string flow) { - return Context.Queryable().Where(it => it.WarehouseNum == 1) - .Where(it => it.Location.Equals(production_location_code)).Any(); - - } - /// - /// 获取箱子唯一识别号 - /// - /// - /// - private string Getpack_no(string production_packcode) - { - string workorder_id = production_packcode.Substring(3, 9); - string flow_id = production_packcode.Substring(13, 3); WmPackingrecord record = Context.Queryable() - .Where(it => it.WorkOrderNum == workorder_id) - .Where(it => it.PackingCode.EndsWith(flow_id)) + .Where(it => it.WorkOrderNum == workordorid) + .Where(it => it.PackingCode.EndsWith(flow)) .First(); @@ -146,11 +105,162 @@ namespace ZR.Service.mes.wms return record.ProductCode; } + //3 判断箱子是否满 + public bool isFullPackage(string production_packcode) + { + ResultionPackageCodeDto Identity = ResolutionPackagecode(production_packcode); + if (Identity == null) + { + return false; + } + string packingCode = Identity.PatchCode.Split('_')[1]; + + + bool isExist = Context.Queryable() + .Where(it => it.WorkOrderNum == Identity.WorkoderID) + .Where(it => it.PackingCode.EndsWith(packingCode)) + .Where(it => it.BFilled == true) + .Any(); + + + + return isExist; + } + + /// + /// 2 判断是否为成品箱子码 + /// + /// + /// + public int isProductionPackage(string production_packcode) + { + + + Regex r = new Regex("Code=BNW\\d{9}_\\d{0,3}"); + + + //todo 不是箱子 + if (!r.IsMatch(production_packcode)) + { + return 2; + } + + + ResultionPackageCodeDto Identity = ResolutionPackagecode(production_packcode); + if (Identity == null) + { + return 0; + } + + + string packingCode = Identity.PatchCode.Split('_')[1]; + + + + + bool isExist = Context.Queryable() + .Where(it => it.WorkOrderNum == Identity.WorkoderID) + .Where(it => it.PackingCode.EndsWith(packingCode)) + .Any(); + if (!isExist) + { + return 0; + } + + + return 1; + + } + //1 判断是否为库位码 + bool IWMentryWarehousing_productService.IsProductionLoacation(string production_location_code) + { + + return Context.Queryable().Where(it => it.WarehouseNum == 1) + .Where(it => it.Location.Equals(production_location_code)).Any(); + + } + + //获取库位已经存在的货物 public List Getpackagelist(string location) { - return Context.Queryable().Where(it=>it.LocationCode==location).ToList(); + return Context.Queryable().Where(it => it.LocationCode == location).ToList(); } + + /// + /// 解析外箱标签码 + /// + /// + /// + private ResultionPackageCodeDto ResolutionPackagecode(string packagecode) + { + ResultionPackageCodeDto resultionPackageCode = new ResultionPackageCodeDto(); + try + { + resultionPackageCode.originalCode= packagecode; + + // todo 解析外箱标签码 + string[] splitstr = packagecode.Split('^'); + resultionPackageCode.PatchCode = splitstr[0].Substring(5); + + //todo 解析零件号 + string partnumber = splitstr[1].Substring(11); + //int length = lingshi.Length - 2; + //string partnumber = lingshi.Substring(0, length); + resultionPackageCode.PartNumner = partnumber; + //todo 解析工单号 + string workoderidid = splitstr[2].Substring(7); + resultionPackageCode.WorkoderID = workoderidid; + //todo 生产描述 + resultionPackageCode.ProductionTime="20"+ workoderidid.Substring(0,6); + //todo 解析箱子中产品数量 + string product_num = splitstr[3].Substring(4); + resultionPackageCode.Quantity = product_num; + //todo 产品描述 partnumber + ProWorklplan_v2 plan= Context.Queryable().Where(it => it.Partnumber == partnumber).First(); + if(plan != null) + { + resultionPackageCode.ProductionDescribe = plan.ProductName; + } + else + { + resultionPackageCode.ProductionDescribe = "生产计划无此零件号"; + } + + + + + } + catch (Exception ex) + { + logger.Error($"外箱标签码,解析失败 {ex.Message}"); + + } + + return resultionPackageCode; + } + + //解析外箱标签码 + public ResultionPackageCodeDto ResolutionPackage(string code) + { + + + return ResolutionPackagecode(code); + } + + + /// + /// 判断箱子是否在成品库中 + /// + /// + /// + /// + public bool IsExistedWarehouse(string originalCode) + { + ResultionPackageCodeDto resultionPackage= ResolutionPackagecode(originalCode); + + return Context.Queryable().Where(it => it.PackageCodeClient == resultionPackage.PatchCode).Any(); + } } } diff --git a/ZR.Tasks/ZR.Tasks.csproj b/ZR.Tasks/ZR.Tasks.csproj index 92526344..19106ef8 100644 --- a/ZR.Tasks/ZR.Tasks.csproj +++ b/ZR.Tasks/ZR.Tasks.csproj @@ -6,7 +6,6 @@ - From d193f3fc52da7c9784642eb55b7df33594f9ce63 Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Sun, 17 Mar 2024 14:53:16 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86=5F?= =?UTF-8?q?=E7=89=A9=E6=96=99=E7=AE=A1=E7=90=86=EF=BC=9A=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/wms/WMExitwarehouseController.cs | 82 +++++++++++ .../WMentryWarehousing_productController.cs | 16 +-- .../mes/wms/WmMaterialController.cs | 113 +++++++++++++++ ZR.Admin.WebApi/Extensions/LogoExtension.cs | 24 ++++ ZR.Admin.WebApi/appsettings.development.json | 4 +- .../ZrAdmin.NET-物料记录表-0316162215.zip | Bin 0 -> 9313 bytes ZR.Common/Tools.cs | 2 + ZR.Model/MES/wms/Dto/WmMaterialDto.cs | 59 ++++++++ ZR.Model/MES/wms/WmCustom.cs | 59 ++++++++ ZR.Model/MES/wms/WmInLog.cs | 64 +++++++++ ZR.Model/MES/wms/WmMaterial.cs | 109 +++++++++++++++ ZR.Model/MES/wms/WmOutOrder.cs | 129 ++++++++++++++++++ ZR.Service/ZR.Service.csproj | 4 + .../wms/IService/IWMExitwarehouseService.cs | 26 ++++ ... => IWMentryWarehousing_productService.cs} | 0 .../mes/wms/IService/IWmMaterialService.cs | 24 ++++ ZR.Service/mes/wms/WMExitwarehouseService.cs | 115 ++++++++++++++++ .../wms/WMentryWarehousing_productService.cs | 22 ++- ZR.Service/mes/wms/WmMaterialService.cs | 98 +++++++++++++ 19 files changed, 934 insertions(+), 16 deletions(-) create mode 100644 ZR.Admin.WebApi/Controllers/mes/wms/WMExitwarehouseController.cs create mode 100644 ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-物料记录表-0316162215.zip create mode 100644 ZR.Model/MES/wms/Dto/WmMaterialDto.cs create mode 100644 ZR.Model/MES/wms/WmCustom.cs create mode 100644 ZR.Model/MES/wms/WmInLog.cs create mode 100644 ZR.Model/MES/wms/WmMaterial.cs create mode 100644 ZR.Model/MES/wms/WmOutOrder.cs create mode 100644 ZR.Service/mes/wms/IService/IWMExitwarehouseService.cs rename ZR.Service/mes/wms/IService/{IWMWarehousingService.cs => IWMentryWarehousing_productService.cs} (100%) create mode 100644 ZR.Service/mes/wms/IService/IWmMaterialService.cs create mode 100644 ZR.Service/mes/wms/WMExitwarehouseService.cs create mode 100644 ZR.Service/mes/wms/WmMaterialService.cs diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WMExitwarehouseController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WMExitwarehouseController.cs new file mode 100644 index 00000000..7a0520d6 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WMExitwarehouseController.cs @@ -0,0 +1,82 @@ +using Infrastructure.Extensions; +using JinianNet.JNTemplate; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.IdentityModel.Tokens; +using ZR.Admin.WebApi.Extensions; +using ZR.Model.Dto; +using ZR.Model.MES.qu; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; +using ZR.Service.mes.wms; +using ZR.Service.mes.wms.IService; +using static System.Runtime.InteropServices.JavaScript.JSType; + +namespace ZR.Admin.WebApi.Controllers.mes.wms +{ + + + /// + /// 退库模块 + /// + [Route("/mes/wm/exitwarehouse")] + public class WMExitwarehouseController : BaseController + { + private readonly IWMExitwarehouseService Exitwarehouse; + public WMExitwarehouseController(IWMExitwarehouseService Exitwarehouse) { + this.Exitwarehouse = Exitwarehouse; + } + + /// + /// 一般退库 + /// + /// + /// + [HttpGet("common")] + public IActionResult ExitwarehouseCommmon(string originalCode) + { + string msg = null; + bool data = Exitwarehouse.ExitwarehouseCommmon(originalCode); + if (data) + { + msg = "退库成功"; + } + else + { + msg = "箱子不在仓库中"; + } + return ToResponse(new ApiResult(200, msg, data)); + } + + /// + /// 7 判断箱子是否存在成品库仓库里 + /// + /// + /// + [HttpGet("is_existed_warehouse")] + public IActionResult IsExistedWarehouse(string originalCode = "") + { + if (string.IsNullOrEmpty(originalCode)) + { + + return ToResponse(new ApiResult(200, "传入为空", false)); + } + string msg = null; + bool data = this.Exitwarehouse.IsExistedWarehouse(originalCode); + if (data) + { + msg = "存在"; + + } + else + { + msg = "不存在"; + } + + return ToResponse(new ApiResult(200, msg, data)); + + } + + + } +} diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs index 6047f6ea..7aeaff95 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs @@ -113,23 +113,23 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms return ToResponse(new ApiResult(200, "传入为空", false)); } string msg = ""; - bool data = false; + string createName = HttpContext.GetName(); - int status = this.wm_entryWarehousing_productService.IntoProductwarehouse(wmgoodsDto, createName); - if (status == 0) + int num = this.wm_entryWarehousing_productService.IntoProductwarehouse(wmgoodsDto, createName); + if (num == 0) { msg = "数据插入异常"; - data = false; + } - else if (status == 1) + else if (num >= 1) { - msg = "success"; - data = true; + msg = "成功入库"+num+"个"; + } - return ToResponse(new ApiResult(200, msg, data)); + return ToResponse(new ApiResult(200, msg, num)); } /// /// 获取库位已经存在箱子 diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs new file mode 100644 index 00000000..7164cd19 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs @@ -0,0 +1,113 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; + +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Service.mes.wms.IService; +using ZR.Model.MES.wms.Dto; +using ZR.Model.MES.wms; +using Org.BouncyCastle.Crypto; + +//创建时间:2024-03-16 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 物料记录表增删改查 + /// + [Verify] + [Route("/mes/wm/WmMaterial")] + public class WmMaterialController : BaseController + { + /// + /// 物料记录表接口 + /// + private readonly IWmMaterialService _WmMaterialService; + + public WmMaterialController(IWmMaterialService WmMaterialService) + { + _WmMaterialService = WmMaterialService; + } + + /// + /// 查询物料记录表列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "wms:wmmaterial:list")] + public IActionResult QueryWmMaterial([FromQuery] WmMaterialQueryDto parm) + { + var response = _WmMaterialService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询物料记录表详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "wms:wmmaterial:query")] + public IActionResult GetWmMaterial(string Id) + { + var response = _WmMaterialService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加物料记录表 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "wms:wmmaterial:add")] + [Log(Title = "物料记录表", BusinessType = BusinessType.INSERT)] + public IActionResult AddWmMaterial([FromBody] WmMaterialDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _WmMaterialService.AddWmMaterial(modal); + + return SUCCESS(response); + } + + /// + /// 更新物料记录表 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "wms:wmmaterial:edit")] + [Log(Title = "物料记录表", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateWmMaterial([FromBody] WmMaterialDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _WmMaterialService.UpdateWmMaterial(modal); + + return ToResponse(response); + } + + /// + /// 删除物料记录表 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "wms:wmmaterial:delete")] + [Log(Title = "物料记录表", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteWmMaterial(string ids) + { + long[] idsArr = Tools.SpitLongArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + + var response = _WmMaterialService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Extensions/LogoExtension.cs b/ZR.Admin.WebApi/Extensions/LogoExtension.cs index 704778fd..e9dc7421 100644 --- a/ZR.Admin.WebApi/Extensions/LogoExtension.cs +++ b/ZR.Admin.WebApi/Extensions/LogoExtension.cs @@ -1,4 +1,5 @@ using JinianNet.JNTemplate; +using System.Net.NetworkInformation; using ZR.Common; namespace ZR.Admin.WebApi.Extensions @@ -14,6 +15,29 @@ namespace ZR.Admin.WebApi.Extensions Console.WriteLine(content); Console.ForegroundColor = ConsoleColor.Blue; + // 获取本地计算机的所有网络接口信息 + NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); + + foreach (NetworkInterface networkInterface in networkInterfaces) + { + // 过滤出活动的网络接口 + if (networkInterface.OperationalStatus == OperationalStatus.Up) + { + // 获取网络接口的IP属性 + IPInterfaceProperties ipProperties = networkInterface.GetIPProperties(); + UnicastIPAddressInformationCollection ipAddresses = ipProperties.UnicastAddresses; + + foreach (UnicastIPAddressInformation ipAddress in ipAddresses) + { + // 输出IPv4地址 + if (ipAddress.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) + { + Console.WriteLine("本机ip: "+ipAddress.Address.ToString()); + } + } + } + } + } } } diff --git a/ZR.Admin.WebApi/appsettings.development.json b/ZR.Admin.WebApi/appsettings.development.json index 1be1a9b5..16cd819c 100644 --- a/ZR.Admin.WebApi/appsettings.development.json +++ b/ZR.Admin.WebApi/appsettings.development.json @@ -11,7 +11,7 @@ { //外网连接服务器 - "Conn": "Data Source=127.0.0.01;User ID=root;Password=123456;Initial Catalog=ZrAdmin;", + "Conn": "Data Source=127.0.0.1;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;", @@ -26,7 +26,7 @@ //代码生成数据库配置 "CodeGenDbConfig": { //代码生成连接字符串,注意{dbName}为固定格式,不要填写数据库名 - "Conn": "Data Source=47.116.122.230;Port=3307;User ID=root;Password=123456;Initial Catalog={dbName};", + "Conn": "Data Source=127.0.0.1;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-物料记录表-0316162215.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-物料记录表-0316162215.zip new file mode 100644 index 0000000000000000000000000000000000000000..154e8f26c09dcf41a49190d95a054d3b165dcade GIT binary patch literal 9313 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 literal 0 HcmV?d00001 diff --git a/ZR.Common/Tools.cs b/ZR.Common/Tools.cs index 70c9d855..c6d4532d 100644 --- a/ZR.Common/Tools.cs +++ b/ZR.Common/Tools.cs @@ -32,6 +32,8 @@ namespace ZR.Common return infoIdss; } + + /// /// 根据日期获取星期几 /// diff --git a/ZR.Model/MES/wms/Dto/WmMaterialDto.cs b/ZR.Model/MES/wms/Dto/WmMaterialDto.cs new file mode 100644 index 00000000..b007e34d --- /dev/null +++ b/ZR.Model/MES/wms/Dto/WmMaterialDto.cs @@ -0,0 +1,59 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.MES.wms.Dto +{ + /// + /// 物料记录表查询对象 + /// + public class WmMaterialQueryDto : PagerInfo + { + } + + /// + /// 物料记录表输入输出对象 + /// + public class WmMaterialDto + { + + public string Id { get; set; } + + public string Partnumber { get; set; } + + public string U8InventoryCode { get; set; } + + public string BlankNum { get; set; } + + public string Unit { get; set; } + + public string ProductName { get; set; } + + public string Color { get; set; } + + public string Specification { get; set; } + + public string Description { get; set; } + + public string Version { get; set; } + + public string Remarks { get; set; } + + public int? Sort { get; set; } + + public string Search1 { get; set; } + + public string Search2 { get; set; } + + public int? Status { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/wms/WmCustom.cs b/ZR.Model/MES/wms/WmCustom.cs new file mode 100644 index 00000000..8ae834c5 --- /dev/null +++ b/ZR.Model/MES/wms/WmCustom.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace ZR.Model.MES.wms +{ + /// + /// 客户信息 + /// + [SugarTable("wm_custom")] + public class WmCustom + { + /// + /// 主键 + /// + [SugarColumn(ColumnName="id" ,IsPrimaryKey = true ,IsIdentity = true )] + public int Id { get; set; } + /// + /// 客户代码 + /// + [SugarColumn(ColumnName="custom_no" )] + public string CustomNo { get; set; } + /// + /// 客户名称 + /// + [SugarColumn(ColumnName="custom_name" )] + public string CustomName { get; set; } + /// + /// 客户地址 + /// + [SugarColumn(ColumnName="custom_address" )] + public string CustomAddress { get; set; } + /// + /// 备注 + /// + [SugarColumn(ColumnName="remark" )] + public string Remark { 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.Model/MES/wms/WmInLog.cs b/ZR.Model/MES/wms/WmInLog.cs new file mode 100644 index 00000000..07471ebb --- /dev/null +++ b/ZR.Model/MES/wms/WmInLog.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace ZR.Model.MES.wms +{ + /// + /// 入库日志(U8上传) + /// + [SugarTable("wm_in_log")] + public class WmInLog + { + /// + /// 主键(雪花生产) + /// + [SugarColumn(ColumnName="id" )] + public string Id { get; set; } + /// + /// u8库存编码 + /// + [SugarColumn(ColumnName="u8_inventory_code" )] + public string U8InventoryCode { get; set; } + /// + /// 仓库编号 + /// + [SugarColumn(ColumnName="wm_info_id" )] + public string WmInfoId { get; set; } + /// + /// mes内码 + /// + [SugarColumn(ColumnName="package_code" )] + public string PackageCode { get; set; } + /// + /// 批次号 + /// + [SugarColumn(ColumnName="code" )] + public string Code { get; set; } + /// + /// 数量 + /// + [SugarColumn(ColumnName="number" )] + public string Number { 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.Model/MES/wms/WmMaterial.cs b/ZR.Model/MES/wms/WmMaterial.cs new file mode 100644 index 00000000..dbbc3919 --- /dev/null +++ b/ZR.Model/MES/wms/WmMaterial.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace ZR.Model.MES.wms +{ + /// + /// 物料记录表 + /// + [SugarTable("wm_material")] + public class WmMaterial + { + /// + /// 主键G + /// + [SugarColumn(ColumnName="id" ,IsPrimaryKey = true )] + public string Id { get; set; } + /// + /// 物料号(零件号) + /// + [SugarColumn(ColumnName="partnumber")] + public string Partnumber { get; set; } + /// + /// U8库存编码 + /// + [SugarColumn(ColumnName="u8_inventory_code")] + public string U8InventoryCode { get; set; } + /// + /// 毛坯号 + /// + [SugarColumn(ColumnName="blank_num" )] + public string BlankNum { get; set; } + /// + /// 单位 + /// + [SugarColumn(ColumnName="unit" )] + public string Unit { get; set; } + /// + /// 产品描述(产品名称) + /// + [SugarColumn(ColumnName="product_name" )] + public string ProductName { get; set; } + /// + /// 产品颜色 + /// + [SugarColumn(ColumnName="color" )] + public string Color { get; set; } + /// + /// 规格(左右脚) + /// + [SugarColumn(ColumnName="specification" )] + public string Specification { get; set; } + /// + /// 显示描述(产品描述+颜色+规格) + /// + [SugarColumn(ColumnName="description" )] + public string Description { get; set; } + /// + /// 版本号 + /// + [SugarColumn(ColumnName="version" )] + public string Version { get; set; } + /// + /// 备注 + /// + [SugarColumn(ColumnName="remarks" )] + public string Remarks { get; set; } + /// + /// 排序(特殊排序) + /// + [SugarColumn(ColumnName="sort" )] + public int? Sort { get; set; } + /// + /// 便捷搜索字段1 + /// + [SugarColumn(ColumnName="search1" )] + public string Search1 { get; set; } + /// + /// 便捷搜索字段2 + /// + [SugarColumn(ColumnName="search2" )] + public string Search2 { get; set; } + /// + /// 状态(0-不可见 1-可见) + /// + [SugarColumn(ColumnName="status" )] + public int? Status { 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.Model/MES/wms/WmOutOrder.cs b/ZR.Model/MES/wms/WmOutOrder.cs new file mode 100644 index 00000000..8facbd8b --- /dev/null +++ b/ZR.Model/MES/wms/WmOutOrder.cs @@ -0,0 +1,129 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace ZR.Model.MES.wms +{ + /// + /// 出货单(物料+客户) + /// + [SugarTable("wm_out_order")] + public class WmOutOrder + { + /// + /// 主键G + /// + [SugarColumn(ColumnName="id" ,IsPrimaryKey = true )] + public string Id { get; set; } + /// + /// 出货单号(雪花算法) + /// + [SugarColumn(ColumnName="shipment_num" )] + public string ShipmentNum { get; set; } + /// + /// 客户id + /// + [SugarColumn(ColumnName="custom_id" )] + public string CustomId { get; set; } + /// + /// 客户代码 + /// + [SugarColumn(ColumnName="custom_no" )] + public string CustomNo { get; set; } + /// + /// 客户名称 + /// + [SugarColumn(ColumnName="custom_name" )] + public string CustomName { get; set; } + /// + /// 客户地址 + /// + [SugarColumn(ColumnName="custom_address" )] + public string CustomAddress { get; set; } + /// + /// 物料号(零件号) + /// + [SugarColumn(ColumnName="partnumber" )] + public string Partnumber { get; set; } + /// + /// 单位 + /// + [SugarColumn(ColumnName="unit" )] + public string Unit { get; set; } + /// + /// 产品描述(产品名称) + /// + [SugarColumn(ColumnName="product_name" )] + public string ProductName { get; set; } + /// + /// 产品颜色 + /// + [SugarColumn(ColumnName="color" )] + public string Color { get; set; } + /// + /// 规格(左右脚) + /// + [SugarColumn(ColumnName="specification" )] + public string Specification { get; set; } + /// + /// 显示描述(产品描述+颜色+规格) + /// + [SugarColumn(ColumnName="description" )] + public string Description { get; set; } + /// + /// 版本号 + /// + [SugarColumn(ColumnName="version" )] + public string Version { get; set; } + /// + /// 备注 + /// + [SugarColumn(ColumnName="remarks" )] + public string Remarks { get; set; } + /// + /// 状态(0-不可见 1-可见) + /// + [SugarColumn(ColumnName="status" )] + public int? Status { get; set; } + /// + /// 年 + /// + [SugarColumn(ColumnName="year" )] + public int? Year { get; set; } + /// + /// 周 + /// + [SugarColumn(ColumnName="week" )] + public int? Week { get; set; } + /// + /// 日 + /// + [SugarColumn(ColumnName="date" )] + public int? Date { get; set; } + /// + /// 要货数量 + /// + [SugarColumn(ColumnName="number" )] + public int? Number { 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/ZR.Service.csproj b/ZR.Service/ZR.Service.csproj index 3488f23c..582a50fb 100644 --- a/ZR.Service/ZR.Service.csproj +++ b/ZR.Service/ZR.Service.csproj @@ -8,6 +8,10 @@ + + + + diff --git a/ZR.Service/mes/wms/IService/IWMExitwarehouseService.cs b/ZR.Service/mes/wms/IService/IWMExitwarehouseService.cs new file mode 100644 index 00000000..d329acc0 --- /dev/null +++ b/ZR.Service/mes/wms/IService/IWMExitwarehouseService.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZR.Service.mes.wms.IService +{ + public interface IWMExitwarehouseService + { + /// + /// 一般退库 + /// + /// + /// + public bool ExitwarehouseCommmon(string original); + /// + /// 判断箱子是否存在陈平库中 + /// + /// + /// + + public bool IsExistedWarehouse(string originalCode); + + } +} diff --git a/ZR.Service/mes/wms/IService/IWMWarehousingService.cs b/ZR.Service/mes/wms/IService/IWMentryWarehousing_productService.cs similarity index 100% rename from ZR.Service/mes/wms/IService/IWMWarehousingService.cs rename to ZR.Service/mes/wms/IService/IWMentryWarehousing_productService.cs diff --git a/ZR.Service/mes/wms/IService/IWmMaterialService.cs b/ZR.Service/mes/wms/IService/IWmMaterialService.cs new file mode 100644 index 00000000..0f745359 --- /dev/null +++ b/ZR.Service/mes/wms/IService/IWmMaterialService.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 IWmMaterialService : IBaseService + { + PagedInfo GetList(WmMaterialQueryDto parm); + + WmMaterial GetInfo(string Id); + + WmMaterial AddWmMaterial(WmMaterial parm); + + int UpdateWmMaterial(WmMaterial parm); + + } +} diff --git a/ZR.Service/mes/wms/WMExitwarehouseService.cs b/ZR.Service/mes/wms/WMExitwarehouseService.cs new file mode 100644 index 00000000..2f4d1a36 --- /dev/null +++ b/ZR.Service/mes/wms/WMExitwarehouseService.cs @@ -0,0 +1,115 @@ +using Infrastructure.Attribute; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZR.Model.MES.pro; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; +using ZR.Service.mes.wms.IService; + +namespace ZR.Service.mes.wms +{ + + [AppService(ServiceType = typeof(IWMExitwarehouseService), ServiceLifetime = LifeTime.Transient)] + public class WMExitwarehouseService : BaseService, IWMExitwarehouseService + { + private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); + //普通入库 + public bool ExitwarehouseCommmon(string original) + { + ResultionPackageCodeDto packageCode = ResolutionPackagecode(original); + string patchCode = packageCode.PatchCode; + + + int result = Context.Deleteable().Where(it => it.PackageCodeClient == patchCode).ExecuteCommand(); + + if (result == 0) + { + return false; + } + return true; + + } + + /// + /// 判断箱子是否在成品库中 + /// + /// + /// + /// + public bool IsExistedWarehouse(string originalCode) + { + ResultionPackageCodeDto resultionPackage = ResolutionPackagecode(originalCode); + + return Context.Queryable().Where(it => it.PackageCodeClient == resultionPackage.PatchCode).Any(); + } + + + /// + /// 解析外箱标签码 + /// + /// + /// + private ResultionPackageCodeDto ResolutionPackagecode(string packagecode) + { + ResultionPackageCodeDto resultionPackageCode = new ResultionPackageCodeDto(); + try + { + resultionPackageCode.originalCode = packagecode; + + // todo 解析外箱标签码 + string[] splitstr = packagecode.Split('^'); + resultionPackageCode.PatchCode = splitstr[0].Substring(5); + + //todo 解析零件号 + string partnumber = splitstr[1].Substring(11); + //int length = lingshi.Length - 2; + //string partnumber = lingshi.Substring(0, length); + resultionPackageCode.PartNumner = partnumber; + //todo 解析工单号 + string workoderidid = splitstr[2].Substring(7); + resultionPackageCode.WorkoderID = workoderidid; + //todo 生产描述 + resultionPackageCode.ProductionTime = "20" + workoderidid.Substring(0, 6); + //todo 解析箱子中产品数量 + string product_num = splitstr[3].Substring(4); + resultionPackageCode.Quantity = product_num; + //todo 产品描述 partnumber + // ProWorklplan_v2 plan= Context.Queryable().Where(it => it.Partnumber == partnumber).First(); + //if(plan != null) + // { + // resultionPackageCode.ProductionDescribe = plan.ProductName; + // } + // else + // { + // resultionPackageCode.ProductionDescribe = "生产计划无此零件号"; + // } + ProWorkorder_v2 workorder = Context.Queryable().Where(it => it.FinishedPartNumber == partnumber).First(); + + if (workorder != null) + { + resultionPackageCode.ProductionDescribe = workorder.ProductDescription; + } + else + { + resultionPackageCode.ProductionDescribe = "生产工单无此零件号"; + } + + + } + catch (Exception ex) + { + logger.Error($"外箱标签码,解析失败 {ex.Message}"); + + } + + return resultionPackageCode; + } + + } + + +} diff --git a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs index 05cf9ef9..85e55f47 100644 --- a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs +++ b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs @@ -10,6 +10,8 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; +using ZR.Model.mes.pro; +using ZR.Model.MES.pro; using ZR.Model.MES.qu; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; @@ -218,17 +220,25 @@ namespace ZR.Service.mes.wms string product_num = splitstr[3].Substring(4); resultionPackageCode.Quantity = product_num; //todo 产品描述 partnumber - ProWorklplan_v2 plan= Context.Queryable().Where(it => it.Partnumber == partnumber).First(); - if(plan != null) + // ProWorklplan_v2 plan= Context.Queryable().Where(it => it.Partnumber == partnumber).First(); + //if(plan != null) + // { + // resultionPackageCode.ProductionDescribe = plan.ProductName; + // } + // else + // { + // resultionPackageCode.ProductionDescribe = "生产计划无此零件号"; + // } + ProWorkorder_v2 workorder= Context.Queryable().Where(it => it.FinishedPartNumber == partnumber).First(); + + if (workorder != null) { - resultionPackageCode.ProductionDescribe = plan.ProductName; + resultionPackageCode.ProductionDescribe = workorder.ProductDescription; } else { - resultionPackageCode.ProductionDescribe = "生产计划无此零件号"; + resultionPackageCode.ProductionDescribe = "生产工单无此零件号"; } - - } diff --git a/ZR.Service/mes/wms/WmMaterialService.cs b/ZR.Service/mes/wms/WmMaterialService.cs new file mode 100644 index 00000000..bcecf225 --- /dev/null +++ b/ZR.Service/mes/wms/WmMaterialService.cs @@ -0,0 +1,98 @@ +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.mes.wms +{ + /// + /// 物料记录表Service业务层处理 + /// + [AppService(ServiceType = typeof(IWmMaterialService), ServiceLifetime = LifeTime.Transient)] + public class WmMaterialService : BaseService, IWmMaterialService + { + /// + /// 查询物料记录表列表 + /// + /// + /// + public PagedInfo GetList(WmMaterialQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public WmMaterial GetInfo(string Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加物料记录表 + /// + /// + /// + public WmMaterial AddWmMaterial(WmMaterial model) + { + model.Id= SnowFlakeSingle.Instance.NextId().ToString(); + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改物料记录表 + /// + /// + /// + public int UpdateWmMaterial(WmMaterial model) + { + //var response = Update(w => w.Id == model.Id, it => new WmMaterial() + //{ + // Partnumber = model.Partnumber, + // U8InventoryCode = model.U8InventoryCode, + // BlankNum = model.BlankNum, + // Unit = model.Unit, + // ProductName = model.ProductName, + // Color = model.Color, + // Specification = model.Specification, + // Description = model.Description, + // Version = model.Version, + // Remarks = model.Remarks, + // Sort = model.Sort, + // Search1 = model.Search1, + // Search2 = model.Search2, + // Status = model.Status, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file From 741ec8ade473559a60c0854e3f3f466dc20e5438 Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Sun, 17 Mar 2024 16:05:28 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86=5F?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E4=BF=A1=E6=81=AF=EF=BC=9Ainit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/mes/wms/WmCustomController.cs | 111 ++++++++++++++++++ .../ZrAdmin.NET-客户信息-0317153123.zip | Bin 0 -> 7827 bytes ZR.Model/MES/wms/Dto/WmCustomDto.cs | 42 +++++++ ZR.Model/MES/wms/Dto/WmMaterialDto.cs | 41 ++++++- ZR.Model/MES/wms/WmCustom.cs | 68 ++++++----- .../mes/wms/IService/IWmCustomService.cs | 25 ++++ ZR.Service/mes/wms/WmCustomService.cs | 91 ++++++++++++++ ZR.Service/mes/wms/WmMaterialService.cs | 14 ++- 8 files changed, 359 insertions(+), 33 deletions(-) create mode 100644 ZR.Admin.WebApi/Controllers/mes/wms/WmCustomController.cs create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-客户信息-0317153123.zip create mode 100644 ZR.Model/MES/wms/Dto/WmCustomDto.cs create mode 100644 ZR.Service/mes/wms/IService/IWmCustomService.cs create mode 100644 ZR.Service/mes/wms/WmCustomService.cs diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmCustomController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmCustomController.cs new file mode 100644 index 00000000..340450d9 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmCustomController.cs @@ -0,0 +1,111 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; + +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Service.mes.wms.IService; +using ZR.Model.MES.wms.Dto; +using ZR.Model.MES.wms; + +//创建时间:2024-03-17 +namespace ZR.Admin.WebApi.Controllers.mes.wms +{ + /// + /// 客户信息 + /// + [Verify] + [Route("/mes/wm/WmCustom")] + public class WmCustomController : BaseController + { + /// + /// 客户信息接口 + /// + private readonly IWmCustomService _WmCustomService; + + public WmCustomController(IWmCustomService WmCustomService) + { + _WmCustomService = WmCustomService; + } + + /// + /// 查询客户信息列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "wmsManagement:wmcustom:list")] + public IActionResult QueryWmCustom([FromQuery] WmCustomQueryDto parm) + { + var response = _WmCustomService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询客户信息详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "wmsManagement:wmcustom:query")] + public IActionResult GetWmCustom(int Id) + { + var response = _WmCustomService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加客户信息 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "wmsManagement:wmcustom:add")] + [Log(Title = "客户信息", BusinessType = BusinessType.INSERT)] + public IActionResult AddWmCustom([FromBody] WmCustomDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _WmCustomService.AddWmCustom(modal); + + return SUCCESS(response); + } + + /// + /// 更新客户信息 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "wmsManagement:wmcustom:edit")] + [Log(Title = "客户信息", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateWmCustom([FromBody] WmCustomDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _WmCustomService.UpdateWmCustom(modal); + + return ToResponse(response); + } + + /// + /// 删除客户信息 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "wmsManagement:wmcustom:delete")] + [Log(Title = "客户信息", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteWmCustom(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _WmCustomService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-客户信息-0317153123.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-客户信息-0317153123.zip new file mode 100644 index 0000000000000000000000000000000000000000..73777ba743b156edaf8279f6375679364d3bd278 GIT binary patch literal 7827 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 + /// 客户信息查询对象 + /// + public class WmCustomQueryDto : PagerInfo + { + public string CustomNo { get; set; } + + public string CustomName { get; set; } + } + + /// + /// 客户信息输入输出对象 + /// + public class WmCustomDto + { + [Required(ErrorMessage = "主键不能为空")] + public int Id { get; set; } + + public string CustomNo { get; set; } + + public string CustomName { get; set; } + + public string CustomAddress { get; set; } + + public string Remark { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { 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 b007e34d..630e54aa 100644 --- a/ZR.Model/MES/wms/Dto/WmMaterialDto.cs +++ b/ZR.Model/MES/wms/Dto/WmMaterialDto.cs @@ -5,8 +5,47 @@ namespace ZR.Model.MES.wms.Dto /// /// 物料记录表查询对象 /// - public class WmMaterialQueryDto : PagerInfo + public class WmMaterialQueryDto : PagerInfo { + + + public string Id { get; set; } + + public string Partnumber { get; set; } + + public string U8InventoryCode { get; set; } + + public string BlankNum { get; set; } + + public string Unit { get; set; } + + public string ProductName { get; set; } + + public string Color { get; set; } + + public string Specification { get; set; } + + public string Description { get; set; } + + public string Version { get; set; } + + public string Remarks { get; set; } + + public int? Sort { get; set; } + + public string Search1 { get; set; } + + public string Search2 { get; set; } + + public int? Status { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } } /// diff --git a/ZR.Model/MES/wms/WmCustom.cs b/ZR.Model/MES/wms/WmCustom.cs index 8ae834c5..be91ec97 100644 --- a/ZR.Model/MES/wms/WmCustom.cs +++ b/ZR.Model/MES/wms/WmCustom.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using SqlSugar; @@ -6,54 +6,62 @@ namespace ZR.Model.MES.wms { /// /// 客户信息 - /// + /// [SugarTable("wm_custom")] public class WmCustom { /// /// 主键 - /// - [SugarColumn(ColumnName="id" ,IsPrimaryKey = true ,IsIdentity = true )] - public int Id { get; set; } + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + /// /// 客户代码 - /// - [SugarColumn(ColumnName="custom_no" )] - public string CustomNo { get; set; } + /// + [SugarColumn(ColumnName = "custom_no")] + public string CustomNo { get; set; } + /// /// 客户名称 - /// - [SugarColumn(ColumnName="custom_name" )] - public string CustomName { get; set; } + /// + [SugarColumn(ColumnName = "custom_name")] + public string CustomName { get; set; } + /// /// 客户地址 - /// - [SugarColumn(ColumnName="custom_address" )] - public string CustomAddress { get; set; } + /// + [SugarColumn(ColumnName = "custom_address")] + public string CustomAddress { get; set; } + /// /// 备注 - /// - [SugarColumn(ColumnName="remark" )] - public string Remark { get; set; } + /// + public string Remark { get; set; } + /// /// 创建人 - /// - [SugarColumn(ColumnName="CREATED_BY" )] - public string CreatedBy { get; set; } + /// + [SugarColumn(ColumnName = "cREATED_BY")] + public string CreatedBy { get; set; } + /// /// 创建时间 - /// - [SugarColumn(ColumnName="CREATED_TIME" )] - public DateTime? CreatedTime { get; set; } + /// + [SugarColumn(ColumnName = "cREATED_TIME")] + public DateTime? CreatedTime { get; set; } + /// /// 更新人 - /// - [SugarColumn(ColumnName="UPDATED_BY" )] - public string UpdatedBy { get; set; } + /// + [SugarColumn(ColumnName = "uPDATED_BY")] + public string UpdatedBy { get; set; } + /// /// 更新时间 - /// - [SugarColumn(ColumnName="UPDATED_TIME" )] - public DateTime? UpdatedTime { get; set; } + /// + [SugarColumn(ColumnName = "uPDATED_TIME")] + public DateTime? UpdatedTime { get; set; } + } -} +} \ No newline at end of file diff --git a/ZR.Service/mes/wms/IService/IWmCustomService.cs b/ZR.Service/mes/wms/IService/IWmCustomService.cs new file mode 100644 index 00000000..af900888 --- /dev/null +++ b/ZR.Service/mes/wms/IService/IWmCustomService.cs @@ -0,0 +1,25 @@ +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 IWmCustomService : IBaseService + { + PagedInfo GetList(WmCustomQueryDto parm); + + WmCustom GetInfo(int Id); + + WmCustom AddWmCustom(WmCustom parm); + + int UpdateWmCustom(WmCustom parm); + + } +} diff --git a/ZR.Service/mes/wms/WmCustomService.cs b/ZR.Service/mes/wms/WmCustomService.cs new file mode 100644 index 00000000..c466d777 --- /dev/null +++ b/ZR.Service/mes/wms/WmCustomService.cs @@ -0,0 +1,91 @@ +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.mes.wms +{ + + /// + /// 客户信息Service业务层处理 + /// + [AppService(ServiceType = typeof(IWmCustomService), ServiceLifetime = LifeTime.Transient)] + public class WmCustomService : BaseService, IWmCustomService + { + /// + /// 查询客户信息列表 + /// + /// + /// + public PagedInfo GetList(WmCustomQueryDto parm) + { + var predicate = Expressionable.Create() + .AndIF(!string.IsNullOrEmpty(parm.CustomNo), it => it.CustomNo.Contains(parm.CustomNo)) + .AndIF(!string.IsNullOrEmpty(parm.CustomName), it => it.CustomName.Contains(parm.CustomName)); + + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public WmCustom GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加客户信息 + /// + /// + /// + public WmCustom AddWmCustom(WmCustom model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改客户信息 + /// + /// + /// + public int UpdateWmCustom(WmCustom model) + { + //var response = Update(w => w.Id == model.Id, it => new WmCustom() + //{ + // CustomNo = model.CustomNo, + // CustomName = model.CustomName, + // CustomAddress = model.CustomAddress, + // 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/wms/WmMaterialService.cs b/ZR.Service/mes/wms/WmMaterialService.cs index bcecf225..e844ea36 100644 --- a/ZR.Service/mes/wms/WmMaterialService.cs +++ b/ZR.Service/mes/wms/WmMaterialService.cs @@ -27,11 +27,21 @@ namespace ZR.Service.mes.wms /// public PagedInfo GetList(WmMaterialQueryDto parm) { - var predicate = Expressionable.Create(); + var predicate = Expressionable.Create() + .AndIF(parm.Partnumber != null, it => it.Partnumber.Contains(parm.Partnumber)) + .AndIF(parm.U8InventoryCode != null, it => it.U8InventoryCode.Contains(parm.U8InventoryCode)) + .AndIF(parm.ProductName != null, it => it.ProductName.Contains(parm.ProductName)) + .AndIF(parm.Color != null, it => it.Color.Contains(parm.Color)) + .AndIF(parm.Specification != null, it => it.Specification.Contains(parm.Specification)) + .AndIF(parm.Description != null, it => it.Description.Contains(parm.Description)) + .AndIF(parm.Search1 != null, it => it.Search1.Contains(parm.Search1) || it.Search2.Contains(parm.Search1)) + .AndIF(parm.Status > -1, it => it.Status == parm.Status); + var response = Queryable() - .Where(predicate.ToExpression()) + .Where(predicate.ToExpression()).OrderByDescending(it=>it.CreatedTime) .ToPage(parm); + return response; } From bf4e606977d29ac2f1a43ee1561954b1eb18578f Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Tue, 19 Mar 2024 11:08:28 +0800 Subject: [PATCH 07/10] =?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:=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Infrastructure/CustomException/ResultCode.cs | 2 +- .../mes/wms/WmMaterialController.cs | 6 +- .../mes/wms/WmOutOrderController.cs | 141 +++++++++++ ZR.Admin.WebApi/ZR.Admin.WebApi.csproj | 1 + ZR.Admin.WebApi/appsettings.development.json | 2 +- .../ZrAdmin.NET-客户信息-0317153123.zip | Bin 7827 -> 0 bytes .../ZrAdmin.NET-物料记录表-0316162215.zip | Bin 9313 -> 0 bytes ZR.Model/MES/wms/Dto/WmMaterialDto.cs | 35 +++ ZR.Model/MES/wms/Dto/WmOutOrderDto.cs | 71 ++++++ ZR.Model/MES/wms/WmGoodsNowProduction.cs | 9 +- ZR.Model/MES/wms/WmMaterialOutorder.cs | 59 +++++ ZR.Model/MES/wms/WmOutOrder.cs | 161 ++++++------- .../mes/wms/IService/IWmOutOrderService.cs | 30 +++ .../wms/WMentryWarehousing_productService.cs | 1 + ZR.Service/mes/wms/WmOutOrderService.cs | 224 ++++++++++++++++++ 15 files changed, 641 insertions(+), 101 deletions(-) create mode 100644 ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs delete mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-客户信息-0317153123.zip delete mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-物料记录表-0316162215.zip create mode 100644 ZR.Model/MES/wms/Dto/WmOutOrderDto.cs create mode 100644 ZR.Model/MES/wms/WmMaterialOutorder.cs create mode 100644 ZR.Service/mes/wms/IService/IWmOutOrderService.cs create mode 100644 ZR.Service/mes/wms/WmOutOrderService.cs diff --git a/Infrastructure/CustomException/ResultCode.cs b/Infrastructure/CustomException/ResultCode.cs index 58739e4c..95ad884b 100644 --- a/Infrastructure/CustomException/ResultCode.cs +++ b/Infrastructure/CustomException/ResultCode.cs @@ -7,7 +7,7 @@ namespace Infrastructure [Description("success")] SUCCESS = 200, - [Description("没有更多数据")] + [Description("传入参数为空")] NO_DATA = 210, [Description("参数错误")] diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs index 7164cd19..ec6ea1d0 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs @@ -53,8 +53,8 @@ namespace ZR.Admin.WebApi.Controllers { var response = _WmMaterialService.GetInfo(Id); - var info = response.Adapt(); - return SUCCESS(info); + + return SUCCESS(response); } /// @@ -101,7 +101,7 @@ namespace ZR.Admin.WebApi.Controllers if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } - var response = _WmMaterialService.Delete(idsArr); + var response = _WmMaterialService.Delete(idsArr); return ToResponse(response); } diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs new file mode 100644 index 00000000..bbb11512 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs @@ -0,0 +1,141 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Model.Dto; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Service.mes.wms.IService; +using ZR.Model.MES.wms.Dto; +using ZR.Model.MES.wms; +using ZR.Service.mes.wms; + +//创建时间:2024-03-18 +namespace ZR.Admin.WebApi.Controllers +{ + /// + /// 出货单(物料+客户) + /// + [Verify] + [Route("mes/wm/WmOutOrder")] + public class WmOutOrderController : BaseController + { + /// + /// 出货单(物料+客户)接口 + /// + private readonly IWmOutOrderService _WmOutOrderService; + + public WmOutOrderController(IWmOutOrderService WmOutOrderService) + { + _WmOutOrderService = WmOutOrderService; + } + + /// + /// 查询出货单(物料+客户)列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "business:wmoutorder:list")] + public IActionResult QueryWmOutOrder([FromQuery] WmOutOrderQueryDto parm) + { + var response = _WmOutOrderService.GetList(parm); + + return SUCCESS(response); + } + + + /// + /// 查询出货单(物料+客户)详情 + /// + /// + /// + [HttpGet("{ShipmentNum}")] + [ActionPermissionFilter(Permission = "business:wmoutorder:query")] + public IActionResult GetWmOutOrder(string ShipmentNum) + { + var response = _WmOutOrderService.GetInfo(ShipmentNum); + return SUCCESS(response); + } + + /// + /// 添加出货单(物料+客户) + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "business:wmoutorder:add")] + [Log(Title = "出货单(物料+客户)", BusinessType = BusinessType.INSERT)] + public IActionResult AddWmOutOrder([FromBody] WmOutOrder_materialDto parm) + { + if(parm == null) + { + return SUCCESS(null); + } + var modal = parm.ToCreate(HttpContext); + + var response = _WmOutOrderService.AddWmOutOrder(modal); + + return SUCCESS(response); + } + + /// + /// 更新出货单(物料+客户) + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "business:wmoutorder:edit")] + [Log(Title = "出货单(物料+客户)", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateWmOutOrder([FromBody] WmOutOrderDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _WmOutOrderService.UpdateWmOutOrder(modal); + + return ToResponse(response); + } + + /// + /// 删除出货单(物料+客户) + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:wmoutorder:delete")] + [Log(Title = "出货单(物料+客户)", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteWmOutOrder(string ids) + { + + if (string.IsNullOrEmpty(ids)) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + + var response = _WmOutOrderService.Delete(ids.Split(",")); + + return ToResponse(response); + } + + /// + /// 获取客户信息 + /// + /// + [HttpGet("getcustom_list")] + public IActionResult GetWmOutOrder() + { + List customs= _WmOutOrderService.GetCustominfo(); + + return SUCCESS(customs); + } + + /// + /// 查询物料记录表列表 + /// + /// + /// + [HttpGet("getmaterial_list")] + + public IActionResult QueryWmMaterial([FromQuery] WmMaterialQueryDto parm) + { + var response = _WmOutOrderService.GetmaterialList(parm); + return SUCCESS(response); + } + + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj index e4f213a0..986c743b 100644 --- a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj +++ b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj @@ -48,6 +48,7 @@ + diff --git a/ZR.Admin.WebApi/appsettings.development.json b/ZR.Admin.WebApi/appsettings.development.json index 16cd819c..820527f3 100644 --- a/ZR.Admin.WebApi/appsettings.development.json +++ b/ZR.Admin.WebApi/appsettings.development.json @@ -11,7 +11,7 @@ { //外网连接服务器 - "Conn": "Data Source=127.0.0.1;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;", diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-客户信息-0317153123.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-客户信息-0317153123.zip deleted file mode 100644 index 73777ba743b156edaf8279f6375679364d3bd278..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7827 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 diff --git a/ZR.Model/MES/wms/Dto/WmMaterialDto.cs b/ZR.Model/MES/wms/Dto/WmMaterialDto.cs index 630e54aa..5dfe2ab2 100644 --- a/ZR.Model/MES/wms/Dto/WmMaterialDto.cs +++ b/ZR.Model/MES/wms/Dto/WmMaterialDto.cs @@ -48,6 +48,38 @@ namespace ZR.Model.MES.wms.Dto public DateTime? UpdatedTime { get; set; } } + /// + /// 带库存记录的物料库存表 + /// + public class WmMaterialQuery_stockQuantityDto : WmMaterialQueryDto + { + /// + /// 库存数量 + /// + public int stockQuantity { get; set; } + + /// + /// 需要出货数量 + /// + public int requireOutNum { get; set; } + + } + + /// + /// 带需要出货数量的物料库存表 + /// + public class WmMaterialQuery_stockQuantityDto2 : WmMaterialQueryDto + { + + + /// + /// 需要出货数量 + /// + public int requireOutNum { get; set; } + + } + + /// /// 物料记录表输入输出对象 /// @@ -95,4 +127,7 @@ namespace ZR.Model.MES.wms.Dto } + + + } \ No newline at end of file diff --git a/ZR.Model/MES/wms/Dto/WmOutOrderDto.cs b/ZR.Model/MES/wms/Dto/WmOutOrderDto.cs new file mode 100644 index 00000000..71c71885 --- /dev/null +++ b/ZR.Model/MES/wms/Dto/WmOutOrderDto.cs @@ -0,0 +1,71 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.MES.wms.Dto +{ + /// + /// 出货单(物料+客户)查询对象 + /// + public class WmOutOrderQueryDto : PagerInfo + { + } + + /// + /// 出货单(物料+客户)输入输出对象 + /// + public class WmOutOrderDto + { + + public string ShipmentNum { get; set; } + + public string CustomId { get; set; } + + public string CustomNo { get; set; } + + public string CustomName { get; set; } + + public string CustomAddress { get; set; } + + public string Remarks { get; set; } + + public int Type { get; set; } + + public int? Status { get; set; } + + public int? Year { get; set; } + + public int? Week { get; set; } + + public int? Date { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + + + + } + /// + /// 出货单(物料+客户)输入输出对象 + /// + public class WmOutOrder_materialDto : WmOutOrderDto + { + //带出货数量的物料表 + public List MaterialList { get; set; } + + + } + /// + /// 出货单_物料——数量 + /// + public class WmOutOrder_material_num : WmOutOrderDto + { + //带出货数量的物料表 + public List MaterialList { get; set; } + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/wms/WmGoodsNowProduction.cs b/ZR.Model/MES/wms/WmGoodsNowProduction.cs index 5d0d7d0f..38753efc 100644 --- a/ZR.Model/MES/wms/WmGoodsNowProduction.cs +++ b/ZR.Model/MES/wms/WmGoodsNowProduction.cs @@ -27,12 +27,19 @@ namespace ZR.Model.MES.wms public string PackageCodeClient { get; set; } /// - /// 箱子编号 (批次号) + /// 箱子编号 (原始) /// [SugarColumn(ColumnName = "package_code_original")] public string PackageCodeOriginal { get; set; } + /// + /// 零件号 + /// + [SugarColumn(ColumnName = "partnumber")] + public string Partnumber { get; set; } + + /// /// 库位编号 /// diff --git a/ZR.Model/MES/wms/WmMaterialOutorder.cs b/ZR.Model/MES/wms/WmMaterialOutorder.cs new file mode 100644 index 00000000..8451c663 --- /dev/null +++ b/ZR.Model/MES/wms/WmMaterialOutorder.cs @@ -0,0 +1,59 @@ +namespace ZR.Model.MES.wms +{ + /// + /// 物料表和出库单关联表 + /// + [SugarTable("wm_material_outorder")] + public class WmMaterialOutorder + { + /// + /// Id + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + /// + /// 物料表主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "fk_material_id")] + public string FkMaterialId { get; set; } + + /// + /// 出货单id + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "fk_outorder_id")] + public string FkOutorderId { get; set; } + + + /// + /// 出货数量 + /// + [SugarColumn(ColumnName = "outhouse_num")] + public int OuthouseNum { 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.Model/MES/wms/WmOutOrder.cs b/ZR.Model/MES/wms/WmOutOrder.cs index 8facbd8b..fb4e853e 100644 --- a/ZR.Model/MES/wms/WmOutOrder.cs +++ b/ZR.Model/MES/wms/WmOutOrder.cs @@ -1,129 +1,100 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using SqlSugar; + namespace ZR.Model.MES.wms { /// /// 出货单(物料+客户) - /// + /// [SugarTable("wm_out_order")] public class WmOutOrder { + + //[Navigate(NavigateType.OneToMany, nameof(WmMaterialOutorder.FkOutorderId))]//BookA表中的studenId + //public List Books { get; set; }//注意禁止给books手动赋值 + + /// - /// 主键G - /// - [SugarColumn(ColumnName="id" ,IsPrimaryKey = true )] - public string Id { get; set; } - /// - /// 出货单号(雪花算法) - /// - [SugarColumn(ColumnName="shipment_num" )] - public string ShipmentNum { get; set; } + /// 出库单号(EG+时间) + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "shipment_num")] + public string ShipmentNum { get; set; } + /// /// 客户id - /// - [SugarColumn(ColumnName="custom_id" )] - public string CustomId { get; set; } + /// + [SugarColumn(ColumnName = "custom_id")] + public string CustomId { get; set; } + /// /// 客户代码 - /// - [SugarColumn(ColumnName="custom_no" )] - public string CustomNo { get; set; } + /// + [SugarColumn(ColumnName = "custom_no")] + public string CustomNo { get; set; } + /// /// 客户名称 - /// - [SugarColumn(ColumnName="custom_name" )] - public string CustomName { get; set; } + /// + [SugarColumn(ColumnName = "custom_name")] + public string CustomName { get; set; } + /// /// 客户地址 - /// - [SugarColumn(ColumnName="custom_address" )] - public string CustomAddress { get; set; } - /// - /// 物料号(零件号) - /// - [SugarColumn(ColumnName="partnumber" )] - public string Partnumber { get; set; } - /// - /// 单位 - /// - [SugarColumn(ColumnName="unit" )] - public string Unit { get; set; } - /// - /// 产品描述(产品名称) - /// - [SugarColumn(ColumnName="product_name" )] - public string ProductName { get; set; } - /// - /// 产品颜色 - /// - [SugarColumn(ColumnName="color" )] - public string Color { get; set; } - /// - /// 规格(左右脚) - /// - [SugarColumn(ColumnName="specification" )] - public string Specification { get; set; } - /// - /// 显示描述(产品描述+颜色+规格) - /// - [SugarColumn(ColumnName="description" )] - public string Description { get; set; } - /// - /// 版本号 - /// - [SugarColumn(ColumnName="version" )] - public string Version { get; set; } + /// + [SugarColumn(ColumnName = "custom_address")] + public string CustomAddress { get; set; } + /// /// 备注 - /// - [SugarColumn(ColumnName="remarks" )] - public string Remarks { get; set; } + /// + public string Remarks { get; set; } + /// - /// 状态(0-不可见 1-可见) - /// - [SugarColumn(ColumnName="status" )] - public int? Status { get; set; } + /// 出库单状态(1-出库中 2-出库完成 3-弃用) + /// + public int Type { get; set; } + + /// + /// 状态(0-停用 1-启用) + /// + public int? Status { get; set; } + /// /// 年 - /// - [SugarColumn(ColumnName="year" )] - public int? Year { get; set; } + /// + public int? Year { get; set; } + /// /// 周 - /// - [SugarColumn(ColumnName="week" )] - public int? Week { get; set; } + /// + public int? Week { get; set; } + /// /// 日 - /// - [SugarColumn(ColumnName="date" )] - public int? Date { get; set; } - /// - /// 要货数量 - /// - [SugarColumn(ColumnName="number" )] - public int? Number { get; set; } + /// + public int? Date { get; set; } + /// /// 创建人 - /// - [SugarColumn(ColumnName="CREATED_BY" )] - public string CreatedBy { get; set; } + /// + [SugarColumn(ColumnName = "cREATED_BY")] + public string CreatedBy { get; set; } + /// /// 创建时间 - /// - [SugarColumn(ColumnName="CREATED_TIME" )] - public DateTime? CreatedTime { get; set; } + /// + [SugarColumn(ColumnName = "cREATED_TIME")] + public DateTime? CreatedTime { get; set; } + /// /// 更新人 - /// - [SugarColumn(ColumnName="UPDATED_BY" )] - public string UpdatedBy { get; set; } + /// + [SugarColumn(ColumnName = "uPDATED_BY")] + public string UpdatedBy { get; set; } + /// /// 更新时间 - /// - [SugarColumn(ColumnName="UPDATED_TIME" )] - public DateTime? UpdatedTime { get; set; } + /// + [SugarColumn(ColumnName = "uPDATED_TIME")] + public DateTime? UpdatedTime { get; set; } + } -} +} \ No newline at end of file diff --git a/ZR.Service/mes/wms/IService/IWmOutOrderService.cs b/ZR.Service/mes/wms/IService/IWmOutOrderService.cs new file mode 100644 index 00000000..e7e2c98e --- /dev/null +++ b/ZR.Service/mes/wms/IService/IWmOutOrderService.cs @@ -0,0 +1,30 @@ +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 IWmOutOrderService : IBaseService + { + PagedInfo GetList(WmOutOrderQueryDto parm); + + WmOutOrder_material_num GetInfo(string ShipmentNum); + + WmOutOrder AddWmOutOrder(WmOutOrder_materialDto parm); + + int UpdateWmOutOrder(WmOutOrder parm); + + + List GetCustominfo(); + + (List, int) GetmaterialList(WmMaterialQueryDto parm); + + } +} diff --git a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs index 85e55f47..9cfc528f 100644 --- a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs +++ b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs @@ -54,6 +54,7 @@ namespace ZR.Service.mes.wms wmGood.PackageCode = Getpack_no(resultionPackage.WorkoderID, flow_num.ToString("000")); wmGood.PackageCodeClient = resultionPackage.PatchCode; + wmGood.Partnumber = resultionPackage.PartNumner; wmGood.PackageCodeOriginal = resultionPackage.originalCode; wmGood.LocationCode = wmgoods.location; diff --git a/ZR.Service/mes/wms/WmOutOrderService.cs b/ZR.Service/mes/wms/WmOutOrderService.cs new file mode 100644 index 00000000..92d9850a --- /dev/null +++ b/ZR.Service/mes/wms/WmOutOrderService.cs @@ -0,0 +1,224 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using ZR.Model; +using ZR.Repository; +using ZR.Service.mes.wms.IService; +using ZR.Model.MES.wms; +using ZR.Model.MES.wms.Dto; +using Mapster; +using System.Collections.Generic; + +namespace ZR.Service.mes.wms +{ + /// + /// 出货单(物料+客户)Service业务层处理 + /// + [AppService(ServiceType = typeof(IWmOutOrderService), ServiceLifetime = LifeTime.Transient)] + public class WmOutOrderService : BaseService, IWmOutOrderService + { + /// + /// 查询出货单(物料+客户)列表 + /// + /// + /// + public PagedInfo GetList(WmOutOrderQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public WmOutOrder_material_num GetInfo(string ShipmentNum) + { + + WmOutOrder WmOutOrderList = Context.Queryable() + .Where(it => it.ShipmentNum == ShipmentNum) + .First(); + + WmOutOrder_material_num wmOutOrderItem = null; + + if (WmOutOrderList != null) + { + wmOutOrderItem = WmOutOrderList.Adapt(); + + List moList = Context.Queryable() + .Where(it => it.FkOutorderId == WmOutOrderList.ShipmentNum) + .ToList(); + + if (moList != null && moList.Count > 0) + { + List Material_stock = new List(); + + foreach (var moItem in moList) + { + WmMaterial material = Context.Queryable().Where(it => it.Id == moItem.FkMaterialId).First(); + WmMaterialQuery_stockQuantityDto2 dto2 = material.Adapt(); + dto2.requireOutNum = moItem.OuthouseNum; + Material_stock.Add(dto2); + } + wmOutOrderItem.MaterialList = Material_stock; + } + } + + + + return wmOutOrderItem; + } + + /// + /// 添加出货单(物料+客户) + /// + /// + /// + public WmOutOrder AddWmOutOrder(WmOutOrder_materialDto model) + { + string today_id = "EG" + DateTime.Now.ToString("yyMMdd"); + string last_outorder_ShipmentNum = Context.Queryable().Where(it => it.ShipmentNum.StartsWith(today_id)).Max(it => it.ShipmentNum); + if (string.IsNullOrEmpty(last_outorder_ShipmentNum)) + { + model.ShipmentNum = today_id + "001"; + + } + else + { + int flow = int.Parse(last_outorder_ShipmentNum.Substring(last_outorder_ShipmentNum.Length - 3, 3)) + 1; + model.ShipmentNum = today_id + flow.ToString("000"); + + } + WmOutOrder wmOutOrder = model.Adapt(); + + // 关联表也要新增 + if (model.MaterialList != null) + { + if (model.MaterialList.Count > 0) + { + List materialOutorderList = new List(); + + foreach (var item in model.MaterialList) + { + WmMaterialOutorder materialOutorder = new WmMaterialOutorder(); + materialOutorder.FkMaterialId = item.Id; + materialOutorder.FkOutorderId = model.ShipmentNum; + materialOutorder.OuthouseNum = item.requireOutNum; + materialOutorder.CreatedBy = model.CreatedBy; + materialOutorder.CreatedTime = DateTime.Now; + materialOutorderList.Add(materialOutorder); + }; + int result = Context.Insertable(materialOutorderList).ExecuteCommand(); + } + + } + + return Context.Insertable(wmOutOrder).ExecuteReturnEntity(); + } + + /// + /// 修改出货单(物料+客户) + /// + /// + /// + public int UpdateWmOutOrder(WmOutOrder model) + { + //var response = Update(w => w.ShipmentNum == model.ShipmentNum, it => new WmOutOrder() + //{ + // CustomNo = model.CustomNo, + // CustomName = model.CustomName, + // CustomAddress = model.CustomAddress, + // Remarks = model.Remarks, + // Type = model.Type, + // Status = model.Status, + // Year = model.Year, + // Week = model.Week, + // Date = model.Date, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + + + + /// + /// 获取用户信息 + /// + /// + public List GetCustominfo() + { + + return Context.Queryable().ToList(); + + } + + /// + /// 查询物料记录表列表 + /// + /// + /// + public (List, int) GetmaterialList(WmMaterialQueryDto parm) + { + int total = 0; + var predicate = Expressionable.Create() + .AndIF(parm.Partnumber != null, it => it.Partnumber.Contains(parm.Partnumber)) + .AndIF(parm.U8InventoryCode != null, it => it.U8InventoryCode.Contains(parm.U8InventoryCode)) + .AndIF(parm.ProductName != null, it => it.ProductName.Contains(parm.ProductName)) + .AndIF(parm.Color != null, it => it.Color.Contains(parm.Color)) + .AndIF(parm.Specification != null, it => it.Specification.Contains(parm.Specification)) + .AndIF(parm.Description != null, it => it.Description.Contains(parm.Description)) + .AndIF(parm.Search1 != null, it => it.Search1.Contains(parm.Search1) || it.Search2.Contains(parm.Search1)) + .AndIF(parm.Status > -1, it => it.Status == parm.Status); + + + List materialList = Context.Queryable() + .Where(predicate.ToExpression()).OrderByDescending(it => it.CreatedTime) + .ToPageList(parm.PageNum, parm.PageSize, ref total); + + + List material_stockQuantity_list = new List(); + + + if (materialList.Count > 0) + { + foreach (WmMaterial item in materialList) + { + + WmMaterialQuery_stockQuantityDto wmMaterialQuery_Stock_item = item.Adapt(); + + int material_num = 0; + List productioList = Context + .Queryable() + .Where(it => it.Partnumber == item.Partnumber) + .ToList(); + + if (productioList.Count > 0) + { + foreach (var product in productioList) + { + material_num = material_num + (int)product.GoodsNumLogic; + } + } + wmMaterialQuery_Stock_item.stockQuantity = material_num; + material_stockQuantity_list.Add(wmMaterialQuery_Stock_item); + + + } + } + return (material_stockQuantity_list, total); + } + + } +} \ No newline at end of file From 28d83b147ebc4de28fed454d8119326773e425de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=AD=A3=E6=98=93?= <9634538+git_rabbit@user.noreply.gitee.com> Date: Fri, 1 Mar 2024 14:42:53 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E6=9F=A5=E8=AF=A2=E6=96=B9=E5=BC=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PublishProfiles/FolderProfile.pubxml | 6 ++-- ZR.Service/mes/qc/QCStatisticsService.cs | 35 ++++++++++--------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/ZR.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml b/ZR.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml index 68a5a2d9..3c720a89 100644 --- a/ZR.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml +++ b/ZR.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml @@ -7,16 +7,16 @@ https://go.microsoft.com/fwlink/?LinkID=208121. true false true - Debug + Release Any CPU FileSystem - bin\Debug\net7.0\publish\ + bin\Release\net7.0\publish\ FileSystem <_TargetId>Folder net7.0 e5497bb4-b0c1-4794-9fae-163f626ec399 - false + true win-x64 production diff --git a/ZR.Service/mes/qc/QCStatisticsService.cs b/ZR.Service/mes/qc/QCStatisticsService.cs index 8a59de61..b920b049 100644 --- a/ZR.Service/mes/qc/QCStatisticsService.cs +++ b/ZR.Service/mes/qc/QCStatisticsService.cs @@ -33,11 +33,11 @@ namespace ZR.Service.mes.qc { int totalNum = 0; var predicate = Expressionable.Create() - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) //XXX:修改查询日期查询的字段 - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Equals(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber)) + .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) + .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) + .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) + .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); @@ -67,10 +67,11 @@ namespace ZR.Service.mes.qc { int totalNum = 0; var predicate = Expressionable.Create() - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Equals(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber)) + //XXX:修改查询日期查询的字段 + .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) + .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) + .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) + .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); @@ -99,10 +100,11 @@ namespace ZR.Service.mes.qc { int totalNum = 0; var predicate = Expressionable.Create() - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Equals(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber)) + //XXX:修改查询日期查询的字段 + .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) + .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) + .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) + .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); @@ -132,10 +134,11 @@ namespace ZR.Service.mes.qc { int totalNum = 0; var predicate = Expressionable.Create() - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Equals(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber)) + //XXX:修改查询日期查询的字段 + .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) + .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) + .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) + .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); From beb48faf655fcfb6bd1ac445425ca508b1078776 Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Tue, 19 Mar 2024 20:34:04 +0800 Subject: [PATCH 09/10] =?UTF-8?q?Revert=20"=E8=B4=A8=E9=87=8F=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E6=97=A5=E6=9C=9F=E6=9F=A5=E8=AF=A2=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit ca026042f7ae0d2702403a3bdc1b7d6e3757b070. --- .../PublishProfiles/FolderProfile.pubxml | 6 ++-- ZR.Service/mes/qc/QCStatisticsService.cs | 35 +++++++++---------- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/ZR.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml b/ZR.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml index 3c720a89..68a5a2d9 100644 --- a/ZR.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml +++ b/ZR.Admin.WebApi/Properties/PublishProfiles/FolderProfile.pubxml @@ -7,16 +7,16 @@ https://go.microsoft.com/fwlink/?LinkID=208121. true false true - Release + Debug Any CPU FileSystem - bin\Release\net7.0\publish\ + bin\Debug\net7.0\publish\ FileSystem <_TargetId>Folder net7.0 e5497bb4-b0c1-4794-9fae-163f626ec399 - true + false win-x64 production diff --git a/ZR.Service/mes/qc/QCStatisticsService.cs b/ZR.Service/mes/qc/QCStatisticsService.cs index b920b049..8a59de61 100644 --- a/ZR.Service/mes/qc/QCStatisticsService.cs +++ b/ZR.Service/mes/qc/QCStatisticsService.cs @@ -33,11 +33,11 @@ namespace ZR.Service.mes.qc { int totalNum = 0; var predicate = Expressionable.Create() + .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) //XXX:修改查询日期查询的字段 - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) + .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) + .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Equals(workorderid)) + .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); @@ -67,11 +67,10 @@ namespace ZR.Service.mes.qc { int totalNum = 0; var predicate = Expressionable.Create() - //XXX:修改查询日期查询的字段 - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) + .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) + .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) + .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Equals(workorderid)) + .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); @@ -100,11 +99,10 @@ namespace ZR.Service.mes.qc { int totalNum = 0; var predicate = Expressionable.Create() - //XXX:修改查询日期查询的字段 - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) + .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) + .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) + .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Equals(workorderid)) + .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); @@ -134,11 +132,10 @@ namespace ZR.Service.mes.qc { int totalNum = 0; var predicate = Expressionable.Create() - //XXX:修改查询日期查询的字段 - .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime.ToLocalTime()) - .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime <= endTime.ToLocalTime()) - .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Contains(workorderid)) - .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Contains(partnumber)) + .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) + .AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.EndTime <= endTime) + .AndIF(!string.IsNullOrEmpty(workorderid), it => it.WorkorderId.Equals(workorderid)) + .AndIF(!string.IsNullOrEmpty(partnumber), it => it.FinishedPartNumber.Equals(partnumber)) .AndIF(!string.IsNullOrEmpty(team), it => it.Team.Equals(team)) .AndIF(!string.IsNullOrEmpty(product_description), it => it.ProductDescription.Contains(product_description)) .ToExpression(); From a3d7b47a88457a2392224837d09e43ecece6c7ed Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Tue, 19 Mar 2024 20:41:57 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/mes/qc/FQC/FirstFQCController.cs | 5 +++-- ZR.Service/mes/qc/FirstFQCService.cs | 2 +- ZR.Service/mes/qc/QCStatisticsService.cs | 8 ++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ZR.Admin.WebApi/Controllers/mes/qc/FQC/FirstFQCController.cs b/ZR.Admin.WebApi/Controllers/mes/qc/FQC/FirstFQCController.cs index 0649afb6..fe61054f 100644 --- a/ZR.Admin.WebApi/Controllers/mes/qc/FQC/FirstFQCController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/qc/FQC/FirstFQCController.cs @@ -298,11 +298,12 @@ namespace ZR.Admin.WebApi.Controllers.mes.qc.IQC } - // 更改工单状态为完成态 + // 生成质量统计报表 [HttpGet("generateQualityStatisticsTable")] public IActionResult GenerateQualityStatisticsTable(string workorderID,string team, DateTime firstQuality_time) { - int result = fQCService.GenerateQualityStatisticsTable(workorderID, team, firstQuality_time); + + int result = fQCService.GenerateQualityStatisticsTable(workorderID, team, firstQuality_time.ToLocalTime()); return SUCCESS(result); } diff --git a/ZR.Service/mes/qc/FirstFQCService.cs b/ZR.Service/mes/qc/FirstFQCService.cs index d62b60e7..bed1cdf2 100644 --- a/ZR.Service/mes/qc/FirstFQCService.cs +++ b/ZR.Service/mes/qc/FirstFQCService.cs @@ -132,7 +132,7 @@ namespace ZR.Service.mes.qc public int WriteProcessFlow_first(string workorderID, DateTime time) { ProWorkordertimeStep step = new ProWorkordertimeStep(); - step.FirstInspectTime = time; + step.FirstInspectTime = time.ToLocalTime(); step.CreatedTime = DateTime.Now; step.WorkoderId = workorderID; diff --git a/ZR.Service/mes/qc/QCStatisticsService.cs b/ZR.Service/mes/qc/QCStatisticsService.cs index 8a59de61..2dfb866e 100644 --- a/ZR.Service/mes/qc/QCStatisticsService.cs +++ b/ZR.Service/mes/qc/QCStatisticsService.cs @@ -31,6 +31,8 @@ namespace ZR.Service.mes.qc /// public (List, int) GetQualityStatisticsTable_first(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) { + starttime = starttime.ToLocalTime(); + endTime = endTime.ToLocalTime(); int totalNum = 0; var predicate = Expressionable.Create() .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) @@ -65,6 +67,8 @@ namespace ZR.Service.mes.qc /// public (List, int) GetQualityStatisticsTable_again(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) { + starttime = starttime.ToLocalTime(); + endTime = endTime.ToLocalTime(); int totalNum = 0; var predicate = Expressionable.Create() .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) @@ -97,6 +101,8 @@ namespace ZR.Service.mes.qc /// public (List, int) GetQualityStatisticsTable_final(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) { + starttime = starttime.ToLocalTime(); + endTime = endTime.ToLocalTime(); int totalNum = 0; var predicate = Expressionable.Create() .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime) @@ -130,6 +136,8 @@ namespace ZR.Service.mes.qc /// public (List, int) GetQualityStatisticsTable_total(DateTime starttime, DateTime endTime, string workorderid, string partnumber, string product_description, string team, int pageNum, int pageSize) { + starttime = starttime.ToLocalTime(); + endTime = endTime.ToLocalTime(); int totalNum = 0; var predicate = Expressionable.Create() .AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.StartTime >= starttime)