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 WebAPI.Models; namespace WebAPI.Controllers { public class SB_EquipICMOTechParamBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); public const string ModName = "3919"; //单据类型 public const string ModCaption = "设备工艺参数订单点检表"; //单据名称 public const string ModRightName = "SB_EquipICMOTechParamBill"; public const string ModRightNameList = ModRightName + "List"; //列表 public const string ModRightNameEdit = ModRightName + "_Edit"; //编辑 public const string ModRightNameCheck = ModRightName + "_Check"; //审核 public const string ModRightNameClose = ModRightName + "_Close"; //关闭 public const string ModRightNameDelete = ModRightName + "_Delete"; //作废 public const string ModRightNameDrop = ModRightName + "_Drop"; //删除 public DataSet ds = new DataSet(); private json objJsonResult = new json(); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); public DAL.ClsSB_EquipICMOTechParamBill oBill = new DAL.ClsSB_EquipICMOTechParamBill(); string fileip = System.Configuration.ConfigurationManager.AppSettings["FileIP"]; #region 设备工艺参数订单点检表列表信息 /// /// 获取设备工艺参数订单点检表列表信息 /// /// [Route("SB_EquipICMOTechParamBillController/GetSB_EquipICMOTechParamBillList_Json")] [HttpGet] public object GetSB_EquipICMOTechParamBillList_Json(string sWhere, string HMaker, string OperationType, string ViewName) { try { //判断权限 if (OperationType == "1") { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameList, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } } //返回列表信息 ds = oCn.RunProcReturn("select * from " + ViewName + " where 1=1 " + sWhere + " order by hmainid desc", ViewName); List columnNameList = new List(); //添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString)); //获取到DataColumn列对象的列名 } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "成功!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询列表信息失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 设备工艺参数分页查询 [Route("SB_EquipICMOTechParamBillController/GetSB_EquipICMOTechParamBillList_Page")] [HttpGet] public object GetSB_EquipICMOTechParamBillList_Page(string sWhere, string user, int page, int size) { try { List columnNameList = new List(); //编辑权限 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameList, 3, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查看权限!"; objJsonResult.data = null; return objJsonResult; } sWhere = sWhere.Replace("'", "''"); if (sWhere == null || sWhere.Equals("")) { ds = oCn.RunProcReturn("exec h_p_SB_EquipICMOTechParamBillListPage " + page + "," + size + ",''", "h_p_SB_EquipICMOTechParamBillListPage"); } else { ds = oCn.RunProcReturn("exec h_p_SB_EquipICMOTechParamBillListPage " + page + "," + size + ",'" + sWhere + "'", "h_p_SB_EquipICMOTechParamBillListPage"); } //添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } objJsonResult.code = "1"; objJsonResult.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString()); objJsonResult.Message = "Sucess!"; objJsonResult.list = columnNameList; 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("SB_EquipICMOTechParamBillController/GetSB_EquipICMOTechParamBill_Delete_Json")] [HttpGet] public object GetSB_EquipICMOTechParamBill_Delete_Json(Int64 HInterID, string HMaker) { try { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameDrop, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块删除功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } //判断存在性 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oBill.omodel.HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = s; objJsonResult.data = null; return objJsonResult; } //删除前控制 DataSet BeforeDs = oCn.RunProcReturn("Exec h_p_SB_EquipICMOTechParamBill_BeforeDelCtrl " + HInterID.ToString() + ",'" + HMaker + "'", "h_p_SB_EquipICMOTechParamBill_BeforeDelCtrl"); if (BeforeDs == null || BeforeDs.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除前判断失败!"; objJsonResult.data = null; return objJsonResult; } else { if (DBUtility.ClsPub.isLong(BeforeDs.Tables[0].Rows[0]["HBack"]) == 1) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!" + DBUtility.ClsPub.isStrNull(BeforeDs.Tables[0].Rows[0]["HRemark"]); objJsonResult.data = null; return objJsonResult; } } //删除单据(包含删除后控制、写入日志) if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_SB_EquipICMOTechParamBill_AfterDelCtrl", HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; 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 设备工艺参数订单点检表审核/反审核 /// /// 审核/反审核设备工艺参数订单点检表 /// /// 单据ID /// 审核(1),反审核(2) /// 审核人 /// [Route("SB_EquipICMOTechParamBillController/GetSB_EquipICMOTechParamBill_Check_Json")] [HttpGet] public object GetSB_EquipICMOTechParamBill_Check_Json(Int64 HInterID, int Type, string HMaker) { try { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块审核/反审核功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } //判断存在性 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oBill.omodel.HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = s; objJsonResult.data = null; return objJsonResult; } //Type 1 审核 2 反审核 if (Type == 1) { if (oBill.omodel.HChecker.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核,不能再次审核!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HCloseMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已关闭,不能再次审核!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HDeleteMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废,不能再次审核!"; objJsonResult.data = null; return objJsonResult; } //审核前控制 DataSet BeforeDs = oCn.RunProcReturn("Exec h_p_SB_EquipICMOTechParamBill_BeforeCheckCtrl " + HInterID.ToString() + ",'" + HMaker + "'", "h_p_SB_EquipICMOTechParamBill_BeforeCheckCtrl"); if (BeforeDs == null || BeforeDs.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核前判断失败!"; objJsonResult.data = null; return objJsonResult; } else { if (DBUtility.ClsPub.isLong(BeforeDs.Tables[0].Rows[0]["HBack"]) == 1) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!" + DBUtility.ClsPub.isStrNull(BeforeDs.Tables[0].Rows[0]["HRemark"]); objJsonResult.data = null; return objJsonResult; } } //审核单据 if (!oBill.CheckBill(HInterID, oBill.omodel.HBillNo, "h_p_SB_EquipICMOTechParamBill_AfterCheckCtrl", HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "单据号:"+ oBill.omodel.HBillNo+ " 审核成功!"; objJsonResult.data = null; return objJsonResult; ; } } else { if (oBill.omodel.HChecker.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未审核,不需要反审核!"; objJsonResult.data = null; return objJsonResult; } //反审核前控制 DataSet BeforeDs = oCn.RunProcReturn("Exec h_p_SB_EquipICMOTechParamBill_BeforeUnCheckCtrl " + HInterID.ToString() + ",'" + HMaker + "'", "h_p_SB_EquipICMOTechParamBill_BeforeUnCheckCtrl"); if (BeforeDs == null || BeforeDs.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核前判断失败!"; objJsonResult.data = null; return objJsonResult; } else { if (DBUtility.ClsPub.isLong(BeforeDs.Tables[0].Rows[0]["HBack"]) == 1) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!" + DBUtility.ClsPub.isStrNull(BeforeDs.Tables[0].Rows[0]["HRemark"]); objJsonResult.data = null; return objJsonResult; } } //反审核单据 if (!oBill.AbandonCheck(HInterID, oBill.omodel.HBillNo, "h_p_SB_EquipICMOTechParamBill_AfterUnCheckCtrl", HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " 反审核成功!"; 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 设备工艺参数订单点检表关闭/反关闭 /// /// 关闭/反关闭设备工艺参数订单点检表 /// /// 单据ID /// 关闭(1),反关闭(2) /// 关闭人 /// [Route("SB_EquipICMOTechParamBillController/GetSB_EquipICMOTechParamBill_Close_Json")] [HttpGet] public object GetSB_EquipICMOTechParamBill_Close_Json(Int64 HInterID, int Type, string HMaker) { try { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameClose, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块关闭/反关闭功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } //判断存在性 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oBill.omodel.HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = s; objJsonResult.data = null; return objJsonResult; } //Type 1 关闭 2 反关闭 if (Type == 1) { if (oBill.omodel.HCloseMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已关闭,不能再次关闭!"; objJsonResult.data = null; return objJsonResult; } //关闭单据 if (!oBill.CloseBill(HInterID, oBill.omodel.HBillNo, HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " 关闭成功!"; objJsonResult.data = null; return objJsonResult; ; } } else { if (oBill.omodel.HCloseMan.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未关闭,不需要反关闭!"; objJsonResult.data = null; return objJsonResult; } //反关闭单据 if (!oBill.CancelClose(HInterID, oBill.omodel.HBillNo, HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " 反关闭成功!"; 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 设备工艺参数订单点检表作废/反作废 /// /// 作废/反作废设备工艺参数订单点检表 /// /// 单据ID /// 作废(1),反作废(2) /// 作废人 /// [Route("SB_EquipICMOTechParamBillController/GetSB_EquipICMOTechParamBill_Cancelltion_Json")] [HttpGet] public object GetSB_EquipICMOTechParamBill_Cancelltion_Json(Int64 HInterID, int Type, string HMaker) { try { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameDelete, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块作废/反作废功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } //判断存在性 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oBill.omodel.HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = s; objJsonResult.data = null; return objJsonResult; } //Type 1 作废 2 反作废 if (Type == 1) { if (oBill.omodel.HDeleteMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废,不能再次作废!"; objJsonResult.data = null; return objJsonResult; } //作废单据 if (!oBill.Cancelltion(HInterID, oBill.omodel.HBillNo, HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " 作废成功!"; objJsonResult.data = null; return objJsonResult; ; } } else { if (oBill.omodel.HDeleteMan.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未作废,不需要反作废!"; objJsonResult.data = null; return objJsonResult; } //反作废单据 if (!oBill.AbandonCancelltion(HInterID, oBill.omodel.HBillNo, HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " 反作废成功!"; 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 设备工艺参数订单点检表模块 从列表选中打开单据,返回单据信息时调用 /// /// 设备工艺参数订单点检表编辑时,根据单据ID获取单据信息 /// /// [Route("SB_EquipICMOTechParamBillController/GetSB_EquipICMOTechParamBill_Json")] [HttpGet] public object GetSB_EquipICMOTechParamBill_Json(Int64 HInterID, string HMaker) { try { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块编辑权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } //返回列表信息 ds = oCn.RunProcReturn("exec h_p_SB_EquipICMOTechParamBill_EditInit " + HInterID, "h_p_SB_EquipICMOTechParamBill_EditInit"); 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 = "0"; 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 设备工艺参数订单点检表保存 /// /// 设备工艺参数订单点检表保存 /// [Route("SB_EquipICMOTechParamBillController/GetSB_EquipICMOTechParamBill_Save_Json")] [HttpPost] public object GetSB_EquipICMOTechParamBill_Save_Json([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string sMainStr = sArray[0].ToString(); //主表数据 string sSubStr = sArray[1].ToString(); //子表数据 string OperationType = sArray[2].ToString(); //操作类型(1新增、2编辑) string HMaker = sArray[3].ToString(); //制单人 try { //判断权限 if (OperationType == "1") { BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew; //判断新增权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 1, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块新增权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } } else { BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_Modify; //判断编辑权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 1, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块编辑权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } } //表头赋值 sMainStr = sMainStr.Replace("\\", ""); sMainStr = sMainStr.Replace("\n", ""); sMainStr = "[" + sMainStr.ToString() + "]"; List lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject>(sMainStr); foreach (Model.ClsSB_EquipICMOTechParamBillMain oItem in lsmain) { //单据号是否重复 if (oBill.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, oItem.HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据号重复!不允许保存!"; objJsonResult.data = null; return objJsonResult; } //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oItem.HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = s; objJsonResult.data = null; return objJsonResult; } oItem.HYear = sYear; oItem.HPeriod = sPeriod; DBUtility.ClsPub.CurUserName = oItem.HMaker; oBill.omodel = oItem; } //表体赋值 //按 },{来拆分数组 //去掉【和】 sSubStr = sSubStr.Substring(1, sSubStr.Length - 2); sSubStr = sSubStr.Replace("\\", ""); sSubStr = sSubStr.Replace("\n", ""); sSubStr = "[" + sSubStr.ToString() + "]"; List ls = Newtonsoft.Json.JsonConvert.DeserializeObject>(sSubStr); int i = 0; foreach (Model.ClsSB_EquipICMOTechParamBillSub oItemSub in ls) { i++; oItemSub.HEntryID = i; oItemSub.HSourceInterID = oBill.omodel.HMainSourceInterID; oItemSub.HSourceEntryID = oBill.omodel.HMainSourceEntryID; oItemSub.HSourceBillNo = oBill.omodel.HMainSourceBillNo; oItemSub.HSourceBillType = oBill.omodel.HMainSourceBillType; oBill.DetailColl.Add(oItemSub); } //获取系统参数 string Ret = ""; if (oSystemParameter.ShowBill(ref Ret)) { if (oSystemParameter.omodel.SB_EquipICMOTechParamBill_MustBeginWorkCtl == "Y") { ds = oCn.RunProcReturn("select * from Sc_ICMOBillStatus_Tmp where HSourceID = '" + oBill.omodel.HSourceID + "' and HSourceBillNo = '" + oBill.omodel.HProcExchBillNo + "' and HSourceInterID = '" + oBill.omodel.HProcExchInterID + "'and HSourceEntryID = '" + oBill.omodel.HProcExchEntryID + "' and hicmostatus =1", "Sc_ICMOBillStatus_Tmp"); if (ds.Tables[0].Rows[0]["HICMOStatus"].ToString() != "1") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "当前工单不是开工状态不能进行设备工艺参数点检!"; objJsonResult.data = null; return objJsonResult; } } } //保存 bool bResult; if (OperationType == "1") //新增保存 { bResult = oBill.AddBill (ref DBUtility.ClsPub.sExeReturnInfo); } else //编辑保存 { bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); } if (bResult) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo; //成功! 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.Message; objJsonResult.data = null; return objJsonResult; } } #endregion #region 异常工艺参数预警列表信息 /// /// 异常工艺参数预警列表信息 /// /// [Route("SB_EquipICMOTechParamBillController/GetSb_EquipMentCollectionTechParam_ERR")] [HttpGet] public object GetSb_EquipMentCollectionTechParam_ERR(string sWhere, string HMaker) { try { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameList, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } //返回列表信息 ds = oCn.RunProcReturn("select * from h_v_Sb_EquipMentCollectionTechParam_ERRList where 1=1 " + sWhere + " order by 发现异常时间 desc", "h_v_Sb_EquipMentCollectionTechParam_ERRList"); List columnNameList = new List(); //添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString)); //获取到DataColumn列对象的列名 } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "成功!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询列表信息失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 设备点检记录拍照上传 [Route("SB_EquipICMOTechParamBillController/UploadFile")] [HttpPost] public object UploadFile() { 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/EquipTechParamFolder/" + 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/EquipTechParamFolder/" + 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/EquipTechParamFolder/" + 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("SB_EquipICMOTechParamBillController/Filelist")] [HttpGet] public object Filelist(string HBillNo) { var url = fileip + "/files/EquipTechParamFolder/" + 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("SB_EquipICMOTechParamBillController/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/EquipTechParamFolder/" + HSourceBillNo), HFileName); File.Delete(fileurl); //删除指定文件 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 } }