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; private json objJsonResult = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); 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 { ds = oCN.RunProcReturn ("select a.HInterID,a.HBillType,a.HICMOBillNo,a.HICMOInterID,a.HMaterID" + ",m.HNumber HMaterNumber,m.HName HMaterName,m.HModel HMaterModel " + " from Sc_ICMOBillStatus_Tmp a " + " left join Gy_Material m on a.HMaterID=m.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.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" + ") " + " 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 + "'" + ") "); sReturn = "扫码成功!"; oCN.Commit(); return true; } catch (Exception e) { sReturn = e.Message; oCN.RollBack(); throw (e); } } #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 bool set_CheckBill(long HInterID, ref string sReturn) { try { oCN.BeginTran(); ds = oCN.RunProcReturn("exec Sc_ICMOBillQualityStatus_AutoCheck", "Sc_ICMOBillQualityStatus_AutoCheck"); if (ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "2") { sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); oCN.RollBack(); return false; } sReturn = "审核成功!"; oCN.Commit(); return true; } catch (Exception e) { sReturn = e.Message; oCN.RollBack(); 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) { try { 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; } //是否审核 bResult2 = set_CheckBill(HInterID, ref ClsPub.sExeReturnInfo); //是否审核 if (bResult2 == true) { oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "单据保存成功"; objJsonResult.data = null; return objJsonResult; } else { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据存盘完毕!自动审核失败,原因:" + ClsPub.sExeReturnInfo; 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 } }