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.Web.Http; using WebAPI.Models; namespace WebAPI.Controllers { //委外工序发出单Controller public class Cj_StationEntrustInBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill(); private json objJsonResult = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds; #region 返回委外工序发出单列表 [Route("Cj_StationEntrustInBill/list")] [HttpGet] public object list(string sWhere,string user) { try { List columnNameList = new List(); //判断是否有查询权限 if (!DBUtility.ClsPub.Security_Log("MES_StationEntrustInBill_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_StationEntrustInBillList", "h_v_MES_StationEntrustInBillList"); // order by hmainid desc 排序丢到数据库里进行处理 } else { string sql1 = "select * from h_v_MES_StationEntrustInBillList where 1 = 1 "; string sql = sql1 + sWhere+ " order by hmainid desc"; ds = oCN.RunProcReturn(sql, "h_v_MES_StationEntrustInBillList"); } //添加列名 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.list = columnNameList; 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 = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 委外工序发出单流水号回车获取流转卡信息(委外工序接收、工序进站接收通用) [Route("Cj_StationEntrustInBill/txtHBarCode_KeyDown")] [HttpGet] public object txtHBarCode_KeyDown(string HBarCode) { try { if (HBarCode == null || HBarCode.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "条形码不能为空!"; objJsonResult.data = null; return objJsonResult; } //拆分条形码 string sBillBarCode = HBarCode.Trim(); string[] NewBarCode; if (sBillBarCode.CompareTo("#") > 0) { NewBarCode = sBillBarCode.Split(Convert.ToChar("#")); sBillBarCode = NewBarCode[0]; } string sBillNo = sBillBarCode; //得到信息 ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + sBillNo + "'", "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 委外工序发出单流水号回车获取条码信息2 [Route("Cj_StationBill/txtHBarCode_KeyDown2")] [HttpGet] public object txtHBarCode_KeyDown2(string HBarCode,string HInterID,string UserID,string HBillType) { try { if (HBarCode == null || HBarCode.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "空白码,条形码不能为空!"; objJsonResult.data = null; return objJsonResult; } //拆分条形码 string sBillBarCode = HBarCode.Trim(); string[] NewBarCode; if (sBillBarCode.CompareTo("#") > 0) { NewBarCode = sBillBarCode.Split(Convert.ToChar("#")); sBillBarCode = NewBarCode[0]; } string sBillNo = sBillBarCode; //条形码 string[] arr = sBillNo.Split('&'); //以符号‘&’分割条形码 string BillNo_PGD = arr[0]; //单据号 string entryid_PGD = "";//子id if(arr.Length > 1) { entryid_PGD = arr[1]; } //截取条码类型 前两位 string BillNoType1 = BillNo_PGD.Substring(0, Math.Min(2, BillNo_PGD.Length)); //截取条码类型 前三位 string BillNoType = BillNo_PGD.Substring(0, Math.Min(3, BillNo_PGD.Length)); //截取条码类型2 前四位 string BillNoType2 = BillNo_PGD.Substring(0, Math.Min(4, BillNo_PGD.Length)); //截取内码 string BillNo = BillNo_PGD.Substring(3, Math.Min(BillNo_PGD.Length - 3, BillNo_PGD.Length)); switch (BillNoType1) { case "20"://流转卡 string sErr = ""; if (oSystemParameter.ShowBill(ref sErr)) { if (oSystemParameter.omodel.WMS_CampanyName == "杭州斯莫尔") { ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + BillNo_PGD + "'", "h_v_Sc_ProcessExchangeBillList"); } } break; } switch (BillNoType2) { case "GXLZ"://工序流转派工 ds = oCN.RunProcReturn("select * from h_v_Sc_ProcExchSendWorkBill where 派工单据号 = '" + BillNo_PGD + "'" + " and HEntryID ='" + entryid_PGD + "'", "h_v_Sc_ProcExchSendWorkBill"); break; case "GXLX"://流转卡 string sErr = ""; if (oSystemParameter.ShowBill(ref sErr)) { if (oSystemParameter.omodel.WMS_CampanyName == "乔一") { //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是 if (oSystemParameter.omodel.MES_StationInBill_ShowUSERProcess == "Y") { ds = oCN.RunProcReturn($"exec h_p_ProcessExchangeBillLastHProNo '{BillNo_PGD}','{UserID}','{HBillType}'", "h_v_Gy_ProcessList_GetProcNoByUser"); } else { ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + BillNo_PGD + "'", "h_v_Sc_ProcessExchangeBillList"); } } else if (entryid_PGD != "") //如果子id不为空则加入子id过滤; { ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + BillNo_PGD + "'" + " and hsubid ='" + entryid_PGD + "'", "h_v_Sc_ProcessExchangeBillList"); } else { ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + BillNo_PGD + "'", "h_v_Sc_ProcessExchangeBillList"); } } break; } switch (BillNoType) //得到信息 { case "HCX"://生产资源码 ds = oCN.RunProcReturn("select * from h_v_Gy_SourceList where 条码编号 = '" + BillNo + "'", "h_v_Gy_SourceList"); break; case "SBM"://设备码 ds = oCN.RunProcReturn("select * from h_v_Gy_EquipMentList where HItemID = '" + BillNo + "'", "h_v_Gy_EquipMentList"); break; case "JYM"://员工码--检验员 ds = oCN.RunProcReturn("select * from h_v_Gy_EmployeeList_New where HItemID = '" + BillNo + "'", "h_v_Gy_EmployeeList_New"); break; case "GRM"://员工码--操作员,接收人 ds = oCN.RunProcReturn("select * from h_v_Gy_EmployeeList_New where HItemID = '" + BillNo + "'", "h_v_Gy_EmployeeList_New"); break; //case "CGM"://员工码 // ds = oCN.RunProcReturn("select * from h_v_Gy_EmployeeList_New where HItemID = '" + BillNo + "'", "h_v_Gy_EmployeeList_New"); // break; case "HWH"://仓库码 ds = oCN.RunProcReturn("select * from h_v_Gy_WareHouseList where 条码编号 = '" + HBarCode + "'", "h_v_Gy_WareHouseList"); break; case "HSP"://仓位码 ds = oCN.RunProcReturn("select * from h_v_Gy_StockPlaceList where 条码编号 = '" + HBarCode + "'", "h_v_Gy_StockPlaceList"); break; case "WKM"://工作中心码 ds = oCN.RunProcReturn("select * from h_v_Gy_WorkCenterList where HItemID = '" + BillNo + "'", "h_v_Gy_WorkCenterList"); break; case "BZM"://班组码 ds = oCN.RunProcReturn("select * from h_v_Gy_GroupList where 条码编号 = '" + BillNo + "'", "h_v_Gy_GroupList"); break; case "PRO"://工序码 string sReturn = ""; if (oSystemParameter.ShowBill(ref sReturn) == true) { if(HBillType == "In") { //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是 if (oSystemParameter.omodel.MES_StationInBill_ShowUSERProcess == "Y") { ds = oCN.RunProcReturn("select top 1 * from h_v_Gy_ProcessList_GetProcNoByUser where HItemID = '" + BillNo + "' and HInterID = '" + HInterID + "' and 用户编码 = '" + UserID + "'" + " order by 序号 asc", "h_v_Gy_ProcessList_GetProcNoByUser"); } else { ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList_GetProcNo where HItemID = '" + BillNo + "' and HInterID = '" + HInterID + "'" + " order by 序号 asc", "h_v_Gy_ProcessList_GetProcNo"); } } else if(HBillType == "Out") { //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是 if (oSystemParameter.omodel.MES_StationOutBill_ShowUSERProcess == "Y") { ds = oCN.RunProcReturn("select top 1 * from h_v_Gy_ProcessList_GetProcNoByUser where HItemID = '" + BillNo + "' and HInterID = '" + HInterID + "' and 用户编码 = '" + UserID + "'" + " order by 序号 asc", "h_v_Gy_ProcessList_GetProcNoByUser"); } else { ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList_GetProcNo where HItemID = '" + BillNo + "' and HInterID = '" + HInterID + "'" + " order by 序号 asc", "h_v_Gy_ProcessList_GetProcNo"); } } } break; case "WLM"://物料码 ds = oCN.RunProcReturn("select * from h_v_Gy_MaterialList where HItemID = '" + BillNo + "'", "h_v_Gy_MaterialList"); break; } //写入信息 if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "未查询到条码信息!"; objJsonResult.data = null; if(BillNoType == "PRO") { ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList where HItemID = '" + BillNo + "'", "h_v_Gy_ProcessList"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.Message = "未查询到条码信息!"; } else { objJsonResult.Message = "用户未关联相关工序或流转卡无此工序,如有需要请维护"; } } 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_StationBill/txtHBarCode_Mater_KeyDown")] [HttpGet] public object txtHBarCode_Mater_KeyDown(string HBarCode, string HInterID) { try { if (HBarCode == null || HBarCode.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "空白码,条形码不能为空!"; objJsonResult.data = null; return objJsonResult; } //判断条形码是否在条码档案中,判断条形码是否合理 //先判断 临时表中是否有数据,条形码的物料是否在清单中,写入 扫码记录表 //得到信息 ds = oCN.RunProcReturn("exec h_p_MES_StationInBillSub_BindBarCode " + HInterID.ToString() + " ,'" + HBarCode + "'", "h_p_MES_StationInBillSub_BindBarCode"); //写入信息 if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "未查询到条形码信息!"; objJsonResult.data = null; return objJsonResult; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 2) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "错误!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0][1]); objJsonResult.data = null; return objJsonResult; } DataSet Dsplay = oCN.RunProcReturn("exec h_p_MES_StationInBillSub_BindDisplay " + HInterID.ToString() + " ", "h_p_MES_StationInBillSub_BindDisplay"); //写入信息 if (Dsplay == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "刷新失败,无数据显示!"; objJsonResult.data = null; return objJsonResult; } else if (Dsplay.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 = "绑定成功!"; 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("MES_SampleRecordBill_PDA/SampleRecordBillHBarCode_KeyDown")] [HttpGet] public object SampleRecordBillHBarCode_KeyDown(string HBarCode, string HInterID, string UserID, string HBillType) { try { if (HBarCode == null || HBarCode.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "空白码,条形码不能为空!"; objJsonResult.data = null; return objJsonResult; } //拆分条形码 string sBillBarCode = HBarCode.Trim(); string[] NewBarCode; if (sBillBarCode.CompareTo("#") > 0) { NewBarCode = sBillBarCode.Split(Convert.ToChar("#")); sBillBarCode = NewBarCode[0]; } string sBillNo = sBillBarCode; //条形码 string[] arr = sBillNo.Split('&'); //以符号‘&’分割条形码 string BillNo_PGD = arr[0]; //单据号 string entryid_PGD = "";//子id if (arr.Length > 1) { entryid_PGD = arr[1]; } //截取条码类型 前三位 string BillNoType = BillNo_PGD.Substring(0, Math.Min(3, BillNo_PGD.Length)); //截取条码类型2 前四位 string BillNoType2 = BillNo_PGD.Substring(0, Math.Min(4, BillNo_PGD.Length)); //截取内码 string BillNo = BillNo_PGD.Substring(3, Math.Min(BillNo_PGD.Length - 3, BillNo_PGD.Length)); string sErr = ""; switch (BillNoType2) { case "GXLX"://流转卡 string sql = ""; if (oSystemParameter.ShowBill(ref sErr)) { if (oSystemParameter.omodel.WMS_CampanyName == "乔一") { //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是 if (HBillType == "7505") { ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBill__ProcList '" + BillNo_PGD + "' ", "h_p_Sc_ProcessExchangeBill__ProcList"); } else { ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + BillNo_PGD + "'", "h_v_Sc_ProcessExchangeBillList"); } } else { if (oSystemParameter.ShowBill(ref sErr)) { switch (oSystemParameter.omodel.QC_FirstPieceCheckBill_QCSchemeSource) { case "工序": sql = "exec h_p_QC_FirstPieceCheck_GetProcessExchangeBillList " + "'工序','" + BillNo_PGD + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPieceCheck_GetProcessExchangeBillList"); break; case "物料": sql = "exec h_p_QC_FirstPieceCheck_GetProcessExchangeBillList " + "'物料','" + BillNo_PGD + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPieceCheck_GetProcessExchangeBillList"); break; case "工艺路线": sql = "exec h_p_QC_FirstPieceCheck_GetProcessExchangeBillList " + "'工艺路线','" + BillNo_PGD + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPieceCheck_GetProcessExchangeBillList"); break; } } } } break; case "GXJZ": //截取条码类型 前三位 string HBillNo = HBarCode.Substring(4, HBarCode.Length - 4); ds = oCN.RunProcReturn("select * from Sc_StationInBillMain where HBillNo = '" + HBillNo + "'", "Sc_StationInBillMain"); Int64 HStationInInterID = 0; if (ds != null || ds.Tables[0].Rows.Count > 0) { HStationInInterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HInterID"]); } if (oSystemParameter.ShowBill(ref sErr)) { switch (oSystemParameter.omodel.QC_FirstPieceCheckBill_QCSchemeSource) { case "工序": sql = "exec h_p_QC_FirstPiece_GetStationInBillList " + "'工序','" + HStationInInterID + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPiece_GetStationInBillList"); break; case "物料": sql = "exec h_p_QC_FirstPiece_GetStationInBillList " + "'物料','" + HStationInInterID + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPiece_GetStationInBillList"); break; case "工艺路线": sql = "exec h_p_QC_FirstPiece_GetStationInBillList " + "'工艺路线','" + HStationInInterID + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_FirstPiece_GetStationInBillList"); break; } } break; case "MO00": if (oSystemParameter.ShowBill(ref sErr)) { switch (oSystemParameter.omodel.QC_FirstPieceCheckBill_QCSchemeSource) { case "工序": sql = "exec h_p_QC_ProcessCheck_GetICMOList " + "'工序','" + HBarCode + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetICMOList"); break; case "物料": sql = "exec h_p_QC_ProcessCheck_GetICMOList " + "'物料','" + HBarCode + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetICMOList"); break; case "工艺路线": sql = "exec h_p_QC_ProcessCheck_GetICMOList " + "'工艺路线','" + HBarCode + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetICMOList"); break; } } break; default: if (oSystemParameter.omodel.WMS_CampanyName == "乔一") { //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是 objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "条码错误!"; objJsonResult.data = null; return objJsonResult; } else { break; } } switch (BillNoType) //得到信息 { case "HCX"://生产资源码 ds = oCN.RunProcReturn("select * from h_v_Gy_SourceList where 条码编号 = '" + BillNo + "'", "h_v_Gy_SourceList"); break; } if (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 = ""; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region PDA工序检验单扫码获取信息 [Route("MES_ProcessBill_PDA/HBarCode_KeyDown")] [HttpGet] public object HBarCode_KeyDown(string HBarCode, string HInterID, string UserID, string HBillType) { try { if (HBarCode == null || HBarCode.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "空白码,条形码不能为空!"; objJsonResult.data = null; return objJsonResult; } //拆分条形码 string sBillBarCode = HBarCode.Trim(); string[] NewBarCode; if (sBillBarCode.CompareTo("#") > 0) { NewBarCode = sBillBarCode.Split(Convert.ToChar("#")); sBillBarCode = NewBarCode[0]; } string sBillNo = sBillBarCode; //条形码 string[] arr = sBillNo.Split('&'); //以符号‘&’分割条形码 string BillNo_PGD = arr[0]; //单据号 string entryid_PGD = "";//子id if (arr.Length > 1) { entryid_PGD = arr[1]; } //截取条码类型 前三位 string BillNoType = BillNo_PGD.Substring(0, Math.Min(3, BillNo_PGD.Length)); //截取条码类型2 前四位 string BillNoType2 = BillNo_PGD.Substring(0, Math.Min(4, BillNo_PGD.Length)); //截取内码 string BillNo = BillNo_PGD.Substring(3, Math.Min(BillNo_PGD.Length - 3, BillNo_PGD.Length)); string sErr = ""; switch (BillNoType2) { case "GXLX"://流转卡 string sql = ""; if (oSystemParameter.ShowBill(ref sErr)) { if (oSystemParameter.omodel.WMS_CampanyName == "乔一") { //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是 ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + BillNo_PGD + "'", "h_v_Sc_ProcessExchangeBillList"); } else { if (oSystemParameter.ShowBill(ref sErr)) { switch (oSystemParameter.omodel.QC_ProcessCheckBill_QCSchemeSource) { case "工序": sql = "exec h_p_QC_ProcessCheck_GetProcessExchangeBillList " + "'工序','" + BillNo_PGD + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetProcessExchangeBillList"); break; case "物料": sql = "exec h_p_QC_ProcessCheck_GetProcessExchangeBillList " + "'物料','" + BillNo_PGD + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetProcessExchangeBillList"); break; case "工艺路线": sql = "exec h_p_QC_ProcessCheck_GetProcessExchangeBillList " + "'工艺路线','" + BillNo_PGD + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetProcessExchangeBillList"); break; } } } } break; case "GXCZ": ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HBillNo = '" + HBarCode + "'", "Sc_StationOutBillMain"); Int64 HStationOutInterID = 0; if (ds != null || ds.Tables[0].Rows.Count > 0) { HStationOutInterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HInterID"]); } if (oSystemParameter.ShowBill(ref sErr)) { switch (oSystemParameter.omodel.QC_ProcessCheckBill_QCSchemeSource) { case "工序": sql = "exec h_p_QC_ProcessCheck_GetStationOutBillList " + "'工序','" + HStationOutInterID + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetStationOutBillList"); break; case "物料": sql = "exec h_p_QC_ProcessCheck_GetStationOutBillList " + "'物料','" + HStationOutInterID + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetStationOutBillList"); break; case "工艺路线": sql = "exec h_p_QC_ProcessCheck_GetStationOutBillList " + "'工艺路线','" + HStationOutInterID + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetStationOutBillList"); break; } } break; case "MO00": if (oSystemParameter.ShowBill(ref sErr)) { switch (oSystemParameter.omodel.QC_ProcessCheckBill_QCSchemeSource) { case "工序": sql = "exec h_p_QC_ProcessCheck_GetICMOList " + "'工序','" + HBarCode + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetICMOList"); break; case "物料": sql = "exec h_p_QC_ProcessCheck_GetICMOList " + "'物料','" + HBarCode + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetICMOList"); break; case "工艺路线": sql = "exec h_p_QC_ProcessCheck_GetICMOList " + "'工艺路线','" + HBarCode + "'"; ds = oCN.RunProcReturn(sql, "h_p_QC_ProcessCheck_GetICMOList"); break; } } break; default: if (oSystemParameter.omodel.WMS_CampanyName == "乔一") { //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是 objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "条码错误!"; objJsonResult.data = null; return objJsonResult; } else { break; } } switch (BillNoType) //得到信息 { case "HCX"://生产资源码 ds = oCN.RunProcReturn("select * from h_v_Gy_SourceList where 条码编号 = '" + BillNo + "'", "h_v_Gy_SourceList"); break; } if (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 = ""; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 试样记录 查询列表 [Route("MES_SampleRecordBill_PDA/SampleRecordList")] [HttpGet] public object SampleRecordList(string sWhere,string user) { try { //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("QC_TestSampleCheckBill_Query", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查询权限!"; objJsonResult.data = null; return objJsonResult; } string sql = "select * from h_v_QC_TestSampleCheckBillList where 1=1 " + sWhere + " order by 日期 "; ds = oCN.RunProcReturn(sql, "h_v_QC_TestSampleCheckBillList"); DataTable dt = ds.Tables[0]; //获取列名 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 = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.list = columnNameList; objJsonResult.data = dt; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 试样记录新增保存 [Route("MES_SampleRecordBill_PDA/SampleRecordAddBill")] [HttpPost] public object SampleRecordAddBill([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();//类型 //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("QC_TestSampleCheckBill_Edit", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无编辑权限!"; objJsonResult.data = null; return objJsonResult; } List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); string BillType = "7510"; string HBillSubType = "7510"; string eventType = list[0].eventType; long HInterID = list[0].HInterID;//递入type得到的单据ID string HBillNo = list[0].HBillNo;//递入type得到的单据号 int HBillStatus = 1; string HMaker = user;//制单人 int HYear = DateTime.Now.Year; double HPeriod = DateTime.Now.Month; long HSourceID = list[0].HSourceID;//生产资源 long HICMOInterID = list[0].HICMOInterID;//任务单ID string HICMOBillNo = list[0].HICMOBillNo;//任务单 string HProcExchBillNo = list[0].HProcExchBillNo;//指引卡 long HMaterID = list[0].HMaterID;//产品ID long HUnitID = list[0].HUnitID;//计量单位 long HProcID = list[0].HProcID;//工序ID long HPRDORGID = list[0].HPRDORGID;//组织ID long HLastResult = list[0].HLastResult;//试样结论 //单据完整性判断 if (HProcExchBillNo =="") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流转卡没有选择!请扫描条形码或输入条形码后回车"; objJsonResult.data = null; return objJsonResult; } var num = 0; oCN.BeginTran(); if ("Add".Equals(eventType)) { num = 1; ds = oCN.RunProcReturn("select * from QC_TestSampleCheckBillMain where HBillNo='" + HBillNo + "'", "QC_TestSampleCheckBillMain"); if (ds.Tables[0].Rows.Count == 1) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据号重复!"; objJsonResult.data = null; return objJsonResult; } oCN.RunProc("Insert Into QC_TestSampleCheckBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" + ",HYear,HPeriod,HMaterID,HSourceID,HICMOInterID,HICMOBillNo,HProcExchBillNo,HUnitID" + ",HPRDORGID,HLastResult)" + " values('" + BillType + "','" + HBillSubType + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",getdate(),'" + HMaker + "',getdate()" + "," + HYear + "," + HPeriod + ",'" + HMaterID + "','" + HSourceID + "'," + HICMOInterID + ",'" + HICMOBillNo + "','" + HProcExchBillNo + "'," + HUnitID + "," + HPRDORGID + ",'" + HLastResult + "') "); } else { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "操作类型无效!"; objJsonResult.data = null; return objJsonResult; } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增单据成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 试样记录 审核/反审核功能 [Route("MES_SampleRecordBill_PDA/CheckSampleRecordBill")] [HttpGet] public object CheckSampleRecordBill(string HInterID, int Type, string user) { try { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("QC_TestSampleCheckBill_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; } BillOld.MvarItemKey = "QC_TestSampleCheckBillMain"; 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; } } //审核单据 oCN.RunProc(" Update " + BillOld.MvarItemKey + " set HChecker='" + user + "',HCheckDate=getdate(),HBillStatus=2 Where HInterID=" + HInterID.ToString()); } 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; } } //反审核单据 oCN.RunProc(" Update " + BillOld.MvarItemKey + " set HChecker='',HCheckDate=null,HBillStatus=1 Where HInterID=" + HInterID.ToString()); } 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("MES_SampleRecordBill_PDA/DelSampleRecordBill")] [HttpGet] public object DelSampleRecordBill(Int64 lngBillKey, string user) { DataSet ds; string ModRightNameCheck = "QC_TestSampleCheckBill_Detete"; try { //删除权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!无权限!"; objJsonResult.data = null; return objJsonResult; } SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (lngBillKey == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据id为空!"; objJsonResult.data = null; return objJsonResult; } oCN.BeginTran();//开始事务 ds = oCN.RunProcReturn("select * from QC_TestSampleCheckBillMain where HInterID=" + lngBillKey, "QC_TestSampleCheckBillMain"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有数据,无法删除!"; objJsonResult.data = null; return objJsonResult; ; } string HChecker = Convert.ToString(ds.Tables[0].Rows[0]["HChecker"]); if (HChecker != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已经审核,不能删除!"; objJsonResult.data = null; return objJsonResult; } oCN.RunProc("delete from QC_TestSampleCheckBillMain where HInterID=" + lngBillKey); 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("ColorRecord/ColorRecordList")] [HttpGet] public object ColorRecordList(string sWhere,string user) { try { //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("QC_FirstPieceCheckBill_Query", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查询权限!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("select ManagerFlag from gy_czygl where czymc='" + user.Trim() + "'", "gy_czygl"); string sErr = ""; oSystemParameter.ShowBill(ref sErr); if (oSystemParameter.omodel.WMS_CampanyName == "乔一") { } else { if (!(bool)ds.Tables[0].Rows[0]["ManagerFlag"]) //是否管理员 { //不是管理员 sWhere += " and 制单人 = '" + user + "'"; } } string sql = "select * from h_v_QC_FirstPieceCheckBillMainList where 1=1 " + sWhere ; ds = oCN.RunProcReturn(sql, "h_v_QC_FirstPieceCheckBillMainList"); DataTable dt = ds.Tables[0]; //获取列名 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 = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.list = columnNameList; objJsonResult.data = dt; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 对色记录新增保存 [Route("MES_SampleRecordBill_PDA/ColorRecordAddBill")] [HttpPost] public object ColorRecordAddBill([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 msg_entry = sArray[3].ToString(); //明细行信息 //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("QC_FirstPieceCheckBill_Edit", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无编辑权限!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsQC_FirstPieceCheckBill BillNew = new DAL.ClsQC_FirstPieceCheckBill(); List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); string BillType = "7505"; string HBillSubType = "7505"; long HInterID = list[0].HInterID;//递入type得到的单据ID string HBillNo = list[0].HBillNo;//递入type得到的单据号 int HBillStatus = 1; string HMaker = user;//制单人 int HYear = DateTime.Now.Year; double HPeriod = DateTime.Now.Month; long HSourceID = list[0].HSourceID;//生产资源 long HICMOInterID = list[0].HICMOInterID;//任务单ID long HICMOEntryID = list[0].HICMOEntryID;//任务单子ID string HICMOBillNo = list[0].HICMOBillNo;//任务单 string HProcExchBillNo = list[0].HProcExchBillNo;//指引卡 long HMaterID = list[0].HMaterID;//产品ID //long HUnitID = list[0].HUnitID;//计量单位 long HProcID = list[0].HProcID;//工序ID long HPRDORGID = list[0].HPRDORGID;//组织ID bool HLastResult = list[0].HLastResult;//试样结论 long HQCSchemeID = list[0].HQCSchemeID;//检验方案 long HProcExchInterID = list[0].HProcExchInterID;//流转卡ID long HProcExchEntryID = list[0].HProcExchEntryID;//流转卡子ID string HBatchNo = list[0].HBatchNo;//流转卡批次号 long HMainSourceInterID = list[0].HMainSourceInterID;//源单ID long HMainSourceEntryID = list[0].HMainSourceEntryID;//源单子ID string HMainSourceBillNo = list[0].HMainSourceBillNo;//源单单号 string HMainSourceBillType = list[0].HMainSourceBillType;//源单类型 //表体数据 List subList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg_entry); for (int i = 0; i < subList.ToArray().Length; i++) { if (subList.ToArray().Length >= 0) { Model.ClsQC_FirstPieceCheckBillSub oSub = new Model.ClsQC_FirstPieceCheckBillSub(); oSub.HEntryID = i + 1; oSub.HRemark = ClsPub.isStrNull(subList[i].HRemark); oSub.HSourceInterID = ClsPub.isLong(subList[i].HSourceInterID); oSub.HSourceEntryID = ClsPub.isLong(subList[i].HSourceEntryID); oSub.HSourceBillType = ClsPub.isStrNull(subList[i].HSourceBillType); oSub.HSourceBillNo = ClsPub.isStrNull(subList[i].HSourceBillNo); oSub.HRelationQty = DBUtility.ClsPub.isDoule(subList[i].HRelationQty); oSub.HRelationMoney = DBUtility.ClsPub.isDoule(subList[i].HRelationMoney); oSub.HCloseMan = DBUtility.ClsPub.isStrNull(subList[i].HCloseMan); oSub.HCloseType = DBUtility.ClsPub.isBool(subList[i].HCloseType); oSub.HQCCheckItemID = DBUtility.ClsPub.isLong(subList[i].HQCCheckItemID); oSub.HQCStd = DBUtility.ClsPub.isStrNull(subList[i].HQCStd); oSub.HResult = DBUtility.ClsPub.isStrNull(subList[i].HResult); //oSub.HProcCheckTime = HDate; //oSub.HBillNo_bak = DBUtility.ClsPub.isStrNull(mainList[0].HBillNo); //oSub.HProcCheckEmp = ClsPub.isLong(mainList[0].HFirstCheckEmp); oSub.HSampleSchemeID = DBUtility.ClsPub.isLong(subList[i].HSampleSchemeID); oSub.HSampleQty = DBUtility.ClsPub.isLong(subList[i].HSampleQty); oSub.HSampleDamageQty = DBUtility.ClsPub.isDoule(subList[i].HSampleDamageQty); oSub.HAcceptQty = DBUtility.ClsPub.isLong(subList[i].HAcceptQty); oSub.HRejectQty = DBUtility.ClsPub.isLong(subList[i].HRejectQty); oSub.HSampleUnRightQty = DBUtility.ClsPub.isDoule(subList[i].HSampleUnRightQty); oSub.HStatus = DBUtility.ClsPub.isStrNull(subList[i].HStatus); oSub.HUnitID = DBUtility.ClsPub.isLong(subList[i].HUnitID); oSub.HInspectVal = DBUtility.ClsPub.isStrNull(subList[i].HInspectVal); oSub.HTargetVal = DBUtility.ClsPub.isStrNull(subList[i].HTargetVal); oSub.HUpLimit = DBUtility.ClsPub.isStrNull(subList[i].HUpLimit); oSub.HDownLimit = DBUtility.ClsPub.isStrNull(subList[i].HDownLimit); oSub.HUpOffSet = DBUtility.ClsPub.isStrNull(subList[i].HUpOffSet); oSub.HDownOffSet = DBUtility.ClsPub.isStrNull(subList[i].HDownOffSet); oSub.HAnalysisMethod = DBUtility.ClsPub.isStrNull(subList[i].HAnalysisMethod); oSub.HKeyInspect = DBUtility.ClsPub.isLong(subList[i].HKeyInspect); oSub.HInspectInstruMentID = DBUtility.ClsPub.isLong(subList[i].HInspectInstruMentID); oSub.HInspectResult = DBUtility.ClsPub.isStrNull(subList[i].HResult == "True" ? 1 : 0); oSub.HQCNote = DBUtility.ClsPub.isStrNull(subList[i].HQCNote);//检验记录 oSub.HMax = DBUtility.ClsPub.isStrNull(subList[i].HMax); oSub.HMin = DBUtility.ClsPub.isStrNull(subList[i].HMin); oSub.HAvg = DBUtility.ClsPub.isStrNull(subList[i].HAvg); BillNew.DetailColl.Add(oSub); } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无明细行信息!"; objJsonResult.data = null; return objJsonResult; } } //单据完整性判断 if (HProcExchBillNo == "" && HMainSourceBillNo.Substring(0, Math.Min(2, HMainSourceBillNo.Length)) != "MO" ) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流转卡没有选择!请扫描条形码或输入条形码后回车"; objJsonResult.data = null; return objJsonResult; } var num = 0; oCN.BeginTran(); if (OperationType=="1") { num = 1; ds = oCN.RunProcReturn("select * from QC_FirstPieceCheckBillMain where HBillNo='" + HBillNo + "'", "QC_FirstPieceCheckBillMain"); if (ds.Tables[0].Rows.Count == 1) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据号重复!"; objJsonResult.data = null; return objJsonResult; } oCN.RunProc("Insert Into QC_FirstPieceCheckBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" + ",HYear,HPeriod,HMaterID,HSourceID,HICMOInterID,HICMOEntryID,HICMOBillNo,HProcExchBillNo" + ",HPRDORGID,HLastResult,HProcID,HQCSchemeID,HBatchNo," + "HProcExchInterID,HProcExchEntryID,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo,HMainSourceBillType)" + " values('" + BillType + "','" + HBillSubType + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",getdate(),'" + HMaker + "',getdate()" + "," + HYear + "," + HPeriod + ",'" + HMaterID + "','" + HSourceID + "'," + HICMOInterID + "," + HICMOEntryID + ",'" + HICMOBillNo + "','" + HProcExchBillNo + "'" + "," + HPRDORGID + ",'" + HLastResult + "','" + HProcID + "','" + HQCSchemeID + "','" + HBatchNo + "'," + "" + HProcExchInterID + "," + HProcExchEntryID + "," + HMainSourceInterID + "," + HMainSourceEntryID + ",'" + HMainSourceBillNo + "','" + HMainSourceBillType + "'" + ") "); //插入子表 foreach (Model.ClsQC_FirstPieceCheckBillSub oSub in BillNew.DetailColl) { string sql = "Insert into QC_FirstPieceCheckBillSub " + " (HInterID,HBillNo_bak,HEntryID" + ",HRemark,HSourceInterID" + ",HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" + ",HQCCheckItemID,HQCStd,HResult" + ",HStatus,HUnitID,HKeyInspect,HAnalysisMethod,HInspectInstruMentID,HInspectResult," + "HQCNote,HMax,HMin,HAvg" + ") values(" + HInterID.ToString() + ",'" + oSub.HBillNo_bak + "'," + oSub.HEntryID.ToString() + ",'" + oSub.HRemark + "'," + HMainSourceInterID.ToString() + "," + HMainSourceEntryID.ToString() + ",'" + HMainSourceBillNo + "','" + HMainSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() + "," + oSub.HQCCheckItemID.ToString() + ",'" + oSub.HQCStd + "','" + oSub.HResult + "'" + ",'" + oSub.HStatus + "'," + oSub.HUnitID + "," + oSub.HKeyInspect + ",'" + oSub.HAnalysisMethod + "'," + oSub.HInspectInstruMentID + ",'" + oSub.HInspectResult + "'" + ",'" + oSub.HQCNote + "','" + oSub.HMax + "','" + oSub.HMin + "','" + oSub.HAvg + "'" + ")"; oCN.RunProc("Insert into QC_FirstPieceCheckBillSub " + " (HInterID,HBillNo_bak,HEntryID" + ",HRemark,HSourceInterID" + ",HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" + ",HQCCheckItemID,HQCStd,HResult" + ",HStatus,HUnitID,HKeyInspect,HAnalysisMethod,HInspectInstruMentID,HInspectResult," + "HQCNote,HMax,HMin,HAvg" + ") values(" + HInterID.ToString() + ",'" + oSub.HBillNo_bak + "'," + oSub.HEntryID.ToString() + ",'" + oSub.HRemark + "'," + HMainSourceInterID.ToString() + "," + HMainSourceEntryID.ToString() + ",'" + HMainSourceBillNo + "','" + HMainSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() + "," + oSub.HQCCheckItemID.ToString() + ",'" + oSub.HQCStd + "','" + oSub.HResult + "'" + ",'" + oSub.HStatus + "'," + oSub.HUnitID + "," + oSub.HKeyInspect + ",'" + oSub.HAnalysisMethod + "'," + oSub.HInspectInstruMentID + ",'" + oSub.HInspectResult + "'" + ",'" + oSub.HQCNote + "','" + oSub.HMax + "','" + oSub.HMin + "','" + oSub.HAvg + "'" + ") "); } } else { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "操作类型无效!"; objJsonResult.data = null; return objJsonResult; } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增单据成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 对色记录 审核/反审核功能 [Route("ColorRecord/CheckColorRecordBill")] [HttpGet] public object CheckColorRecordBill(string HInterID, int Type, string user) { try { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("QC_FirstPieceCheckBill_Query", 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; } BillOld.MvarItemKey = "QC_FirstPieceCheckBillMain"; 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; } } //审核单据 oCN.RunProc(" Update " + BillOld.MvarItemKey + " set HChecker='" + user + "',HCheckDate=getdate(),HBillStatus=2 Where HInterID=" + HInterID.ToString()); } 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; } } //反审核单据 oCN.RunProc(" Update " + BillOld.MvarItemKey + " set HChecker='',HCheckDate=null,HBillStatus=1 Where HInterID=" + HInterID.ToString()); } 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("ColorRecord/DelColorRecordBill")] [HttpGet] public object DelColorRecordBill(Int64 lngBillKey, string user) { DataSet ds; string ModRightNameCheck = "QC_FirstPieceCheckBill_Delete"; try { //删除权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!无权限!"; objJsonResult.data = null; return objJsonResult; } SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (lngBillKey == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据id为空!"; objJsonResult.data = null; return objJsonResult; } oCN.BeginTran();//开始事务 ds = oCN.RunProcReturn("select * from QC_FirstPieceCheckBillMain where HInterID=" + lngBillKey, "QC_FirstPieceCheckBillMain"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有数据,无法删除!"; objJsonResult.data = null; return objJsonResult; ; } string HChecker = Convert.ToString(ds.Tables[0].Rows[0]["HChecker"]); if (HChecker != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已经审核,不能删除!"; objJsonResult.data = null; return objJsonResult; } oCN.RunProc("delete from QC_FirstPieceCheckBillMain where HInterID=" + lngBillKey); 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_StationInBill/autoGetProcNo")] [HttpGet] public object autoGetProcNo(string HUserID, string HInterID, string BillType) { string sReturn = ""; if (oSystemParameter.ShowBill(ref sReturn) == true) { if(BillType == "In")//工序进站接收单 { //系统参数是否为自动匹配流水号,N为手动输入,Y为自动匹配 if (oSystemParameter.omodel.MES_StationInBill_AutoFindSNO == "Y") { try { if (HUserID == null || HUserID.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "用户编码不能为空!"; objJsonResult.data = null; return objJsonResult; } //得到信息 ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_StationBill_autoGetProcNo where HInterID = '" + HInterID + "' and 用户编码 ='" + HUserID + "'" + " and 累计进站数量 < 计划数量 and 下道流转工序<>'转' and 委外标记=0 order by 序号 asc", "h_v_Sc_StationBill_autoGetProcNo"); //写入信息 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; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "手动输入模式"; objJsonResult.data = ""; return objJsonResult; } } else if(BillType == "Out")//工序出站汇报单 { //系统参数是否为自动匹配流水号,N为手动输入,Y为自动匹配 if (oSystemParameter.omodel.MES_StationOutBill_AutoFindSNO == "Y") { try { if (HUserID == null || HUserID.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "用户编码不能为空!"; objJsonResult.data = null; return objJsonResult; } //得到信息 ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_StationBill_autoGetProcNo where HInterID = '" + HInterID + "' and 用户编码 ='" + HUserID + "'" + " and 累计出站数量 < 计划数量 and 下道流转工序<>'转' and 委外标记=0 order by 序号 asc", "h_v_Sc_StationBill_autoGetProcNo"); //写入信息 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; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "手动输入模式"; objJsonResult.data = ""; return objJsonResult; } } else { return 0; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "系统参数异常"; objJsonResult.data = ""; return objJsonResult; } } #endregion #region 指引卡变更单 新增保存 [Route("MES_Sc_ProcessExchangeBillMain_Note_PDA/ProcessExchangeBillMain_NoteAddBill")] [HttpPost] public object ProcessExchangeBillMain_NoteAddBill([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();//类型 //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Change", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无变更权限!"; objJsonResult.data = null; return objJsonResult; } List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); long HSouceID_Original = list[0].HSouceID_Original; long HSouceID_Now = list[0].HSouceID_Now; long HOrgID = list[0].HOrgID;//组织ID String HICMOBillNo = list[0].HICMOBillNo;//任务单 long HICMOInterID = list[0].HICMOInterID;//任务单ID long HProcExchInterID = list[0].HProcExchInterID; long HProcExchEntryID = list[0].HProcExchEntryID; String HProcExchBillNo = list[0].HProcExchBillNo; String HBillNo_Note = list[0].HBillNo_Note;//指引卡 long HMaterID = list[0].HMaterID;//产品ID long HUnitID = list[0].HUnitID;//计量单位 long HProcID = list[0].HProcID;//工序ID string HMaker = user;//制单人 string HMakeDate = list[0].HMakeDate;//制单日期 //单据完整性判断 if (HProcExchBillNo == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流转卡没有选择!请扫描条形码或输入条形码后回车"; objJsonResult.data = null; return objJsonResult; } oCN.BeginTran(); if (OperationType == "1") { oCN.RunProc("Insert Into Sc_ProcessExchangeBillMain_Note " + "(HBillNo_Note,HSouceID_Original,HSouceID_Now,HOrgID,HICMOInterID,HICMOBillNo,HProcExchBillNo,HProcExchInterID" + ",HProcExchEntryID,HMaterID,HUnitID,HProcID,HMaker,HMakeDate)" + " values('" + HBillNo_Note + "','" + HSouceID_Original + "'," + HSouceID_Now + ",'" + HOrgID + "'," + HICMOInterID + ",'"+ HICMOBillNo + "','" + HProcExchBillNo + "' ," + HProcExchInterID + "," + HProcExchEntryID + ",'" + HMaterID + "','" + HUnitID + "'," + HProcID + ",'" + HMaker + "','" + HMakeDate + "')" ); oCN.RunProc("update Sc_ProcessExchangeBillSub set HSourceID=" + HSouceID_Now + " where HInterID=" + HProcExchInterID + " and HEntryID=" + HProcExchEntryID); } else { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "操作类型无效!"; objJsonResult.data = null; return objJsonResult; } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增单据成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 出站汇报单显示表体明细 [Route("Cj_StationEntrustInBill/DisBillEntryList")] [HttpGet] public object DisBillEntryList(Int64 HProcExchHinteID) { try { List columnNameList = new List(); //得到信息 ds = oCN.RunProcReturn("exec h_p_Sc_ProcExchBilltransRelationQty " + HProcExchHinteID + "", "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; } //添加列名 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 = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 新增单据-保存按钮 [Route("Cj_StationEntrustInBill/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(); //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("MES_StationEntrustInBill_Edit", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无编辑权限!"; objJsonResult.data = null; return objJsonResult; } List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); DBUtility.ClsPub.CurUserName = user; long HMainInterID = 0; HMainInterID = list[0].HMainInterID; string eventType = list[0].eventType; long HInterID = list[0].HInterID;//递入type得到的单据ID int HYear = 2021; double HPeriod = list[0].HPeriod;//单价 string HBillNo = list[0].HBillNo;//递入type得到的单据号 int HBillStatus = 0; string HInnerBillNo = list[0].HInnerBillNo;//送货单号 string HICMOBillNo = list[0].HICMOBillNo;//生产订单号 long HICMOInterID = list[0].HICMOInterID;//生产订单号ID long HProcExchInterID = list[0].lngBillKey; long HProcExchEntryID = list[0].lngBillSubKey; string HProcExchBillNo = list[0].HProcExchBillNo;//流转卡 long HProcID = list[0].HProcID;//当前工序 long HMaterID = list[0].HMaterID;//产品ID DateTime HStationInTime = list[0].HStationInTime;// long HEmpID = list[0].HEmpID;//操作员ID long HSourceID = list[0].HSourceID;//生产资源ID long HGroupID = list[0].HGroupID;//班组ID double HICMOQty = list[0].HICMOQty;//任务单数量 double HPlanQty = list[0].HPlanQty;//流转卡数量 double HQty = list[0].HQty;//发出数量 long HSupID = list[0].HSupID;//供应商ID double HPieceQty = list[0].HPieceQty;//发出件数 string HSourceName = list[0].HSourceName;// double HPrice = list[0].HPrice;//单价 double HMoney = list[0].HMoney;//金额 string HRemark = list[0].HRemark;//备注 double HTaxRate = list[0].HTaxRate;//税率 string HProcNo = list[0].HProcNo;//流水号 string HOrderProcNO = list[0].HOrderProcNO;//订单跟踪号 int HWWWorkOrderInterID = 0;//委外工单号子内码 int HWWWorkOrderEntryID = 0;//委外工单号主内吗 string HWWWorkOrderBillNo = list[0].HWWWorkOrderBillNo;//委外工单号 string HMaker = list[0].HMaker;//制单人 int HProcPlanInterID = 0; int HProcPlanEntryID = 0; string HProcPlanBillNo = ""; long HDeptID = list[0].HDeptID;//部门ID string HBarCode = list[0].HBarCode;//条形码 string HAddr = ""; string HBarCodeMaker = ""; long HPRDOrgID = list[0].HPRDOrgID;//组织ID if (HProcExchInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流转卡没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HProcExchEntryID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流水号2没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HProcNo == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流水号没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HProcExchBillNo == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流转卡号没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HMaterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "产品没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HSupID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "供应商没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HProcID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "当前工序没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HQty <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "发出数量不能为0!"; 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 = "单据号重复!"; objJsonResult.data = null; return objJsonResult; } //主表 oCN.RunProc("Insert Into Sc_StationInBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" + ",HYear,HPeriod,HRemark,HInnerBillNo" + ",HICMOInterID,HICMOBillNo,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo,HProcExchInterID,HProcExchEntryID" + ",HProcExchBillNo,HMaterID,HProcID,HICMOQty,HPlanQty,HStationInTime,HSourceID" + ",HGroupID,HDeptID,HEmpID,HBarCode,HAddr,HBarCodeMaker,HBarCodeMakeDate" + ",HSupID,HTaxRate,HQty,HPrice,HMoney,HPieceQty" + ",HProcNo,HOrderProcNO,HWWWorkOrderBillNo,HWWWorkOrderInterID,HWWWorkOrderEntryID,HMainInterID,HPRDOrgID" + ") " + " values('3792','3792'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillStatus.ToString() + "',getdate(),'" + HMaker + "',getdate()" + ",'" + HYear.ToString() + "','" + HPeriod.ToString() + "','" + HRemark + "','" + HInnerBillNo + "'" + "," + HICMOInterID + ",'" + HICMOBillNo + "'," + HProcPlanInterID + "," + HProcPlanEntryID + ",'" + HProcPlanBillNo + "'," + HProcExchInterID + "," + HProcExchEntryID + ",'" + HProcExchBillNo + "'," + HMaterID + "," + HProcID + "," + HICMOQty + "," + HPlanQty + ",getdate()," + HSourceID + "," + HGroupID + "," + HDeptID + "," + HEmpID + ",'" + HBarCode + "','" + HAddr + "','" + HBarCodeMaker + "',getdate()" + "," + HSupID + "," + HTaxRate + "," + HQty + "," + HPrice + "," + HMoney + "," + HPieceQty + ",'" + HProcNo + "','" + HOrderProcNO + "'" + ",'" + HWWWorkOrderBillNo + "'" + "," + HWWWorkOrderInterID + "" + "," + HWWWorkOrderEntryID + "," + HMainInterID + "," + HPRDOrgID + ") "); } else if ("Modify".Equals(eventType)) { //删除关联 oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_In " + HInterID + ",-1"); oCN.RunProc("exec h_p_WW_EntrustWorkOrderRelationQty_In " + HInterID + ",-1"); //更新主表 oCN.RunProc("UpDate Sc_StationInBillMain set " + "HBillNo='" + HBillNo + "'" + ",HRemark='" + HRemark + "'" + ",HUpDater='" + DBUtility.ClsPub.CurUserName + "'" + ",HUpDateDate=getdate()" + ",HInnerBillNo='" + HInnerBillNo + "'" + ",HSupID=" + HSupID + ",HQty=" + HQty + ",HPieceQty=" + HPieceQty + ",HPrice=" + HPrice + ",HMoney=" + HMoney + ",HTaxRate=" + HTaxRate + ",HMaterID=" + HMaterID + ",HProcID=" + HProcID + ",HEmpID=" + HEmpID + ",HProcNo=" + HProcNo + ",HOrderProcNO='" + HOrderProcNO + "'" + " where HInterID=" + HInterID); } 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 = "判断数量失败!"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows.Count == 0) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "判断数量失败!"; objJsonResult.data = null; return objJsonResult; } if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "2") { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); objJsonResult.data = null; return objJsonResult; } oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_In " + HInterID.ToString() + ",1"); oCN.RunProc("exec h_p_WW_EntrustWorkOrderRelationQty_In " + HInterID.ToString() + ",1"); oCN.Commit(); string sReturn = ""; if (oSystemParameter.ShowBill(ref sReturn) == true) { if (oSystemParameter.omodel.MES_StationEntrustInBill_SaveAutoAddnew == "Y") //系统参数 自动审核 { objJsonResult.Verify = "Y"; } else { objJsonResult.Verify = "N"; } } 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 = "Exception!" + e.Message; 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 编辑页面根据id获取委外工序接收单信息 [Route("Cj_StationEntrustInBill/GetStationEntrustInBill")] [HttpGet] public object GetStationEntrustInBill(int HInterID) { try { ds = oCN.RunProcReturn("select * from h_v_GetStationInBill where HInterID = " + HInterID, "h_v_GetStationOutBill"); 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_StationEntrustInBill/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 = "条形码不能为空!"; objJsonResult.data = null; return objJsonResult; } //得到信息(委外标记为0时,流转标记为1时) ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + sBillNo + "' and 下道流转工序<>'转' and 委外标记=1 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 = "工序号错误或者当前工序号不允许进站,请重新输入!"; 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_StationEntrustInBill/set_ShowBillJudge")] [HttpGet] public object set_ShowBillJudge(string HBillNo, string CurUserName,long HInterID) { 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 = "判断关联失败!"; // 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; //} //判断权限 if (!ClsPub.Security_Log_second("MES_StationEntrustInBill_Edit", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限!"; objJsonResult.data = null; return objJsonResult; } ////判断该用户名是否有该工站权限 //if (BillNew.CheckCenterIDByUser(DBUtility.ClsPub.isLong(66865)) == false) //{ // MessageBox.Show("没有该工站权限!", "提示"); // return; //} ////检查是否开票 //string d = ""; //if (BillOld.CheckIsKP(BillOld.omodel.HInterID, ref d) == false) //{ // MessageBox.Show(d, "提示"); // return; //} string s = ""; DAL.ClsSc_StationEntrustInBill BillOld = new DAL.ClsSc_StationEntrustInBill(); if (BillOld.ShowBill(HInterID, ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据有错误!"; objJsonResult.data = null; return objJsonResult; } //判断是否可编辑 if (BillOld.omodel.HChecker != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据已经被审核,不允许修改!"; objJsonResult.data = null; return objJsonResult; } 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("Cj_StationEntrustInBill/set_CheckBill")] [HttpGet] public object set_CheckBill(int HInterID, string CurUserName) { try { //审核权限 if (!DBUtility.ClsPub.Security_Log("MES_StationEntrustInBill_Check", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } if (HInterID == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据ID为0,不能审核!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_StationEntrustInBill oBill = new DAL.ClsSc_StationEntrustInBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.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 (Cj_StationEntrustInBillCheckBill(HInterID, CurUserName, 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 = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } //审核 public bool Cj_StationEntrustInBillCheckBill(Int64 lngBillKey, 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"); sReturn = sReturn + " 审核功能!"; oCN.Commit(); return true; } catch (Exception e) { sReturn = e.Message; oCN.RollBack(); return false; ; } } #endregion #region 反审核 [Route("Cj_StationEntrustInBill/set_AbandonCheck")] [HttpGet] public object set_AbandonCheck(int HInterID, string CurUserName) { try { //审核权限 if (!DBUtility.ClsPub.Security_Log("MES_StationEntrustInBill_Check", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } if (HInterID == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据ID为0,不能反审核!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_StationEntrustInBill oBill = new DAL.ClsSc_StationEntrustInBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.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 (Cj_StationEntrustInBillAbandonCheckBill(HInterID, CurUserName, 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 = "反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } //反审核 public bool Cj_StationEntrustInBillAbandonCheckBill(Int64 lngBillKey, 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='',HCheckDate=null Where HInterID=" + lngBillKey.ToString()); //oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_Check_In " + lngBillKey.ToString() + ",-1"); sReturn = sReturn + "反审核功能!"; oCN.Commit(); return true; } catch (Exception e) { sReturn = e.Message; oCN.RollBack(); return false; ; } } #endregion #region 工序委外发出单关闭/反关闭功能 [Route("Cj_StationEntrustInBill/CloseCj_StationEntrustInBill")] [HttpGet] public object CloseCj_StationEntrustInBill(string HInterID, int Type, string user) { try { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("MES_StationEntrustInBill_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_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 = "单据已关闭!不需要再关闭!"; 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删除委外发出单 [Route("Cj_StationEntrustInBill/del_StationEntrustInBill")] [HttpGet] public object del_StationEntrustInBill(long HInterID, string HDeleteMan) { try { //编辑权限 if (!DBUtility.ClsPub.Security_Log_second("MES_StationEntrustInBill_Delete", 1, false, HDeleteMan)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_StationEntrustInBill oBill = new DAL.ClsSc_StationEntrustInBill(); if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HMaker != HDeleteMan && (HDeleteMan != "admin" && HDeleteMan != "Admin")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "只能删除本人的单据!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HChecker != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已经审核,不能删除!"; 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; } //写入删除日志 string WorkList = "删除委外发出单:" + oBill.omodel.HBillNo; if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HProcExchInterID, oBill.omodel.HProcExchEntryID, ref DBUtility.ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { 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 // } }