| using Newtonsoft.Json.Linq; | 
| using Pub_Class; | 
| using System; | 
| using System.Collections; | 
| using System.Collections.Generic; | 
| using System.Data; | 
| using System.Linq; | 
| using System.Data.SqlClient; | 
| using System.Web.Http; | 
| using WebAPI.Models; | 
|   | 
| namespace WebAPI.Controllers | 
| { | 
|     //生产上料单Controller | 
|     public class Sc_MaterToSourceBillController : ApiController | 
|     { | 
|         public DBUtility.ClsPub.Enum_BillStatus BillStatus; | 
|   | 
|         private json objJsonResult = new json(); | 
|         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
|         DataSet ds; | 
|         //获取系统参数 | 
|         Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); | 
|   | 
|         public DAL.ClsSc_MESMaterToSourceBill BillNew = new DAL.ClsSc_MESMaterToSourceBill();   //对应单据类 | 
|         public DAL.ClsSc_MESMaterToSourceBill BillOld = new DAL.ClsSc_MESMaterToSourceBill();   //对应单据类 | 
|   | 
|   | 
|         #region 上料放错单Web列表查询 | 
|         /// <summary> | 
|         /// 返回生产上料单列表 | 
|         ///参数:string sql。 | 
|         ///返回值:object。 | 
|         /// </summary> | 
|         [Route("Sc_MaterToSourceBill/list")] | 
|         [HttpGet] | 
|         public object list(string sWhere) | 
|         { | 
|             try | 
|             { | 
|                 if (sWhere == null || sWhere.Equals("")) | 
|                 { | 
|                     ds = oCN.RunProcReturn("select * from h_v_Sc_MaterToSourceBillMain " + sWhere, "h_v_Sc_MaterToSourceBillMain"); | 
|                 } | 
|                 else | 
|                 { | 
|                     string sql1 = "select * from h_v_Sc_MaterToSourceBillMain where 1 = 1 "; | 
|                     string sql = sql1 + sWhere; | 
|                     ds = oCN.RunProcReturn(sql, "h_v_Sc_MaterToSourceBillMain"); | 
|                 } | 
|                 if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "没有返回任何记录!"; | 
|                     objJsonResult.data = ds.Tables[0]; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "1"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "查询数据成功!"; | 
|                     objJsonResult.data = ds.Tables[0]; | 
|                     return objJsonResult; | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 上料防错单编辑时获取表头数据 | 
|         [Route("Sc_MaterToSourceBill/Sc_MaterToSourceBillListCheckDetai")] | 
|         [HttpGet] | 
|         public ApiResult<DataSet> Sc_MaterToSourceBillListCheckDetai(string HID) | 
|         { | 
|             if (string.IsNullOrEmpty(HID)) | 
|                 return new ApiResult<DataSet> { code = -1, msg = "ID不能为空" }; | 
|             SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
|             var dataSet = oCN.RunProcReturn("select top 1 * from h_v_Sc_MaterToSourceBillMain  where hmainid= " + HID + " ", "h_v_Sc_MaterToSourceBillMain"); | 
|             if (dataSet == null || dataSet.Tables[0].Rows.Count == 0) | 
|                 return new ApiResult<DataSet> { code = -1, msg = "不存在上料防错单数据" }; | 
|             return new ApiResult<DataSet> { code = 1, msg = "查询成功", data = dataSet }; | 
|         } | 
|         #endregion | 
|   | 
|         #region 上料防错单编辑时获取表体数据(配料记录、治具记录) | 
|         [Route("Sc_MaterToSourceBill/Sc_MaterToSourceBillListProjectDetai")] | 
|         [HttpGet] | 
|         public object Sc_MaterToSourceBillListProjectDetai(string HInterID) | 
|         { | 
|   | 
|             DataSet ds, ds1; | 
|             List<object> list = new List<object>(); | 
|             string Swhere = ""; | 
|             try | 
|             { | 
|                 if (HInterID != "" || HInterID != null) | 
|                 { | 
|                     Swhere = " and hmainid='" + HInterID + "'"; | 
|                 } | 
|                 else | 
|                 { | 
|                     Swhere = HInterID; | 
|                 } | 
|                 SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
|                 //获取配料记录编辑数据 | 
|                 string sql = "select 条形码 HBarCode,HMaterID,物料代码 HNumber,物料名称 HName,规格型号 HModel,HUnitID,计量单位名称 HUnitName,数量 HQty   from h_v_Sc_MaterToSourceBillSub where 1 = 1 " + Swhere + ""; | 
|                 ds = oCN.RunProcReturn(sql, "h_v_Sc_MaterToSourceBillSub"); | 
|                 //获取治具记录编辑数据 | 
|                 //string sql1 = "select HMaterID, 配件代码 HMaterNumber,配件名称 HMaterName,规格型号 HMaterSpec,HUnitID,单位代码 HUnitNumber,单位名称 HUnitName,实际用量 HQty,标准用量 HQtyMust,HManagerID,负责人代码 HManagerNumber,负责人 HManagerName,表体备注 HRemark  from h_v_Sc_MouldMaintainBillList where 1 = 1 " + Swhere + ""; | 
|                 //ds1 = oCN.RunProcReturn(sql1, "h_v_Sc_MouldMaintainBillList"); | 
|                 list.Add(ds.Tables[0]); | 
|                 //list.Add(ds1.Tables[0]); | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "获取信息成功!"; | 
|                 objJsonResult.list = list; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "没有返回任何记录!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|             } | 
|             return objJsonResult; | 
|         } | 
|         #endregion | 
|   | 
|         #region [上料防错单删除功能] | 
|         /// <summary> | 
|         /// 开工单删除功能 | 
|         /// </summary> | 
|         /// <returns></returns> | 
|         [Route("Sc_MaterToSourceBill/DeltetMaterToSourceBill")] | 
|         [HttpGet] | 
|         public object DeltetMaterToSourceBill(string HInterID, string UserName) | 
|         { | 
|             DBUtility.ClsPub.CurUserName = UserName; | 
|             //编辑权限 | 
|             //if (!DBUtility.ClsPub.Security_Log("MES_MaterToSourceBill_Delete", 1, false, DBUtility.ClsPub.CurUserName)) | 
|             //{ | 
|             //    objJsonResult.code = "0"; | 
|             //    objJsonResult.count = 0; | 
|             //    objJsonResult.Message = "无删除权限!"; | 
|             //    objJsonResult.data = null; | 
|             //    return objJsonResult; | 
|             //} | 
|   | 
|   | 
|             Int64 lngBillKey = 0; | 
|             lngBillKey = DBUtility.ClsPub.isLong(HInterID); | 
|             if (lngBillKey == 0) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "单据ID为空!"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             DAL.ClsSc_MESMaterToSourceBill oBill = new DAL.ClsSc_MESMaterToSourceBill(); | 
|             if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|             { | 
|                 if (oBill.omodel.HBillStatus > 1) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "单据当前处于不能删除状态,不能删除!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 if (oBill.omodel.HChecker != "") | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "单据已经审核,不能删除!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 bool IsDete = oBill.DeleteBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 if (IsDete) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|   | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|             } | 
|             else | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "单据未找到"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|   | 
|         #region  报工平台上料防错单弹窗查找数据 | 
|         [Route("Sc_MaterToSourceBill/GetMESMaterToSourceFrom")] | 
|         [HttpGet] | 
|         public object GetMESMaterToSourceFrom(string HSourceInterID, string HSourceEntryID, string HSourceBillNo, string HSourceBillType) | 
|         { | 
|             try | 
|             { | 
|                 //根据选择资源ID获取当前生产工单、责任人 | 
|                 ds = oCN.RunProcReturn("exec h_p_JIT_GetInfoByICMOStatusInterID @HSourceInterID=" + HSourceInterID + ",@HSourceEntryID=" + HSourceEntryID + ",@HSourceBillNo='" + HSourceBillNo + "',@HSourceBillType='" + HSourceBillType + "'", "h_p_JIT_GetInfoByICMOStatusInterID"); | 
|                 if (ds.Tables[0].Rows.Count > 0) | 
|                 { | 
|   | 
|                     objJsonResult.code = "1"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "获取资源绑定数据成功!"; | 
|                     objJsonResult.data = ds; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "暂无资源绑定!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|   | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = e.Message.ToString(); | 
|                 objJsonResult.data = null; | 
|   | 
|             } | 
|             return objJsonResult; | 
|         } | 
|         #endregion | 
|   | 
|         #region 报工平台上料防错一键扫码方法 | 
|         [Route("Sc_MaterToSourceBill/get_CheckTypeByBarCode_Json")] | 
|         [HttpGet] | 
|         public object get_CheckTypeByBarCode_Json(string HBarCode,string HSourceID,string HICMOInterID,string HICMOEntryID) | 
|         { | 
|              | 
|             //根据递入的条码前三位,判断条码类型(生产资源、物料条码) | 
|             ds = oCN.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + HBarCode.Substring(0, 3) + "'", "Xt_BarCodeType"); | 
|   | 
|             //无返回数据则为物料条码 | 
|             if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|             { | 
|                 //1.查询条形码在条码档案表中是否存在 | 
|                 DataSet ds0 = oCN.RunProcReturn(" select HMaterID from Gy_BarCodeBill where HBarCode= '" + HBarCode + "'", "Gy_BarCodeBill"); | 
|                 if (ds0 == null || ds0.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "条码档案中不存在此物料条码,条码无效!"; | 
|                     return objJsonResult; | 
|                 } | 
|                 else  | 
|                 { | 
|                     //2.匹配用料清单的物料编码是否一致 | 
|                     string sql = @"select '{0}' HBarCode,b.HMaterID,m.HNumber,m.HName,m.HModel,a.HQty HMQty, b.HQty,b.HUnitID,u.HName HUnitName   from sc_PPbomBillMain a | 
|                                                  inner join Sc_PPBomBillSub b on a.HInterID = b.HInterID | 
|                                                  left join Gy_Material m on b.HMaterID = m.HItemID | 
|                                                  left join Gy_Unit u on b.HUnitID = u.HItemID | 
|                                                  where a.HICMOInterID = '{1}' and a.HICMOEntryID = '{2}'"; | 
|                     sql = string.Format(sql,HBarCode, HICMOInterID, HICMOEntryID); | 
|   | 
|                 | 
|                     ds = oCN.RunProcReturn(sql, "Sc_PPBomBillSub"); | 
|                     if (ds.Tables[0].Rows.Count > 0) //有用料清单记录 | 
|                     { | 
|                         //var dt0 = ds.Tables[0].AsEnumerable().Where<DataRow>(C => C["HMaterID"].ToString() == "133927").CopyToDataTable(); | 
|                         DataTable dt = ds.Tables[0].AsEnumerable().Where<DataRow>(W => W["HMaterID"].ToString() == ds0.Tables[0].Rows[0]["HMaterID"].ToString()).CopyToDataTable(); //判断当前数据(一条或多条)中最终判定是否有合格 | 
|                         if (dt == null || dt.Rows.Count == 0) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "条码无效,不存在于用料清单中!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         else  | 
|                         { | 
|                             objJsonResult.code = "1"; | 
|                             objJsonResult.count = 1; | 
|                             objJsonResult.Message = "获取用料清单数据成功!"; | 
|                             objJsonResult.Verify = "用料清单物料条码"; | 
|                             objJsonResult.data = dt; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                     else  | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "当前生产订单无用料清单记录!"; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|             } | 
|             else | 
|             { | 
|                 string sBarBillName = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSourceName"]); | 
|                 string sBarBillType = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0]["BarCodeType"]); | 
|   | 
|                 //判断条码类型为 基础资料条码 或 源单条码 | 
|                 if (sBarBillType == "基础资料条码") | 
|                 { | 
|          | 
|                     //部门条码 | 
|                     if (sBarBillName == "生产资源") | 
|                     { | 
|                         //DAL.ClsGy_Source_View dal = new DAL.ClsGy_Source_View(); | 
|                          | 
|                         //将递入的条码去掉前三位后转化成整形 | 
|                         int ID; | 
|                         if (int.TryParse(HBarCode.Remove(0, 3), out ID)) | 
|                         { | 
|                             if (int.Parse(HSourceID)!= ID) | 
|                             { | 
|                                 objJsonResult.code = "0"; | 
|                                 objJsonResult.count = 0; | 
|                                 objJsonResult.Message = "生产资源条码与生产订单绑定资源不匹配!"; | 
|                                 return objJsonResult; | 
|                             } | 
|                             else | 
|                             { | 
|                                 ds = oCN.RunProcReturn("Select * from Gy_Source Where HItemID='" + ID + "'", "Gy_Source"); | 
|                                 if(ds.Tables[0].Rows.Count>0)    //if (dal.GetInfoByID(ID)) | 
|                                 { | 
|                                     objJsonResult.code = "1"; | 
|                                     objJsonResult.count = 1; | 
|                                     objJsonResult.Message = "获取资源绑定数据成功!"; | 
|                                     objJsonResult.Verify = "资源条码"; | 
|                                     objJsonResult.data = ds; | 
|                                     return objJsonResult; | 
|                                 } | 
|                                 else | 
|                                 { | 
|                                     objJsonResult.code = "0"; | 
|                                     objJsonResult.count = 0; | 
|                                     objJsonResult.Message = "无效资源条码!"; | 
|                                     return objJsonResult; | 
|                                 } | 
|                             } | 
|                         } | 
|                         else | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "错误的资源条码!"; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                     else | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "无效基础资料条码!"; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|                 //源单条码 | 
|                 else if (sBarBillType == "源单条码") | 
|                 { | 
|                      | 
|                      | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无效条码类型!"; | 
|                     return objJsonResult; | 
|                 } | 
|             } | 
|             return objJsonResult; | 
|         } | 
|         #endregion | 
|   | 
|         #region 报工台上料防错保存 | 
|         /// <summary> | 
|         /// 保存模具维修单 | 
|         /// </summary> | 
|         /// <param name="msg"></param> | 
|         /// <returns></returns> | 
|         [Route("Sc_MaterToSourceBill/SaveGetMaterToSourceFrom")] | 
|         [HttpPost] | 
|         public object SaveGetMaterToSourceFrom([FromBody] JObject msg) | 
|         { | 
|             var _value = msg["msg"].ToString(); | 
|             string msg1 = _value.ToString(); | 
|             string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|             string msg2 = sArray[0].ToString(); | 
|             string msg3 = sArray[1].ToString(); | 
|             string refSav = sArray[2].ToString(); | 
|   | 
|             //保存权限 | 
|             //if (!DBUtility.ClsPub.Security_Log("MES_MaterToSourceBill_Edit", 1, false, DBUtility.ClsPub.CurUserName)) | 
|             //{ | 
|             //    objJsonResult.code = "0"; | 
|             //    objJsonResult.count = 0; | 
|             //    objJsonResult.Message = "无保存权限!"; | 
|             //    objJsonResult.data = null; | 
|             //    return objJsonResult; | 
|             //} | 
|   | 
|             //判断会计期是否合理 | 
|             string s = ""; | 
|             int sYear = 0; | 
|             int sPeriod = 0; | 
|             if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(DateTime.Now, ref sYear, ref sPeriod, ref s) == false) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = s; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|   | 
|             string UserName = ""; | 
|             ListModels oListModels = new ListModels(); | 
|             try | 
|             { | 
|                 //表头数据实例化 | 
|                 DAL.ClsSc_MESMaterToSourceBill oBill = new DAL.ClsSc_MESMaterToSourceBill(); | 
|                 List<Model.ClsSc_MaterToSourceBillMain> lsmain = new List<Model.ClsSc_MaterToSourceBillMain>(); | 
|                 msg2 = msg2.Replace("\\", ""); | 
|                 msg2 = msg2.Replace("\n", "");  //\n | 
|                 lsmain = oListModels.getObjectByJson_Sc_MaterToSourceBillMain(msg2); | 
|   | 
|                 //配料记录表体数据实例化 | 
|                 //按 },{来拆分数组 //去掉【和】 | 
|                 msg3 = msg3.Substring(1, msg3.Length - 2); | 
|                 msg3 = msg3.Replace("\\", ""); | 
|                 msg3 = msg3.Replace("\n", "");  //\n | 
|                 //msg2 = msg2.Replace("'", "’"); | 
|                 List<Model.ClsSc_MaterToSourceBillSub> ls = new List<Model.ClsSc_MaterToSourceBillSub>(); | 
|                 ls = oListModels.getObjectByJson_Sc_MaterToSourceBillSub(msg3); | 
|   | 
|                 //配件项表体数据实例化 | 
|   | 
|                 foreach (Model.ClsSc_MaterToSourceBillMain oItem in lsmain) | 
|                 { | 
|                     if (refSav == "Add") | 
|                     { | 
|                         //单据号是否重复 | 
|                         if (BillNew.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID)) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据号重复!不允许保存!"; | 
|                             objJsonResult.data = 1; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                     if (refSav == "Update") | 
|                     { | 
|                         if (BillOld.ShowBill(oItem.HInterID, ref s) == false) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "此单据有误!"; | 
|                             objJsonResult.data = 1; | 
|                             return objJsonResult; | 
|                         } | 
|                         //判断是否可编辑 | 
|                         if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "此单据已经被审核,不允许修改!"; | 
|                             objJsonResult.data = 1; | 
|                             return objJsonResult; | 
|                         } | 
|                         if (BillOld.omodel.HBillStatus > 1) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!"; | 
|                             objJsonResult.data = 1; | 
|                             return objJsonResult; | 
|                         } | 
|                         if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s)) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = s + ",不允许修改"; | 
|                             objJsonResult.data = 1; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|   | 
|                     UserName = oItem.HMaker;  //制单人 | 
|                     DBUtility.ClsPub.CurUserName = UserName; | 
|                     oItem.HBillType = "3786"; | 
|                     oItem.HBillSubType = "3786"; | 
|   | 
|                     oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));//  --日期 | 
|                     oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); | 
|                     oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month); | 
|                     oItem.HProcExchBillNo = ""; //流转卡号 | 
|                     oItem.HProcExchInterID = 0; //流转卡主内码 | 
|                     oItem.HProcExchEntryID = 0; //流转卡子内码 | 
|                     oItem.HProcID = 0;          //工序ID | 
|                     oItem.HMainSourceBillNo =oItem.HSourceBillNo; | 
|                     oItem.HMainSourceBillType = oItem.HSourceBillType; | 
|                     oItem.HMainSourceInterID = oItem.HSourceInterID; | 
|                     oItem.HMainSourceEntryID = oItem.HSourceEntryID; | 
|   | 
|   | 
|                     if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "保存失败!没有单据日期,无法保存!"; | 
|                         objJsonResult.data = 1; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     //循环配料信息子表 | 
|                     int i = 0; | 
|                     foreach (Model.ClsSc_MaterToSourceBillSub oItemSub in ls) | 
|                     { | 
|   | 
|                         i++; | 
|                         oItemSub.HEntryID = i; | 
|                         //oItemSub.HCloseMan = "";       //行关闭 | 
|                         oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); | 
|                         oItemSub.HCloseType = false;   //关闭类型 | 
|                                                        //oItemSub.HRemark = "";         //备注 | 
|                         oItemSub.HSourceInterID = 0;     // 源单主内码 | 
|                         oItemSub.HSourceEntryID = 0;   //源单子内码 | 
|                                                        //oItemSub.HSourceBillNo = "";  //源单单号 | 
|                                                        //oItemSub.HSourceBillType = ""; //源单类型 | 
|                         oItemSub.HRelationQty = 0;     //关联数量 | 
|                         oItemSub.HScanDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//  --扫码时间 | 
|                         oItemSub.HSourceBillNo = oItem.HSourceBillNo; | 
|                         oItemSub.HSourceBillType = oItem.HSourceBillType; | 
|                         oItemSub.HSourceInterID = oItem.HSourceInterID; | 
|                         oItemSub.HSourceEntryID = oItem.HSourceEntryID; | 
|                         oBill.DetailColl.Add(oItemSub); | 
|   | 
|                     } | 
|                     oBill.omodel = oItem; | 
|                 } | 
|                | 
|   | 
|                 //保存 | 
|                 //保存完毕后处理 | 
|                 bool bResult; | 
|                 if (oBill.omodel.HInterID == 0) | 
|                 { | 
|                     bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); | 
|                     if (bResult) | 
|                     { | 
|                         objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID | 
|                         //系统参数  自动审核 | 
|                         string sReturn = ""; | 
|                         if (oSystemParameter.ShowBill(ref sReturn) == true) | 
|                         { | 
|                             if (oSystemParameter.omodel.Sc_MaterToSourceBill_AutoCheck == "Y") //系统参数  自动审核  | 
|                             { | 
|                                 objJsonResult.Verify = "Y"; | 
|                             } | 
|                             else | 
|                             { | 
|                                 objJsonResult.Verify = "N"; | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|                 else | 
|                 { | 
|                     bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                     objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID | 
|                     objJsonResult.Verify = "N"; | 
|                 } | 
|                 if (bResult) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "保存成功!"; | 
|                     //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单"); | 
|                     objJsonResult.data = 1; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo; | 
|                     objJsonResult.data = 1; | 
|                     return objJsonResult; | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "保存失败!" + e.ToString(); | 
|                 objJsonResult.data = 1; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region [报工平台上料防错单审核、反审核] | 
|         /// <summary> | 
|         ///  | 
|         /// </summary> | 
|         /// <param name="HInterID">单据ID</param> | 
|         /// <param name="IsAudit">审核(0),反审核(1)</param> | 
|         /// <param name="CurUserName">审核人</param> | 
|         /// <returns></returns> | 
|         [Route("Sc_MaterToSourceBill/AuditProcessReportList")] | 
|         [HttpGet] | 
|         public object AuditProcessReportList(int HInterID, int IsAudit, string CurUserName) | 
|         { | 
|             string ModRightNameCheck = "MES_MaterToSourceBill_Check"; | 
|             DBUtility.ClsPub.CurUserName = CurUserName; | 
|             try | 
|             { | 
|                 //审核权限 | 
|                 //if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName)) | 
|                 //{ | 
|                 //    objJsonResult.code = "0"; | 
|                 //    objJsonResult.count = 0; | 
|                 //    objJsonResult.Message = "审核失败!无权限!"; | 
|                 //    objJsonResult.data = null; | 
|                 //    return objJsonResult; | 
|                 //} | 
|                 if (HInterID <= 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "HInterID小于0!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 Int64 lngBillKey = 0; | 
|                 lngBillKey = DBUtility.ClsPub.isLong(HInterID); | 
|                 DAL.ClsSc_MESMaterToSourceBill oBill = new DAL.ClsSc_MESMaterToSourceBill(); | 
|                 //查看是否已审核,关闭,作废 | 
|                 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                 { | 
|                     if (oBill.omodel.HCloseMan.Trim() != "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据已关闭!不能再次审核!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (oBill.omodel.HDeleteMan.Trim() != "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据已作废!不能再次审核!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (IsAudit == 0)  //审核判断 | 
|                     { | 
|                         if (oBill.omodel.HChecker.Trim() != "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据已审核!不能再次审核!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                     if (IsAudit == 1) //反审核判断 | 
|                     { | 
|                         if (oBill.omodel.HChecker.Trim() == "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据未审核!不需要反审核!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 if (IsAudit == 0) //审核提交 | 
|                 { | 
|                     //审核提交 | 
|                     if (oBill.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
|                     { | 
|                         objJsonResult.code = "1"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "审核成功"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     else | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|                 if (IsAudit == 1) //反审核提交 | 
|                 { | 
|                     //反审核提交AbandonCheck | 
|                     if (oBill.AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
|                     { | 
|                         objJsonResult.code = "1"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "反审核成功"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     else | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|     } | 
| } |