yusijie
2023-02-22 f46017c7fc76869b18a7927afe4756c41e2763cf
WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs
@@ -27,8 +27,10 @@
        DAL.ClsIF_Material_View oMaterHlp = new DAL.ClsIF_Material_View();
        public DAL.ClsGy_Process_View oProcHlp = new DAL.ClsGy_Process_View();
        DAL.ClsGy_WorkCenter_View oCenHlp = new DAL.ClsGy_WorkCenter_View();
        DAL.ClsGy_Warehouse_View oCenWare = new DAL.ClsGy_Warehouse_View();
        Gy_RoutingBill_temporary omdelMian = new Gy_RoutingBill_temporary();
        public string BillType = "3301";
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        #region 未知
        /// <summary>
@@ -120,7 +122,7 @@
            string msg3 = sArray[1].ToString();
            //int hentryid = int.Parse(sArray[2].ToString());//子表的顺序id
            int OperationType = int.Parse(sArray[2].ToString());//数据类型 1添加 3修改
            int OperationType = int.Parse(sArray[2].ToString());//数据类型 1添加 3修改 2 复制
            string user = sArray[3].ToString();//用户名
            try
            {
@@ -162,14 +164,15 @@
                double HStdSourceQty = mainList[0].HStdSourceQty;//标准资源数
                double HAddSourceRate = mainList[0].HAddSourceRate;//加资源增量
                double HDelSourceRate = mainList[0].HDelSourceRate;//减资源减量
                int HPRDORGID = mainList[0].HOrgID;  //生产组织
                int HPRDORGID = mainList[0].HPRDORGID;  //生产组织
                int HOrgID = mainList[0].HOrgID;  //组织
                string HPicNumVer = mainList[0].HPicNumVer;//图号版本
                string HPicNumAssemble = mainList[0].HPicNumAssemble;//总装图号
                string HMaterTexture = mainList[0].HMaterTexture;//材质
                string HProductNum = mainList[0].HProductNum;//成品编号
                string HVerNum = mainList[0].HVerNum;//版本
                int IsProNo = mainList[0].IsProNo;//是否转工序
                if (OperationType == 2)
                {
                    ds = oCN.RunProcReturn("select * from h_v_Gy_RoutingBillList where  单据号='" + HBillNo + "'", "h_v_Gy_RoutingBillList");
@@ -205,8 +208,8 @@
                { //修改
                    oCN.RunProc("update Gy_RoutingBillMain  set " +
                       "HDate='" + HDate +
                       "',HYear='" + HYear + "',HPeriod='" + HPeriod + "',HRemark='" + HRemark + "',HMaker='" + HMaker +
                       "',Hmakedate=getdate(),HMaterID='" + HMaterID + "',HName='" + HName + "',HMaterTypeID='" + HMaterTypeID +
                       "',HYear='" + HYear + "',HPeriod='" + HPeriod + "',HRemark='" + HRemark + "',hupdater='" + HMaker +
                       "',hupdatedate=getdate(),HMaterID='" + HMaterID + "',HName='" + HName + "',HMaterTypeID='" + HMaterTypeID +
                       "',HRoutingGroupID='" + HRoutingGroupID + "',HUnitID='" + HUnitID + "',HMaterNumber='" + HMaterNumber + "',HUnitNumber='" + HUnitNumber +
                       "',HStandard='" + Convert.ToString(HStandard ? 1 : 0) + "',HMainGroupID='" + HMainGroupID + "',HMainProcID='" + HMainProcID + "',HMainCenterID='" + HMainCenterID +
                       "',HMainTimeUnit='" + HMainTimeUnit + "',HMainUnitTime='" + HMainUnitTime + "',HMainWorkQty='" + HMainWorkQty + "',HMainPrice='" + HMainPrice +
@@ -227,7 +230,33 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.RunProc("exec h_p_Gy_RoutingBillCheck " + HInterID);  //设置默认工艺路线
                string sErrMsg = "";
                if (oSystemParameter.ShowBill(ref sErrMsg))
                {
                    if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺")
                    {
                        if (oSystemParameter.omodel.Gy_RoutingBill_SaveAutoLastProc == "Y" && OperationType == 1)
                        {
                            //设置转工序
                            oCN.RunProc("exec Gy_RoutingBill_LastProNo " + HInterID);
                        }
                    }
                    else if (IsProNo == 1 && OperationType == 1)
                    {
                        //设置转工序
                        oCN.RunProc("exec Gy_RoutingBill_LastProNo " + HInterID);
                    }
                }
                //是否勾选默认工艺路线
                if (HStandard)
                {
                    //设置默认工艺路线
                    oCN.RunProc("exec h_p_Gy_RoutingBillCheck " + HInterID);  //设置默认工艺路线
                }
                //判断是否重复工序号
                ds = oCN.RunProcReturn("exec h_p_Gy_RoutingCtrl " + HInterID, "h_p_Gy_RoutingCtrl");
@@ -299,7 +328,7 @@
                    ",HProcID_S,HCenterID_S,HWorkQty_S,HSubStdEmpQty_S,HMouldNo,HChangeMould" +
                    ",HPackStd,HPack,HPutArea,HMyWorkDays,HMyFixWorkDays,HPassRate" +
                    ",HTechnologyParameter,HPicNum,HProcCheckNote" +
                    ",HOverRate,HProcWorkNum" +
                    ",HOverRate,HProcWorkNum,HBadWHID,HWasterWHID, HWHID " +
                    ") values("
                    + HInterID + "," + i + "," + oSub.HProcID.ToString() + ",'" + oSub.HProcNo + "'," + oSub.HSupID.ToString() + "," + Convert.ToString(oSub.HSupFlag ? 1 : 0) + "" +
                    "," + oSub.HWorkQty.ToString() + "," + oSub.HCenterID.ToString() + ",'" + oSub.HTimeUnit.ToString() + "'," + oSub.HUnitTime.ToString() +
@@ -311,7 +340,7 @@
                   "," + oSub.HProcID_S.ToString() + "," + oSub.HCenterID_S.ToString() + "," + oSub.HWorkQty_S.ToString() + ", " + oSub.HSubStdEmpQty_S.ToString() + ",'" + oSub.HMouldNo + "'," + oSub.HChangeMould.ToString() +
                   ",'" + oSub.HPackStd + "','" + oSub.HPack + "','" + oSub.HPutArea + "'," + oSub.HMyWorkDays.ToString() + "," + oSub.HMyFixWorkDays.ToString() + "," + oSub.HPassRate.ToString() +
                   ",'" + oSub.HTechnologyParameter.ToString() + "','" + oSub.HPicNum.ToString() + "','" + oSub.HProcCheckNote.ToString() +
                   "', " + oSub.HOverRate.ToString() + ",'" + oSub.HProcWorkNum.ToString() + "'" +
                   "', " + oSub.HOverRate.ToString() + ",'" + oSub.HProcWorkNum.ToString() + "'," + oSub.HBadWHID.ToString()+"," + oSub.HWasterWHID.ToString()+"," + oSub.HWHID.ToString() +
                    ") ");
                }
            }
@@ -432,6 +461,15 @@
                if (!tb2.Columns.Contains("良率"))
                    error += "没有找到【良率】的标题";
                if (!tb2.Columns.Contains("不良品仓"))
                    error += "没有找到【不良品仓】的标题";
                if (!tb2.Columns.Contains("报废品仓"))
                    error += "没有找到【报废品仓】的标题";
                if (!tb2.Columns.Contains("良品仓"))
                    error += "没有找到【良品仓】的标题";
                if (error.Length > 0)
                {
                    objJsonResult.code = "0";
@@ -493,12 +531,12 @@
                                , 良率, 工序工价, 不合格单价, 报废单价, 本道固定开工天数, 本道开工余量, 上道等待天数
                                , 上道循环周期, 自动转移, 外协标记, 供应商代码, 供应商, 工艺参数, 图纸编号
                                , 本工序确认记录, 备注, 图号版本, 总装图号, 材质, 成品编号, 版本
                                , 模具编号, 程序号, 班产定额, 工艺路线名称, 时间单位,工艺路线代码)values
                                , 模具编号, 程序号, 班产定额, 工艺路线名称, 时间单位,工艺路线代码,不良品仓,报废品仓,良品仓)values
                                ('" + tb2.Rows[i]["产品代码"].ToString() + "','" + tb2.Rows[i]["产品名称"].ToString() + "','" + tb2.Rows[i]["工序序号"].ToString() + "','" + tb2.Rows[i]["工序代码"].ToString() + "','" + tb2.Rows[i]["工序"].ToString() + "','" + tb2.Rows[i]["工作中心"].ToString() + "','" + tb2.Rows[i]["加工数量"].ToString() + "'" +
                                ",'" + tb2.Rows[i]["良率"].ToString() + "','" + (tb2.Rows[i]["工序工价"].ToString() == "" ? "0" : tb2.Rows[i]["工序工价"].ToString()) + "','" + tb2.Rows[i]["不合格单价"].ToString() + "','" + tb2.Rows[i]["报废单价"].ToString() + "','" + tb2.Rows[i]["本道固定开工天数"].ToString() + "','" + tb2.Rows[i]["本道开工余量"].ToString() + "','" + tb2.Rows[i]["上道等待天数"].ToString() + "'" +
                                ",'" + tb2.Rows[i]["上道循环周期"].ToString() + "','" + tb2.Rows[i]["自动转移"].ToString() + "','" + tb2.Rows[i]["外协标记"].ToString() + "','" + tb2.Rows[i]["供应商代码"].ToString() + "','" + tb2.Rows[i]["供应商"].ToString() + "','" + tb2.Rows[i]["工艺参数"].ToString() + "','" + tb2.Rows[i]["图纸编号"].ToString() + "'" +
                                ",'" + tb2.Rows[i]["本工序确认记录"].ToString() + "','" + tb2.Rows[i]["备注"].ToString() + "','" + tb2.Rows[i]["图号版本"].ToString() + "','" + tb2.Rows[i]["总装图号"].ToString() + "','" + tb2.Rows[i]["材质"].ToString() + "','" + tb2.Rows[i]["成品编号"].ToString() + "','" + tb2.Rows[i]["版本"].ToString() + "'" +
                                ",'" + tb2.Rows[i]["模具编号"].ToString() + "','" + tb2.Rows[i]["程序号"].ToString() + "','" + tb2.Rows[i]["班产定额"].ToString() + "','" + tb2.Rows[i]["工艺路线名称"].ToString() + "','" + tb2.Rows[i]["时间单位"].ToString() + "','" + tb2.Rows[i]["工艺路线代码"].ToString() + "')");
                                ",'" + tb2.Rows[i]["模具编号"].ToString() + "','" + tb2.Rows[i]["程序号"].ToString() + "','" + tb2.Rows[i]["班产定额"].ToString() + "','" + tb2.Rows[i]["工艺路线名称"].ToString() + "','" + tb2.Rows[i]["时间单位"].ToString() + "','" + tb2.Rows[i]["工艺路线代码"].ToString() + "','" + tb2.Rows[i]["不良品仓"].ToString() + "','" + tb2.Rows[i]["报废品仓"].ToString() + "','" + tb2.Rows[i]["良品仓"].ToString() + "')");
                }
                objJsonResult.code = "1";
@@ -531,12 +569,12 @@
                Single sWorkQty = 0;
                Single sHPassRate = 0;
                //
                sHNumber = DBUtility.ClsPub.isStrNull(dt.Rows[i]["产品代码"].ToString());
                sHNumberCen = DBUtility.ClsPub.isStrNull(dt.Rows[i]["工作中心"].ToString());
                sHNamePoc = DBUtility.ClsPub.isStrNull(dt.Rows[i]["工序"].ToString());
                sWorkQty = DBUtility.ClsPub.isSingle(dt.Rows[i]["加工数量"].ToString());
                sHPassRate = DBUtility.ClsPub.isSingle(dt.Rows[i]["良率"].ToString());
                if (sHNumber != "")
                {
                    // 
@@ -599,9 +637,92 @@
                            sErrMsg = sErrMsg + "[" + sHNumberCen + "]工作中心不存在\r\n";
                        }
                        b = true;
                    }
                    string sErr = "";
                    if (oSystemParameter.ShowBill(ref sErr))
                    {
                        if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺")
                        {
                            string HBadWHName = ""; //不良品仓
                            string HWasterWHName = ""; //报废品仓
                            string HWHName = ""; //良品仓
                            HBadWHName = DBUtility.ClsPub.isStrNull(dt.Rows[i]["不良品仓"].ToString());
                            HWasterWHName = DBUtility.ClsPub.isStrNull(dt.Rows[i]["报废品仓"].ToString());
                            HWHName = DBUtility.ClsPub.isStrNull(dt.Rows[i]["良品仓"].ToString());
                            //判断是否为空
                            if (HBadWHName == "")
                            {
                                sErrMsg = sErrMsg + "第" + index + "行 :不良品仓不能为空 !\r\n";
                                b = true;
                            }
                            if (HWasterWHName == "")
                            {
                                sErrMsg = sErrMsg + "第" + index + "行 :报废品仓不能为空 !\r\n";
                                b = true;
                            }
                            if (HWHName == "")
                            {
                                sErrMsg = sErrMsg + "第" + index + "行 :良品仓不能为空 !\r\n";
                                b = true;
                            }
                            //判断仓库是否重复
                            if (HBadWHName == HWasterWHName)
                            {
                                sErrMsg = sErrMsg + "不良品仓和报废品仓重复\r\n";
                                b = true;
                            }
                            if (HWasterWHName == HWHName)
                            {
                                sErrMsg = sErrMsg + "报废品仓和良品仓重复\r\n";
                                b = true;
                            }
                            if (HBadWHName == HWHName)
                            {
                                sErrMsg = sErrMsg + "不良品仓和良品仓重复\r\n";
                                b = true;
                            }
                            //得到仓库内码
                            if (!oCenWare.GetInfoByName(HBadWHName))
                            {
                                sMsg = "[" + HBadWHName + "]仓库不存在";
                                if (sErrMsg.Contains(sMsg) == false)
                                {
                                    sErrMsg = sErrMsg + "[" + HBadWHName + "]仓库不存在\r\n";
                                }
                                b = true;
                            }
                            if (!oCenWare.GetInfoByName(HWasterWHName))
                            {
                                sMsg = "[" + HWasterWHName + "]仓库不存在";
                                if (sErrMsg.Contains(sMsg) == false)
                                {
                                    sErrMsg = sErrMsg + "[" + HWasterWHName + "]仓库不存在\r\n";
                                }
                                b = true;
                            }
                            if (!oCenWare.GetInfoByName(HWHName))
                            {
                                sMsg = "[" + HWHName + "]仓库不存在";
                                if (sErrMsg.Contains(sMsg) == false)
                                {
                                    sErrMsg = sErrMsg + "[" + HWHName + "]仓库不存在\r\n";
                                }
                                b = true;
                            }
                        }
                    }
                }
            }
            if (b == true)