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 ViewAPI; using WebAPI.Models; namespace WebAPI.Controllers { //质量汇报单Controller //数据库主表Sc_QualityReportBillMain //数据库子表Sc_QualityReportBillSub public class Sc_QualityReportStepBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; 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_QualityReportStepBill/list")] [HttpGet] public object list(string sWhere,string user) { try { //判断是否有查询权限 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_QualityReportBillListDetail order by hmainid desc ", "h_v_Sc_QualityReportBillListDetail"); } else { string sql1 = "select * from h_v_Sc_QualityReportBillListDetail where 1 = 1 "; string sql = sql1 + sWhere+ " order by hmainid desc "; 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_QualityReportStepBill/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 { 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.HProcID,p.HNumber HProcNo,p.HName HProcName,a.HSourceID,s.HNumber HSourceNumber,s.HName HSourceName " + " from Sc_ICMOBillStatus_Tmp a " + " left join Gy_Material m on a.HMaterID=m.HItemID " + " left join Gy_Process p on a.HProcID=p.HItemID " + " left join Gy_Source s on a.HSourceID=s.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_QualityReportStepBill/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.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; oCN.BeginTran(); //临时表 oCN.RunProc("Insert Into Sc_ICMOBillQualityStatus_Tmp " + " (HInterID,HBillNo,HDate,HICMOBillNo,HICMOInterID" + ",HProcExchBillNo,HProcExchInterID,HProcExchEntryID,HProcID,HMaterID" + ",HSourceID,HGroupID,HCheckManID,HBadReasonID,HBarCode" + ",HMaker,HMakeDate,HBillType,HReportType,HSourceBillNo" + ",HSourceInterID,HSourceBillType,HICMOEntryID,HSourceEntryID" + ") " + " 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.HCheckManID + "," + BillNew.HBadReasonID + ",'" + BillNew.HBarCode + "'" + ",'" + BillNew.HMaker + "','" + BillNew.HMakeDate + "','" + BillNew.HBillType + "','" + +BillNew.HReportType + "','" +BillNew.HSourceBillNo + "'" + "," + BillNew.HSourceInterID + ",'" + BillNew.HSourceBillType + "'," + BillNew.HICMOEntryID + "," + BillNew.HICMOEntryID + ") "); sReturn = "扫码成功!"; oCN.Commit(); return true; } catch (Exception e) { sReturn = e.Message; oCN.RollBack(); throw (e); } } #endregion #region 质量汇报单列表删除按钮 [Route("Sc_QualityReportStepBill/DeltetSc_QualityReportBill")] [HttpGet] public object DeltetSc_QualityReportBill(long HItemID,string user) { DataSet ds; DataSet ds1; try { //删除权限 if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_Drop", 1, false, user)) { 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 HInterID=" + HItemID, "Sc_QualityReportBillMain"); ds1 = oCN.RunProcReturn("select * from Sc_QualityReportBillSub where HInterID=" + 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 HBillStatus = Convert.ToString(ds.Tables[0].Rows[0]["HBillStatus"]); if (HBillStatus == "2") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此项目已审核,不能删除!"; objJsonResult.data = null; return objJsonResult; } oCN.RunProc("delete from Sc_QualityReportBillMain where HInterID=" + HItemID); oCN.RunProc("delete from Sc_QualityReportBillSub where HInterID=" + 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_QualityReportStepBill/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_QualityReportStepBill/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_QualityReportStepBill/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_QualityReportStepBill/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_QualityReportStepBill/set_SaveBill")] [HttpGet] public object set_SaveBill(long HInterID,string HChecker) { try { //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_Edit", 1, false, HChecker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限编辑!"; objJsonResult.data = null; return objJsonResult; } SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); bool bResult2 = false; oCN.BeginTran(); //保存 oCN.RunProc("exec h_p_save_Sc_QualityReportBill " + HInterID); //判断是否允许保存,不允许则回滚 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; } 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 } }