From ac8813cde64f7bf9882657416a1d102191aae960 Mon Sep 17 00:00:00 2001 From: helongyang <647556386@qq.com> Date: 星期六, 19 七月 2025 17:32:59 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetService.cs | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 111 insertions(+), 3 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetService.cs" index 40a0e79..da53bab 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetService.cs" @@ -1,4 +1,5 @@ -锘縰sing System; +锘縰sing SqlSugar; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,7 +10,12 @@ using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; +using WIDESEA_Core.CodeConfigEnum; +using WIDESEA_Core.DB; using WIDESEA_Core.Helper; +using WIDESEA_Core.Seed; +using WIDESEA_DTO.Outbound; +using WIDESEA_IBasicService; using WIDESEA_IOutboundRepository; using WIDESEA_IOutboundService; using WIDESEA_Model.Models; @@ -19,11 +25,14 @@ public partial class ErpProScrapSheetService : ServiceBase<Dt_ErpProScrapSheet, IErpProScrapSheetRepository>, IErpProScrapSheetService { private readonly IUnitOfWorkManage _unitOfWorkManage; + private readonly IWarehouseService _warehouseService; + public IErpProScrapSheetRepository Repository => BaseDal; - public ErpProScrapSheetService(IErpProScrapSheetRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) + public ErpProScrapSheetService(IErpProScrapSheetRepository BaseDal, IUnitOfWorkManage unitOfWorkManage,IWarehouseService warehouseService) : base(BaseDal) { _unitOfWorkManage = unitOfWorkManage; + _warehouseService = warehouseService; } public override WebResponseContent AddData(SaveModel saveModel) { @@ -55,10 +64,109 @@ } if (!item.ContainsKey(nameof(Dt_ErpProScrapSheetDetail.ScrapProDetailStatus).FirstLetterToLower())) { - item.Add(nameof(Dt_ErpProScrapSheetDetail.ScrapProDetailStatus).FirstLetterToLower(), OutOrderStatusEnum.鍑哄簱涓�.ObjToInt()); + item.Add(nameof(Dt_ErpProScrapSheetDetail.ScrapProDetailStatus).FirstLetterToLower(), OutOrderStatusEnum.鏈紑濮�.ObjToInt()); } } return base.AddData(saveModel); } + public WebResponseContent Save(ErpProScrapSheetModel addProScrapSheet) { + try + { + List<Dt_ErpProScrapSheetDetail> erpProScrapSheetDetails = new List<Dt_ErpProScrapSheetDetail>(); + if (addProScrapSheet.Details != null) + { + foreach (var model in addProScrapSheet.Details) + { + Dt_ErpProScrapSheetDetail erpProScrapSheetDetail = new Dt_ErpProScrapSheetDetail() + { + ScrapProCode = model.ScrapProCode, + ScrapProVersion = model.ScrapProVersion, + ScrapProLotNo = model.ScrapProLotNo, + ScrapPcsQty = model.ScrapPcsQty, + ScrapSETQty = 0, + }; + erpProScrapSheetDetails.Add(erpProScrapSheetDetail); + } + } + Dt_ErpProScrapSheet erpProScrapSheet = new Dt_ErpProScrapSheet() + { + WarehouseId = addProScrapSheet.WarehouseId, + ProScrapSheetOrderNo = CreateCodeByRule(nameof(RuleCodeEnum.ProScrapSheetRule)), + ProScrapStatus = ProScrapSheetStatusEnum.TOChecked.ObjToInt(), + Details = erpProScrapSheetDetails + }; + _unitOfWorkManage.BeginTran(); + Db.InsertNav(erpProScrapSheet).Include(x => x.Details).ExecuteCommand(); + _unitOfWorkManage.CommitTran(); + return WebResponseContent.Instance.OK(); + + } + catch(Exception ex) + { + _unitOfWorkManage.RollbackTran(); + return WebResponseContent.Instance.Error(ex.Message); + } + + } + static object lock_code = new object(); + public string CreateCodeByRule(string ruleCode) + { + lock (lock_code) + { + + string code = string.Empty; + DateTime dateTime = DateTime.Now; + DateTime now = DateTime.Now; + try + { + if (string.IsNullOrEmpty(ruleCode)) + throw new ArgumentNullException(nameof(ruleCode)); + SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig + { + IsAutoCloseConnection = true, + DbType = DbType.SqlServer, + ConnectionString = DBContext.ConnectionString + }); + Dt_CodeRuleConfig codeRuleConfig = sugarClient.Queryable<Dt_CodeRuleConfig>().Where(x => x.RuleCode == ruleCode).First(); + if (codeRuleConfig == null) + throw new ArgumentNullException(nameof(codeRuleConfig)); + if (codeRuleConfig.ModifyDate != null) + { + dateTime = Convert.ToDateTime(codeRuleConfig.ModifyDate); + } + else + { + dateTime = Convert.ToDateTime(codeRuleConfig.CreateDate); + } + + if (now.Year == dateTime.Year && now.Month == dateTime.Month && now.Day == dateTime.Day) + { + now = dateTime; + codeRuleConfig.CurrentVal = Convert.ToInt32(codeRuleConfig.CurrentVal) + 1; + } + else + { + codeRuleConfig.CurrentVal = 1; + } + codeRuleConfig.ModifyDate = DateTime.Now; + code = codeRuleConfig.Format; + code = code.Replace($"[{CodeFormatTypeEnum.YYYY}]", now.Year.ToString().PadLeft(4, '0')); + code = code.Replace($"[{CodeFormatTypeEnum.MM}]", now.Month.ToString().PadLeft(2, '0')); + code = code.Replace($"[{CodeFormatTypeEnum.DD}]", now.Day.ToString().PadLeft(2, '0')); + code = code.Replace($"[{CodeFormatTypeEnum.ST}]", codeRuleConfig.StartStr?.ToString() ?? ""); + code = code.Replace($"[{CodeFormatTypeEnum.NUM}]", codeRuleConfig.CurrentVal.ToString().PadLeft(codeRuleConfig.Length, '0')); + Dictionary<string, object> keyValuePairs = new Dictionary<string, object>() { { nameof(codeRuleConfig.CurrentVal), codeRuleConfig.CurrentVal }, { nameof(codeRuleConfig.Id), codeRuleConfig.Id }, { nameof(codeRuleConfig.ModifyDate), DateTime.Now } }; + sugarClient.Updateable(keyValuePairs).AS(MainDb.CodeRuleConfig).WhereColumns(nameof(codeRuleConfig.Id)).ExecuteCommand(); + sugarClient.Updateable(codeRuleConfig); + + } + catch (Exception ex) + { + + } + return code; + } + } + } } -- Gitblit v1.9.3