zzr99
2021-08-30 1f68e260545c81091d073c8e71c4ee1c4910d995
WebAPI/Controllers/Éú²ú¹ÜÀí/ÖÊÁ¿»ã±¨µ¥/Sc_QualityReportBillController.cs
@@ -124,20 +124,20 @@
        {
            var msg1 = oMain["oMain"].ToString();
            //保存单据
            return objJsonResult = AddBillMain(msg1);
            return objJsonResult = AddBillTmp(msg1);
        }
        public json AddBillMain(string msg1)
        public json AddBillTmp(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg = sArray[0].ToString();
            string OperationType = sArray[1].ToString().Trim();
            bool bResult;
            bool bResult = false;
            bool bResult2 = false;
            try
            {
                msg = "[" + msg.ToString() + "]";
                List<Model.ClsSc_ICMOBillQualityStatus_Tmp> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_ICMOBillQualityStatus_Tmp>>(msg);
                DAL.ClsQC_FirstPieceCheckBill BillNew = new DAL.ClsQC_FirstPieceCheckBill();
                List<Sc_ICMOBillQualityStatus_Tmp> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Sc_ICMOBillQualityStatus_Tmp>>(msg);
                //判断会计期是否合理
                string s = "";
                int sYear = 0;
@@ -151,54 +151,43 @@
                    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.HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID);
                //BillNew.omodel.HICMOQty = ClsPub.isLong(mainList[0].HICMOQty);
                //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.HProcExchQty = ClsPub.isLong(mainList[0].HProcExchQty);
                //BillNew.omodel.HMaterID = ClsPub.isLong(mainList[0].HMaterID);
                //BillNew.omodel.HFirstCheckEmp = ClsPub.isLong(mainList[0].HFirstCheckEmp);
                //BillNew.omodel.HLastResult = ClsPub.isBool(mainList[0].HLastResult);
                //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;
                //保存完毕后处理
                if (OperationType.Equals("1") || OperationType.Equals("2"))
                {
                    bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo);
                    //是否保存
                    bResult = AddBillTmpSQL(mainList, ref ClsPub.sExeReturnInfo);
                    //是否审核
                    bResult2 = set_CheckBill(mainList[0].HInterID, ref ClsPub.sExeReturnInfo);
                }
                else if (OperationType.Equals("3"))
                {
                    bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo);
                    //bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo);
                }
                else
                {
                    ClsPub.sExeReturnInfo = "无效的操作类型!";
                    bResult = false;
                }
                //提示
                //是否保存
                if (bResult == true)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    //objJsonResult.Message = "单据存盘完毕!单据号:" + mainList[0].HBillNo.Trim();
                    objJsonResult.Message = ClsPub.sExeReturnInfo + "单据号:" ;
                    objJsonResult.data = null;
                    return objJsonResult;
                    //是否审核
                    if (bResult2 == true)
                    {
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "单据存盘完毕!单据号:" + 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;
                    }
                }
                else
                {
@@ -218,7 +207,216 @@
                return objJsonResult;
            }
        }
        //新增单据
        public bool AddBillTmpSQL(List<Sc_ICMOBillQualityStatus_Tmp> mainList, ref string sReturn)
        {
            try
            {
                Sc_ICMOBillQualityStatus_Tmp BillNew = new Sc_ICMOBillQualityStatus_Tmp();
                //固定赋值=================================
                BillNew.HInterID = mainList[0].HInterID;//递入type得到的单据ID
                BillNew.HBillNo = mainList[0].HBillNo;
                BillNew.HDate = mainList[0].HDate;
                BillNew.HICMOBillNo = mainList[0].HICMOBillNo;
                BillNew.HICMOInterID = mainList[0].HICMOInterID;
                BillNew.HProcExchBillNo = mainList[0].HProcExchBillNo;
                BillNew.HProcExchInterID = mainList[0].HProcExchInterID;
                BillNew.HProcExchEntryID = mainList[0].HProcExchEntryID;
                BillNew.HProcID = mainList[0].HProcID;
                BillNew.HMaterID = mainList[0].HMaterID;
                BillNew.HSourceID = mainList[0].HSourceID;
                BillNew.HGroupID = mainList[0].HGroupID;
                BillNew.HCheckManID = mainList[0].HCheckManID;
                BillNew.HBadReasonID = mainList[0].HBadReasonID;
                BillNew.HBarCode = mainList[0].HBarCode;
                BillNew.HMaker = mainList[0].HMaker;
                BillNew.HMakeDate = mainList[0].HMakeDate;
                oCN.BeginTran();
                //主表
                oCN.RunProc("Insert Into Sc_ICMOBillQualityStatus_Tmp " +
                    " (HInterID,HBillNo,HDate,HICMOBillNo,HICMOInterID" +
                    ",HProcExchBillNo,HProcExchInterID,HProcExchEntryID,HProcID,HMaterID" +
                    ",HSourceID,HGroupID,HCheckManID,HBadReasonID,HBarCode" +
                    ",HMaker,HMakeDate" +
                ") " +
                " values(" + BillNew.HInterID + ",'" + BillNew.HBillNo + "','" + BillNew.HDate + "','" + BillNew.HICMOBillNo + "'," + BillNew.HICMOInterID +
                ",'" + BillNew.HProcExchBillNo + "'," + BillNew.HProcExchInterID + "," + BillNew.HProcExchEntryID + "," + BillNew.HProcID + "," + BillNew.HMaterID +
                "," + BillNew.HSourceID + "," + BillNew.HGroupID + "," + BillNew.HCheckManID + "," + BillNew.HBadReasonID + ",'" + BillNew.HBarCode + "'" +
                ",'" + BillNew.HMaker + "','" + BillNew.HMakeDate + "'" +
                ") ");
                //判断是否允许保存
                ds = oCN.RunProcReturn("exec h_p_JIT_ICMOBillQualityStatus_SaveCtrl", "h_p_JIT_ICMOBillQualityStatus_SaveCtrl");
                if (ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "2")
                {
                    sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
                    oCN.RollBack();
                    return false;
                }
                sReturn = "新增单据成功!";
                oCN.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCN.RollBack();
                throw (e);
            }
        }
        #endregion
        #region è´¨é‡æ±‡æŠ¥å•扫不良条码获取不良原因id
        [Route("Sc_QualityReportBill/get_HBadReasonID")]
        [HttpGet]
        public object get_HBadReasonID(string HBadReasonNumber)
        {
            try
            {
                ds = oCN.RunProcReturn("Select HItemID,HNumber from Gy_BadReason where HStopflag=0 and HNumber='" + HBadReasonNumber + "'", "Gy_BadReason");
                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 = "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
        #region å®¡æ ¸
        public bool set_CheckBill(long HInterID, ref string sReturn)
        {
            try
            {
                oCN.BeginTran();
                ds = oCN.RunProcReturn("exec Sc_ICMOBillQualityStatus_AutoCheck", "Sc_ICMOBillQualityStatus_AutoCheck");
                if (ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "2")
                {
                    sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
                    oCN.RollBack();
                    return false;
                }
                sReturn = "审核成功!";
                oCN.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCN.RollBack();
                throw (e);
            }
        }
        #endregion
        #region èŽ·å–æ‰«ç æ‰«æè®°å½•
        [Route("Sc_QualityReportBill/get_BarCodeDetail")]
        [HttpGet]
        public object get_BarCodeDetail(long HInterID)
        {
            try
            {
                ds = oCN.RunProcReturn(
                    "Select a.HItemID,a.HInterID,b.HNumber HBadReasonNumber,b.HName HBadReasonHName" +
                    ",c.HName HCheckMan,d.HName HGroupName,e.HName HSourceName " +
                    " from Sc_ICMOBillQualityStatus_Tmp a " +
                    " left join Gy_BadReason b on a.HBadReasonID = b.HItemID " +
                    " left join Gy_Employee c on a.HCheckManID = c.HItemID " +
                    " left join Gy_Group d on a.HGroupID = d.HItemID " +
                    " left join Gy_Source e on a.HSourceID = e.HItemID " +
                    " where HInterID=" + HInterID, "Sc_ICMOBillQualityStatus_Tmp"
                    );
                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
        #region èŽ·å–æ‰«ç æ±‡æ€»è®°å½•
        [Route("Sc_QualityReportBill/get_BarCodeDetailSum")]
        [HttpGet]
        public object get_BarCodeDetailSum(long HInterID)
        {
            try
            {
                ds = oCN.RunProcReturn(
                    "Select count(*) HQty,a.HInterID,b.HNumber HBadReasonNumber,b.HName HBadReasonHName,c.HName HCheckMan" +
                    ",d.HName HGroupName,e.HName HSourceName " +
                    " from Sc_ICMOBillQualityStatus_Tmp a " +
                    " left join Gy_BadReason b on a.HBadReasonID = b.HItemID " +
                    " left join Gy_Employee c on a.HCheckManID = c.HItemID " +
                    " left join Gy_Group d on a.HGroupID = d.HItemID " +
                    " left join Gy_Source e on a.HSourceID = e.HItemID " +
                    " where a.HInterID=" + HInterID +
                    " group by a.HInterID,a.HBadReasonID,a.HCheckManID,a.HGroupID,a.HSourceID" +
                    " ,b.HNumber,b.HName,c.HName,d.HName,e.HName", "Sc_ICMOBillQualityStatus_Tmp"
                    );
                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
    }
}