From 48d7d2be65597d31274461daadfd2360424e28b5 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期二, 12 十一月 2024 21:36:14 +0800 Subject: [PATCH] Merge branch 'master' of http://47.115.28.255:8110/r/TigerClouds-Tech/Server/TigerApi6_2024 --- Tiger.Business/MES/Biz.Route.cs | 29 +++++++++++--- Tiger.Model.Net/Entitys/SYS/V_USER_MENU.cs | 9 ++-- Tiger.Business.MES/BIZ/BIZ_MES_WO.cs | 21 ++++++++-- Tiger.Business.MES/Transaction/Position.cs | 4 +- Tiger.Business.MES/WorkAction/PrintInStoreLabel.cs | 2 Tiger.Business.MES/Common/WorkBatch.cs | 19 +++++---- Tiger.Business.MES/WorkAction/PackingAction.cs | 2 Tiger.Business/SYS/Biz.Sys_Params.cs | 2 Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs | 16 +++++++ 9 files changed, 73 insertions(+), 31 deletions(-) diff --git a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs index 43b2b5c..9052669 100644 --- a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs +++ b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs @@ -501,7 +501,7 @@ } } //鍏ュ簱鏍囩 - var wipActInStore = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.SN == woSn.SN && q.NODE_ID == pkgList[0].NODE_ID && !SqlFunc.IsNullOrEmpty(q.ACT_VALUE_3) && q.ACT_VALUE_4 == "InStroe").First(); + var wipActInStore = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.SN == woSn.SN && q.NODE_ID == pkgList[0].NODE_ID && !SqlFunc.IsNullOrEmpty(q.ACT_VALUE_3) && q.ACT_VALUE_4 == "InStore").First(); if (!wipActInStore.IsNullOrEmpty()) { var label = JsonConvert.DeserializeObject<BAS_LABEL_TEMP>(wipActInStore.ACT_VALUE_3); @@ -518,7 +518,7 @@ string ACT_VALUE_3 = JsonConvert.SerializeObject(label); foreach (var pkg in pkgList) { - var actSn = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.WIP_ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID && q.ACT_VALUE_4 == "InStroe").First(); + var actSn = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.WIP_ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID && q.ACT_VALUE_4 == "InStore").First(); if (!actSn.IsNullOrEmpty()) { actSn.ACT_VALUE_3 = ACT_VALUE_3; @@ -579,11 +579,15 @@ //濡傛灉鏌ヤ笉鍒板氨鍘昏涓烘棩蹇楁煡 if (labelPrint.IsNullOrEmpty() && input.ReqType == 1) { - printParam = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => (q.SN.Equals(input.Code) || q.FLOW_SN.Equals(input.Code)) && q.ACT_VALUE_4 == "Customer").First()?.ACT_VALUE_3 ?? ""; + printParam = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.CARTON_SN.Equals(woSn.OUTER_SN) && q.ACT_VALUE_4 == "Customer").First()?.ACT_VALUE_3 ?? ""; + } + else if (labelPrint.IsNullOrEmpty() && input.ReqType == 2) + { + printParam = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.SN.Equals(woSn.SN) && q.ACT_VALUE_4 == "InStore").First()?.ACT_VALUE_3 ?? ""; } else { - printParam = labelPrint.PRINT_PARAM; + printParam = labelPrint?.PRINT_PARAM ?? ""; } result.Data = printParam; result.LocaleMsg = new($"閲嶆墦鏉$爜[{input.Code}]鐨勬爣绛炬垚鍔�"); @@ -636,14 +640,21 @@ var result = new ApiAction(); try { - var wipList = await Biz.Db.Queryable<MES_WIP_DATA>().Where(q => q.SN.Equals(input.SN) || q.FLOW_SN.Equals(input.SN) || q.CARTON_SN == input.SN).ToListAsync(); + var cartonSn = input.SN.Split('|')[0]; + var wipList = await Biz.Db.Queryable<MES_WIP_DATA>().Where(q => q.SN.Equals(input.SN) || q.FLOW_SN.Equals(input.SN) || q.CARTON_SN == cartonSn).ToListAsync(); if (wipList.Count == 0) { result.IsSuccessed = false; result.LocaleMsg = new($"瑙g粦鐨勬潯鐮佷笉瀛樺湪褰撳墠鎿嶄綔琛ㄤ腑锛�"); + return result; } var wo = await Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == wipList[0].WORK_ORDER).FirstAsync(); result = WorkBatch.UnbindWipSnFromWO(wo, wipList, input.user); + if (result.IsSuccessed) + { + var newList = await Biz.Db.Queryable<MES_WIP_PKG>().Where(q => q.WORK_ORDER == wo.ORDER_NO && q.BATCH_NO == wipList[0].BATCH_NO && SqlFunc.IsNullOrEmpty(q.PARENT_SN) && q.QTY > 0).ToListAsync(); + result.Data = newList; + } } catch (Exception ex) { diff --git a/Tiger.Business.MES/Common/WorkBatch.cs b/Tiger.Business.MES/Common/WorkBatch.cs index 50e3fe1..d230d1c 100644 --- a/Tiger.Business.MES/Common/WorkBatch.cs +++ b/Tiger.Business.MES/Common/WorkBatch.cs @@ -610,17 +610,18 @@ wo.INPUT_QTY -= wipList.Count; wo.OUTPUT_QTY -= wipList.Count(q => q.STATUS == MES_WIP_DATA.STATUSs.Finished.GetValue()); wo.SCRAP_QTY += wipList.Count; - db.Updateable(wo, user).UpdateColumns(q => new { q.INPUT_QTY, q.OUTPUT_QTY, q.SCRAP_QTY, q.UPDATE_USER, q.UPDATE_TIME }).ExecuteCommand(); + wo.STATUS = wo.STATUS.GetEnum<BIZ_MES_WO.STATUSs>() == BIZ_MES_WO.STATUSs.Closed ? BIZ_MES_WO.STATUSs.Working.GetValue() : wo.STATUS; + db.Updateable(wo, user).UpdateColumns(q => new { q.INPUT_QTY, q.OUTPUT_QTY, q.SCRAP_QTY, q.UPDATE_USER, q.UPDATE_TIME, q.STATUS }).ExecuteCommand(); //BIZ_MES_WO_BATCH - foreach (var batch in batchs) + var wobatchs = Biz.Db.Queryable<BIZ_MES_WO_BATCH>().Where(q => batchs.Select(x => x.BATCH_NO).Contains(q.BATCH_NO)).ToList(); + foreach (var batch in wobatchs) { - db.Updateable<BIZ_MES_WO_BATCH>(user) - .SetColumns(q => q.INPUT_QTY == q.INPUT_QTY - batch.Qty) - .SetColumns(q => q.OUTPUT_QTY == q.OUTPUT_QTY - batch.FinishQty) - .SetColumns(q => q.SCRAP_QTY == q.SCRAP_QTY + batch.Qty) - .Where(q => q.BATCH_NO == q.BATCH_NO) - .ExecuteCommand(); + batch.INPUT_QTY -= batchs.Where(q=>q.BATCH_NO == batch.BATCH_NO).First().Qty; + batch.OUTPUT_QTY -= batchs.Where(q => q.BATCH_NO == batch.BATCH_NO).First().FinishQty; + batch.SCRAP_QTY += batchs.Where(q => q.BATCH_NO == batch.BATCH_NO).First().Qty; + batch.STATUS = batch.STATUS.GetEnum<BIZ_MES_WO_BATCH.STATUSs>() == BIZ_MES_WO_BATCH.STATUSs.Closed ? BIZ_MES_WO_BATCH.STATUSs.Working.GetValue() : batch.STATUS; } + db.Updateable(wobatchs, user).UpdateColumns(q => new { q.INPUT_QTY, q.OUTPUT_QTY, q.SCRAP_QTY, q.UPDATE_USER, q.UPDATE_TIME, q.STATUS }).ExecuteCommand(); //BIZ_MES_WO_SN db.Updateable<BIZ_MES_WO_SN>(user) .SetColumns(q => q.STATUS == BIZ_MES_WO_SN.STATUSs.Offline.GetValue()) @@ -659,7 +660,7 @@ } } while (curpkg.Any()); - db.Updateable(curpkg, user).ExecuteCommand(); + db.Updateable(pkgs, user).ExecuteCommand(); //MES_WIP_DFT锛屽湪涓婁粨搴撹閰嶅拰缁翠慨涔嬪墠锛屽厛鎶婁笉鑹褰曟爣璁颁负宸插鐞� db.Updateable<MES_WIP_DFT>(user) .SetColumns(q => q.STATUS == MES_WIP_DFT.STATUSs.Resolved.GetValue()) diff --git a/Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs b/Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs index 919c5bc..836c647 100644 --- a/Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs +++ b/Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs @@ -103,11 +103,16 @@ { //濡傛灉瀹㈡埛缂栫爜涓虹┖ prodTemp = input.Label; - if (ltemp != null && (ltemp.PROD_CODE.IsNullOrEmpty() || ltemp.PROD_CODE != input.Label.PROD_CODE)) + if (ltemp != null && ltemp.PROD_CODE.IsNullOrEmpty() && ltemp.PROD_CODE != input.Label.PROD_CODE) { prodTemp.LABEL_CODE = GenerateCodeName(input.Label.LABEL_CODE, "_L"); } } + var labelVarIds = input.LabelVars.Select(x => x.VAR_NAME).ToList(); + var labelVars = Biz.Db.Queryable<BAS_LABEL_VAR>() + .Where(q=> q.LABEL_ID == ltemp.ID) + .WhereIF(labelVarIds.Count>0, q=> !labelVarIds.Contains(q.VAR_NAME)) + .ToList(); var db = Biz.Db; var dbTran = db.UseTran(() => { @@ -131,6 +136,11 @@ x.LABEL_CODE == input.Label.LABEL_CODE && x.PROD_CODE == input.Label.PROD_CODE && x.CUST_CODE == input.Label.CUST_CODE).First(); + //鍒犻櫎涓嶅湪浼犲叆鍒楄〃涓殑 + if (labelVars.Count>0) + { + db.Deleteable(labelVars).ExecuteCommand(); + } if (input.LabelVars != null && input.LabelVars.Count > 0) { if (temp != null && temp.ID != input.LabelVars[0].LABEL_ID) @@ -146,6 +156,10 @@ z.AsInsertable.ExecuteCommand(); z.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); } + if (!input.LabelVars.Any()) + { + db.Deleteable(labelVars).ExecuteCommand(); + } if (input.LabelVarWos != null && input.LabelVarWos.Count > 0) { if (temp != null && temp.ID != input.LabelVarWos[0].LABEL_ID) diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs index fa372a2..8c6fae8 100644 --- a/Tiger.Business.MES/Transaction/Position.cs +++ b/Tiger.Business.MES/Transaction/Position.cs @@ -608,7 +608,7 @@ { qtylist = (curAction as PrintInStoreLabel).CurPkg.Item.GetMinPackageList().Select(q => q.SN).ToList(); } - return $"{qtylist.Count}PCS"; + return $"{qtylist.Count}"; case "GetModel": return GetLabelVarWo(lv, WorkBatch.Product.ExtInfo?.Model); case "GetInput": @@ -629,7 +629,7 @@ var snList = _orderAction.CurPkg.Item.GetMinPackageList().Select(q => q.FLOW_SN).ToList(); if (!snList.Any()) { - snList.Add(_orderAction.CurPkg.CustSN.FLOW_SN); + snList.Add(_orderAction.CurPkg.CustSN?.FLOW_SN); } _lotnos = string.Join(",", Biz.Db.Queryable<MES_CUST_SN>() .Where((q) => snList.Contains(q.FLOW_SN)) diff --git a/Tiger.Business.MES/WorkAction/PackingAction.cs b/Tiger.Business.MES/WorkAction/PackingAction.cs index ee6f046..45d96aa 100644 --- a/Tiger.Business.MES/WorkAction/PackingAction.cs +++ b/Tiger.Business.MES/WorkAction/PackingAction.cs @@ -978,7 +978,7 @@ .SetColumns(q => q.ACT_VALUE_1 == (CurPkg.IsFinished ? "Y" : "N")) .SetColumns(q => q.ACT_VALUE_2 == CurPkg.ToJson()) .SetColumns(q => q.ACT_VALUE_3 == InStoreLabel) - .SetColumns(q => q.ACT_VALUE_4 == "InStroe") + .SetColumns(q => q.ACT_VALUE_4 == "InStore") .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == CurPkg.InStoreActID && q.WIP_ID == _lastWipID) .ExecuteCommand(); //鍖呰淇℃伅淇濆瓨鍒板伐鍗曟潯鐮佹槑缁嗚〃 diff --git a/Tiger.Business.MES/WorkAction/PrintInStoreLabel.cs b/Tiger.Business.MES/WorkAction/PrintInStoreLabel.cs index 42c1fbe..2eb4b6d 100644 --- a/Tiger.Business.MES/WorkAction/PrintInStoreLabel.cs +++ b/Tiger.Business.MES/WorkAction/PrintInStoreLabel.cs @@ -182,7 +182,7 @@ ACT_VALUE_1 = CurPkg?.IsFinished == true ? "Y" : "N", ACT_VALUE_2 = CurPkg?.ToJson(), ACT_VALUE_3 = Label?.ToJson(), - ACT_VALUE_4 = "InStroe", + ACT_VALUE_4 = "InStore", ACT_RESULT = "Y", ELAPSED_TIME = CurStep.GetElapsedTime().TotalMilliseconds.ToInt64(), TRACE_INFO = NoNeedInStorePrint ? $"鏃犻渶鎵撳嵃鍏ュ簱鏍囩" : $"鏍囩{Label?.LABEL_NAME}[{Label?.LABEL_CODE}]鎵撳嵃鎴愬姛", diff --git a/Tiger.Business/MES/Biz.Route.cs b/Tiger.Business/MES/Biz.Route.cs index f1f4a08..6aa4079 100644 --- a/Tiger.Business/MES/Biz.Route.cs +++ b/Tiger.Business/MES/Biz.Route.cs @@ -508,12 +508,12 @@ { var expable = Expressionable.Create<MES_PROD_ACTION>(); var expableOper = Expressionable.Create<MES_PROD_OPER>(); - if (!string.IsNullOrEmpty(input.rotId)) + if (!input.rotId.IsNullOrEmpty()) { expable.And(x => x.ROT_ID == input.rotId); expableOper.And(x => x.ROT_ID == input.rotId); } - else if (!string.IsNullOrEmpty(input.rotCode)) + else if (!input.rotCode.IsNullOrEmpty()) { var item = await Db.Queryable<MES_ROUTE>().Where(x => x.ROT_CODE == input.rotCode).FirstAsync(); if (item != null) @@ -522,17 +522,32 @@ expableOper.And(x => x.ROT_ID == item.ID); } } - string _custCode = input.custCode ?? ""; - expable.And(x => x.PROD_CODE == input.prodCode && (x.CUST_CODE == _custCode)); - expableOper.And(x => x.PROD_CODE == input.prodCode && x.CUST_CODE == _custCode); + if (!input.prodCode.IsNullOrEmpty()) + { + expable.And(x => x.PROD_CODE == input.prodCode ); + expableOper.And(x => x.PROD_CODE == input.prodCode); + } + if (!input.custCode.IsNullOrEmpty()) + { + expable.And(x => x.CUST_CODE == input.custCode); + expableOper.And(x => x.CUST_CODE == input.custCode); + } var exp = expable.ToExpression(); var expOper = expableOper.ToExpression(); var db = Db; var dbTran = db.UseTran(() => { - db.Deleteable<MES_PROD_ACTION>().Where(exp).ExecuteCommand(); - db.Deleteable<MES_PROD_OPER>().Where(expOper).ExecuteCommand(); + if (!input.prodCode.IsNullOrEmpty()) + { + db.Deleteable<MES_PROD_ACTION>().Where(exp).ExecuteCommand(); + db.Deleteable<MES_PROD_OPER>().Where(expOper).ExecuteCommand(); + } + if (input.prodCode.IsNullOrEmpty() && !input.custCode.IsNullOrEmpty()) + { + db.Updateable<MES_PROD_ACTION>().SetColumns(x => x.CUST_CODE == "").Where(exp).ExecuteCommand(); + db.Updateable<MES_PROD_OPER>().SetColumns(x => x.CUST_CODE == "").Where(expOper).ExecuteCommand(); + } }); if (!dbTran.IsSuccess) { diff --git a/Tiger.Business/SYS/Biz.Sys_Params.cs b/Tiger.Business/SYS/Biz.Sys_Params.cs index 24c46ad..329e782 100644 --- a/Tiger.Business/SYS/Biz.Sys_Params.cs +++ b/Tiger.Business/SYS/Biz.Sys_Params.cs @@ -24,7 +24,7 @@ var action = new ApiAction<List<SYS_PARAM>>(); try { - action.Data = code.IsNullOrEmpty()? Biz.SysParam.Params.Where(x=>x.PRMG_CODE == group).ToList(): new List<SYS_PARAM>() { Biz.SysParam[group, code] } ; + action.Data = code.IsNullOrEmpty()? Biz.SysParam.Params.Where(x=>x.PRMG_CODE == group).ToList(): new List<SYS_PARAM>() { Biz.SysParam[code, group] } ; action.Message = $"鑾峰彇鍙傛暟鎴愬姛銆�"; } catch (Exception ex) diff --git a/Tiger.Model.Net/Entitys/SYS/V_USER_MENU.cs b/Tiger.Model.Net/Entitys/SYS/V_USER_MENU.cs index 81161c0..04400c8 100644 --- a/Tiger.Model.Net/Entitys/SYS/V_USER_MENU.cs +++ b/Tiger.Model.Net/Entitys/SYS/V_USER_MENU.cs @@ -66,10 +66,11 @@ /// 鑿滃崟鍚嶇О /// </summary> public string MENU_NAME { get; set; } - /// <summary> - /// - /// </summary> - public string HALF_CHECK { get; set; } + public string PATH { get; set; } + /// <summary> + /// + /// </summary> + public string HALF_CHECK { get; set; } #endregion #region 铏氭嫙灞炴�� -- Gitblit v1.9.3