using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Pub_Class; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Web; using System.Web.Http; using System.Windows.Forms; using WebAPI.Models; namespace WebAPI.Controllers { //工序进站接收单Controller public class Cj_StationInBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); private json objJsonResult = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill(); string fileip = System.Configuration.ConfigurationManager.AppSettings["FileIP"]; DataSet ds; DataSet ds1; #region 新增单据-保存按钮 [Route("Cj_StationInBill/AddBill")] [HttpPost] public object AddBill([FromBody] JObject oMain) { var _value = oMain["oMain"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); try { //委外工序发出反序列化 string msg2 = "[" + sArray[0].ToString() + "]"; string user = sArray[1].ToString(); string OperationType = sArray[2].ToString(); string HComputerName = SystemInformation.ComputerName; //设备名称 if (OperationType == "5") { //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Sub_Edit", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-2-003]开工单无编辑权限!"; objJsonResult.data = null; return objJsonResult; } } else { //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Edit", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-2-003]进站单无编辑权限!"; objJsonResult.data = null; return objJsonResult; } } List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); long HMainInterID = 0; HMainInterID = list[0].HMainInterID; long HProcExchInterID = list[0].lngBillKey;//流转卡主内码 if (HProcExchInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-2-004]错误的流转卡内码!"; objJsonResult.data = null; return objJsonResult; } long HProcExchEntryID = list[0].lngBillSubKey;//流转卡子内码 if (HProcExchEntryID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-2-002]流水号没有选择!请输入流水号后回车!"; objJsonResult.data = null; return objJsonResult; } string HProcNo = list[0].HProcNo;//流水号 if (HProcNo == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-2-005]流水号没有选择!"; objJsonResult.data = null; return objJsonResult; } string HProcExchBillNo = list[0].HProcExchBillNo;//流转卡 if (HProcExchBillNo == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-2-006]流转卡号没有选择!"; objJsonResult.data = null; return objJsonResult; } string eventType = list[0].eventType; string BillType = "3790"; long HInterID = list[0].HInterID;//递入type得到的单据ID string HBillNo = list[0].HBillNo;//递入type得到的单据号 int HBillStatus = 0; string HMaker = user;//制单人 int HYear = DateTime.Now.Year; double HPeriod = DateTime.Now.Month; string HRemark = list[0].HRemark;//备注 long HICMOInterID = list[0].HICMOInterID;//任务单ID long HICMOEntryID = list[0].HICMOEntryID;//任务单子ID string HICMOBillNo = list[0].HICMOBillNo;//任务单 long HProcPlanInterID = 0; long HProcPlanEntryID = 0; string HProcPlanBillNo = ""; long HMaterID = list[0].HMaterID;//产品ID long HProcID = list[0].HProcID;//当前工序 double HICMOQty = list[0].HICMOQty;//任务单数量 double HPlanQty = list[0].HPlanQty;//流转卡数量 long HSourceID = list[0].HSourceID;//生产资源ID long HGroupID = list[0].HGroupID;//班组ID long HDeptID = 0; long HEmpID = list[0].HEmpID;//接收人ID string HBarCode = list[0].HBarCode;//条形码 string HAddr = ""; string HBarCodeMaker = ""; long HSupID = 0; double HQty = list[0].HQty;//接收数量 double HPrice = 0; double HMoney = 0; double HPieceQty = list[0].HPieceQty;//接收件数 string HSourceName = list[0].HSourceName;//生产资源名称 long HCenterID = list[0].HCenterID;//工作中心ID string HOrderProcNO = list[0].HOrderProcNO;//订单跟踪号 long HPRDOrgID = list[0].HPRDOrgID;//组织ID double HmaterOutqty = list[0].HmaterOutqty;//白坯发布 long HMaterToSourceInterID = list[0].HMaterToSourceInterID;//上料防错单ID string HMaterToSourceBillNo = list[0].HMaterToSourceBillNo;//上料防错单单据号 //单据完整性判断 if (HMaterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-007]产品没有选择!"; objJsonResult.data = null; return objJsonResult; } string sReturn = ""; if (oSystemParameter.ShowBill(ref sReturn) == true) { if (oSystemParameter.omodel.WMS_CampanyName == "乔一" || oSystemParameter.omodel.WMS_CampanyName == "杭州斯莫尔") //系统参数 判断客户 { //判断生产资源 if (HSourceID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-006]生产资源没有选择!"; objJsonResult.data = null; return objJsonResult; } } } if (HCenterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-010]工作中心没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HProcID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-011]当前工序没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HQty <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-2-007]接收个数不能为0!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("select HInterID from Sc_ProcessExchangeBillSub Where hinterid=" + HProcExchInterID + " and hprocno<" + HProcNo + " order by hprocno", "Sc_ProcessExchangeBillSub"); if (ds == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-2-008]判断首道工序失败,不允许保存!"; objJsonResult.data = null; return objJsonResult; } //保存前控制========================================= string HBillNote = ""; ds = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_BeforeSaveCtrl " + HInterID.ToString() + ", '" + HBillNo + "','" + HBillNote + "',1 ", "h_p_Sc_StationInBill_BeforeSaveCtrl "); if (ds == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-012]保存前判断失败!"; objJsonResult.data = null; return objJsonResult; } if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-051]保存失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); objJsonResult.data = null; return objJsonResult; } //========================================================= //若MAINDI重复则重新获取 oCN.BeginTran(); if ("Add".Equals(eventType)) { if (!AllowbillNo(HBillNo)) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-013]单据号重复!"; objJsonResult.data = null; return objJsonResult; } //插入主表 oCN.RunProc("Insert Into Sc_StationInBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" + ",HYear,HPeriod,HRemark" + ",HICMOInterID,HICMOBillNo,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo,HProcExchInterID,HProcExchEntryID" + ",HProcExchBillNo,HMaterID,HProcID,HICMOQty,HPlanQty,HStationInTime,HSourceID" + ",HGroupID,HDeptID,HEmpID,HBarCode,HAddr,HBarCodeMaker,HBarCodeMakeDate" + ",HSupID,HQty,HPrice,HMoney,HPieceQty,HSourceName,HCenterID" + ",HProcNo,HOrderProcNO,HMainInterID,HPRDOrgID" + ",HmaterOutqty" + ") " + " values('" + BillType + "','" + (OperationType=="5"?"SUB":BillType) + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",getdate(),'" + HMaker + "',getdate()" + "," + HYear + "," + HPeriod + ",'" + HRemark + "'" + "," + HICMOInterID + ",'" + HICMOBillNo + "'," + HProcPlanInterID + "," + HProcPlanEntryID + ",'" + HProcPlanBillNo + "'," + HProcExchInterID + "," + HProcExchEntryID + ",'" + HProcExchBillNo + "'," + HMaterID + "," + HProcID + "," + HICMOQty + "," + HPlanQty + ",getdate()," + HSourceID + "," + HGroupID + "," + HDeptID + "," + HEmpID + ",'" + HBarCode + "','" + HAddr + "','" + HBarCodeMaker + "',getdate()" + "," + HSupID + "," + HQty + "," + HPrice + "," + HMoney + "," + HPieceQty + ",'" + HSourceName + "'," + HCenterID + ",'" + HProcNo + "','" + HOrderProcNO + "','" + HMainInterID + "'," + HPRDOrgID + ","+ HmaterOutqty + ") "); if(HMaterToSourceInterID!=0) { //生成上料防错单 //插入子表 oCN.RunProc("EXEC h_p_Sc_MaterToSourceBillSub_Insert " + HMaterToSourceInterID.ToString() + ",'" + HMaterToSourceBillNo + "'"); //插入主表 oCN.RunProc("Insert Into Sc_MaterToSourceBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HDate" + ",HYear,HPeriod,HRemark,HMaker,HMakeDate,HChecker,HCheckDate" + ",HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo,HMainSourceBillType" + ",HProcExchInterID,HProcExchEntryID,HProcExchBillNo,HICMOInterID,HICMOEntryID,HICMOBillNo" + ",HSourceID,HProcID,HMaterID,HSourceBarCode,HEquipID,HWorkerID,HWorkerBarCode" + ",HGroupID,HProcNo,HStockOrgID" + ") " + " values('3786','3790'," + HMaterToSourceInterID.ToString() + ",'" + HMaterToSourceBillNo + "',convert(varchar(10),getdate(),120)" + ",year(getdate()),month(getdate()),'工序进站绑定生成','" + HMaker + "',getdate(),'" + HMaker + "',getdate()" + "," + HInterID.ToString() + ",0,'" + HBillNo + "','3790'" + "," + HProcExchInterID.ToString() + "," + HProcExchEntryID.ToString() + ",'" + HProcExchBillNo + "'," + HICMOInterID.ToString() + "," + HICMOEntryID.ToString() + ",'" + HICMOBillNo + "'" + "," + HSourceID.ToString() + "," + HProcID.ToString() + "," + HMaterID.ToString() + ",'',0,0,''" + "," + HGroupID.ToString() + "," + HProcNo.ToString() + "," + HPRDOrgID.ToString() + ") "); } //写入日志 LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增工序进站单据:" + HBillNo); oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增工序进站单据:" + HBillNo + "','LMES-工序进站模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo); } else if ("Modify".Equals(eventType)) { oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_In " + HProcExchInterID + ",-1"); //更新主表 oCN.RunProc("UpDate Sc_StationInBillMain set " + " HBillNo='" + HBillNo + "'" + ",HYear='" + HYear + "'" + ",HPeriod='" + HPeriod + "'" + ",HBillStatus='" + HBillStatus + "'" + ",HRemark='" + HRemark + "'" + ",HUpDater='" + HMaker + "'" + ",HUpDateDate=getdate()" + ",HSupID=" + HSupID + ",HQty=" + HQty + ",HPieceQty=" + HPieceQty + ",HSourceName='" + HSourceName + "'" + ",HICMOInterID=" + HICMOInterID + ",HICMOBillNo='" + HICMOBillNo + "'" + ",HProcPlanInterID=" + HProcPlanInterID + ",HProcPlanEntryID=" + HProcPlanEntryID + ",HProcPlanBillNo='" + HProcPlanBillNo + "'" + ",HProcExchInterID=" + HProcExchInterID + ",HProcExchEntryID=" + HProcExchEntryID + ",HProcExchBillNo='" + HProcExchBillNo + "'" + ",HMaterID=" + HMaterID + ",HProcID=" + HProcID + ",HmaterOutqty=" + HmaterOutqty + ",HICMOQty=" + HICMOQty + ",HPlanQty=" + HPlanQty + ",HStationInTime=getdate()" + ",HSourceID=" + HSourceID + ",HGroupID=" + HGroupID + ",HDeptID=" + HDeptID + ",HEmpID=" + HEmpID + ",HBarCode='" + HBarCode + "'" + ",HSaveBillFlag=0 " + ",HAddr='" + HAddr + "'" + ",HBarCodeMaker='" + HBarCodeMaker + "'" + ",HProcNo='" + HProcNo + "'" + ",HOrderProcNO='" + HOrderProcNO + "'" + " where HInterID=" + HInterID); LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",修改工序进站单据:" + HBillNo); oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "修改工序进站单据:" + HBillNo + "','LMES-工序进站模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo); } else { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[操作类型无效]操作类型无效!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("exec h_p_MES_StationInBill_QtyCtrl " + HInterID + "", "h_p_MES_StationInBill_QtyCtrl"); if (ds == null) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-015]判断数量失败!"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows.Count == 0) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-015]判断数量失败!"; objJsonResult.data = null; return objJsonResult; } if (ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "2") { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-015]" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); objJsonResult.data = null; return objJsonResult; } oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_In " + HInterID + ",1"); //判断是否是 首道工序 ds1 = oCN.RunProcReturn(" select HLastProc,HFstProc from Sc_ProcessExchangeBillMain a " + " inner join Sc_ProcessExchangeBillSub b on a.HInterID=b.HInterID " + " Where a.HInterID=" + HProcExchInterID + " and b.HEntryID=" + HProcExchEntryID + " ", "Sc_ProcessExchangeBillMain"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { } else if (ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HFstProc"]) == "是") { } //=========================保存后控制 ============================ DataSet ds2 = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_AfterSaveCtrl " + HInterID.ToString() + ", '" + HBillNo + "',1 ", "h_p_Sc_StationInBill_AfterSaveCtrl"); if (ds2 == null) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-016]保存后控制判断失败!"; objJsonResult.data = null; return objJsonResult; } if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0") { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-051]保存失败2!" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]); objJsonResult.data = null; return objJsonResult; } //======================================================= oCN.Commit(); if (oSystemParameter.ShowBill(ref sReturn) == true) { if (oSystemParameter.omodel.MES_StationInBill_SaveAutoAddnew == "Y") //系统参数 自动审核 { objJsonResult.Verify = "Y"; } else { objJsonResult.Verify = "N"; } } //测试语句=========================================================================================================== 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 = " + HProcExchInterID; 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(),'" + user + "','" + HComputerName + "','" + "修改工序进站单据:" + HBillNo + "[工序流转卡号:" + HProcExchBillNo + "]" + msg_str + "','LMES-工序出站模块','" + DBUtility.ClsPub.IPAddress + "','新增或修改单据'", ref DBUtility.ClsPub.sExeReturnInfo); //============================================================================================================== objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-050]新增单据成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-051]Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } private bool AllowbillNo(string HBillNo) { ds = oCN.RunProcReturn("select HBillNo from Sc_StationInBillMain where HBillNo = '" + HBillNo + "'", "Sc_StationInBillMain"); if (ds == null || ds.Tables[0].Rows.Count == 0) { return true; } return false; } #endregion #region 工序进站接收单流水号回车获取工序信息,并根据系统参数判断进站单是否绑定配件清单 20240621 [Route("Cj_StationInBill/HProcNo_KeyDown")] [HttpGet] public object HProcNo_KeyDown(string HBillNo, string HProcExchBillNo, Int64 HProcNo, string HMaker) { try { if (HProcExchBillNo.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流转卡没有扫描,或者没有按回车键,请扫描流转卡或在流转卡文本框中按回车键!"; objJsonResult.data = null; return objJsonResult; } //获取系统参数 string sErrMsg = ""; if (oSystemParameter.ShowBill(ref sErrMsg) == true) { string MES_StationInBill_LineBindCtl = "N"; //进站接收时是否绑定该工序的配件清单(Y是需要绑定,N不需要绑定) string MES_StationInBill_DefQty = "4"; //工序进站时默认带入数量(1.流转卡数,2.上道合格数量,3.物料最小包装数量,4.不带入) MES_StationInBill_LineBindCtl = oSystemParameter.omodel.MES_StationInBill_LineBindCtl; MES_StationInBill_DefQty = oSystemParameter.omodel.MES_StationInBill_DefQty; ds = oCN.RunProcReturn("exec h_p_MES_StationInBill_HProcNo_KeyDown '" + HBillNo + "','" + HProcExchBillNo + "'," + HProcNo.ToString() + ",'" + MES_StationInBill_LineBindCtl + "','" + MES_StationInBill_DefQty + "','" + HMaker + "'", "h_p_MES_StationInBill_HProcNo_KeyDown"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "工序号错误或者当前工序号不允许进站,请重新输入!"; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "获取系统参数失败! " + sErrMsg; 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("Cj_StationInBill/txtHProcNo_KeyDown")] [HttpGet] public object txtHProcNo_KeyDown(string sBillNo,string sProcNo) { try { if (sBillNo.Equals("") || sProcNo.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-019]条形码不能为空!"; objJsonResult.data = null; return objJsonResult; } //得到信息(委外标记为0时,流转标记为1时) ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + sBillNo + "' and 下道流转工序<>'转' and 委外标记=0 and 流转标记=1 and 工序号='" + sProcNo + "'", "h_v_Sc_ProcessExchangeBillList"); //Ds = oCn.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + sBillNo + "' and 工序号='" + sProcNo + "' and 委外标记=0 and 流转标记=1 ", "h_v_Sc_ProcessExchangeBillList"); //写入信息 if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-2-013]工序号错误或者当前工序号不允许进站,请重新输入!"; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-037]Sucess!"; objJsonResult.data = ds.Tables[0]; 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 工序进站接收单流水号回车 系统参数判断是否绑定配件清单 [Route("Cj_StationInBill/MES_StationInBillSubBindSource")] [HttpGet] public object MES_StationInBillSubBindSource(string HInterID, string HProcExchInterID,string HProcExchEntryID) { try { //如果系统参数启用了 进站单绑定配件清单则 从生产用料清单中获取工序BOM写入 临时表,并加载表格 Pub_Class.ClsXt_SystemParameter oParam = new ClsXt_SystemParameter(); string sIsBingLine = oParam.GetSingleSystemParameter("MES_StationInBill_LineBindCtl", ref DBUtility.ClsPub.sExeReturnInfo); if (sIsBingLine.Trim() == "Y") { oCN.RunProc("exec h_p_MES_StationInBillSubBindSource_Insert " + HProcExchInterID.ToString() + " , " + HProcExchEntryID.ToString() + "," + HInterID.ToString() + " "); ds = oCN.RunProcReturn($@"select * from ( select a.HICMOInterID,a.HICMOEntryID,b.HProcID from Sc_ProcessExchangeBillMain a with(nolock) inner join Sc_ProcessExchangeBillSub b with(nolock) on a.HInterID=b.HinterID Where a.HInterID={HProcExchInterID} and b.HEntryID={HProcExchEntryID} ) a inner join ( select a.HICMOInterID,a.HICMOEntryID,isnull(c.HItemID,0) HProcID from Sc_PPBomBillMain a with(nolock) inner join Sc_PPBomBillSub b with(nolock) on a.HInterID=b.HInterID left join Gy_Process c on b.HProcName = c.HName )b on a.HICMOInterID=b.HICMOInterID and a.HICMOEntryID=b.HICMOEntryID and a.HProcID=b.HProcID", "Sc_ProcessExchangeBillMain"); if (ds.Tables[0].Rows.Count > 0) { objJsonResult.Message = "[0000-2-026]需要绑定配件!"; } else { objJsonResult.Message = "[0000-2-027]不需要绑定配件!"; } } else { objJsonResult.Message = "[0000-2-027]不需要绑定配件!"; } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.data =null; 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 工序进站接收单流水号回车获取工序信息 [Route("Cj_StationInBill/txtHProcNo_KeyDown_qiaoyi")] [HttpGet] public object txtHProcNo_KeyDown_qiaoyi(string sBillNo, string sProcNo) { try { if (sBillNo.Equals("") || sProcNo.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "条形码不能为空!"; objJsonResult.data = null; return objJsonResult; } //得到信息(委外标记为0时,流转标记为1时) ds = oCN.RunProcReturn("select top 2 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + sBillNo + "' and 下道流转工序<>'转' and 委外标记=0 and 流转标记=1 and cast(工序号 as int)<='" + sProcNo + "' order by cast(工序号 as int) desc", "h_v_Sc_ProcessExchangeBillList"); //Ds = oCn.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + sBillNo + "' and 工序号='" + sProcNo + "' and 委外标记=0 and 流转标记=1 ", "h_v_Sc_ProcessExchangeBillList"); //写入信息 if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "工序号错误或者当前工序号不允许进站,请重新输入!"; objJsonResult.data = null; return objJsonResult; } 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("Cj_StationInBill/GetMessageByEmpNumber")] [HttpGet] public object GetMessageByEmpNumber(string HEmpNumber) { try { //得到信息 ds = oCN.RunProcReturn("select top 1 * from gy_employee where hnumber like '%" + HEmpNumber + "%'", "gy_employee"); //写入信息 if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-028]未查询到职员信息!"; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-037]Sucess!"; objJsonResult.data = ds.Tables[0]; 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 工序进站接收单根据物料代码模糊回车查询 [Route("Cj_StationInBill/GetMessageByMaterNumber")] [HttpGet] public object GetMessageByMaterNumber(string HMaterNumber) { try { //得到信息 ds = oCN.RunProcReturn("select top 1 * from gy_material where hnumber like '%" + HMaterNumber + "%'", "gy_material"); //写入信息 if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "未查询到物料信息!"; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "0"; 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("Cj_StationInBill/get_Display")] [HttpGet] public object get_Display(string sWhere,string user,string HBillSubType) { try { List columnNameList = new List(); if (HBillSubType == "SUB") { //判断是否有查询权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Sub_Query", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "开工单无查询权限!"; objJsonResult.data = null; return objJsonResult; } } else { //判断是否有查询权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Query", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "进站单无查询权限!"; objJsonResult.data = null; return objJsonResult; } } if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select * from h_v_MES_StationInBillList order by hmainid desc", "h_v_MES_StationInBillList"); } else { string sql1 = "select * from h_v_MES_StationInBillList where 1 = 1 "; string sql = sql1 + sWhere+ " order by hmainid desc"; ds = oCN.RunProcReturn(sql, "h_v_MES_StationInBillList"); } //添加列名 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列对象的列名 } //if (ds.Tables[0].Rows.Count != 0 || ds != null) //{ objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; //} //else //{ //objJsonResult.code = "0"; //objJsonResult.count = 0; //objJsonResult.Message = "无数据"; //objJsonResult.data = null; //return objJsonResult; //} } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询数据异常,请与管理员联系!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 返回工序进站接收单列表-分页 [Route("Cj_StationInBill/get_Display_ByPage")] [HttpGet] public object get_Display_ByPage(string sWhere, string user, string Organization, int page, int size, string HBillSubType) { try { List columnNameList = new List(); if (HBillSubType == "SUB") { //判断是否有查询权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Sub_Query", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-1-004]开工单无查询权限!"; objJsonResult.data = null; return objJsonResult; } } else { //判断是否有查询权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Query", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-1-004]进站单无查询权限!"; objJsonResult.data = null; return objJsonResult; } } sWhere = sWhere.Replace("'", "''"); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("exec h_p_MES_StationInBillList " + page + "," + size + ",'" + Organization + "'," + "''", "h_p_MES_StationInBillList"); } else { ds = oCN.RunProcReturn("exec h_p_MES_StationInBillList " + page + "," + size + ",'" + Organization + "','" + sWhere + "'", "h_p_MES_StationInBillList"); } //添加列名 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 = "[0000-1-037]Sucess!"; objJsonResult.list = columnNameList; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-010]查询数据异常,请与管理员联系!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 编辑前判断 [Route("Cj_StationInBill/set_ShowBillJudge")] [HttpGet] public object set_ShowBillJudge(string HBillNo) { try { ds = oCN.RunProcReturn("exec h_p_MES_StationInBill_DelCtrl '" + HBillNo + "'", "h_p_MES_StationInBill_DelCtrl"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-2-018]判断关联失败!"; objJsonResult.data = null; return objJsonResult; } else if(ds.Tables[0].Rows.Count > 0 && Pub_Class.ClsPub.isInt(ds.Tables[0].Rows[0][0]) == 2) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0][1]); objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-037]Sucess!"; objJsonResult.data = ds.Tables[0]; 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获取工序进站接收单信息 [Route("Cj_StationInBill/GetStationInBill")] [HttpGet] public object GetStationOutBill(int HInterID) { try { ds = oCN.RunProcReturn("select * from h_v_GetStationInBill where HInterID = " + HInterID, "h_v_GetStationInBill"); 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 审核 [Route("Cj_StationInBill/set_CheckBill")] [HttpGet] public object set_CheckBill(int HInterID,string CurUserName,string HBillSubType) { try { if (HBillSubType == "SUB") { //审核权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Sub_Check", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-1-006]开工单审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } } else { //审核权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Check", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-1-006]进站单审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } } if (HInterID == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-009]单据ID为0,不能审核!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_StationInBill oBill = new DAL.ClsSc_StationInBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-023]单据已审核!不能再次审核"; objJsonResult.data = null; return objJsonResult; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-045]单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } //审核前控制========================================================================== string HBillNo = oBill.omodel.HBillNo; string sql = "exec h_p_Sc_StationInBill_BeforeCheckCtrl " + HInterID + ",'" + HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_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 (Cj_StationInBillCheckBill(HInterID, HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo)) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-029]审核成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-025]审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; 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; } } //审核 public bool Cj_StationInBillCheckBill(Int64 lngBillKey,string HBillNo, string CurUserName, ref string sReturn) { try { string HChecker = CurUserName; string HCheckDate = DBUtility.ClsPub.GetServerDate(-1); oCN.BeginTran(); ds = oCN.RunProcReturn("Select * from Sc_StationInBillMain Where HInterID=" + lngBillKey.ToString(), "Sc_StationInBillMain"); if (ds.Tables[0].Rows.Count == 0) { sReturn = "单据未找到!"; return false; } oCN.RunProc(" Update Sc_StationInBillMain set HChecker='" + HChecker + "',HCheckDate='" + HCheckDate + "' Where HInterID=" + lngBillKey.ToString()); oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_Check_In " + lngBillKey.ToString() + ",1"); //判断是否是 首道工序 DataSet ds1; ds1 = oCN.RunProcReturn("select HLastProc,HFstProc " + " from Sc_ProcessExchangeBillMain a " + " inner join Sc_ProcessExchangeBillSub b on a.HInterID=b.HInterID " + " Where a.HInterID=(Select HProcExchInterID from Sc_StationInBillMain Where HInterID="+ lngBillKey + ") " + " and b.HEntryID=(Select HProcExchEntryID from Sc_StationInBillMain Where HInterID="+ lngBillKey + ")", "Sc_ProcessExchangeBillMain"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { } else if (Pub_Class.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HFstProc"]) == "是") { } //审核后控制======================================================= string sql = "exec h_p_Sc_StationInBill_AfterCheckCtrl " + lngBillKey + ",'" + HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_AfterCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { sReturn = "审核过程中出错,请与网络管理人员联系"; oCN.RollBack(); return false; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { sReturn = ds.Tables[0].Rows[0]["HRemark"].ToString(); oCN.RollBack(); return false; } //==================================================================== sReturn = sReturn + " 审核功能!"; oCN.Commit(); return true; } catch (Exception e) { sReturn = e.Message; oCN.RollBack(); return false; ; } } #endregion #region 反审核 [Route("Cj_StationInBill/set_AbandonCheck")] [HttpGet] public object set_AbandonCheck(int HInterID, string CurUserName, string HBillSubType) { try { if (HBillSubType == "SUB") { //审核权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Sub_Check", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-1-007]开工单反审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } } else { //审核权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Check", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-1-007]进站单反审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } } if (HInterID == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-009]单据ID为0,不能反审核!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_StationInBill oBill = new DAL.ClsSc_StationInBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-018]单据未审核!不需要反审核!"; objJsonResult.data = null; return objJsonResult; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-005]单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } //反审核前控制============================================================================= string HBillNo = oBill.omodel.HBillNo; string sql = "exec h_p_Sc_StationInBill_BeforeUnCheckCtrl " + HInterID + ",'" + HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_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-027]反审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ; objJsonResult.data = null; return objJsonResult; } //============================================================================================ //反审核 if (Cj_StationInBillAbandonCheckBill(HInterID, HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo)) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-019]反审核成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-028]反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-028]反审核失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } //反审核 public bool Cj_StationInBillAbandonCheckBill(Int64 lngBillKey,string HBillNo, string CurUserName, ref string sReturn) { if (Cj_StationInBillisUse(lngBillKey, ref sReturn)) { return false; } try { string HChecker = CurUserName; string HCheckDate = DBUtility.ClsPub.GetServerDate(-1); oCN.BeginTran(); ds = oCN.RunProcReturn("Select * from Sc_StationInBillMain Where HInterID=" + lngBillKey.ToString(), "Sc_StationInBillMain"); if (ds.Tables[0].Rows.Count == 0) { sReturn = "单据未找到!"; return false; } oCN.RunProc(" Update Sc_StationInBillMain set HChecker='',HCheckDate=null Where HInterID=" + lngBillKey.ToString()); oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_Check_In " + lngBillKey.ToString() + ",-1"); //判断是否是 首道工序 DataSet ds1; ds1 = oCN.RunProcReturn("select HLastProc,HFstProc " + " from Sc_ProcessExchangeBillMain a " + " inner join Sc_ProcessExchangeBillSub b on a.HInterID=b.HInterID " + " Where a.HInterID=(Select HProcExchInterID from Sc_StationInBillMain Where HInterID="+ lngBillKey + ") " + " and b.HEntryID=(Select HProcExchEntryID from Sc_StationInBillMain Where HInterID="+ lngBillKey + ")", "Sc_ProcessExchangeBillMain"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { } else if (Pub_Class.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HFstProc"]) == "是") { } //反审核后控制======================================================================== string sql = "exec h_p_Sc_StationInBill_AfterUnCheckCtrl " + lngBillKey + ",'" + HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_AfterUnCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { sReturn = "反审核过程中出错,请与网络管理人员联系"; oCN.RollBack(); return false; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { sReturn = ds.Tables[0].Rows[0]["HRemark"].ToString(); oCN.RollBack(); return false; } //============================================================================================ sReturn = sReturn + "反审核功能!"; oCN.Commit(); return true; } catch (Exception e) { sReturn = e.Message; oCN.RollBack(); return false; ; } } //是否被关联 public bool Cj_StationInBillisUse(Int64 lngBillKey, ref string sReturn) { try { //查询主表 DataSet Ds; //Ds = oCN.RunProcReturn("Select HinterID from " + MvarItemKeySub + " Where HInterID=" + lngBillKey.ToString() + " and isnull(HRelationQty,0)<>0 ", MvarItemKey); //if (Ds.Tables[0].Rows.Count != 0) //{ // sReturn = "单据已被关联,不能操作!"; // return true; //} sReturn = ""; return false; } catch (Exception e) { sReturn = e.Message; throw (e); } } #endregion #region 工序进站关闭/反关闭功能 [Route("Cj_StationInBill/CloseCj_StationInBill")] [HttpGet] public object CloseSc_StationInBill(string HInterID, int Type, string user,string HBillSubType) { try { if (HBillSubType == "SUB") { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Sub_Close", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-1-008]开工单无权限关闭!"; objJsonResult.data = null; return objJsonResult; } } else { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Close", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-1-008]进站单无权限关闭!"; 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_StationInBillMain"; 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; } } var HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString(); //关闭前控制========================================= string sql1 = "exec h_p_Sc_ShiftsBeginInfoBill_BeforeCloseCtrl " + HInterID + ",'" +HBillNo + "','" + user + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Sc_ShiftsBeginInfoBill_BeforeCloseCtrl"); 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.CloseBill(Int64.Parse(HInterID), HBillNo, "h_p_Sc_ShiftsBeginInfoBill_AfterCloseCtrl", user,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; } } var HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString(); //反关闭前控制========================================= string sql1 = "exec h_p_Sc_StationInBill_BeforeUnCloseCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Sc_StationInBill_BeforeUnCloseCtrl"); 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.CancelClose(Int64.Parse(HInterID), HBillNo, "h_p_Sc_StationInBill_AfterUnCloseCtrl", user, 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-037]执行失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion //批量进站 #region 批量进站模块返回明细信息列表 [Route("Cj_StationInBill/get_BarCodeDetail")] [HttpGet] public object get_BarCodeDetail(string HMainInterID) { try { ds = oCN.RunProcReturn( "select a.HBillNo,a.HInterID,a.HQty,a.HProcExchBillNo,a.HICMOBillNo" + ",b.HNumber HMaterNumber,b.HName HMaterName,b.HModel HMaterModel,c.HName HSourceName,d.HName HGroupName" + ",e.HName HEmpName,a.HMaker,a.HMakeDate " + " from Sc_StationInBillMain a " + " left join Gy_Material b on a.HMaterID = b.HItemID " + " left join Gy_Source c on a.HSourceID = c.HItemID " + " left join Gy_Group d on a.HGroupID = d.HItemID " + " left join Gy_Employee e on a.HEmpID = e.HItemID " + " where HMainInterID = " + HMainInterID + " order by a.HMakeDate desc", "Sc_StationInBillMain"); 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 = "返回记录成功!"; 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("Cj_StationInBill/del_StationInBill")] [HttpGet] public object del_StationInBill(long HInterID,string HDeleteMan,string HBillSubType) { try { string HComputerName = SystemInformation.ComputerName; //设备名称 if (HBillSubType == "SUB") { //编辑权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Sub_Drop", 1, false, HDeleteMan)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-1-005]开工单无权限!"; objJsonResult.data = null; return objJsonResult; } } else { //编辑权限 if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Drop", 1, false, HDeleteMan)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[3790-1-005]进站接收单无权限!"; objJsonResult.data = null; return objJsonResult; } } DAL.ClsSc_StationInBill oBill = new DAL.ClsSc_StationInBill(); if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { string sReturn = ""; if (oSystemParameter.ShowBill(ref sReturn)) { if (oSystemParameter.omodel.MES_StationInBill_DeleteCtl == "Y") { if (oBill.omodel.HMaker != HDeleteMan && (HDeleteMan != "admin" && HDeleteMan != "Admin")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-011]只能删除本人的单据!"; objJsonResult.data = null; return objJsonResult; } } } SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet ds; //判断是否存在 相同单据号 的领料单 判断生产订单是否已结案,要求计划手工反结案 ds = oCn.RunProcReturn("exec h_p_MES_StationInBill_DelCtrl '" + oBill.omodel.HBillNo + "'", "h_p_MES_StationInBill_DelCtrl"); if (ds == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "判断关联失败!"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows.Count > 0 && Pub_Class.ClsPub.isInt(ds.Tables[0].Rows[0][0]) == 2) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0][1]); objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HChecker != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已经审核,不能删除!"; objJsonResult.data = null; return objJsonResult; } ds = oCn.RunProcReturn($"exec h_p_DelOutInBill {HInterID},'MES_StationInBill_DeleteRelationCtl'", "h_p_DelOutInBill"); if (ds.Tables[0].Rows[0][0].ToString() == "0") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "系统参数控制,已有下道工序,不能删除!"; objJsonResult.data = null; return objJsonResult; } //删除前控制========================================= string HBillNo = oBill.omodel.HBillNo; string sql1 = "exec h_p_Sc_StationInBill_BeforeDelCtrl " + HInterID + ",'" + HBillNo + "','" + HDeleteMan + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Sc_StationInBill_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; 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; return objJsonResult; } //================================================================================== if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HProcExchInterID, oBill.omodel.HProcExchEntryID, HBillNo, "h_p_Sc_StationInBill_AfterDelCtrl", HDeleteMan, ref DBUtility.ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { //写入删除日志 LogService.Write("用户:" + HDeleteMan + ",日期:" + DateTime.Now + ",删除工序进站单据:" + oBill.omodel.HBillNo); oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + HDeleteMan + "','" + HComputerName + "','" + "删除工序进站单据:" + oBill.omodel.HBillNo + "','LMES-工序进站模块','" + DBUtility.ClsPub.IPAddress + "','删除单据'", ref DBUtility.ClsPub.sExeReturnInfo); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除成功!"; objJsonResult.data = null; return objJsonResult; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未找到!"; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "异常!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 查看工序流转卡关联数量列表加载 [Route("Cj_StationInBill/GetStationQtyList")] [HttpGet] public object GetStationQtyList(string HInterID) { try { ds = oCN.RunProcReturn("execute h_p_Sc_ProcExchBilltransRelationQty @HInterID=" + HInterID, "h_p_Sc_ProcExchBilltransRelationQty"); 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 = "返回记录成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception ex) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + ex.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 返回用户获取默认值列表 [Route("Cj_StationInBill/GetDefValByUser")] [HttpGet] public object GetDefValByUser(string Czybm, string Czymc) { try { ////判断是否有查询权限 //if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Query", 1, false, user)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "无查询权限!"; // objJsonResult.data = null; // return objJsonResult; //} if (Czymc == null || Czymc.Equals("")) { ds = oCN.RunProcReturn("select * from h_v_Cj_GetDefValByUser", "h_v_Cj_GetDefValByUser"); } else { string sql1 = "select * from h_v_Cj_GetDefValByUser where 1 = 1 "; string sql = sql1 + " and 用户编码 ='" + Czybm + "' and 用户名称 ='" + Czymc + "'"; ds = oCN.RunProcReturn(sql, "h_v_Cj_GetDefValByUser"); } if (ds.Tables[0].Rows.Count != 0 || ds != null) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无数据"; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询数据异常,请与管理员联系!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 工序进站汇报单文件上传处理 [Route("Cj_StationInBill/UploadFile1")] [HttpPost] public object UploadFile1() { string HBillNo = HttpContext.Current.Request.Params["HBillNo"]; //单据号 string HRemark = HttpContext.Current.Request.Params["HRemark"]; //备注 string HUserName = HttpContext.Current.Request.Params["HUserName"]; //创建人 HttpPostedFile files = HttpContext.Current.Request.Files["file"]; string path = HttpContext.Current.Server.MapPath("~/../Files/Cj_StationInBill/" + HBillNo); //string path = @"D:\\Files\\"+ HBillNo; dynamic dyResult = UpLoadFile(files, path, HBillNo, HRemark, HUserName); if (dyResult != null && dyResult.result == 1) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "上传成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = dyResult.returnval; objJsonResult.data = null; return objJsonResult; } } public dynamic UpLoadFile(HttpPostedFile files, string path, string HBillNo, string HRemark, string HUserName) { dynamic Result_Ob = new { result = 1, returnval = "上传成功!" }; string filePath = Path.GetFullPath(files.FileName);//文件上传路径 string fileExtension = Path.GetExtension(files.FileName);// 文件扩展名 string filename = files.FileName;//文件名 string fileSavePath = path;// 上传保存路径 int filesize = files.ContentLength;//获取上传文件的大小单位为字节byte int Maxsize = 40000 * 1024;//定义上传文件的最大空间大小为40M try { if (files == null || files.ContentLength <= 0) { Result_Ob = new { result = 0, returnval = "文件不能为空!" }; return Result_Ob; } if (filesize >= Maxsize) { Result_Ob = new { result = 0, returnval = "上传文件超过40M,不能上传!" }; return Result_Ob; } string fileurl = Path.Combine(fileSavePath, filename); if (Directory.Exists(fileurl) == true) //如果存在重名文件就提示 { Result_Ob = new { result = 0, returnval = "存在同名文件!" }; return Result_Ob; } //删除数据表数据 ds = oCN.RunProcReturn("delete from MES_AccessoriesList where HSourceBillNo ='" + HBillNo + "' and HFileName='" + filename + "'", "MES_AccessoriesList"); if (Directory.Exists(path)) { File.Delete(fileurl); //删除指定文件 files.SaveAs(fileurl); string StrPath = "/files/Cj_StationInBill/" + HBillNo + "/" + filename; if (File.Exists(fileurl)) { //这里可以执行一些其它的操作,比如更新数据库 //写入数据表 oCN.RunProc("Insert into MES_AccessoriesList (HFileName,HFilePath,HFilePath_Cus,HFileType" + ",HLoadMan,HLoadDate,HRemark,HVerNum,HFileSize" + ",HFileClsID,HSourceBillNo" + ") values('" + filename.ToString() + "','" + StrPath.ToString() + "','" + filePath.ToString() + "','" + fileExtension.ToString() + "'" + ",'" + HUserName + "',getdate(),'" + HRemark + "','V1','" + filesize + "','" + 0 + "','" + HBillNo + "') "); } else { Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" }; } } else { Directory.CreateDirectory(fileSavePath); //添加文件夹 files.SaveAs(fileurl); string StrPath = "/files/Cj_StationInBill/" + HBillNo + "/" + filename; if (File.Exists(fileurl)) { //这里可以执行一些其它的操作,比如更新数据库 //写入数据表 oCN.RunProc("Insert into MES_AccessoriesList (HFileName,HFilePath,HFilePath_Cus,HFileType" + ",HLoadMan,HLoadDate,HRemark,HVerNum,HFileSize" + ",HFileClsID,HSourceBillNo" + ") values('" + filename.ToString() + "','" + StrPath.ToString() + "','" + filePath.ToString() + "','" + fileExtension.ToString() + "'" + ",'" + HUserName + "',getdate(),'" + HRemark + "','V1','" + filesize + "','" + 0 + "','" + HBillNo + "') "); } else { Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" }; } } } catch (Exception e) { Result_Ob = new { result = 0, returnval = e.Message }; } return Result_Ob; } /// /// 根据单据号查找上传文件列表 /// /// /// [Route("Cj_StationInBill/Filelist")] [HttpGet] public object Filelist(string HBillNo) { var url = fileip + "/files/Cj_StationInBill/" + HBillNo + "/"; //@"C:\\files\\" try { ds = oCN.RunProcReturn("select *,'" + url + "'+CAST(HFileName as varchar(200))as url from MES_AccessoriesList where HSourceBillNo='" + HBillNo + "'", "MES_AccessoriesList"); 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; } } /// /// 根据ID,单据号,文件名 删除文件 /// /// /// [Route("Cj_StationInBill/DeleteFilelist")] [HttpGet] public object DeleteFilelist(string HItemID, string HSourceBillNo, string HFileName) { try { oCN.RunProc("delete from MES_AccessoriesList where HItemID =" + HItemID); string fileurl = Path.Combine(HttpContext.Current.Server.MapPath("~/../Files/Cj_StationInBill/" + HSourceBillNo), HFileName); File.Delete(fileurl); //删除指定文件 objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "[0000-1-008]删除成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "[0000-1-007]Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion } }