using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Pub_Class; using SyntacticSugar.constant; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Web.Http; using System.Windows.Forms; using WebAPI.Models; using System.Linq; namespace WebAPI.Controllers { //工序流转卡Controller public class Sc_ProcessExchangeBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; public const string ModName = "3772"; //单据类型 public const string ModCaption = "工序流转卡"; //单据名称 public const string ModRightName = "Sc_ProcessExchangeBill"; public const string ModRightNameList = ModRightName + "List"; //列表 public const string ModRightNameEdit = ModRightName + "_Edit"; //编辑 public const string ModRightNameCheck = ModRightName + "_Check"; //审核 public const string ModRightNameClose = ModRightName + "_Close"; //关闭 public const string ModRightNameDelete = ModRightName + "_Delete"; //作废 public const string ModRightNameDrop = ModRightName + "_Drop"; //删除 private json objJsonResult = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds; Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill(); #region[新增单据-保存按钮] /// /// 新增单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Sc_ProcessExchangeBill/AddBill")] [HttpPost] public object AddBill([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); string msg4 = sArray[2].ToString(); string msg5 = sArray[3].ToString(); string HBillSubType = sArray[4].ToString(); string msg6 = sArray.Length > 5 ? sArray[5] : ""; // 这里安全了 string HComputerName = SystemInformation.ComputerName; //设备名称 string UserName = ""; ListModels oListModels = new ListModels(); try { if (HBillSubType == "SUB") { if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Sub_Edit", 1, false, msg4)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3772-2-029]指引卡无保存权限!"; objJsonResult.data = null; return objJsonResult; } } else { if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, msg4)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3772-2-029]流转卡无保存权限!"; objJsonResult.data = null; return objJsonResult; } } DBUtility.ClsPub.CurUserName = msg4; DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_Sc_ProcessExchangeBillMain(msg2); foreach (Model.ClsSc_ProcessExchangeBillMain oItem in lsmain) { UserName = oItem.HMaker; //制单人 oItem.HBillType = "3772"; oItem.HBillSubType = HBillSubType == "SUB" ? HBillSubType : oItem.HBillSubType; oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month); oItem.HDate = HBillSubType == "SUB" ? DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")) : oItem.HDate; if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3772-2-030]保存失败!没有单据日期,无法保存!"; objJsonResult.data = 1; return objJsonResult; } oBill.omodel = oItem; } //表体数据 //按 },{来拆分数组 //去掉【和】 msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n //msg2 = msg2.Replace("'", "’"); List ls = new List(); ls = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub(msg3); int i = 0; foreach (Model.ClsSc_ProcessExchangeBillSub oItemSub in ls) { i++; oItemSub.HEntryID = i; oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); oBill.DetailColl.Add(oItemSub); } //返工表体数据 //按 },{来拆分数组 //去掉【和】 List ls2 = new List(); if (!string.IsNullOrEmpty(msg6)) { // 只有 msg6 不为空才走这里 msg6 = msg6.Substring(1, msg6.Length - 2); msg6 = msg6.Replace("\\", ""); msg6 = msg6.Replace("\n", ""); // 这里必须传 msg6,不是 msg3!!! ls2 = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub_HRelationBack(msg6); } int i2 = 0; foreach (Model.Sc_ProcessExchangeBillSub_HRelationBack oItemSub2 in ls2) { i2++; oItemSub2.HEntryID = i2; oItemSub2.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); // 在这里直接给默认值! // ====================== oItemSub2.HProcExchInterID = oItemSub2.HProcExchInterID > 0 ? oItemSub2.HProcExchInterID : 0; oItemSub2.HProcExchEntryID = oItemSub2.HProcExchEntryID > 0 ? oItemSub2.HProcExchEntryID : 0; oItemSub2.HProcExchBillNo = string.IsNullOrEmpty(oItemSub2.HProcExchBillNo) ? "" : oItemSub2.HProcExchBillNo; oItemSub2.HICMOInterID = oItemSub2.HICMOInterID > 0 ? oItemSub2.HICMOInterID : 0; oItemSub2.HICMOEntryID = oItemSub2.HICMOEntryID > 0 ? oItemSub2.HICMOEntryID : 0; oItemSub2.HICMOBillNo = string.IsNullOrEmpty(oItemSub2.HICMOBillNo) ? "" : oItemSub2.HICMOBillNo; oItemSub2.HStationOutInterID = oItemSub2.HStationOutInterID > 0 ? oItemSub2.HStationOutInterID : 0; oItemSub2.HStationOutBillNo = string.IsNullOrEmpty(oItemSub2.HStationOutBillNo) ? "" : oItemSub2.HStationOutBillNo; oBill.DetailColl2.Add(oItemSub2); } //保存 //保存完毕后处理 bool bResult; if (msg5 == "xz") { LogService.Write("用户:" + msg4 + ",日期:" + DateTime.Now + ",新增工序流转卡单据:" + oBill.omodel.HBillNo); bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "新增工序流转卡单据:" + oBill.omodel.HBillNo + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo); } else { LogService.Write("用户:" + msg4 + ",日期:" + DateTime.Now + ",修改工序流转卡单据:" + oBill.omodel.HBillNo); bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "修改工序流转卡单据:" + oBill.omodel.HBillNo + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo); } if (bResult) { //自动审核设置 if (msg5 == "xz") { objJsonResult.HInterID = oBill.omodel.HInterID.ToString(); //返回主ID //系统参数 自动审核 string sReturn = ""; if (oSystemParameter.ShowBill(ref sReturn) == true) { if (oSystemParameter.omodel.Sc_ProcessExchangeBill_AutoCheck == "Y") //系统参数 自动审核 { objJsonResult.Verify = "Y"; } else { objJsonResult.Verify = "N"; } } } else { objJsonResult.HInterID = oBill.omodel.HInterID.ToString(); //返回主ID objJsonResult.Verify = "N"; } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-050]保存成功!"; objJsonResult.data = 1; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-051]保存失败!" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = 1; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-051]保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } //public json AddBillMain(string msg1) //{ // string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); // string msg2 = sArray[0].ToString();//表头 // string msg3 = sArray[1].ToString();//表体 // string user = sArray[2].ToString();//用户名 // //判断是否有编辑权限 // if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, user)) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "无编辑权限!"; // objJsonResult.data = null; // return objJsonResult; // } // bool bResult; // try // { // msg2 = "[" + msg2.ToString() + "]"; // List mainList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); // DAL.ClsSc_ProcessExchangeBill BillNew = new DAL.ClsSc_ProcessExchangeBill(); // //判断会计期是否合理 // string s = ""; // int sYear = 0; // int sPeriod = 0; // DateTime HDate = mainList[0].HDate;//日期 // if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = s; // objJsonResult.data = null; // return objJsonResult; // } // BillNew.omodel.HPRDORGID= mainList[0].HPRDORGID;//组织 // BillNew.omodel.HInterID = mainList[0].HInterID;//递入type得到的单据ID // BillNew.omodel.HYear = sYear; // BillNew.omodel.HPeriod = sPeriod; // BillNew.omodel.HBillNo = mainList[0].HBillNo;//递入type得到的单据号 // BillNew.omodel.HDate = HDate; // BillNew.omodel.HRemark = mainList[0].HRemark;//备注 // BillNew.omodel.HMaker = mainList[0].HMaker; // BillNew.omodel.HWWOrderInterID = ClsPub.isLong(mainList[0].HWWOrderInterID); // BillNew.omodel.HWWOrderEntryID = ClsPub.isLong(mainList[0].HWWOrderEntryID); // BillNew.omodel.HWWOrderBillNo = ClsPub.isStrNull(mainList[0].HWWOrderBillNo); // BillNew.omodel.HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID); // BillNew.omodel.HICMOEntryID = ClsPub.isLong(mainList[0].HICMOEntryID); // BillNew.omodel.HICMOBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo); // BillNew.omodel.HMaterID2 = ClsPub.isLong(mainList[0].HMaterID2); // BillNew.omodel.HMaterID = ClsPub.isLong(mainList[0].HMaterID); // BillNew.omodel.HMaterNumber = ClsPub.isStrNull(mainList[0].HMaterNumber); // BillNew.omodel.HBatchNo = ClsPub.isStrNull(mainList[0].HBatchNo); // BillNew.omodel.HUnitID = ClsPub.isLong(mainList[0].HUnitID); // BillNew.omodel.HUnitNumber = ClsPub.isStrNull(mainList[0].HUnitNumber); // BillNew.omodel.HPlanQty = ClsPub.isDoule(mainList[0].HPlanQty); // BillNew.omodel.HQty = ClsPub.isDoule(mainList[0].HQty); // BillNew.omodel.HPlanBeginDate = ClsPub.isDate(mainList[0].HPlanBeginDate); // BillNew.omodel.HPlanEndDate = ClsPub.isDate(mainList[0].HPlanEndDate); // BillNew.omodel.HExplanation = ClsPub.isStrNull(mainList[0].HExplanation); // BillNew.omodel.HInnerBillNo = ClsPub.isStrNull(mainList[0].HInnerBillNo); // BillNew.omodel.HWorkShopID = ClsPub.isLong(mainList[0].HWorkShopID); // BillNew.omodel.HSupID = ClsPub.isLong(mainList[0].HSupID); // BillNew.omodel.HBLFlag = mainList[0].HBLFlag; // BillNew.omodel.HMainMaterID = ClsPub.isLong(mainList[0].HMainMaterID); // BillNew.omodel.HKeyMaterID = ClsPub.isLong(mainList[0].HKeyMaterID); // BillNew.omodel.HOrderProcNO = ClsPub.isStrNull(mainList[0].HOrderProcNO); // BillNew.omodel.HEquipMentID = ClsPub.isLong(mainList[0].HEquipMentID); // BillNew.omodel.HMateOutBatchNo = ClsPub.isStrNull(mainList[0].HMateOutBatchNo); // BillNew.omodel.HProjectNum = ClsPub.isStrNull(mainList[0].HProjectNum); // BillNew.omodel.HProdMaterCode = ClsPub.isStrNull(mainList[0].HProdMaterCode); // BillNew.omodel.HSeOrderBillNo = ClsPub.isStrNull(mainList[0].HSeOrderBillNo); // BillNew.omodel.HCusShortName = ClsPub.isStrNull(mainList[0].HCusShortName); // BillNew.omodel.HCusNeedMaterial = ClsPub.isStrNull(mainList[0].HCusNeedMaterial); // BillNew.omodel.HPlanSendGoodsDate = ClsPub.isStrNull(mainList[0].HPlanSendGoodsDate); // BillNew.omodel.HProdMaterName = ClsPub.isStrNull(mainList[0].HProdMaterName); // BillNew.omodel.HCusName = ClsPub.isStrNull(mainList[0].HCusName); // BillNew.omodel.HWorkRemark = ClsPub.isStrNull(mainList[0].HWorkRemark); // BillNew.omodel.HImportNote = ClsPub.isStrNull(mainList[0].HImportNote); // BillNew.omodel.HMaterNumber_A = ClsPub.isStrNull(mainList[0].HMaterNumber_A); // BillNew.omodel.HMaterNumber_B = ClsPub.isStrNull(mainList[0].HMaterNumber_B); // BillNew.omodel.HMaterNumber_C = ClsPub.isStrNull(mainList[0].HMaterNumber_C); // BillNew.omodel.HMaterNumber_D = ClsPub.isStrNull(mainList[0].HMaterNumber_D); // BillNew.omodel.HProdType = ClsPub.isStrNull(mainList[0].HProdType); // BillNew.omodel.HMaterShortName = ClsPub.isStrNull(mainList[0].HMaterShortName); // BillNew.omodel.HMaterIDA = ClsPub.isStrNull(mainList[0].HMaterIDA); // BillNew.omodel.HMaterIDB = ClsPub.isStrNull(mainList[0].HMaterIDB); // BillNew.omodel.HMaterIDC = ClsPub.isStrNull(mainList[0].HMaterIDC); // BillNew.omodel.HMaterIDD = ClsPub.isStrNull(mainList[0].HMaterIDD); // List subList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg3); // BillNew.DetailColl = new List(); // if (BillNew.omodel.HICMOInterID == 0) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "请选择任务单!"; // objJsonResult.data = null; // return objJsonResult; // } // for (int i = 0; i < subList.ToArray().Length; i++) // { // if (DBUtility.ClsPub.isInt(subList[i].HProcID) != 0)//HQty // { // Model.ClsSc_ProcessExchangeBillSub oSub = new Model.ClsSc_ProcessExchangeBillSub(); // oSub.HEntryID = i+1; // oSub.HRemark = DBUtility.ClsPub.isStrNull(subList[i].HRemark); // oSub.HSourceInterID = ClsPub.isLong(mainList[0].HICMOInterID); // oSub.HSourceEntryID = ClsPub.isLong(mainList[0].HICMOEntryID); // oSub.HSourceBillType = "85"; // oSub.HSourceBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo); // oSub.HRelationQty = DBUtility.ClsPub.isDoule(subList[i].HRelationQty); // //oSub.HRelationQty_In = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_In); // //oSub.HRelationQty_Out = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_Out); // //oSub.HRelationQty_WWOrder = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_WWOrder); // //oSub.HRelationQty_Bad = DBUtility.ClsPub.isDoule(subList[i].HRelationQty_Bad); // oSub.HRelationMoney = DBUtility.ClsPub.isDoule(subList[i].HRelationMoney); // oSub.HCloseMan = DBUtility.ClsPub.isStrNull(subList[i].HCloseMan); // oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(subList[i].HEntryCloseDate); // oSub.HCloseType = DBUtility.ClsPub.isBool(subList[i].HCloseType); // oSub.HQty = DBUtility.ClsPub.isDoule(subList[i].HQty); // if (oSub.HQty <= 0) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "第" + ClsPub.isStrNull(i + 1) + "行,流转卡数量不能为0或者小于0"; // objJsonResult.data = null; // return objJsonResult; // } // oSub.HProcNo = DBUtility.ClsPub.isLong(subList[i].HProcNo); // if (oSub.HProcNo <= 0) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "第" + ClsPub.isStrNull(i + 1) + "行,流水号不能为0或者小于0"; // objJsonResult.data = null; // return objJsonResult; // } // oSub.HProcID = DBUtility.ClsPub.isLong(subList[i].HProcID); // oSub.HProcNumber = DBUtility.ClsPub.isStrNull(subList[i].HProcNumber); // oSub.HWorkRemark = DBUtility.ClsPub.isStrNull(subList[i].HWorkRemark); // oSub.HCenterID = DBUtility.ClsPub.isLong(subList[i].HCenterID); // oSub.HDeptID = DBUtility.ClsPub.isLong(subList[i].HDeptID); // oSub.HDeptNumber = DBUtility.ClsPub.isStrNull(subList[i].HDeptNumber); // ////oSub.HGroupID = DBUtility.ClsPub.isLong(grdMain.Rows[i].Cells[HGroupIDCol].Value); // oSub.HGroupNumber = DBUtility.ClsPub.isStrNull(subList[i].HGroupNumber); // oSub.HWorkerID = DBUtility.ClsPub.isLong(subList[i].HWorkerID); // oSub.HWorkerNumber = DBUtility.ClsPub.isStrNull(subList[i].HWorkerNumber); // oSub.HSourceID = DBUtility.ClsPub.isLong(subList[i].HSourceID); // oSub.HTimeUnit = DBUtility.ClsPub.isStrNull(subList[i].HTimeUnit); // oSub.HPlanWorkTimes = DBUtility.ClsPub.isSingle(subList[i].HPlanWorkTimes); // oSub.HPlanBeginDate = DBUtility.ClsPub.isDate(subList[i].HPlanBeginDate); // oSub.HPlanEndDate = DBUtility.ClsPub.isDate(subList[i].HPlanEndDate); // oSub.HRelBeginDate = DBUtility.ClsPub.isDate(subList[i].HRelBeginDate); // oSub.HRelEndDate = DBUtility.ClsPub.isDate(subList[i].HRelEndDate); // oSub.HReadyTime = 0; // oSub.HQueueTime = 0; // oSub.HMoveTime = 0; // oSub.HBeginDayQty = DBUtility.ClsPub.isSingle(subList[i].HBeginDayQty); // oSub.HBeginFixQty = DBUtility.ClsPub.isSingle(subList[i].HBeginFixQty); // oSub.HFixWorkDays = DBUtility.ClsPub.isSingle(subList[i].HFixWorkDays); // oSub.HTrunWorkDays = DBUtility.ClsPub.isSingle(subList[i].HTrunWorkDays); // oSub.HReadyTimes = DBUtility.ClsPub.isSingle(subList[i].HReadyTimes); // oSub.HMyWorkDays = DBUtility.ClsPub.isSingle(subList[i].HMyWorkDays); // oSub.HOutPrice = DBUtility.ClsPub.isSingle(subList[i].HOutPrice); // oSub.HOutMoney = DBUtility.ClsPub.isSingle(subList[i].HOutMoney); // oSub.HLastProc = "否"; // oSub.HFstProc = "否"; // oSub.HKeyProc = DBUtility.ClsPub.isStrNull(subList[i].HKeyProc); // oSub.HSupID = DBUtility.ClsPub.isLong(subList[i].HSupID); // oSub.HSupFlag = DBUtility.ClsPub.isBool(subList[i].isEntrust); // oSub.HBackProc = DBUtility.ClsPub.isBool(subList[i].HBackProc); // oSub.HEdit = DBUtility.ClsPub.isBool(subList[i].HEdit); // if (oSub.HCenterID == 0 && oSub.HSupFlag == false) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "第" + ClsPub.isStrNull(i + 1) + "行,工作中心或委外标记不能同时为空"; // objJsonResult.data = null; // return objJsonResult; // } // oSub.HICMOBillNo = DBUtility.ClsPub.isStrNull(subList[i].HICMOBillNo); // oSub.HICMOInterID = DBUtility.ClsPub.isLong(subList[i].HICMOInterID); // oSub.HSeOrderInterID = DBUtility.ClsPub.isLong(subList[i].HSeOrderInterID); // oSub.HSeOrderEntryID = DBUtility.ClsPub.isLong(subList[i].HSeOrderEntryID); // oSub.HSeOrderBillNo = DBUtility.ClsPub.isStrNull(subList[i].HSeOrderBillNo); // oSub.HWWOrderInterID = DBUtility.ClsPub.isLong(subList[i].HWWOrderInterID); // oSub.HWWOrderEntryID = DBUtility.ClsPub.isLong(subList[i].HWWOrderEntryID); // oSub.HWWOrderBillNo = DBUtility.ClsPub.isStrNull(subList[i].HWWOrderBillNo); // oSub.HSumPassRate = DBUtility.ClsPub.isSingle(subList[i].HSumPassRate); // oSub.HPassRate = DBUtility.ClsPub.isSingle(subList[i].HPassRate); // oSub.HOverRate = DBUtility.ClsPub.isDoule(subList[i].HOverRate); // oSub.HMaxQty = DBUtility.ClsPub.isDoule(subList[i].HMaxQty); // oSub.HTechnologyParameter = DBUtility.ClsPub.isStrNull(subList[i].HTechnologyParameter); // oSub.HPicNum = DBUtility.ClsPub.isStrNull(subList[i].HPicNum); // oSub.HProcCheckNote = DBUtility.ClsPub.isStrNull(subList[i].HProcCheckNote); // oSub.HMouldNo = ""; // oSub.HProcWorkNum = ""; // BillNew.DetailColl.Add(oSub); // } // } // //保存完毕后处理 // //if (BillStatus == DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew) // //{ // // bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo); // //} // //else // //{ // // bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo); // //} // bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo); // //提示 // if (bResult == true) // { // objJsonResult.code = "1"; // objJsonResult.count = 1; // //objJsonResult.Message = "单据存盘完毕!单据号:" + mainList[0].HBillNo.Trim(); // objJsonResult.Message = ClsPub.sExeReturnInfo+"单据号:" + mainList[0].HBillNo.Trim(); // objJsonResult.data = null; // return objJsonResult; // } // else // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "保存失败!原因:" + ClsPub.sExeReturnInfo; // 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[新增单据-保存按钮-批量复制] /// /// 新增单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Sc_ProcessExchangeBill/AddBill_Copy_pl")] [HttpPost] public object AddBill_Copy_pl([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); int msg2 = int.Parse(sArray[0].ToString()); string msg3 = sArray[1].ToString(); string msg4 = sArray[2].ToString(); string msg5 = sArray[3].ToString(); string HComputerName = SystemInformation.ComputerName; //设备名称 string UserName = ""; ListModels oListModels = new ListModels(); string sReturn = ""; try { if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, msg4)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无保存权限!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); DBUtility.ClsPub.HOrgID = long.Parse(msg5); DBUtility.ClsPub.CurUserName = msg4; oBill.ShowBill(long.Parse(msg3), ref sReturn); ds = oCN.RunProcReturn("select isnull(sum(HQty),0) from Sc_ProcessExchangeBillMain where HICMOBillNo='" + oBill.omodel.HICMOBillNo + "' and HInterID <>"+ oBill.omodel.HInterID, "Sc_ProcessExchangeBillMain"); var HQty = double.Parse(ds.Tables[0].Rows[0][0].ToString()); int num = 0; //单据数量 * 张数 + 已生成不包括本单据的数量 >生产订单数量 if ((oBill.omodel.HQty * msg2) + HQty > oBill.omodel.HPlanQty) { if (((oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty) % oBill.omodel.HQty) == 0) { num = (int)((oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty) / oBill.omodel.HQty); } else { num = (int)((oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty) / oBill.omodel.HQty); num += 1; } objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "最多可以复制" + num + "张!"; objJsonResult.data = null; return objJsonResult; } if (num == 0) { double HPlanQty = oBill.omodel.HPlanQty - oBill.omodel.HQty - HQty; for (int i = 0; i < msg2; i++) { oBill.omodel.HBillNo = DBUtility.ClsPub.CreateBillCode("3772", ref DBUtility.ClsPub.sExeReturnInfo, true); oBill.omodel.HDate =DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); oBill.omodel.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); oBill.omodel.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month); oBill.omodel.HChecker = ""; oBill.omodel.HCheckDate = ""; oBill.omodel.HMaker = msg4; if (HPlanQty < oBill.omodel.HQty) { oBill.omodel.HQty = HPlanQty; } for (int j = 0; j < oBill.DetailColl.Count; j++) { oBill.DetailColl[j].HRelationQty_In = 0; oBill.DetailColl[j].HRelationQty_Out = 0; oBill.DetailColl[j].HRelationQty_Bad = 0; } //保存完毕后处理 bool bResult; LogService.Write("用户:" + msg4 + ",日期:" + DateTime.Now + ",新增工序流转卡单据:" + oBill.omodel.HBillNo); oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "新增工序流转卡单据:" + oBill.omodel.HBillNo + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo); bResult = oBill.AddBill(ref sReturn); if (bResult) { num++; HPlanQty -= oBill.omodel.HQty; } } } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "复制了" + num + "张单据!"; objJsonResult.data = 1; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } #endregion #region[批量新增单据-保存按钮] /// /// 新增单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Sc_ProcessExchangeBill/AddBill_pl")] [HttpPost] public object AddBill_pl([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString();//主表 string msg3 = sArray[1].ToString();//单据号及数量 string msg4 = sArray[2].ToString();//工艺路线 string msg5 = sArray[3].ToString();//类型 string msg6 = sArray[4].ToString();//用户 string HComputerName = SystemInformation.ComputerName; //设备名称 ListModels oListModels = new ListModels(); try { if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, msg6)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无保存权限!"; objJsonResult.data = null; return objJsonResult; } //单据号 及数量 DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); List ListHbillNo = new List(); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n ListHbillNo = JsonConvert.DeserializeObject>(msg3); //主表信息 Model.ClsSc_ProcessExchangeBillMain Main = new Model.ClsSc_ProcessExchangeBillMain(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n Main = JsonConvert.DeserializeObject(msg2); DBUtility.ClsPub.CurUserName = msg6; Main.HMaker = msg6; //制单人 Main.HBillType = "3772"; Main.HBillSubType = "3772"; Main.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); Main.HMaterID = Main.HMaterID2; if (DBUtility.ClsPub.isStrNull(Main.HDate) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!没有单据日期,无法保存!"; objJsonResult.data = 1; return objJsonResult; } //表体数据 //按 },{来拆分数组 //去掉【和】 msg4 = msg4.Substring(1, msg4.Length - 2); msg4 = msg4.Replace("\\", ""); msg4 = msg4.Replace("\n", ""); //\n List ls = new List(); ls = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub(msg4); //循环新增单据 for (int i = 0; i < ListHbillNo.Count; i++) { Main.HBillNo = ListHbillNo[i].HBillNo; Main.HQty = ListHbillNo[i].HQty; Main.HSplitNo = ListHbillNo[i].HSplitNo; Main.HAuxQty = 0; Main.HAuxUnit = 0; oBill.omodel = Main; int j = 0; foreach (Model.ClsSc_ProcessExchangeBillSub oItemSub in ls) { j++; oItemSub.HEntryID = j; oItemSub.HQty = Main.HQty; oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); oBill.DetailColl.Add(oItemSub); } //保存 //保存完毕后处理 bool bResult=false; if (msg5 == "2") { LogService.Write("用户:" + msg6 + ",日期:" + DateTime.Now + ",新增工序流转卡单据:" + oBill.omodel.HBillNo); oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg6 + "','" + HComputerName + "','" + "新增工序流转卡单据:" + oBill.omodel.HBillNo + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo); bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } oBill.DetailColl.Clear(); if (!bResult) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = 1; return objJsonResult; } } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; objJsonResult.data = 1; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } #endregion #region 工序流转卡列表显示器具清单信息 [Route("Sc_ProcessExchangeBillList/QJQD")] [HttpGet] public object QJQD(Int64 HProcExchHinteID) { try { //得到信息 ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessExchangeBillQuerySub_Mould where hmainid= " + HProcExchHinteID , "h_v_Sc_ProcessExchangeBillQuerySub_Mould"); //写入信息 //if (ds == null || ds.Tables[0].Rows.Count == 0) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "未查询到出站单明细信息!"; // objJsonResult.data = null; // return objJsonResult; //} List listCol = new List(); foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string str = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; listCol.Add(JsonConvert.DeserializeObject(str)); } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-037]Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = listCol; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-038]Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region[返回生产任务单明细行] /// /// 返回生产任务单明细行 /// /// 生产任务单ID /// object [Route("Sc_ProcessExchangeBill/GetICMOBillList")] [HttpGet] public object GetICMOBillList(int hmainid,int HEntryID, int OrganizationID) { try { if (hmainid == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "生产任务单ID为0!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("select * from h_v_Sc_ICMOBillListDetail where hmainid=" + hmainid + " and HEntryID=" + HEntryID, "h_v_S_Sc_ICMOBillList"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此生产任务单无明细行!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "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[返回生产任务单明细行] /// /// 返回生产任务单明细行 /// /// 生产任务单ID /// object [Route("Sc_ProcessExchangeBill/GetICMOBillDetail")] [HttpGet] public object GetICMOBillDetail(int hmainid,int HEntryID, int OrganizationID) { try { if (hmainid == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "生产任务单ID为0!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("select * from h_v_S_Sc_ICMOBillList where hmainid=" + hmainid + " and HEntryID=" + HEntryID+ " and HSTOCKINORGID='"+ OrganizationID+"'", "h_v_S_Sc_ICMOBillList"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此生产任务单无明细行!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "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[编辑时获取表头数据] /// /// 编辑获取表头信息 /// /// 主ID /// [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillMain")] [HttpGet] public ApiResult GetProcessExchangeBillMain(string HInterID) { if (string.IsNullOrEmpty(HInterID)) return new ApiResult { code = -1, msg = "ID不能为空" }; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); var dataSet = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillQuery where hmainid= " + HInterID + " ", "h_v_Sc_ProcessExchangeBillQuery"); if (dataSet == null || dataSet.Tables[0].Rows.Count == 0) return new ApiResult { code = -1, msg = "不存在工序流转卡" }; return new ApiResult { code = 1, msg = "查询成功", data = dataSet }; } #endregion #region[编辑时获取表体数据] [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillSub")] [HttpGet] public object GetProcessExchangeBillSub(string HInterID) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); string sql = string.Format(@"select 流水号 HProcNo,HProcID,工序代码 HProcNumber,工序名称 HProcName,加工说明 HWorkRemark,HCenterID,工作中心代码 HCenterNumber, 工作中心 HCenterName,HSupID,供应商代码 HSupNumber,供应商 HSupName,isEntrust HSupFlag,计划数量 HQty,加工单价 HOutPrice, 表体备注 HRemark, 进站关联数量 HRelationQty_In,出站关联数量 HRelationQty_Out,委外工单数量 HRelationQty_WWOrder,不合格数量 HRelationQty_Bad,超额比例 HOverRate, 良率 HPassRate,累计良率 HSumPassRate,图纸编号 HPicNum,本工序确认记录 HProcCheckNote,工艺参数 HTechnologyParameter,HDeptID,HSourceID, 加工车间代码 HDeptNumber,加工车间 HDeptName,出站报废关联数量 HRelationQty_OutBad,SN过站控制 HSNCtrl,HRoutingInterID HRoutingBillMainID,HRoutingEntryID HRoutingBillEntryID from h_v_Sc_ProcessExchangeBillQuerySub"); ds = oCN.RunProcReturn(sql+ " where hmainid="+ HInterID + " order by cast(流水号 as int) ", "h_v_Sc_ProcessExchangeBillQuerySub"); objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-037]获取信息成功!"; objJsonResult.data = ds.Tables[0]; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-045]没有返回任何记录!" + e.ToString(); objJsonResult.data = null; } return objJsonResult; } // 工序流转卡返工信息 [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillSub_Back")] [HttpGet] public object GetProcessExchangeBillSub_Back(string HInterID) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); string sql = string.Format(@"SELECT ISNULL(HSourceInterID, 0) AS HSourceInterID,ISNULL(HSourceEntryID, 0) AS HSourceEntryID,ISNULL(HSourceBillNo, '') AS HSourceBillNo, ISNULL(HSourceBillType, '') AS HSourceBillType,ISNULL(HProcExchInterID, 0) AS HProcExchInterID,ISNULL(HProcExchEntryID, 0) AS HProcExchEntryID, ISNULL(HProcExchBillNo, '') AS HProcExchBillNo,ISNULL(HICMOInterID, 0) AS HICMOInterID,ISNULL(HICMOEntryID, 0) AS HICMOEntryID, ISNULL(HICMOBillNo, '') AS HICMOBillNo,ISNULL(HStationOutInterID, 0) AS HStationOutInterID,ISNULL(HStationOutBillNo, '') AS HStationOutBillNo FROM Sc_ProcessExchangeBillSub_HRelationBack where HInterID=" + HInterID + " order by HEntryID "); ds = oCN.RunProcReturn(sql, "Sc_ProcessExchangeBillSub_HRelationBack"); objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-037]获取信息成功!"; objJsonResult.data = ds.Tables[0]; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-045]没有返回任何记录!" + e.ToString(); objJsonResult.data = null; } return objJsonResult; } #endregion #region [工序流转卡删除功能] /// /// 工序流转卡删除功能 /// /// [Route("Sc_ProcessExchangeBill/DeltetProcessExchangeBillByID")] [HttpGet] public object DeltetProcessExchangeBillByID(string HInterID, int HPRDORGID, string user, string HSouceBillType) { if (HSouceBillType == "SUB") { //编辑权限 if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Sub_Drop", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-004]指引卡无删除权限!"; objJsonResult.data = null; return objJsonResult; } } else { //编辑权限 if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Drop", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-004]流转卡无删除权限!"; objJsonResult.data = null; return objJsonResult; } } string HComputerName = SystemInformation.ComputerName; //设备名称 DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); string[] HInterIDs = HInterID.Split(','); string[] HBillNos = new string[HInterIDs.Length]; string HBillNo_S = ""; for (int i = 0; i < HInterIDs.Length; i++) { Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterIDs[i]); DBUtility.ClsPub.HOrgID = HPRDORGID; if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (lngBillKey == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-009]单据号:" + oBill.omodel.HBillNo + "单据ID为空!"; objJsonResult.data = null; return objJsonResult; } //删除前判断关联数量 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet ds; ds = oCn.RunProcReturn("select ct from ( " + " select 1 ct from Sc_StationInBillMain Where HProcExchInterID=" + lngBillKey + " " + " union all " + " select 1 from Sc_StationOutBillMain Where HProcExchInterID=" + lngBillKey + " ) as a ", "Sc_ProcExchReportSub"); if (ds.Tables[0].Rows.Count != 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3772-1-010]单据号:" + oBill.omodel.HBillNo + "流转卡已经有下游进出站单后,不允许删除!"; objJsonResult.data = null; return objJsonResult; } string sReturn = ""; if (oSystemParameter.ShowBill(ref sReturn)) { if (oSystemParameter.omodel.Sc_ProcessExchangeBill_DeleterAndMakerMustSame == "Y") { if (oBill.omodel.HMaker != user && (user != "admin" && user != "Admin")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-011]单据号:" + oBill.omodel.HBillNo + "只能删除本人的单据!"; objJsonResult.data = null; return objJsonResult; } } } if (oBill.omodel.HBillStatus > 1) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-012]单据号:" + oBill.omodel.HBillNo + "单据当前处于不能删除状态,不能删除!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HChecker != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-013]单据号:" + oBill.omodel.HBillNo + "单据已经审核,不能删除!"; objJsonResult.data = null; return objJsonResult; } HBillNo_S += oBill.omodel.HBillNo + ","; HBillNos[i] = oBill.omodel.HBillNo; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-005]单据未找到"; objJsonResult.data = null; return objJsonResult; } } HBillNo_S = HBillNo_S.Substring(0, HBillNo_S.Length - 1); oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "删除工序流转卡单据:" + HBillNo_S + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','删除单据'", ref DBUtility.ClsPub.sExeReturnInfo); for (int i = 0; i < HInterIDs.Length; i++) { oCN.BeginTran(); if (HSouceBillType == "SUB") { ds = oCN.RunProcReturn("select * from Sc_ProcessExchangeBillMain where HInterID=" + HInterIDs[i], "Sc_ProcessExchangeBillMain"); if (ds.Tables[0].Rows.Count == 0) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-005]无流转卡数据!"; objJsonResult.data = null; return objJsonResult; } oCN.RunProc("update Sc_ProcessExchangeBillSub set HSourceID=0 where HInterID=" + ds.Tables[0].Rows[0]["HMainSourceInterID"].ToString() + " and HEntryID=" + ds.Tables[0].Rows[0]["HMainSourceEntryID"].ToString()); } //删除前控制========================================= string sql1 = "exec h_p_Sc_ProcessExchangeBill_BeforeDelCtrl " + HInterIDs[i] + ",'" + HBillNos[i] + "','" + user + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Sc_ProcessExchangeBill_BeforeDelCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-006]删除失败!原因:删除前判断失败,请与网络管理人员联系"; objJsonResult.data = null; oCN.RollBack(); return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3772-1-007]删除失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.data = null; oCN.RollBack(); return objJsonResult; } //================================================================================== bool IsDete = oBill.DeleteBill(long.Parse(HInterIDs[i]), HBillNos[i], "h_p_Sc_ProcessExchangeBill_AfterDelCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo); if (!IsDete) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3772-1-007]" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } oCN.Commit(); } if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺") { ds = oCN.RunProcReturn("select * from Sc_ProcessExchangeBillMain where HICMOInterID='" + oBill.omodel.HICMOInterID + "' and HICMOEntryID='" + oBill.omodel.HICMOEntryID + "'", "Sc_ProcessExchangeBillMain"); if (ds.Tables[0].Rows.Count == 0) { oCN.RunProc("update AIS20220308151944..T_PRD_MOENTRY set F_BSV_TEXT2 = '否' where FID='" + oBill.omodel.HICMOInterID + "' and FENTRYID='" + oBill.omodel.HICMOEntryID + "'"); } } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-008]" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } #endregion #region[编辑时获取表体数据(工艺参数)] [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillSubTech")] [HttpGet] public object GetProcessExchangeBillSubTech(string HInterID) { DataSet ds; try { List columnNameList = new List(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); string sql = string.Format(@"exec h_p_Sc_GetProcessExchangeBillSubTech "); ds = oCN.RunProcReturn(sql + " '" + HInterID + "'", "h_p_Sc_GetProcessExchangeBillSubTech"); //添加列名 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列对象的列名 } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.list = columnNameList; objJsonResult.Message = "[0000-1-037]获取信息成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-038]没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 拆分 编辑获取流转卡数据 /// /// 编辑获取表头信息 /// /// 主ID /// [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillMain_cf")] [HttpGet] public object GetProcessExchangeBillMain_cf(string HInterID) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillQuery where hmainid= " + HInterID + " ", "h_v_Sc_ProcessExchangeBillQuery"); DataSet Ds = oCN.RunProcReturn("select top 1 HNo from Sc_ProcessExchangeBillmain where HBillNo like '%" + ds.Tables[0].Rows[0]["单据号"].ToString() + "-%' order by LEN(HBillno) , HbillNo desc ", "Sc_ProcessExchangeBillmain"); char c = '1'; string sNo = "01"; int sCount = 0; if (Ds == null || Ds.Tables[0].Rows.Count == 0) { } else { sCount = DBUtility.ClsPub.isInt(Ds.Tables[0].Rows[0]["HNo"]); if (sCount >= 1) { sNo = Convert.ToChar(sCount + (int)c).ToString(); sNo = "00" + sNo; sNo = sNo.Substring(sNo.Length - 2, 2); } } string sBillNo = ds.Tables[0].Rows[0]["单据号"].ToString(); sBillNo = sBillNo.Replace("WORKX", ""); sBillNo = sBillNo.Replace("WORK", ""); sBillNo = sBillNo.Replace("_", "-"); sBillNo = sBillNo + "-" + sNo; ds.Tables[0].Rows[0]["单据号"] = sBillNo; objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-037]获取信息成功!"; objJsonResult.data = ds.Tables[0]; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-045]没有返回任何记录!" + e.ToString(); objJsonResult.data = null; } return objJsonResult; } /// /// 获取表体数据信息 /// /// /// [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillSub_cf")] [HttpGet] public object GetProcessExchangeBillSub_cf(string HInterID) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); var ds1= oCN.RunProcReturn("select isnull(max(流水号),0) from h_v_Sc_ProcessExchangeBillQuerySub where hmainid=" + HInterID + " and 出站关联数量>0 ", "h_v_Sc_ProcessExchangeBillQuerySub"); string sql = string.Format(@"select * from h_v_Sc_ProcessExchangeBillQuerySub"); ds = oCN.RunProcReturn(sql + " where hmainid=" + HInterID + " and 出站关联数量=0 and cast(流水号 as int)>" + ds1 .Tables[0].Rows[0][0].ToString()+ " order by cast(流水号 as int) ", "h_v_Sc_ProcessExchangeBillQuerySub"); if (float.Parse(ds.Tables[0].Rows[0]["进站关联数量"].ToString()) > 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "当前单据:"+ ds.Tables[0].Rows[0]["工序名称"].ToString() + "未出站不能拆分!"; objJsonResult.data = ds.Tables[0]; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "获取信息成功!"; objJsonResult.data = ds.Tables[0]; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; } return objJsonResult; } /// /// 新增单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Sc_ProcessExchangeBill/AddBill_cf")] [HttpPost] public object AddBill_cf([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); string msg4 = sArray[2].ToString(); string msg5 = sArray[3].ToString(); string linterid = sArray[4].ToString(); string UserName = ""; ListModels oListModels = new ListModels(); try { if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_CF", 1, false, msg5)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无拆分权限!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_Sc_ProcessExchangeBillMain(msg2); string sReturn = ""; DBUtility.ClsPub.HOrgID = lsmain[0].HPRDORGID; oBill.ShowBill(long.Parse(linterid), ref sReturn); foreach (Model.ClsSc_ProcessExchangeBillMain oItem in lsmain) { if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!没有单据日期,无法保存!"; objJsonResult.data = 1; return objJsonResult; } int num = oItem.HBillNo.Split('-').Length; oBill.omodel.HMaker = msg5; //制单人 oBill.omodel.HNo = DBUtility.ClsPub.isLong(oItem.HBillNo.Split('-')[num - 1]); oBill.omodel.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); oBill.omodel.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month); oBill.omodel.HDate = oItem.HDate;// 日期 oBill.omodel.HPlanBeginDate = oItem.HPlanBeginDate;// 计划开工日期 oBill.omodel.HPlanEndDate = oItem.HPlanEndDate;// 计划完工日期 oBill.omodel.HQty = oItem.HQty;// 数量 oBill.omodel.HBillNo = oItem.HBillNo;// 单据号 oBill.omodel.HProjectNum = oItem.HProjectNum;// 项目号 } //表体数据 //按 },{来拆分数组 //去掉【和】 msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n //msg2 = msg2.Replace("'", "’"); List ls = new List(); ls = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub(msg3); string HEntryID = ""; for (int i = 0; i < oBill.DetailColl.Count; i++) { if (oBill.DetailColl[i].HRelationQty_Out > 0 || oBill.DetailColl[i].HRelationQty_In > 0) { HEntryID += i + ","; } } if (HEntryID != "") { HEntryID = HEntryID.Substring(0, HEntryID.Length - 1); var num = HEntryID.Split(','); for (int k = 0; k < num.Length; k++) { oBill.DetailColl.RemoveAt(int.Parse(num[k]) - k); } } int j = 0 ; foreach (Model.ClsSc_ProcessExchangeBillSub oItemSub in oBill.DetailColl) { if (ls[j].HSplitQty > ls[j].HLeftQty) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "第" + (j + 1) + "行,拆分数量不能大于可拆分数量!"; objJsonResult.data = null; return objJsonResult; } if (oBill.DetailColl[j].HProcNo == ls[j].HProcNo) { oBill.DetailColl[j].HEntryID = j+1; oBill.DetailColl[j].HQty = ls[j].HQty; oBill.DetailColl[j].HBackProc = ls[j].HBackProc; oBill.DetailColl[j].HPrevSourceInterID = ls[j].HPrevSourceInterID; oBill.DetailColl[j].HPrevSourceEntryID = ls[j].HPrevSourceEntryID; oBill.DetailColl[j].HRemark = ls[j].HRemark; oBill.DetailColl[j].HTechnologyParameter = ls[j].HTechnologyParameter; j++; } } //保存 //保存完毕后处理 bool bResult = false; if (msg4 == "1") { bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } //else //{ // bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); //} oCN.BeginTran(); oCN.RunProc("update Sc_ProcessExchangeBillSub set HQty=(select HQty from Sc_ProcessExchangeBillMain where HInterID="+ oBill.DetailColl[0].HPrevSourceInterID + ") where HInterID=" + oBill.DetailColl[0].HPrevSourceInterID ); oCN.Commit(); if (bResult) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; objJsonResult.data = 1; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = 1; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } #endregion #region 工序流转卡审核/反审核功能 [Route("Sc_ProcessExchangeBill/CheckSc_ProcessExchangeBill")] [HttpGet] public object CheckSc_ProcessExchangeBill(string HInterID, int Type, string user,string HBillSubType) { try { if (HBillSubType == "SUB") { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Check", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3772-1-022]指引卡无权限审核!"; objJsonResult.data = null; return objJsonResult; } } else { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Sub_Check", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3772-1-022]流转卡无权限审核!"; objJsonResult.data = null; return objJsonResult; } } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-009]HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; BillOld.MvarItemKey = "Sc_ProcessExchangeBillMain"; oCN.BeginTran();//开始事务 //Type 1 审核 2 反审核 if (Type == 1) { //判断单据是否已经审核 DataSet ds; string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-023]单据已审核!不需要再审核!"; objJsonResult.data = null; return objJsonResult; } } //审核前控制 string HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString(); sql = "exec h_p_Sc_ProcessExchangeBill_BeforeCheckCtrl " + int.Parse(HInterID) + ",'" + HBillNo + "','" + user + "'"; ds = oCN.RunProcReturn(sql, "h_p_Sc_ProcessExchangeBill_BeforeCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-024]审核失败!原因:审核前判断失败,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-025]审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ; objJsonResult.data = null; return objJsonResult; } //审核单据 if (!BillOld.CheckBill(Int64.Parse(HInterID), HBillNo, "h_p_Sc_ProcessExchangeBill_AfterCheckCtrl", user, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-025]审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } else { //判断单据是否已经反审核 DataSet ds; string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-026]单据已反审核!不需要再反审核!"; objJsonResult.data = null; return objJsonResult; } } //反审核前控制 string HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString(); sql = "exec h_p_Sc_ProcessExchangeBill_BeforeUnCheckCtrl " + int.Parse(HInterID) + ",'" + HBillNo + "','" + user + "'"; ds = oCN.RunProcReturn(sql, "h_p_Sc_ProcessExchangeBill_BeforeUnCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-027]反审核失败!原因:反审核前判断失败,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-028]反审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ; objJsonResult.data = null; return objJsonResult; } //反审核单据 if (BillOld.AbandonCheck(Int64.Parse(HInterID), HBillNo, "h_p_Sc_ProcessExchangeBill_AfterUnCheckCtrl", user, ref ClsPub.sExeReturnInfo)) { //SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //DataSet DSet = oCn.RunProcReturn("exec h_p_Sc_ICMOBill_AbandonCheckCtrl " + int.Parse(HInterID), "h_p_Sc_ICMOBill_AbandonCheckCtrl"); ////if (DBUtility.ClsPub.isInt(DSet.Tables[0].Rows[0]["Hback"]) != 0) ////{ //// objJsonResult.code = "0"; //// objJsonResult.count = 1; //// objJsonResult.Message = "该任务单已下推流转卡,不允许反审核" + DBUtility.ClsPub.isStrNull(DSet.Tables[0].Rows[0]["HBackRemark"]); //// objJsonResult.data = null; //// return objJsonResult; ////} } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-028]审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-029]执行成功!"; objJsonResult.data = null; return objJsonResult; ; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-025]执行失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 工序流转卡关闭/反关闭功能 [Route("Sc_ProcessExchangeBill/CloseSc_ProcessExchangeBill")] [HttpGet] public object CloseSc_ProcessExchangeBill(string HInterID, int Type, string user,string HBillSubType) { try { if (HBillSubType == "SUB") { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Sub_Close", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3772-1-032]指引卡无权限关闭!"; objJsonResult.data = null; return objJsonResult; } } else { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Close", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3772-1-032]流转卡无权限关闭!"; objJsonResult.data = null; return objJsonResult; } } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-009]HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; BillOld.MvarItemKey = "Sc_ProcessExchangeBillMain"; oCN.BeginTran();//开始事务 //Type 1 关闭 2 反关闭 if (Type == 1) { //判断单据是否已经关闭 DataSet ds; string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-033]单据已关闭!不需要再关闭!"; objJsonResult.data = null; return objJsonResult; } } //关闭单据 if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-034]关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } else { //判断单据是否已经反关闭 DataSet ds; string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-035]单据已反关闭!不需要再反关闭!"; objJsonResult.data = null; return objJsonResult; } } //反关闭单据 if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-036]反关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-037]执行成功!"; objJsonResult.data = null; return objJsonResult; ; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-038]执行失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 工序流转卡 作废/反作废 /// /// /// 单据ID /// 作废(0),反作废(1) /// 作废人 /// [Route("Sc_ProcessExchangeBill/DeleteSc_ProcessExchangeBill")] [HttpGet] public object DeleteSc_ProcessExchangeBill(int HInterID, int IsAudit, string CurUserName) { string ModRightNameCheck = "Sc_ProcessExchangeBill_Delete"; DBUtility.ClsPub.CurUserName = CurUserName; try { //检查权限 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-039]作废失败!无权限!"; objJsonResult.data = null; return objJsonResult; } //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-009]HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); //实例化单据操作类,用于进行相关操作 ////针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 //if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 //{ // if (oBill.omodel.HChecker.Trim() != "") // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "单据已审核!不能进行作废!"; // objJsonResult.data = null; // return objJsonResult; // } // if (IsAudit == 0) //作废判断 // { // if (oBill.omodel.HDeleteMan.Trim() != "") // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "单据已作废!不能再作废!"; // objJsonResult.data = null; // return objJsonResult; // } // } // if (IsAudit == 1) //反作废判断 // { // if (oBill.omodel.HDeleteMan.Trim() == "") // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "单据未作废!不需要反作废!"; // objJsonResult.data = null; // return objJsonResult; // } // } //} //else //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; // objJsonResult.data = null; // return objJsonResult; //} //进行需要进行的作废/反作废操作 if (IsAudit == 0) //作废提交 { //作废提交 if (oBill.Cancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-040]作废成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-041]作废失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反关闭提交 { //反关闭提交 oBill.oCn.BeginTran(); if (oBill.AbandonCancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { //控制关联数量,判断反关闭后,生产订单下推流转卡总数是否超过计划数量 ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBill_Checkqty " + lngBillKey, "h_p_Sc_ProcessExchangeBill_Checkqty"); if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) != 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-042]反作废失败!原因:" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]).ToString(); objJsonResult.data = null; oBill.oCn.RollBack(); return objJsonResult; } oBill.oCn.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-043]反作废成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-042]反作废失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-044]作废失败或者反作废失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 单据变更 页面初始化 [Route("Sc_ProcessExchangeBill/GetProcessExchangeBillMain_Change_init")] [HttpGet] public object GetProcessExchangeBillMain_Change_init(string HInterID) { try { if (string.IsNullOrEmpty(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!HInterID不能为空"; objJsonResult.data = null; return objJsonResult; } SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessExchangeBillQuery where hmainid = " + HInterID + " ", "h_v_Sc_ProcessExchangeBillQuery"); if (ds==null||ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!不存在工序流转卡"; objJsonResult.data = null; return objJsonResult; } else { 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_ProcessExchangeBill/GetProcessExchangeBillMain_Change_save")] [HttpGet] public object GetProcessExchangeBillMain_Change_save(string HInterID,string HMaterModel2, string user) { try { if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_ChangeBill", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无单据变更权限!"; objJsonResult.data = null; return objJsonResult; } if (string.IsNullOrEmpty(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!HInterID不能为空"; objJsonResult.data = null; return objJsonResult; } SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); oCN.BeginTran(); oCN.RunProc("update Sc_ProcessExchangeBillMain set HMaterModel2 = '" + HMaterModel2 + "' where HInterID = " + HInterID + ""); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; 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_ProcessExchangeBillList/page")] [HttpGet] public json page(string sWhere, string user, int page, int size) { json res = new json(); try { List columnNameList = new List(); //编辑权限 if (!DBUtility.ClsPub.Security_Log_second("Sc_ProcessExchangeBill_SubQuery", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查看权限!"; objJsonResult.data = null; return objJsonResult; } if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBillList_Query " + page + "," + size + ",''", "h_p_Sc_ProcessExchangeBillList_Query"); } else { ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBillList_Query " + page + "," + size + ",'" + sWhere + "'", "h_p_Sc_ProcessExchangeBillList_Query"); } //添加列名 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列对象的列名 } res.code = CodeConstant.SUCCEED; res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString()); res.Message = "Sucess!"; res.list = columnNameList; res.data = ds.Tables[0]; return res; } catch (Exception e) { res.code = CodeConstant.FAIL; res.count = CountConstant.FAIL; res.Message = "Exception!" + e.ToString(); res.data = null; return res; } } #endregion #region 工序流转卡列表 /// /// 获取工序流转卡列表信息 /// /// [Route("Sc_ProcessExchangeBillController/GetSc_ProcessExchangeBillList_Json")] [HttpGet] public object GetSc_ProcessExchangeBillList_Json(string sWhere, string HMaker, string OperationType, string ViewName) { try { //判断权限 if (OperationType == "1") { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameList, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } } //返回列表信息 ds = oCN.RunProcReturn("select * from " + ViewName + " where 1=1 " + sWhere + " order by hmainid desc", ViewName); List columnNameList = new List(); //添加列名 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列对象的列名 } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "成功!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询列表信息失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region[批量拆分生成流转卡] /// /// 返回拆分后的生产订单信息 /// /// 生产任务单主子ID /// object [Route("Sc_ProcessExchangeBill/BatchSpilt")] [HttpGet] public object BatchSpilt(string HInterID, string user) { try { if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "源单主子id为空!"; objJsonResult.data = null; return objJsonResult; } string[] HInterEntryIDArr = HInterID.Split(','); DataTable dt = new DataTable(); for (int i = 0; i < HInterEntryIDArr.Length; i++) { string[] HIDs = HInterEntryIDArr[i].Split('@'); string sql = "exec h_p_Sc_ProcessExchange_BatchSplit '" + HIDs[0] + "','" + HIDs[1] + "'"; ds = oCN.RunProcReturn(sql, "h_p_Sc_ProcessExchange_BatchSplit"); if (i == 0) { dt = ds.Tables[0]; } else { foreach (DataRow item in ds.Tables[0].Rows) { DataRow dataRow = dt.NewRow(); dataRow.ItemArray = item.ItemArray; dt.Rows.Add(dataRow); } } } if (dt == null || dt.Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "拆分生产订单无数据!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = dt; 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_ProcessExchangeBill/AddBill_BatchSplit")] [HttpPost] public object AddBill_BatchSplit([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString();//明细行信息 string HUser = sArray[1].ToString();//用户 string HComputerName = SystemInformation.ComputerName; //设备名称 string UserName = ""; ListModels oListModels = new ListModels(); bool bResult = true; try { if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, HUser)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流转卡无保存权限!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); //表体数据 //按 },{来拆分数组 //去掉【和】 msg2 = msg2.Substring(1, msg2.Length - 2); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n //msg2 = msg2.Replace("'", "’"); List ls = new List(); ls = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub_BatchSplit(msg2); DateTime dt = DateTime.Now; string sql = ""; Int64 HInterID = 0; string HBillNo = ""; Int64 HICMOInterID = 0; Int64 HICMOEntryID = 0; string HICMOBillNo = ""; double HQty = 0; double HProQty = 0; foreach (Model.ClsSc_ProcessExchangeBillSub_BatchSplit oItemSub in ls) { //HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("3772", ref DBUtility.ClsPub.sExeReturnInfo, true); HInterID = oItemSub.HInterID; HBillNo = oItemSub.HBillNo; HICMOInterID = oItemSub.HICMOInterID; HICMOEntryID = oItemSub.HICMOEntryID; HICMOBillNo = oItemSub.HICMOBillNo; HQty = oItemSub.HQty; HProQty = oItemSub.HProQty; sql = "select * from h_v_Sc_ProcessExchangeBill_BatchSplit where hmainid = " + oItemSub.HICMOInterID + " and hentryid = " + oItemSub.HICMOEntryID + " and HRoutingID = " + oItemSub.HRoutingInterID.ToString(); ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessExchangeBill_BatchSplit"); //主表赋值 if (ds.Tables[0].Rows.Count > 0 && ds != null) { oBill.omodel.HInterID = HInterID; oBill.omodel.HBillNo = HBillNo; oBill.omodel.HBillSubType = "3772"; oBill.omodel.HMainSourceBillSubType = "3710"; oBill.omodel.HDate = oItemSub.HDate; oBill.omodel.HMaker = HUser; oBill.omodel.HMakeDate = System.DateTime.Now.ToString("G"); oBill.omodel.HPrevMainSourceInterID = 0; oBill.omodel.HYear = DBUtility.ClsPub.isLong(oItemSub.HDate.Year); oBill.omodel.HPeriod = DBUtility.ClsPub.isLong(oItemSub.HDate.Month); oBill.omodel.HRemark = ""; oBill.omodel.HBatchNo = oItemSub.HBatchNo; oBill.omodel.HProjectNum = oItemSub.HProjectNum; oBill.omodel.HMateOutBatchNo = oItemSub.HMateOutBatchNo; oBill.omodel.HMouldNum = oItemSub.HMouldNum; oBill.omodel.HMainMaterID = 0; oBill.omodel.HKeyMaterID = 0; oBill.omodel.HNo = 0; oBill.omodel.HOrderProcNO = ds.Tables[0].Rows[0]["HPlanOrderProcNo"].ToString(); oBill.omodel.HWWOrderInterID = 0; oBill.omodel.HWWOrderEntryID = 0; oBill.omodel.HWWOrderBillNo = ""; oBill.omodel.HEquipMentID = 0; //! oBill.omodel.HICMOBillNo = oItemSub.HICMOBillNo; oBill.omodel.HMaterID = oItemSub.HMaterID; oBill.omodel.HMaterNumber = ds.Tables[0].Rows[0]["HMaterNumber"].ToString(); oBill.omodel.HUnitID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HUnitID"]); oBill.omodel.HUnitNumber = ds.Tables[0].Rows[0]["HUnitNumber"].ToString(); oBill.omodel.HMaterID2 = oItemSub.HMaterID; oBill.omodel.HPlanQty = oItemSub.HQty; oBill.omodel.HQty = oItemSub.HProQty; oBill.omodel.HPlanBeginDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oBill.omodel.HPlanEndDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oBill.omodel.HExplanation = ""; oBill.omodel.HInnerBillNo = ""; oBill.omodel.HSupID = 0; oBill.omodel.HWorkShopID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HDeptID"]); oBill.omodel.HWorkTypeNum = ""; oBill.omodel.HProdMaterCode = ""; oBill.omodel.HSeOrderBillNo = ds.Tables[0].Rows[0]["HSeOrderBillNo"].ToString(); oBill.omodel.HCusShortName = ""; oBill.omodel.HCusNeedMaterial = ""; oBill.omodel.HPlanSendGoodsDate = dt.ToShortDateString().ToString(); oBill.omodel.HProdMaterName = ""; oBill.omodel.HCusName = ""; oBill.omodel.HWorkRemark = ""; oBill.omodel.HImportNote = ""; oBill.omodel.HMaterNumber_A = ""; oBill.omodel.HMaterNumber_B = ""; oBill.omodel.HMaterNumber_C = ""; oBill.omodel.HMaterNumber_D = ""; oBill.omodel.HProdType = ""; oBill.omodel.HMaterShortName = ""; oBill.omodel.HMaterIDA = ""; oBill.omodel.HMaterIDB = ""; oBill.omodel.HMaterIDC = ""; oBill.omodel.HMaterIDD = ""; oBill.omodel.HICMOInterID = oItemSub.HICMOInterID; oBill.omodel.HICMOEntryID = oItemSub.HICMOEntryID; oBill.omodel.HPicNumVer = ""; oBill.omodel.HPicNumAssemble = ""; oBill.omodel.HMaterTexture = ""; oBill.omodel.HProductNum = ""; oBill.omodel.HVerNum = ""; oBill.omodel.HPRDORGID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HPRDORGID"]); oBill.omodel.HBLFlag = false; oBill.omodel.HCusNumber = ""; oBill.omodel.HPickLabel = ""; oBill.omodel.HPickLabelNumber = ""; oBill.omodel.HXTNumber = ""; oBill.omodel.HXTModel = ""; oBill.omodel.HWorkBillSortNo = "";//! oBill.omodel.HRoutingBillID = oItemSub.HRoutingInterID.ToString(); oBill.omodel.HMaterModel = ds.Tables[0].Rows[0]["HMaterModel"].ToString(); oBill.omodel.HWidth = 0; oBill.omodel.HWeight = 0; oBill.omodel.HAuxQty = 0; oBill.omodel.HAuxUnit = 0; oBill.omodel.HAuxQty2 = 0; oBill.omodel.HAuxUnit2 = 0; oBill.omodel.HSplitNo = 0; oBill.omodel.HHeight = ""; oBill.omodel.HInches = ""; oBill.omodel.HAl1Long = ""; oBill.omodel.HDensity = ""; oBill.omodel.HTela = ""; oBill.omodel.HUnderTela = ""; oBill.omodel.HSizing = ""; oBill.omodel.HSellDate = dt.ToShortDateString().ToString(); oBill.omodel.HRemark2 = "批量拆分下推"; oBill.omodel.HRemark3 = ""; oBill.omodel.HEmpID = 0; oBill.omodel.HCusID = 0; oBill.omodel.HColorRemark = ""; oBill.omodel.HSplitSumQty = 0; oBill.omodel.HSplitColorQty = 0; oBill.omodel.HMachineLine = ""; oBill.omodel.HMainSourceInterID = 0; oBill.omodel.HMainSourceEntryID = 0; oBill.omodel.HMainSourceBillNo = ""; oBill.omodel.HOrderLevID = 0; oBill.omodel.HWidth_New = 0; oBill.omodel.HRemark_New = ""; oBill.omodel.HWeight_New = 0; oBill.omodel.HPlanOrderProcNo = ds.Tables[0].Rows[0]["HPlanOrderProcNo"].ToString(); } //子表赋值 for(int i = 0; i < ds.Tables[0].Rows.Count; i++) { Model.ClsSc_ProcessExchangeBillSub oItemSubs = new Model.ClsSc_ProcessExchangeBillSub(); oItemSubs.HEntryID = i + 1; oItemSubs.HBillNo_bak = HBillNo; oItemSubs.HCloseMan = ""; oItemSubs.HEntryCloseDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oItemSubs.HCloseType = false; oItemSubs.HRemark = ""; oItemSubs.HSourceInterID = HICMOInterID; oItemSubs.HSourceEntryID = HICMOEntryID; oItemSubs.HSourceBillNo = HICMOBillNo; oItemSubs.HSourceBillType = "3710"; oItemSubs.HRelationQty = 0; oItemSubs.HRelationMoney = 0; oItemSubs.HRelationQty_In = 0; oItemSubs.HRelationQty_Out = 0; oItemSubs.HRelationQty_WWOrder = 0; oItemSubs.HRelationQty_Bad = 0; oItemSubs.HProcNo = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HProcNo"]); oItemSubs.HProcID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HProcID"]); oItemSubs.HProcNumber = ds.Tables[0].Rows[i]["HProcNumber"].ToString(); oItemSubs.HWorkRemark = ""; oItemSubs.HCenterID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HCenterID"]); oItemSubs.HDeptID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HDeptID"]); oItemSubs.HDeptNumber = ds.Tables[0].Rows[i]["HDeptNumber"].ToString(); oItemSubs.HGroupID = 0; oItemSubs.HGroupNumber = oItemSub.HGroupNumber; oItemSubs.HWorkerID = 0; oItemSubs.HWorkerNumber = ""; oItemSubs.HSourceID = 0; oItemSubs.HQty = HProQty; oItemSubs.HTimeUnit = ""; oItemSubs.HPlanWorkTimes = 0; oItemSubs.HPlanBeginDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oItemSubs.HPlanEndDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oItemSubs.HRelBeginDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oItemSubs.HRelEndDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oItemSubs.HReadyTime = 0; oItemSubs.HQueueTime = 0; oItemSubs.HMoveTime = 0; oItemSubs.HBeginDayQty = 0; oItemSubs.HBeginFixQty = 0; oItemSubs.HFixWorkDays = 0; oItemSubs.HTrunWorkDays = 0; oItemSubs.HReadyTimes = 0; oItemSubs.HMyWorkDays = 0; oItemSubs.HOutPrice = 0; oItemSubs.HOutMoney = 0; oItemSubs.HPassRate = 0; oItemSubs.HLastProc = ""; oItemSubs.HKeyProc = ""; oItemSubs.HFstProc = ""; oItemSubs.HICMOInterID = HICMOInterID; oItemSubs.HICMOBillNo = HICMOBillNo; oItemSubs.HWWOrderInterID = 0; oItemSubs.HWWOrderEntryID = 0; oItemSubs.HWWOrderBillNo = ""; oItemSubs.HReportQty = 0; oItemSubs.HBackProc = false; oItemSubs.HSupID = 0; oItemSubs.HSupFlag = false; oItemSubs.HOverRate = 0; oItemSubs.HMaxQty = 0; oItemSubs.HTechnologyParameter = ""; oItemSubs.HProcCheckNote = ""; oItemSubs.HPicNum = ""; oItemSubs.HMouldNo = ""; oItemSubs.HProcWorkNum = ""; oItemSubs.HSeOrderInterID = 0; oItemSubs.HSeOrderEntryID = 0; oItemSubs.HSNCtrl = false; oItemSubs.HRoutingBillMainID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HRoutingID"]); oItemSubs.HRoutingBillEntryID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HRoutingEntryID"]); oBill.DetailColl.Add(oItemSubs);//添加明细行值 } //调用保存方法 bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); oBill.DetailColl.Clear();//清空明细行值 if (!bResult) { break; } } if (bResult) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; objJsonResult.data = 1; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = 1; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } #endregion #region 可打印备料单报表(添康) [Route("Sc_ProcessExchangeBill/AllowedPrint")] [HttpGet] public object AllowedPrint(string sWhere, string user, string Organization, int page, int size) { try { List columnNameList = new List(); sWhere = sWhere.Replace("'", "''"); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBillList_AllowedPrint " + page + "," + size + ",'" + Organization + "'," + "''", "h_p_Sc_ProcessExchangeBillList_AllowedPrint"); } else { ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBillList_AllowedPrint " + page + "," + size + ",'" + Organization + "','" + sWhere + "'", "h_p_Sc_ProcessExchangeBillList_AllowedPrint"); } //添加列名 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列对象的列名 } objJsonResult.code = "1"; objJsonResult.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString()); 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[生产订单多行下推生成流转卡] /// /// 返回拆分后的生产订单信息 /// /// 生产任务单主子ID /// object [Route("Sc_ProcessExchangeBill/Sc_ICMO_DH")] [HttpGet] public object Sc_ICMO_DH(string HInterID, string user) { try { if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "源单主子id为空!"; objJsonResult.data = null; return objJsonResult; } string[] HInterEntryIDArr = HInterID.Split(','); DataTable dt = new DataTable(); for (int i = 0; i < HInterEntryIDArr.Length; i++) { string[] HIDs = HInterEntryIDArr[i].Split('@'); string sql = "exec h_p_Sc_ProcessExchange_DH '" + HIDs[0] + "','" + HIDs[1] + "'"; ds = oCN.RunProcReturn(sql, "h_p_Sc_ProcessExchange_DH"); if (i == 0) { dt = ds.Tables[0]; } else { foreach (DataRow item in ds.Tables[0].Rows) { DataRow dataRow = dt.NewRow(); dataRow.ItemArray = item.ItemArray; dt.Rows.Add(dataRow); } } } if (dt == null || dt.Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "拆分生产订单无数据!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = dt; 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_ProcessExchangeBill/Add_Sc_ICMO_DH")] [HttpPost] public object Add_Sc_ICMO_DH([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString();//明细行信息 string HUser = sArray[1].ToString();//用户 string HComputerName = SystemInformation.ComputerName; //设备名称 string UserName = ""; ListModels oListModels = new ListModels(); bool bResult = true; try { if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Edit", 1, false, HUser)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流转卡无保存权限!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); //表体数据 //按 },{来拆分数组 //去掉【和】 msg2 = msg2.Substring(1, msg2.Length - 2); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n //msg2 = msg2.Replace("'", "’"); List ls = new List(); ls = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub_BatchSplit(msg2); DateTime dt = DateTime.Now; string sql = ""; Int64 HInterID = 0; string HBillNo = ""; Int64 HICMOInterID = 0; Int64 HICMOEntryID = 0; string HICMOBillNo = ""; double HQty = 0; double HProQty = 0; foreach (Model.ClsSc_ProcessExchangeBillSub_BatchSplit oItemSub in ls) { //HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("3772", ref DBUtility.ClsPub.sExeReturnInfo, true); HInterID = oItemSub.HInterID; HBillNo = oItemSub.HBillNo; HICMOInterID = oItemSub.HICMOInterID; HICMOEntryID = oItemSub.HICMOEntryID; HICMOBillNo = oItemSub.HICMOBillNo; HQty = oItemSub.HQty; HProQty = oItemSub.HProQty; sql = "select * from h_v_Sc_ProcessExchangeBill_BatchSplit where hmainid = " + oItemSub.HICMOInterID + " and hentryid = " + oItemSub.HICMOEntryID + " and HRoutingID = " + oItemSub.HRoutingInterID.ToString(); ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessExchangeBill_BatchSplit"); //主表赋值 if (ds.Tables[0].Rows.Count > 0 && ds != null) { oBill.omodel.HInterID = HInterID; oBill.omodel.HBillNo = HBillNo; oBill.omodel.HBillSubType = "3772"; oBill.omodel.HMainSourceBillSubType = "3710"; oBill.omodel.HDate = oItemSub.HDate; oBill.omodel.HMaker = HUser; oBill.omodel.HMakeDate = System.DateTime.Now.ToString("G"); oBill.omodel.HPrevMainSourceInterID = 0; oBill.omodel.HYear = DBUtility.ClsPub.isLong(oItemSub.HDate.Year); oBill.omodel.HPeriod = DBUtility.ClsPub.isLong(oItemSub.HDate.Month); oBill.omodel.HRemark = ""; oBill.omodel.HBatchNo = oItemSub.HBatchNo; oBill.omodel.HProjectNum = oItemSub.HProjectNum; oBill.omodel.HMateOutBatchNo = oItemSub.HMateOutBatchNo; oBill.omodel.HMouldNum = oItemSub.HMouldNum; oBill.omodel.HMainMaterID = 0; oBill.omodel.HKeyMaterID = 0; oBill.omodel.HNo = 0; oBill.omodel.HOrderProcNO = ds.Tables[0].Rows[0]["HPlanOrderProcNo"].ToString(); oBill.omodel.HWWOrderInterID = 0; oBill.omodel.HWWOrderEntryID = 0; oBill.omodel.HWWOrderBillNo = ""; oBill.omodel.HEquipMentID = 0; //! oBill.omodel.HICMOBillNo = oItemSub.HICMOBillNo; oBill.omodel.HMaterID = oItemSub.HMaterID; oBill.omodel.HMaterNumber = ds.Tables[0].Rows[0]["HMaterNumber"].ToString(); oBill.omodel.HUnitID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HUnitID"]); oBill.omodel.HUnitNumber = ds.Tables[0].Rows[0]["HUnitNumber"].ToString(); oBill.omodel.HMaterID2 = oItemSub.HMaterID; oBill.omodel.HPlanQty = oItemSub.HQty; oBill.omodel.HQty = oItemSub.HProQty; oBill.omodel.HPlanBeginDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oBill.omodel.HPlanEndDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oBill.omodel.HExplanation = ""; oBill.omodel.HInnerBillNo = ""; oBill.omodel.HSupID = 0; oBill.omodel.HWorkShopID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HDeptID"]); oBill.omodel.HWorkTypeNum = ""; oBill.omodel.HProdMaterCode = ""; oBill.omodel.HSeOrderBillNo = ds.Tables[0].Rows[0]["HSeOrderBillNo"].ToString(); oBill.omodel.HCusShortName = ""; oBill.omodel.HCusNeedMaterial = ""; oBill.omodel.HPlanSendGoodsDate = dt.ToShortDateString().ToString(); oBill.omodel.HProdMaterName = ""; oBill.omodel.HCusName = ""; oBill.omodel.HWorkRemark = ""; oBill.omodel.HImportNote = ""; oBill.omodel.HMaterNumber_A = ""; oBill.omodel.HMaterNumber_B = ""; oBill.omodel.HMaterNumber_C = ""; oBill.omodel.HMaterNumber_D = ""; oBill.omodel.HProdType = ""; oBill.omodel.HMaterShortName = ""; oBill.omodel.HMaterIDA = ""; oBill.omodel.HMaterIDB = ""; oBill.omodel.HMaterIDC = ""; oBill.omodel.HMaterIDD = ""; oBill.omodel.HICMOInterID = oItemSub.HICMOInterID; oBill.omodel.HICMOEntryID = oItemSub.HICMOEntryID; oBill.omodel.HPicNumVer = ""; oBill.omodel.HPicNumAssemble = ""; oBill.omodel.HMaterTexture = ""; oBill.omodel.HProductNum = ""; oBill.omodel.HVerNum = ""; oBill.omodel.HPRDORGID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HPRDORGID"]); oBill.omodel.HBLFlag = false; oBill.omodel.HCusNumber = ""; oBill.omodel.HPickLabel = ""; oBill.omodel.HPickLabelNumber = ""; oBill.omodel.HXTNumber = ""; oBill.omodel.HXTModel = ""; oBill.omodel.HWorkBillSortNo = "";//! oBill.omodel.HRoutingBillID = oItemSub.HRoutingInterID.ToString(); oBill.omodel.HMaterModel = ds.Tables[0].Rows[0]["HMaterModel"].ToString(); oBill.omodel.HWidth = 0; oBill.omodel.HWeight = 0; oBill.omodel.HAuxQty = 0; oBill.omodel.HAuxUnit = 0; oBill.omodel.HAuxQty2 = 0; oBill.omodel.HAuxUnit2 = 0; oBill.omodel.HSplitNo = 0; oBill.omodel.HHeight = ""; oBill.omodel.HInches = ""; oBill.omodel.HAl1Long = ""; oBill.omodel.HDensity = ""; oBill.omodel.HTela = ""; oBill.omodel.HUnderTela = ""; oBill.omodel.HSizing = ""; oBill.omodel.HSellDate = dt.ToShortDateString().ToString(); oBill.omodel.HRemark2 = "批量拆分下推"; oBill.omodel.HRemark3 = ""; oBill.omodel.HEmpID = 0; oBill.omodel.HCusID = 0; oBill.omodel.HColorRemark = ""; oBill.omodel.HSplitSumQty = 0; oBill.omodel.HSplitColorQty = 0; oBill.omodel.HMachineLine = ""; oBill.omodel.HMainSourceInterID = 0; oBill.omodel.HMainSourceEntryID = 0; oBill.omodel.HMainSourceBillNo = ""; oBill.omodel.HOrderLevID = 0; oBill.omodel.HWidth_New = 0; oBill.omodel.HRemark_New = ""; oBill.omodel.HWeight_New = 0; oBill.omodel.HPlanOrderProcNo = ds.Tables[0].Rows[0]["HPlanOrderProcNo"].ToString(); } //子表赋值 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { Model.ClsSc_ProcessExchangeBillSub oItemSubs = new Model.ClsSc_ProcessExchangeBillSub(); oItemSubs.HEntryID = i + 1; oItemSubs.HBillNo_bak = HBillNo; oItemSubs.HCloseMan = ""; oItemSubs.HEntryCloseDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oItemSubs.HCloseType = false; oItemSubs.HRemark = ""; oItemSubs.HSourceInterID = HICMOInterID; oItemSubs.HSourceEntryID = HICMOEntryID; oItemSubs.HSourceBillNo = HICMOBillNo; oItemSubs.HSourceBillType = "3710"; oItemSubs.HRelationQty = 0; oItemSubs.HRelationMoney = 0; oItemSubs.HRelationQty_In = 0; oItemSubs.HRelationQty_Out = 0; oItemSubs.HRelationQty_WWOrder = 0; oItemSubs.HRelationQty_Bad = 0; oItemSubs.HProcNo = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HProcNo"]); oItemSubs.HProcID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HProcID"]); oItemSubs.HProcNumber = ds.Tables[0].Rows[i]["HProcNumber"].ToString(); oItemSubs.HWorkRemark = ""; oItemSubs.HCenterID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HCenterID"]); oItemSubs.HDeptID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HDeptID"]); oItemSubs.HDeptNumber = ds.Tables[0].Rows[i]["HDeptNumber"].ToString(); oItemSubs.HGroupID = 0; oItemSubs.HGroupNumber = oItemSub.HGroupNumber; oItemSubs.HWorkerID = 0; oItemSubs.HWorkerNumber = ""; oItemSubs.HSourceID = 0; oItemSubs.HQty = HProQty; oItemSubs.HTimeUnit = ""; oItemSubs.HPlanWorkTimes = 0; oItemSubs.HPlanBeginDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oItemSubs.HPlanEndDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oItemSubs.HRelBeginDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oItemSubs.HRelEndDate = Convert.ToDateTime(dt.ToShortDateString().ToString()); oItemSubs.HReadyTime = 0; oItemSubs.HQueueTime = 0; oItemSubs.HMoveTime = 0; oItemSubs.HBeginDayQty = 0; oItemSubs.HBeginFixQty = 0; oItemSubs.HFixWorkDays = 0; oItemSubs.HTrunWorkDays = 0; oItemSubs.HReadyTimes = 0; oItemSubs.HMyWorkDays = 0; oItemSubs.HOutPrice = 0; oItemSubs.HOutMoney = 0; oItemSubs.HPassRate = 0; oItemSubs.HLastProc = ""; oItemSubs.HKeyProc = ""; oItemSubs.HFstProc = ""; oItemSubs.HICMOInterID = HICMOInterID; oItemSubs.HICMOBillNo = HICMOBillNo; oItemSubs.HWWOrderInterID = 0; oItemSubs.HWWOrderEntryID = 0; oItemSubs.HWWOrderBillNo = ""; oItemSubs.HReportQty = 0; oItemSubs.HBackProc = false; oItemSubs.HSupID = 0; oItemSubs.HSupFlag = false; oItemSubs.HOverRate = 0; oItemSubs.HMaxQty = 0; oItemSubs.HTechnologyParameter = ""; oItemSubs.HProcCheckNote = ""; oItemSubs.HPicNum = ""; oItemSubs.HMouldNo = ""; oItemSubs.HProcWorkNum = ""; oItemSubs.HSeOrderInterID = 0; oItemSubs.HSeOrderEntryID = 0; oItemSubs.HSNCtrl = false; oItemSubs.HRoutingBillMainID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HRoutingID"]); oItemSubs.HRoutingBillEntryID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[i]["HRoutingEntryID"]); oBill.DetailColl.Add(oItemSubs);//添加明细行值 } //调用保存方法 bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); oBill.DetailColl.Clear();//清空明细行值 if (!bResult) { break; } } if (bResult) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; objJsonResult.data = 1; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = 1; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } #endregion #region[新增时获取表体数据(返工申请单)] [Route("Sc_ProcessExchangeBill/GetProcExchangeWorkBackList")] [HttpGet] public object GetProcExchangeWorkBackList(string HInterID) { DataSet ds; try { //拆分并过滤出有效数字ID var idList = HInterID.Split(',') // 1. 按逗号分割字符串 .Select(s => s.Trim()) // 2. 去除每个元素的空格 .Where(s => int.TryParse(s, out _)) // 3. 只保留能转成数字的字符串 .ToList(); // 4. 转成List集合 // 构建安全的 IN 子句 string inClause = string.Join(",", idList); List columnNameList = new List(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("select * from h_v_Sc_ProcExchWorkBackBillList_Query where 1=1 and hmainid in (" + inClause + ")", "h_v_Sc_ProcExchWorkBackBillList_Query"); //添加列名 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列对象的列名 } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.list = columnNameList; objJsonResult.Message = "[0000-1-037]获取信息成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-038]没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion } }