Esempio n. 1
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (!pf_input_valid())
            {
                return;
            }
            //--------------- 验证完成后, 需要把日期格式统一转成约定格式

            //快照 输入字段
            DateTime?pd_dt   = pdDate.SelectedDate.Value.Date;
            DateTime?plan_dt = planDate.SelectedDate.Value.Date;

            //---------------
            using (jhbEntities ctx = new jhbEntities())
            {
                var en_wt   = (from g in ctx.WTs where g.问题编号 == _Id select g).Single(); //唯一记录., 记录编号检索
                var enty_wt = ctx.Entry(en_wt).Entity;
                enty_wt.lastEdit = myFuc.getNowDateHashcode();
                enty_wt.受理单位     = pdUnit.Text;
                enty_wt.整改方案     = PlanFix.Text;
                enty_wt.OpTrack  = "PF";
                enty_wt.rev1     = pd_dt.Value.ToString("yyyy年M月d日"); //记录最后一次派发日期.
                //--------------- 生成派发表.  同一天, 同站名, 同设备问题, 同受理单位 视为更新!  g.派发日期.Value - pd_dt.Value)
                var en_pf = from g in ctx.PFs
                            where g.站名 == _Zn && g.问题编号 == _Id && g.派发日期 == pd_dt
                            select g;

                switch (en_pf.Count())
                {
                case 0:     //新生
                    PF nPf = new PF();
                    nPf.lastEdit = myFuc.getNowDateHashcode();
                    nPf.存在问题     = _wt.存在问题;
                    nPf.计划时间     = plan_dt; //planDate.Text.ToString("yyyy-M-d")
                    nPf.派发日期     = pd_dt;   // this.pdDate.Text;
                    nPf.设备名称     = _wt.设备名称;
                    nPf.受理单位     = pdUnit.Text;
                    nPf.天窗需求     = _wt.天窗需求;
                    nPf.问题编号     = _Id;
                    nPf.站名       = _Zn;
                    nPf.保留2      = PlanFix.Text;
                    ctx.PFs.Add(nPf);
                    // int x = await ctx.SaveChangesAsync();
                    //ctx.SaveChanges();

                    break;

                case 1:                                                // 更新
                    var pf_entry_row = en_pf.Single();                 //实体
                    var entry        = ctx.Entry(pf_entry_row).Entity; // 入口
                    entry.lastEdit = myFuc.getNowDateHashcode();
                    entry.存在问题     = _wt.存在问题;
                    entry.计划时间     = plan_dt;  //planDate.Text.ToString("yyyy-M-d")

                    entry.设备名称 = _wt.设备名称;
                    entry.受理单位 = pdUnit.Text;
                    entry.天窗需求 = _wt.天窗需求;
                    entry.保留2  = PlanFix.Text;
                    //ctx.SaveChanges();

                    break;
                }


                //---------- 生成通知单表 -- 根据日期,站名,受理单位三个记录条件找到记录, 更新记录字段..
                var en_tzd = from g in ctx.TZDs
                             where g.派单日期 == pd_dt && g.站名 == _Zn && g.受理单位 == pdUnit.Text
                             select g;
                switch (en_tzd.Count())
                {
                case 0:
                    // 插入新通知单
                    TZD new_tzd = new TZD();
                    new_tzd.派单日期     = pd_dt;
                    new_tzd.记录       = "\n" + "^" + _wt.设备名称 + ": " + _wt.存在问题 + " (" + plan_dt.Value.ToString("M月d日") + ")";
                    new_tzd.lastEdit = myFuc.getNowDateHashcode();
                    new_tzd.受理单位     = pdUnit.Text;
                    new_tzd.站名       = _Zn;

                    ctx.TZDs.Add(new_tzd);

                    //ctx.SaveChanges();
                    break;

                case 1:
                    //更新通知单
                    var    tzd_enty_row = en_tzd.Single();
                    string oldRec       = tzd_enty_row.记录;
                    if (oldRec.Contains(_wt.设备名称 + ": " + _wt.存在问题) == false)
                    {
                        ctx.Entry(tzd_enty_row).Entity.记录       = oldRec + "\n" + "^" + _wt.设备名称 + ": " + _wt.存在问题;
                        ctx.Entry(tzd_enty_row).Entity.lastEdit = myFuc.getNowDateHashcode();
                        ctx.SaveChangesAsync();
                    }
                    break;

                default:
                    Console.WriteLine("跑飞了....");
                    break;
                }
                ctx.SaveChangesAsync();
                //ctx.SaveChanges();

                g_var.g_chg_wt = enty_wt;
            }
            g_var.g_pf_flag = true;
            this.Close();
        }
Esempio n. 2
0
 public detail_show(Int64 indx)
 {
     InitializeComponent();
     _indx = indx;
     _pf   = new PF();
 }