1
yangle
2023-05-22 43d58c9cafae2edfb38e0287c53c71e9c9e369e6
1
1个文件已修改
42 ■■■■■ 已修改文件
WebAPI/Controllers/ReportController.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
@@ -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,6 +358,9 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                LogService.Write("9-开始审核,用时" + sw.Elapsed);
                //提交审核
                string result1 = string.Empty;
                string result2 = string.Empty;
@@ -340,6 +372,9 @@
                };
                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();
@@ -352,6 +387,11 @@
                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;