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); } /// /// PDA工序汇报单保存 /// /// /// [Route("SaveProcessReport")] [HttpPost] public object SaveProcessReport([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); ListModels oListModels = new ListModels(); try { DAL.ClsSc_ProcessReport ReportModel = new DAL.ClsSc_ProcessReport(); List ls = new List(); ls = oListModels.getObjectByJson_Report(msg1); int i = 0; Model.ClsSc_ProcessReportMain ReportMain = new Model.ClsSc_ProcessReportMain(); Model.ClsSc_ProcessReportSub ReportSub = new Model.ClsSc_ProcessReportSub(); foreach (Models.Sc_ProcessReportViewModel ItemView in ls) { i++; //工序汇报单主表保存 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.HInterID = ItemView.HInterID; ReportMain.HMaker = ItemView.HEmp; ReportMain.HCloseType = false; ReportMain.HPlanQty = (double)ItemView.HQty; //保存到汇报单主表 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; //保存到汇报单子表 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; } // } }