/// <summary>
        /// 记录生产计划开始暂停日志
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public dynamic PostProduceLog(dynamic data)
        {
            try
            {
                if (data["APSCode"] == null)
                {
                    throw new Exception(@"APSCode不能为空!");
                }

                int type       = Convert.ToInt32(data["Type"]);
                int pauseReson = Convert.ToInt32(data["PauseReson"]);

                DateTime newData = DateTime.Now;

                MES_OpreatorWorkingLog model = new MES_OpreatorWorkingLog()
                {
                    APSCode        = data["APSCode"],
                    BegainTime     = newData,
                    IsEnable       = 1,
                    CreatePerson   = data["CreatePerson"],
                    CreateTime     = newData,
                    OperatePerson  = data["OperatePerson"],
                    OpreateCode    = data["OpreateCode"],
                    ModifyPerson   = data["ModifyPerson"],
                    ModifyTime     = newData,
                    FinishQuantity = Convert.ToDecimal(data["FinishQuantity"])
                };

                return(new MES_OpreatorWorkingLogService().SaveProduceLog(model, type, pauseReson));
            }
            catch (Exception ex)
            {
                return(new ResultModel()
                {
                    Result = false,
                    Msg = ex.Message
                });
            }
        }
Example #2
0
        /// <summary>
        /// 记录生产计划开始暂停日志
        /// </summary>
        /// <returns></returns>
        public ResultModel SetProduceLog(dynamic data)
        {
            try
            {
                int      type       = Convert.ToInt32(data["Type"]);
                int      pauseReson = Convert.ToInt32(data["PauseReson"]);
                DateTime newDate    = DateTime.Now;

                MES_OpreatorWorkingLog model = new MES_OpreatorWorkingLog()
                {
                    APSCode        = data["WorkTicketCode"],
                    BegainTime     = newDate,
                    IsEnable       = 1,
                    CreatePerson   = data["UserName"],
                    CreateTime     = newDate,
                    OperatePerson  = data["UserName"],
                    OpreateCode    = data["UserCode"],
                    ModifyPerson   = data["UserName"],
                    ModifyTime     = newDate,
                    FinishQuantity = Convert.ToDecimal(data["Quantity"])
                };

                string sqlLog = string.Format(@"SELECT * FROM  dbo.MES_OpreatorWorkingLog WHERE IsEnable = 1 AND APSCode = '{0}' AND BegainTime IS NOT NULL AND FinishTime IS NULL ORDER BY CreateTime DESC", model.APSCode);
                MES_OpreatorWorkingLog logModel = db.Sql(sqlLog).QueryMany <MES_OpreatorWorkingLog>().FirstOrDefault();

                int logID = 0;

                switch (type)
                {
                //新增
                case 0:
                    db.Sql(WinFormClientService.GetUpdateSQL(nameof(MES_WorkingTicket), new KeyValuePair <string, object>("WorkTicketCode", model.APSCode), new
                    {
                        ActualStartTime = newDate,
                        TicketStatus    = 2
                    })).Execute();

                    model.FinishQuantity = null;
                    logID = db.Sql(WinFormClientService.GetInsertSQL(model) + "SELECT @@IDENTITY;").QuerySingle <int>();
                    break;

                //暂停
                case 1:
                    db.Sql(WinFormClientService.GetUpdateSQL(nameof(MES_WorkingTicket), new KeyValuePair <string, object>("WorkTicketCode", model.APSCode), new
                    {
                        ActualFinishTime = newDate,
                        TicketStatus     = 4
                    })).Execute();

                    db.Sql(WinFormClientService.GetUpdateSQL(nameof(MES_OpreatorWorkingLog), new KeyValuePair <string, object>("ID", logModel.ID), new
                    {
                        FinishTime  = newDate,
                        WorkingHour = (int)Math.Floor(new TimeSpan(newDate.Ticks).Subtract(new TimeSpan(Convert.ToDateTime(logModel.BegainTime).Ticks)).Duration().TotalSeconds),
                        ModifyTime  = newDate,
                        PauseType   = 1,
                        PauseReson  = pauseReson
                    })).Execute();

                    logID = logModel.ID;
                    break;

                //完工
                case 2:
                    db.Sql(WinFormClientService.GetUpdateSQL(nameof(MES_WorkingTicket), new KeyValuePair <string, object>("WorkTicketCode", model.APSCode), new
                    {
                        ActualFinishTime = newDate,
                        TicketStatus     = 3
                    })).Execute();

                    db.Sql(WinFormClientService.GetUpdateSQL(nameof(MES_OpreatorWorkingLog), new KeyValuePair <string, object>("ID", logModel.ID), new
                    {
                        FinishTime     = newDate,
                        WorkingHour    = (int)Math.Floor(new TimeSpan(newDate.Ticks).Subtract(new TimeSpan(Convert.ToDateTime(logModel.BegainTime).Ticks)).Duration().TotalSeconds),
                        ModifyTime     = newDate,
                        PauseType      = 2,
                        FinishQuantity = model.FinishQuantity
                    })).Execute();

                    logID = logModel.ID;
                    break;

                default:
                    throw new Exception(@"参数错误!");
                }

                return(new ResultModel()
                {
                    Result = true,
                    Data = logID
                });
            }
            catch (Exception ex)
            {
                return(new ResultModel()
                {
                    Result = false,
                    Msg = ex.Message
                });
            }
        }