王 垚
2021-03-14 8d5747ca9b72c69655c9fcd8814d3e427d6b3da1
src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
@@ -5,20 +5,18 @@
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper.Excel;
using Kingdee.BOS.Util;
using Kingdee.BOS.ServiceHelper;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using Newtonsoft.Json.Linq;
using Kingdee.BOS.WebApi.Client;
using ZD.Cloud.WebApi;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.KDThread;
using Kingdee.BOS.ServiceHelper;
using Demo.TimedTaskPlugIn.PRD;
using ZD.Cloud.Logger;
using Demo.Model.Model;
using ZD.Share.Common;
using System.Linq;
namespace Demo.BillView.PRD
{
@@ -27,6 +25,7 @@
    [HotUpdate]
    public class Pro_ScDayImport : AbstractDynamicFormPlugIn
    {
        CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
        private string fileFullPath = string.Empty;
        //public override void BarItemClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)
@@ -50,17 +49,29 @@
        //    }
        //}
        public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
        public override void OnLoad(EventArgs e)
        {
            base.AfterBarItemClick(e);
            base.OnLoad(e);
            throw new Exception("1");
        }
        public override void BarItemClick(BarItemClickEventArgs e)
        {
            base.BarItemClick(e);
            throw new Exception("1");
            LogHelper.Info("导入功能点击按钮:");
            if (e.BarItemKey.ToUpper().Equals("TBIMPORT"))
            {
                LogService.WriteAsync("导入功能:");
                this.View.ShowErrMessage("测试导入功能点击按钮");
                LogHelper.Info("导入功能点击按钮:");
                ImportData();
            }
            if (e.BarItemKey.ToUpper().Equals("TBWJSC"))
            {
                this.View.ShowErrMessage("测试文件上传功能点击按钮");
                //Control updateControl = this.View.GetControl("fileFullPath");
                //// 上传地址
                //string uploadUrl = "FileUpLoadServices/FileService.svc/upload2attachment/";
@@ -68,7 +79,7 @@
                //// 下载地址
                //string downloadUrl = "FileUpLoadServices/download.aspx";
                //updateControl.SetCustomPropertyValue("ExDownLoadUrl", downloadUrl);
                LogService.WriteAsync("上传功能:");
                LogHelper.Info("文件上传功能点击按钮:");
                ImportDataSC(fileFullPath);
            }
        }
@@ -106,7 +117,7 @@
                {
                    DataSet ds = helper.ReadFromFile(fileFullPath, 1);
                    DataTable dt = ds.Tables[0];
                    LogService.WriteAsync("导入功能:dt行数:" + dt.Rows.Count);
                    LogHelper.Info("导入功能:dt行数:" + dt.Rows.Count);
                    DateTime date = Convert.ToDateTime(this.Model.GetValue("F_Paez_Date"));
                    if (dt.Rows.Count > 0)
                    {
@@ -144,7 +155,7 @@
                            string sql = string.Format(@"/*dialect*/ SELECT T1.FBILLNO,T2.* FROM T_PRD_MO T1
LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID
JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID
WHERE T1.FBILLNO = '{0}'  AND T3.FNUMBER = '{1}' and FSEQ='{2}' ", dt.Rows[i][1].ToString(), dt.Rows[i][5].ToString() ,dt.Rows[i][2].ToString());
WHERE T1.FBILLNO = '{0}'  AND T3.FNUMBER = '{1}' and FSEQ='{2}' ", dt.Rows[i][1].ToString(), dt.Rows[i][5].ToString(), dt.Rows[i][2].ToString());
                            DataTable _dt = new DataTable();
                            _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                            string FLOT = "";//FLOT  批次
@@ -186,7 +197,7 @@
                            this.Model.SetValue("FOrderQuantity", FQTY, i);
                            this.Model.SetValue("FDayPlanID", fDayPlanID, i);//日计划工单ID
                            this.Model.SetValue("FDayPlanBillNo", fDayPlanBillNo, i);//日工单编号
                            this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i][2].ToString(),  i);//生产订单明细行号
                            this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i][2].ToString(), i);//生产订单明细行号
                            for (int j = 0; j <= 60; j++)
                            {
                                this.Model.SetValue("FT" + "" + j + "", dt.Rows[i][15 + j].ToString(), i);
@@ -249,13 +260,13 @@
        {
            try
            {
                LogService.WriteAsync("测试");
                string sql;
                DateTime date = Convert.ToDateTime(this.Model.GetValue("F_Paez_Date"));
                //获取单据体信息
                Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");
                //单据体信息转换为列表集合
                DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
                LogHelper.Info("导入功能列表行数:" + entityDataObjoct.Count);
                List<string> sqlList = new List<string>();
                foreach (DynamicObject current in entityDataObjoct)
                {
@@ -280,7 +291,7 @@
                    DataTable dt = new DataTable();
                    dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                    if (dt.Rows.Count == 0)
                        _result += "序号:" + Convert.ToString(current["SEQ"]) + ",生产订单号:" + Convert.ToString(current["FSCOrderNo"])+ ",生产订单明细行号:" + Convert.ToString(current["FSRCBILLENTRYSEQ"]) + "对应的物料" + (current["FMatrailId"] as DynamicObject)["Number"] + "不存在";
                        _result += "序号:" + Convert.ToString(current["SEQ"]) + ",生产订单号:" + Convert.ToString(current["FSCOrderNo"]) + ",生产订单明细行号:" + Convert.ToString(current["FSRCBILLENTRYSEQ"]) + "对应的物料" + (current["FMatrailId"] as DynamicObject)["Number"] + "不存在";
                }
                if (_result != "")
                {
@@ -336,7 +347,7 @@
                    jsonRoot.Add("IsVerifyBaseDataField", "");
                    JObject jsonModel = new JObject();
                    jsonModel.Add("FPreparatDate", date.ToString());//编制日期
                    jsonModel.Add("FSRCBILLENTRYSEQ", Convert.ToString(current["FSRCBILLENTRYSEQ"]) );//生产订单明细行号
                    jsonModel.Add("FSRCBILLENTRYSEQ", Convert.ToString(current["FSRCBILLENTRYSEQ"]));//生产订单明细行号
                    jsonModel.Add("FSCOrderNo", Convert.ToString(current["FSCOrderNo"])); //生产订单号FSCOrderNo
                    jsonModel.Add("FHSeOrderBillNo", Convert.ToString(current["FSalOrderNo"]));//销售订单号
                    jsonModel.Add("FHOrderLev", current["FOrderLevel"].ToString());//订单等级
@@ -378,20 +389,26 @@
                    JArray Entry = new JArray();
                    if (Convert.ToString(current["FDayPlanID"]) != "0")
                    {
                        sql = $"select max(FHMASTERDATE)FHMASTERDATE from SC_WORKBILLSORTBILLSub where FID={Convert.ToString(current["FDayPlanID"])} ";
                        DateTime EndDate = DBServiceHelper.ExecuteScalar<DateTime>(Context, sql, DateTime.Now);
                        sql = $" /*dialect*/ select FEntryID,FHMASTERDATE from SC_WORKBILLSORTBILLSub  where FID={Convert.ToString(current["FDayPlanID"])} ";
                        List<DayPlanModel> dayPlanModel = new List<DayPlanModel>();
                        dayPlanModel = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<DayPlanModel>();
                        int fseq = 1;
                        for (int i = 0; i <= 60; i++)
                        {
                            if (Convert.ToString(current["FT" + "" + i + ""]) == "" || Convert.ToString(current["FT" + "" + i + ""]) == "0")
                                continue;
                            if (EndDate >= date.AddDays(i))
                                continue;
                            JObject jsonFPOOrderEntry = new JObject();
                            jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//主日期
                            jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//日计划数量
                            jsonFPOOrderEntry.Add("FColumn", "FT" + "" + i + ""); ;//对应的列头
                            jsonFPOOrderEntry.Add("FSEQ", fseq); ;//序号
                            //jsonFPOOrderEntry.Add("FSEQ", fseq); ;//序号
                            List<DayPlanModel> _dayPlanModel = dayPlanModel.Where(x => x.FHMASTERDATE == date.AddDays(i).ToShortDateString()).ToList();
                            if (_dayPlanModel.Count > 0)
                            {
                                jsonFPOOrderEntry.Add("FEntryID", _dayPlanModel.FirstOrDefault().FEntryID); ;//序号
                            }
                            Entry.Add(jsonFPOOrderEntry);
                            fseq++;
                        }
@@ -401,7 +418,7 @@
                        var result = cloudClient.Save("Paez_Sc_WorkBillAutoSortBill", jsonRoot.ToString());
                        JObject saveObj = JObject.Parse(result);
                        string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
                        LogService.WriteAsync(jsonRoot);
                        LogHelper.Info(jsonRoot.ToString());
                        if (saveIsSuc == "TRUE")
                        {
                            string FDayPlanBillNo = saveObj["Result"]["Number"].ToString();
@@ -425,7 +442,7 @@
                            jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//主日期
                            jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//日计划数量
                            jsonFPOOrderEntry.Add("FColumn", "FT" + "" + i + ""); ;//对应的列头
                            jsonFPOOrderEntry.Add("FSEQ", fseq); ;//序号
                            //jsonFPOOrderEntry.Add("FSEQ", fseq); ;//序号
                            Entry.Add(jsonFPOOrderEntry);
                            fseq++;
                        }
@@ -434,7 +451,7 @@
                        var result = cloudClient.Save("Paez_Sc_WorkBillAutoSortBill", jsonRoot.ToString());
                        JObject saveObj = JObject.Parse(result);
                        string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
                        LogService.WriteAsync(jsonRoot);
                        //LogService.WriteAsync(jsonRoot);
                        if (saveIsSuc == "TRUE")
                        {
                            string FDayPlanBillNo = saveObj["Result"]["Number"].ToString();