| using Newtonsoft.Json.Linq; | 
| using Pub_Class; | 
| using System; | 
| using System.Collections; | 
| using System.Collections.Generic; | 
| using System.Data; | 
| using System.Data.SqlClient; | 
| using System.Web.Http; | 
| using WebAPI.Models; | 
| using Newtonsoft.Json; | 
| using DBUtility; | 
|   | 
| namespace WebAPI.Controllers.SCGL | 
| { | 
|     public class Sc_ComplementGoodBillController : ApiController | 
|     { | 
|         private json objJsonResult = new json(); | 
|         public DataSet ds = new DataSet(); | 
|         public WebServer webserver = new WebServer(); | 
|         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
|         public ClsXt_BaseBillMain omodel = new ClsXt_BaseBillMain(); | 
|         public JIT_CallGoodsBillSub oSub = new JIT_CallGoodsBillSub(); | 
|   | 
|         #region 生产叫料平台列表 | 
|   | 
|         //创建临时类 查询条件子段 | 
|         public class ComplementGoodBill | 
|         { | 
|             public string HSeOrderBillNo { get; set; }//销售订单 | 
|             public string DepartmentName { get; set; }//生产车间 | 
|             public string Organization { get; set; }//组织 | 
|             public string MaterialNumber { get; set; }//物料代码 | 
|             public string MaterialName { get; set; }//物料名称 | 
|             public string MaterialModel { get; set; }//规格型号 | 
|             public string CPNumber { get; set; }//产品代码 | 
|             public string CPName { get; set; }//产品名称 | 
|             public string CPModel { get; set; }//规格型号 | 
|             public string HICMOBillNo { get; set; }//生产订单号 | 
|             public DateTime HBeginDate { get; set; }//开始时间 | 
|             public DateTime HEndDate { get; set; }//结束时间 | 
|             public int ps { get; set; }//仅显示未完全配送 | 
|             public string user { get; set; }//当前登录人 | 
|             public string Arbitrarily { get; set; }//任意参数 | 
|         } | 
|   | 
|         [Route("Sc_ComplementGoodBill/ComplementGoodBillList")] | 
|         [HttpGet] | 
|         public object ComplementGoodBillList(string sWhere, string user) | 
|         { | 
|             try | 
|             { | 
|                 //查看权限 | 
|                 if (!DBUtility.ClsPub.Security_Log("JIT_ComplementGoodBillMain_Query", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无查看权限!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 if (sWhere == null || sWhere.Equals("")) | 
|                 { | 
|                     objJsonResult.code = "1"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "Sucess!"; | 
|                     objJsonResult.data = new DataTable(); | 
|                     return objJsonResult; | 
|                 } | 
|                 //反序列化传递的值 | 
|                 ComplementGoodBill com = JsonConvert.DeserializeObject<ComplementGoodBill>(sWhere.ToString()); | 
|   | 
|                 ds = oCN.RunProcReturn($"exec h_p_JIT_CallGoodsPlatForm_Query '{com.HSeOrderBillNo}','{com.DepartmentName}','{com.MaterialNumber}','{com.MaterialName}'," + | 
|                     $"'{com.MaterialModel}','{com.HICMOBillNo}','{com.CPNumber}','{com.CPName}','{com.CPModel}'," + | 
|                     $"{com.ps},{com.Organization},'{com.user}' ", "h_p_JIT_CallGoodsPlatForm_Query"); | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "Sucess!"; | 
|                 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 生产叫料平台  叫料新增 | 
|   | 
|         //临时表  叫料单据字段 | 
|         public class CallGoodsBill | 
|         { | 
|             public static readonly string ModName = "4601"; | 
|             public long HSouceInterID = 0;//HSourceInterIDCol | 
|             public long HSourceEntryID = 0;//HSourceEntryIDCol | 
|             public int? 叫料数量 = 0;//HBHGQtyCol | 
|             public int? 配套数量 = 0; | 
|             public int? 已叫料数量 = 0;//HBHGQtyCol | 
|             public int? 已配送数量 = 0;//HBHGQtyCol | 
|             public double? 退料数量 = 0;//退料数量 | 
|             public long HSTOCKID = 0;//HSTOCKID | 
|             public string 退料原因 { get; set; }//退料原因 | 
|             public int HMaterialID = 0; //HMaterialIDCol | 
|             public string 物料代码 = "";  | 
|             public string HSourceBillNo { get; set; }//HSourceBillNoCol | 
|             public int 调出仓库可用库存数量 = 0;//HKFQtyKYCol | 
|             public int 调出仓库库存数量 = 0;//HKFQtySCol | 
|             public double 计划发料数量 = 0;//HPlanQtyCol  | 
|             public int HWHID = 0;//HWHIDCol | 
|             public int? 调出仓库id = 0;//调出仓库id | 
|             public int? 调入仓库id = 0;//调入仓库id | 
|             public string HMaterialNumberCol { get; set; } | 
|             public string HMaterialModelCol { get; set; } | 
|             public string HProcID { get; set; }//HProcIDCol | 
|             public string HProcNameCol { get; set; }//工段 | 
|             public int HOutOrgID = 0;//HOutOrgID | 
|             public string HICMOBillNo { get; set; }// HICMOBillNoCol | 
|             public long HICMOInterID = 0;// HICMOInterIDCol | 
|             public long HICMOEntryID = 0;// HICMOEntryIDCol | 
|             public long HDeptID = 0;//HDeptID | 
|             public long 库存数量 = 0; | 
|             public double HBHGQtyCol = 0; | 
|             public string 销售订单号 { get; set; }//HSeOrderNOCol | 
|             public DateTime? 计划开工日期 = null;//HBPlanDateCol | 
|         } | 
|   | 
|         //临时表  叫料子表 | 
|         public class JIT_CallGoodsBillSub: ClsXt_BaseBillSub | 
|         { | 
|             public double HQty; | 
|             public long HMaterID; | 
|             public string HMaterNumber; | 
|             public string HProcName; | 
|             public string HModel; | 
|             public string HProcID; | 
|             public string HICMOBillNo; | 
|             public string HSeOrderNOCol; | 
|             public string HSeOrderNo; | 
|             public string HSeOrderBillNo; | 
|             public int HWHID = 0; | 
|             public int HSCWHID = 0; | 
|             public long HOutOrgID = 0; | 
|             public long HICMOInterID = 0; | 
|             public long HICMOEntryID = 0; | 
|             public long HSeOrderInterID = 0; | 
|             public long HSeOrderEntryID = 0; | 
|             public long HDeptID = 0; | 
|             public double HPlanQty = 0; | 
|             public int HSPID = 0; | 
|             public DateTime? HBPlanDate = null; | 
|         } | 
|   | 
|         [Route("Sc_ComplementGoodBill/InsertCallGoodsBill")] | 
|         [HttpPost] | 
|         public object InsertCallGoodsBill([FromBody] JObject msg) | 
|         { | 
|             var _value = msg["msg"].ToString(); | 
|             string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|             string msg2 = sArray[0].ToString(); | 
|             string user = sArray[1].ToString(); | 
|             omodel.HPRDORGID = long.Parse(sArray[2].ToString()); | 
|   | 
|             try | 
|             { | 
|                 if (!DBUtility.ClsPub.Security_Log("Cj_CallGoodsBill_Edit", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无保存权限"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 msg2 = msg2.Replace("\\", ""); | 
|                 msg2 = msg2.Replace("\n", ""); | 
|   | 
|                 List<CallGoodsBill> listCa = new List<CallGoodsBill>(); | 
|                 //获取表格数据集合 | 
|                 listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString()); | 
|   | 
|                 int j = 0; | 
|                 var flag = false; | 
|                 var txt = ""; | 
|   | 
|                 for (int i = 0; i < listCa.Count; i++) | 
|                 { | 
|                     if (listCa[i].HMaterialID != 0 && listCa[i].叫料数量 > 0) | 
|                     { | 
|                         var Hqty = 0.0; | 
|                         var TuiHqty = 0.0; | 
|                         //当前单据已叫料 和 已退料数量 | 
|                         ds = oCN.RunProcReturn($@" | 
|                                                select isnull(a.HQty,0) 已叫料数量,isnull(b.HQty,0) 已退料申请数量 from ( | 
|                                                 select sum(b.HQty) HQty,c.HNumber ,b.HSourceBillNo | 
|                                                 from JIT_CallGoodsBillMain a | 
|                                                 join JIT_CallGoodsBillSub b on a.HInterID=b.HInterID | 
|                                                 left join Gy_Material c on b.HMaterID=c.HItemID | 
|                                                 where b.HSourceBillNo='{listCa[i].HSourceBillNo}' | 
|                                                 group by c.HNumber,b.HSourceBillNo | 
|                                                 ) a | 
|                                                 left join ( | 
|                                                 select sum(b.HQty) HQty,c.HNumber,b.HSourceBillNo | 
|                                                 from JIT_CallGoodsBackRequestBillMain a | 
|                                                 inner join JIT_CallGoodsBackRequestBillSub b on a.HInterID=b.HInterID | 
|                                                 left join Gy_Material c on b.HMaterID=c.HItemID | 
|                                                 where b.HSourceBillNo='{listCa[i].HSourceBillNo}' | 
|                                                 group by c.HNumber,b.HSourceBillNo | 
|                                                 ) b  on a.HNumber=b.HNumber and a.HSourceBillNo=b.HSourceBillNo where a.HNumber='{listCa[i].物料代码}'", "JIT_CallGoodsBillMain"); | 
|   | 
|                         if (ds.Tables[0].Rows.Count > 0) | 
|                         { | 
|                             Hqty = double.Parse(ds.Tables[0].Rows[0]["已叫料数量"].ToString()); | 
|                             TuiHqty = double.Parse(ds.Tables[0].Rows[0]["已退料申请数量"].ToString()); | 
|                         } | 
|   | 
|                         if (listCa[i].叫料数量 > listCa[i].计划发料数量) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = $"第{(i + 1)}行叫料数量大于计划发料数量!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|   | 
|                         if((listCa[i].叫料数量 + Hqty - TuiHqty)> listCa[i].计划发料数量) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = $"第{(i + 1)}行叫料总数量大于计划发料数量!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|   | 
|                         ds = oCN.RunProcReturn("select * from h_v_JIT_WarehouseList where 仓库ID=" + listCa[i].调出仓库id + "  and  物料编码 = '" + listCa[i].物料代码 + "' and 库存组织=" + listCa[i].HOutOrgID, "h_v_JIT_WarehouseList"); | 
|   | 
|                         var HSCWHIDCount= double.Parse(ds.Tables[0].Rows[0]["调出仓库可用库存数量"].ToString()); | 
|   | 
|                         if (HSCWHIDCount == 0 && listCa[i].叫料数量 > 0) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = $"第{(i + 1)}行库存数量为0,无法叫料!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|   | 
|                         if (listCa[i].叫料数量 > HSCWHIDCount) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = $"第{(i + 1)}行库存数量小于叫料数量,无法叫料!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|   | 
|                         if (listCa[i].叫料数量 > 0 && listCa[i].调入仓库id == 0) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = $"第{(i + 1)}行请选择调入仓库!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|   | 
|                         if (listCa[i].叫料数量 > 0 && listCa[i].调出仓库id == 0) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = $"第{(i + 1)}行请选择调出仓库!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|   | 
|                         if (listCa[i].调出仓库id == listCa[i].调入仓库id) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = $"第{(i + 1)}行调出仓库和调入仓库不能一样!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|   | 
|                         j = 1; | 
|   | 
|                         var txtHBillNo = DBUtility.ClsPub.CreateBillCode_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号 | 
|                         omodel.HInterID = DBUtility.ClsPub.CreateBillID_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                         omodel.HYear = DateTime.Now.Year; | 
|                         omodel.HPeriod = DateTime.Now.Month; | 
|                         //固定赋值================================= | 
|                         omodel.HBillNo = txtHBillNo.Trim();  //在赋值类前就处理好字符串和数字 | 
|                         omodel.HDate = DateTime.Now; | 
|                         omodel.HMaker = user; | 
|                         omodel.HMakeDate = DateTime.Today.ToString(); | 
|                         omodel.HUpDater = ""; | 
|                         omodel.HUpDateDate = ""; | 
|                         omodel.HCloseType = false; | 
|                         //明细类赋值 | 
|   | 
|                         //固定赋值======================================== | 
|                         oSub.HEntryID = i + 1; | 
|                         oSub.HSourceInterID =listCa[i].HSouceInterID; | 
|                         oSub.HSourceEntryID = listCa[i].HSourceEntryID; | 
|                         oSub.HSourceBillType = "88"; | 
|                         oSub.HSourceBillNo = listCa[i].HSourceBillNo; | 
|                         oSub.HQty =double.Parse(listCa[i].叫料数量.ToString()); | 
|   | 
|                         oSub.HMaterID = listCa[i].HMaterialID; | 
|                         oSub.HMaterNumber = listCa[i].HMaterialNumberCol;  | 
|                         oSub.HModel = listCa[i].HMaterialModelCol; | 
|                         oSub.HWHID = int.Parse(listCa[i].调入仓库id.ToString()); | 
|                         oSub.HSCWHID = int.Parse(listCa[i].调出仓库id.ToString()); | 
|                         oSub.HProcName = listCa[i].HProcNameCol;  | 
|                         oSub.HProcID = listCa[i].HProcID; | 
|                         oSub.HOutOrgID = listCa[i].HOutOrgID; | 
|                         oSub.HICMOBillNo = listCa[i].HICMOBillNo; | 
|                         oSub.HICMOInterID = listCa[i].HICMOInterID; | 
|                         oSub.HICMOEntryID = listCa[i].HICMOEntryID;  | 
|                         oSub.HDeptID = listCa[i].HDeptID;  | 
|                         oSub.HPlanQty = listCa[i].计划发料数量; | 
|                         oSub.HSeOrderNo = listCa[i].销售订单号;  | 
|                         oSub.HBPlanDate = listCa[i].计划开工日期; | 
|   | 
|   | 
|                         flag = AddBill(ref DBUtility.ClsPub.sExeReturnInfo); | 
|   | 
|                         if (flag == false) | 
|                         { | 
|                             txt = txt + DBUtility.ClsPub.isStrNull(i + 1) + "、"; | 
|                         } | 
|                     } | 
|                 } | 
|                 if (txt != "") | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = $"第{txt}行叫料失败,重新叫料"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|                     if (flag == true) | 
|                     { | 
|                         objJsonResult.code = "1"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "叫料成功!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|                 if (j == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无任何叫料数量或叫料数量小于0,无法叫料!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = null; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|   | 
|         //新增单据 | 
|         public bool AddBill(ref string sReturn) | 
|         { | 
|             try | 
|             { | 
|                 //插入子表 | 
|                 oCN.RunProc("Insert into JIT_CallGoodsBillSub " + | 
|                       " (HInterID,HEntryID,HRemark" + | 
|                       ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" + | 
|                       ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo,HICMOInterID,HICMOEntryID,HICMOBillNo" + | 
|                       ",HDeptID,HMaterID,HQty,HProcID,HWHID,HSCWHID,HSPID,HBillNo_bak,HOutOrgID,HStockOutOrgID,HStockInOrgID" + | 
|                       ") values(" | 
|                       + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + oSub.HRemark + "'" + | 
|                       "," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() + | 
|                       "," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'," + oSub.HICMOInterID.ToString() + "," + oSub.HICMOEntryID.ToString() + ",'" + oSub.HICMOBillNo + "'" + | 
|                       "," + oSub.HDeptID.ToString() + "," + oSub.HMaterID.ToString() + "," + oSub.HQty.ToString() + ",'" + oSub.HProcID + "'," + oSub.HWHID.ToString() + ", " + oSub.HSCWHID.ToString()+"," + oSub.HSPID.ToString() +",'',"+oSub.HOutOrgID+ ","+oSub.HOutOrgID+ "," + omodel.HPRDORGID +") ", ref DBUtility.ClsPub.sExeReturnInfo); | 
|   | 
|                 //主表 | 
|   | 
|                 oCN.RunProc("Insert Into JIT_CallGoodsBillMain   " + | 
|                 "(HBillType,HBillSubType,HInterID,HBillNo,HDate" + | 
|                 ",HYear,HPeriod,HRemark,HMaker,HMakeDate" + | 
|                 ",HBillStatus,HCheckItemNowID,HCheckItemNextID,HCheckFlowID" + | 
|                 ",HMainSourceBillType,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo" + | 
|                 ",HBacker,HBackDate,HBackRemark,HChecker,HCheckDate,HUpDater,HUpDateDate " + | 
|                 ",HCloseMan,HCloseDate,HCloseType,HDeleteMan,HDeleteDate " + | 
|                 ",HPrintQty,HCallManID,HSendManID,HCallType,HWareManID,HOrgID) " + | 
|                 " values('" + CallGoodsBill.ModName + "','" + CallGoodsBill.ModName + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "'" + | 
|                 ", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HMaker + "',getdate()" + | 
|                 ",'" + omodel.HBillStatus + "'," + omodel.HCheckItemNowID.ToString() + "," + omodel.HCheckItemNextID.ToString() + ", " + omodel.HCheckFlowID.ToString() + | 
|                 ",'" + omodel.HMainSourceBillType + "'," + omodel.HMainSourceInterID.ToString() + "," + omodel.HMainSourceEntryID.ToString() + ", '" + omodel.HMainSourceBillNo + "'" + | 
|                 ",'" + omodel.HBacker + "','" + omodel.HBackDate + "','" + omodel.HBackRemark + "', '" + omodel.HChecker + "','" + omodel.HCheckDate + "', '" + omodel.HUpDater + "',''" + | 
|                 ",'" + omodel.HCloseMan + "','" + omodel.HCloseDate + "','" + omodel.HCloseType + "', '" + omodel.HDeleteMan + "','" + omodel.HDeleteDate + "'" + | 
|                 ",0,0,0,'普通',0," + omodel.HPRDORGID + ") ", ref DBUtility.ClsPub.sExeReturnInfo); | 
|   | 
|                 sReturn = "新增单据成功!"; | 
|                 //oCn.Commit(); | 
|                 return true; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 sReturn = e.Message; | 
|                 oCN.RollBack(); | 
|                 throw (e); | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 生产叫料平台  不良品退料申请单新增 | 
|         [Route("Sc_ComplementGoodBill/Insert_BLP_ICStockTuiBill")] | 
|         [HttpPost] | 
|         public object Insert_BLP_ICStockTuiBill([FromBody] JObject msg) | 
|         { | 
|             var _value = msg["msg"].ToString(); | 
|             string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|             string msg2 = sArray[0].ToString(); | 
|             DBUtility.ClsPub.CurUserName = sArray[1].ToString(); | 
|             string HOrgID = sArray[2].ToString(); | 
|             json flag =new json(); | 
|   | 
|             try | 
|             { | 
|                 if (!DBUtility.ClsPub.Security_Log("JIT_BLP_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无保存权限"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 msg2 = msg2.Replace("\\", ""); | 
|                 msg2 = msg2.Replace("\n", ""); | 
|   | 
|                 List<CallGoodsBill> listCa = new List<CallGoodsBill>(); | 
|                 //获取表格数据集合 | 
|                 listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString()); | 
|   | 
|                 int j=0; | 
|                 for (int i = 0; i < listCa.Count; i++) | 
|                 { | 
|                     if (listCa[i].退料数量 > 0) | 
|                     { | 
|                         flag = (json)AddICStockTuiBill(listCa[i], "666601", "不良品退料", HOrgID); | 
|                         j = 1; | 
|   | 
|                         if (flag.code == "0") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = objJsonResult.Message; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|                 if (j == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无任何退料数量或退料数量小于0,无法退料!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "不良品退料成功!"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|   | 
|         //新增 | 
|         public object AddICStockTuiBill(CallGoodsBill listCa,string HBillType,string HBackType,string HOrgID) | 
|         { | 
|             try | 
|             { | 
|                | 
|   | 
|                 if (listCa.退料数量 > listCa.已配送数量 && listCa.已配送数量 > 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "退料数量大于已配送数量!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 if (listCa.调入仓库id == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "请选择调入仓库!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 if (listCa.调出仓库id == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "请选择调出仓库!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 var THqty = 0.0; | 
|                 ds = oCN.RunProcReturn($@" | 
|                                     select sum(b.HQty) HQty,c.HNumber,b.HSourceBillNo | 
|                                     from JIT_CallGoodsBackRequestBillMain a | 
|                                     inner join JIT_CallGoodsBackRequestBillSub b on a.HInterID=b.HInterID | 
|                                     left join Gy_Material c on b.HMaterID=c.HItemID | 
|                                     where c.HNumber='{listCa.物料代码}' and b.HSourceBillNo='{listCa.HSourceBillNo}' | 
|                                     group by c.HNumber,b.HSourceBillNo | 
|                                   ", "JIT_CallGoodsBackRequestBillMain"); | 
|   | 
|                 if (ds.Tables[0].Rows.Count > 0) | 
|                 { | 
|                     THqty = double.Parse(ds.Tables[0].Rows[0]["HQty"].ToString()); | 
|                 } | 
|   | 
|                 if ((listCa.退料数量 + THqty) > listCa.已配送数量) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "累计退料数量大于已配送数量!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 Int64 lngBillKey = listCa.HSouceInterID == 0 ? 0 : listCa.HSouceInterID; | 
|                 Int64 lngBillKeyEntry = listCa.HSourceEntryID == 0 ? 0 : listCa.HSourceEntryID; | 
|                 double HQty = (double)(listCa.退料数量 == 0 ? 0 : listCa.退料数量); | 
|                 long HDeptWHID = int.Parse(listCa.调入仓库id.ToString()) == 0 ? 0 : int.Parse(listCa.调入仓库id.ToString()); | 
|                 string HTuiResult = listCa.退料原因 == "" ? "" : listCa.退料原因; | 
|                 var HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号 | 
|                 var HBillInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo); | 
|   | 
|                 oCN.BeginTran(); | 
|                 //插入子表 | 
|                 oCN.RunProc("Insert into JIT_CallGoodsBackRequestBillSub ( HInterID,HEntryID,HSourceInterID,HSourceEntryID," + | 
|                         "HSourceBillNo,HSourceBillType, HMaterID, HQty, HSCWHID," + | 
|                         " HWHID, HSPID, HResult, HDeptID, HProcID,HBackReason) " + | 
|                         $"values({HBillInterID},1,{lngBillKey},{ lngBillKeyEntry}," + | 
|                         $"'{listCa.HSourceBillNo}',88,{listCa.HMaterialID},{HQty},{(listCa.调出仓库id==null?0:listCa.调出仓库id)}," + | 
|                         $"{HDeptWHID},'','',{listCa.HDeptID},'','{HTuiResult}')"); | 
|   | 
|                     //插入主表 | 
|                     oCN.RunProc("insert into JIT_CallGoodsBackRequestBillMain(HYear,HPeriod,HInterid,HBillSubType,HBillStatus," + | 
|                         "HBillType,HDate,HBillNo,HOrgID,HMaker,HMakeDate,HRemark,HBackRemark,HMainSourceBillType , HMainSourceInterID, HMainSourceEntryID, HMainSourceBillNo," + | 
|                         " HItemMainID, HSendManID, HWareManID, HStockOutOrgID, HStockInOrgID, HBackType)" + | 
|                        $"values({DateTime.Now.Year},{DateTime.Now.Month},{HBillInterID},'{HBillType}',1," + | 
|                        $" '{HBillType}','{DateTime.Now}','{HBillNo}',{HOrgID},'{ DBUtility.ClsPub.CurUserName}','{DateTime.Now}','','',0,0,0,''," + | 
|                        $" 0, 0, {listCa.HOutOrgID}, {HOrgID}, 0,'{HBackType}')"); | 
|                   | 
|                 oCN.Commit(); | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.Message = "新增单据成功!"; | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.Message = e.Message; ; | 
|                 return objJsonResult; | 
|                 throw (e); | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 生产叫料平台  余量退料申请单新增 | 
|         [Route("Sc_ComplementGoodBill/Insert_YL_ICStockTuiBill")] | 
|         [HttpPost] | 
|         public object Insert_YL_ICStockTuiBill([FromBody] JObject msg) | 
|         { | 
|             var _value = msg["msg"].ToString(); | 
|             string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|             string msg2 = sArray[0].ToString(); | 
|             DBUtility.ClsPub.CurUserName = sArray[1].ToString(); | 
|             string HOrgID = sArray[2].ToString(); | 
|   | 
|             try | 
|             { | 
|                 if (!DBUtility.ClsPub.Security_Log("JIT_YL_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无保存权限"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 msg2 = msg2.Replace("\\", ""); | 
|                 msg2 = msg2.Replace("\n", ""); | 
|   | 
|                 List<CallGoodsBill> listCa = new List<CallGoodsBill>(); | 
|                 //获取表格数据集合 | 
|                 listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString()); | 
|                 json flag = new json(); | 
|   | 
|                 int j = 0; | 
|                 for (int i = 0; i < listCa.Count; i++) | 
|                 { | 
|                     if (listCa[i].退料数量 > 0) | 
|                     { | 
|                         flag =(json)AddICStockTuiBill(listCa[i], "666602", " 余量退料", HOrgID); | 
|                         j = 1; | 
|                         if (flag.code == "0") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = objJsonResult.Message; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|                 if (j == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无任何退料数量,无法退料!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "余量退料成功!"; | 
|                 objJsonResult.data = null; | 
|                 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_ComplementGoodBill/Insert_BF_ICStockTuiBill")] | 
|         [HttpPost] | 
|         public object Insert_BF_ICStockTuiBill([FromBody] JObject msg) | 
|         { | 
|             var _value = msg["msg"].ToString(); | 
|             string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|             string msg2 = sArray[0].ToString(); | 
|             DBUtility.ClsPub.CurUserName = sArray[1].ToString(); | 
|             string HOrgID = sArray[2].ToString(); | 
|   | 
|             try | 
|             { | 
|                 if (!DBUtility.ClsPub.Security_Log("JIT_BF_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无保存权限"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 msg2 = msg2.Replace("\\", ""); | 
|                 msg2 = msg2.Replace("\n", ""); | 
|   | 
|                 List<CallGoodsBill> listCa = new List<CallGoodsBill>(); | 
|                 //获取表格数据集合 | 
|                 listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString()); | 
|   | 
|                 json flag = new json(); | 
|                 int j = 0; | 
|                 for (int i = 0; i < listCa.Count; i++) | 
|                 { | 
|                     if (listCa[i].退料数量 > 0) | 
|                     { | 
|                         flag =(json) AddICStockTuiBill(listCa[i], "666603", "报废退料", HOrgID); | 
|                         j = 1; | 
|                         if (flag.code == "0") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = objJsonResult.Message; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|                 if (j == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无任何退料数量,无法退料!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "报废退料成功!"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 生产叫料平台  叫料拣料信息查询  上查/下查 | 
|         //查询条件 | 
|         public class HlpBill | 
|         { | 
|             public int HSouceInterID = 0; | 
|             public int HSourceEntryID = 0; | 
|             public int Type = 0; | 
|             public string user { get; set; } | 
|         } | 
|         [Route("Sc_ComplementGoodBill/HlpBillList")] | 
|         [HttpGet] | 
|         public object HlpBillList(string sWhere) | 
|         { | 
|             try | 
|             { | 
|                 List<object> columnNameList = new List<object>(); | 
|                 //反序列化传递的值 | 
|                 HlpBill com = JsonConvert.DeserializeObject<HlpBill>(sWhere.ToString()); | 
|   | 
|                 if (com.Type == 1) | 
|                 { | 
|                     //生产叫料平台  下查 | 
|                     ds = oCN.RunProcReturn($"exec h_p_JIT_CallGoodsPlatForm_DownQuery 0,0,'',0,0,{com.HSouceInterID},{com.HSourceEntryID}" + | 
|                        $",'{com.user}'", "h_p_JIT_CallGoodsPlatForm_DownQuery"); | 
|                 } | 
|                 else if (com.Type == 2) | 
|                 { | 
|                     //拣料配送 上查 | 
|                     ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_UpQuery '{com.HSouceInterID}',{com.HSourceEntryID}", "h_p_JIT_ComplementGoodsBillList_UpQuery"); | 
|                 } | 
|                 else if (com.Type == 3) | 
|                 { | 
|                     //拣料配送 下查 | 
|                     ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_DownQuery '{com.HSouceInterID}',{com.HSourceEntryID}", "h_p_JIT_ComplementGoodsBillList_DownQuery"); | 
|                 } | 
|                 else if (com.Type == 3772) | 
|                 { | 
|                     //生产订单 下查 工序流转卡  | 
|                     ds = oCN.RunProcReturn($"select * from h_v_Sc_ProcessExchangeBillQuery where HICMOInterID='{com.HSouceInterID}' and HICMOEntryID={com.HSourceEntryID} and HBillSubType<>'SUB'", "h_v_Sc_ProcessExchangeBillQuery"); | 
|                 } | 
|   | 
|                 //添加列名 | 
|                 foreach (DataColumn col in ds.Tables[0].Columns) | 
|                 { | 
|                     Type dataType = col.DataType; | 
|                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; | 
|                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 | 
|                 } | 
|   | 
|                 //type==1 存储过程里面查询了两次  所有需要判断两张表都有没有数据 | 
|                 if (ds.Tables[0].Rows.Count != 0) | 
|                 { | 
|                     objJsonResult.code = "1"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "Sucess!"; | 
|                     objJsonResult.data = ds.Tables[0]; | 
|                     objJsonResult.list = columnNameList; | 
|                     return objJsonResult; | 
|                 } | 
|                 else if ((com.Type == 1 ? ds.Tables[1].Rows.Count : ds.Tables[0].Rows.Count) != 0) | 
|                 { | 
|                     objJsonResult.code = "1"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "Sucess!"; | 
|                     objJsonResult.data = ds.Tables[1]; | 
|                     objJsonResult.list = columnNameList; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "1"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "Sucess!"; | 
|                     objJsonResult.data = ds.Tables[0]; | 
|                     objJsonResult.list = columnNameList; | 
|                     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_ComplementGoodBill/Insert_JL_ICStockTuiBill")] | 
|         [HttpPost] | 
|         public object Insert_JL_ICStockTuiBill([FromBody] JObject msg) | 
|         { | 
|             var _value = msg["msg"].ToString(); | 
|             string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|             string msg2 = sArray[0].ToString(); | 
|             string user = sArray[1].ToString(); | 
|             string HOrgID = sArray[2].ToString(); | 
|   | 
|             try | 
|             { | 
|                 if (!DBUtility.ClsPub.Security_Log("Cj_ComplementGoodsBill_Edit", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无保存权限"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 msg2 = msg2.Replace("\\", ""); | 
|                 msg2 = msg2.Replace("\n", ""); | 
|   | 
|                 ds = oCN.RunProcReturn("select * from h_v_IF_JIT_CallGoodsBillList ", "h_v_IF_JIT_CallGoodsBillList "); | 
|   | 
|                 if (ds.Tables[0].Rows.Count > 0) | 
|                 { | 
|                     ds.Clear(); | 
|                     long HInterID = DBUtility.ClsPub.CreateBillID_Prod("4602", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                     string HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("4602", ref DBUtility.ClsPub.sExeReturnInfo, true); | 
|   | 
|                    ds= oCN.RunProcReturn($"exec h_p_JIT_ComplementGoods_Insert {HInterID},'{HBillNo}',{HOrgID},'{user}',0,0", "h_p_JIT_ComplementGoods_Insert"); | 
|   | 
|                     objJsonResult.code = ds.Tables[0].Rows[0][0].ToString(); | 
|                     objJsonResult.count = int.Parse(ds.Tables[0].Rows[0][0].ToString()); | 
|                     objJsonResult.Message = ds.Tables[0].Rows[0][1].ToString(); | 
|                     objJsonResult.data = null; | 
|                     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 = "Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 生产叫料平台  退料单新增 | 
|         [Route("Sc_ComplementGoodBill/Insert_TL_ICStockTuiBill")] | 
|         [HttpPost] | 
|         public object Insert_TL_ICStockTuiBill([FromBody] JObject msg) | 
|         { | 
|             var _value = msg["msg"].ToString(); | 
|             string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|             string msg2 = sArray[0].ToString(); | 
|             string user = sArray[1].ToString(); | 
|             string HOrgID = sArray[2].ToString(); | 
|   | 
|             try | 
|             { | 
|                 if (!DBUtility.ClsPub.Security_Log("Cj_CallGoodsBillBack_Edit", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无保存权限"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 msg2 = msg2.Replace("\\", ""); | 
|                 msg2 = msg2.Replace("\n", ""); | 
|   | 
|                 ds = oCN.RunProcReturn("select * from JIT_CallGoodsBackRequestBillMain where HISCheck=0 ", "JIT_CallGoodsBackRequestBillMain "); | 
|   | 
|                 if (ds.Tables[0].Rows.Count > 0) | 
|                 { | 
|   | 
|                     long HInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo); | 
|                     string HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true); | 
|                     //long HOutOrgID = int.Parse(listCa[i].HOutOrgID.ToString()); | 
|                     //long HWHID = int.Parse(listCa[i].HWHID.ToString()); | 
|   | 
|                    ds= oCN.RunProcReturn($"exec h_p_JIT_GetCallGoodsBillCount_Back {HInterID},'{HBillNo}',{HOrgID},'{user}'", "h_p_JIT_GetCallGoodsBillCount_Back"); | 
|   | 
|                     objJsonResult.code = ds.Tables[0].Rows[0][0].ToString(); | 
|                     objJsonResult.count = int.Parse(ds.Tables[0].Rows[0][0].ToString()); | 
|                     objJsonResult.Message = ds.Tables[0].Rows[0][1].ToString(); | 
|                     objJsonResult.data = null; | 
|                     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 = "Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 生产叫料平台  仓库库存列表 | 
|   | 
|         [Route("Sc_ComplementGoodBill/GetWarehouseList_JIT")] | 
|         [HttpGet] | 
|         public object GetWarehouseList_JIT(string sWhere) | 
|         { | 
|             try | 
|             { | 
|                 ds = oCN.RunProcReturn("select * from h_v_JIT_WarehouseList where 1=1 "+ sWhere, "h_v_JIT_WarehouseList");  | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "Sucess!"; | 
|                 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_ComplementGoodBill/NotGeneratedMaterialList")] | 
|         [HttpGet] | 
|         public object NotGeneratedMaterialList(string sWhere, string user) | 
|         { | 
|             try | 
|             { | 
|                 //查询叫料单 未生成 拣料单 的条数 | 
|                 //查询退料申请单  未生成 退料单的 条数 | 
|                 ds = oCN.RunProcReturn($@"select count(*) 未生成    from JIT_CallGoodsBackRequestBillMain as a | 
|                                         inner join JIT_CallGoodsBackRequestBillSub as b on a.HInterID=b.HInterID | 
|                                          where  a.HISCheck =0   and a.HOrgID={sWhere}  | 
|                                         and a.HMaker = '{user}' | 
|                                             union all | 
|                                         select count(*) 未生成  from JIT_CallGoodsBillMain a | 
|                                         join JIT_CallGoodsBillSub b on a.HInterID=b.HInterID | 
|                                          where b.HPSQty=0  and a.HOrgID={sWhere}  | 
|                                         and a.HMaker = '{user}'", "JIT_CallGoodsBackRequestBillMain"); | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "Sucess!"; | 
|                 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_ComplementGoodBill/JIT_ComplementGoodPT")] | 
|         [HttpGet] | 
|         public object JIT_ComplementGoodPT(string sWhere,string user) | 
|         { | 
|             try | 
|             { | 
|                 ds = oCN.RunProcReturn("exec h_p_JIT_ComplementGoodPT " + sWhere, "h_p_JIT_ComplementGoodPT"); | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "Sucess!"; | 
|                 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_ComplementGoodBill/InsertCallGoodsBill_PTJL")] | 
|         [HttpPost] | 
|         public object InsertCallGoodsBill_PTJL([FromBody] JObject msg) | 
|         { | 
|             var _value = msg["msg"].ToString(); | 
|             string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|             string msg2 = sArray[0].ToString(); | 
|             string user = sArray[1].ToString(); | 
|             omodel.HPRDORGID = long.Parse(sArray[2].ToString()); | 
|   | 
|             try | 
|             { | 
|                 if (!DBUtility.ClsPub.Security_Log("Cj_CallGoodsBill_Edit", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无保存权限"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 msg2 = msg2.Replace("\\", ""); | 
|                 msg2 = msg2.Replace("\n", ""); | 
|   | 
|                 List<CallGoodsBill> listCa = new List<CallGoodsBill>(); | 
|                 //获取表格数据集合 | 
|                 listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString()); | 
|   | 
|                 var flag = false; | 
|                 var txt = ""; | 
|   | 
|                 for (int i = 0; i < listCa.Count; i++) | 
|                 { | 
|                     if (listCa[i].配套数量 <= 0) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = $"第{i + 1}行配套数量小于0,无法叫料!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     ds = oCN.RunProcReturn("select * from h_v_JIT_WarehouseList where 仓库ID=" + listCa[i].调出仓库id + "  and  物料编码 = '" + listCa[i].物料代码 + "' and 库存组织=" + listCa[i].HOutOrgID, "h_v_JIT_WarehouseList"); | 
|   | 
|                     var HSCWHIDCount = double.Parse(ds.Tables[0].Rows[0]["调出仓库可用库存数量"].ToString()); | 
|   | 
|                     if (HSCWHIDCount == 0) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = $"第{i + 1}行库存数量为0,无法叫料!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     if (listCa[i].配套数量 > HSCWHIDCount) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = $"第{i+1}行库存数量小于叫料数量,无法叫料!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     if (listCa[i].调入仓库id == 0) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = $"第{i + 1}行请选择调入仓库!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     if (listCa[i].调出仓库id == 0) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = $"第{i + 1}行请选择调出仓库!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     if (listCa[i].调出仓库id == listCa[i].调入仓库id) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = $"第{i + 1}行调出仓库和调入仓库不能一样!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     var Hqty = 0.0; | 
|                     var TuiHqty = 0.0; | 
|                     //当前单据已叫料 和 已退料数量 | 
|                     ds = oCN.RunProcReturn($@" | 
|                                                select isnull(a.HQty,0) 已叫料数量,isnull(b.HQty,0) 已退料申请数量 from ( | 
|                                                 select sum(b.HQty) HQty,c.HNumber ,b.HSourceBillNo | 
|                                                 from JIT_CallGoodsBillMain a | 
|                                                 join JIT_CallGoodsBillSub b on a.HInterID=b.HInterID | 
|                                                 left join Gy_Material c on b.HMaterID=c.HItemID | 
|                                                 where b.HSourceBillNo='{listCa[i].HSourceBillNo}' | 
|                                                 group by c.HNumber,b.HSourceBillNo | 
|                                                 ) a | 
|                                                 left join ( | 
|                                                 select sum(b.HQty) HQty,c.HNumber,b.HSourceBillNo | 
|                                                 from JIT_CallGoodsBackRequestBillMain a | 
|                                                 inner join JIT_CallGoodsBackRequestBillSub b on a.HInterID=b.HInterID | 
|                                                 left join Gy_Material c on b.HMaterID=c.HItemID | 
|                                                 where b.HSourceBillNo='{listCa[i].HSourceBillNo}' | 
|                                                 group by c.HNumber,b.HSourceBillNo | 
|                                                 ) b  on a.HNumber=b.HNumber and a.HSourceBillNo=b.HSourceBillNo where a.HNumber='{listCa[i].物料代码}'", "JIT_CallGoodsBillMain"); | 
|   | 
|                     if (ds.Tables[0].Rows.Count > 0) | 
|                     { | 
|                         Hqty = double.Parse(ds.Tables[0].Rows[0]["已叫料数量"].ToString()); | 
|                         TuiHqty = double.Parse(ds.Tables[0].Rows[0]["已退料申请数量"].ToString()); | 
|                     } | 
|   | 
|                     if (listCa[i].配套数量 > listCa[i].计划发料数量) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = $"第{i + 1}行叫料数量大于计划发料数量!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     if ((listCa[i].配套数量 + Hqty - TuiHqty) > listCa[i].计划发料数量) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = $"第{i + 1}行叫料总数量大于计划发料数量!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|   | 
|                     var txtHBillNo = DBUtility.ClsPub.CreateBillCode_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号 | 
|                         omodel.HInterID = DBUtility.ClsPub.CreateBillID_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                         omodel.HYear = DateTime.Now.Year; | 
|                         omodel.HPeriod = DateTime.Now.Month; | 
|                         //固定赋值================================= | 
|                         omodel.HBillNo = txtHBillNo.Trim();  //在赋值类前就处理好字符串和数字 | 
|                         omodel.HDate = DateTime.Now; | 
|                         omodel.HMaker = user; | 
|                         omodel.HMakeDate = DateTime.Today.ToString(); | 
|                         omodel.HUpDater = ""; | 
|                         omodel.HUpDateDate = ""; | 
|                         omodel.HCloseType = false; | 
|                         //明细类赋值 | 
|   | 
|                         //固定赋值======================================== | 
|                         oSub.HEntryID = i + 1; | 
|                         oSub.HSourceInterID = listCa[i].HSouceInterID; | 
|                         oSub.HSourceEntryID = listCa[i].HSourceEntryID; | 
|                         oSub.HSourceBillType = "88"; | 
|                         oSub.HSourceBillNo = listCa[i].HSourceBillNo; | 
|                         oSub.HQty = double.Parse(listCa[i].配套数量.ToString()); | 
|   | 
|                         oSub.HMaterID = listCa[i].HMaterialID; | 
|                         oSub.HMaterNumber = listCa[i].HMaterialNumberCol; | 
|                         oSub.HModel = listCa[i].HMaterialModelCol; | 
|                         oSub.HWHID = int.Parse(listCa[i].调入仓库id.ToString()); | 
|                         oSub.HSCWHID = int.Parse(listCa[i].调出仓库id.ToString()); | 
|                         oSub.HProcName = listCa[i].HProcNameCol; | 
|                         oSub.HProcID = listCa[i].HProcID; | 
|                         oSub.HOutOrgID = listCa[i].HOutOrgID; | 
|                         oSub.HICMOBillNo = listCa[i].HICMOBillNo; | 
|                         oSub.HICMOInterID = listCa[i].HICMOInterID; | 
|                         oSub.HICMOEntryID = listCa[i].HICMOEntryID; | 
|                         oSub.HDeptID = listCa[i].HDeptID; | 
|                         oSub.HPlanQty = listCa[i].计划发料数量; | 
|                         oSub.HSeOrderNo = listCa[i].销售订单号; | 
|                         oSub.HBPlanDate = listCa[i].计划开工日期; | 
|   | 
|   | 
|                     flag = AddBill(ref DBUtility.ClsPub.sExeReturnInfo); | 
|   | 
|                         if (flag == false) | 
|                         { | 
|                             txt = txt + DBUtility.ClsPub.isStrNull(i + 1) + "、"; | 
|                         } | 
|                 | 
|                 } | 
|                 if (txt != "") | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = $"第{txt}行叫料失败,重新叫料"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|                     if (flag == true) | 
|                     { | 
|                         objJsonResult.code = "1"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "叫料成功!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|   | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = null; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|   | 
|   | 
|         #endregion | 
|     } | 
| } |