ch
2022-08-15 4bf3ca7fc8e3cceba62d6617724cac3cbc919746
WebAPI/Controllers/Éú²ú¹ÜÀí/±¨¹¤Ì¨¹¤Ðò/Sc_MESBeginStepWorkBillController.cs
@@ -41,7 +41,7 @@
        [Route("Sc_MESBeginStepWorkBill/GetMESBeginStepWorkBill")]
        [HttpGet]
        public object GetMESBeginStepWorkBill(string sWhere,string user)
        public object GetMESBeginStepWorkBill(string sWhere, string user)
        {
            try
            {
@@ -84,7 +84,7 @@
            {
                LogService.Write("执行了1");
                string sql1 = "select * from h_v_Sc_MESBeginWorkBillList_NEW where 1 = 1 ";
                string sql = sql1 + sWhere+ " order by hmainid desc ";
                string sql = sql1 + sWhere + " order by hmainid desc ";
                return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_Sc_MESBeginWorkBillList_NEW");
            }
@@ -802,7 +802,7 @@
                    oItemSub.HOtherItem4 = "";
                    oItemSub.HOtherItem5 = "";
                    oItemSub.HPackType = "";
                    oItemSub.HBatchNo="";
                    oItemSub.HBatchNo = "";
                    //oItemSub.HRelationMoney = 0;   //关联金额
                    //oItemSub.HRepairID = 0;       //维修项目
                    //oItemSub.HRepairExplanation ="";   //维修要求
@@ -1027,11 +1027,9 @@
                }
                oCN.BeginTran();
                //删除工序汇报子表
                string sql1 = string.Format(@"delete Sc_ProcessReportSub  where HInterID='"+HInterID+"' and   HICMOInterID='" + HICMOInterID + "' and HICMOEntryID='" + HICMOEntryID + "'");
                oCN.RunProc(sql1);
                //删除工序汇报主表
                string sql = string.Format(@"delete Sc_ProcessReportMain  where HInterID='" + HInterID + "'");
                //删除产量汇报表
                string sql = string.Format(@"delete Sc_ICMOBillWorkQtyStatus_Tmp  where HInterID='" + HInterID + "'");
                oCN.RunProc(sql);
                oCN.Commit();
@@ -1057,7 +1055,7 @@
        #region æŠ¥å·¥å¹³å°æŠ¥æ£€ç”³è¯·ä¿å­˜
        [Route("Sc_MESBeginStepWorkBill/SaveGetMESProductReportBillList")]
        [HttpGet]
        public object SaveGetMESProductReportBillList(string ScMaxWork, string HSourceBillType, string workcode, int HSourceID, int HICMOInterID, int HICMOEntryID, string HMaker, string Czybm,string HProcID)
        public object SaveGetMESProductReportBillList(string ScMaxWork, string HSourceBillType, string workcode, int HSourceID, int HICMOInterID, int HICMOEntryID, string HMaker, string Czybm, string HProcID)
        {
            ListModels oListModels = new ListModels();
            try
@@ -1125,7 +1123,7 @@
                //model.HPRDORGID = DBUtility.ClsPub.isLong(ds0.Tables[0].Rows[0]["HPRDORGID"]);
                model.HMainSourceInterID = HICMOInterID;
                model.HMainSourceEntryID = HICMOEntryID;
                //oWebs.Timeout = 30000;
                bool flag = oWebs.set_SaveICMOProductReportBill_LayuiYqn(model, workcode, HSourceID, sHSourceType, HProcID, ref DBUtility.ClsPub.sErrInfo);
@@ -1182,7 +1180,7 @@
            try
            {
                //判断是否有编辑权限
                if (!DBUtility.ClsPub.Security_Log("MES_ProcExchReport_Edit",1,false,user))
                if (!DBUtility.ClsPub.Security_Log("MES_ProcExchReport_Edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -1467,13 +1465,12 @@
            try
            {
                //根据选择资源ID获取当前生产工单、责任人
                ds = oCN.RunProcReturn("select * from h_v_IF_ICMOBillList where å•据号='"+ sBillBarCode + "'", "h_v_IF_ICMOBillList");
                ds = oCN.RunProcReturn("select f1.F_YQN_XSDD é”€å”®è®¢å•编号, f1.F_zzzz_Text4 é”€å”®ç‰©æ–™åç§°,* from h_v_IF_ICMOBillList a left join AIS20200908101915zs..T_PRD_MOENTRY f1 on a.HERPEntryID=f1.FENTRYID where convert(varchar(50),a.hmainid)+'-'+convert(varchar(50),a.HEntryID)='" + sBillBarCode + "'", "h_v_IF_ICMOBillList");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "此源单不存在!";
                    objJsonResult.Message = "返回源单成功!";
                    objJsonResult.data = ds;
                    return objJsonResult;
                }
@@ -1526,7 +1523,8 @@
            int sPeriod = 0;
            string BillNo = "";
            long MainId = 0;
            long EntyID = 0;
            string EntyID = "";
            if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(DateTime.Now, ref sYear, ref sPeriod, ref s) == false)
            {
                objJsonResult.code = "0";
@@ -1558,7 +1556,7 @@
                            return objJsonResult;
                        }
                    }
                    //生产订单编号、生产订单主ID、生产订单主ID+子ID
                    BillNo = oItem.HMainSourceBillNo;
                    MainId = oItem.HMainSourceInterID;
                    EntyID = oItem.HMainSourceEntryID;
@@ -1580,13 +1578,30 @@
                    oBill.omodel = oItem;
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (oBill.omodel.HInterID == 0)
                {
                    oCN.BeginTran();
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    //根据生产订单子ID找对应的生产用料清单
                    DataSet Ds = oCN.RunProcReturn("select b.FID,b.FBILLNO,b.FDOCUMENTSTATUS from  Sc_ICMOBillSub a left join AIS20200908101915zs..T_PRD_PPBOM b on a.HERPEntryID=b.FMOENTRYID where a.HEntryID=" + (EntyID).Split('-')[1], "Sc_ICMOBillSub");
                    //查找当前生产订单明细状态
                    DataSet Dss = oCN.RunProcReturn("select FSTATUS from AIS20200908101915zs..T_PRD_MOENTRY_A where FENTRYID=" + (EntyID).Split('-')[1], "AIS20200908101915zs..T_PRD_MOENTRY_A");
                    //判断金蝶生产单的状态不为4则执行开工
                    if (Dss.Tables[0].Rows[0][0].ToString() != "4")
                    {
                        oCN.RunProc("update AIS20200908101915zs..T_PRD_MOENTRY_A set FSTATUS=4,FCONVEYDATE=getdate() where FENTRYID=" + (EntyID).Split('-')[1]);
                    }
                    else
                    {
                        oCN.RollBack();
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已开工!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //访问金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
@@ -1601,19 +1616,39 @@
                    var json = new
                    {
                        //CreateOrgId = 0,
                        Numbers = BillNo,
                        Ids = MainId,
                        PkEntryIds = EntyID
                        //Numbers = BillNo,
                        Ids = Ds.Tables[0].Rows[0][0].ToString(),
                        //PkEntryIds = (EntyID).Split('-')[1]
                    };
                    var result = InvokeHelper.ExcuteOperation("PRD_MO", "ToStart", JsonConvert.SerializeObject(json));
                    if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    //LogService.Write("json=" + json);
                    string result1 = string.Empty;
                    string result2 = string.Empty;
                    //判断当前用生产料清单单状态——已创建则先提交再审核、以提交则只审核--A:创建,B:提交,C:审核,D:重新审核
                    if (Ds.Tables[0].Rows[0][2].ToString() == "A"|| Ds.Tables[0].Rows[0][2].ToString() == "D")
                    {
                        result1 = InvokeHelper.Submit("PRD_PPBOM", JsonConvert.SerializeObject(json));
                        result2 = InvokeHelper.Audit("PRD_PPBOM", JsonConvert.SerializeObject(json));
                    }
                    if (Ds.Tables[0].Rows[0][2].ToString() == "B")
                    {
                        result2 = InvokeHelper.Audit("PRD_PPBOM", JsonConvert.SerializeObject(json));
                    }
                    LogService.Write("result2=" + result2);
                    //判断审核是否成功
                    if (JObject.Parse(result2)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        oCN.RollBack();
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "对应金蝶云生产订单更改开工状态失败!" + result;
                        objJsonResult.Message = $"对应生产用料清单,单号{Ds.Tables[0].Rows[0][1].ToString()},审核失败!" + result2;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //保存
                    ////执行保存
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    if (bResult)
                    {
                        objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID
@@ -1651,4 +1686,4 @@
        }
        #endregion
    }
}
}