yangle
2023-02-10 11112827c5ccdd0e03fdd7620c22729351ca6ba5
工序流转卡  保存工艺路线内码
生产订单完善
工艺路线添加字段 仓库
8个文件已修改
467 ■■■■■ 已修改文件
DAL/基础资料/公用基础资料/ClsGy_Warehouse_View.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DAL/车间管理/ClsSc_ProcessExchangeBill.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/车间管理/ClsSc_ProcessExchangeBillMain.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Class/CustomerCls/ClsXt_SystemParameter.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/Sc_ProcessMangementController.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/生产管理/生产任务单/Sc_ICMOBillController.cs 263 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/Gy_RoutingBillSub.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DAL/»ù´¡×ÊÁÏ/¹«Óûù´¡×ÊÁÏ/ClsGy_Warehouse_View.cs
@@ -66,7 +66,26 @@
            {
                throw (e);
            }
        }
        }
        //根据代码返回项目信息
        public override bool GetInfoByName(string sNumber)
        {
            DataSet DS;
            try
            {
                DS = oCn.RunProcReturn("Select * from " + MvarItemKey + " Where HName='" + sNumber + "'", MvarItemKey, ref DBUtility.ClsPub.sExeReturnInfo);
                if (DS.Tables[0].Rows.Count == 0)
                    return false;
                else
                {
                    return GetInfo(DS);
                }
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        //返回项目信息
        public override bool GetInfo(DataSet Ds)
        {
DAL/³µ¼ä¹ÜÀí/ClsSc_ProcessExchangeBill.cs
@@ -293,9 +293,8 @@
                ",HProdMaterCode,HSeOrderBillNo,HCusShortName,HCusNeedMaterial,HPlanSendGoodsDate" +
                ",HProdMaterName,HCusName,HWorkRemark,HImportNote,HMaterNumber_A" +
                ",HMaterNumber_B,HMaterNumber_C,HMaterNumber_D,HProdType,HMaterShortName" +
                ",HMaterIDA,HMaterIDB,HMaterIDC,HMaterIDD,HICMOEntryID" +
                ",HPicNumVer,HPicNumAssemble,HMaterTexture,HProductNum,HVerNum,HPRDORGID,HBLFlag,HCusNumber,HPickLabel,HPickLabelNumber,HXTNumber,HXTModel,HWorkBillSortNo" +
                ") " +
                ",HMaterIDA,HMaterIDB,HMaterIDC,HMaterIDD,HICMOEntryID" +        ",HPicNumVer,HPicNumAssemble,HMaterTexture,HProductNum,HVerNum,HPRDORGID,HBLFlag,HCusNumber,HPickLabel,HPickLabelNumber,HXTNumber,HXTModel,HWorkBillSortNo" +
               ", HRoutingBillID) " +
                " values('" + this.BillType + "','" + this.HBillSubType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "','" + omodel.HMaker + "',getdate()," + "" + (omodel.HPrevMainSourceInterID == 0 ? omodel.HInterID : omodel.HPrevMainSourceInterID) +
                "," + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HBatchNo + "'," + omodel.HMainMaterID.ToString() + "," + omodel.HKeyMaterID.ToString() + "," + omodel.HNo.ToString() + ",'" + omodel.HOrderProcNO + "'" +
                "," + omodel.HWWOrderInterID.ToString() + "," + omodel.HWWOrderEntryID.ToString() + ",'" + omodel.HWWOrderBillNo + "'," + omodel.HICMOInterID.ToString() + "," + omodel.HEquipMentID.ToString() +
@@ -307,7 +306,7 @@
                ",'" + omodel.HMaterNumber_B + "','" + omodel.HMaterNumber_C + "','" + omodel.HMaterNumber_D + "','" + omodel.HProdType + "','" + omodel.HMaterShortName + "'" +
                ",'" + omodel.HMaterIDA + "','" + omodel.HMaterIDB + "','" + omodel.HMaterIDC + "','" + omodel.HMaterIDD + "'," + omodel.HICMOEntryID +
                ",'" + omodel.HPicNumVer + "','" + omodel.HPicNumAssemble + "','" + omodel.HMaterTexture + "','" + omodel.HProductNum + "','" + omodel.HVerNum + "','"+ omodel.HPRDORGID+ "','"+omodel.HBLFlag+ "','" + omodel.HCusNumber + "','" + omodel.HPickLabel + "','" + omodel.HPickLabelNumber + "','" + omodel.HXTNumber + "','" + omodel.HXTModel + "','" + omodel.HWorkBillSortNo + 
                "') ");
                "',"+ omodel.HRoutingBillID + ") ");
                sErr = sErr + "1;";
                //插入子表
                foreach (Model.ClsSc_ProcessExchangeBillSub oSub in DetailColl)
Model/³µ¼ä¹ÜÀí/ClsSc_ProcessExchangeBillMain.cs
@@ -72,5 +72,6 @@
        public string HPickLabelNumber;
        public string HXTNumber;
        public string HXTModel;
        public string HRoutingBillID;//工艺路线ID
    }
}
Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
@@ -1393,6 +1393,12 @@
                        omodel.MES_StationOutBill_InStockType = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //===========工艺路线
                    //保存到数据库时自动加上转工序
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "Gy_RoutingBill_SaveAutoLastProc")
                    {
                        omodel.Gy_RoutingBill_SaveAutoLastProc = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //=======JIT
@@ -2905,6 +2911,13 @@
                        omodel.MES_StationEntrustOutBill_SaveAutoAddnew = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //=========工艺路线
                    //自动新增   ä¿å­˜åˆ°æ•°æ®åº“时自动加上转工序
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "Gy_RoutingBill_SaveAutoLastProc")
                    {
                        omodel.Gy_RoutingBill_SaveAutoLastProc = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //报工台,工序汇报自动审核参数
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "Sc_MESProceReportWorkBill_AutoCheck")
                    {
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>
@@ -162,7 +164,7 @@
                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;//总装图号
@@ -170,7 +172,7 @@
                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");
@@ -228,6 +230,19 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //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);
                //        }
                //    }
                //}
                if (IsProNo == 1 && OperationType == 1)
                {
@@ -313,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() +
@@ -325,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() +
                    ") ");
                }
            }
@@ -446,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";
@@ -507,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";
@@ -545,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 != "")
                {
                    // 
@@ -613,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)
WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -20,7 +20,7 @@
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
@@ -712,7 +712,21 @@
                    FentityModel.Add("FBaseRealQty", item["数量"].ToString());//
                    FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//
                    FentityModel.Add("FOwnerId", new JObject() { ["FNumber"] = item["HPrdOrgNumber"].ToString() });//
                    FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumber"].ToString() }); // ä»“库
                    string sErr = "";
                    if (oSystemParameter.ShowBill(ref sErr))
                    {
                        if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺")
                        {
                            if (oSystemParameter.omodel.MES_StationOutBill_InStockType == "工艺路线")
                            {
                                FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumbers"].ToString() }); // ä»“库
                            }
                            else if (oSystemParameter.omodel.MES_StationOutBill_InStockType == "工序")
                            {
                                FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumber"].ToString() }); // ä»“库
                            }
                        }
                    }
                    FentityModel.Add("FLot", new JObject() { ["FNumber"] = item["HBatchNo"].ToString() }); //批号
                    FentityModel.Add("FISBACKFLUSH", "true");//  
                    FentityModel.Add("FWorkShopId1", new JObject() { ["FNumber"] = item["HWorkShopNumber"].ToString() }); //  ç”Ÿäº§è½¦é—´
@@ -951,7 +965,21 @@
                    FentityModel.Add("FBaseRealQty", item["数量"].ToString());//
                    FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//
                    FentityModel.Add("FOwnerId", new JObject() { ["FNumber"] = item["HPrdOrgNumber"].ToString() });//
                    FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumber"].ToString() }); // ä»“库
                    string sErr = "";
                    if (oSystemParameter.ShowBill(ref sErr))
                    {
                        if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺")
                        {
                            if (oSystemParameter.omodel.MES_StationOutBill_InStockType == "工艺路线")
                            {
                                FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumbers"].ToString() }); // ä»“库
                            }
                            else if (oSystemParameter.omodel.MES_StationOutBill_InStockType == "工序")
                            {
                                FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumber"].ToString() }); // ä»“库
                            }
                        }
                    }
                    FentityModel.Add("FLot", new JObject() { ["FNumber"] = item["HBatchNo"].ToString() }); //批号
                    FentityModel.Add("FISBACKFLUSH", "true");//  
                    FentityModel.Add("FWorkShopId1", new JObject() { ["FNumber"] = item["HWorkShopNumber"].ToString() }); //  ç”Ÿäº§è½¦é—´
WebAPI/Controllers/Éú²ú¹ÜÀí/Éú²úÈÎÎñµ¥/Sc_ICMOBillController.cs
@@ -25,6 +25,7 @@
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill();
        #region ç”Ÿäº§ä»»åŠ¡å• ä¿å­˜/编辑功能
        [Route("Sc_ICMOBill/ICMOBillEdit")]
@@ -392,6 +393,7 @@
            string msg2 = sArray[0].ToString(); //主表数据
            int OperationType = int.Parse(sArray[1].ToString()); // æ•°æ®ç±»åž‹ 1添加 3修改
            string user = sArray[2].ToString();
            int HEntryID = int.Parse(sArray[3].ToString());
            try
            {
@@ -441,15 +443,15 @@
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)
                { //修改
                    oCN.RunProc("update Sc_ICMOBillMain  set " +
                                "HRemark='" + HRemark + "', HChecker='" + HMaker + "', HCheckDate=getdate()" +
                                "HRemark='" + HRemark + "', HUpDater='" + HMaker + "', HUpDateDate=getdate()" +
                                ", HSeOrderBillNo='" + HSeOrderBillNo + "', HSeOrderInterID=" + HSeOrderInterID + ", HSeOrderEntryID=" + HSeOrderEntryID + ", HEmpID=" + HEmpID + ", HCusID=" + HCusID + "" +
                                ", HCenterID=" + HCenterID + ",HBomID=" + HBomID + " where HInterID=" + HInterID);
                    //删除子表
                    oCN.RunProc("delete from Sc_ICMOBillSub where HInterID='" + HInterID + "'");
                    oCN.RunProc("delete from Sc_ICMOBillSub where HInterID='" + HInterID + "' and HEntryID='" + HEntryID + "'");
                }
                //保存子表
                objJsonResult = AddBillSub_NoTable(msg3, HInterID, OperationType);
                objJsonResult = AddBillSub_NoTable(msg3, HInterID, OperationType, HEntryID);
                if (objJsonResult.code == "0")
                {
@@ -476,7 +478,7 @@
            }
        }
        public json AddBillSub_NoTable(string msg3, long HInterID, int OperationType)
        public json AddBillSub_NoTable(string msg3, long HInterID, int OperationType,int HEntryID)
        {
            ClsSc_ICMOBillSub oSub = Newtonsoft.Json.JsonConvert.DeserializeObject<ClsSc_ICMOBillSub>(msg3);
            if (oSub.HQty <= 0 || oSub.HQty == null)
@@ -515,14 +517,14 @@
                return objJsonResult;
            }
            if (oSub.HBomID == 0)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "BOM不能为空";
                objJsonResult.data = null;
                return objJsonResult;
            }
            //if (oSub.HBomID == 0)
            //{
            //    objJsonResult.code = "0";
            //    objJsonResult.count = 0;
            //    objJsonResult.Message = "BOM不能为空";
            //    objJsonResult.data = null;
            //    return objJsonResult;
            //}
            oCN.RunProc($@"Insert into Sc_ICMOBillSub 
                (HInterID,HENTRYID,HQty
@@ -531,7 +533,7 @@
                ,HMaterID,HUnitID,HRemark,HSourceID,HDeptID,HSTATUS
                ,HBomID,HEntryCusID
                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney) 
                 values({HInterID},1,{(oSub.HQty == null ? 0 : oSub.HQty)}
                 values({HInterID},{HEntryID},{(oSub.HQty == null ? 0 : oSub.HQty)}
                ,'{(oSub.HPlanBeginDate == null ? DateTime.Now.ToString("yyyy-MM-dd") : oSub.HPlanBeginDate.ToString())}','{(oSub.HPlanEndDate == null ? DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") : oSub.HPlanEndDate.ToString())}'
                ,'{(oSub.HBeginDate == null ? DateTime.Now.ToString("yyyy-MM-dd") : oSub.HBeginDate.ToString())}','{(oSub.HEndDate == null ? DateTime.Now.AddDays(1).ToString("yyyy-MM-dd") : oSub.HEndDate.ToString())}'
                ,{oSub.HMaterID},{oSub.HUnitID},'{oSub.HRemark}',{oSub.HSourceID},{oSub.HDeptID},{oSub.HSTATUS}
@@ -547,6 +549,241 @@
        }
        #endregion
        #region ç”Ÿäº§ä»»åŠ¡å•å®¡æ ¸/反审核功能
        [Route("Sc_ICMOBill/CheckSc_ICMOReportBill")]
        [HttpGet]
        public object CheckSc_ICMOReportBill(string HInterID,int Type, string user)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Sc_ICMOBill_Check", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限审核!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                oCN.BeginTran();//开始事务
                //Type 1 å®¡æ ¸  2  åå®¡æ ¸
                if (Type == 1)
                {
                    if (!BillOld.CheckBill(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    if (BillOld.AbandonCheck(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DSet = oCn.RunProcReturn("exec h_p_Sc_ICMOBill_AbandonCheckCtrl " + int.Parse(HInterID), "h_p_Sc_ICMOBill_AbandonCheckCtrl");
                        //if (DBUtility.ClsPub.isInt(DSet.Tables[0].Rows[0]["Hback"]) != 0)
                        //{
                        //    objJsonResult.code = "0";
                        //    objJsonResult.count = 1;
                        //    objJsonResult.Message = "该任务单已下推流转卡,不允许反审核" + DBUtility.ClsPub.isStrNull(DSet.Tables[0].Rows[0]["HBackRemark"]);
                        //    objJsonResult.data = null;
                        //    return objJsonResult;
                        //}
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ç”Ÿäº§ä»»åŠ¡å•å…³é—­/反关闭功能
        [Route("Sc_ICMOBill/CloseSc_ICMOReportBill")]
        [HttpGet]
        public object CloseSc_ICMOReportBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Sc_ICMOBill_Close", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限关闭!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                oCN.BeginTran();//开始事务
                //Type 1 å…³é—­  2  åå…³é—­
                if (Type == 1)
                {
                    if (!BillOld.CloseBill(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    if (!BillOld.CancelClose(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ç”Ÿäº§ä»»åŠ¡å•ä½œåºŸ/反作废功能
        [Route("Sc_ICMOBill/CancellSc_ICMOReportBill")]
        [HttpGet]
        public object CancellSc_ICMOReportBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Sc_ICMOBill_Delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限作废!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                oCN.BeginTran();//开始事务
                //Type 1 ä½œåºŸ  2  åä½œåºŸ
                if (Type == 1)
                {
                    if (!BillOld.Cancelltion(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    if (!BillOld.AbandonCancelltion(int.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ç”Ÿäº§ä»»åŠ¡å•åˆ é™¤åŠŸèƒ½
        [Route("Sc_ICMOBill/DeltetSc_ICMOReportBill")]
        [HttpGet]
WebAPI/Models/Gy_RoutingBillSub.cs
@@ -65,5 +65,10 @@
        public string HProcCheckNote = "";        // varchar(2000)  æœ¬å·¥åºç¡®è®¤è®°å½•
        public string HProcWorkNum = "";        // varchar(100)  ç¨‹åºå·
        //瑞琪新加字段
        public int HBadWHID { get; set; }  //不良品仓
        public int HWasterWHID { get; set; } //报废仓
        public int HWHID { get; set; }  //良品仓
    }
}