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(sWhere.ToString()); oCN.RunProc($"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}' "); ds = oCN.RunProcReturn("select * from ##h_p_JIT_CallGoodsPlatForm_Query where 1=1 " + com.Arbitrarily + "", "##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;//HBHGQtyCol public int? 已配送数量 = 0;//HBHGQtyCol public double? 退料数量 = 0;//退料数量 public long HSTOCKID = 0;//HSTOCKID public string 退料原因 { get; set; }//退料原因 public int HMaterialID = 0; //HMaterialIDCol 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 listCa = new List(); //获取表格数据集合 listCa = JsonConvert.DeserializeObject>(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) { if (listCa[i].叫料数量 > listCa[i].计划发料数量) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "叫料数量大于计划发料数量!"; objJsonResult.data = null; return objJsonResult; } if (listCa[i].库存数量 == 0 && listCa[i].叫料数量 > 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "库存数量为0,无法叫料!"; objJsonResult.data = null; return objJsonResult; } if (listCa[i].叫料数量 > listCa[i].库存数量) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "库存数量小于叫料数量,无法叫料!"; objJsonResult.data = null; return objJsonResult; } if (listCa[i].叫料数量 > 0 && listCa[i].调入仓库id == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "请选择调入仓库!"; objJsonResult.data = null; return objJsonResult; } if (listCa[i].叫料数量 > 0 && listCa[i].调出仓库id == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "请选择调出仓库!"; objJsonResult.data = null; return objJsonResult; } //if (listCa[i].调出仓库可用库存数量 == 0) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "调出仓库可用库存数量为0!"; // 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; 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(); bool flag = false; 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 listCa = new List(); //获取表格数据集合 listCa = JsonConvert.DeserializeObject>(msg2.ToString()); int j=0; for (int i = 0; i < listCa.Count; i++) { if (listCa[i].退料数量 > 0) { if (listCa[i].退料数量 > listCa[i].已配送数量&& listCa[i].已配送数量>0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "退料数量大于已配送数量!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("select isnull(sum(d.HQty),0) HQty from JIT_CallGoodsBackRequestBillSub c inner join JIT_CallGoodsBackBillSub d on c.HInterID = d.HSourceInterID and c.HEntryID = d.HSourceEntryID and c.HMaterID = d.HMaterID " + $"where c.HSourceInterID={listCa[i].HSouceInterID} and c.HSourceEntryID ={listCa[i].HSourceEntryID} and c.HSourceBillNo = '{listCa[i].HSourceBillNo}' and c.HMaterID={listCa[i].HMaterialID}", "JIT_CallGoodsBackRequestBillSub"); if ((double.Parse(ds.Tables[0].Rows[0][0].ToString()==""?"0": ds.Tables[0].Rows[0][0].ToString()) +listCa[i].退料数量) > listCa[i].已叫料数量) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = $"已经退料数量:{double.Parse(ds.Tables[0].Rows[0][0].ToString())},可退料数量为:{(listCa[i].已叫料数量 - double.Parse(ds.Tables[0].Rows[0][0].ToString()))}!"; objJsonResult.data = null; return objJsonResult; } if (listCa[i].调入仓库id == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "请选择调入仓库!"; objJsonResult.data = null; return objJsonResult; } if (listCa[i].调出仓库id == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "请选择调出仓库!"; objJsonResult.data = null; return objJsonResult; } flag = AddICStockTuiBill(listCa[i], "666601", "不良品退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo); j = 1; } } if (j == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无任何退料数量或退料数量小于0,无法退料!"; objJsonResult.data = null; return objJsonResult; } if (flag) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "不良品退料成功!"; 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; } } //新增 public bool AddICStockTuiBill(CallGoodsBill listCa,string HBillType,string HBackType,string HOrgID, ref string sReturn) { try { 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}')"); sReturn = "新增单据成功!"; oCN.Commit(); return true; } catch (Exception e) { sReturn = e.Message; 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 listCa = new List(); //获取表格数据集合 listCa = JsonConvert.DeserializeObject>(msg2.ToString()); bool flag = false; int j = 0; for (int i = 0; i < listCa.Count; i++) { if (listCa[i].退料数量 > 0) { if (listCa[i].退料数量 > listCa[i].已配送数量 && listCa[i].已配送数量 > 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "退料数量大于已配送数量!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("select sum(d.HQty) HQty from JIT_CallGoodsBackRequestBillSub c inner join JIT_CallGoodsBackBillSub d on c.HInterID = d.HSourceInterID and c.HEntryID = d.HSourceEntryID and c.HMaterID = d.HMaterID " + $"where c.HSourceInterID={listCa[i].HSouceInterID} and c.HSourceEntryID ={listCa[i].HSourceEntryID} and c.HSourceBillNo = '{listCa[i].HSourceBillNo}' and c.HMaterID={listCa[i].HMaterialID}", "JIT_CallGoodsBackRequestBillSub"); if ((double.Parse(ds.Tables[0].Rows[0][0].ToString() == "" ? "0" : ds.Tables[0].Rows[0][0].ToString()) + listCa[i].退料数量) > listCa[i].已叫料数量) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = $"已经退料数量:{double.Parse(ds.Tables[0].Rows[0][0].ToString())},可退料数量为:{(listCa[i].已叫料数量 - double.Parse(ds.Tables[0].Rows[0][0].ToString()))}!"; objJsonResult.data = null; return objJsonResult; } flag = AddICStockTuiBill(listCa[i], "666602", " 余量退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo); j = 1; } } if (j == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无任何退料数量,无法退料!"; objJsonResult.data = null; return objJsonResult; } if (flag) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "余量退料成功!"; 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_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 listCa = new List(); //获取表格数据集合 listCa = JsonConvert.DeserializeObject>(msg2.ToString()); bool flag = false; int j = 0; for (int i = 0; i < listCa.Count; i++) { if (listCa[i].退料数量 > 0) { if (listCa[i].退料数量 > listCa[i].已配送数量 && listCa[i].已配送数量 > 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "退料数量大于已配送数量!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("select sum(d.HQty) HQty from JIT_CallGoodsBackRequestBillSub c inner join JIT_CallGoodsBackBillSub d on c.HInterID = d.HSourceInterID and c.HEntryID = d.HSourceEntryID and c.HMaterID = d.HMaterID " + $"where c.HSourceInterID={listCa[i].HSouceInterID} and c.HSourceEntryID ={listCa[i].HSourceEntryID} and c.HSourceBillNo = '{listCa[i].HSourceBillNo}' and c.HMaterID={listCa[i].HMaterialID}", "JIT_CallGoodsBackRequestBillSub"); if ((double.Parse(ds.Tables[0].Rows[0][0].ToString() == "" ? "0" : ds.Tables[0].Rows[0][0].ToString()) + listCa[i].退料数量) > listCa[i].已叫料数量) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = $"已经退料数量:{double.Parse(ds.Tables[0].Rows[0][0].ToString())},可退料数量为:{(listCa[i].已叫料数量 - double.Parse(ds.Tables[0].Rows[0][0].ToString()))}!"; objJsonResult.data = null; return objJsonResult; } flag = AddICStockTuiBill(listCa[i], "666603", "报废退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo); j = 1; } } if (j == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无任何退料数量,无法退料!"; objJsonResult.data = null; return objJsonResult; } if (flag) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "报废退料成功!"; 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 生产叫料平台 叫料拣料信息查询 上查/下查 //查询条件 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 columnNameList = new List(); //反序列化传递的值 HlpBill com = JsonConvert.DeserializeObject(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"); } //添加列名 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 } }