From 73a5779f0d27535a46ae5bc00a5e006be6c24d25 Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期四, 03 七月 2025 08:37:36 +0800 Subject: [PATCH] 1.河南平高变更单需求修改 审核自动触发出库任务2.增加优先级字段3.分拣接口提出来单独使用4.增加入库单明细临时表 5增加过账日期表和审核回调逻辑 --- api/WmsSapController.cs | 305 +++++++++++++++++++++++++++++++++++--------------- 1 files changed, 214 insertions(+), 91 deletions(-) diff --git a/api/WmsSapController.cs b/api/WmsSapController.cs index 5060af9..d453412 100644 --- a/api/WmsSapController.cs +++ b/api/WmsSapController.cs @@ -17,22 +17,196 @@ using static HH.WCS.Mobox3.pinggao.api.OtherModel; using static HH.WCS.Mobox3.pinggao.api.ApibackModel; using HH.WCS.Mobox3.pinggao.models; +using static HH.WCS.Mobox3.pinggao.models.DAPING; +using HH.WCS.Mobox3.pinggao.util; +using SqlSugar; +using System.Diagnostics; namespace HH.WCS.Mobox3.pinggao.api { public class WmsSapController : System.Web.Http.ApiController { /// <summary> + /// 鍑哄韩浠诲嫏鍒楄〃 + /// </summary> + /// <returns></returns> + public DPList DpRecord(DpDto dpDto) + { + var response = new DPList + { + DpList = new List<DP> { } + }; + if (string.IsNullOrEmpty(dpDto.Code)) + { + LogHelper.Info("璐т綅淇℃伅涓嶈兘涓虹┖" ); + return response; + } + var db = new SqlHelper<object>().GetInstance(); + var list =db.Queryable<TN_DPRECORD>().Where(s=>s.S_LOCATION== dpDto.Code).OrderByDescending(s=>s.T_CREATE).ToList(); + var tasksList = list.Select(t => new DP + { + S_NO = t.S_NO, + S_WLBM = t.S_WLBM, + S_WLMC = t.S_WLMC, + N_COUNT = t.N_COUNT, + S_LOCATION = t.S_LOCATION + }).ToList(); + response.DpList = tasksList; + return response; + + } + #region 澶у睆鏁版嵁鎺ュ彛 + /// <summary> + /// 澶у睆鏁版嵁 + /// </summary> + /// <returns></returns> + public BarChartResponse InOut(){ + + var response = new BarChartResponse + { + OutboundData = new List<BarChartData> + { + }, + InboundData = new List<BarChartData> + { + + }, + CKNData = new List<NB> { }, + ListTask = new List<Tasks> { }, + Inttbounddjcount = 0, + Outtbounddjcount=0, + IntodayCount = 0, + OuttodayCount = 0 + + }; + + var db = new SqlHelper<object>().GetInstance(); + #region 鍑哄簱 + // 1. 鑾峰彇褰撳墠骞翠唤锛堟垨鎸囧畾骞翠唤锛�+ int year = DateTime.Now.Year; // 濡�023 + + // 2. 鐢熸垚1-12鏈堟墍鏈夋湀浠斤紙纭繚瀹屾暣鎬э級 + var allMonths = Enumerable.Range(1, 12) + .Select(m => new DateTime(year, m, 1).ToString("MM")) + .ToList(); + + //var allMonths = Enumerable.Range(1, 12).ToList(); + // 3. 鏌ヨ鏁版嵁搴撹幏鍙栧嚭搴撴暟鎹紙鎸夋湀浠藉垎缁勭粺璁★級 + var outboundCounts = db.Queryable<WCSTask>() + .Where(a => a.S_TYPE.Contains("鍑哄簱") &&a.N_B_STATE==3&& a.T_END_TIME != null&&a.T_END_TIME.Value.Year== year) + .ToList() // 鍔犺浇鍒板唴瀛�+ .GroupBy(a => a.T_END_TIME.Value.ToString("MM")) // 鎸夋湀浠藉垎缁�+ .ToDictionary(g => g.Key, g => g.Count()); // 杞负瀛楀吀锛堟湀浠�璁板綍鏁帮級 + + // 3. 鏋勫缓瀹屾暣1-12鏈堟暟鎹紙缂哄け鏈堜唤琛�锛�+ var outboundData = allMonths.Select(month => new BarChartData + { + Month = int.Parse(month), + Count = outboundCounts.TryGetValue(month, out var count) ? count : 0 + }).ToList(); + response.OutboundData = outboundData; + #endregion + #region 鍏ュ簱 + var inttboundCounts = db.Queryable<WCSTask>() + .Where(a => a.S_TYPE.Contains("鍏ュ簱") && a.N_B_STATE == 3 && a.T_END_TIME != null && a.T_END_TIME.Value.Year == year) + .ToList() // 鍔犺浇鍒板唴瀛�+ .GroupBy(a => a.T_END_TIME.Value.ToString("MM")) // 鎸夋湀浠藉垎缁�+ .ToDictionary(g => g.Key, g => g.Count()); // 杞负瀛楀吀锛堟湀浠�璁板綍鏁帮級 + var intboundData = allMonths.Select(month => new BarChartData + { + Month = int.Parse(month), + Count = inttboundCounts.TryGetValue(month, out var count) ? count : 0 + }).ToList(); + response.InboundData = intboundData; + #endregion + #region 鏈畬鎴愬崟鎹噺 + var Inttbounddjcount = db.Queryable<TN_Inbound_Order>().Where(s=>s.N_B_STATE==0).Count(); + var Outtbounddjcount = db.Queryable<TN_Ll_Order>().Where(s=>s.N_B_STATE==0).Count(); + var today = DateTime.Today; + var tomorrow = today.AddDays(1); + + var IntodayCount = db.Queryable<WCSTask>() + .Where(s => s.N_B_STATE == 3 && s.S_TYPE.Contains("鍏ュ簱")&& + s.T_END_TIME >= today && + s.T_END_TIME < tomorrow).Count(); + var OuttodayCount = db.Queryable<WCSTask>() + .Where(s => s.N_B_STATE == 3 && s.S_TYPE.Contains("鍑哄簱") && + s.T_END_TIME >= today && + s.T_END_TIME < tomorrow).Count(); + response.Inttbounddjcount = Inttbounddjcount; + response.Outtbounddjcount = Outtbounddjcount; + response.OuttodayCount = OuttodayCount; + response.IntodayCount = IntodayCount; + #endregion + #region 浠诲姟鍒楄〃 + var tasklist = db.Queryable<WCSTask>().Where(s => s.N_B_STATE != 2).Select(s => new { s.S_CNTR_CODE, s.S_START_AREA, s.S_END_AREA, s.S_B_STATE }).Take(5).ToList() ; + var tasksList = tasklist.Select(t => new Tasks + { + S_CNTR_CODE = t.S_CNTR_CODE, + S_START_AREA = t.S_START_AREA, + S_END_AREA = t.S_END_AREA, + S_B_STATE = t.S_B_STATE + }).ToList(); + response.ListTask = tasksList; + #endregion + + + #region 浠撳簱搴撳唴瀹℃牳 + var ManCount = db.Queryable<CntrItemRel>() + .Where(s => s.S_CNTR_TYPE == "婊℃墭") + .GroupBy(s => s.S_CNTR_CODE) + .Select(s => new { s.S_CNTR_CODE }) + .Count(); + var ManName = "婊℃墭鐩�; + + var BanCount = db.Queryable<CntrItemRel>() + .Where(s => s.S_CNTR_TYPE == "鍗婃墭") + .GroupBy(s => s.S_CNTR_CODE) + .Select(s => new { s.S_CNTR_CODE }) + .Count(); + var BanName = "鍗婃墭鐩�; + //鎵�湁瀹瑰櫒鐨勬暟閲�+ int allCntrcout = db.Queryable<LocCntrRel>().Count(); + //鎵�湁瀹瑰櫒鐗╂枡鏁伴噺 + int alltprcout = db.Queryable<CntrItemRel>() + .GroupBy(s => s.S_CNTR_CODE) + .Select(s => new { s.S_CNTR_CODE }) + .Count(); + + var KTCount = allCntrcout - alltprcout; + var KTName = "绌烘墭鐩�; + + int alllocationcout = db.Queryable<Location>().Count(); + var KHWCount = alllocationcout - allCntrcout; + var KHWName = "绌鸿揣浣�; + + var list = new List<NB> + { + new NB { Name = ManName, Count = ManCount }, + new NB { Name = BanName, Count = BanCount }, + new NB { Name = KTName, Count = KTCount }, + new NB { Name = KHWName, Count = KHWCount } + }; + response.CKNData = list; + #endregion + return response; + + } + + + #endregion + + /// <summary> /// 渚涘簲鍟嗘帴鏀舵帴鍙h幏鍙� /// </summary> /// <param name="xmlData"></param> /// <returns></returns> [HttpPost] - public Orderback.Root GYSReceiveXmlData([FromBody] GYSDto.Root xmlData) + public GYSReturnRoot.Root GYSReceiveXmlData([FromBody] GYSDto.Root xmlData) { #region xml鏁版嵁鎺ユ敹杞暟缁� - LogHelper.Info("渚涘簲鍟嗘帴鏀舵帴鍙o細" + JsonConvert.SerializeObject(xmlData)); + //LogHelper.Info("渚涘簲鍟嗘帴鏀舵帴鍙o細" + JsonConvert.SerializeObject(xmlData)); ////鎺ユ敹xml鏁版嵁 //XmlDocument xmlDoc = new XmlDocument(); @@ -48,7 +222,7 @@ #endregion #region 澶栭噰鍏ュ簱涓氬姟娴佺▼ - Orderback.Root simpleResult = WmsSpaHelper.GYS_In(xmlData); + GYSReturnRoot.Root simpleResult = WmsSpaHelper.GYS_In(xmlData); //鎺ユ敹杩斿洖鍙傛暟 鐢熸垚sap瀵规帴鏂囨。杩斿洖鏍煎紡 //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg); @@ -76,7 +250,7 @@ { #region xml鏁版嵁鎺ユ敹杞暟缁� - LogHelper.Info("鐢熶骇璁㈠崟鎺ユ敹鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData)); + //LogHelper.Info("鐢熶骇璁㈠崟鎺ユ敹鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData)); ////鎺ユ敹xml鏁版嵁 //XmlDocument xmlDoc = new XmlDocument(); @@ -117,37 +291,11 @@ [HttpPost] public WLReturnRoot.Root MaterReceiveXmlData([FromBody] MaterDto.Root xmlData) { - #region xml鏁版嵁鎺ユ敹杞暟缁�- - LogHelper.Info("鐗╂枡鎺ユ敹鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData)); - - ////鎺ユ敹xml鏁版嵁 - //XmlDocument xmlDoc = new XmlDocument(); - //xmlDoc.LoadXml(xmlData.ToString()); - - //// 灏�XmlDocument 杞崲涓�JSON 瀛楃涓�- //JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc)); - - //// 澶勭悊鐗瑰畾瀛楁锛屽己鍒惰浆鎹负鏁扮粍 - //WmsSpaHelper.EnsureArrayFormats(jsonObject, "ITEM"); - //// 鍙嶅簭鍒楀寲涓篟ootWithArray - //var data = JsonConvert.DeserializeObject<MaterDto.Root>(jsonObject.ToString()); - #endregion + #region 澶栭噰鍏ュ簱涓氬姟娴佺▼ WLReturnRoot.Root simpleResult = WmsSpaHelper.Mater_In(xmlData); - //鎺ユ敹杩斿洖鍙傛暟 鐢熸垚sap瀵规帴鏂囨。杩斿洖鏍煎紡 - //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg); - - //#endregion - //#region 杩斿洖xml - //string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml; - ////杩斿洖json - //var response = new HttpResponseMessage() - //{ - // Content = new StringContent(xml, Encoding.UTF8, "application/xml") - //}; - //return response; + var json = JsonConvert.SerializeObject(simpleResult); return simpleResult; @@ -164,7 +312,7 @@ public WcReturnRoot.Root WCReceiveXmlData([FromBody] SapRoot.Root xmlData) { #region xml鏁版嵁鎺ユ敹杞暟缁�- LogHelper.Info("澶栭噰鏀惰揣鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData)); + //LogHelper.Info("澶栭噰鏀惰揣鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData)); //鎺ユ敹xml鏁版嵁 //XmlDocument xmlDoc = new XmlDocument(); //xmlDoc.LoadXml(xmlData.ToString()); @@ -227,7 +375,7 @@ //NcDto.ROOT rOOT = new NcDto.ROOT(); //rOOT.WLPZ = new NcDto.WLPZ(); - LogHelper.Info("鍐呴噰鏀惰揣鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData)); + //LogHelper.Info("鍐呴噰鏀惰揣鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData)); ////鎺ユ敹xmloo //XmlDocument xmlDoc = new XmlDocument(); @@ -291,48 +439,23 @@ [HttpPost] public OtherReturnRoot.Root OtherReceiveXmlData([FromBody] otherDto.Root xmlData) { - #region xml鏁版嵁鎺ユ敹杞暟缁�- LogHelper.Info("鍏朵粬鍑哄叆搴搒ap鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData)); - - ////鎺ユ敹xml鏁版嵁 - //XmlDocument xmlDoc = new XmlDocument(); - //xmlDoc.LoadXml(xmlData.ToString()); - - //// 灏�XmlDocument 杞崲涓�JSON 瀛楃涓�- //JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc)); - - //// 澶勭悊鐗瑰畾瀛楁锛屽己鍒惰浆鎹负鏁扮粍 - //WmsSpaHelper.EnsureArrayFormat(jsonObject, "ITEM", "ITEM1"); - //// 鍙嶅簭鍒楀寲涓篟ootWithArray - //var data = JsonConvert.DeserializeObject<otherDto.Root>(jsonObject.ToString()); - #endregion + #region 鍏朵粬鍑哄叆搴撲笟鍔℃祦绋� List<SimpleResult> simpleResult = WmsSpaHelper.Otherbound_Order_In(xmlData); - //鎺ユ敹杩斿洖鍙傛暟 鐢熸垚sap瀵规帴鏂囨。杩斿洖鏍煎紡 - //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg); #endregion #region 杩斿洖xml - //string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml; - ////杩斿洖json - //var response = new HttpResponseMessage() - //{ - // Content = new StringContent(xml, Encoding.UTF8, "application/xml") - //}; - //return response; #endregion List<OtherReturnRoot.ITEM> wcReturnRoots = new List<OtherReturnRoot.ITEM>(); foreach (var item in simpleResult) { OtherReturnRoot.ITEM wcReturnRoot = new OtherReturnRoot.ITEM(); wcReturnRoot.WLPZBH = item.WLPZBH; - wcReturnRoot.WLPZND = item.WLPZND; + wcReturnRoot.ND = item.WLPZND; wcReturnRoot.MSGCODE = item.resultCode; wcReturnRoot.MSGDESP = item.resultMsg; wcReturnRoots.Add(wcReturnRoot); } - //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg); - // 瀹屾暣宓屽瀹炰緥鍖� var result = new OtherReturnRoot.Root { ROOT = new OtherReturnRoot.ROOT @@ -369,7 +492,26 @@ { return WmsSpaHelper.OutboundOrderSorting(model); } - + /// <summary> + /// 鍥炲簱 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [HttpPost] + public Task<SimpleResult> HkGet(HuiK model) + { + return WmsSpaHelper.HkGets(model); + } + /// <summary> + /// 绌烘墭鍑哄叆搴�+ /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [HttpPost] + public Task<SimpleResult> InOutKT(KtSorting model) + { + return WmsSpaHelper.KtSorting(model); + } /// <summary> @@ -429,42 +571,23 @@ [HttpPost] public LLDReturnRoot.Root LLDReceiveXmlData([FromBody] CKDdto.Root xmlData) { + //Stopwatch sw = new Stopwatch(); + //sw.Start(); #region xml鏁版嵁鎺ユ敹杞暟缁�- LogHelper.Info("鐢熶骇璁㈠崟棰嗘枡鍗�鐢熸垚棰嗘枡鍗�鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData)); + //LogHelper.Info("鐢熶骇璁㈠崟棰嗘枡鍗�鐢熸垚棰嗘枡鍗�鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData)); - ////鎺ユ敹xml鏁版嵁 - //XmlDocument xmlDoc = new XmlDocument(); - //xmlDoc.LoadXml(xmlData.ToString()); - //// 灏�XmlDocument 杞崲涓�JSON 瀛楃涓�- //JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc)); - - //// 澶勭悊鐗瑰畾瀛楁锛屽己鍒惰浆鎹负鏁扮粍 - - ////WmsSpaHelper.EnsureArrayFormat(jsonObject, "ITME"); - //WmsSpaHelper.EnsureArrayFormat(jsonObject["ROOT"]["SCDDLL"] as JObject, "ITEM"); - //// 鍙嶅簭鍒楀寲涓篟ootWithArray - //var data = JsonConvert.DeserializeObject<CKDdto.Root>(jsonObject.ToString()); #endregion #region 鍑哄簱涓氬姟娴佺▼ - LLDReturnRoot.Root json = WmsSpaHelper.Out_Order_Ins(xmlData); - //鎺ユ敹杩斿洖鍙傛暟 鐢熸垚sap瀵规帴鏂囨。杩斿洖鏍煎紡 - //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg); - //鎺ユ敹杩斿洖鍙傛暟 鐢熸垚sap瀵规帴鏂囨。杩斿洖鏍煎紡 - List<WcReturnRoot.ITEM> wcReturnRoots = new List<WcReturnRoot.ITEM>(); + return WmsSpaHelper.Out_Order_Ins(xmlData); - return json; + + //sw.Stop(); + //long elapsedMilliseconds = sw.ElapsedMilliseconds; + //LogHelper.Info("鐢熶骇璁㈠崟棰嗘枡鍗�鐢熸垚棰嗘枡鍗�杩斿洖鏃堕暱锛� + elapsedMilliseconds); + #endregion - //#region 杩斿洖xml - //string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml; - ////杩斿洖json - //var response = new HttpResponseMessage() - //{ - // Content = new StringContent(xml, Encoding.UTF8, "application/xml") - //}; - //return response; - //#endregion } /// <summary> @@ -478,7 +601,7 @@ { - var json = WmsSpaHelper.Out_Order_Inss(dto.S_NO); + var json = WmsSpaHelper.Out_Order_Inss(dto.S_NO,dto.N_PRIORITY); return json; -- Gitblit v1.9.1