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; 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 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 = "指引卡无保存权限!"; 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 = "流转卡无保存权限!"; 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 : "3772"; 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 = "保存失败!没有单据日期,无法保存!"; 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); } //保存 //保存完毕后处理 bool bResult; if (msg5 == "xz") { LogService.Write("用户:" + msg4 + ",日期:" + DateTime.Now + ",新增工序流转卡单据:" + oBill.omodel.HBillNo); // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); //测试语句=========================================================================================================== string msg_str = ""; string sql_str = "select a.HQty HQty_Main,b.HQty HQty_Sub " + "from Sc_ProcessExchangeBillMain as a " + "inner join Sc_ProcessExchangeBillSub as b on a.HInterID = b.HInterID " + "where a.HInterID = " + oBill.omodel.HInterID; DataSet ds_str = oCN.RunProcReturn(sql_str, "Sc_ProcessExchangeBillMain"); if (ds_str.Tables[0].Rows.Count > 0) { msg_str = "HQty_Main:" + ds_str.Tables[0].Rows[0]["HQty_Main"].ToString() + ";HQty_Sub:"; for (int j = 0; j < ds_str.Tables[0].Rows.Count; j++) { msg_str += ds_str.Tables[0].Rows[j]["HQty_Sub"].ToString() + ","; } } //============================================================================================================== oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "新增工序流转卡单据:" + oBill.omodel.HBillNo + msg_str + "','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); //测试语句=========================================================================================================== string msg_str = ""; string sql_str = "select a.HQty HQty_Main,b.HQty HQty_Sub " + "from Sc_ProcessExchangeBillMain as a " + "inner join Sc_ProcessExchangeBillSub as b on a.HInterID = b.HInterID " + "where a.HInterID = " + oBill.omodel.HInterID; DataSet ds_str = oCN.RunProcReturn(sql_str, "Sc_ProcessExchangeBillMain"); if (ds_str.Tables[0].Rows.Count > 0) { msg_str = "HQty_Main:" + ds_str.Tables[0].Rows[0]["HQty_Main"].ToString() + ";HQty_Sub:"; for (int j = 0; j < ds_str.Tables[0].Rows.Count; j++) { msg_str += ds_str.Tables[0].Rows[j]["HQty_Sub"].ToString() + ","; } } //============================================================================================================== oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "修改工序流转卡单据:" + oBill.omodel.HBillNo + msg_str + "','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 = "保存成功!"; 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; } } //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 = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = listCol; 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/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 = "获取信息成功!"; objJsonResult.data = ds.Tables[0]; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + 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 = "指引卡无删除权限!"; 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 = "流转卡无删除权限!"; 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 = "单据号:" + 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 = "单据号:" + 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 = "单据号:" + oBill.omodel.HBillNo + "只能删除本人的单据!"; objJsonResult.data = null; return objJsonResult; } } } if (oBill.omodel.HBillStatus > 1) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + "单据当前处于不能删除状态,不能删除!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HChecker != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据号:" + 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 = "单据未找到"; 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 = "无流转卡数据!"; 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 = "删除失败!原因:删除前判断失败,请与网络管理人员联系"; objJsonResult.data = null; oCN.RollBack(); return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!原因:" + 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 = 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 = 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 = "获取信息成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + 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 = "获取信息成功!"; objJsonResult.data = ds.Tables[0]; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + 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 = "指引卡无权限审核!"; 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 = "流转卡无权限审核!"; objJsonResult.data = null; return objJsonResult; } } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; 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 = "单据已审核!不需要再审核!"; 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 = "审核失败!原因:审核前判断失败,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + 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 = "审核失败!原因:" + 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 = "单据已反审核!不需要再反审核!"; 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 = "反审核失败!原因:反审核前判断失败,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反审核失败!原因:" + 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 = "审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "执行成功!"; objJsonResult.data = null; return objJsonResult; ; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "执行失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 工序流转卡关闭/反关闭功能 [Route("Sc_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 = "指引卡无权限关闭!"; 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 = "流转卡无权限关闭!"; objJsonResult.data = null; return objJsonResult; } } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; 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 = "单据已关闭!不需要再关闭!"; objJsonResult.data = null; return objJsonResult; } } //关闭单据 if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "关闭失败!原因:" + 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 = "单据已反关闭!不需要再反关闭!"; objJsonResult.data = null; return objJsonResult; } } //反关闭单据 if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "执行成功!"; objJsonResult.data = null; return objJsonResult; ; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "执行失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 工序流转卡 作废/反作废 /// /// /// 单据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 = "作废失败!无权限!"; objJsonResult.data = null; return objJsonResult; } //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对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 = "作废成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反关闭提交 { //反关闭提交 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 = "反作废失败!原因:" + 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 = "反作废成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反作废失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废失败或者反作废失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #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[批量拆分下推-保存按钮] /// /// 新增单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [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.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.HMateOutBatchNo = ""; oBill.omodel.HUnitNumber = ds.Tables[0].Rows[0]["HUnitNumber"].ToString(); oBill.omodel.HMaterID2 = oItemSub.HMaterID; oBill.omodel.HProjectNum = ""; 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(); oBill.omodel.HMouldNum = "0"; } //子表赋值 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 } }