using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using WebAPI.Models;
using WebAPI.Service;
using System.Collections.Generic;
using System.Data;
using Newtonsoft.Json.Linq;
namespace WebAPI.Controllers
{
public class QC_ManagementController : ApiController
{
#region 错误返回方法
// GET: QC_Management
public DBUtility.ClsPub.Enum_BillStatus BillStatus;
private json objJsonResult = new json();
///
///封装状态码及返回信息的公用方法。
///参数:DataSet。
///返回值:json。
///
public object GetObjectJson(DataSet ds)
{
try
{
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;
}
}
///
///统一正确信息方法。
///参数:string。
///返回值:object。
///
public object CustomCorrect(DataSet ds)
{
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;
}
}
///
///自定义错误信息方法。
///参数:string。
///返回值:object。
///
public object CustomError(string msg)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = msg;
objJsonResult.data = null;
return objJsonResult;
}
#endregion
#region 查询列表方法
///
/// 返回检验方案单列表
///
///
///
[Route("QC_Management/MES_QC_CheckProjectList_Json")]
[HttpGet]
public object MES_QC_CheckProjectList_Json(string sqlWhere)
{
DataSet ds;
try
{
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sqlWhere == null || sqlWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_Gy_QCCheckProjectList where HBillStatus>-1 ", "h_v_Gy_QCCheckProjectList");
}
else
{
string sql1 = "select * from h_v_Gy_QCCheckProjectList where HBillStatus>-1 ";
string sql = sql1 + sqlWhere;
ds = oCN.RunProcReturn(sql, "h_v_Gy_QCCheckProjectList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 返回来料检验单列表
///
///
///
[Route("QC_Management/MES_QC_POStockInCheckBillList_Json")]
[HttpGet]
public object MES_QC_POStockInCheckBillList_Json(string sqlWhere)
{
DataSet ds;
try
{
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sqlWhere == null || sqlWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_QC_POStockInCheckBillList ", "h_v_QC_POStockInCheckBillList");
}
else
{
string sql1 = "select * from h_v_QC_POStockInCheckBillList where 1 = 1 ";
string sql = sql1 + sqlWhere;
ds = oCN.RunProcReturn(sql, "h_v_QC_POStockInCheckBillList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
///返回首件检验单列表
///
///
///
[Route("QC_Management/MES_QC_FirstPieceCheckBillList_Json")]
[HttpGet]
public object MES_QC_FirstPieceCheckBillList_Json(string sqlWhere)
{
DataSet ds;
try
{
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sqlWhere == null || sqlWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_QC_FirstPieceCheckBillList ", "h_v_QC_FirstPieceCheckBillList");
}
else
{
string sql1 = "select * from h_v_QC_FirstPieceCheckBillList where 1 = 1 ";
string sql = sql1 + sqlWhere;
ds = oCN.RunProcReturn(sql, "h_v_QC_FirstPieceCheckBillList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 返回巡检记录单列表
///
///
///
[Route("QC_Management/MES_QC_PatrolProcCheckBillList_Json")]
[HttpGet]
public object MES_QC_PatrolProcCheckBillList_Json(string sqlWhere)
{
DataSet ds;
try
{
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sqlWhere == null || sqlWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_QC_PatrolProcCheckBillList ", "h_v_QC_PatrolProcCheckBillList");
}
else
{
string sql1 = "select * from h_v_QC_PatrolProcCheckBillList where 1 = 1 ";
string sql = sql1 + sqlWhere;
ds = oCN.RunProcReturn(sql, "h_v_QC_PatrolProcCheckBillList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 返回检验方案单子表详情
///
///
///
[Route("MES_QC_CheckProjectDetail_Json")]
[HttpGet]
public object MES_QC_CheckProjectDetail_Json(string sqlWhere)
{
DataSet ds;
try
{
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sqlWhere == null || sqlWhere.Equals(""))
{
ds = oCN.RunProcReturn("select HPrjNo,HQCCheckItemID,HQCStd,HQCStdMax,HQCUnit,HRemark from Gy_QCCheckProjectSub", "Gy_QCCheckProjectSub");
}
else
{
string sql1 = "select HPrjNo,HQCCheckItemID,HQCStd,HQCStdMax,HQCUnit,HRemark from Gy_QCCheckProjectSub where 1 = 1 ";
string sql = sql1 + sqlWhere;
ds = oCN.RunProcReturn(sql, "Gy_QCCheckProjectSub");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
#endregion
#region 保存/编辑/删除方法
///
/// 保存检验方案
///
///
///
[Route("SaveQCCheckProjectList")]
[HttpPost]
public object SaveQCCheckProjectList([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();
string UserName = "";
ListModels oListModels = new ListModels();
try
{
DAL.ClsGy_QCCheckProjectMain oBill = new DAL.ClsGy_QCCheckProjectMain();
List lsmain = new List();
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", ""); //\n
lsmain = oListModels.getObjectByJson_Gy_QCCheckProjectMain(msg2);
foreach (Model.ClsGy_QCCheckProjectMain oItem in lsmain)
{
//oItem.HMaker = "";
UserName = oItem.HMaker;
oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));
oItem.HBillType = "3302";
oItem.HBillSubType = "3302";
oItem.HBillStatus = 0;
oItem.HPeriod = 0;
oItem.HMaker = "";
oItem.HStandard = false;
oItem.HMainSourceInterID = oItem.HInterID;
oItem.HMaterTypeID = 0;
//oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
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_ClsGy_QCCheckProjectSub(msg3);
int i = 0;
foreach (Model.ClsGy_QCCheckProjectSub oItemSub in ls)
{
oItemSub.HBillNo_bak = oBill.omodel.HBillNo;//单据号(备份,以免内码丢失,找不到对应主表)
i++;
if (string.IsNullOrWhiteSpace(oItemSub.HBillNo_bak))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!没备份单据号,无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
oItemSub.HSourceEntryID =0;
oItemSub.HSourceInterID =0;
oItemSub.HEntryID = i;
oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
oItemSub.HCloseType = false;
oItemSub.HSourceBillNo = "";
oItemSub.HSourceBillType = "";
oItemSub.HRelationQty = 0;
oItemSub.HRelationMoney = 0;
oItemSub.HCloseMan = "";
oItemSub.HRemark = "";
oBill.DetailColl.Add(oItemSub);
}
//保存
//保存完毕后处理
bool bResult;
if (oBill.omodel.HInterID == 0)
{
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
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 = "保存成功!";
//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;
}
}
///
/// 检验方案获取信息
///
///
[Route("GetQCCheckProjectDetail")]
[HttpGet]
public ApiResult GetQCCheckProjectDetail(string HID)
{
var model = LuBaoSevice.GetCheckProjectDetail(HID);
return model;
}
///
/// 检验方案逻辑删除功能
///
///
[Route("DeltetQCCheckProject")]
[HttpGet]
public object DeltetQCCheckProject(string HInterID)
{
DataSet ds;
//string ModRightNameCheck = "Sc_ProcessReport_check";
try
{
//删除权限
//if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, CurUserName))
//{
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = "审核失败!无权限!";
// objJsonResult.data = null;
// return objJsonResult;
//}
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (string.IsNullOrWhiteSpace(HInterID))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "HInterID为空!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.BeginTran();//开始事务
ds = oCN.RunProcReturn("select * from Gy_QCCheckProjectMain where HInterID=" + HInterID, "Gy_QCCheckProjectMain");
DataSet ds2 = oCN.RunProcReturn("select * from Gy_QCCheckProjectSub where HInterID=" + HInterID, "Gy_QCCheckProjectSub");
if (ds == null || ds.Tables[0].Rows.Count == 0 || ds2==null || ds2.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有这个单据,无法删除!";
objJsonResult.data = null;
return objJsonResult; ;
}
int HBillStatus = Convert.ToInt32(ds.Tables[0].Rows[0]["HBillStatus"]);
int HPrjNo= Convert.ToInt32(ds2.Tables[0].Rows[0]["HPrjNo"]);
if (HBillStatus < 0 || HPrjNo<0)
{
oCN.RollBack();//回滚事务
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据已删除无法再次删除!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.RunProc("update Gy_QCCheckProjectMain set HBillStatus=-1 where HInterID="+HInterID);
oCN.RunProc("update Gy_QCCheckProjectSub set HPrjNo=-1 where HInterID=" + HInterID);
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
}
}