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 //数据库主表Sc_QualityReportBillMain //数据库子表Sc_QualityReportBillSub public class Sc_QualityReportBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; public DAL.ClsSc_QualityReportBill BillOld = new DAL.ClsSc_QualityReportBill(); public DAL.ClsSc_QualityReportBill BillNew0 = new DAL.ClsSc_QualityReportBill(); private json objJsonResult = new json(); private json objJsonResultReturn = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); DataSet ds; #region 返回生产质量汇报单列表 [Route("Sc_QualityReportBill/list")] [HttpGet] public object list(string sWhere) { try { if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select * from h_v_Sc_QualityReportBillListDetail " + sWhere, "h_v_Sc_QualityReportBillListDetail"); } else { string sql1 = "select * from h_v_Sc_QualityReportBillListDetail where 1 = 1 "; string sql = sql1 + sWhere; ds = oCN.RunProcReturn(sql, "h_v_Sc_QualityReportBillListDetail"); } if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "false!"; 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 质量汇报单根据源单类型获取信息-源单为生产状态临时表(3722) [Route("Sc_QualityReportBill/get_ICMOBillStatus_Tmp")] [HttpGet] public object get_ICMOBillStatus_Tmp(int HInterID, int HEntryID, string HBillType) { try { if (HInterID == 0 || HBillType.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "参数不全,获取源单信息失败!HInterID:" + HInterID + ";HEntryID:" + HEntryID + ";HBillType:" + HBillType + ";"; objJsonResult.data = null; return objJsonResult; } else { if (HBillType == "3772") { ds = oCN.RunProcReturn ("select a.HInterID,a.HBillType,a.HICMOBillNo,a.HICMOInterID,a.HMaterID" + ",m.HNumber HMaterNumber,m.HName HMaterName,m.HModel HMaterModel,a.HICMOEntryID,a.HSourceID,s.HName HSourceName" + ",a.HSourceBillNo,a.HSourceInterID,a.HSourceEntryID,a.HDatePlanQty,a.HDeptID,d.HName HDeptName,m.HUnitID,u.HName HUnitName,a.HProcID,p.HName HProcName" + " from Sc_ICMOBillStatus_Tmp a " + " left join Gy_Material m on a.HMaterID=m.HItemID " + " left join Gy_Department d on a.HDeptID=d.HItemID " + " left join Gy_Unit u on m.HUnitID=u.HItemID " + " left join Gy_Source s on a.HSourceID=s.HItemID " + " left join Gy_Process p on a.HProcID = p.HItemID " + " Where a.HInterID=" + HInterID + " and a.HBillType=" + HBillType, "Sc_ICMOBillStatus_Tmp"); } else { ds = oCN.RunProcReturn ("select a.HInterID,a.HBillType,a.HICMOBillNo,a.HICMOInterID,a.HMaterID,a.HSourceID,s.HName HSourceName" + ",m.HNumber HMaterNumber,m.HName HMaterName,m.HModel HMaterModel,a.HICMOEntryID,a.HDeptID,d.HName HDeptName,m.HUnitID,u.HName HUnitName,a.HProcID,p.HName HProcName " + " from Sc_ICMOBillStatus_Tmp a " + " left join Gy_Material m on a.HMaterID=m.HItemID " + " left join Gy_Department d on a.HDeptID=d.HItemID " + " left join Gy_Unit u on m.HUnitID=u.HItemID " + " left join Gy_Source s on a.HSourceID=s.HItemID " + " left join Gy_Process p on a.HProcID = p.HItemID " + " Where a.HInterID=" + HInterID + " and a.HBillType=" + HBillType, "Sc_ICMOBillStatus_Tmp"); } } if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询数据异常,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "返回记录成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询数据异常,请与管理员联系!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 质量汇报单扫不良条码保存信息 [Route("Sc_QualityReportBill/set_SaveBarCode")] [HttpPost] public object set_SaveBarCode([FromBody] JObject oMain) { var msg1 = oMain["oMain"].ToString(); //保存单据 return objJsonResult = AddBillTmp(msg1); } public json AddBillTmp(string msg1) { string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg = sArray[0].ToString(); string OperationType = sArray[1].ToString().Trim(); bool bResult = false; try { msg = "[" + msg.ToString() + "]"; List mainList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg); //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; DateTime HDate = mainList[0].HMakeDate; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = s; objJsonResult.data = null; return objJsonResult; } //保存完毕后处理 if (OperationType.Equals("1") || OperationType.Equals("2")) { //是否保存 bResult = AddBillTmpSQL(mainList, ref ClsPub.sExeReturnInfo); } else if (OperationType.Equals("3")) { //bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo); } else { ClsPub.sExeReturnInfo = "无效的操作类型!"; bResult = false; } //是否保存 if (bResult == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "扫码保存成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } //新增单据 public bool AddBillTmpSQL(List mainList, ref string sReturn) { try { Sc_ICMOBillQualityStatus_Tmp BillNew = new Sc_ICMOBillQualityStatus_Tmp(); //固定赋值================================= BillNew.HInterID = mainList[0].HInterID;//递入type得到的单据ID BillNew.HBillNo = mainList[0].HBillNo; BillNew.HBillType = mainList[0].HBillType; BillNew.HDate = mainList[0].HDate; BillNew.HICMOBillNo = mainList[0].HICMOBillNo; BillNew.HICMOInterID = mainList[0].HICMOInterID; BillNew.HICMOEntryID = mainList[0].HICMOEntryID; BillNew.HProcExchBillNo = mainList[0].HProcExchBillNo; BillNew.HProcExchInterID = mainList[0].HProcExchInterID; BillNew.HProcExchEntryID = mainList[0].HProcExchEntryID; BillNew.HProcID = mainList[0].HProcID; BillNew.HMaterID = mainList[0].HMaterID; BillNew.HSourceID = mainList[0].HSourceID; BillNew.HGroupID = mainList[0].HGroupID; BillNew.HDeptID = mainList[0].HDeptID; BillNew.HCheckManID = mainList[0].HCheckManID; BillNew.HBadReasonID = mainList[0].HBadReasonID; BillNew.HBarCode = mainList[0].HBarCode; BillNew.HMaker = mainList[0].HMaker; BillNew.HMakeDate = mainList[0].HMakeDate; BillNew.HReportType = mainList[0].HReportType; BillNew.HSourceBillNo = mainList[0].HICMOBillNo; BillNew.HSourceInterID = mainList[0].HICMOInterID; BillNew.HSourceBillType = mainList[0].HSourceBillType; BillNew.HBadReasonHQty = mainList[0].HBadReasonHQty; oCN.BeginTran(); //临时表 oCN.RunProc("Insert Into Sc_ICMOBillQualityStatus_Tmp " + " (HInterID,HBillNo,HDate,HICMOBillNo,HICMOInterID" + ",HProcExchBillNo,HProcExchInterID,HProcExchEntryID,HProcID,HMaterID" + ",HSourceID,HGroupID,HDeptID,HCheckManID,HBadReasonID,HBarCode" + ",HMaker,HMakeDate,HBillType,HReportType,HSourceBillNo" + ",HSourceInterID,HSourceBillType,HICMOEntryID,HSourceEntryID,HBadReasonHQty" + ") " + " values(" + BillNew.HInterID + ",'" + BillNew.HBillNo + "','" + BillNew.HDate + "','" + BillNew.HICMOBillNo + "'," + BillNew.HICMOInterID + ",'" + BillNew.HProcExchBillNo + "'," + BillNew.HProcExchInterID + "," + BillNew.HProcExchEntryID + "," + BillNew.HProcID + "," + BillNew.HMaterID + "," + BillNew.HSourceID + "," + BillNew.HGroupID + "," + BillNew.HDeptID + "," + BillNew.HCheckManID + "," + BillNew.HBadReasonID + ",'" + BillNew.HBarCode + "'" + ",'" + BillNew.HMaker + "','" + BillNew.HMakeDate + "','" + BillNew.HBillType + "','" + +BillNew.HReportType + "','" +BillNew.HSourceBillNo + "'" + "," + BillNew.HSourceInterID + ",'" + BillNew.HSourceBillType + "'," + BillNew.HICMOEntryID + "," + BillNew.HICMOEntryID + "," + BillNew.HBadReasonHQty + ") "); sReturn = "扫码成功!"; oCN.Commit(); return true; } catch (Exception e) { sReturn = e.Message; oCN.RollBack(); throw (e); } } #endregion #region 质量汇报单列表删除按钮 [Route("DeltetSc_QualityReportBill")] [HttpGet] public object DeltetSc_QualityReportBill(long HItemID) { DataSet ds; DataSet ds1; try { //删除权限 //if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "审核失败!无权限!"; // objJsonResult.data = null; // return objJsonResult; //} SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (HItemID == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HItemID为空!"; objJsonResult.data = null; return objJsonResult; } oCN.BeginTran();//开始事务 ds = oCN.RunProcReturn("select * from Sc_QualityReportBillMain where hmainid=" + HItemID, "Sc_QualityReportBillMain"); ds1 = oCN.RunProcReturn("select * from Sc_QualityReportBillSub where hmainid=" + HItemID, "Sc_QualityReportBillSub"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有数据,无法删除!"; objJsonResult.data = null; return objJsonResult; ; } //var HStopflag = Convert.ToBoolean(ds.Tables[0].Rows[0]["HStopflag"]); //if (HStopflag) //{ // oCN.RollBack();//回滚事务 // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "数据已删除无法再次删除!"; // objJsonResult.data = null; // return objJsonResult; //} //ds1 = oCN.RunProcReturn("Select HItemID from Sc_QualityReportBill Where HParentID='" + HItemID + "'", "Sc_QualityReportBill"); //if (ds1.Tables[0].Rows.Count != 0) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "此项目存在子项目,不能删除!"; // objJsonResult.data = null; // return objJsonResult; //} string HUseFlag = Convert.ToString(ds.Tables[0].Rows[0]["HUseFlag"]); if (HUseFlag == "已使用") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此项目已使用,不能删除!"; objJsonResult.data = null; return objJsonResult; } oCN.RunProc("delete from Sc_QualityReportBillMain where hmainid=" + HItemID); oCN.RunProc("delete from Sc_QualityReportBillSub where hmainid=" + HItemID); 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("Sc_QualityReportBill/get_HBadReasonID")] [HttpGet] public object get_HBadReasonID(string HBadReasonNumber) { try { ds = oCN.RunProcReturn("Select HItemID,HNumber from Gy_BadReason where HStopflag=0 and HNumber='" + HBadReasonNumber + "'", "Gy_BadReason"); 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 审核 public object set_CheckBill(long HInterID,string HChecker, ref string sReturn) { SQLHelper.ClsCN oCN1 = new SQLHelper.ClsCN(); try { oCN1.BeginTran(); //审核权限 if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_Check", 1, false, HChecker)) { oCN1.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } // if (HInterID == 0) { oCN1.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据ID为0!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_QualityReportBill oBill = new DAL.ClsSc_QualityReportBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.Trim() != "") { oCN1.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HCloseMan.Trim() != "") { oCN1.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已关闭!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HDeleteMan.Trim() != "") { oCN1.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } } else { oCN1.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } //审核 if (CheckBill(HInterID, HChecker, ref DBUtility.ClsPub.sExeReturnInfo) == true) { oCN1.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "审核成功!"; objJsonResult.data = null; return objJsonResult; } else { oCN1.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { oCN1.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } //审核SQL public bool CheckBill(Int64 HInterID,string HChecker, ref string sReturn) { try { oCN.RunProc(" Update Sc_QualityReportBillMain set HChecker='" + HChecker + "',HCheckDate=GETDATE() Where HInterID=" + HInterID.ToString()); sReturn = ""; return true; } catch (Exception e) { sReturn = e.Message; throw (e); } } #endregion #region 获取扫码扫描记录 [Route("Sc_QualityReportBill/get_BarCodeDetail")] [HttpGet] public object get_BarCodeDetail(long HInterID) { try { ds = oCN.RunProcReturn( "Select a.HItemID,a.HInterID,b.HNumber HBadReasonNumber,b.HName HBadReasonHName" + ",c.HName HCheckMan,d.HName HGroupName,e.HName HSourceName " + " from Sc_ICMOBillQualityStatus_Tmp a " + " left join Gy_BadReason b on a.HBadReasonID = b.HItemID " + " left join Gy_Employee c on a.HCheckManID = c.HItemID " + " left join Gy_Group d on a.HGroupID = d.HItemID " + " left join Gy_Source e on a.HSourceID = e.HItemID " + " where HInterID=" + HInterID, "Sc_ICMOBillQualityStatus_Tmp" ); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "false!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 获取扫码汇总记录 [Route("Sc_QualityReportBill/get_BarCodeDetailSum")] [HttpGet] public object get_BarCodeDetailSum(long HInterID) { try { ds = oCN.RunProcReturn( "Select count(*) HQty,a.HInterID,b.HNumber HBadReasonNumber,b.HName HBadReasonHName,c.HName HCheckMan" + ",d.HName HGroupName,e.HName HSourceName " + " from Sc_ICMOBillQualityStatus_Tmp a " + " left join Gy_BadReason b on a.HBadReasonID = b.HItemID " + " left join Gy_Employee c on a.HCheckManID = c.HItemID " + " left join Gy_Group d on a.HGroupID = d.HItemID " + " left join Gy_Source e on a.HSourceID = e.HItemID " + " where a.HInterID=" + HInterID + " group by a.HInterID,a.HBadReasonID,a.HCheckManID,a.HGroupID,a.HSourceID" + " ,b.HNumber,b.HName,c.HName,d.HName,e.HName", "Sc_ICMOBillQualityStatus_Tmp" ); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "false!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 删除扫描记录行 [Route("Sc_QualityReportBill/del_BarCodeDetail")] [HttpGet] public object del_BarCodeDetail(long HItemID) { try { oCN.RunProc("delete from Sc_ICMOBillQualityStatus_Tmp where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo); 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("Sc_QualityReportBill/set_SaveBill")] [HttpGet] public object set_SaveBill(long HInterID,string HBillNo, string HChecker,string HBillSubType) { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); bool bResult2 = false; oCN.BeginTran(); //保存前控制========================================= ds = oCN.RunProcReturn("exec h_p_Sc_QualityReportBill_BeforeSaveCtrl " + HInterID+",'"+ HBillNo + "','',1", "h_p_Sc_QualityReportBill_BeforeSaveCtrl"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存前判断失败!"; objJsonResult.data = null; return objJsonResult; } if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); objJsonResult.data = null; return objJsonResult; } //========================================================= //保存 批量保存先看子表是否有数据,有数据就进 存入主表 明细表 没有就存储主子明细表 string sql = "select * from Sc_QualityReportBillSub where HInterID = '" + HInterID + "'"; ds = oCN.RunProcReturn(sql, "Sc_QualityReportBillSub"); if (ds.Tables[0].Rows.Count>0) { oCN.RunProc("exec h_p_save_Sc_QualityReportBillSum '" + HInterID + "','" + HBillSubType +"'"); } else { oCN.RunProc("exec h_p_save_Sc_QualityReportBill '" + HInterID + "','" + HBillSubType + "'"); } //判断是否允许保存,不允许则回滚 ds = oCN.RunProcReturn("exec h_p_JIT_ICMOBillQualityStatus_SaveCtrl", "h_p_JIT_ICMOBillQualityStatus_SaveCtrl"); if (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; } //保存后控制========================================= ds = oCN.RunProcReturn("exec h_p_Sc_QualityReportBill_AfterSaveCtrl " + HInterID + ",'" + HBillNo + "',1", "h_p_Sc_QualityReportBill_AfterSaveCtrl"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存后判断失败!"; objJsonResult.data = null; return objJsonResult; } if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); objJsonResult.data = null; return objJsonResult; } //========================================================= oCN.Commit(); //获取自动审核参数 string sReturn = ""; if (oSystemParameter.ShowBill(ref sReturn) == true) { if (oSystemParameter.omodel.Sc_ICMOBillQualityStatus_AutoCheck == "Y") //系统参数 自动审核 { //审核 objJsonResultReturn = (json)set_CheckBill(HInterID, HChecker, ref ClsPub.sExeReturnInfo); if (objJsonResultReturn.code == "1") { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "单据存盘完毕!审核成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "单据存盘完毕!自动审核失败,原因:" + objJsonResultReturn.Message; objJsonResult.data = null; return objJsonResult; } } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "单据存盘完毕!"; objJsonResult.data = null; return objJsonResult; } } 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("Sc_QualityReportBill/SaveSc_QualityReportBillSub")] [HttpPost] public object SaveSc_QualityReportBillSub([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); //表头数据 string msg3 = sArray[1].ToString(); //子表1数据 string refSav = sArray[2].ToString(); //操作方式 string msg4 = sArray[3].ToString(); //用户 DBUtility.ClsPub.CurUserName = msg4; ListModels oListModels = new ListModels(); try { DAL.ClsSc_QualityReportBill oBill = new DAL.ClsSc_QualityReportBill(); //表体数据 //按 },{来拆分数组 //去掉【和】 msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n List ls = new List(); ls = oListModels.getObjectByJson_Sc_QualityReportBillSub(msg3); int i = 0; foreach (Model.ClsSc_QualityReportBillSub oSub in ls) { i++; oSub.HMakeDate = DateTime.Now; oSub.HEntryID = i; string subSql = "Insert into Sc_QualityReportBillSub " + " (HInterID,HEntryID,HBillNo_bak,HRemark" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" + ",HMaterID,HUnitID,HQty,HResult,HEmpID,HSourceID,HProcID,HBadReasonID,HBadReasonNumber,HBadPhenomenaID,HGroupID" + ",HICMOInterID,HICMOEntryID,HICMOBillNo,HProcExchInterID,HProcExchEntryID,HProcExchBillNo" + ",HBarCode,HReportType" + ",HAddr,HMaker,HMakeDate" + ") values(" + "" + oSub.HInterID.ToString() + "" + "," + oSub.HEntryID.ToString() + "" + ",'" + oSub.HBillNo_bak + "'" + ",'" + oSub.HRemark + "'" + "," + oSub.HSourceInterID.ToString() + "" + "," + oSub.HSourceEntryID.ToString() + "" + ",'" + oSub.HSourceBillNo + "'" + ",'" + oSub.HSourceBillType + "'" + "," + oSub.HRelationQty.ToString() + "" + "," + oSub.HRelationMoney.ToString() + "," + oSub.HMaterID.ToString() + "" + "," + oSub.HUnitID.ToString() + "" + ",'" + oSub.HQty.ToString() + "','" + oSub.HResult + "'" + "," + oSub.HEmpID.ToString() + "" + "," + oSub.HSourceID.ToString() + "" + "," + oSub.HProcID.ToString() + "" + "," + oSub.HBadReasonID.ToString() + "" + ",'" + oSub.HBadReasonNumber.ToString() + "'" + "," + oSub.HBadPhenomenaID.ToString() + "" + ",'" + oSub.HGroupID.ToString() + "'" + "," + oSub.HICMOInterID.ToString() + "" + "," + oSub.HICMOEntryID.ToString() + "" + ",'" + oSub.HICMOBillNo + "'" + "," + oSub.HProcExchInterID + "" + "," + oSub.HProcExchEntryID + "" + ",'" + oSub.HProcExchBillNo + "'" + ",'" + oSub.HBadReasonNumber.ToString() + "'" + ",'" + 1 + "','" + oSub.HAddr + "'" + ",'" + msg4 + "'" + ",GETDATE()" + ") "; oCN.RunProc(subSql); } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; objJsonResult.data = 1; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } #endregion #region 生产质量汇报单列表 查询 /// /// 返回生产质量汇报单列表 ///参数:string sql。 ///返回值:object。 /// [Route("Sc_QualityReportBill/getSc_QualityReportBill")] [HttpGet] public object getSc_QualityReportBill(string sWhere, string user) { try { List columnNameList = new List(); //查看权限 if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_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_Sc_QualityReportBillList_Query order by 单据号 desc", "h_v_Sc_QualityReportBillList_Query"); } else { string sql1 = "select * from h_v_Sc_QualityReportBillList_Query where 1 = 1 "; string sql = sql1 + sWhere + " order by 单据号 desc"; ds = oCN.RunProcReturn(sql, "h_v_Sc_QualityReportBillList_Query"); } //添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } objJsonResult.code = "1"; 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("Sc_QualityReportBill/SaveSc_QualityReportBill")] [HttpPost] public object SaveSc_QualityReportBill([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); //表头数据 string msg3 = sArray[1].ToString(); //子表1数据 string refSav = sArray[2].ToString(); //操作方式 string msg4 = sArray[3].ToString(); //用户 DBUtility.ClsPub.CurUserName = msg4; string UserName = ""; string s = ""; ListModels oListModels = new ListModels(); try { //编辑权限 if (!DBUtility.ClsPub.Security_Log_second("Sc_QualityReportBill_Edit", 1, false, msg4)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无保存权限!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_QualityReportBill oBill = new DAL.ClsSc_QualityReportBill(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_Sc_QualityReportBillMain(msg2); foreach (Model.ClsSc_QualityReportBillMain oItem in lsmain) { if (refSav == "Add") { //单据号是否重复 if (BillNew0.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据号重复!不允许保存!"; objJsonResult.data = 1; return objJsonResult; } } if (refSav == "Update") { if (BillOld.ShowBill(oItem.HInterID, ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据有误!"; objJsonResult.data = 1; return objJsonResult; } //判断是否可编辑 if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据已经被审核,不允许修改!"; objJsonResult.data = 1; return objJsonResult; } if (BillOld.omodel.HBillStatus > 1) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!"; objJsonResult.data = 1; return objJsonResult; } if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = s + ",不允许修改"; objJsonResult.data = 1; return objJsonResult; } } UserName = oItem.HMaker; //制单人 //oItem.HBillType = "2003"; //oItem.HBillSubType = "2003"; //oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); //oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month); //oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd")); if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!没有单据日期,无法保存!"; objJsonResult.data = 1; return objJsonResult; } oBill.omodel = oItem; } //表体数据 //按 },{来拆分数组 //去掉【和】 msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n //msg2 = msg2.Replace("'", "’"); List ls = new List(); ls = oListModels.getObjectByJson_Sc_QualityReportBillSub(msg3); int i = 0; foreach (Model.ClsSc_QualityReportBillSub oItemSub in ls) { i++; oItemSub.HEntryID = i; //oItemSub.HCloseMan = ""; //行关闭 oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); oItemSub.HCloseType = false; //关闭类型 //oItemSub.HRemark = ""; //备注 //oItemSub.HSourceInterID = 0; // 源单主内码 //oItemSub.HSourceEntryID = 0; //源单子内码 //oItemSub.HSourceBillNo = ""; //源单单号 //oItemSub.HSourceBillType = ""; //源单类型 //oItemSub.HRelationQty = 0; //关联数量 //oItemSub.HRelationMoney = 0; //关联金额 oBill.DetailColl.Add(oItemSub); } //保存 //保存完毕后处理 bool bResult; if (refSav == "Add") { // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } else if (refSav == "Update") { bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); } else { bResult = false; } if (bResult) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单"); objJsonResult.data = 1; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = 1; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } #endregion #region 生产质量汇报单 编辑页面初始化 [Route("Sc_QualityReportBill/cx")] [HttpGet] public object cx(long HInterID) { try { ds = oCN.RunProcReturn("select * from h_v_Sc_QualityReportBillList_Edit where hmainid=" + HInterID, "h_v_Sc_QualityReportBillList_Edit"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "false!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 生产质量汇报单 删除 [Route("Sc_QualityReportBill/DropSc_QualityReportBill")] [HttpGet] public object dropSc_QualityReportBill(string HInterID, string user) { try { string s = ""; //查看权限 if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_Drop", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无删除权限!"; objJsonResult.data = null; return objJsonResult; } if (HInterID == null || HInterID.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID不能为空!"; objJsonResult.data = null; return objJsonResult; } if (BillOld.ShowBill(long.Parse(HInterID), ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据有误!"; objJsonResult.data = 1; return objJsonResult; } //判断是否可编辑 if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据已经被审核,不允许删除!"; objJsonResult.data = 1; return objJsonResult; } //删除前控制========================================= string sql1 = "exec h_p_Sc_QualityReportBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Sc_QualityReportBill_BeforeDelCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "删除失败!原因:删除前判断失败,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "删除失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ; objJsonResult.data = null; return objJsonResult; } //================================================================================== oCN.BeginTran(); oCN.RunProc("delete from Sc_QualityReportBillMain where HInterID = " + HInterID); oCN.RunProc("delete from Sc_QualityReportBillSub where HInterID='" + HInterID + "'"); //删除后控制================================================================================== string sql2 = "exec h_p_Sc_QualityReportBill_AfterDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'"; ds = oCN.RunProcReturn(sql2, "h_p_Sc_QualityReportBill_AfterDelCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { s = "删除后判断失败,请与网络管理人员联系"; objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "删除失败!原因:" + s; objJsonResult.data = null; oCN.RollBack(); return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { s = ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "删除失败!原因:" + s; objJsonResult.data = null; oCN.RollBack(); return objJsonResult; } //============================================================================================== oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "您已删除单据号为" + BillOld.omodel.HBillNo + "的生产质量汇报单!"; 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 生产质量汇报单 审核/反审核 /// /// /// 单据ID /// 审核(0),反审核(1) /// 审核人 /// [Route("Sc_QualityReportBill/AuditSc_QualityReportBill")] [HttpGet] public object AuditSc_QualityReportBill(int HInterID, int IsAudit, string CurUserName) { string ModRightNameCheck = "Sc_QualityReportBill_Check"; DBUtility.ClsPub.CurUserName = CurUserName; try { //审核权限 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsSc_QualityReportBill oBill = new DAL.ClsSc_QualityReportBill(); //实例化单据操作类,用于进行相关操作 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 { 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; } if (IsAudit == 0) //审核判断 { if (oBill.omodel.HChecker.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反审核判断 { 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 (IsAudit == 0) //审核提交 { //审核前控制========================================= string sql1 = "exec h_p_Sc_QualityReportBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Sc_QualityReportBill_BeforeCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:审核前判断失败,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ; objJsonResult.data = null; return objJsonResult; } //================================================================================== //审核提交 if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_QualityReportBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "审核成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反审核提交 { //反审核前控制========================================= string sql1 = "exec h_p_Sc_QualityReportBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Sc_QualityReportBill_BeforeUnCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反审核失败!原因:反审核前判断失败,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ; objJsonResult.data = null; return objJsonResult; } //=========================================================== //反审核提交AbandonCheck if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_QualityReportBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反审核成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 生产质量汇报单 关闭/反关闭 /// /// /// 单据ID /// 关闭(0),反关闭(1) /// 关闭人 /// [Route("Sc_QualityReportBill/CloseSc_QualityReportBill")] [HttpGet] public object CloseSc_QualityReportBill(int HInterID, int IsAudit, string CurUserName) { string ModRightNameCheck = "Sc_QualityReportBill_Close"; DBUtility.ClsPub.CurUserName = CurUserName; try { //检查权限 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "关闭失败!无权限!"; objJsonResult.data = null; return objJsonResult; } //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsSc_QualityReportBill oBill = new DAL.ClsSc_QualityReportBill(); //实例化单据操作类,用于进行相关操作 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 { if (oBill.omodel.HDeleteMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废!不能进行关闭!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HChecker.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未审核!不能进行关闭!"; objJsonResult.data = null; return objJsonResult; } if (IsAudit == 0) //关闭判断 { if (oBill.omodel.HCloseMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已关闭!不能再次关闭!"; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反关闭判断 { if (oBill.omodel.HCloseMan.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未关闭!不需要反关闭!"; objJsonResult.data = null; return objJsonResult; } } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } //进行需要进行的关闭/反关闭操作 if (IsAudit == 0) //关闭提交 { //关闭提交 if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "关闭成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "关闭失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反关闭提交 { //反关闭提交 if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反关闭成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反关闭失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "关闭失败或者反关闭失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 生产质量汇报单 作废/反作废 /// /// /// 单据ID /// 作废(0),反作废(1) /// 作废人 /// [Route("Sc_QualityReportBill/DeleteSc_QualityReportBill")] [HttpGet] public object DeleteSc_QualityReportBill(int HInterID, int IsAudit, string CurUserName) { string ModRightNameCheck = "Sc_QualityReportBill_Delete"; DBUtility.ClsPub.CurUserName = CurUserName; try { //检查权限 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废失败!无权限!"; objJsonResult.data = null; return objJsonResult; } //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsSc_QualityReportBill oBill = new DAL.ClsSc_QualityReportBill(); //实例化单据操作类,用于进行相关操作 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 { if (oBill.omodel.HChecker.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核!不能进行作废!"; objJsonResult.data = null; return objJsonResult; } if (IsAudit == 0) //作废判断 { if (oBill.omodel.HDeleteMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废!不能再作废!"; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反作废判断 { if (oBill.omodel.HDeleteMan.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未作废!不需要反作废!"; objJsonResult.data = null; return objJsonResult; } } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } //进行需要进行的作废/反作废操作 if (IsAudit == 0) //作废提交 { //作废提交 if (oBill.Cancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "作废成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反关闭提交 { //反关闭提交 if (oBill.AbandonCancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反作废成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反作废失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废失败或者反作废失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 生产质量日汇报单列表 查询 public class ReportWorkDemandPlanBill { public string HNumber; public string HName; public DateTime HBeginDate; public DateTime HEndDate; public string HProcName; public string HEquipName; public string HBactNo; } [Route("Sc_QualityReportBill/getSc_QualityReportBillDay")] [HttpGet] public object getSc_QualityReportBillDay(string sWhere, string user) { try { List columnNameList = new List(); //查看权限 if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_Query", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查看权限!"; objJsonResult.data = null; return objJsonResult; } ReportWorkDemandPlanBill Report = JsonConvert.DeserializeObject(sWhere); ds = oCN.RunProcReturn($"exec h_p_Sc_StationOutBillMain '{Report.HBeginDate}','{Report.HEndDate}','{Report.HNumber}','{Report.HName}','{Report.HProcName}','{Report.HEquipName}','{Report.HBactNo}'", "h_p_Sc_StationOutBillMain"); //添加列名 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.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 生产质量月汇报单列表 查询 public class ReportWorkDemandPlanBill1 { public string HYear; public string HWorkCenter; public string HName; public DateTime HBeginDate; public DateTime HEndDate; } [Route("Sc_QualityReportBill/getSc_QualityReportBillMonth")] [HttpGet] public object getSc_QualityReportBillMonth(string sWhere, string user) { try { List columnNameList = new List(); //查看权限 if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_Query", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查看权限!"; objJsonResult.data = null; return objJsonResult; } ReportWorkDemandPlanBill1 Report = JsonConvert.DeserializeObject(sWhere); ds = oCN.RunProcReturn($"exec h_p_Sc_StationOutBillMonth '{Report.HYear}','{Report.HWorkCenter}','{Report.HName}', '{Report.HBeginDate}','{Report.HEndDate}'", "h_p_Sc_StationOutBillMonth"); //添加列名 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.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("Sc_QualityReportBill/getSc_HMaterYieldStatistics")] [HttpGet] public object getSc_HMaterYieldStatistics(string sWhere, string user) { try { List columnNameList = new List(); //查看权限 if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_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_Sc_HMater_Yield_Statistics_Query order by 单据号 desc", "h_v_Sc_HMater_Yield_Statistics_Query"); } else { string sql1 = "select * from h_v_Sc_HMater_Yield_Statistics_Query where 1 = 1 "; string sql = sql1 + sWhere + " order by 日期 desc"; ds = oCN.RunProcReturn(sql, "h_v_Sc_HMater_Yield_Statistics_Query"); } //添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } objJsonResult.code = "1"; 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("Sc_QualityReportBill/getSc_HICMMaterStatistics")] [HttpGet] public object getSc_HICMMaterStatistics(string sWhere, string user) { try { List columnNameList = new List(); //查看权限 if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_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_Sc_HICMMater_Statistics_Query order by 单据号 desc", "h_v_Sc_HICMMater_Statistics_Query"); } else { string sql1 = "select * from h_v_Sc_HICMMater_Statistics_Query where 1 = 1 "; string sql = sql1 + sWhere + " order by 日期 desc"; ds = oCN.RunProcReturn(sql, "h_v_Sc_HICMMater_Statistics_Query"); } //添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } objJsonResult.code = "1"; 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 生产质量汇报单_PDA 新增 [Route("Sc_QualityReportBill/SaveSc_QualityReportBill_PDA")] [HttpPost] public object SaveSc_QualityReportBill_PDA([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); //表头数据 string msg3 = sArray[1].ToString(); //子表1数据 string refSav = sArray[2].ToString(); //操作方式 string msg4 = sArray[3].ToString(); //用户 DBUtility.ClsPub.CurUserName = msg4; ListModels oListModels = new ListModels(); string s = ""; try { //编辑权限 if (!DBUtility.ClsPub.Security_Log_second("Sc_QualityReportBill_Edit", 1, false, msg4)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无保存权限!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_QualityReportBill oBill = new DAL.ClsSc_QualityReportBill(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_Sc_QualityReportBillMain(msg2); foreach (Model.ClsSc_QualityReportBillMain oItem in lsmain) { if (refSav == "Add") { //单据号是否重复 if (BillNew0.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据号重复!不允许保存!"; objJsonResult.data = 1; return objJsonResult; } } if (refSav == "Update") { if (BillOld.ShowBill(oItem.HInterID, ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据有误!"; objJsonResult.data = 1; return objJsonResult; } //判断是否可编辑 if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据已经被审核,不允许修改!"; objJsonResult.data = 1; return objJsonResult; } if (BillOld.omodel.HBillStatus > 1) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!"; objJsonResult.data = 1; return objJsonResult; } if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = s + ",不允许修改"; objJsonResult.data = 1; return objJsonResult; } } if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!没有单据日期,无法保存!"; objJsonResult.data = 1; return objJsonResult; } oBill.omodel = oItem; } //表体数据 //按 },{来拆分数组 //去掉【和】 msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n //msg2 = msg2.Replace("'", "’"); List ls = new List(); ls = oListModels.getObjectByJson_Sc_QualityReportBillSub(msg3); int i = 0; foreach (Model.ClsSc_QualityReportBillSub oItemSub in ls) { i++; oItemSub.HEntryID = i; oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); oItemSub.HCloseType = false; //关闭类型 oBill.DetailColl.Add(oItemSub); } //保存 //保存完毕后处理 bool bResult; if (refSav == "Add") { bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } else if (refSav == "Update") { bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); } else { bResult = false; } if (bResult) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; objJsonResult.data = 1; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = 1; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } #endregion } }