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; using WebAPI.Service; namespace WebAPI.Controllers { public class Sc_ProcessMangementController : ApiController { 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; } /// /// 返回生产汇报单列表 ///参数:string sql。 ///返回值:object。 /// [Route("Sc_ProcessMangement/MES_Sc_ProcessReportList_Json")] [HttpGet] public object MES_Sc_ProcessReportList_Json(string sWhere) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select top 500 * from h_v_Sc_ProcessReportList ", "h_v_Sc_ProcessReportList"); } else { string sql1 = "select * from h_v_Sc_ProcessReportList where 1 = 1 "; string sql = sql1 + sWhere; ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessReportList"); } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } return GetObjectJson(ds); } /// /// 返回生产工序计划单列表 ///参数:string sql。 ///返回值:object。 /// [Route("Sc_ProcessMangement/MES_Sc_ProcessPlanMain_Json")] [HttpGet] public object MES_Sc_ProcessPlanMain_Json(string sWhere) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select top 500 * from h_v_Sc_ProcessPlanList ", "h_v_Sc_ProcessPlanList"); } else { string sql1 = "select * from h_v_Sc_ProcessPlanList where 1 = 1 "; string sql = sql1 + sWhere; ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessPlanList"); } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } return GetObjectJson(ds); } /// /// 返回生产工序派工单列表 /// /// /// [Route("Sc_ProcessMangement/MES_Sc_ProcessSendWorkMain_Json")] [HttpGet] public object MES_Sc_ProcessSendWorkMain_Json(string sWhere) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select top 500 * from h_v_Sc_ProcessSendWorkList ", "h_v_Sc_ProcessSendWorkList"); } else { string sql1 = "select * from h_v_Sc_ProcessSendWorkList where 1 = 1 "; string sql = sql1 + sWhere; ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessSendWorkList"); } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } return GetObjectJson(ds); } /// /// 保存派工单信息 /// /// /// [Route("SaveProcessSendWork")] [HttpPost] public object SaveProcessSendWork([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.ClsSc_ProcessSendWork Sendwork = new DAL.ClsSc_ProcessSendWork(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); lsmain = oListModels.getObjectByJson_SendWorkMain(msg2); foreach ( Model.ClsSc_ProcessSendWorkMain oItem in lsmain) { UserName = oItem.HMaker; oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd")); oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); oItem.HDate = DateTime.Now; oItem.HMainSourceInterID = oItem.HInterID; oItem.HInterID = 0; if (DBUtility.ClsPub.isStrNull(oItem.HPlanBeginDate) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!没有填写计划开工日期,无法保存!"; objJsonResult.data = 1; return objJsonResult; } Sendwork.omodel = oItem; } //表体数据 //按 },{来拆分数组 //去掉【和】 msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n List ls = new List(); ls = oListModels.getObjectByJson_SendWorkSub(msg3); int i = 0; List lss = new List(); foreach (WebAPI.Models.Sc_ProcessPlanViewModel oItemSub in ls) { i++; Model.ClsSc_ProcessSendWorkSub sendworksub = new Model.ClsSc_ProcessSendWorkSub(); sendworksub.HProcID = oItemSub.hprocid.Value;//--工序ID sendworksub.HProcPlanBillNo = oItemSub.工序计划单号; //--工序计划单号 sendworksub.HProcPlanEntryID = oItemSub.hsubid.Value; //--工序计划单子ID sendworksub.HProcPlanInterID = oItemSub.hmainid.Value; //--工序计划单ID sendworksub.HICMOInterID = oItemSub.hicmointerid.Value; //--任务单ID sendworksub.HICMOBillNo = oItemSub.任务单号; //--任务单号 sendworksub.HSeOrderBillNo = oItemSub.销售订单号; //--销售订单号 sendworksub.HSeOrderEntryID = oItemSub.销售订单子ID.Value; //--销售子ID sendworksub.HSeOrderInterID = oItemSub.销售订单主ID.Value; //--销售订单主ID sendworksub.HPlanTimes = (float)oItemSub.计划加工时间; //--计划工时 sendworksub.HPlanEndDate = oItemSub.计划完工日期.Value; //--计划完工日期 sendworksub.HPlanBeginDate = oItemSub.计划开工日期.Value; //--计划开工日期 sendworksub.HQty = (double)oItemSub.计划数量; //--派工数量 sendworksub.HWorkerNumber = oItemSub.操作员代码; //--操作工代码 sendworksub.HWorkerID = oItemSub.HWorkerID.Value; //--操作工ID sendworksub.HGroupNumber = oItemSub.班组代码; //班组代码 sendworksub.HGroupID = oItemSub.HGroupID.Value; //--班组ID sendworksub.HSourceNumber = oItemSub.生产资源; //--生产资源代码 //--生产资源ID sendworksub.HProcNumber = oItemSub.工序代码; //--工序代码 sendworksub.HRemark = oItemSub.表体备注; //--备注 if (oItemSub.计划数量 <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不大于0无法保存!"; objJsonResult.data = 1; return objJsonResult; } if (Convert.ToInt32( sendworksub.HQty) > Convert.ToInt32( oItemSub.计划数量)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!第" + i.ToString() + "行派工数量不能大于计划单数量!"; objJsonResult.data = 1; return objJsonResult; } //if (DBUtility.ClsPub.isStrNull(oItemSub.HBatChNo) == "") //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "保存失败!第" + i.ToString() + "行未填写批号!"; // objJsonResult.data = 1; // return objJsonResult; //} sendworksub.HEntryID = i; sendworksub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); sendworksub.HRemark = ""; sendworksub.HCloseMan = ""; sendworksub.HCloseType = false; sendworksub.HSourceBillType = oItemSub.HBillType; lss.Add(sendworksub);//先把数据存放到派工单子表集合里 } if (lss.Count > 0) { //然后再循环保存到派工单子表的集合里 foreach (Model.ClsSc_ProcessSendWorkSub Itemsendwork in lss) { Sendwork.DetailColl.Add(Itemsendwork); } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!lss集合小于0"; objJsonResult.data = 1; return objJsonResult; } //保存 //保存完毕后处理 bool bResult; if (Sendwork.omodel.HInterID == 0) { // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); bResult = Sendwork.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } else { bResult = Sendwork.ModifyBill(Sendwork.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("Sc_ProcessMangement/MES_WW_EntrustWorkOrderBillMain_Json")] [HttpGet] public object MES_WW_EntrustWorkOrderBillMain_Json(string sWhere) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select top 500 * from WW_EntrustWorkOrderBillMain ", "WW_EntrustWorkOrderBillMain"); } else { string sql1 = "select * from WW_EntrustWorkOrderBillMain where 1 = 1 "; string sql = sql1 + sWhere; ds = oCN.RunProcReturn(sql, "WW_EntrustWorkOrderBillMain"); } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } return GetObjectJson(ds); } /// /// 返回委外工序汇报单列表 /// /// /// [Route("Sc_ProcessMangement/MES_Sc_StationOutBillMain_Json")] [HttpGet] public object MES_Sc_StationOutBillMain_Json(string sWhere) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select top 500 * from Sc_StationOutBillMain ", "Sc_StationOutBillMain"); } else { string sql1 = "select * from Sc_StationOutBillMain where 1 = 1 "; string sql = sql1 + sWhere; ds = oCN.RunProcReturn(sql, "Sc_StationOutBillMain"); } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } return GetObjectJson(ds); } /// /// 返回不合格评审列表 /// /// /// [Route("Sc_ProcessMangement/MES_QC_NoPassProdCheckBill_Json")] [HttpGet] public object MES_QC_NoPassProdCheckBill_Json(string sWhere) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select top 500 * from h_v_QC_NoPassProdCheckBillList ", "h_v_QC_NoPassProdCheckBillList"); } else { string sql1 = "select * from h_v_QC_NoPassProdCheckBillList where 1 = 1 "; string sql = sql1 + sWhere; ds = oCN.RunProcReturn(sql, "h_v_QC_NoPassProdCheckBillList"); } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } return GetObjectJson(ds); } /// /// PDA工序汇报单保存 /// /// /// [Route("SaveProcessReport")] [HttpPost] public object SaveProcessReport([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); ListModels oListModels = new ListModels(); try { WebAPI.DLL.ClsSc_ProcessReport ReportModel = new WebAPI.DLL.ClsSc_ProcessReport(); List ls = new List(); ls = oListModels.getObjectByJson_Report(msg1); int i = 0; foreach (Models.Sc_ProcessReportViewModel ItemView in ls) { i++; Model.ClsSc_ProcessReportMain ReportMain = new Model.ClsSc_ProcessReportMain(); Model.ClsSc_ProcessReportSub ReportSub = new Model.ClsSc_ProcessReportSub(); //工序汇报单主表保存 ReportMain.HBillType = "3714"; ReportMain.HBillNo = ItemView.HBillNo; ReportMain.HMakeDate=DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd")); ReportMain.HYear=DBUtility.ClsPub.isLong(DateTime.Now.Year); ReportMain.HDate = DateTime.Now; ReportMain.HMaker = ItemView.HEmp; ReportMain.HCloseType = false; ReportMain.HPlanQty = (double)ItemView.HQty; ReportMain.HMainSourceInterID = ItemView.HInterID; ReportMain.HInterID =0; ReportMain.HPeriod = 1; ReportMain.HBillSubType = "3714"; ReportMain.HBillStatus = 0; ReportMain.HCheckItemNowID = 0; ReportMain.HCheckItemNextID = 0; ReportMain.HICMOInterID= (long)ItemView.HICMOInterID; ReportMain.HICMOBillNo=ItemView.HICMOBillNo; ReportMain.HDeptID = (long)ItemView.HDeptID; ReportMain.HDeptNumber =ItemView.HDeptNumber; ReportMain.HGroupID = (long)ItemView.HGroupID; ReportMain.HGroupNumber = ItemView.HGroupNumber; ReportMain.HMaterID = (long)ItemView.HMaterID; ReportMain.HMaterNumber = ItemView.HMaterNumber; ReportMain.HUnitID = ItemView.HUnitID; ReportMain.HUnitNumber = ItemView.HUnitNumber; ReportMain.HInStockQty = 0; ReportMain.HSumTimes = 0; ReportMain.HExplanation = ""; ReportMain.HInnerBillNo = ""; ReportMain.HSupID = 0; //保存到汇报单主表 ReportModel.omodel = ReportMain; ReportSub.HEmpID = (long)ItemView.HEmpID; ReportSub.HICMOBillNo = ItemView.HICMOBillNo; ReportSub.HICMOInterID = (long)ItemView.HICMOInterID; ReportSub.HEntryID = i; ReportSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); ReportSub.HRemark = ""; ReportSub.HCloseMan = ""; ReportSub.HCloseType = false; ReportSub.HSourceBillType = "3712"; ReportSub.HQty = (double)ItemView.HQty; ReportSub.HProcID = ItemView.HProcID; ReportSub.HProcNumber = ItemView.HProcNumber; ReportSub.HOutPrice =0; ReportSub.HOutMoney = 0; ReportSub.HSourceID = (long)ItemView.HSourceID; ReportSub.HEmpNumber = ""; ReportSub.HRelBeginDate = DateTime.Now; ReportSub.HRelEndDate = DateTime.Now; ReportSub.HTimes =3; ReportSub.HSeOrderInterID = 0; ReportSub.HSeOrderEntryID =0; ReportSub.HSeOrderBillNo = ""; ReportSub.HProcPlanInterID = 0; ReportSub.HProcPlanBillNo = ""; ReportSub.HSourceInterID = 0; ReportSub.HSourceBillNo = ""; ReportSub.HRelationQty = 0; ReportSub.HRelationMoney = 0; ReportSub.HMaterID = (long)ItemView.HMaterID; ReportSub.HMaterNumber = ItemView.HMaterNumber; ReportSub.HCheckQty =0; ReportSub.HBadCount =0; ReportSub.HWasterQty =0; ReportSub.HWasterQty2 =0; ReportSub.HPrice =0; ReportSub.HMoney =0; ReportSub.HProcPlanInterID =0; ReportSub.HProcPlanEntryID =0; ReportSub.HProcPlanBillNo =""; ReportSub.HSourceEntryID =0; ReportSub.HSourceBillType =""; ReportSub.HRelationQty =0; ReportSub.HRelationMoney =0; ReportSub.HBadPrirce =0; ReportSub.HBadMoney =0; ReportSub.HWasterPrice =0; ReportSub.HWasterMoney =0; ReportSub.HQualityRate =0; ReportSub.HSecUnitQty1 =0; ReportSub.HSecUnitRate1=0; ReportSub.HSecUnitQty2=0; ReportSub.HSecUnitRate2=0; ReportSub.HUsingQty=0; ReportSub.HSelfBadCount=0; ReportSub.HPreBadCount=0; ReportSub.HPayMentQty=0; ReportSub.HOtherDeduct=0; ReportSub.HRelPay=0; ReportSub.HOtherItem1=""; ReportSub.HOtherItem2=""; ReportSub.HOtherItem3=""; ReportSub.HOtherItem4=""; ReportSub.HOtherItem5=""; ReportSub.HPackType=""; ReportSub.HCheckEmpID=0; ReportSub.HWeight=0; ReportSub.HBatchNo=""; //保存到汇报单子表 ReportModel.DetailColl.Add(ReportSub); } //保存 //保存完毕后处理 bool bResult; if (ReportModel.omodel.HInterID == 0) { // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); bResult = ReportModel.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } else { bResult = ReportModel.ModifyBill(ReportModel.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("Sc_ProcessMangement/getHbarCodeDetail")] [HttpGet] public ApiResult GetHbarCodeDetail(string sBillBarCode) { var model = LuBaoSevice.GetHbarCodeDetail(sBillBarCode); return model; } /// ///工序号获得信息 /// /// [Route("Sc_ProcessMangement/getProcDetail")] [HttpGet] public ApiResult GetProcDetail(string sBillNo, string sProcNo) { var model = LuBaoSevice.GetProcDetail(sBillNo, sProcNo); return model; } /// /// 保存工序汇报单信息 /// /// /// [Route("SaveProcessReportList")] [HttpPost] public object SaveProcessReportList([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(); ListModels oListModels = new ListModels(); try { WebAPI.DLL.ClsSc_ProcessReport ReportModel = new WebAPI.DLL.ClsSc_ProcessReport(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_Reportlist(msg2); foreach (Model.ClsSc_ProcessReportMain 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 = "3714"; //oItem.HExRate = 1; oItem.HMainSourceInterID = oItem.HInterID; oItem.HInterID = 0; //oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo); if (DBUtility.ClsPub.isStrNull(oItem.HPlanQty) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!没有填写派工数量,无法保存!"; objJsonResult.data = 1; return objJsonResult; } ReportModel.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_ViewReportlist(msg3); int i = 0; //定义汇报单子表集合用于存放下推派工单的多行数据 List lsReportSub = new List(); foreach (WebAPI.Models.Sc_ProcessSendWorkViewModel ItemView in ls) { i++; Model.ClsSc_ProcessReportSub reportSub = new Model.ClsSc_ProcessReportSub(); if (ItemView.数量 <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不大于0无法保存!"; objJsonResult.data = 1; return objJsonResult; } if ((double)ItemView.数量 < ReportModel.omodel.HPlanQty) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!工序汇报单累计汇报数量不能大于源单数量!"; objJsonResult.data = 1; return objJsonResult; } reportSub.HEntryID = i; reportSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); reportSub.HRemark = ""; reportSub.HCloseMan = ""; reportSub.HCloseType = false; reportSub.HEmpID =0; reportSub.HICMOBillNo =""; reportSub.HICMOInterID = (long)ItemView.HICMOInterID; reportSub.HEntryID = i; reportSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); reportSub.HRemark = ""; reportSub.HCloseMan = ""; reportSub.HCloseType = false; reportSub.HSourceBillType = "3712"; reportSub.HQty = (double)ItemView.数量; reportSub.HProcID = (long)ItemView.HprocID; reportSub.HProcNumber = ItemView.工序代码; reportSub.HOutPrice = 0; reportSub.HOutMoney = 0; reportSub.HSourceID = (long)ItemView.HSourceID; reportSub.HEmpNumber = ""; reportSub.HRelBeginDate = DateTime.Now; reportSub.HRelEndDate = DateTime.Now; reportSub.HTimes = 3; reportSub.HSeOrderInterID = 0; reportSub.HSeOrderEntryID = 0; reportSub.HSeOrderBillNo = ""; reportSub.HProcPlanInterID = 0; reportSub.HProcPlanBillNo = ""; reportSub.HSourceInterID = 0; reportSub.HSourceBillNo = ""; reportSub.HRelationQty = 0; reportSub.HRelationMoney = 0; reportSub.HMaterID = (long)ItemView.HMaterID; reportSub.HMaterNumber = ItemView.物料代码; reportSub.HCheckQty = 0; reportSub.HBadCount = 0; reportSub.HWasterQty = 0; reportSub.HWasterQty2 = 0; reportSub.HPrice = 0; reportSub.HMoney = 0; reportSub.HProcPlanInterID = 0; reportSub.HProcPlanEntryID = 0; reportSub.HProcPlanBillNo = ""; reportSub.HSourceEntryID = 0; reportSub.HSourceBillType = ""; reportSub.HRelationQty = 0; reportSub.HRelationMoney = 0; reportSub.HBadPrirce = 0; reportSub.HBadMoney = 0; reportSub.HWasterPrice = 0; reportSub.HWasterMoney = 0; reportSub.HQualityRate = 0; reportSub.HSecUnitQty1 = 0; reportSub.HSecUnitRate1 = 0; reportSub.HSecUnitQty2 = 0; reportSub.HSecUnitRate2 = 0; reportSub.HUsingQty = 0; reportSub.HSelfBadCount = 0; reportSub.HPreBadCount = 0; reportSub.HPayMentQty = 0; reportSub.HOtherDeduct = 0; reportSub.HRelPay = 0; reportSub.HOtherItem1 = ""; reportSub.HOtherItem2 = ""; reportSub.HOtherItem3 = ""; reportSub.HOtherItem4 = ""; reportSub.HOtherItem5 = ""; reportSub.HPackType = ""; reportSub.HCheckEmpID = 0; reportSub.HWeight = 0; reportSub.HBatchNo = ""; lsReportSub.Add(reportSub); } if (lsReportSub.Count>0) { //然后在循环保存到汇报但子表 foreach (Model.ClsSc_ProcessReportSub item in lsReportSub) { ReportModel.DetailColl.Add(item); } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!lsReportSub集合小于0"; objJsonResult.data = 1; return objJsonResult; } ////保存前判断(单据号重复,笔录项目) ////保存 ////保存完毕后处理 bool bResult; if (ReportModel.omodel.HInterID == 0) { // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); bResult = ReportModel.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } else { bResult = ReportModel.ModifyBill(ReportModel.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("SaveBadReasonList")] [HttpPost] public object SaveBadReasonList([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.ClsQC_NoPassProdCheckBill oBill = new DAL.ClsQC_NoPassProdCheckBill(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_NoPassProdCheckMain(msg2); foreach (Model.ClsQC_NoPassProdCheckBillMain 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.HCurID = 1; //oItem.HExRate = 1; oItem.HMainSourceInterID = oItem.HInterID; oItem.HInterID = 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 = "保存失败!没有danju日期,无法保存!"; 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_NoPassProdCheckSub(msg3); int i = 0; foreach (Model.ClsQC_NoPassProdCheckBillSub oItemSub in ls) { i++; if (string.IsNullOrWhiteSpace(oItemSub.HWasterReasonName)) { break; } if (oItemSub.HBadQty<=0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!第" + i.ToString() + "行不良评审数量不大于0无法保存!"; objJsonResult.data = 1; return objJsonResult; } if ((double)oItemSub.HBadQty >oBill.omodel.HPlanQty ) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不能大于不良数量!"; objJsonResult.data = 1; return objJsonResult; } if (DBUtility.ClsPub.isStrNull(oItemSub.HWasterReasonName)=="") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!第" + i.ToString() + "行未填写不良原因!"; objJsonResult.data = 1; return objJsonResult; } oItemSub.HEntryID = i; oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); oItemSub.HRemark = ""; oItemSub.HCloseMan = ""; oItemSub.HCloseType = false; 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; } } } }