示例#1
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Mod_TB_STA GetModelBySoft(string N_SORT, string C_PRO_ID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("SELECT C_ID,C_PRO_ID,C_STA_CODE,C_STA_DESC,C_EMP_ID,D_MOD_DT,C_REMARK,D_START_DATE,D_END_DATE,N_STATUS,C_STA_ERPCODE,C_STA_MESCODE,N_SORT,C_ERP_PK,C_SSBMID from TB_STA ");
            strSql.Append(" WHERE N_STATUS=1 AND N_SORT=:N_SORT AND C_PRO_ID=:C_PRO_ID ");
            OracleParameter[] parameters =
            {
                new OracleParameter(":N_SORT",   OracleDbType.Varchar2, 100),
                new OracleParameter(":C_PRO_ID", OracleDbType.Varchar2, 100)
            };
            parameters[0].Value = N_SORT;
            parameters[1].Value = C_PRO_ID;

            Mod_TB_STA model = new Mod_TB_STA();
            DataSet    ds    = DbHelperOra.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
示例#2
0
        private void btn_XY2_Click(object sender, EventArgs e)
        {
            Mod_TB_STA model = bll_TB_STA.GetModel(this.lbl_GWID.Text);

            if (model != null)
            {
                model.N_SORT = model.N_SORT + 1;
            }
            else
            {
                return;
            }
            model.C_EMP_ID = RV.UI.UserInfo.userID;
            model.D_MOD_DT = RV.UI.ServerTime.timeNow();
            if (model.N_SORT > bll_TB_STA.GetRecordCount(model.C_PRO_ID))
            {
                return;
            }
            Mod_TB_STA model1 = bll_TB_STA.GetModelBySoft(model.N_SORT.ToString(), model.C_PRO_ID);

            model1.N_SORT   = model1.N_SORT - 1;
            model1.C_EMP_ID = RV.UI.UserInfo.userID;
            model1.D_MOD_DT = RV.UI.ServerTime.timeNow();
            bool res = bll_TB_STA.Update(model);

            bll_TB_STA.Update(model1);
            if (res)
            {
                Common.UserLog.AddLog(strMenuName, this.Name, this.Text, "修改工位顺序"); //添加操作日志
                BindGW();                                                           //重新加载工位信息
                //btn_Reset_Click(null, null);//清空控件
            }
            this.lbl_GWID.Text = model.C_ID;
        }
示例#3
0
        private void btn_change_line_Click(object sender, EventArgs e)
        {
            if (this.icbo_line2.SelectedIndex < 0)
            {
                MessageBox.Show("请选择要调整的产线!");
                this.dtp_d_plan_date.Focus();
                return;
            }
            int slsctcou = lst.Where(a => a.B_check).ToList().Count;

            if (DialogResult.Yes == MessageBox.Show("您当前选中" + slsctcou.ToString() + "条订单,\r\n是否确认将选中的订单调整到 " + this.icbo_line2.Properties.Items[this.icbo_line2.SelectedIndex].Description.ToString() + " ?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1))
            {
                Mod_TB_STA modsta = bll_sta.GetModel(this.icbo_line2.Properties.Items[this.icbo_line2.SelectedIndex].Value.ToString());
                #region 方法
                WaitingFrom.ShowWait("计划正在修改,请稍候...");
                if (lst.Count > 0)
                {
                    if (lst.Where(a => a.B_check).ToList().Count > 0)
                    {
                        for (int i = 0; i < lst.Count; i++)
                        {
                            if (lst[i].B_check)
                            {
                                string oldline = lst[i].C_ROLL_DESC;
                                lst[i].C_LINE_NO   = modsta.C_ID;
                                lst[i].C_ROLL_CODE = modsta.C_STA_CODE;
                                lst[i].C_ROLL_DESC = modsta.C_STA_DESC;
                                lst[i].D_SC_MOD_DT = RV.UI.ServerTime.timeNow();
                                bll_order.Update(lst[i]);

                                DataTable dtroll_plan = bll_trp_paln.GetListByOrderID(lst[i].C_ID).Tables[0];
                                if (dtroll_plan.Rows.Count > 0)
                                {
                                    for (int j = 0; j < dtroll_plan.Rows.Count; j++)
                                    {
                                        Mod_TRP_PLAN_ROLL modtrp_roll = bll_trp_paln.GetModel(dtroll_plan.Rows[j]["C_ID"].ToString());
                                        modtrp_roll.C_STA_ID    = modsta.C_ID;
                                        modtrp_roll.C_LINE_CODE = modsta.C_STA_CODE;
                                        modtrp_roll.C_LINE_DESC = modsta.C_STA_DESC;
                                        bll_trp_paln.Update(modtrp_roll);
                                    }
                                }

                                Mod_TMO_ORDER_PJ_LOG modlog = new Mod_TMO_ORDER_PJ_LOG();
                                modlog.C_EMP_ID   = RV.UI.UserInfo.userID;
                                modlog.C_ORDER_NO = lst[i].C_ORDER_NO;
                                modlog.C_TYPE     = "调整计划产线";
                                modlog.C_RESULT   = "调整计划产线[" + oldline + "=>" + lst[i].C_ROLL_DESC.ToString() + "]";
                                modlog.C_MSG      = "计划产线调整!";
                                bll_ddpj.Add(modlog);
                            }
                        }
                    }
                }
                WaitingFrom.CloseWait();
                #endregion
                btn_query_order_Click(null, null);
            }
        }
示例#4
0
        private void FrmPB_GW_EDIT_Load(object sender, EventArgs e)
        {
            strMenuName = RV.UI.UserInfo.menuName;
            Mod_TB_STA mod = bll_TB_STA.GetModel(c_id);

            txt_GWDM.Text      = mod.C_STA_CODE;
            txt_GW.Text        = mod.C_STA_DESC;
            txt_ERPGWDM.Text   = mod.C_STA_ERPCODE;
            txt_MESGWDM.Text   = mod.C_STA_MESCODE;
            txt_Remark_GW.Text = mod.C_REMARK;
        }
示例#5
0
        /// <summary>
        /// 删除工位信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_StopGW_Click(object sender, EventArgs e)
        {
            try
            {
                if (DialogResult.No == MessageBox.Show("是否确认删除选中的数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1))
                {
                    return;
                }

                int    selectedNum = this.gv_GW.SelectedRowsCount;
                int    commitNum   = 0;                            //删除记录数量
                int    failtNum    = 0;                            //删除失败数量
                int[]  rownumber   = this.gv_GW.GetSelectedRows(); //获取选中行号数组;
                string pro         = "";
                for (int i = 0; i < rownumber.Length; i++)
                {
                    int        selectedHandle = rownumber[i];
                    string     strID          = this.gv_GW.GetRowCellValue(selectedHandle, "C_ID").ToString();
                    Mod_TB_STA model          = bll_TB_STA.GetModel(strID);
                    pro              = model.C_PRO_ID;
                    model.N_STATUS   = 0;
                    model.C_EMP_ID   = RV.UI.UserInfo.userID;
                    model.D_MOD_DT   = RV.UI.ServerTime.timeNow();
                    model.D_END_DATE = RV.UI.ServerTime.timeNow();
                    bool update = bll_TB_STA.Update(model);
                    if (update)
                    {
                        commitNum = commitNum + 1;
                    }
                    else
                    {
                        failtNum = failtNum + 1;
                    }
                }
                if (selectedNum == 0)
                {
                    MessageBox.Show("未选中工位!");
                }
                else
                {
                    bll_TB_STA.CZSORT(pro);
                    MessageBox.Show("选择" + selectedNum.ToString() + "条记录,删除" + commitNum.ToString() + "条记录!");
                }
                Common.UserLog.AddLog(strMenuName, this.Name, this.Text, "删除工位信息"); //添加操作日志

                btn_QueryGW_Click(null, null);                                      //重新加载工位信息
                gv_GW_Click(null, null);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
示例#6
0
        /// <summary>
        /// 计划重新划分连铸
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_fp_lz_Click(object sender, EventArgs e)
        {
            if (DialogResult.No == MessageBox.Show("是否确认重新分配计划连铸信息?\r\n重新分配后浇次计划将会重新生成!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1))
            {
                return;
            }
            WaitingFrom.ShowWait("系统正对炼钢计划进行连铸重新分配,请稍候...");
            if (this.icbo_lz1.SelectedIndex <= 0)
            {
                MessageBox.Show("请选择要分配的连铸!");
                icbo_lz1.Focus();
                return;
            }
            string     C_CCM_ID = icbo_lz1.Properties.Items[this.icbo_lz1.SelectedIndex].Value.ToString();
            Mod_TB_STA mod_sta  = bll_sta.GetModel(C_CCM_ID);

            int[] aa  = this.gv_Lg_plan_Query.GetSelectedRows();
            int   cou = 0;

            for (int i = 0; i < aa.Length; i++)
            {
                int    selectedHandle = aa[i];
                string C_ID           = this.gv_Lg_plan_Query.GetRowCellValue(selectedHandle, "C_ID").ToString();
                string C_STL_GRD      = this.gv_Lg_plan_Query.GetRowCellValue(selectedHandle, "C_STL_GRD").ToString();
                string C_STD_CODE     = this.gv_Lg_plan_Query.GetRowCellValue(selectedHandle, "C_STD_CODE").ToString();



                Mod_TRP_PLAN_ROLL mod_roll   = bll_trp_plan.GetModel(C_ID);
                string            C_ORDER_ID = mod_roll.C_INITIALIZE_ITEM_ID;
                Mod_TMO_ORDER     mod_order  = bll_order.GetModel(C_ORDER_ID);



                mod_order.C_CCM_NO   = C_CCM_ID;
                mod_order.C_CCM_CODE = mod_sta.C_STA_CODE;
                mod_order.C_CCM_DESC = mod_sta.C_STA_DESC;
                if (bll_order.Update(mod_order))
                {
                    mod_roll.C_CCM_ID   = C_CCM_ID;
                    mod_roll.C_CCM_CODE = mod_sta.C_STA_CODE;
                    mod_roll.C_CCM_DESC = mod_sta.C_STA_DESC;
                    if (bll_trp_plan.Update(mod_roll))
                    {
                        cou = cou + i;
                    }
                }
            }
            MessageBox.Show("连铸划分成功!");
            WaitingFrom.CloseWait();
            btn_query_lc_plan_Click(null, null);
        }
示例#7
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(Mod_TB_STA model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into TB_STA(");
            strSql.Append("C_PRO_ID,C_STA_CODE,C_STA_DESC,C_EMP_ID,D_MOD_DT,C_REMARK,D_START_DATE,D_END_DATE,N_STATUS,C_STA_ERPCODE,C_STA_MESCODE,C_ERP_PK,N_SORT)");
            strSql.Append(" values (");
            strSql.Append(":C_PRO_ID,:C_STA_CODE,:C_STA_DESC,:C_EMP_ID,:D_MOD_DT,:C_REMARK,:D_START_DATE,:D_END_DATE,:N_STATUS,:C_STA_ERPCODE,:C_STA_MESCODE,:C_ERP_PK,:N_SORT)");
            OracleParameter[] parameters =
            {
                new OracleParameter(":C_PRO_ID",      OracleDbType.Varchar2, 100),
                new OracleParameter(":C_STA_CODE",    OracleDbType.Varchar2, 100),
                new OracleParameter(":C_STA_DESC",    OracleDbType.Varchar2, 100),
                new OracleParameter(":C_EMP_ID",      OracleDbType.Varchar2, 100),
                new OracleParameter(":D_MOD_DT",      OracleDbType.Date),
                new OracleParameter(":C_REMARK",      OracleDbType.Varchar2, 200),
                new OracleParameter(":D_START_DATE",  OracleDbType.Date),
                new OracleParameter(":D_END_DATE",    OracleDbType.Date),
                new OracleParameter(":N_STATUS",      OracleDbType.Decimal,    1),
                new OracleParameter(":C_STA_ERPCODE", OracleDbType.Varchar2, 100),
                new OracleParameter(":C_STA_MESCODE", OracleDbType.Varchar2, 100),
                new OracleParameter(":C_ERP_PK",      OracleDbType.Varchar2, 100),
                new OracleParameter(":N_SORT",        OracleDbType.Decimal, 3)
            };
            parameters[0].Value  = model.C_PRO_ID;
            parameters[1].Value  = model.C_STA_CODE;
            parameters[2].Value  = model.C_STA_DESC;
            parameters[3].Value  = model.C_EMP_ID;
            parameters[4].Value  = model.D_MOD_DT;
            parameters[5].Value  = model.C_REMARK;
            parameters[6].Value  = model.D_START_DATE;
            parameters[7].Value  = model.D_END_DATE;
            parameters[8].Value  = model.N_STATUS;
            parameters[9].Value  = model.C_STA_ERPCODE;
            parameters[10].Value = model.C_STA_MESCODE;
            parameters[11].Value = model.C_ERP_PK;
            parameters[12].Value = model.N_SORT;

            int rows = DbHelperOra.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        /// <summary>
        /// 完工,入库
        /// </summary>
        /// <param name="item">委外计划</param>
        private void RuKu(Mod_TRC_ROLL_WW_MAIN item, Mod_TB_STA tBSta, Mod_TMO_ORDER contractInfo)
        {
            var xcItems = dalWWMain.GetItemList(item.C_ID);

            if (xcItems.Any() == false)
            {
                throw new Exception("未找到组批信息");
            }

            List <Mod_TRC_ROLL_PRODCUT> addItems = new List <Mod_TRC_ROLL_PRODCUT>();

            // 单支完工量
            var singleAmt = item.N_WGT_REMOVE / item.N_QUA_REMOVE;

            foreach (var xcItem in xcItems)
            {
                // 如果已经满足完工支数退出
                if (addItems.Count == item.N_QUA_REMOVE)
                {
                    continue;
                }
                xcItem.C_ID              = $"{item.C_BATCH_NO}{(addItems.Count + 1).ToString("0000")}";
                xcItem.C_BATCH_NO        = item.C_BATCH_NO;
                xcItem.N_WGT             = singleAmt ?? 0;
                xcItem.C_MOVE_TYPE       = "E";
                xcItem.C_SHIFT           = item.C_PRODUCE_SHIFT;
                xcItem.C_GROUP           = item.C_PRODUCE_GROUP;
                xcItem.C_STA_ID          = tBSta.C_ID;
                xcItem.C_IS_DEPOT        = "Y";
                xcItem.C_MAT_CODE        = contractInfo.C_MAT_CODE; //item.C_MAT_XC_CODE;
                xcItem.C_MAT_CODE_BEFORE = string.Empty;
                xcItem.C_MAT_DESC        = contractInfo.C_MAT_NAME; //item.C_MAT_XC_NAME;
                xcItem.C_CON_NO          = contractInfo.C_CON_NO;
                xcItem.C_ORDER_NO        = contractInfo.C_ORDER_NO;
                xcItem.C_LINEWH_CODE     = item.C_LINEWH_CODE;
                xcItem.C_LINEWH_LOC_CODE = string.Empty;
                xcItem.C_WWBATCH_NO      = item.C_XC_BATCH_NO;
                xcItem.C_JUDGE_LEV_ZH    = item.C_CHECKSTATE_NAME;
                xcItem.C_BZYQ            = contractInfo.C_PACK;
                xcItem.D_DP_DT           = DateTime.Now;
                bllProduct.Add(xcItem);

                addItems.Add(xcItem);
            }
        }
示例#9
0
        /// <summary>
        /// ImageComboBoxEdit加载班组
        /// </summary>
        /// <param name="cbo">控件</param>
        /// <param name="stacode">工位代码</param>
        public void ImageComboBoxEditBindNCBZ(DevExpress.XtraEditors.ImageComboBoxEdit cbo, string stacode)
        {
            Mod_TB_STA mod_TB_STA = bll_TB_STA.GetModelByCODE(stacode);//获取工作中心id

            cbo.Properties.Items.Clear();
            DataTable dt = bll_TB_BCBZ.GetNCBZList(mod_TB_STA.C_ERP_PK, "").Tables[0];

            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    cbo.Properties.Items.Add(dt.Rows[i]["BZMC"].ToString(), dt.Rows[i]["PK_PGAID"].ToString(), -1);
                }
            }
            else
            {
                cbo.Properties.Items.Clear();
            }
        }
示例#10
0
        /// <summary>
        /// 默认班次班组
        /// </summary>
        /// <param name="bccbo">班次</param>
        /// <param name="bzcbo">班组</param>
        /// <param name="stacode">工位代码</param>
        /// <param name="type">工序</param>
        public void BCBZBindEdit(DevExpress.XtraEditors.ImageComboBoxEdit bccbo, DevExpress.XtraEditors.ImageComboBoxEdit bzcbo, string stacode)
        {
            Mod_TB_STA mod_TB_STA = bll_TB_STA.GetModelByCODE(stacode);//获取NC工位代码
            DataTable  dt         = bll_TB_BCBZ.GetList(mod_TB_STA.C_PRO_ID, DateTime.Now).Tables[0];

            if (dt.Rows.Count > 0)
            {
                DataTable dt1 = bll_TB_BCBZ.GetNCBCList(mod_TB_STA.C_STA_ERPCODE, dt.Rows[0]["C_BC_NAME"].ToString()).Tables[0];
                DataTable dt2 = bll_TB_BCBZ.GetNCBZList(mod_TB_STA.C_ERP_PK, dt.Rows[0]["C_BZ_NAME"].ToString()).Tables[0];
                if (dt1.Rows.Count > 0)
                {
                    bccbo.EditValue = dt1.Rows[0]["PK_WTID"].ToString();
                }
                if (dt2.Rows.Count > 0)
                {
                    bzcbo.EditValue = dt2.Rows[0]["PK_PGAID"].ToString();
                }
            }
        }
示例#11
0
        /// <summary>
        /// 保存信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_SaveDetails_Click(object sender, EventArgs e)
        {
            try
            {
                #region 验证信息
                if (txt_remark.Text.Trim() != "")
                {
                    MessageBox.Show("备注不能为空!");
                    return;
                }

                #endregion
                bool res = false;
                if (DialogResult.No == MessageBox.Show("是否确认保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1))
                {
                    return;
                }
                Mod_TPP_TURNAROUND_PLAN model = new Mod_TPP_TURNAROUND_PLAN();
                model.C_STA_CODE = stacode;
                Mod_TB_STA mod = bllSta.GetModelByCODE(stacode);
                if (mod != null)
                {
                    model.C_STA_ID = mod.C_ID;
                }
                model.D_START_TIME = Convert.ToDateTime(this.dt_jx_from_time.Text);
                model.D_END_TIME   = Convert.ToDateTime(this.dt_jx_end_time.Text);
                model.C_PLAN_TYPE  = this.cbo_jxlb.Text;
                model.C_REMARK     = txt_remark.Text;
                model.C_EMP_ID     = RV.UI.UserInfo.userID;
                res = blljxjh.Add(model);
                Common.UserLog.AddLog(strMenuName, this.Name, this.Text, "添加轧线检修计划");//添加操作日志
                if (res)
                {
                    MessageBox.Show("操作成功!");
                    BindInfo();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
示例#12
0
        /// <summary>
        /// 获取工序列表焦点行信息
        /// </summary>
        public void BindFocusedRowGW()
        {
            int selectedHandle = this.gv_GW.FocusedRowHandle;//获取焦点行索引

            if (selectedHandle < 0)
            {
                ClearContent.ClearPanelControl(panelControl3.Controls);
                lbl_GWID.Text = "";
                return;
            }
            this.lbl_GWID.Text = this.gv_GW.GetRowCellValue(selectedHandle, "C_ID").ToString();//获取焦点行主键
            //根据主键得到工序对象,并在界面赋值
            Mod_TB_STA model = bll_TB_STA.GetModel(this.lbl_GWID.Text);

            this.txt_GW.Text      = model.C_STA_DESC;
            this.txt_GWDM.Text    = model.C_STA_CODE;
            this.txt_ERPGWDM.Text = model.C_STA_ERPCODE;
            this.txt_MESGWDM.Text = model.C_STA_MESCODE;
            this.txt_Remark.Text  = model.C_REMARK;
        }
示例#13
0
 private void btn_Save_Click(object sender, EventArgs e)
 {
     try
     {
         Mod_TB_STA mod = bll_TB_STA.GetModel(c_id);
         mod.C_STA_CODE    = txt_GWDM.Text;
         mod.C_STA_DESC    = txt_GW.Text;
         mod.C_STA_ERPCODE = txt_ERPGWDM.Text;
         mod.C_STA_MESCODE = txt_MESGWDM.Text;
         mod.C_REMARK      = txt_Remark_GW.Text;
         mod.C_EMP_ID      = RV.UI.UserInfo.UserID;
         mod.D_MOD_DT      = RV.UI.ServerTime.timeNow();
         bll_TB_STA.Update(mod);
         MessageBox.Show("保存成功!");
         Common.UserLog.AddLog(strMenuName, this.Name, this.Text, "修改工位");//添加操作日志
         this.DialogResult = DialogResult.Cancel;
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
示例#14
0
        /// <summary>
        /// 查询能源消耗实绩记录
        /// </summary>
        public void BindRecode()
        {
            string stacode = "";
            string procode = "";

            if (imgcbo_GX.EditValue.ToString() != "")
            {
                Mod_TB_PRO mod_TB_PRO = bllPro.GetModel(imgcbo_GX.EditValue.ToString());
                procode = mod_TB_PRO.C_PRO_CODE;
            }
            if (imgcbo_GW.EditValue.ToString() != "")
            {
                Mod_TB_STA mod_TB_STA = bllSta.GetModel(imgcbo_GW.EditValue.ToString());
                stacode = mod_TB_STA.C_STA_CODE;
            }
            DataTable dt = bllenergy.BindRecode(dt_query_form.DateTime, dt_query_to.DateTime, procode, stacode, cbo_energy.EditValue.ToString()).Tables[0];

            this.gc_scyx.DataSource = dt;
            this.gv_scyx.OptionsView.ColumnAutoWidth  = false;                                                                //不允许自动列宽
            this.gv_scyx.OptionsSelection.MultiSelect = true;                                                                 //允许多选
            gv_scyx.OptionsSelection.MultiSelectMode  = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect; //加载checkBox
            this.gv_scyx.BestFitColumns();
            SetGridViewRowNum.SetRowNum(gv_scyx);
        }
示例#15
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Mod_TB_STA GetModel(string C_ID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("SELECT * from TB_STA ");
            strSql.Append(" WHERE C_ID=:C_ID ");
            OracleParameter[] parameters =
            {
                new OracleParameter(":C_ID", OracleDbType.Varchar2, 100)
            };
            parameters[0].Value = C_ID;

            Mod_TB_STA model = new Mod_TB_STA();
            DataSet    ds    = DbHelperOra.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="order">合同信息</param>
        /// <param name="matrl">成品物料信息</param>
        /// <param name="item">组批信息</param>
        /// <param name="ssBmid">部门ID</param>
        /// <returns></returns>
        private NcRollA1 GetA1(Mod_TMO_ORDER order, Mod_TB_MATRL_MAIN matrl, Mod_TRC_ROLL_WW_MAIN item, Mod_TB_STA tBSta, Mod_TS_USER user)
        {
            var ncRollA1 = new NcRollA1
            {
                bmid       = tBSta.C_SSBMID,                      //部门ID
                jhrq       = item.D_MOD_DT,                       //计划日期
                jhxxsl     = (item.N_WGT_TOTAL ?? 0).ToString(),  //下限数量
                jhyid      = matrl.C_PLANEMP,                     // 计划员ID
                jldwid     = matrl.C_PK_MEASDOC,                  //计量单位
                memo       = item.C_REMARK,                       //备注
                pk_produce = matrl.C_PK_PRODUCE,                  //物料PK,
                scbmid     = tBSta.C_SSBMID,                      //生产部门ID
                shrid      = item.C_PRODUCE_EMP_ID,               //操作员
                shrq       = DateTime.Now,                        //审核日期
                slrq       = order.D_DT ?? DateTime.Now,          //需求日期
                wlbmid     = matrl.C_PK_INVBASDOC,                // 存货档案主键
                xdrq       = item.D_MOD_DT,                       //下单日期
                xqrq       = order.D_DELIVERY_DT ?? DateTime.Now, //交货日期
                xqsl       = (item.N_WGT_TOTAL ?? 0).ToString(),  //计划量
                zdrq       = DateTime.Now,                        //制单日期
                zyx1       = order.C_FREE1,                       //自由项1
                zyx2       = order.C_FREE2,                       //自由项2
                zyx3       = order.C_PACK,                        //包装要求
                zyx5       = item.C_ID,                           //PCI主键
            };

            return(ncRollA1);
        }
示例#17
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Mod_TB_STA DataRowToModel(DataRow row)
        {
            Mod_TB_STA model = new Mod_TB_STA();

            if (row != null)
            {
                if (row["C_ID"] != null)
                {
                    model.C_ID = row["C_ID"].ToString();
                }
                if (row["C_PRO_ID"] != null)
                {
                    model.C_PRO_ID = row["C_PRO_ID"].ToString();
                }
                if (row["C_STA_CODE"] != null)
                {
                    model.C_STA_CODE = row["C_STA_CODE"].ToString();
                }
                if (row["C_STA_DESC"] != null)
                {
                    model.C_STA_DESC = row["C_STA_DESC"].ToString();
                }
                if (row["C_EMP_ID"] != null)
                {
                    model.C_EMP_ID = row["C_EMP_ID"].ToString();
                }
                if (row["D_MOD_DT"] != null && row["D_MOD_DT"].ToString() != "")
                {
                    model.D_MOD_DT = DateTime.Parse(row["D_MOD_DT"].ToString());
                }
                if (row["C_REMARK"] != null)
                {
                    model.C_REMARK = row["C_REMARK"].ToString();
                }
                if (row["D_START_DATE"] != null && row["D_START_DATE"].ToString() != "")
                {
                    model.D_START_DATE = DateTime.Parse(row["D_START_DATE"].ToString());
                }
                if (row["D_END_DATE"] != null && row["D_END_DATE"].ToString() != "")
                {
                    model.D_END_DATE = DateTime.Parse(row["D_END_DATE"].ToString());
                }
                if (row["N_STATUS"] != null && row["N_STATUS"].ToString() != "")
                {
                    model.N_STATUS = decimal.Parse(row["N_STATUS"].ToString());
                }
                if (row["C_STA_ERPCODE"] != null)
                {
                    model.C_STA_ERPCODE = row["C_STA_ERPCODE"].ToString();
                }
                if (row["C_STA_MESCODE"] != null)
                {
                    model.C_STA_MESCODE = row["C_STA_MESCODE"].ToString();
                }
                if (row["N_SORT"] != null && row["N_SORT"].ToString() != "")
                {
                    model.N_SORT = decimal.Parse(row["N_SORT"].ToString());
                }
                if (row["C_ERP_PK"] != null)
                {
                    model.C_ERP_PK = row["C_ERP_PK"].ToString();
                }
                if (row["C_SSBMID"] != null)
                {
                    model.C_SSBMID = row["C_SSBMID"].ToString();
                }
            }
            return(model);
        }
示例#18
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(Mod_TB_STA model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update TB_STA set ");
            strSql.Append("C_PRO_ID=:C_PRO_ID,");
            strSql.Append("C_STA_CODE=:C_STA_CODE,");
            strSql.Append("C_STA_DESC=:C_STA_DESC,");
            strSql.Append("C_EMP_ID=:C_EMP_ID,");
            strSql.Append("D_MOD_DT=:D_MOD_DT,");
            strSql.Append("C_REMARK=:C_REMARK,");
            strSql.Append("D_START_DATE=:D_START_DATE,");
            strSql.Append("D_END_DATE=:D_END_DATE,");
            strSql.Append("N_STATUS=:N_STATUS,");
            strSql.Append("C_STA_ERPCODE=:C_STA_ERPCODE,");
            strSql.Append("C_STA_MESCODE=:C_STA_MESCODE,");
            strSql.Append("N_SORT=:N_SORT,");
            strSql.Append("C_ERP_PK=:C_ERP_PK");
            strSql.Append(" WHERE C_ID=:C_ID ");
            OracleParameter[] parameters =
            {
                new OracleParameter(":C_PRO_ID",      OracleDbType.Varchar2, 100),
                new OracleParameter(":C_STA_CODE",    OracleDbType.Varchar2, 100),
                new OracleParameter(":C_STA_DESC",    OracleDbType.Varchar2, 100),
                new OracleParameter(":C_EMP_ID",      OracleDbType.Varchar2, 100),
                new OracleParameter(":D_MOD_DT",      OracleDbType.Date),
                new OracleParameter(":C_REMARK",      OracleDbType.Varchar2, 200),
                new OracleParameter(":D_START_DATE",  OracleDbType.Date),
                new OracleParameter(":D_END_DATE",    OracleDbType.Date),
                new OracleParameter(":N_STATUS",      OracleDbType.Decimal,    1),
                new OracleParameter(":C_STA_ERPCODE", OracleDbType.Varchar2, 100),
                new OracleParameter(":C_STA_MESCODE", OracleDbType.Varchar2, 100),
                new OracleParameter(":N_SORT",        OracleDbType.Decimal,    3),
                new OracleParameter(":C_ERP_PK",      OracleDbType.Varchar2, 100),
                new OracleParameter(":C_ID",          OracleDbType.Varchar2, 100)
            };
            parameters[0].Value  = model.C_PRO_ID;
            parameters[1].Value  = model.C_STA_CODE;
            parameters[2].Value  = model.C_STA_DESC;
            parameters[3].Value  = model.C_EMP_ID;
            parameters[4].Value  = model.D_MOD_DT;
            parameters[5].Value  = model.C_REMARK;
            parameters[6].Value  = model.D_START_DATE;
            parameters[7].Value  = model.D_END_DATE;
            parameters[8].Value  = model.N_STATUS;
            parameters[9].Value  = model.C_STA_ERPCODE;
            parameters[10].Value = model.C_STA_MESCODE;
            parameters[11].Value = model.N_SORT;
            parameters[12].Value = model.C_ERP_PK;
            parameters[13].Value = model.C_ID;

            int rows = DbHelperOra.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        private NcRoll46 Get46(Mod_TMO_ORDER order, Mod_TB_MATRL_MAIN ordMatrl, Mod_TRC_ROLL_WW_MAIN item, Mod_TB_STA tBSta, Mod_TS_USER user)
        {
            Mod_TQB_CHECKSTATE mod_TQB_CHECKSTATE = dal_TQB_CHECKSTATE.GetModelByName(item.C_CHECKSTATE_NAME, "1001");

            var lineWhItem = dalLineWh.GetModelByCode(item.C_LINEWH_CODE);
            var ncRoll46   = new NcRoll46
            {
                castunitid      = ordMatrl.C_FJLDW,                    //辅助计量单位ID
                ccheckstate_bid = mod_TQB_CHECKSTATE.C_ID,             //"1001NC100000000052Z3",//质量等级ID
                cinvbasid       = ordMatrl.C_PK_INVBASDOC,             //存货基本ID
                coperatorid     = user.C_ACCOUNT,                      //"17384",//item.C_PRODUCE_EMP_ID,//入库人
                cwarehouseid    = lineWhItem.C_ID,                     //仓库ID
                cworkcenterid   = tBSta.C_ERP_PK,
                dbizdate        = DateTime.Now,                        //入库日期
                ninassistnum    = (item.N_QUA_REMOVE ?? 0).ToString(), //入库件数
                ninnum          = (item.N_WGT_REMOVE ?? 0).ToString(), //入库数量
                pk_produce      = ordMatrl.C_PK_PRODUCE,               //物料PK
                taccounttime    = DateTime.Now,                        //入库签字时间
                vbatchcode      = item.C_BATCH_NO,
                vfree1          = order.C_FREE1,
                vfree2          = order.C_FREE2,
                vfree3          = order.C_PACK,
            };

            return(ncRoll46);
        }
        private NcRollA4 GetA4(Mod_TMO_ORDER order, Mod_TB_MATRL_MAIN ordMatrl, Mod_TRC_ROLL_WW_MAIN item, Mod_TB_STA tBSta, Mod_TS_USER user)
        {
            var ncRollA4 = new NcRollA4
            {
                ccxh           = item.C_BATCH_NO,                       //批号
                fhgsl          = (item.N_QUA_REMOVE ?? 0).ToString(),   //完工数量
                freeitemvalue1 = order.C_FREE1,                         //自由项1
                freeitemvalue2 = order.C_FREE2,                         //自由项2
                freeitemvalue3 = order.C_PACK,                          //包装要求
                gzzxbmid       = tBSta.C_STA_ERPCODE,                   //工作中心代码
                gzzxid         = tBSta.C_ERP_PK,                        //工作中心ID
                hgsl           = (item.N_WGT_REMOVE ?? 0).ToString(),   //合格数量
                jldwid         = ordMatrl.C_PK_MEASDOC,                 //计量单位ID
                jsrq           = item.D_PRODUCE_DATE_E ?? DateTime.Now, //生产结束日期
                ksrq           = item.D_PRODUCE_DATE_B ?? DateTime.Now, //生产开始日期
                pch            = item.C_BATCH_NO,                       //批次号,
                pk_produce     = ordMatrl.C_PK_PRODUCE,                 //物料PK
                rq             = item.D_PRODUCE_DATE_E ?? DateTime.Now, //完工日期
                scbmid         = tBSta.C_SSBMID,                        //生产部门ID
                sffsgp         = "N",                                   //是否发生改判
                sflfcp         = "N",                                   //是否联产品
                sj             = DateTime.Now,                          //报告时间
                wlbmid         = ordMatrl.C_PK_INVBASDOC,               //物料编码ID
                zdrid          = user.C_ACCOUNT,                        //item.C_PRODUCE_EMP_ID,//操作人员
            };

            return(ncRollA4);
        }
        private NcRollA3 GetA3(Mod_TMO_ORDER order, Mod_TB_MATRL_MAIN ordMatrl, Mod_TB_MATRL_MAIN matrl, Mod_TRC_ROLL_WW_MAIN item, Mod_TB_STA tBSta, Mod_TRC_ROLL_PRODCUT xcItem)
        {
            var lineWhItem = dalLineWh.GetModelByCode(item.C_XC_LINEWH_CODE);
            var ncRollA3   = new NcRollA3
            {
                ckckid          = lineWhItem.C_ID,                       //出库仓库ID(TPB_LINEWH线材库ID)
                fjldwid         = matrl.C_FJLDW,                         //辅助计量单位ID,
                fljcksl         = (item.N_QUA_TOTAL ?? 0).ToString(),    // 出库数量
                flrq            = DateTime.Now.ToString("yyyy-MM-dd"),
                freeitemvalue1  = xcItem.C_ZYX1,                         //order.C_FREE1,// 线材自由项1(暂认为委外与线材自由项一致)
                freeitemvalue2  = xcItem.C_ZYX2,                         //order.C_FREE2,//线材自由项2(暂认为委外与线材自由项一致)
                freeitemvalue3  = item.C_XC_BZYQ,                        // 线材包装要求
                gzzxid          = tBSta.C_ERP_PK,                        //工作中心ID
                hfreeitemvalue1 = order.C_FREE1,                         // 成品自由项1
                hfreeitemvalue2 = order.C_FREE2,                         //成品自由项2
                hfreeitemvalue3 = order.C_PACK,                          // 成品包装要求,
                hjldwid         = ordMatrl.C_PK_MEASDOC,                 //主计量单位ID
                hpch            = item.C_BATCH_NO,                       //批号
                hwlbmid         = ordMatrl.C_PK_INVBASDOC,               //存货档案主键
                hzdrid          = item.C_PRODUCE_EMP_ID,                 //操作人
                hzdrq           = item.D_PRODUCE_DATE_B ?? DateTime.Now, //制单日期
                jldwid          = matrl.C_PK_MEASDOC,                    //计量单位
                kgyid           = item.C_PRODUCE_EMP_ID,                 //库管员
                ljcksl          = (item.N_WGT_TOTAL ?? 0).ToString(),    //累计出库数量
                pch             = item.C_XC_BATCH_NO,                    //线材批号
                wlbmid          = matrl.C_PK_INVBASDOC,                  //存货档案主键
                zdrq            = DateTime.Now,
            };

            return(ncRollA3);
        }
        /// <summary>
        /// 发送计划给NC
        /// </summary>
        /// <param name="xmlFileName">xml完整路径</param>
        /// <param name="tsp_plan_sms_id">炉号</param>
        /// <param name="stove">炉号</param>
        /// <returns></returns>
        public string SendXml_SLAB_A1(string xmlFileName, string tsp_plan_sms_id, string stove)
        {
            try
            {
                string urlname = "A1ED" + stove + ".XML";//XML名称

                string url = xmlFileName + "\\NCXML";
                if (!Directory.Exists(url))
                {
                    Directory.CreateDirectory(url);
                }

                Mod_TSP_PLAN_SMS  mod_plan_sms   = dal_plan_sms.GetModel_Trans(tsp_plan_sms_id);     //连铸生产计划表
                Mod_TB_MATRL_MAIN mod_mater_main = dal_mater_main.GetModel(mod_plan_sms.C_MATRL_NO); //物料主表
                Mod_TMO_ORDER     mod_Order      = dal_tmo_order.GetModel(mod_plan_sms.C_ORDER_NO);
                Mod_TB_STA        modSta         = dalSta.GetModel(mod_plan_sms.C_CCM_ID);
                if (mod_plan_sms == null)
                {
                    return("获取连铸计划失败!");
                }
                if (mod_mater_main == null)
                {
                    return("获取物料信息失败!");
                }
                if (mod_Order == null)
                {
                    return("获取订单信息失败!");
                }
                if (modSta == null)
                {
                    return("获取工位信息失败!");
                }
                XmlDocument xmlDoc = new XmlDocument();
                //创建类型声明节点
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "no");
                xmlDoc.AppendChild(node);

                //创建根节点
                XmlElement root = xmlDoc.CreateElement("ufinterface");
                #region//给节点属性赋值
                root.SetAttribute("account", "1");
                root.SetAttribute("billtype", "A1");
                root.SetAttribute("filename", urlname);
                root.SetAttribute("isexchange", "Y");
                root.SetAttribute("proc", "add");
                root.SetAttribute("receiver", "101");
                root.SetAttribute("replace", "Y");
                root.SetAttribute("roottag", "bill");
                root.SetAttribute("sender", "1107");
                #endregion
                xmlDoc.AppendChild(root);

                //创建子根节点
                XmlElement so_order = xmlDoc.CreateElement("bill");
                //#region//节点属性
                //so_order.SetAttribute("id", dayplcode);
                //#endregiond
                root.AppendChild(so_order);

                XmlNode head = xmlDoc.CreateNode(XmlNodeType.Element, "billhead", null);

                #region                                                   //表头_order_head

                CreateNode(xmlDoc, head, "bgbz", "1");                    //变更标志
                CreateNode(xmlDoc, head, "bmid", "1001NC10000000000345"); //部门ID
                CreateNode(xmlDoc, head, "bmmc", "");                     //部门名称
                CreateNode(xmlDoc, head, "bomver", "");                   //BOM版本
                CreateNode(xmlDoc, head, "busiDate", "");
                CreateNode(xmlDoc, head, "ckbm", "");                     //仓库编码
                CreateNode(xmlDoc, head, "ckbmid", "");                   //仓库编码ID
                CreateNode(xmlDoc, head, "ckmc", "");                     //仓库名称
                CreateNode(xmlDoc, head, "curwwsl", "");
                CreateNode(xmlDoc, head, "ddlx", "1");                    //订单类型
                CreateNode(xmlDoc, head, "ddlxshow", "");
                CreateNode(xmlDoc, head, "durl", "");                     //资料路径
                CreateNode(xmlDoc, head, "fah", "");
                CreateNode(xmlDoc, head, "fjbz", "0");                    //分解标记
                CreateNode(xmlDoc, head, "fjldwid", "");                  //辅计量单位ID
                CreateNode(xmlDoc, head, "fjldwmc", "");
                CreateNode(xmlDoc, head, "gcbm", "1001NC10000000000669"); //工厂
                CreateNode(xmlDoc, head, "gcbmcode", "");
                CreateNode(xmlDoc, head, "graphid", "");
                CreateNode(xmlDoc, head, "gzzxbm", ""); //工作中心编码ID
                CreateNode(xmlDoc, head, "gzzxid", ""); //工作中心ID
                CreateNode(xmlDoc, head, "gzzxmc", ""); //工作中心名称
                CreateNode(xmlDoc, head, "hbbz", "0");  //合并标志
                CreateNode(xmlDoc, head, "hsl", "");    //换算率
                CreateNode(xmlDoc, head, "invspec", "");
                CreateNode(xmlDoc, head, "invtype", "");
                CreateNode(xmlDoc, head, "jhbmbm", "");
                CreateNode(xmlDoc, head, "jhddh", "");                                                                    //计划订单号
                CreateNode(xmlDoc, head, "jhfaid", mod_mater_main.C_PK_PSID);                                             //计划方案ID
                CreateNode(xmlDoc, head, "jhlx", "0");                                                                    //备料计划类型(固定)
                CreateNode(xmlDoc, head, "jhrq", Convert.ToDateTime(mod_plan_sms.D_P_START_TIME).ToString("yyyy-MM-dd")); //计划日期
                CreateNode(xmlDoc, head, "jhxxsl", "");                                                                   //计划下限数量
                CreateNode(xmlDoc, head, "jhyid", mod_mater_main.C_PLANEMP);                                              //计划员ID
                CreateNode(xmlDoc, head, "jldw", "");                                                                     //计量单位
                CreateNode(xmlDoc, head, "jldwid", mod_mater_main.C_PK_MEASDOC);                                          //计量单位ID
                CreateNode(xmlDoc, head, "ksid", "");                                                                     //客商ID
                CreateNode(xmlDoc, head, "memo", "");                                                                     //备注
                CreateNode(xmlDoc, head, "pch", "");                                                                      //批次号
                CreateNode(xmlDoc, head, "pk_corp", "1001");                                                              //公司
                CreateNode(xmlDoc, head, "pk_poid", "");                                                                  //计划订单主键
                CreateNode(xmlDoc, head, "pk_produce", mod_mater_main.C_PK_PRODUCE);                                      //物料PK
                CreateNode(xmlDoc, head, "primaryKey", "");
                CreateNode(xmlDoc, head, "pzh", "");                                                                      //配置号
                CreateNode(xmlDoc, head, "qrrid", "");
                CreateNode(xmlDoc, head, "qrrq", "");
                CreateNode(xmlDoc, head, "rtver", "");
                CreateNode(xmlDoc, head, "scbmbm", "");
                CreateNode(xmlDoc, head, "scbmid", modSta.C_SSBMID);//生产部门ID
                CreateNode(xmlDoc, head, "scbmmc", "");
                CreateNode(xmlDoc, head, "scbz", "1");
                CreateNode(xmlDoc, head, "scxid", "");
                CreateNode(xmlDoc, head, "shrid", mod_plan_sms.C_EMP_ID);                                                 //操作人员
                CreateNode(xmlDoc, head, "shrq", Convert.ToDateTime(mod_plan_sms.D_P_START_TIME).ToString("yyyy-MM-dd")); //审核日期
                CreateNode(xmlDoc, head, "slrq", Convert.ToDateTime(mod_Order.D_NEED_DT).ToString("yyyy-MM-dd"));         //需求日期
                CreateNode(xmlDoc, head, "unitcode", "");
                CreateNode(xmlDoc, head, "userid", "");
                CreateNode(xmlDoc, head, "wlbm", "");
                CreateNode(xmlDoc, head, "wlbmid", mod_mater_main.C_PK_INVBASDOC);
                CreateNode(xmlDoc, head, "wlmc", "");
                CreateNode(xmlDoc, head, "wpcsl", "0.00000000");
                CreateNode(xmlDoc, head, "wwlx", "OA");
                CreateNode(xmlDoc, head, "xdrq", Convert.ToDateTime(mod_plan_sms.D_P_START_TIME).ToString("yyyy-MM-dd")); //下单日期
                CreateNode(xmlDoc, head, "xqfsl", "");
                CreateNode(xmlDoc, head, "xqrq", Convert.ToDateTime(mod_Order.D_DELIVERY_DT).ToString("yyyy-MM-dd"));     //交货日期
                CreateNode(xmlDoc, head, "xqsl", mod_Order.N_WGT.ToString());                                             //计划量
                CreateNode(xmlDoc, head, "xsddh", "");
                CreateNode(xmlDoc, head, "xsddid", "");
                CreateNode(xmlDoc, head, "xxbz", "0");
                CreateNode(xmlDoc, head, "yfjsl", "");
                CreateNode(xmlDoc, head, "ypcsl", "");
                CreateNode(xmlDoc, head, "ywwsl", "");
                CreateNode(xmlDoc, head, "zdrid", mod_plan_sms.C_EMP_ID);                                           //制单人ID
                CreateNode(xmlDoc, head, "zdrmc", "");
                CreateNode(xmlDoc, head, "zdrq", Convert.ToDateTime(mod_plan_sms.D_MOD_DT).ToString("yyyy-MM-dd")); //制单日期
                CreateNode(xmlDoc, head, "zdy1", "");
                CreateNode(xmlDoc, head, "zdy2", "其它要求");
                CreateNode(xmlDoc, head, "zdy3", "");
                CreateNode(xmlDoc, head, "zdy4", "");
                CreateNode(xmlDoc, head, "zdy5", "");
                CreateNode(xmlDoc, head, "zt", "B");
                CreateNode(xmlDoc, head, "zyx1", mod_Order.C_FREE1); //自由项1
                CreateNode(xmlDoc, head, "zyx2", mod_Order.C_FREE2); //自由项2
                CreateNode(xmlDoc, head, "zyx3", "");                //自由项3
                CreateNode(xmlDoc, head, "zyx4", "");
                CreateNode(xmlDoc, head, "zyx5", mod_Order.C_ID);    //pci主键
                #endregion

                so_order.AppendChild(head);

                xmlDoc.Save(url + "\\" + urlname);
                List <string> parem = dalSendNC.SendXML(url + "\\" + urlname);

                if (parem[0] == "1")
                {
                    return("1");
                }
                else
                {
                    return(parem[1].ToString());
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
示例#23
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(Mod_TB_STA model)
 {
     return(dal.Update(model));
 }
示例#24
0
        private void btn_save_Click(object sender, EventArgs e)
        {
            try
            {
                bool res = false;
                if (this.lbl_id.Text == "")
                {
                    if (DialogResult.No == MessageBox.Show("是否确认添加记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1))
                    {
                        return;
                    }

                    if (this.cbo_GW.EditValue == null)
                    {
                        MessageBox.Show("未选择工位!");
                        return;
                    }
                    if (this.txt_cn.Text.Trim() == "" || this.txt_cn.Text.Trim() == "0")
                    {
                        MessageBox.Show("产能不能0或为空!");
                        return;
                    }
                    Mod_TPB_GL_CAPACITY model = new Mod_TPB_GL_CAPACITY();
                    model.C_STA_ID = this.cbo_GW.EditValue.ToString();
                    DataTable dt = bll.GetList(model.C_STA_ID, 1).Tables[0];
                    if (dt.Rows.Count > 0)
                    {
                        MessageBox.Show("已存在工位!");
                        return;
                    }
                    //工位信息
                    Mod_TB_STA modSta = bllsta.GetModel(model.C_STA_ID);
                    model.C_PRO_ID   = modSta.C_PRO_ID;
                    model.C_STA_CODE = modSta.C_STA_CODE;
                    model.C_STA_DESC = modSta.C_STA_DESC;
                    model.N_CAPACITY = Convert.ToDecimal(this.txt_cn.Text);
                    modSta.N_STATUS  = this.rbtn_isty_gx.SelectedIndex == 0 ? 1 : 0;
                    model.C_EMP_ID   = RV.UI.UserInfo.userID;
                    res = bll.Add(model);

                    Common.UserLog.AddLog(strMenuName, this.Name, this.Text, "添加工位日产能");//添加操作日志
                }
                else
                {
                    if (DialogResult.No == MessageBox.Show("是否确认编辑选中的记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1))
                    {
                        return;
                    }
                    Mod_TPB_GL_CAPACITY model = bll.GetModel(lbl_id.Text);
                    model.N_CAPACITY = Convert.ToDecimal(this.txt_cn.Text);
                    model.N_STATUS   = this.rbtn_isty_gx.SelectedIndex == 0 ? 1 : 0;
                    model.C_EMP_ID   = RV.UI.UserInfo.userID;
                    model.D_MOD_DT   = RV.UI.ServerTime.timeNow();
                    res = bll.Update(model);
                }
                if (res)
                {
                    MessageBox.Show("操作成功!");
                    Query();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
        /// <summary>
        /// 发送炉次计划给NC
        /// </summary>
        /// <param name="xmlFileName">xml完整路径</param>
        /// <param name="urlname">xml名称</param>
        /// <param name="urlname">计划表主键</param>
        /// <param name="c_stove">炉号</param>
        /// <returns></returns>
        public bool SendXml_SLAB_A2(string xmlFileName, string tsp_plan_sms_id, string stove)
        {
            try
            {
                string urlname = "A2LC" + stove + ".XML";//XML名称

                string url = xmlFileName + "\\NCXML";
                if (!Directory.Exists(url))
                {
                    Directory.CreateDirectory(url);
                }
                //DataTable dt = dal_slab_mes.GetList("", "", stove, "", "").Tables[0];
                Mod_TSP_PLAN_SMS  mod_plan_sms   = dal_plan_sms.GetModel(tsp_plan_sms_id);           //连铸生产计划表
                Mod_TPP_CAST_PLAN mod_cast_plan  = dal_cast_plan.GetModel_PLAN_ID(tsp_plan_sms_id);
                Mod_TB_MATRL_MAIN mod_mater_main = dal_mater_main.GetModel(mod_plan_sms.C_MATRL_NO); //物料主表
                Mod_TS_USER       mod_ts_user    = dal_user.GetModel(mod_plan_sms.C_EMP_ID);         //用户主表
                Mod_TMO_ORDER     mod_Order      = dal_tmo_order.GetModel(mod_plan_sms.C_ORDER_NO);
                Mod_TB_STA        modSta         = dalSta.GetModel(mod_plan_sms.C_CCM_ID);
                if (mod_plan_sms == null)
                {
                    return(false);
                }
                if (mod_cast_plan == null)
                {
                    return(false);
                }
                if (mod_mater_main == null)
                {
                    return(false);
                }
                if (mod_ts_user == null)
                {
                    return(false);
                }
                if (mod_Order == null)
                {
                    return(false);
                }
                if (modSta == null)
                {
                    return(false);
                }


                XmlDocument xmlDoc = new XmlDocument();
                //创建类型声明节点
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "no");
                xmlDoc.AppendChild(node);

                //创建根节点
                XmlElement root = xmlDoc.CreateElement("ufinterface");
                #region//给节点属性赋值
                root.SetAttribute("billtype", "A2");
                root.SetAttribute("filename", "");
                root.SetAttribute("isexchange", "Y");
                root.SetAttribute("operation", "req");
                root.SetAttribute("proc", "add");
                root.SetAttribute("receiver", "101");
                root.SetAttribute("replace", "Y");
                root.SetAttribute("roottag", "bill");
                root.SetAttribute("sender", "1107");
                #endregion
                xmlDoc.AppendChild(root);

                //创建子根节点
                XmlElement bill = xmlDoc.CreateElement("bill");
                #region//节点属性
                bill.SetAttribute("id", mod_cast_plan.C_HEAT_ID);
                #endregion
                root.AppendChild(bill);

                XmlNode head = xmlDoc.CreateNode(XmlNodeType.Element, "bill_head", null);

                #region                                                                                                                          //表头_order_head
                CreateNode(xmlDoc, head, "scddh", "");                                                                                           //生产订单号 (空)
                CreateNode(xmlDoc, head, "pk_poid", "");                                                                                         //计划订单主键 (空)
                CreateNode(xmlDoc, head, "jhddh", "");                                                                                           //计划订单号 (空)
                CreateNode(xmlDoc, head, "wlbmid", mod_mater_main.C_PK_INVBASDOC);                                                               //物料编码ID (C_PK_INVBASDOC)
                CreateNode(xmlDoc, head, "pk_produce", "");                                                                                      //物料PK
                CreateNode(xmlDoc, head, "invcode", mod_mater_main.C_ID);                                                                        //物料编码
                CreateNode(xmlDoc, head, "invname", "");
                CreateNode(xmlDoc, head, "pch", stove);                                                                                          //批次号
                CreateNode(xmlDoc, head, "scbmid", "1001NC1000000000037T");                                                                      //生产部门ID
                CreateNode(xmlDoc, head, "gzzxid", modSta.C_ERP_PK);                                                                             //工作中心ID-连铸机号
                CreateNode(xmlDoc, head, "gzzxbm", "");                                                                                          //工作中心编码ID
                CreateNode(xmlDoc, head, "ksid", "");                                                                                            //客商ID
                CreateNode(xmlDoc, head, "memo", "");                                                                                            //备注
                CreateNode(xmlDoc, head, "sfjj", "");                                                                                            //是否加急
                CreateNode(xmlDoc, head, "yxj", "");                                                                                             //有效机时
                CreateNode(xmlDoc, head, "bcid", "1001NC1000000000103W");                                                                        //班次ID
                CreateNode(xmlDoc, head, "bzid", "1001NC100000002E7W1K");                                                                        //班组
                CreateNode(xmlDoc, head, "jhkgrq", Convert.ToDateTime(mod_plan_sms.D_P_START_TIME.ToString()).ToString("yyyy-MM-dd"));           //计划开工日期
                CreateNode(xmlDoc, head, "jhwgrq", Convert.ToDateTime(mod_plan_sms.D_P_END_TIME.ToString()).ToString("yyyy-MM-dd"));             //计划完工日期
                CreateNode(xmlDoc, head, "jhkssj", Convert.ToDateTime(mod_plan_sms.D_P_START_TIME.ToString()).ToString("HH:mm:ss"));             //计划开始时间
                CreateNode(xmlDoc, head, "jhjssj", Convert.ToDateTime(mod_plan_sms.D_P_END_TIME.ToString()).ToString("HH:mm:ss"));               //计划结束时间
                CreateNode(xmlDoc, head, "sjkgrq", Convert.ToDateTime(mod_cast_plan.D_AIM_CASTINGSTART_TIME.ToString()).ToString("yyyy-MM-dd")); //实际开工日期
                CreateNode(xmlDoc, head, "sjwgrq", Convert.ToDateTime(mod_cast_plan.D_AIM_CASTINGEND_TIME.ToString()).ToString("yyyy-MM-dd"));   //实际完工日期
                CreateNode(xmlDoc, head, "sjkssj", Convert.ToDateTime(mod_cast_plan.D_AIM_CASTINGSTART_TIME.ToString()).ToString("HH:mm:ss"));   //实际开始时间
                CreateNode(xmlDoc, head, "sjjssj", Convert.ToDateTime(mod_cast_plan.D_AIM_CASTINGEND_TIME.ToString()).ToString("HH:mm:ss"));     //实际结束时间
                CreateNode(xmlDoc, head, "jhwgsl", mod_plan_sms.N_SLAB_WGT.ToString());                                                          //计划完工数量
                CreateNode(xmlDoc, head, "fjhsl", mod_plan_sms.C_QUA);                                                                           //辅计量数量
                CreateNode(xmlDoc, head, "jldwid", mod_mater_main.C_PK_MEASDOC);                                                                 //计量单位ID
                CreateNode(xmlDoc, head, "fjlid", mod_mater_main.C_FJLDW);                                                                       //辅计量ID
                CreateNode(xmlDoc, head, "sjwgsl", mod_plan_sms.N_SLAB_WGT.ToString());                                                          //实际完工数量
                CreateNode(xmlDoc, head, "fwcsl", "");
                CreateNode(xmlDoc, head, "zdy1", "");                                                                                            //自定义项1
                CreateNode(xmlDoc, head, "zdy2", "");                                                                                            //自定义项2
                CreateNode(xmlDoc, head, "zdy3", "");                                                                                            //自定义项3
                CreateNode(xmlDoc, head, "zdy4", "");                                                                                            //自定义项4
                CreateNode(xmlDoc, head, "zdy5", "");                                                                                            //自定义项5
                CreateNode(xmlDoc, head, "freeitemvalue1", mod_Order.C_FREE1);
                CreateNode(xmlDoc, head, "freeitemvalue2", mod_Order.C_FREE2);
                CreateNode(xmlDoc, head, "freeitemvalue3", "");
                CreateNode(xmlDoc, head, "freeitemvalue4", "");
                CreateNode(xmlDoc, head, "freeitemvalue5", mod_plan_sms.C_ID); //PCI计划订单主键(tsp_plan_sms主键)
                CreateNode(xmlDoc, head, "pk_corp", "1001");                   //公司ID
                CreateNode(xmlDoc, head, "gcbm", "1001NC10000000000669");      //工厂
                CreateNode(xmlDoc, head, "zdrid", mod_ts_user.C_ACCOUNT);      //制单人
                CreateNode(xmlDoc, head, "pk_moid", "");                       //生产定单ID

                #endregion

                bill.AppendChild(head);
                XmlElement body = xmlDoc.CreateElement("bill_body");
                bill.AppendChild(body);

                XmlNode item = xmlDoc.CreateNode(XmlNodeType.Element, "item", null);


                body.AppendChild(item);


                xmlDoc.Save(url + "\\" + urlname);
                List <string> parem = dalSendNC.SendXML(url + "\\" + urlname);

                if (parem[0] == "1")
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }
        }
        /// <summary>
        /// 下发轧钢计划
        /// </summary>
        /// <param name="strPlanID">计划主键</param>
        /// <param name="i_Wgt">重量</param>
        /// <param name="strTime">开始时间</param>
        /// <param name="strRemark">备注</param>
        /// <param name="strLineID">轧线ID</param>
        /// <param name="strHGG">换规格原因</param>
        /// <returns></returns>
        public string DownPlan(string strPlanID, decimal i_Wgt, string strTime, string strRemark, string strLineID, string strHGG)
        {
            try
            {
                string result = "1";

                TransactionHelper.BeginTransaction();

                Dal_TB_STA dalTbSta = new Dal_TB_STA();

                DateTime dtStart;
                DateTime dtEnd;

                Mod_TB_STA modSta = dalTbSta.GetModel(strLineID);

                Mod_TRP_PLAN_ROLL modelPlan = dalTrpPlanRoll.GetModel(strPlanID);
                if (modelPlan == null)
                {
                    TransactionHelper.RollBack();
                    return("下发失败,没有找到计划信息!");
                }
                else
                {
                    modelPlan.N_ISSUE_WGT = modelPlan.N_ISSUE_WGT + i_Wgt;

                    if (modelPlan.N_ISSUE_WGT == modelPlan.N_WGT)
                    {
                        modelPlan.N_STATUS = 1;
                    }

                    Mod_TRP_PLAN_ROLL_ITEM_INFO modUp = dal.GetModel_Up(strLineID);
                    if (modUp == null)
                    {
                        if (string.IsNullOrEmpty(strTime))
                        {
                            TransactionHelper.RollBack();
                            return("系统没有已排的计划,请设置计划初始开始时间!");
                        }
                        else
                        {
                            dtStart = Convert.ToDateTime(strTime);
                        }
                    }
                    else
                    {
                        //换规格
                        if (modelPlan.C_SPEC != modUp.C_SPEC)
                        {
                            if (string.IsNullOrEmpty(strHGG))
                            {
                                TransactionHelper.RollBack();
                                return("下发的计划和上一个计划规格不同,请填写换规格原因!");
                            }
                        }

                        int hggTime = dalChangeTime.Get_Time2(strLineID, modUp.C_SPEC, modelPlan.C_SPEC);//换规格时间

                        dtStart = Convert.ToDateTime(modUp.D_P_END_TIME).AddMinutes(hggTime);

                        if (!string.IsNullOrEmpty(strTime))
                        {
                            if (dtStart < Convert.ToDateTime(strTime))
                            {
                                dtStart = Convert.ToDateTime(strTime);
                            }
                        }
                    }

                    double cn = Convert.ToDouble(i_Wgt / Convert.ToDecimal(modelPlan.N_MACH_WGT.ToString()));
                    dtEnd = dtStart.AddHours(cn);//结束时间

                    #region TRP_PLAN_ROLL_ITEM赋值

                    Mod_TRP_PLAN_ROLL_ITEM_INFO modItemInfo = new Mod_TRP_PLAN_ROLL_ITEM_INFO();
                    modItemInfo.C_PLAN_ROLL_ID       = modelPlan.C_ID; //计划主表主键
                    modItemInfo.N_STATUS             = 1;              //已下发
                    modItemInfo.C_INITIALIZE_ITEM_ID = modelPlan.C_INITIALIZE_ITEM_ID;
                    modItemInfo.C_ORDER_NO           = modelPlan.C_ORDER_NO;
                    modItemInfo.N_WGT              = i_Wgt;//下发量
                    modItemInfo.C_MAT_CODE         = modelPlan.C_MAT_CODE;
                    modItemInfo.C_MAT_NAME         = modelPlan.C_MAT_NAME;
                    modItemInfo.C_TECH_PROT        = modelPlan.C_TECH_PROT;
                    modItemInfo.C_SPEC             = modelPlan.C_SPEC;
                    modItemInfo.C_STL_GRD          = modelPlan.C_STL_GRD;
                    modItemInfo.C_STD_CODE         = modelPlan.C_STD_CODE;
                    modItemInfo.N_USER_LEV         = modelPlan.N_USER_LEV;
                    modItemInfo.N_STL_GRD_LEV      = modelPlan.N_STL_GRD_LEV;
                    modItemInfo.N_ORDER_LEV        = modelPlan.N_ORDER_LEV;
                    modItemInfo.C_QUALIRY_LEV      = modelPlan.C_QUALIRY_LEV;
                    modItemInfo.D_NEED_DT          = modelPlan.D_NEED_DT;
                    modItemInfo.D_DELIVERY_DT      = modelPlan.D_DELIVERY_DT;
                    modItemInfo.D_DT               = modelPlan.D_DT;
                    modItemInfo.C_LINE_DESC        = modSta.C_STA_DESC;
                    modItemInfo.C_LINE_CODE        = modSta.C_STA_CODE;
                    modItemInfo.D_P_START_TIME     = dtStart; //计划开始时间
                    modItemInfo.D_P_END_TIME       = dtEnd;   //计划结束时间
                    modItemInfo.N_PROD_TIME        = modelPlan.N_PROD_TIME;
                    modItemInfo.N_SORT             = modelPlan.N_SORT;
                    modItemInfo.N_ROLL_PROD_WGT    = i_Wgt;//下发量
                    modItemInfo.C_ROLL_PROD_EMP_ID = modelPlan.C_ROLL_PROD_EMP_ID;
                    modItemInfo.C_STL_ROL_DT       = modelPlan.C_STL_ROL_DT;
                    modItemInfo.N_PROD_WGT         = modelPlan.N_PROD_WGT;
                    modItemInfo.N_WARE_WGT         = modelPlan.N_WARE_WGT;
                    modItemInfo.N_WARE_OUT_WGT     = modelPlan.N_WARE_OUT_WGT;
                    modItemInfo.N_FLAG             = modelPlan.N_FLAG;
                    modItemInfo.N_ISSUE_WGT        = i_Wgt;//下发量
                    modItemInfo.C_CUST_NO          = modelPlan.C_CUST_NO;
                    modItemInfo.C_CUST_NAME        = modelPlan.C_CUST_NAME;
                    modItemInfo.C_SALE_CHANNEL     = modelPlan.C_SALE_CHANNEL;
                    modItemInfo.C_PACK             = modelPlan.C_PACK;
                    modItemInfo.C_DESIGN_NO        = modelPlan.C_DESIGN_NO;
                    modItemInfo.N_GROUP_WGT        = modelPlan.N_GROUP_WGT;
                    modItemInfo.C_STA_ID           = modSta.C_ID;
                    modItemInfo.D_START_TIME       = modelPlan.D_START_TIME;
                    modItemInfo.D_END_TIME         = modelPlan.D_END_TIME;
                    modItemInfo.C_EMP_ID           = modelPlan.C_EMP_ID;
                    modItemInfo.D_MOD_DT           = RV.UI.ServerTime.timeNow();
                    modItemInfo.N_ROLL_WGT         = modelPlan.N_ROLL_WGT;
                    modItemInfo.N_MACH_WGT         = modelPlan.N_MACH_WGT;
                    modItemInfo.C_CAST_NO          = modelPlan.C_CAST_NO;
                    modItemInfo.C_INITIALIZE_ID    = modelPlan.C_INITIALIZE_ID;
                    modItemInfo.C_FREE_TERM        = modelPlan.C_FREE_TERM;
                    modItemInfo.C_FREE_TERM2       = modelPlan.C_FREE_TERM2;
                    modItemInfo.C_AREA             = modelPlan.C_AREA;
                    modItemInfo.C_PCLX             = modelPlan.C_PCLX;
                    modItemInfo.C_SFHL             = modelPlan.C_SFHL;
                    modItemInfo.D_HL_START_TIME    = modelPlan.D_HL_START_TIME;
                    modItemInfo.D_HL_END_TIME      = modelPlan.D_HL_END_TIME;
                    modItemInfo.C_SFHL_D           = modelPlan.C_SFHL_D;
                    modItemInfo.D_DHL_START_TIME   = modelPlan.D_DHL_START_TIME;
                    modItemInfo.D_DHL_END_TIME     = modelPlan.D_DHL_END_TIME;
                    modItemInfo.C_SFKP             = modelPlan.C_SFKP;
                    modItemInfo.D_KP_START_TIME    = modelPlan.D_KP_START_TIME;
                    modItemInfo.D_KP_END_TIME      = modelPlan.D_KP_END_TIME;
                    modItemInfo.C_SFXM             = modelPlan.C_SFXM;
                    modItemInfo.D_XM_START_TIME    = modelPlan.D_XM_START_TIME;
                    modItemInfo.D_XM_END_TIME      = modelPlan.D_XM_END_TIME;
                    modItemInfo.N_UPLOADSTATUS     = modelPlan.N_UPLOADSTATUS;
                    modItemInfo.C_MATRL_CODE_SLAB  = modelPlan.C_MATRL_CODE_KP.Trim() == "" ? modelPlan.C_MATRL_CODE_SLAB : modelPlan.C_MATRL_CODE_KP; //
                    modItemInfo.C_MATRL_NAME_SLAB  = modelPlan.C_MATRL_CODE_KP.Trim() == "" ? modelPlan.C_MATRL_NAME_SLAB : modelPlan.C_MATRL_NAME_KP; //
                    modItemInfo.C_SLAB_SIZE        = modelPlan.C_MATRL_CODE_KP.Trim() == "" ? modelPlan.C_SLAB_SIZE : modelPlan.C_KP_SIZE;             //
                    modItemInfo.N_SLAB_LENGTH      = modelPlan.C_MATRL_CODE_KP.Trim() == "" ? modelPlan.N_SLAB_LENGTH : modelPlan.N_KP_LENGTH;         //
                    modItemInfo.N_SLAB_PW          = modelPlan.C_MATRL_CODE_KP.Trim() == "" ? modelPlan.N_SLAB_PW : modelPlan.N_KP_PW;                 //
                    modItemInfo.D_CAN_ROLL_TIME    = modelPlan.D_CAN_ROLL_TIME;
                    modItemInfo.C_ROUTE            = modelPlan.C_ROUTE;
                    modItemInfo.N_DIAMETER         = modelPlan.N_DIAMETER;
                    modItemInfo.C_XM_YQ            = modelPlan.C_XM_YQ;
                    modItemInfo.N_JRL_WD           = modelPlan.N_JRL_WD;
                    modItemInfo.N_JRL_SJ           = modelPlan.N_JRL_SJ;
                    modItemInfo.C_STL_GRD_SLAB     = modelPlan.C_STL_GRD_SLAB;
                    modItemInfo.C_STD_CODE_SLAB    = modelPlan.C_STD_CODE_SLAB;
                    modItemInfo.C_REMARK           = strRemark;//换产线原因
                    modItemInfo.C_REMARK1          = "0";
                    modItemInfo.C_REMARK2          = modelPlan.C_REMARK2;
                    modItemInfo.C_REMARK3          = strHGG;//换规格原因
                    modItemInfo.C_REMARK4          = modelPlan.C_REMARK4;
                    modItemInfo.C_REMARK5          = modelPlan.C_REMARK5;


                    #endregion

                    if (!dal.Add_Trans(modItemInfo))
                    {
                        TransactionHelper.RollBack();
                        return("下发失败!");
                    }

                    //modelPlan.D_P_START_TIME = dtStart;
                    //modelPlan.D_P_END_TIME = dtEnd;

                    if (!dalTrpPlanRoll.Update_Trans(modelPlan))
                    {
                        TransactionHelper.RollBack();
                        return("下发失败!");
                    }
                }

                TransactionHelper.Commit();
                return(result);
            }
            catch
            {
                TransactionHelper.RollBack();
                return("下发失败!");
            }
        }
        /// <summary>
        /// 下发轧钢计划(单条)
        /// </summary>
        /// <param name="strPlanID">计划实例</param>
        /// <param name="i_Wgt">重量</param>
        /// <returns></returns>
        public string DownPlans(Mod_TRP_PLAN_ROLL_ITEM_INFO itemInfo)
        {
            try
            {
                string result = "1";

                TransactionHelper.BeginTransaction();

                Dal_TB_STA dalTbSta = new Dal_TB_STA();

                DateTime dtStart;
                DateTime dtEnd;

                Mod_TB_STA modSta = dalTbSta.GetModel(itemInfo.C_STA_ID);


                Mod_TRP_PLAN_ROLL_ITEM modUp = dalTrpPlanRollItem.GetModel_Up(itemInfo.C_STA_ID);
                if (modUp == null)
                {
                    if (string.IsNullOrEmpty(modUp.D_P_START_TIME.ToString()))
                    {
                        TransactionHelper.RollBack();
                        return("系统没有已排的计划,请设置计划初始开始时间!");
                    }
                    else
                    {
                        dtStart = Convert.ToDateTime(modUp.D_P_START_TIME.ToString());
                    }
                }
                else
                {
                    int hggTime = dalChangeTime.Get_Time2(itemInfo.C_STA_ID, modUp.C_SPEC, itemInfo.C_SPEC);//换规格时间

                    dtStart = Convert.ToDateTime(modUp.D_P_END_TIME).AddMinutes(hggTime);
                }

                double cn = Convert.ToDouble(itemInfo.N_ISSUE_WGT / Convert.ToDecimal(itemInfo.N_MACH_WGT.ToString()));
                dtEnd = dtStart.AddHours(cn);//结束时间

                #region TRP_PLAN_ROLL_ITEM赋值

                Mod_TRP_PLAN_ROLL_ITEM modItem = new Mod_TRP_PLAN_ROLL_ITEM();
                modItem.C_ID                 = itemInfo.C_ID;
                modItem.C_PLAN_ROLL_ID       = itemInfo.C_PLAN_ROLL_ID; //计划主表主键
                modItem.N_STATUS             = 1;                       //已下发
                modItem.C_INITIALIZE_ITEM_ID = itemInfo.C_INITIALIZE_ITEM_ID;
                modItem.C_ORDER_NO           = itemInfo.C_ORDER_NO;
                modItem.N_WGT                = itemInfo.N_WGT;//下发量
                modItem.C_MAT_CODE           = itemInfo.C_MAT_CODE;
                modItem.C_MAT_NAME           = itemInfo.C_MAT_NAME;
                modItem.C_TECH_PROT          = itemInfo.C_TECH_PROT;
                modItem.C_SPEC               = itemInfo.C_SPEC;
                modItem.C_STL_GRD            = itemInfo.C_STL_GRD;
                modItem.C_STD_CODE           = itemInfo.C_STD_CODE;
                modItem.N_USER_LEV           = itemInfo.N_USER_LEV;
                modItem.N_STL_GRD_LEV        = itemInfo.N_STL_GRD_LEV;
                modItem.N_ORDER_LEV          = itemInfo.N_ORDER_LEV;
                modItem.C_QUALIRY_LEV        = itemInfo.C_QUALIRY_LEV;
                modItem.D_NEED_DT            = itemInfo.D_NEED_DT;
                modItem.D_DELIVERY_DT        = itemInfo.D_DELIVERY_DT;
                modItem.D_DT                 = itemInfo.D_DT;
                modItem.C_LINE_DESC          = modSta.C_STA_DESC;
                modItem.C_LINE_CODE          = modSta.C_STA_CODE;
                modItem.D_P_START_TIME       = dtStart; //计划开始时间
                modItem.D_P_END_TIME         = dtEnd;   //计划结束时间
                modItem.N_PROD_TIME          = itemInfo.N_PROD_TIME;
                modItem.N_SORT               = itemInfo.N_SORT;
                modItem.N_ROLL_PROD_WGT      = itemInfo.N_ROLL_PROD_WGT;//下发量
                modItem.C_ROLL_PROD_EMP_ID   = itemInfo.C_ROLL_PROD_EMP_ID;
                modItem.C_STL_ROL_DT         = itemInfo.C_STL_ROL_DT;
                modItem.N_PROD_WGT           = itemInfo.N_PROD_WGT;
                modItem.N_WARE_WGT           = itemInfo.N_WARE_WGT;
                modItem.N_WARE_OUT_WGT       = itemInfo.N_WARE_OUT_WGT;
                modItem.N_FLAG               = itemInfo.N_FLAG;
                modItem.N_ISSUE_WGT          = itemInfo.N_ISSUE_WGT;//下发量
                modItem.C_CUST_NO            = itemInfo.C_CUST_NO;
                modItem.C_CUST_NAME          = itemInfo.C_CUST_NAME;
                modItem.C_SALE_CHANNEL       = itemInfo.C_SALE_CHANNEL;
                modItem.C_PACK               = itemInfo.C_PACK;
                modItem.C_DESIGN_NO          = itemInfo.C_DESIGN_NO;
                modItem.N_GROUP_WGT          = itemInfo.N_GROUP_WGT;
                modItem.C_STA_ID             = modSta.C_ID;
                modItem.D_START_TIME         = itemInfo.D_START_TIME;
                modItem.D_END_TIME           = itemInfo.D_END_TIME;
                modItem.C_EMP_ID             = itemInfo.C_EMP_ID;
                modItem.D_MOD_DT             = RV.UI.ServerTime.timeNow();
                modItem.N_ROLL_WGT           = itemInfo.N_ROLL_WGT;
                modItem.N_MACH_WGT           = itemInfo.N_MACH_WGT;
                modItem.C_CAST_NO            = itemInfo.C_CAST_NO;
                modItem.C_INITIALIZE_ID      = itemInfo.C_INITIALIZE_ID;
                modItem.C_FREE_TERM          = itemInfo.C_FREE_TERM;
                modItem.C_FREE_TERM2         = itemInfo.C_FREE_TERM2;
                modItem.C_AREA               = itemInfo.C_AREA;
                modItem.C_PCLX               = itemInfo.C_PCLX;
                modItem.C_SFHL               = itemInfo.C_SFHL;
                modItem.D_HL_START_TIME      = itemInfo.D_HL_START_TIME;
                modItem.D_HL_END_TIME        = itemInfo.D_HL_END_TIME;
                modItem.C_SFHL_D             = itemInfo.C_SFHL_D;
                modItem.D_DHL_START_TIME     = itemInfo.D_DHL_START_TIME;
                modItem.D_DHL_END_TIME       = itemInfo.D_DHL_END_TIME;
                modItem.C_SFKP               = itemInfo.C_SFKP;
                modItem.D_KP_START_TIME      = itemInfo.D_KP_START_TIME;
                modItem.D_KP_END_TIME        = itemInfo.D_KP_END_TIME;
                modItem.C_SFXM               = itemInfo.C_SFXM;
                modItem.D_XM_START_TIME      = itemInfo.D_XM_START_TIME;
                modItem.D_XM_END_TIME        = itemInfo.D_XM_END_TIME;
                modItem.N_UPLOADSTATUS       = itemInfo.N_UPLOADSTATUS;
                modItem.C_MATRL_CODE_SLAB    = itemInfo.C_MATRL_CODE_SLAB;
                modItem.C_MATRL_NAME_SLAB    = itemInfo.C_MATRL_NAME_SLAB;
                modItem.C_SLAB_SIZE          = itemInfo.C_SLAB_SIZE;
                modItem.N_SLAB_LENGTH        = itemInfo.N_SLAB_LENGTH;
                modItem.N_SLAB_PW            = itemInfo.N_SLAB_PW;
                modItem.D_CAN_ROLL_TIME      = itemInfo.D_CAN_ROLL_TIME;
                modItem.C_ROUTE              = itemInfo.C_ROUTE;
                modItem.N_DIAMETER           = itemInfo.N_DIAMETER;
                modItem.C_XM_YQ              = itemInfo.C_XM_YQ;
                modItem.N_JRL_WD             = itemInfo.N_JRL_WD;
                modItem.N_JRL_SJ             = itemInfo.N_JRL_SJ;
                modItem.C_STL_GRD_SLAB       = itemInfo.C_STL_GRD_SLAB;
                modItem.C_STD_CODE_SLAB      = itemInfo.C_STD_CODE_SLAB;
                modItem.C_REMARK             = itemInfo.C_REMARK;//换产线原因
                modItem.C_REMARK1            = itemInfo.C_REMARK1;
                modItem.C_REMARK2            = itemInfo.C_REMARK2;
                modItem.C_REMARK3            = itemInfo.C_REMARK3;//换规格原因
                modItem.C_REMARK4            = itemInfo.C_REMARK4;
                modItem.C_REMARK5            = itemInfo.C_REMARK5;


                #endregion

                if (!dalTrpPlanRollItem.Add_Tran(modItem))
                {
                    TransactionHelper.RollBack();
                    return("下发失败!");
                }

                itemInfo.N_STATUS = 2;
                if (!dal.Update(itemInfo))
                {
                    TransactionHelper.RollBack();
                    return("下发失败!");
                }


                TransactionHelper.Commit();
                return(result);
            }
            catch
            {
                TransactionHelper.RollBack();
                return("下发失败!");
            }
        }
        /// <summary>
        /// 下发轧钢计划(合并)
        /// </summary>
        /// <param name="strPlanID">计划实例</param>
        /// <param name="i_Wgt">重量</param>
        /// <returns></returns>
        public string DownPlans(Mod_TRP_PLAN_ROLL_ITEM_INFO itemInfo, decimal i_Wgt, List <string> ids, string area)
        {
            try
            {
                string result = "1";

                TransactionHelper.BeginTransaction();

                Dal_TB_STA dalTbSta = new Dal_TB_STA();

                DateTime dtStart;
                DateTime dtEnd;

                Mod_TB_STA modSta = dalTbSta.GetModel(itemInfo.C_STA_ID);


                Mod_TRP_PLAN_ROLL_ITEM modUp = dalTrpPlanRollItem.GetModel_Up(itemInfo.C_STA_ID);
                if (modUp == null)
                {
                    if (string.IsNullOrEmpty(modUp.D_P_START_TIME.ToString()))
                    {
                        TransactionHelper.RollBack();
                        return("系统没有已排的计划,请设置计划初始开始时间!");
                    }
                    else
                    {
                        dtStart = Convert.ToDateTime(modUp.D_P_START_TIME.ToString());
                    }
                }
                else
                {
                    int hggTime = dalChangeTime.Get_Time2(itemInfo.C_STA_ID, modUp.C_SPEC, itemInfo.C_SPEC);//换规格时间

                    dtStart = Convert.ToDateTime(modUp.D_P_END_TIME).AddMinutes(hggTime);
                }

                double cn = Convert.ToDouble(i_Wgt / Convert.ToDecimal(itemInfo.N_MACH_WGT.ToString()));
                dtEnd = dtStart.AddHours(cn);//结束时间

                #region TRP_PLAN_ROLL_ITEM赋值

                Mod_TRP_PLAN_ROLL_ITEM modItem = new Mod_TRP_PLAN_ROLL_ITEM();
                modItem.C_ID = DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(0, 1000);
                //modItem.C_PLAN_ROLL_ID = itemInfo.C_ID;//计划主表主键
                modItem.N_STATUS             = 1;//已下发
                modItem.C_INITIALIZE_ITEM_ID = itemInfo.C_INITIALIZE_ITEM_ID;
                modItem.C_ORDER_NO           = modItem.C_ID;
                modItem.N_WGT              = i_Wgt;//下发量
                modItem.C_MAT_CODE         = itemInfo.C_MAT_CODE;
                modItem.C_MAT_NAME         = itemInfo.C_MAT_NAME;
                modItem.C_TECH_PROT        = itemInfo.C_TECH_PROT;
                modItem.C_SPEC             = itemInfo.C_SPEC;
                modItem.C_STL_GRD          = itemInfo.C_STL_GRD;
                modItem.C_STD_CODE         = itemInfo.C_STD_CODE;
                modItem.N_USER_LEV         = itemInfo.N_USER_LEV;
                modItem.N_STL_GRD_LEV      = itemInfo.N_STL_GRD_LEV;
                modItem.N_ORDER_LEV        = itemInfo.N_ORDER_LEV;
                modItem.C_QUALIRY_LEV      = itemInfo.C_QUALIRY_LEV;
                modItem.D_NEED_DT          = itemInfo.D_NEED_DT;
                modItem.D_DELIVERY_DT      = itemInfo.D_DELIVERY_DT;
                modItem.D_DT               = itemInfo.D_DT;
                modItem.C_LINE_DESC        = modSta.C_STA_DESC;
                modItem.C_LINE_CODE        = modSta.C_STA_CODE;
                modItem.D_P_START_TIME     = dtStart; //计划开始时间
                modItem.D_P_END_TIME       = dtEnd;   //计划结束时间
                modItem.N_PROD_TIME        = itemInfo.N_PROD_TIME;
                modItem.N_SORT             = itemInfo.N_SORT;
                modItem.N_ROLL_PROD_WGT    = i_Wgt;//下发量
                modItem.C_ROLL_PROD_EMP_ID = itemInfo.C_ROLL_PROD_EMP_ID;
                modItem.C_STL_ROL_DT       = itemInfo.C_STL_ROL_DT;
                modItem.N_PROD_WGT         = itemInfo.N_PROD_WGT;
                modItem.N_WARE_WGT         = itemInfo.N_WARE_WGT;
                modItem.N_WARE_OUT_WGT     = itemInfo.N_WARE_OUT_WGT;
                modItem.N_FLAG             = itemInfo.N_FLAG;
                modItem.N_ISSUE_WGT        = i_Wgt;//下发量
                //modItem.C_CUST_NO = itemInfo.C_CUST_NO;
                //modItem.C_CUST_NAME = itemInfo.C_CUST_NAME;
                modItem.C_SALE_CHANNEL  = itemInfo.C_SALE_CHANNEL;
                modItem.C_PACK          = itemInfo.C_PACK;
                modItem.C_DESIGN_NO     = itemInfo.C_DESIGN_NO;
                modItem.N_GROUP_WGT     = itemInfo.N_GROUP_WGT;
                modItem.C_STA_ID        = modSta.C_ID;
                modItem.D_START_TIME    = itemInfo.D_START_TIME;
                modItem.D_END_TIME      = itemInfo.D_END_TIME;
                modItem.C_EMP_ID        = itemInfo.C_EMP_ID;
                modItem.D_MOD_DT        = RV.UI.ServerTime.timeNow();
                modItem.N_ROLL_WGT      = itemInfo.N_ROLL_WGT;
                modItem.N_MACH_WGT      = itemInfo.N_MACH_WGT;
                modItem.C_CAST_NO       = itemInfo.C_CAST_NO;
                modItem.C_INITIALIZE_ID = itemInfo.C_INITIALIZE_ID;
                modItem.C_FREE_TERM     = itemInfo.C_FREE_TERM;
                modItem.C_FREE_TERM2    = itemInfo.C_FREE_TERM2;
                if (!string.IsNullOrWhiteSpace(area))
                {
                    modItem.C_AREA = area;
                }
                modItem.C_PCLX            = itemInfo.C_PCLX;
                modItem.C_SFHL            = itemInfo.C_SFHL;
                modItem.D_HL_START_TIME   = itemInfo.D_HL_START_TIME;
                modItem.D_HL_END_TIME     = itemInfo.D_HL_END_TIME;
                modItem.C_SFHL_D          = itemInfo.C_SFHL_D;
                modItem.D_DHL_START_TIME  = itemInfo.D_DHL_START_TIME;
                modItem.D_DHL_END_TIME    = itemInfo.D_DHL_END_TIME;
                modItem.C_SFKP            = itemInfo.C_SFKP;
                modItem.D_KP_START_TIME   = itemInfo.D_KP_START_TIME;
                modItem.D_KP_END_TIME     = itemInfo.D_KP_END_TIME;
                modItem.C_SFXM            = itemInfo.C_SFXM;
                modItem.D_XM_START_TIME   = itemInfo.D_XM_START_TIME;
                modItem.D_XM_END_TIME     = itemInfo.D_XM_END_TIME;
                modItem.N_UPLOADSTATUS    = itemInfo.N_UPLOADSTATUS;
                modItem.C_MATRL_CODE_SLAB = itemInfo.C_MATRL_CODE_SLAB;
                modItem.C_MATRL_NAME_SLAB = itemInfo.C_MATRL_NAME_SLAB;
                modItem.C_SLAB_SIZE       = itemInfo.C_SLAB_SIZE;
                modItem.N_SLAB_LENGTH     = itemInfo.N_SLAB_LENGTH;
                modItem.N_SLAB_PW         = itemInfo.N_SLAB_PW;
                modItem.D_CAN_ROLL_TIME   = itemInfo.D_CAN_ROLL_TIME;
                modItem.C_ROUTE           = itemInfo.C_ROUTE;
                modItem.N_DIAMETER        = itemInfo.N_DIAMETER;
                modItem.C_XM_YQ           = itemInfo.C_XM_YQ;
                modItem.N_JRL_WD          = itemInfo.N_JRL_WD;
                modItem.N_JRL_SJ          = itemInfo.N_JRL_SJ;
                modItem.C_STL_GRD_SLAB    = itemInfo.C_STL_GRD_SLAB;
                modItem.C_STD_CODE_SLAB   = itemInfo.C_STD_CODE_SLAB;
                modItem.C_REMARK          = itemInfo.C_REMARK;//换产线原因
                //modItem.C_REMARK1 = itemInfo.C_REMARK1;
                modItem.C_REMARK2  = itemInfo.C_REMARK2;
                modItem.C_REMARK3  = itemInfo.C_REMARK3;//换规格原因
                modItem.C_REMARK4  = itemInfo.C_REMARK4;
                modItem.C_REMARK5  = itemInfo.C_REMARK5;
                modItem.N_IS_MERGE = 1;

                #endregion

                if (!dalTrpPlanRollItem.Add_Tran(modItem))
                {
                    TransactionHelper.RollBack();
                    return("下发失败!");
                }

                if (ids.Count > 1)
                {
                    foreach (var id in ids)
                    {
                        var m = dal.GetModel(id);
                        m.C_ITEM_ID = modItem.C_ID;
                        m.N_STATUS  = 3;
                        dal.Update(m);
                    }
                }
                //if (!dalTrpPlanRoll.Update_Trans(modelPlan))
                //{
                //    TransactionHelper.RollBack();
                //    return "下发失败!";
                //}

                TransactionHelper.Commit();

                if (ids.Count > 1)
                {
                    Dal_TRP_PLAN_ROLL_ITEM_INFO_LOG dalLog = new Dal_TRP_PLAN_ROLL_ITEM_INFO_LOG();
                    foreach (var id in ids)
                    {
                        {
                            var m = dal.GetModel(id);
                            Mod_TRP_PLAN_ROLL_ITEM_INFO_LOG log = new Mod_TRP_PLAN_ROLL_ITEM_INFO_LOG();
                            log.C_ID              = m.C_ID;
                            log.C_PLAN_ROLL_ID    = m.C_PLAN_ROLL_ID;
                            log.C_MAT_CODE        = m.C_MAT_CODE;
                            log.C_MAT_NAME        = m.C_MAT_NAME;
                            log.C_SPEC            = m.C_SPEC;
                            log.C_STL_GRD         = m.C_STL_GRD;
                            log.C_STD_CODE        = m.C_STD_CODE;
                            log.C_MAT_NAME        = m.C_MATRL_CODE_SLAB;
                            log.C_MATRL_NAME_SLAB = m.C_MATRL_NAME_SLAB;
                            log.C_SLAB_SIZE       = m.C_SLAB_SIZE;
                            log.N_SLAB_LENGTH     = m.N_SLAB_LENGTH;
                            log.N_SLAB_PW         = m.N_SLAB_PW;
                            log.C_LINE_DESC       = m.C_LINE_DESC;
                            log.C_LINE_CODE       = m.C_LINE_CODE;
                            log.N_ISSUE_WGT       = m.N_ISSUE_WGT;
                            log.C_ITEM_ID         = m.C_ITEM_ID;
                            dalLog.Add(log);
                        }
                    }
                }

                return(result);
            }
            catch
            {
                TransactionHelper.RollBack();
                return("下发失败!");
            }
        }
        private NcRollA2 GetA2(Mod_TMO_ORDER order, Mod_TB_MATRL_MAIN matrl, Mod_TRC_ROLL_WW_MAIN item, Mod_TB_STA tBSta, Mod_TS_USER user)
        {
            var ncRollA2 = new NcRollA2
            {
                bcid           = item.C_SHIFT,                          // 班次ID
                bzid           = item.C_GROUP,                          // 班组ID
                fjhsl          = (item.N_QUA_REMOVE ?? 0).ToString(),   // 辅计量数量
                fjlid          = matrl.C_FJLDW,                         // 辅计量ID
                freeitemvalue1 = order.C_FREE1,                         // 自由项1
                freeitemvalue2 = order.C_FREE2,                         //自由项2
                freeitemvalue3 = order.C_PACK,                          // 包装要求,
                freeitemvalue5 = item.C_ID,                             //PCI计划主键
                gzzxid         = tBSta.C_ERP_PK,                        //工作中心ID
                invcode        = matrl.C_ID,                            //物料编码
                jhjssj         = item.D_PRODUCE_DATE_E ?? DateTime.Now, // 计划完工时间
                jhkgrq         = item.D_PRODUCE_DATE_B ?? DateTime.Now, //计划开工日期
                jhkssj         = item.D_PRODUCE_DATE_B ?? DateTime.Now, //计划开始时间
                jhwgrq         = item.D_PRODUCE_DATE_E ?? DateTime.Now, //计划完工日期
                jhwgsl         = (item.N_WGT_TOTAL ?? 0).ToString(),    //计划完工数量
                jldwid         = matrl.C_PK_MEASDOC,                    //计量单位ID
                pch            = item.C_BATCH_NO,                       //批次号
                pk_produce     = matrl.C_PK_PRODUCE,                    //物料PK
                scbmid         = tBSta.C_SSBMID,                        //生产部门ID
                sjjssj         = item.D_PRODUCE_DATE_E ?? DateTime.Now, //实际结束时间
                sjkgrq         = item.D_PRODUCE_DATE_E ?? DateTime.Now, //完工单日期
                sjkssj         = item.D_PRODUCE_DATE_B ?? DateTime.Now, //实际开始日期
                sjwgrq         = item.D_PRODUCE_DATE_E ?? DateTime.Now, //实际完工日期
                sjwgsl         = (item.N_WGT_REMOVE ?? 0).ToString(),   //实际完工数量
                wlbmid         = matrl.C_PK_INVBASDOC,                  //存货档案主键
                zdrid          = user.C_ACCOUNT                         // "17384",//item.C_PRODUCE_EMP_ID,//操作人,用户编码工号
            };

            return(ncRollA2);
        }
示例#30
0
 private void btn_save_Click(object sender, EventArgs e)
 {
     try
     {
         WaitingFrom.ShowWait("");
         DataTable dt = bll.GetKPSTA().Tables[0];
         foreach (DataRow item in dt.Rows)
         {
             Mod_TB_STA sta = bll_sta.GetModel(item["C_KP_ID"].ToString());
             List <Mod_TSP_PLAN_SMS> list = lst.Where(x => x.C_KP_ID == item["C_KP_ID"].ToString()).ToList();
             for (int i = 0; i < list.Count; i++)
             {
                 Mod_TSP_PLAN_SMS mod = bll.GetModel(list[i].C_ID);
                 mod.N_KP_SORT           = i + 1;
                 mod.D_KP_START_TIME     = list[i].D_KP_START_TIME;
                 mod.D_KP_CAN_START_TIME = list[i].D_KP_CAN_START_TIME;
                 if (mod.D_KP_START_TIME == null)
                 {
                     return;
                 }
                 if (mod.D_KP_CAN_START_TIME > Convert.ToDateTime(mod.D_KP_START_TIME))
                 {
                     MessageBox.Show(sta.C_STA_DESC + ",序号(" + list[i].N_KP_SORT + ")" + "开坯开始时间不能在可开坯时间之前");
                     return;
                 }
                 if (mod.C_DFP_HL == "N")
                 {
                     if (mod.D_P_END_TIME > Convert.ToDateTime(mod.D_KP_START_TIME).AddHours(-2))
                     {
                         MessageBox.Show(sta.C_STA_DESC + ",序号(" + list[i].N_KP_SORT + ")" + "开坯开始时间不能在连铸结束时间后2个小时之内");
                         return;
                     }
                 }
                 else
                 {
                     if (mod.D_DFPHL_END_TIME > Convert.ToDateTime(mod.D_KP_START_TIME).AddHours(-2))
                     {
                         MessageBox.Show(sta.C_STA_DESC + ",序号(" + list[i].N_KP_SORT + ")" + "开坯时间不能在大方坯缓冷结束时间后2个小时之内");
                         return;
                     }
                 }
                 decimal sl = Convert.ToDecimal(mod.N_SLAB_WGT) / 114;
                 mod.D_KP_END_TIME = list[i].D_KP_END_TIME;
                 //mod.D_KP_END_TIME = Convert.ToDateTime(mod.D_KP_START_TIME).AddHours(Convert.ToDouble(sl));
                 //time = Convert.ToDateTime(mod.D_KP_END_TIME);
                 if (mod.C_HL == "Y")
                 {
                     int N_HL_TIME = (int)mod.N_HL_TIME;
                     mod.D_HL_START_TIME = Convert.ToDateTime(mod.D_KP_END_TIME).AddHours(2);
                     mod.D_HL_END_TIME   = Convert.ToDateTime(mod.D_HL_START_TIME).AddHours(N_HL_TIME);
                     if (mod.C_XM == "Y")
                     {
                         mod.D_XM_CAN_START_TIME = Convert.ToDateTime(mod.D_HL_END_TIME).AddHours(2);
                     }
                 }
                 bll.Update(mod);
             }
         }
         string result = bll.P_SLAB_CAN_USETIMEG();
         WaitingFrom.CloseWait();
         MessageBox.Show("保存成功");
         BindInfo();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }