From 505e0d47a72f51b0dc4dc315f8fce36cc73abc89 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期二, 29 七月 2025 17:28:28 +0800 Subject: [PATCH] 添加看板获取货位状态接口, 修复容器插入, 货位容器绑定货位字段未更新的问题 --- api/DebugController.cs | 96 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 92 insertions(+), 4 deletions(-) diff --git a/api/DebugController.cs b/api/DebugController.cs index e2c950a..181c631 100644 --- a/api/DebugController.cs +++ b/api/DebugController.cs @@ -4,13 +4,15 @@ using System.Web.Http; using HH.WCS.Mobox3.AnGang.dispatch; -using HH.WCS.Mobox3.AnGang.wms; using HH.WCS.Mobox3.AnGang.models; +using HH.WCS.Mobox3.AnGang.util; +using HH.WCS.Mobox3.AnGang.wms; using Newtonsoft.Json; +using SqlSugar; + using static HH.WCS.Mobox3.AnGang.api.ApiModel; -using HH.WCS.Mobox3.AnGang.util; namespace HH.WCS.Mobox3.AnGang.api { /// <summary> @@ -144,12 +146,12 @@ return "鎵句笉鍒板搴旂殑浠诲姟鍙�; } - cgDetail.F_QTY = model.Weight; + cgDetail.F_WEIGHT = model.Weight; task.F_WEIGHT = model.Weight; try { using (var tran = db.Ado.UseTran()) { - if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_QTY) + if (db.Updateable<TN_CG_Detail>(cgDetail).UpdateColumns(it => it.F_WEIGHT) .ExecuteCommand() <= 0) { tran.RollbackTran(); return "淇敼澶辫触"; @@ -170,6 +172,92 @@ return ex.Message; } } + + [HttpPost] + public string AddCntrData() { + var db = new SqlHelper<object>().GetInstance(); + try { + //var locCntrRelList = db.Queryable<TN_Loc_Container>(); + //var result = db.Queryable<TN_CG_Detail>() + // .GroupBy(d => d.S_CNTR_CODE) // 鎸�S_CNTR_CODE 鍒嗙粍 + // .Select(d => new CntrCodeCountResult { + // S_CNTR_CODE = d.S_CNTR_CODE, + // Count = SqlFunc.AggregateCount(d.S_ITEM_CODE) // 璁$畻姣忕粍鐨勬潯鐩暟 + // }) + // .ToList(); + + //var cntrList = locCntrRelList.Select(c => c.S_CNTR_CODE); + + var result = db.Queryable<TN_CG_Detail>() + .LeftJoin<TN_Loc_Container>((detail, container) => detail.S_CNTR_CODE == container.S_CNTR_CODE) + .GroupBy(detail => detail.S_CNTR_CODE) + .Select((detail, container) => new CntrCodeCountResult { + S_CNTR_CODE = detail.S_CNTR_CODE, + Count = SqlFunc.AggregateCount(detail.S_ITEM_CODE) + }) + .ToList(); + + var cntrList = db.Queryable<TN_Container>().ToList(); + + var cntrListToUpdate = new List<TN_Container>(); + var cntrListToInsert = new List<TN_Container>(); + foreach (var cntr in result) { + var oldCntr = cntrList.Where(c => c.S_CODE == cntr.S_CNTR_CODE).FirstOrDefault(); + if (oldCntr == null) { + cntrListToUpdate.Add(new TN_Container { S_CODE = cntr.S_CNTR_CODE, N_DETAIL_COUNT = cntr.Count }); + } + + if (oldCntr.N_DETAIL_COUNT != cntr.Count) { + cntrListToUpdate.Add(new TN_Container { S_CODE = cntr.S_CNTR_CODE, N_DETAIL_COUNT = cntr.Count }); + } + } + + using (var tran = db.Ado.UseTran()) { + if (cntrListToUpdate.Count > 0 && db.Updateable(cntrListToUpdate).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return "鏇存柊澶辫触"; + } + if (cntrListToInsert.Count > 0 && db.Insertable(cntrListToInsert).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return "鎻掑叆澶辫触"; + } + tran.CommitTran(); + } + } + catch (Exception ex) { + + return ex.Message; + } + + return "success"; + } + + [HttpPost] + + public string RefreshCgDetail() { + var db = new SqlHelper<object>().GetInstance(); + try { + var locCntrRelList = db.Queryable<TN_Loc_Container>().ToList(); + var cgDetailList = db.Queryable<TN_CG_Detail>().ToList(); + cgDetailList.ForEach(d => { + var locCntrRel = locCntrRelList.Where(c => c.S_CNTR_CODE == d.S_CNTR_CODE).FirstOrDefault(); + if (locCntrRel != null) { + d.S_LOC_CODE = locCntrRel.S_LOC_CODE; + } + }); + + var res = db.Updateable(cgDetailList).UpdateColumns(it => new { it.S_LOC_CODE }).ExecuteCommand(); + return $"{res}"; + } + catch (Exception ex) { + return ex.Message; + } + } + } + + public class CntrCodeCountResult { + public string S_CNTR_CODE { get; set; } // 瀹瑰櫒浠g爜 + public int Count { get; set; } // 璇ュ鍣ㄤ唬鐮佸搴旂殑鏉$洰鏁� } public class ReturnResults { -- Gitblit v1.9.1