wtt
2025-03-17 15316f51a5e129c2ebcf8dabff4ac30c1ee1dc32
WebAPI/Controllers/Éú²ú¹ÜÀí/ÖÊÁ¿»ã±¨µ¥/Sc_QualityReportBillController.cs
@@ -92,23 +92,25 @@
                        ds = oCN.RunProcReturn
                     ("select a.HInterID,a.HBillType,a.HICMOBillNo,a.HICMOInterID,a.HMaterID" +
                     ",m.HNumber HMaterNumber,m.HName HMaterName,m.HModel HMaterModel,a.HICMOEntryID,a.HSourceID,s.HName HSourceName" +
                     ",a.HSourceBillNo,a.HSourceInterID,a.HSourceEntryID,a.HDatePlanQty,a.HDeptID,d.HName HDeptName,m.HUnitID,u.HName HUnitName" +
                     ",a.HSourceBillNo,a.HSourceInterID,a.HSourceEntryID,a.HDatePlanQty,a.HDeptID,d.HName HDeptName,m.HUnitID,u.HName HUnitName,a.HProcID,p.HName HProcName" +
                     " from Sc_ICMOBillStatus_Tmp a " +
                     " left join Gy_Material m on a.HMaterID=m.HItemID " +
                     " left join Gy_Department d on a.HDeptID=d.HItemID " +
                     " left join Gy_Unit u on m.HUnitID=u.HItemID " +
                     " left join Gy_Source s on a.HSourceID=s.HItemID " +
                     " left join Gy_Process p on a.HProcID = p.HItemID " +
                     " Where a.HInterID=" + HInterID + " and a.HBillType=" + HBillType, "Sc_ICMOBillStatus_Tmp");
                    }
                    else {
                        ds = oCN.RunProcReturn
                         ("select a.HInterID,a.HBillType,a.HICMOBillNo,a.HICMOInterID,a.HMaterID,a.HSourceID,s.HName HSourceName" +
                         ",m.HNumber HMaterNumber,m.HName HMaterName,m.HModel HMaterModel,a.HICMOEntryID,a.HDeptID,d.HName HDeptName,m.HUnitID,u.HName HUnitName " +
                         ",m.HNumber HMaterNumber,m.HName HMaterName,m.HModel HMaterModel,a.HICMOEntryID,a.HDeptID,d.HName HDeptName,m.HUnitID,u.HName HUnitName,a.HProcID,p.HName HProcName " +
                         " from Sc_ICMOBillStatus_Tmp a " +
                         " left join Gy_Material m on a.HMaterID=m.HItemID " +
                         " left join Gy_Department d on a.HDeptID=d.HItemID " +
                         " left join Gy_Unit u on m.HUnitID=u.HItemID " +
                         " left join Gy_Source s on a.HSourceID=s.HItemID " +
                         " left join Gy_Process p on a.HProcID = p.HItemID " +
                         " Where a.HInterID=" + HInterID + " and a.HBillType=" + HBillType, "Sc_ICMOBillStatus_Tmp");
                    }
                 
@@ -638,7 +640,7 @@
        #region æäº¤ä¿å­˜ï¼Œå­˜ä¸»å­è¡¨åŠæ˜Žç»†è¡¨
        [Route("Sc_QualityReportBill/set_SaveBill")]
        [HttpGet]
        public object set_SaveBill(long HInterID,string HBillNo, string HChecker)
        public object set_SaveBill(long HInterID,string HBillNo, string HChecker,string HBillSubType)
        {
            try
            {
@@ -670,11 +672,11 @@
                ds = oCN.RunProcReturn(sql, "Sc_QualityReportBillSub");
                if (ds.Tables[0].Rows.Count>0)
                {
                    oCN.RunProc("exec h_p_save_Sc_QualityReportBillSum " + HInterID + "");
                    oCN.RunProc("exec h_p_save_Sc_QualityReportBillSum '" + HInterID + "','" + HBillSubType +"'");
                }
                else
                {
                    oCN.RunProc("exec h_p_save_Sc_QualityReportBill " + HInterID + "");
                    oCN.RunProc("exec h_p_save_Sc_QualityReportBill '" + HInterID + "','" + HBillSubType + "'");
                }
                
                //判断是否允许保存,不允许则回滚
@@ -797,7 +799,7 @@
                    string subSql = "Insert into Sc_QualityReportBillSub " +
                 " (HInterID,HEntryID,HBillNo_bak,HRemark" +
                 ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                 ",HMaterID,HUnitID,HQty,HResult,HEmpID,HSourceID,HProcID,HBadReasonID,HBadReasonNumber,HGroupID" +
                 ",HMaterID,HUnitID,HQty,HResult,HEmpID,HSourceID,HProcID,HBadReasonID,HBadReasonNumber,HBadPhenomenaID,HGroupID" +
                 ",HICMOInterID,HICMOEntryID,HICMOBillNo,HProcExchInterID,HProcExchEntryID,HProcExchBillNo" +
                 ",HBarCode,HReportType" +
                 ",HAddr,HMaker,HMakeDate" +
@@ -822,6 +824,7 @@
                 "," + oSub.HProcID.ToString() + "" +
                 "," + oSub.HBadReasonID.ToString() + "" +
                 ",'" + oSub.HBadReasonNumber.ToString() + "'" +
                "," + oSub.HBadPhenomenaID.ToString() + "" +
                 ",'" + oSub.HGroupID.ToString() + "'" +
                 "," + oSub.HICMOInterID.ToString() + "" +
@@ -835,7 +838,7 @@
                 ",'" + 1 +
                 "','" + oSub.HAddr + "'" +
                 ",'" + msg4 + "'" +
                 ",'" + oSub.HMakeDate.ToShortDateString() + "'" +
                 ",GETDATE()" +
                 ") ";
                    oCN.RunProc(subSql);
@@ -856,8 +859,6 @@
            }
        }
        #endregion
@@ -1950,5 +1951,161 @@
        }
        #endregion
        #region ç”Ÿäº§è´¨é‡æ±‡æŠ¥å•_PDA æ–°å¢ž
        [Route("Sc_QualityReportBill/SaveSc_QualityReportBill_PDA")]
        [HttpPost]
        public object SaveSc_QualityReportBill_PDA([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();                             //子表1数据
            string refSav = sArray[2].ToString();                           //操作方式
            string msg4 = sArray[3].ToString();                             //用户
            DBUtility.ClsPub.CurUserName = msg4;
            ListModels oListModels = new ListModels();
            string s = "";
            try
            {
                //编辑权限
                if (!DBUtility.ClsPub.Security_Log_second("Sc_QualityReportBill_Edit", 1, false, msg4))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无保存权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                DAL.ClsSc_QualityReportBill oBill = new DAL.ClsSc_QualityReportBill();
                List<Model.ClsSc_QualityReportBillMain> lsmain = new List<Model.ClsSc_QualityReportBillMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain = oListModels.getObjectByJson_Sc_QualityReportBillMain(msg2);
                foreach (Model.ClsSc_QualityReportBillMain oItem in lsmain)
                {
                    if (refSav == "Add")
                    {
                        //单据号是否重复
                        if (BillNew0.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据号重复!不允许保存!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                    }
                    if (refSav == "Update")
                    {
                        if (BillOld.ShowBill(oItem.HInterID, ref s) == false)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据有误!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        //判断是否可编辑
                        if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据已经被审核,不允许修改!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        if (BillOld.omodel.HBillStatus > 1)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = s + ",不允许修改";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                    }
                    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<Model.ClsSc_QualityReportBillSub> ls = new List<Model.ClsSc_QualityReportBillSub>();
                ls = oListModels.getObjectByJson_Sc_QualityReportBillSub(msg3);
                int i = 0;
                foreach (Model.ClsSc_QualityReportBillSub oItemSub in ls)
                {
                    i++;
                    oItemSub.HEntryID = i;
                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                    oItemSub.HCloseType = false;   //关闭类型
                    oBill.DetailColl.Add(oItemSub);
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (refSav == "Add")
                {
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if (refSav == "Update")
                {
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
                    bResult = false;
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    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;
            }
        }
        #endregion
    }
}