王 垚
2022-04-21 544f3177212125cc38fa149af35e6e7ad7e522d8
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API into master
1个文件已修改
286 ■■■■ 已修改文件
PlanM/数据导入/Gy_StdWorkTimes_RoutingBill.cs 286 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PlanM/Êý¾Ýµ¼Èë/Gy_StdWorkTimes_RoutingBill.cs
@@ -31,48 +31,23 @@
        public int HStdWorkTimes = 0;    //标准工时
        public int HUpperlimit = 0;  //上限比例
        public int HLowerlimit = 0;    //下限比例
        //public int HMaterNumberCol = 0;             //产品代码
        //public int HWorkTypeNameCol = 0;           //工种
        //public int HProcNameCol = 0;           //工序
        //public int HWorkCenterNameCol = 0;        //工作中心
        //public int HProcMulNameCol = 0;           //工段
        //public int HWorkCenterName_SCol = 0;           //产线
        //public int HWorkQtyCol = 0;          //产能
        //public int HSubStdEmpQtyCol = 0;          //人数
        //public int HWorkQty_SCol = 0;          //产线产能
        //public int HSubStdEmpQty_SCol = 0;          //产线人数
        //public int HMouldNoCol = 0;          //模具编号
        //public int HChangeMouldCol = 0;          //换模时间
        //public int HPackStdCol = 0;          //周转箱标准
        //public int HPackCol = 0;          //周转箱
        //public int HPutAreaCol = 0;          //暂放区
        ////
        //public int HMyWorkDaysCol = 0;          //生产周期
        //public int HMyFixWorkDaysCol = 0;          //固定生产天数
        //public int HBeginDayQtyCol = 6;     //开工固天
        //public int HBeginFixQtyCol = 7;     //开工余量
        //public int HFixPriceCol = 8;        //定额 å°æ—¶å·¥èµ„
        //public int HProcPriceCol = 9;       //工价
        //public int HProcTypeCol = 0;          //工序类型
        //
        public const int HBeginRow = 2;         //有效数据,开始行数
        // 
        //DAL.ClsGy_RoutingBill;
        public DAL.ClsGy_Process_View oProcHlp = new DAL.ClsGy_Process_View();
        public DAL.ClsGy_StdWorkTimes_Ctl BillNew = new DAL.ClsGy_StdWorkTimes_Ctl();
        DAL.ClsIF_Material_View oMaterHlp = new DAL.ClsIF_Material_View();
        //DAL.ClsGy_WorkType_View oWorkType = new DAL.ClsGy_WorkType_View();
        long j = -1;
        int c = 0;
        public override bool OpenExcelData()
        {
            base.sSheetName = txtHSheetName.Text;
            return base.OpenExcelData();
        }
        }
        /// <summary>
        ///  åˆå§‹åŒ–界面
@@ -80,7 +55,7 @@
        public override void initData()
        {
            base.initData();
            base.sSheetName = txtHSheetName.Text ;
            base.sSheetName = "标准工时";
            base.ModRightName = "Gy_StdWorkTimes_RoutingBill";
            base.ModRightNameCheck = base.ModRightName + base.ModRightNameCheck;
            base.ModRightNameClose = base.ModRightName + base.ModRightNameClose;
@@ -88,7 +63,7 @@
            base.ModRightNameEdit = base.ModRightName + base.ModRightNameEdit;
            base.ModRightNameMoney = base.ModRightName + base.ModRightNameMoney;
            base.ModRightNameQty = base.ModRightName + base.ModRightNameQty;
            base.ModCaption = "标准工时导入";
            base.ModCaption = "标准工时";
            this.Text = base.ModCaption;
            lblCaption.Text = base.ModCaption;
            //
@@ -96,79 +71,23 @@
            DBUtility.Gy_BaseFun.SetComboxPeriod(cmbHPeriod);
            //
        }
        //导入
        public override void Sub_DataIn()
        {
            string hnumber = "";
                                    //
            HStdWorkTimes = DBUtility.Gy_BaseFun.Fun_GetCol("标准工时", grdMain);
            HProcNum = DBUtility.Gy_BaseFun.Fun_GetCol("工序代码", grdMain);
            HProcName = DBUtility.Gy_BaseFun.Fun_GetCol("工序", grdMain);
            HMaterNum = DBUtility.Gy_BaseFun.Fun_GetCol("物料代码", grdMain);
            HMaterName = DBUtility.Gy_BaseFun.Fun_GetCol("物料", grdMain);
            HUpperlimit = DBUtility.Gy_BaseFun.Fun_GetCol("上线比例", grdMain);
            HLowerlimit = DBUtility.Gy_BaseFun.Fun_GetCol("下线比例", grdMain);
            HUSEORGName = DBUtility.Gy_BaseFun.Fun_GetCol("组织", grdMain);
            HMaker = DBUtility.Gy_BaseFun.Fun_GetCol("制单人", grdMain);
            HMakeDate = DBUtility.Gy_BaseFun.Fun_GetCol("制单日期", grdMain);
            int sHStdWorkTimesCol = DBUtility.Gy_BaseFun.Fun_GetCol("标准工时", grdMain);
            int sHProcNumCol = DBUtility.Gy_BaseFun.Fun_GetCol("工序代码", grdMain);
            int sHProcNameCol = DBUtility.Gy_BaseFun.Fun_GetCol("工序", grdMain);
            int sHMaterNumCol = DBUtility.Gy_BaseFun.Fun_GetCol("物料代码", grdMain);
            int sHMaterNameCol = DBUtility.Gy_BaseFun.Fun_GetCol("物料", grdMain);
            int sHUpperlimitCol = DBUtility.Gy_BaseFun.Fun_GetCol("上线比例", grdMain);
            int sHLowerlimitCol = DBUtility.Gy_BaseFun.Fun_GetCol("下线比例", grdMain);
            int sHUSEORGNameCol = DBUtility.Gy_BaseFun.Fun_GetCol("组织", grdMain);
            int sHMakerCol = DBUtility.Gy_BaseFun.Fun_GetCol("制单人", grdMain);
            int sHMakeDateCol = DBUtility.Gy_BaseFun.Fun_GetCol("制单日期", grdMain);
            //没有找到列
            if (HStdWorkTimes == -1)
            {
                MessageBox.Show("没有找到【标准工时】的标题", "提示");
                return;
            }
            if (HProcName == -1)
            {
                MessageBox.Show("没有找到【工序】的标题", "提示");
                return;
            }
            if (HMaterName == -1)
            {
                MessageBox.Show("没有找到【物料】的标题", "提示");
                return;
            }
            if (HUpperlimit == -1)
            {
                MessageBox.Show("没有找到【上线比例】的标题", "提示");
                return;
            }
            if (HLowerlimit == -1)
            {
                MessageBox.Show("没有找到【下线比例】的标题", "提示");
                return;
            }
            if (HUSEORGName == -1)
            {
                MessageBox.Show("没有找到【组织】的标题", "提示");
                return;
            }
            if (HMaker == -1)
            {
                MessageBox.Show("没有找到【制单人】的标题", "提示");
                return;
            }
            if (HMakeDate == -1)
            {
                MessageBox.Show("没有找到【制单日期】的标题", "提示");
                return;
            }
            //
            if (!Checkdata())
            {
                return;
            }
            if (grdMain.Rows.Count > 0)
            {
                hnumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[0].Cells[HMaterNum].Value);
                BillNew.omodel.HMakeDate =  (DateTime.Today.Date).ToString();
                BillNew.omodel.HUSEORGID =  DBUtility.ClsPub.HOrgID;
                BillNew.omodel.HStopflag = false;
                BillNew.DetailColl.Clear();
            }
            for (int i = 0; i <= grdMain.Rows.Count - 1; i++)
            {
                if (DBUtility.ClsPub.isStrNull(grdMain.Rows[i].Cells[HProcNum].Value) != "" && DBUtility.ClsPub.isStrNull(grdMain.Rows[i].Cells[HMaterNum].Value) != "")
                if (DBUtility.ClsPub.isStrNull(grdMain.Rows[i].Cells[sHMaterNumCol].Value) != "" && DBUtility.ClsPub.isStrNull(grdMain.Rows[i].Cells[sHProcNumCol].Value) != "")
                {
                    //写入类
                    if (WriteClass(i))
@@ -194,136 +113,93 @@
        //写入类 ä»ŽæŽ§ä»¶
        private bool WriteClass(int row)
        {
            string sHNumber = "";
            string sHNamePoc = "";
            string HStopflag = "";
            string HUSEORGID = "";
            //string sHNumberWorkType = "";
            string HStdWorkTimes = "";
            string HUpperlimit="";  //上限比例
            string HLowerlimit="";  //下限比例
            BillNew.DetailColl.Clear();
            string sMaterNumber = "";
            string sMaterName = "";
            string sProcNumber = "";
            string sProcName = "";
            double sStdWorkTimes = 0;
            double sUpperlimit = 0;
            double sLowerlimit = 0;
            int sUSEORGName = 0;
            DateTime sHMakeDate = DateTime.Today.Date;
            string sHMaker = DBUtility.ClsPub.CurUserName;
            int HMaterNum = DBUtility.Gy_BaseFun.Fun_GetCol("产品代码", grdMain);
            int sMaterNameCol = DBUtility.Gy_BaseFun.Fun_GetCol("产品名称", grdMain);
            int sModelCol = DBUtility.Gy_BaseFun.Fun_GetCol("规格型号", grdMain);
            int HProcNum = DBUtility.Gy_BaseFun.Fun_GetCol("工序代码", grdMain);
            int sProcNameCol = DBUtility.Gy_BaseFun.Fun_GetCol("工序", grdMain);
            int sSourceNumberCol = DBUtility.Gy_BaseFun.Fun_GetCol("资源代码", grdMain);
            int sSourceNameCol = DBUtility.Gy_BaseFun.Fun_GetCol("生产资源", grdMain);
            int sPriceCol = DBUtility.Gy_BaseFun.Fun_GetCol("单价", grdMain);
            //long HItemID = 0;
            int sHStdWorkTimesCol = DBUtility.Gy_BaseFun.Fun_GetCol("标准工时", grdMain);
            int sHProcNumCol = DBUtility.Gy_BaseFun.Fun_GetCol("工序代码", grdMain);
            int sHProcNameCol = DBUtility.Gy_BaseFun.Fun_GetCol("工序", grdMain);
            int sHMaterNumCol = DBUtility.Gy_BaseFun.Fun_GetCol("物料代码", grdMain);
            int sHMaterNameCol = DBUtility.Gy_BaseFun.Fun_GetCol("物料", grdMain);
            int sHUpperlimitCol = DBUtility.Gy_BaseFun.Fun_GetCol("上线比例", grdMain);
            int sHLowerlimitCol = DBUtility.Gy_BaseFun.Fun_GetCol("下线比例", grdMain);
            int sHUSEORGNameCol = DBUtility.Gy_BaseFun.Fun_GetCol("组织", grdMain);
            int sHMakerCol = DBUtility.Gy_BaseFun.Fun_GetCol("制单人", grdMain);
            int sHMakeDateCol = DBUtility.Gy_BaseFun.Fun_GetCol("制单日期", grdMain);
            //
            sHNumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[row].Cells[HMaterNum].Value);
            sHNamePoc = DBUtility.ClsPub.isStrNull(grdMain.Rows[row].Cells[HProcNum].Value);
            //
            //
            HStopflag = DBUtility.ClsPub.isBool(grdMain.Rows[row].Cells[HStopflag].Value).ToString();
            HUSEORGID = DBUtility.ClsPub.HOrgID.ToString();
            HStdWorkTimes = DBUtility.ClsPub.isSingle(grdMain.Rows[row].Cells[HStdWorkTimes].Value).ToString();
            HUpperlimit = DBUtility.ClsPub.isSingle(grdMain.Rows[row].Cells[HUpperlimit].Value).ToString();
            HLowerlimit = DBUtility.ClsPub.isSingle(grdMain.Rows[row].Cells[HLowerlimit].Value).ToString();
            sMaterNumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[row].Cells[sHMaterNumCol].Value);
            //sMaterName = DBUtility.ClsPub.isStrNull(grdMain.Rows[row].Cells[sHMaterNameCol].Value);
            sProcNumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[row].Cells[sHProcNumCol].Value);
            //sProcName = DBUtility.ClsPub.isStrNull(grdMain.Rows[row].Cells[sHProcNameCol].Value);
            sStdWorkTimes = DBUtility.ClsPub.isDoule(grdMain.Rows[row].Cells[sHStdWorkTimesCol].Value);
            sUpperlimit = DBUtility.ClsPub.isDoule(grdMain.Rows[row].Cells[sHUpperlimitCol].Value);
            sLowerlimit = DBUtility.ClsPub.isDoule(grdMain.Rows[row].Cells[sHLowerlimitCol].Value);
            //sUSEORGName = DBUtility.ClsPub.isInt(grdMain.Rows[row].Cells[sHUSEORGNameCol].Value);
            //sHMakeDate = DBUtility.ClsPub.isDate(grdMain.Rows[row].Cells[sHMakeDateCol].Value);
            //sHMaker = DBUtility.ClsPub.isStrNull(grdMain.Rows[row].Cells[sHMakerCol].Value);
            //判断是否允许 ä¿å­˜
            if (!DBUtility.ClsPub.AllowNumber(sHNumber))
            //审核代码是否合理
            if (!DBUtility.ClsPub.AllowNumber(sMaterNumber))
            {
                MessageBox.Show("产品代码中不能出现连续‘.’并且首位末位不能为‘.’!", "提示");
                return false;
            }
            if (!DBUtility.ClsPub.AllowNumber(sHNamePoc))
            if (!DBUtility.ClsPub.AllowNumber(sProcNumber))
            {
                MessageBox.Show("工序代码中不能出现连续‘.’并且首位末位不能为‘.’!", "提示");
                return false;
            }
            Model.ClsGy_StdWorkTimes_Model oSub = new Model.ClsGy_StdWorkTimes_Model();
            //得到工序内码
            if (oProcHlp.GetInfoByName(sHNamePoc))
            {
                oSub.HProcID = oProcHlp.omodel.HItemID;
            }
            //得到物料内码
            if (oMaterHlp.GetInfoByName(sHNumber))
            if (oMaterHlp.GetInfoByNumber(sMaterNumber))
            {
                oSub.HMaterID = oMaterHlp.omodel.HItemID;
            }
            //写入信息
            oSub.HEntryID = j;
            oSub.HMaker = DBUtility.ClsPub.CurUserName;
            oSub.HMakeDate = (DateTime.Today.Date).ToString();
            oSub.HStdWorkTimes = double.Parse(HStdWorkTimes);
            oSub.HRemark = "";
            oSub.HUpperlimit = double.Parse(HUpperlimit);
            oSub.HLowerlimit = double.Parse(HLowerlimit);
            oSub.HStopflag = bool.Parse(HStopflag);
            BillNew.DetailColl.Add(oSub);
            return true;
        }
        //检查物料
        private bool Checkdata()
        {
            bool b = false;
            string sErrMsg = "";
            string sMsg = "";
            for (int i = 0; i <= grdMain.Rows.Count - 1; i++)
            else
            {
                string sHNumber = "";
                string sHNamePoc = "";
                //
                sHNumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[i].Cells[HMaterNum].Value);
                sHNamePoc = DBUtility.ClsPub.isStrNull(grdMain.Rows[i].Cells[HProcNum].Value);
                if (sHNumber != "")
                {
                    //
                    //审核代码是否合理
                    if (!DBUtility.ClsPub.AllowNumber(sHNumber))
                    {
                        MessageBox.Show("物料代码中不能出现连续‘.’并且首位末位不能为‘.’!", "提示");
                        return false;
                    }
                    //得到物料内码
                    int j = i + HBeginRow;
                    if (!oMaterHlp.GetInfoByNumber(sHNumber))
                    {
                        sMsg = "[" + sHNumber + "]物料不存在";
                        if (sErrMsg.Contains(sMsg) == false)
                        {
                            sErrMsg = sErrMsg + "[" + sHNumber + "]物料不存在\r\n";
                        }
                        b = true;
                    }
                    //得到工序内码
                    if (!oProcHlp.GetInfoByName(sHNamePoc))
                    {
                        sMsg = "[" + sHNamePoc + "]工序不存在";
                        if (sErrMsg.Contains(sMsg) == false)
                        {
                            sErrMsg = sErrMsg + "[" + sHNamePoc + "]工序不存在\r\n";
                        }
                        b = true;
                    }
                }
            }
            if (b == true)
            {
                Pub_Control.ErrMsgBox oMsgbox = new Pub_Control.ErrMsgBox();
                oMsgbox.txtHErrMsg.Text = sErrMsg;
                oMsgbox.ShowDialog();
                oSub.HMaterID = 0;
                MessageBox.Show("第" + row.ToString() + "行," + sMaterNumber + "没有找到对应的物料!");
                return false;
            }
            //得到工序内码
            if (oProcHlp.GetInfoByNumber(sProcNumber))
            {
                oSub.HProcID = oProcHlp.omodel.HItemID;
            }
            else
            {
                return true;
                oSub.HProcID = 0;
                MessageBox.Show("第" + row.ToString() + "行," + sProcNumber + "没有找到对应的工序!");
                return false;
            }
            //写入信息
            oSub.HRemark = "";
            oSub.HStdWorkTimes = sStdWorkTimes;
            oSub.HUpperlimit = sUpperlimit;
            oSub.HLowerlimit = sLowerlimit;
            oSub.HUSEORGID = DBUtility.ClsPub.HOrgID;
            oSub.HMaker = DBUtility.ClsPub.CurUserName;
            oSub.HMakeDate = DateTime.Today.ToShortDateString();
            BillNew.DetailColl.Add(oSub);
            //oProc.oModel.HBillSubType = DBUtility.ClsPub.isStrNull(txtHBillSubType.Text);
            return true;
        }
        private void Gy_StdWorkTimes_RoutingBill_Load(object sender, EventArgs e)
        {