コード例 #1
0
        private bool SpecialProcessHandler(RepairRecordModel repairRecModel, string currlineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(currlineStationID);

            if (cuurModuleProcess == null)
            {
                restr     += "当前线体服务器工位编号错误:" + currlineStationID + ",线体服务器查无此工位编号!";
                needRepair = false;
                return(false);
            }
            ModuleProcessModel repairProcess = bllModuleProcess.GetProcessByWorkStationID(repairRecModel.RepairStartStationNum);

            if (repairProcess == null)
            {
                restr = "开始工位中心号错误:" + repairRecModel.RepairStartStationNum + ",线体服务查无此工作中心号!";
                return(false);
            }

            if (repairProcess.LineName != cuurModuleProcess.LineName)//不在一个线别,那就用流程代号处理
            {
            }
            else//在一个线别就用起始加工中心判断
            {
                needRepair = NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, repairProcess.ModuleProcessID, ref restr);
                return(true);
            }
            return(true);
        }
コード例 #2
0
        private bool ProcessB7(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel laster1Process = bllModuleProcess.GetProcessByWorkStationID(this.laserClean1);

            if (laster1Process == null)
            {
                restr = "工作中心号错误:" + laster1Process.WorkStationID + ",不存在此工作中中心号!";
                return(false);
            }
            if (currProcess.ModuleProcessOrder < laster1Process.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + ",工艺顺序在激光清洗1#前面,不需要加工!";

                needRepair = false;
                return(true);
            }
            if (currProcess.WorkStationID == this.glueOutCheck1 || currProcess.WorkStationID == this.laserClean2 ||
                currProcess.WorkStationID == this.glueOutCheck2 || currProcess.WorkStationID == this.wedlAluminum2)
            {
                needRepair = false;
                return(true);
            }

            needRepair = true;
            return(true);
            //}
            //return true;
        }
コード例 #3
0
        private bool ProcessB10(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel weld2Process = bllModuleProcess.GetProcessByWorkStationID(this.wedlAluminum2);

            if (weld2Process == null)
            {
                restr = "工作中心号错误:" + weld2Process.WorkStationID + ",不存在此工作中中心号!";
                return(false);
            }
            if (currProcess.ModuleProcessOrder < weld2Process.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + ",工艺顺序在" + weld2Process.ModuleProcessName + "前面,不需要加工!";

                needRepair = false;
                return(true);
            }
            if (currProcess.WorkStationID == this.glueOutCheck2)
            {
                needRepair = false;
                return(true);
            }


            needRepair = NeedRepairByWorkstationOrder(this.wedlAluminum2, lineStationID, ref restr);

            return(true);
        }
コード例 #4
0
        private bool ProcessB12(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel jueyuanScrew = bllModuleProcess.GetProcessByWorkStationID(this.cLineJYScrew);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + cLineJYScrew + ",不存在此工作中中心号!";
                return(false);
            }
            if (currProcess.ModuleProcessOrder < jueyuanScrew.ModuleProcessOrder)
            {
                needRepair = false;
                restr      = "当前工位工艺在绝缘螺丝机的前面,不需要加工!";
                return(true);
            }
            needRepair = true;
            return(true);
        }
コード例 #5
0
        private bool ProcessB6(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel wled2Process = bllModuleProcess.GetProcessByWorkStationID(this.wedlAluminum2);

            if (wled2Process == null)
            {
                restr = "工作中心号错误:" + this.wedlAluminum2 + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel currModuleProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (wled2Process == null)
            {
                restr = "工位编号错误:" + lineStationID + ",不存在此工位编号!";
                return(false);
            }
            if (currModuleProcess.ModuleProcessOrder < wled2Process.ModuleProcessOrder)
            {
                restr      = "当前加工工作中心:" + currModuleProcess.WorkStationID + ",工艺顺序在铝丝焊2#工位前,不需要加工!";
                needRepair = false;
                return(true);
            }

            needRepair = NeedRepairByWorkstationOrder(this.wedlAluminum2, lineStationID, ref restr);
            return(true);
        }
コード例 #6
0
        public ActionResult EditRecord(RepairRecordModel model)
        {
            var result = RepairRecordBLL.EditRepairRecord(model, base.UserIDForLog);

            base.DoLog(OperationTypeEnum.Edit, result, "PlateNum:" + model.PlateNum);
            return(Json(result));
        }
コード例 #7
0
        private bool ProcessB2(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (cuurModuleProcess == null)
            {
                restr     += "当前线体服务器工位编号错误:" + lineStationID + ",线体服务器查无此工位编号!";
                needRepair = false;
                return(false);
            }

            ModuleProcessModel laserClean1Procss = bllModuleProcess.GetProcessByWorkStationID(this.laserClean1);

            if (laserClean1Procss == null)
            {
                restr += "工作中心号:" + laserClean1 + ",线体服务器查无此工作中心号!";

                return(false);
            }
            if (cuurModuleProcess.WorkStationID == this.glueOutCheck1)
            {
                needRepair = false;
                restr     += "当前工作中心号:" + cuurModuleProcess.WorkStationID + "为1号胶溢检测不需要加工!";

                return(true);
            }

            if (cuurModuleProcess.ModuleProcessOrder < laserClean1Procss.ModuleProcessOrder)
            {
                needRepair = false;
                restr     += "当前工作中心号:" + cuurModuleProcess.WorkStationID + "工艺顺序在1#激光清洗工艺前面,不需要加工!";

                return(true);
            }


            ModuleProcessModel aluminumProecss = bllModuleProcess.GetProcessByWorkStationID(this.weldAluminum1);

            if (aluminumProecss == null)
            {
                restr += "铝丝焊1#:" + weldAluminum1 + ",线体服务器不存在此工作中心号!";

                return(false);
            }
            if (cuurModuleProcess.ModuleProcessOrder >= aluminumProecss.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + cuurModuleProcess.WorkStationID + "工艺顺序在铝丝焊1#工艺之后,需要加工!";

                needRepair = true;
                return(true);
            }
            needRepair = true;
            return(true);
        }
コード例 #8
0
        private bool ProcessB9(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel laserClean2Process = bllModuleProcess.GetProcessByWorkStationID(this.laserClean2);

            if (laserClean2Process == null)
            {
                restr = "工作中心号错误:" + laserClean2Process.WorkStationID + ",不存在此工作中中心号!";
                return(false);
            }

            if (currProcess.WorkStationID == this.laserClean2)
            {
                restr     += "激光清洗2#需要加工!";
                needRepair = true;
                return(true);
            }
            if (currProcess.ModuleProcessOrder < laserClean2Process.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + ",工艺顺序在" + laserClean2Process.ModuleProcessName + "前面,不需要加工!";

                needRepair = false;
                return(true);
            }
            if (currProcess.WorkStationID == this.glueOutCheck2)
            {
                restr      = "当前工作中心号:" + this.glueOutCheck2 + ",胶外溢2,此工作中心不需要加工!";
                needRepair = false;
                return(true);
            }

            //ModuleProcessModel weld2Process = bllModuleProcess.GetProcessByWorkStationID(this.wedlAluminum2);
            // if (weld2Process == null)
            //{
            //    restr = "工作中心号错误:" + this.wedlAluminum2 + ",不存在此工作中中心号!";
            //    return false;
            //}

            needRepair = NeedRepairByWorkstationOrder(this.wedlAluminum2, lineStationID, ref restr);

            return(true);
        }
コード例 #9
0
        public bool ReportToMesByProcessStationID(string stationID, string rfid)
        {
            List <DBAccess.Model.BatteryModuleModel> modList = modBll.GetModelList(string.Format("palletID='{0}'   and palletBinded=1", rfid));

            if (modList == null || modList.Count == 0)
            {
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "返修流程不加工工位:" + stationID + ",RFID:" + rfid + ",绑定数据为空,不需要上传数据!");
                return(true);
            }
            RepairRecordModel repairRecModel = bllRepairRecord.GetModel(modList[0].batModuleID);

            if (repairRecModel == null)//如果没有这个记录则不为返修流程
            {
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "返修记录不存在二维码:" + modList[0].batModuleID + ",不需要上传数据!");
                return(true);
            }

            DBAccess.Model.ModuleProcessModel startModuleProcess = bllModuleProcess.GetProcessByWorkStationID(repairRecModel.RepairStartStationNum);
            if (startModuleProcess == null)
            {
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "起始加工中心编号:" + repairRecModel.RepairStartStationNum + "错误,没有此加工中心编号!");
            }

            DBAccess.Model.ModuleProcessModel currModuleProcess = bllModuleProcess.GetProcessByID(stationID);
            if (currModuleProcess == null)
            {
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "工位编号错误:" + stationID + ",无此工位编号");
                return(false);
            }
            if (currModuleProcess.ModuleProcessOrder < startModuleProcess.ModuleProcessOrder)
            {
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "开始工位工艺前面的工位不需要上传MES数据!");
                return(true);
            }
            FTDataAccess.Model.OfflineDataModel offlineData = bllOfflineData.GetLastDataByWorkStationID(currModuleProcess.WorkStationID);
            if (offlineData == null)
            {
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "获取上一次加工数据失败,工作中心号:" + currModuleProcess.WorkStationID + ",上报MES失败!");
                return(false);
            }
            RootObject rootObj = WShelper.UploadDataByJson(offlineData.UploadJsonData);

            this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "返修流程," + currModuleProcess.ModuleProcessName + ",不加工工作中心上传MES正常数据成功:" + currModuleProcess.WorkStationID + ",数据:" + offlineData.UploadJsonData);

            return(true);
        }
コード例 #10
0
        private bool ProcessB11(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }

            if (currProcess.WorkStationID == this.dcir)
            {
                needRepair = true;
                return(true);
            }
            needRepair = false;
            return(true);
        }
コード例 #11
0
        private bool ProcessB8(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }

            ModuleProcessModel weldProcess = bllModuleProcess.GetProcessByWorkStationID(this.weldAluminum1);

            if (weldProcess == null)
            {
                restr = "工作中心号错误:" + weldProcess.WorkStationID + ",不存在此工作中中心号!";
                return(false);
            }
            if (currProcess.ModuleProcessOrder < weldProcess.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + ",工艺顺序在铝丝焊1#前面,不需要加工!";

                needRepair = false;
                return(true);
            }

            if (currProcess.WorkStationID == this.laserClean2 || currProcess.WorkStationID == this.glueOutCheck2 ||
                currProcess.WorkStationID == this.wedlAluminum2)
            {
                needRepair = false;
                restr     += "当前工作中心:" + currProcess.WorkStationID + ",不需要加工!";

                return(true);
            }
            if (currProcess.WorkStationID == this.dcir)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + "DCIR工位,需要加工!";

                needRepair = true;
                return(true);
            }

            needRepair = true;
            return(true);
        }
コード例 #12
0
ファイル: RepairRecordBLL.cs プロジェクト: SweetieXu/lhzw
        public static SelectResult <RepairRecordModel> GetRecordByID(int id)
        {
            List <SqlParameter> paras = new List <SqlParameter>()
            {
                new SqlParameter("@id", SqlDbType.Int),
            };

            paras[0].Value = id;
            string sql = @"SELECT * FROM dbo.RepairRecord WHERE ID=@id";
            List <RepairRecordModel> list = ConvertToList <RepairRecordModel> .Convert(MSSQLHelper.ExecuteDataTable(CommandType.Text, sql, paras.ToArray()));

            RepairRecordModel data = null;
            string            msg  = string.Empty;

            if (list == null)
            {
                msg = PromptInformation.DBError;
            }
            else if (list.Count == 0)
            {
                msg = PromptInformation.NotExists;
            }
            else
            {
                data = list[0];
            }
            string recordsql           = @"select * from dbo.RepairRecordDetail where LinkedRecordID=@id";
            List <SqlParameter> paras1 = new List <SqlParameter>()
            {
                new SqlParameter("@id", SqlDbType.Int),
            };

            paras1[0].Value = id;
            List <RepairRecordDetail> detaillist = ConvertToList <RepairRecordDetail> .Convert(MSSQLHelper.ExecuteDataTable(CommandType.Text, recordsql, paras1.ToArray()));

            data.RepairRecordDetail = detaillist;
            data.RepairStartTime    = Convert.ToDateTime(data.RepairStartTime).ToString("yyyy-MM-dd");
            data.RepairEndTime      = Convert.ToDateTime(data.RepairEndTime).ToString("yyyy-MM-dd");
            return(new SelectResult <RepairRecordModel>()
            {
                DataResult = data,
                Message = msg
            });
        }
コード例 #13
0
ファイル: RepairRecordBLL.cs プロジェクト: SweetieXu/lhzw
        public static OperationResult EditRepairRecord(RepairRecordModel model, int ID)
        {
            #region  SQL
            string sql = @"IF exists (SELECT * FROM RepairRecord WHERE ID=@ID and Status<>1)
begin
update RepairRecord
set [PlateNum]=@PlateNum,[DriverName]=@DriverName,[DriverPhone]=@DriverPhone ,[RepairStartTime]=@RepairStartTime,
[RepairEndTime]=@RepairEndTime ,[RepairType]=@RepairType,[TotalPrice]=@TotalPrice,[Status]=@Status,LinkedVehicleID=@LinkedVehicleID,Remark=@Remark,OperateTime=getdate(),OperateUserID=@OperateUserID where ID=@ID;
delete from RepairRecordDetail where LinkedRecordID=@ID
end
";
            #endregion
            List <SqlParameter> paras = new List <SqlParameter>()
            {
                new SqlParameter("@PlateNum", SqlDbType.NVarChar, 10),
                new SqlParameter("@DriverName", SqlDbType.NVarChar, 20),
                new SqlParameter("@DriverPhone", SqlDbType.NVarChar, 20),
                new SqlParameter("@RepairType", SqlDbType.NVarChar, 20),
                new SqlParameter("@RepairStartTime", SqlDbType.Date),
                new SqlParameter("@RepairEndTime", SqlDbType.Date),
                new SqlParameter("@TotalPrice", SqlDbType.Float),
                new SqlParameter("@Status", SqlDbType.Int),
                new SqlParameter("@ID", SqlDbType.BigInt),
                new SqlParameter("@LinkedVehicleID", SqlDbType.Int),
                new SqlParameter("@Remark", SqlDbType.NVarChar, 2000),
                new SqlParameter("@OperateUserID", SqlDbType.Int)
            };

            paras[0].Value  = model.PlateNum.Trim();
            paras[1].Value  = string.IsNullOrWhiteSpace(model.DriverName) ? DBNull.Value : (object)model.DriverName.Trim();
            paras[2].Value  = string.IsNullOrWhiteSpace(model.DriverPhone) ? DBNull.Value : (object)model.DriverPhone.Trim();
            paras[3].Value  = string.IsNullOrWhiteSpace(model.RepairType) ? DBNull.Value : (object)model.RepairType.Trim();
            paras[4].Value  = model.RepairStartTime;
            paras[5].Value  = model.RepairEndTime;
            paras[6].Value  = string.IsNullOrWhiteSpace(model.TotalPrice) ? DBNull.Value : (object)model.TotalPrice;
            paras[7].Value  = 0;
            paras[8].Value  = model.ID;
            paras[9].Value  = model.LinkedVehicleID;
            paras[10].Value = string.IsNullOrWhiteSpace(model.Remark) ? DBNull.Value : (object)model.Remark;
            paras[11].Value = ID;
            //bool result = MSSQLHelper.ExecuteTransaction(CommandType.Text, sql, paras.ToArray());
            bool          result       = false;
            SqlConnection myConnection = new SqlConnection(ConnStr);
            myConnection.Open();
            SqlTransaction myTrans = myConnection.BeginTransaction();
            SqlCommand     cmd     = new SqlCommand();
            cmd.Connection  = myConnection;
            cmd.Transaction = myTrans;
            SqlParameter[] commandParameters = paras.ToArray();
            try
            {
                if (commandParameters == null)
                {
                    MSSQLHelper.PrepareCommand(cmd, myConnection, null, CommandType.Text, sql, null, 60);
                }
                else
                {
                    MSSQLHelper.PrepareCommand(cmd, myConnection, null, CommandType.Text, sql, commandParameters, 60);
                }
                int i = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                //内容被审核
                if (i <= 0)
                {
                    myTrans.Rollback();
                    return(new OperationResult()
                    {
                        Success = false,
                        Message = PromptInformation.StatusChange
                    });
                }
                else
                {
                    //插入项目明细
                    foreach (var reecorddetail in model.RepairRecordDetail)
                    {
                        reecorddetail.LinkedRecordID = model.ID;
                    }
                    SaveRepairRecordDetail(model.RepairRecordDetail, "RepairRecordDetail");
                    result = true;
                    myTrans.Commit();
                }
            }
            catch (Exception e)
            {
                myTrans.Rollback();
                LogHelper.DoDataBaseErrorLog("维修单修改:" + e.ToString());
                result = false;
            }
            return(new OperationResult()
            {
                Success = result,
                Message = result ? PromptInformation.OperationSuccess : PromptInformation.DBError
            });
        }
コード例 #14
0
        private bool CCDCheckNeedRepair(RepairRecordModel repairRecModel, string currlineStationID, ref string restr)
        {
            restr = "流程匹配,需要返修!";
            if (repairRecModel.RepairProcessNum == "A4")
            {
                if (repairRecModel.RepairStartStationNum != this.dianjiao3)
                {
                    restr = "返修MES判定在CCD检测,流程代码为A4,起始工位不为3号点胶机";
                    return(NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, currlineStationID, ref restr));
                }
                return(NeedRepairByWorkstationOrder(this.dianjiao3, currlineStationID, ref restr));
            }
            else if (repairRecModel.RepairProcessNum == "A5")
            {
                if (repairRecModel.RepairStartStationNum != this.dianjiao3)
                {
                    restr = "返修MES判定在CCD检测,流程代码为A5,起始工位不为3号点胶机";
                    return(NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, currlineStationID, ref restr));
                }
                //if (repairRecModel.RepairStartStationNum != this.dianjiao3)
                //{
                //    restr = "返修MES判定在CCD检测,流程代码为A5,起始工位不为3号点胶机";
                //    return NeedRepairByWorkstationOrder(repairRecModel, currlineStationID);
                //}
                ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(currlineStationID);
                if (cuurModuleProcess == null)
                {
                    restr = "开始工位中心号错误:" + currlineStationID + ",线体服务查无此线体服务编号!";
                    return(false);
                }
                if (cuurModuleProcess.WorkStationID == this.ccdCheck || cuurModuleProcess.WorkStationID == this.dianjiao3 || cuurModuleProcess.WorkStationID == this.manualSation2)
                {
                    restr = "当前返修流程代号A5,加工中心号" + cuurModuleProcess.WorkStationID + ",需要加工!";
                    return(true);
                }
                else
                {
                    restr = "当前返修流程代号A5,加工中心号" + cuurModuleProcess.WorkStationID + ",不需要加工!";

                    return(false);
                }
            }
            else if (repairRecModel.RepairProcessNum == "A6")
            {
                if (repairRecModel.RepairStartStationNum != this.dianjiao4)
                {
                    restr = "返修MES判定在CCD检测,流程代码为A6,起始工位不为4号点胶机";
                    return(NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, currlineStationID, ref restr));
                }
                return(NeedRepairByWorkstationOrder(this.dianjiao4, currlineStationID, ref restr));
            }
            else if (repairRecModel.RepairProcessNum == "A7")
            {
                ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(currlineStationID);
                if (cuurModuleProcess == null)
                {
                    restr = "开始工位中心号错误:" + currlineStationID + ",线体服务查无此线体服务编号!";
                    return(false);
                }
                if (cuurModuleProcess.WorkStationID != this.ccdCheck)
                {
                    restr = "返修MES判定在CCD检测,流程代码为A7,起始工位不为CCCheck";
                    //return NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, currlineStationID,ref restr);
                    return(false);
                }
                //if(repairRecModel.RepairStartStationNum!=currlineStationID)
                //{
                //    restr = "流程代码为A7,当前工位不为CCDCheck,不需要加工!";
                //    return false;
                //}
                return(true);
            }
            else
            {
                return(true);
            }
        }
コード例 #15
0
        /// <summary>
        /// 是否需要返修,只有AB线绑定工位是通过PLC地址判断其他工位只读取数据库判断
        /// </summary>
        /// <param name="moduleID">模块ID</param>
        /// <returns></returns>
        public virtual bool GetNeedRepairALine(string rfid, string lineStationID, ref bool needRepair, ref string restr)
        {
            restr           = "获取是否需要加工成功!";
            this.NeedRepair = needRepair;

            if (this.repairManualNoWorkRequireDic.Keys.Contains(this.nodeBase.NodeID) == true)
            {
                string manualRepairAddr = this.repairManualNoWorkRequireDic[this.nodeBase.NodeID];
                int    noWorkStatus     = 0;//返修人工干预不加工标识,等于1不加工,直接放行
                if (this.nodeBase.PlcRW.ReadDB(manualRepairAddr, ref noWorkStatus) == false)
                {
                    restr = "读取返修人工干预是否加工标识地址:" + manualRepairAddr + ",失败";
                    return(false);
                }
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "读取返修人工干预是否加工标识地址:" + manualRepairAddr + "成功,值为:" + noWorkStatus + "!");
                if (noWorkStatus == 1)
                {
                    needRepair = false;
                    return(true);
                }
            }

            List <DBAccess.Model.BatteryModuleModel> modList = modBll.GetModelList(string.Format("palletID='{0}'   and palletBinded=1 or checkResult=2", rfid));

            if (modList == null || modList.Count == 0)
            {
                restr      = "RFID:" + rfid + "绑定数据为空!";
                needRepair = false;
                return(true);
            }
            RepairRecordModel repairRecModel = bllRepairRecord.GetModel(modList[0].batModuleID);

            if (repairRecModel == null)//如果没有这个记录则不为返修流程
            {
                needRepair = true;
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "返修记录不存在二维码:" + modList[0].batModuleID + ",不为返修流程所有工位,需要加工!");
                return(true);
            }
            ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (cuurModuleProcess == null)
            {
                restr     += "当前线体服务器工位编号错误:" + lineStationID + ",线体服务器查无此工位编号!";
                needRepair = false;
                return(false);
            }
            ModuleProcessModel repairProcess = bllModuleProcess.GetProcessByWorkStationID(repairRecModel.RepairStartStationNum);

            if (repairProcess == null)
            {
                restr = "开始工位中心号错误:" + repairRecModel.RepairStartStationNum + ",线体服务查无此工作中心号!";
                return(false);
            }

            if (repairRecModel.RepairRec_Reserve1 == true.ToString())     //特殊产品流程
            {
                if (repairProcess.LineName == cuurModuleProcess.LineName) //在一个线别就用起始加工中心判断
                {
                    needRepair = NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, cuurModuleProcess.ModuleProcessID, ref restr);
                    return(true);
                }
                else//在一个线别,那就用流程代号处理,不用处理了 就用下面的流程
                {
                }
            }

            if (repairRecModel.IsMatchRepairProcess == false && repairRecModel.RepairRec_Reserve1 == false.ToString())
            {
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "流程不匹配,当前工位需要加工!");
                needRepair = NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, lineStationID, ref restr);
                return(true);
            }

            if (repairRecModel.RepairProcessNum == "A4" || repairRecModel.RepairProcessNum == "A5" ||
                repairRecModel.RepairProcessNum == "A6" || repairRecModel.RepairProcessNum == "A7")   //CCD检测单独判断
            {
                needRepair = CCDCheckNeedRepair(repairRecModel, lineStationID, ref restr);
                return(true);
            }

            if (repairProcess.ModuleProcessOrder <= cuurModuleProcess.ModuleProcessOrder)
            {
                needRepair = true;
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "当前工位在开始工位或者在开始工位后续流程中,此工位需要加工!");

                return(true);
            }
            return(true);
        }
コード例 #16
0
 private bool ProcessB4(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
 {
     needRepair = NeedRepairByWorkstationOrder(this.laserClean2, lineStationID, ref restr);
     return(true);
 }
コード例 #17
0
 private bool ProcessB1(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
 {
     needRepair = NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, lineStationID, ref restr);
     return(true);
 }
コード例 #18
0
ファイル: RepairRecordBLL.cs プロジェクト: SweetieXu/lhzw
        public static OperationResult AddRepairRecord(RepairRecordModel model, int ID)
        {
            #region  SQL
            string sql = @"
Declare @id BIGINT;
INSERT INTO [TMS2016].[dbo].[RepairRecord]
           ([PlateNum]
           ,[DriverName]
           ,[DriverPhone]
           ,[RepairStartTime]
           ,[RepairEndTime]
           ,[RepairType]
           ,[TotalPrice]
           ,[Status],[LinkedVehicleID],[Remark],OperateUserID)
     VALUES
           (@PlateNum
           ,@DriverName 
           ,@DriverPhone 
           ,@RepairStartTime 
           ,@RepairEndTime 
           ,@RepairType 
           ,@TotalPrice
           ,@Status,@LinkedVehicleID,@Remark,@OperateUserID);
set @id=SCOPE_IDENTITY();
select @id as ID;";
            #endregion
            List <SqlParameter> paras = new List <SqlParameter>()
            {
                new SqlParameter("@PlateNum", SqlDbType.NVarChar, 10),
                new SqlParameter("@DriverName", SqlDbType.NVarChar, 20),
                new SqlParameter("@DriverPhone", SqlDbType.NVarChar, 20),
                new SqlParameter("@RepairType", SqlDbType.NVarChar, 20),
                new SqlParameter("@RepairStartTime", SqlDbType.Date),
                new SqlParameter("@RepairEndTime", SqlDbType.Date),
                new SqlParameter("@TotalPrice", SqlDbType.Float),
                new SqlParameter("@Status", SqlDbType.Int),
                new SqlParameter("@LinkedVehicleID", SqlDbType.Int),
                new SqlParameter("@Remark", SqlDbType.NVarChar, 2000),
                new SqlParameter("@OperateUserID", SqlDbType.Int)
            };
            paras[0].Value  = model.PlateNum.Trim();
            paras[1].Value  = string.IsNullOrWhiteSpace(model.DriverName) ? DBNull.Value : (object)model.DriverName.Trim();
            paras[2].Value  = string.IsNullOrWhiteSpace(model.DriverPhone) ? DBNull.Value : (object)model.DriverPhone.Trim();
            paras[3].Value  = string.IsNullOrWhiteSpace(model.RepairType) ? DBNull.Value : (object)model.RepairType.Trim();
            paras[4].Value  = model.RepairStartTime;
            paras[5].Value  = model.RepairEndTime;
            paras[6].Value  = string.IsNullOrWhiteSpace(model.TotalPrice) ? DBNull.Value : (object)model.TotalPrice;
            paras[7].Value  = 0;
            paras[8].Value  = model.LinkedVehicleID;
            paras[9].Value  = string.IsNullOrWhiteSpace(model.Remark) ? DBNull.Value : (object)model.Remark;
            paras[10].Value = ID;
            bool            result   = false;
            List <RecordID> recordid = ConvertToList <RecordID> .Convert(MSSQLHelper.ExecuteDataTable(CommandType.Text, sql, paras.ToArray()));

            try
            {
                int id = recordid[0].ID;
                foreach (var reecorddetail in model.RepairRecordDetail)
                {
                    reecorddetail.LinkedRecordID = id;
                }
                SaveRepairRecordDetail(model.RepairRecordDetail, "RepairRecordDetail");
                result = true;
            }
            catch (Exception e)
            {
                LogHelper.DoDataBaseErrorLog("维修单详情错误记录:" + e.ToString());
                result = false;
            }
            return(new OperationResult()
            {
                Success = result,
                Message = result ? PromptInformation.OperationSuccess : PromptInformation.DBError
            });
        }
コード例 #19
0
 private bool ProcessB3(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
 {
     needRepair = NeedRepairByWorkstationOrder(this.weldAluminum1, lineStationID, ref restr);
     return(true);
 }