WYB
2021-04-16 16a534f70032e626bf87aaa8029e667fd72ef3fa
WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -444,6 +444,42 @@
            return GetObjectJson(ds);
        }
        /// <summary>
        /// 返回不合格评审列表
        /// </summary>
        /// <param name="sWhere"></param>
        /// <returns></returns>
        [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);
        }
        /// <summary>
        /// PDA工序汇报单保存
        /// </summary>
@@ -458,25 +494,50 @@
            ListModels oListModels = new ListModels();
            try
            {
                DAL.ClsSc_ProcessReport ReportModel = new DAL.ClsSc_ProcessReport();
                WebAPI.DLL.ClsSc_ProcessReport ReportModel = new WebAPI.DLL.ClsSc_ProcessReport();
                List<WebAPI.Models.Sc_ProcessReportViewModel> ls = new List<WebAPI.Models.Sc_ProcessReportViewModel>();
                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++;
                    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.HInterID = ItemView.HInterID;
                    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;
@@ -491,6 +552,64 @@
                    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);
                }
@@ -559,7 +678,364 @@
            return model;
        }
        /// <summary>
        /// 保存工序汇报单信息
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [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<Model.ClsSc_ProcessReportMain> lsmain = new List<Model.ClsSc_ProcessReportMain>();
                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<WebAPI.Models.Sc_ProcessSendWorkViewModel> ls = new List<WebAPI.Models.Sc_ProcessSendWorkViewModel>();
                ls = oListModels.getObjectByJson_ViewReportlist(msg3);
                int i = 0;
                //定义汇报单子表集合用于存放下推派工单的多行数据
                List<Model.ClsSc_ProcessReportSub> lsReportSub = new List<Model.ClsSc_ProcessReportSub>();
                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;
            }
        }
        /// <summary>
        /// 保存不良评审单信息
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [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<Model.ClsQC_NoPassProdCheckBillMain> lsmain = new List<Model.ClsQC_NoPassProdCheckBillMain>();
                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<Model.ClsQC_NoPassProdCheckBillSub> ls = new List<Model.ClsQC_NoPassProdCheckBillSub>();
                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;
            }
        }
    }
}