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 //数据库主表QC_ProcessCheckBillMain //数据库子表QC_ProcessCheckBillSub public class QC_ProcessCheckBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; private json objJsonResult = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds; #region 工序检验单保存 /// /// 新增单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("QC_ProcessCheckBill/set_SaveBill")] [HttpPost] public object set_SaveBill([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); //保存单据 return objJsonResult = AddBillMain(msg1); } public json AddBillMain(string msg1) { string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); string OperationType = sArray[2].ToString().Trim(); bool bResult; try { msg2 = "[" + msg2.ToString() + "]"; List mainList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); DAL.ClsQC_ProcessCheckBill BillNew = new DAL.ClsQC_ProcessCheckBill(); //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; DateTime HDate = mainList[0].HDate;//日期 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; } BillNew.omodel.HYear = sYear; BillNew.omodel.HPeriod = sPeriod; //固定赋值================================= BillNew.omodel.HInterID = mainList[0].HInterID;//递入type得到的单据ID BillNew.omodel.HBillNo = mainList[0].HBillNo;//递入type得到的单据号 BillNew.omodel.HDate = HDate; BillNew.omodel.HRemark = mainList[0].HRemark;//备注 BillNew.omodel.HMaker = mainList[0].HMaker; BillNew.omodel.HSourceID = ClsPub.isLong(mainList[0].HSourceID); BillNew.omodel.HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID); BillNew.omodel.HICMOBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo); BillNew.omodel.HICMOEntryID = ClsPub.isLong(mainList[0].HICMOEntryID); BillNew.omodel.HProcExchInterID = ClsPub.isLong(mainList[0].HProcExchInterID); BillNew.omodel.HProcExchEntryID = ClsPub.isLong(mainList[0].HProcExchEntryID); BillNew.omodel.HProcExchBillNo = ClsPub.isStrNull(mainList[0].HProcExchBillNo); BillNew.omodel.HMaterID = ClsPub.isLong(mainList[0].HMaterID); BillNew.omodel.HFirstCheckEmp = ClsPub.isLong(mainList[0].HFirstCheckEmp); BillNew.omodel.HCheckerResult = ClsPub.isStrNull(mainList[0].HCheckerResult); BillNew.omodel.HMainSourceInterID = ClsPub.isLong(mainList[0].HMainSourceInterID); BillNew.omodel.HMainSourceEntryID = ClsPub.isLong(mainList[0].HMainSourceEntryID); BillNew.omodel.HMainSourceBillNo = ClsPub.isStrNull(mainList[0].HMainSourceBillNo); BillNew.omodel.HMainSourceBillType = ClsPub.isStrNull(mainList[0].HMainSourceBillType); BillNew.omodel.HBillStatus = 1; BillNew.omodel.HProcID = ClsPub.isLong(mainList[0].HProcID); List subList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg3); BillNew.DetailColl = new List(); for (int i = 0; i < subList.ToArray().Length; i++) { if (i >= 0)//HQty { Model.ClsQC_ProcessCheckBillSub oSub = new Model.ClsQC_ProcessCheckBillSub(); oSub.HEntryID = i+1; oSub.HRemark = ClsPub.isStrNull(subList[i].HRemark); oSub.HSourceInterID = ClsPub.isLong(subList[i].HSourceInterID); oSub.HSourceEntryID = ClsPub.isLong(subList[i].HSourceEntryID); oSub.HSourceBillType = ClsPub.isStrNull(subList[i].HSourceBillType); oSub.HSourceBillNo = ClsPub.isStrNull(subList[i].HSourceBillNo); oSub.HRelationQty = DBUtility.ClsPub.isDoule(subList[i].HRelationQty); oSub.HRelationMoney = DBUtility.ClsPub.isDoule(subList[i].HRelationMoney); oSub.HCloseMan = DBUtility.ClsPub.isStrNull(subList[i].HCloseMan); oSub.HCloseType = DBUtility.ClsPub.isBool(subList[i].HCloseType); oSub.HQCCheckItemID = DBUtility.ClsPub.isLong(subList[i].HQCCheckItemID); oSub.HQCStd = DBUtility.ClsPub.isStrNull(subList[i].HQCStd); oSub.HResult = DBUtility.ClsPub.isStrNull(subList[i].HResult); oSub.HQCRelValue = DBUtility.ClsPub.isStrNull(subList[i].HQCRelValue); oSub.HProcCheckTime = HDate; oSub.HBillNo_bak = DBUtility.ClsPub.isStrNull(mainList[0].HBillNo); oSub.HProcCheckEmp = ClsPub.isLong(mainList[0].HFirstCheckEmp); BillNew.DetailColl.Add(oSub); } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无明细行信息!"; objJsonResult.data = null; return objJsonResult; } } //保存完毕后处理 if (OperationType.Equals("1") || OperationType.Equals("2")) { bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo); } else { bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo); } //提示 if (bResult == true) { objJsonResult.code = "1"; objJsonResult.count = 1; //objJsonResult.Message = "单据存盘完毕!单据号:" + mainList[0].HBillNo.Trim(); objJsonResult.Message = ClsPub.sExeReturnInfo+"单据号:" + mainList[0].HBillNo.Trim(); 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; } } #endregion #region 工序检验单根据源单类型获取信息-源单为生产状态临时表(3722) /// ///参数:string sql。 ///返回值:object。 /// [Route("QC_ProcessCheckBill/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("exec h_p_QC_GetInfoByICMOStatusBill " + HInterID + "," + HEntryID + "," + HBillType, "h_p_QC_GetInfoByICMOStatusBill"); } 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 工序检验单Old /// /// 工序检验单列表修改按钮方法 ///参数:string sql。 ///返回值:object。 /// [Route("QC_ProcessCheckBill/xg")] [HttpGet] public object xg(long HInterID) { try { ds = oCN.RunProcReturn("select HInterID,HBillNo,HProcExchInterID,HProcExchEntryID,HProcExchBillNo" + ",HMaterID,HProcID,HSourceID,HEmpID,HInStockQty" + ",HCheckQty,HRightQty,HBadQty,HFirstCheckEmp,HCheckerResult" + ",HBarCode,HLBatchNo,HCusID,HSortBillNo,HContrctBatchNo" + ",HProdAreaID,HProdTypeID,HProdStoveNo,HRecipeID,HDiameter1" + ",HDiameter2,HRoutingInterID,HDrawingDireID,HPackTypeID from QC_ProcessCheckBillMain where HInterID=" + HInterID, "QC_ProcessCheckBillMain"); 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 = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 修改单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("QC_ProcessCheckBill/AddBill1")] [HttpPost] public object AddBill1([FromBody] JObject oMain) { var _value = oMain["oMain"].ToString(); string msg1 = _value.ToString(); try { DAL.ClsQC_ProcessCheckBill oProcess = new DAL.ClsQC_ProcessCheckBill(); msg1 = "[" + msg1.ToString() + "]"; List mainList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg1); string BillType = "7507"; long HInterID = mainList[0].HInterID;//递入type得到的单据ID string HBillNo = mainList[0].HBillNo;//递入type得到的单据号 DateTime HDate = mainList[0].HDate;//日期 int HYear = 2021; double HPeriod = 1; long HBillStatus = mainList[0].HBillStatus; long HCheckItemNowID = mainList[0].HCheckItemNowID; long HCkeckItemNextID = mainList[0].HCheckItemNextID; long HCheckFlowID = mainList[0].HCheckFlowID; string HRemark = mainList[0].HRemark;//备注 string HBacker = mainList[0].HBacker; DateTime HBackDate = mainList[0].HBackDate; string HBackRemark = mainList[0].HBackRemark; string HChecker = mainList[0].HChecker; DateTime HCheckDate = mainList[0].HCheckDate; string HMaker = mainList[0].HMaker; DateTime HMakeDate = mainList[0].HMakeDate; string HUpDater = mainList[0].HUpDater; DateTime HUpDateDate = mainList[0].HUpDateDate; string HCloseMan = mainList[0].HCloseMan; DateTime HCloseDate = mainList[0].HCloseDate; string HCloseType = mainList[0].HCloseType; string HDeleteMan = mainList[0].HDeleteMan; DateTime HDeleteDate = mainList[0].HDeleteDate; string HMainSourceBillType = mainList[0].HMainSourceBillType; long HMainSourceInterID = mainList[0].HMainSourceInterID; long HMainSourceEntryID = mainList[0].HMainSourceEntryID; string HMainSourceBillNo = mainList[0].HMainSourceBillNo; double HPrintQty = mainList[0].HPrintQty; long HICMOInterID = mainList[0].HICMOInterID; string HICMOBillNo = mainList[0].HICMOBillNo; long HProExchInterID = mainList[0].HProcExchInterID; long HProExchEntryID = mainList[0].HProcExchEntryID; string HProExchBillNo = mainList[0].HProcExchBillNo; long HMaterID = mainList[0].HMaterID; long HProcID = mainList[0].HProcID; long HSourceID = mainList[0].HSourceID; long HEmpID = mainList[0].HEmpID; double HInStockQty = mainList[0].HInStockQty; double HCheckQty = mainList[0].HCheckQty; double HRightQty = mainList[0].HRightQty; double HBadQty = mainList[0].HBadQty; long HFirstCheckEmp = mainList[0].HFirstCheckEmp; string HCheckerResult = mainList[0].HCheckerResult; string HBarcode = mainList[0].HBarcode; string HLBatchNo = mainList[0].HLBatchNo; long HCusID = mainList[0].HCusID; string HSortBillNo = mainList[0].HSortBillNo; string HConTrctBatchNo = mainList[0].HContrctBatchNo; long HProdAreaID = mainList[0].HProdAreaID; long HProdTypeID = mainList[0].HProdTypeID; string HProdStoveNo = mainList[0].HProdStoveNo; long HRecipeID = mainList[0].HRecipeID; double HDiameter1 = mainList[0].HDiameter1; double HDiameter2 = mainList[0].HDiameter2; long HRoutingInterID = mainList[0].HRoutingInterID; long HPackTypeID = mainList[0].HPackTypeID; long HDrawingDireID = mainList[0].HDrawingDireID; //若MAINDI重复则重新获取 oCN.BeginTran(); //主表 oCN.RunProc("Update QC_ProcessCheckBillMain set " + "HMaterID=" + HMaterID + ",HSourceID=" + HSourceID + ",HEmpID=" + HEmpID + ",HInStockQty=" + HInStockQty + ",HCheckQty=" + HCheckQty + ",HRightQty=" + HRightQty + ",HBadQty=" + HBadQty + ",HCusID=" + HCusID + ",HRemark= '" + HRemark + "' Where HInterID=" + HInterID, ref DBUtility.ClsPub.sExeReturnInfo); //修改子项目代码 //oCN.RunProc("exec h_p_Gy_UpdateNumber Gy_Department,'" + HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo); //将上级 为非末级 //oCN.RunProc("Update Gy_Department set HEndflag=0 where HItemID=" + HInterID, ref DBUtility.ClsPub.sExeReturnInfo); // oCN.Commit(); 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.Message; objJsonResult.data = null; return objJsonResult; } } /// /// 工序检验单列表删除按钮 ///参数:string sql。 ///返回值:object。 /// [Route("QC_ProcessCheckBill/Delete_Json")] [HttpGet] public object Delete_Json(long HItemID) { DAL.ClsQC_ProcessCheckBill BillOld = new DAL.ClsQC_ProcessCheckBill(); try { if (BillOld.DeleteBill(HItemID, ref ClsPub.sExeReturnInfo) != true) { 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) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 返回工序检验单列表 ///参数:string sql。 ///返回值:object。 /// [Route("QC_ProcessCheckBill/GetProcessCheckBillList")] [HttpGet] public object GetProcessCheckBillList(string sWhere) { try { if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select * from h_v_QC_ProcessCheckBillListDetail order by hmainid desc ", "h_v_QC_ProcessCheckBillListDetail"); } else { string sql1 = "select * from h_v_QC_ProcessCheckBillListDetail where 1 = 1 "; string sql = sql1 + sWhere+ " order by hmainid desc "; ds = oCN.RunProcReturn(sql, "h_v_QC_ProcessCheckBillListDetail"); } 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 // } }