服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-08-06 a7496b3785a33c14079b859c88b91a537c454cd5
增加不良记录的保存
已修改8个文件
137 ■■■■■ 文件已修改
Tiger.Api/Language.db 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/Transaction/CollectNode.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/Transaction/PackingNode.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/Transaction/Position.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/Transaction/TestNode.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/DbCache/CodeRuleCache.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business/MES/Biz.WorkBatch.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness/MES/IWorkBatch.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api/Language.db
Binary files differ
Tiger.Business.MES/Transaction/CollectNode.cs
@@ -273,6 +273,40 @@
                            wipSN.DFT_FLAG = "Y";
                            wipSN.DFT_COUNT++;
                            wipSN.DFT_CODE = input.DFT_CODE;
                            var dft = CurBatch.Defects.FirstOrDefault(q => q.DFT_CODE == wipSN.DFT_CODE);
                            var defect = new MES_WIP_DFT()
                            {
                                AUTH_ORG = wipSN.AUTH_ORG,
                                AUTH_PROD = wipSN.LINE_CODE,
                                SN = wipSN.SN,
                                STATUS = MES_WIP_DFT.STATUSs.WaitHandle.GetValue(),
                                ITEM_CODE = wipSN.ITEM_CODE,
                                WORK_ORDER = wipSN.WORK_ORDER,
                                BATCH_NO = wipSN.BATCH_NO,
                                ROT_CODE = wipSN.ROT_CODE,
                                NODE_ID = wipSN.NODE_ID,
                                NODE_NAME = wipSN.NODE_NAME,
                                FTY_CODE = wipSN.FTY_CODE,
                                WS_CODE = wipSN.WS_CODE,
                                LINE_CODE = wipSN.LINE_CODE,
                                POST_CODE = wipSN.POST_CODE,
                                OPER_CODE = wipSN.OPER_CODE,
                                SEGMENT = wipSN.SEGMENT,
                                DFT_CODE = dft.DFT_CODE,
                                DFT_NAME = dft.DFT_NAME,
                                DFT_LEVEL = dft.DFT_LEVEL,
                                TRAY_SN = wipSN.TRAY_SN,
                                CONTAINER_SN = wipSN.CONTAINER_SN,
                                PALLET_SN = wipSN.PALLET_SN,
                                INV_FLAG = wipSN.INV_FLAG,
                                OPERATION_TIME = DateTime.Now,
                                SFTS_CODE = wipSN.SFTS_CODE,
                                SFT_CODE = wipSN.SFT_CODE,
                                PRD_CODE = wipSN.PRD_CODE,
                                OBA_BATCH = wipSN.OBA_BATCH,
                                LOCK_BATCH = wipSN.LOCK_BATCH,
                            };
                            CurDefects.Add(defect);
                        }
                    }
@@ -299,6 +333,11 @@
                            db.Storageable(woSNs, UserCode).ExecuteCommand();
                            db.Storageable(wipSNs, UserCode).ExecuteCommand();
                            db.Storageable(CurWipSNHiss, UserCode).ExecuteCommand();
                            //如果有不良则保存
                            if (CurDefects.Any())
                            {
                                db.Storageable(CurDefects, UserCode).ExecuteCommand();
                            }
                            //如果是投入站
                            if (curNode.IS_INPUT == "Y")
                            {
Tiger.Business.MES/Transaction/PackingNode.cs
@@ -304,6 +304,40 @@
                            wipSN.DFT_FLAG = "Y";
                            wipSN.DFT_COUNT++;
                            wipSN.DFT_CODE = input.DFT_CODE;
                            var dft = CurBatch.Defects.FirstOrDefault(q => q.DFT_CODE == wipSN.DFT_CODE);
                            var defect = new MES_WIP_DFT()
                            {
                                AUTH_ORG = wipSN.AUTH_ORG,
                                AUTH_PROD = wipSN.LINE_CODE,
                                SN = wipSN.SN,
                                STATUS = MES_WIP_DFT.STATUSs.WaitHandle.GetValue(),
                                ITEM_CODE = wipSN.ITEM_CODE,
                                WORK_ORDER = wipSN.WORK_ORDER,
                                BATCH_NO = wipSN.BATCH_NO,
                                ROT_CODE = wipSN.ROT_CODE,
                                NODE_ID = wipSN.NODE_ID,
                                NODE_NAME = wipSN.NODE_NAME,
                                FTY_CODE = wipSN.FTY_CODE,
                                WS_CODE = wipSN.WS_CODE,
                                LINE_CODE = wipSN.LINE_CODE,
                                POST_CODE = wipSN.POST_CODE,
                                OPER_CODE = wipSN.OPER_CODE,
                                SEGMENT = wipSN.SEGMENT,
                                DFT_CODE = dft.DFT_CODE,
                                DFT_NAME = dft.DFT_NAME,
                                DFT_LEVEL = dft.DFT_LEVEL,
                                TRAY_SN = wipSN.TRAY_SN,
                                CONTAINER_SN = wipSN.CONTAINER_SN,
                                PALLET_SN = wipSN.PALLET_SN,
                                INV_FLAG = wipSN.INV_FLAG,
                                OPERATION_TIME = DateTime.Now,
                                SFTS_CODE = wipSN.SFTS_CODE,
                                SFT_CODE = wipSN.SFT_CODE,
                                PRD_CODE = wipSN.PRD_CODE,
                                OBA_BATCH = wipSN.OBA_BATCH,
                                LOCK_BATCH = wipSN.LOCK_BATCH,
                            };
                            CurDefects.Add(defect);
                        }
                    }
@@ -330,6 +364,11 @@
                            db.Storageable(woSNs, UserCode).ExecuteCommand();
                            db.Storageable(wipSNs, UserCode).ExecuteCommand();
                            db.Storageable(CurWipSNHiss, UserCode).ExecuteCommand();
                            //如果有不良则保存
                            if (CurDefects.Any())
                            {
                                db.Storageable(CurDefects, UserCode).ExecuteCommand();
                            }
                            //如果是投入站
                            if (curNode.IS_INPUT == "Y")
                            {
Tiger.Business.MES/Transaction/Position.cs
@@ -58,6 +58,7 @@
        public List<MES_WIP_DATA> CurWipSNs { get; set; } = new();
        public string CurSN => CurWipSNs.Any() ? (CurWipSNs.First().TRAY_SN.IsNullOrEmpty() ? CurWipSNs.First().SN : CurWipSNs.First().TRAY_SN) : "";
        public List<MES_WIP_HIS> CurWipSNHiss { get; set; } = new();
        public List<MES_WIP_DFT> CurDefects { get; set; } = new();
        public Dictionary<string, object> Context { get; set; } = new();
        public List<WorkStep> Steps { get; set; } = new();
        public WorkStep CurStep { get; set; }
@@ -175,9 +176,10 @@
        public virtual void ResetNode()
        {
            Steps.Clear();
            CurWipSNs = new();
            CurWipSNHiss = new();
            CurWipSNs.Clear();
            CurWipSNHiss.Clear();
            CurStep = null;
            CurDefects.Clear();
        }
        /// <summary>
Tiger.Business.MES/Transaction/TestNode.cs
@@ -274,6 +274,40 @@
                            wipSN.DFT_FLAG = "Y";
                            wipSN.DFT_COUNT++;
                            wipSN.DFT_CODE = input.DFT_CODE;
                            var dft = CurBatch.Defects.FirstOrDefault(q => q.DFT_CODE == wipSN.DFT_CODE);
                            var defect = new MES_WIP_DFT()
                            {
                                AUTH_ORG = wipSN.AUTH_ORG,
                                AUTH_PROD = wipSN.LINE_CODE,
                                SN = wipSN.SN,
                                STATUS = MES_WIP_DFT.STATUSs.WaitHandle.GetValue(),
                                ITEM_CODE = wipSN.ITEM_CODE,
                                WORK_ORDER = wipSN.WORK_ORDER,
                                BATCH_NO = wipSN.BATCH_NO,
                                ROT_CODE = wipSN.ROT_CODE,
                                NODE_ID = wipSN.NODE_ID,
                                NODE_NAME = wipSN.NODE_NAME,
                                FTY_CODE = wipSN.FTY_CODE,
                                WS_CODE = wipSN.WS_CODE,
                                LINE_CODE = wipSN.LINE_CODE,
                                POST_CODE = wipSN.POST_CODE,
                                OPER_CODE = wipSN.OPER_CODE,
                                SEGMENT = wipSN.SEGMENT,
                                DFT_CODE = dft.DFT_CODE,
                                DFT_NAME = dft.DFT_NAME,
                                DFT_LEVEL = dft.DFT_LEVEL,
                                TRAY_SN = wipSN.TRAY_SN,
                                CONTAINER_SN = wipSN.CONTAINER_SN,
                                PALLET_SN = wipSN.PALLET_SN,
                                INV_FLAG = wipSN.INV_FLAG,
                                OPERATION_TIME = DateTime.Now,
                                SFTS_CODE = wipSN.SFTS_CODE,
                                SFT_CODE = wipSN.SFT_CODE,
                                PRD_CODE = wipSN.PRD_CODE,
                                OBA_BATCH = wipSN.OBA_BATCH,
                                LOCK_BATCH = wipSN.LOCK_BATCH,
                            };
                            CurDefects.Add(defect);
                        }
                    }
@@ -300,6 +334,11 @@
                            db.Storageable(woSNs, UserCode).ExecuteCommand();
                            db.Storageable(wipSNs, UserCode).ExecuteCommand();
                            db.Storageable(CurWipSNHiss, UserCode).ExecuteCommand();
                            //如果有不良则保存
                            if (CurDefects.Any())
                            {
                                db.Storageable(CurDefects, UserCode).ExecuteCommand();
                            }
                            //如果是投入站
                            if (curNode.IS_INPUT == "Y")
                            {
Tiger.Business/DbCache/CodeRuleCache.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Text;
@@ -374,10 +375,21 @@
                    his.RULE_ID = rule.ID;
                    his.GEN_CODE = string.Concat(rule.Details.OrderBy(q => q.RULE_SEQ).Select(q => q.CodeValue));
                    his.GEN_DATE = DateTime.Now;
                    try
                    {
                    Biz.Db.Insertable(his).ExecuteCommand();
                    }
                    catch (System.Exception ex)
                    {
                        throw new DataException(his.GEN_CODE, ex);
                    }
                    result.Data = his.GEN_CODE;
                }
            }
            catch (DataException ex)
            {
                result.CatchExceptionWithLog(ex.InnerException, Biz.L("BAS.CodeRule.GenerateSnHisException", ruleCode, ex.Message));
            }
            catch (System.Exception ex)
            {
                result.CatchExceptionWithLog(ex, Biz.L("BAS.CodeRule.GenerateException", ruleCode, string.Join(", ", args)));
Tiger.Business/MES/Biz.WorkBatch.cs
@@ -41,6 +41,7 @@
            public List<MES_WO_NODE_POST> NodePosts { get; set; }
            public List<MES_WO_NODE_DFTG> NodeDftgs { get; set; }
            public List<BAS_DEFECT_GRP> DefectGroups { get; set; }
            public List<BAS_DEFECT> Defects => DefectGroups.SelectMany(q => q.Defects).ToList();
            /// <summary>
            /// 事务锁
            /// </summary>
Tiger.IBusiness/MES/IWorkBatch.cs
@@ -25,6 +25,7 @@
        public List<MES_WO_NODE_POST> NodePosts { get; set; }
        public List<MES_WO_NODE_DFTG> NodeDftgs { get; set; }
        public List<BAS_DEFECT_GRP> DefectGroups { get; set; }
        public List<BAS_DEFECT> Defects { get; }
        /// <summary>
        /// 工单开工