yangle
2023-07-25 6cc7efe7169a0ab90fe8a4f7045b1ac762e23906
WebAPI/Controllers/ReportController.cs
@@ -6,6 +6,7 @@
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Web.Http;
using WebAPI.Models;
@@ -168,19 +169,34 @@
        {
            try
            {
                Stopwatch sw = new Stopwatch();
                //获取生产汇报单最大InterID和单据号
                Int64 HInterID = DBUtility.ClsPub.CreateBillID("3711", ref DBUtility.ClsPub.sExeReturnInfo);
                string HBillNo = DBUtility.ClsPub.CreateBillCode("3711", ref DBUtility.ClsPub.sExeReturnInfo, true);
                HBillNo = "9010-" + HBillNo;
                LogService.Write("生产汇报单:" + HBillNo);
                sw.Start();//开始计时
                //获取组织代码
                string OrganizationNUM = oCN.RunProcReturn("select HNumber from Xt_ORGANIZATIONS where HItemID=" + OrganizationID, "Xt_ORGANIZATIONS").Tables[0].Rows[0]["HNumber"].ToString();
                LogService.Write("1-查询,用时" + sw.Elapsed);
                //根据工序汇报单主ID获取工序汇报入库单的数据
                DataSet ds = oCN.RunProcReturn("select * from h_v_MES_StationOutBillList_LastProc where HInterID=" + InterID, "h_v_MES_StationOutBillList_LastProc");
                DataRow dr = ds.Tables[0].Rows[0];
                LogService.Write("2-查询,用时" + sw.Elapsed);
                //保存
                oCN.BeginTran();
                DataSet DsTable = oCN.RunProcReturn($"select * from Sc_ICMOReportBillMain where HBillNo='{HBillNo}'", "Sc_ICMOReportBillMain");
                DataSet DsTable = oCN.RunProcReturn($"select * from Sc_ICMOReportBillMain where HMainSourceBillNo='{BillNo}'", "Sc_ICMOReportBillMain");
                LogService.Write("3-查询,用时" + sw.Elapsed);
                if (DsTable.Tables[0].Rows.Count > 0)
                {
                    objJsonResult.code = "0";
@@ -219,10 +235,16 @@
                      ",0,0,''" +
                      "," + dr["HICMOInterID"].ToString() + ",'" + dr["任务单"].ToString() + "',''" +
                      ") ");
                LogService.Write("4-新增,用时" + sw.Elapsed);
                //同步金蝶
                //访问金蝶
                var loginRet = InvokeHelper.Login();
                var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                LogService.Write("5-访问金蝶,用时" + sw.Elapsed);
                if (isSuccess == 0)
                {
                    objJsonResult.code = "0";
@@ -231,6 +253,8 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                LogService.Write("6-找到金蝶的生产订单,用时" + sw.Elapsed);
                //根据任务单查找到金蝶的生产订单
                DataSet ds1 = oCN.RunProcReturn("select * from  h_v_TOERP_StationOutBillList_LastProc_SMR where 单据号='" + dr["单据号"].ToString()+"'" , "h_v_TOERP_StationOutBillList_LastProc_SMR");
@@ -244,6 +268,8 @@
                    return objJsonResult;
                }
                DataRow dr1 = ds1.Tables[0].Rows[0];
                LogService.Write("7-开始新增金蝶云单据,用时" + sw.Elapsed);
                JObject model = new JObject();
                model.Add("FBillType", new JObject() { ["Fnumber"] = "SCHBD01_SYS" }); //单据类型生产汇报“SCHBD02_SYS” 入库汇报SCHBD01_SYS
@@ -283,8 +309,8 @@
                    FentityModel.Add("FOwnerId", new JObject() { ["Fnumber"] = dr1["FOwnerNumber"].ToString() }); //货主:FOwnerId(必填项)
                    FentityModel.Add("FBomId", new JObject() { ["Fnumber"] = dr1["FBOMNUM"].ToString() }); //BOM版本:FBomId(必填项)
                    FentityModel.Add("FCostRate", dr1["FCostRate"].ToString());// 成本权重
                    FentityModel.Add("FISBACKFLUSH", dr1["FISBACKFLUSH"].ToString() == "1" ? true : false);// 倒冲领料
                    FentityModel.Add("FCHECKPRODUCT", dr1["HCHECKPRODUCT"].ToString() == "1" ? true : false);// 产品检验
                    FentityModel.Add("FISBACKFLUSH", dr1["FISBACKFLUSH"].ToString() == "True" ? true : false);// 倒冲领料
                    FentityModel.Add("FCHECKPRODUCT", dr1["HCHECKPRODUCT"].ToString() == "True" ? true : false);// 产品检验
                    FentityModel.Add("FMOMAINENTRYID", dr1["FMOENTRYID"].ToString());//
                    //FentityModel.Add("FSRCENTRYSEQ", dr1["HSEQ"].ToString());//源单行号
                    FentityModel.Add("FLot", new JObject() { ["FNumber"] = dr1["FBATCHNO"].ToString() }); //批号
@@ -318,6 +344,9 @@
                };
                string result = InvokeHelper.Save("PRD_MORPT", JsonConvert.SerializeObject(jsonRoot));//保存
                LogService.Write("8-保存结果,用时" + sw.Elapsed);
                //判断保存是否成功
                if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                {
@@ -329,29 +358,40 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                LogService.Write("9-开始审核,用时" + sw.Elapsed);
                //提交审核
                string result1 = string.Empty;
                string result2 = string.Empty;
                var fID = JObject.Parse(result)["Result"]["Id"].ToString();
                var fBillNo = JObject.Parse(result)["Result"]["Number"].ToString();
                var json = new
                {
                    Ids = fID,
                };
                result1 = InvokeHelper.Submit("PRD_MORPT", JsonConvert.SerializeObject(json));//提交
                result2 = InvokeHelper.Audit("PRD_MORPT", JsonConvert.SerializeObject(json));//提交
                if (JObject.Parse(result1)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                {
                    oCN.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = $"生产汇报单单号:{fBillNo},提交失败" + result;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //string result1 = string.Empty;
                //string result2 = string.Empty;
                //var fID = JObject.Parse(result)["Result"]["Id"].ToString();
                //var fBillNo = JObject.Parse(result)["Result"]["Number"].ToString();
                //var json = new
                //{
                //    Ids = fID,
                //};
                //result1 = InvokeHelper.Submit("PRD_MORPT", JsonConvert.SerializeObject(json));//提交
                //result2 = InvokeHelper.Audit("PRD_MORPT", JsonConvert.SerializeObject(json));//提交
                //LogService.Write("10-审核结果,用时" + sw.Elapsed);
                //if (JObject.Parse(result1)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                //{
                //    oCN.RollBack();
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = $"生产汇报单单号:{fBillNo},提交失败" + result;
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                oCN.RunProc("update Sc_StationOutBillMain set HRelationQty=1 where  HBillNo='" + BillNo + "'");
                LogService.Write("11-修改完成,用时" + sw.Elapsed);
                sw.Stop();//结束计时
                LogService.Write("12-总用时" + sw.Elapsed);
                oCN.Commit();
                objJsonResult.code = "0";
                objJsonResult.count = 1;