yangle
2023-02-10 11112827c5ccdd0e03fdd7620c22729351ca6ba5
WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -6,10 +6,12 @@
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Web.Http;
using WebAPI.DLL;
using WebAPI.Models;
using WebAPI.Service;
using Kingdee.BOS.WebApi.Client;
namespace WebAPI.Controllers
{
@@ -18,7 +20,7 @@
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
@@ -98,6 +100,51 @@
            return objJsonResult;
        }
        #region 末道工序汇报入库
        /// <summary>
        /// 末道工序汇报入库列表
        /// </summary>
        /// <param name="sWhere"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        [Route("Sc_ProcessMangement/Sc_ProcessReportList_Last")]
        [HttpGet]
        public object Sc_ProcessReportList_Last(string sWhere, string user)
        {
            try
            {
                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Cj_StationOutBill_Query", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查询权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string sql1 = "select * from h_v_Sc_ProcessReportList_Last where 1 = 1  and HLastProc='是'";
                string sql = sql1 + sWhere + "  order by hmainid desc";
                ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessReportList_Last");
                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 工序汇报入库
        /// <summary>
        /// 获取工序汇报入库单列表
@@ -121,16 +168,11 @@
                    return objJsonResult;
                }
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_MES_StationOutBillList_LastProc  order by hmainid desc", "h_v_MES_StationOutBillList_LastProc");
                }
                else
                {
                    string sql1 = "select * from h_v_MES_StationOutBillList_LastProc where 1 = 1 ";
                    string sql = sql1 + sWhere + "  order by hmainid desc";
                    ds = oCN.RunProcReturn(sql, "h_v_MES_StationOutBillList_LastProc");
                }
                string sql1 = "select * from h_v_Sc_ProcessReportList_Last where 1 = 1 and HFstProc='是' ";
                string sql = sql1 + sWhere + "  order by hmainid desc";
                ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessReportList_Last");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
@@ -147,6 +189,216 @@
                return objJsonResult;
            }
        }
        #region 斯莫尔 末道工序汇报列表  汇报 入库
        /// <summary>
        /// 生成 生产汇报单
        /// 同步金蝶云 工序汇报入库单 入库
        /// </summary>
        /// <param name="InterID"></param>
        /// <param name="user"></param>
        /// <param name="BillNo"></param>
        /// <param name="OrganizationID"></param>
        /// <returns></returns>
        //[Route("Sc_ProcessMangement/SRM_SaveICMOReportBill")]
        //[HttpGet]
        //public object SRM_SaveICMOReportBill(string InterID, string user, string BillNo, string OrganizationID)
        //{
        //    try
        //    {
        //        //获取生产汇报单最大InterID和单据号
        //        Int64 HInterID = DBUtility.ClsPub.CreateBillID("3711", ref DBUtility.ClsPub.sExeReturnInfo);
        //        string HBillNo = DBUtility.ClsPub.CreateBillCode("3711", ref DBUtility.ClsPub.sExeReturnInfo, true);
        //        //获取组织代码
        //        string OrganizationNUM = oCN.RunProcReturn("select HNumber from Xt_ORGANIZATIONS where HItemID=" + OrganizationID, "Xt_ORGANIZATIONS").Tables[0].Rows[0]["HNumber"].ToString();
        //        //根据工序汇报单主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];
        //        //保存
        //        oCN.BeginTran();
        //        DataSet DsTable = oCN.RunProcReturn($"select * from Sc_ICMOReportBillMain where HBillNo='{HBillNo}'", "Sc_ICMOReportBillMain");
        //        if (DsTable.Tables[0].Rows.Count > 0)
        //        {
        //            objJsonResult.code = "0";
        //            objJsonResult.count = 0;
        //            objJsonResult.Message = "已入库,请不要重复入库";
        //            objJsonResult.data = null;
        //            return objJsonResult;
        //        }
        //        //生产汇报单主表
        //        oCN.RunProc("Insert Into Sc_ICMOReportBillMain   " +
        //    "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMaker,HMakeDate,HBillStatus,HChecker,HCheckDate" +
        //    ",HYear,HPeriod,HRemark,HEmpID,HEmpNumber" +
        //    ",HGroupID,HDeptID,HDeptNumber" +
        //    ",HMainSourceBillNo,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillType" +
        //    ") " +
        //    " values('3711','3711'," + HInterID.ToString() + ",'" + BillNo + "',getdate(),'" + user + "',getdate(),2,'" + user + "',getdate()" +
        //    ",DATENAME(YEAR,GETDATE()),0,'','" + dr["HEmpID"].ToString() + "','" + dr["操作员代码"].ToString() +
        //    "','" + dr["HGroupID"].ToString() + "',0,''" +
        //    ",'" + BillNo.ToString() + "'," + InterID.ToString() + ", 0,'3791'" +
        //    ") ");
        //        //生产汇报单子表
        //        oCN.RunProc("Insert into Sc_ICMOReportBillSub " +
        //              " (HInterID,HEntryID,HMaterID,HMaterNumber" +
        //              ",HQty,HUnitID,HUnitNumber,HTimes,HSourceID" +
        //              ",HQtyMust,HWorkerID,HWorkerNumber,HBadCount,HWasterQty," +
        //              "HCloseMan,HCloseType,HRemark," +
        //              "HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
        //              ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo" +
        //              ",HICMOInterID,HICMOBillNo,HBarCode" +
        //              ") values("
        //              + HInterID.ToString() + ",1," + dr["HMaterID"].ToString() + ",'" + dr["产品代码"].ToString() + "'" +
        //              "," + dr["合格数量"].ToString() + ",0,'',0,0" +
        //              "," + dr["接收数量"].ToString() + "," + dr["HEmpID"].ToString() + ",'" + dr["操作员代码"].ToString() + "'," + dr["不良数量"].ToString() + "," + dr["报废数量"].ToString() +
        //              ",'',0,''" +
        //              "," + InterID.ToString() + ",0,'" + BillNo.ToString() + "','3791',0,0" +
        //              ",0,0,''" +
        //              "," + dr["HICMOInterID"].ToString() + ",'" + dr["任务单"].ToString() + "',''" +
        //              ") ");
        //        //同步金蝶
        //        //访问金蝶
        //        var loginRet = InvokeHelper.Login();
        //        var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
        //        if (isSuccess == 0)
        //        {
        //            objJsonResult.code = "0";
        //            objJsonResult.count = 0;
        //            objJsonResult.Message = "操作失败,金蝶账号登录异常。" + loginRet;
        //            objJsonResult.data = null;
        //            return objJsonResult;
        //        }
        //        //根据任务单查找到金蝶的生产订单
        //        DataSet ds1 = oCN.RunProcReturn("select * from  h_v_TOERP_StationOutBillList_LastProc where HICMOEntryID=" + dr["HICMOEntryID"].ToString(), "h_v_TOERP_StationOutBillList_LastProc");
        //        DataRow dr1 = ds1.Tables[0].Rows[0];
        //        JObject model = new JObject();
        //        model.Add("FBillType", new JObject() { ["Fnumber"] = "SCHBD01_SYS" }); //单据类型生产汇报“SCHBD02_SYS” 入库汇报SCHBD01_SYS
        //        model.Add("FPrdOrgId", new JObject() { ["Fnumber"] = dr1["FPrdOrgNUMBER"].ToString() }); //生产组织1
        //        model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //单据日期1
        //        model.Add("FHZYMESFLAG", "是");//  是否为MES同步
        //        model.Add("FBillNo", BillNo);
        //        JArray Fentity = new JArray();
        //        foreach (DataRow item in ds.Tables[0].Rows)
        //        {
        //            JObject FentityModel = new JObject();
        //            FentityModel.Add("FIsNew", false);//  源单类型
        //            FentityModel.Add("FReportType", new JObject() { ["Fnumber"] = dr1["FREPORTTYPENUMBER"].ToString() });//生产汇报类型
        //            FentityModel.Add("FSrcBillType", "PRD_MO");//  源单类型
        //            FentityModel.Add("FProductType", "1");//  产品类型
        //            FentityModel.Add("FSrcBillNo", item["任务单"].ToString());//  源单编号
        //            FentityModel.Add("FSrcInterId", dr1["FMOID"].ToString());//  源单内码
        //            FentityModel.Add("FSrcEntryId", dr1["FMOENTRYID"].ToString());//  源单分录内码、
        //            FentityModel.Add("FSRCENTRYSEQ", dr1["FMOENTRYSEQ"].ToString());//  源单分录行号
        //            FentityModel.Add("FUNITID", new JObject() { ["Fnumber"] = dr1["FUNITNUMBER"].ToString() });//单位
        //            FentityModel.Add("FTimeUnitId", "1");//时间单位
        //            FentityModel.Add("FWorkshipId", new JObject() { ["Fnumber"] = dr1["FWorkShopNUM"].ToString() }); //  生产车间
        //            FentityModel.Add("FStandHourUnitId", "3600"); // 单位标准工时单位
        //            FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = dr1["FMaterialNUM"].ToString() }); // 物料编码
        //            FentityModel.Add("FMoEntrySeq", dr1["FMOENTRYSEQ"].ToString());//生产订单行号
        //            FentityModel.Add("FMoId", dr1["HICMOInterID"].ToString());//生产订单内码
        //            FentityModel.Add("FFinishQty", item["接收数量"].ToString());//完成数量1
        //            FentityModel.Add("FQuaQty", item["合格数量"].ToString());//合格数量1FFailQty
        //            FentityModel.Add("FFailQty", item["不良数量"].ToString());//不合格数量
        //            FentityModel.Add("FStockInOrgId ", new JObject() { ["Fnumber"] = OrganizationNUM });// 入库组织
        //            FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = dr1["FStockNUM"].ToString() }); // 仓库
        //            FentityModel.Add("FMOID", dr1["FMOID"].ToString());//
        //            FentityModel.Add("FMOBILLNO", dr1["FMOBILLNO"].ToString());//
        //            FentityModel.Add("FMOENTRYID", dr1["FMOENTRYID"].ToString());//
        //            FentityModel.Add("FMOENTRYSEQ", dr1["FMOENTRYSEQ"].ToString());//
        //            FentityModel.Add("FOwnerTypeId", dr1["FOWNERTYPEID"].ToString()); //货主类型:FOwnerTypeId(必填项)
        //            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("FMOMAINENTRYID", dr1["FMOENTRYID"].ToString());//
        //            FentityModel.Add("F_bsv_Base1", new JObject() { ["Fnumber"] = dr1["FPREBDONENUMBER"].ToString() }); //包装标识
        //            FentityModel.Add("FLot", new JObject() { ["FNumber"] = dr1["FBATCHNO"].ToString() }); //批号
        //            FentityModel.Add("F_bsv_Text", dr1["工序流转卡号"].ToString()); //流转卡号
        //            JArray Fentity2 = new JArray();
        //            JObject FentityModel2 = new JObject();
        //            FentityModel2.Add("FEntity_Link_FFlowId", "f6e6eec3-5267-4f02-8593-b633da508a72");
        //            FentityModel2.Add("FEntity_Link_FFlowLineId", "PRD_MO2MORPT");
        //            FentityModel2.Add("FEntity_Link_FRuleId", "3");
        //            FentityModel2.Add("FEntity_Link_FSTableId", "0");
        //            FentityModel2.Add("FEntity_Link_FSTableName", "T_PRD_MOENTRY");
        //            FentityModel2.Add("FEntity_Link_FSBillId", dr1["FMOID"].ToString());
        //            FentityModel2.Add("FEntity_Link_FSId", dr1["FMOENTRYID"].ToString());
        //            FentityModel2.Add("FEntity_Link_FBaseQuaQtyOld", item["合格数量"].ToString());
        //            FentityModel2.Add("FEntity_Link_FBaseQuaQty", item["合格数量"].ToString());
        //            Fentity2.Add(FentityModel2);
        //            FentityModel.Add("FEntity_Link", Fentity2);
        //            FentityModel.Add("FBFLowId", new JObject() { ["FID"] = "f6e6eec3-5267-4f02-8593-b633da508a72" }); //
        //            Fentity.Add(FentityModel);
        //        }
        //        model.Add("FEntity", Fentity); //明细信息
        //        JObject jsonRoot = new JObject()
        //        {
        //            ["Creator"] = "",
        //            ["NeedUpDateFields"] = new JArray(),
        //            ["NeedReturnFields"] = new JArray(),
        //            ["IsDeleteEntry"] = "false",
        //            ["SubSystemId"] = "",
        //            ["IsVerifyBaseDataField"] = "false",
        //            //["IsAutoSubmitAndAudit"] = true,//自动调用提交和审核功能
        //            ["Model"] = model
        //        };
        //        string result = InvokeHelper.Save("PRD_MORPT", JsonConvert.SerializeObject(jsonRoot));//保存
        //        //判断保存是否成功
        //        if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
        //        {
        //            LogService.Write("工序汇报单入库错误jsonRoot:" + jsonRoot);
        //            oCN.RollBack();
        //            objJsonResult.code = "0";
        //            objJsonResult.count = 0;
        //            objJsonResult.Message = $"生产汇报入库单同步金蝶云失败!单号:{dr["单据号"].ToString()}" + 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));//提交
        //        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 + "'");
        //        oCN.Commit();
        //        objJsonResult.code = "0";
        //        objJsonResult.count = 1;
        //        objJsonResult.Message = "保存成功!";
        //        objJsonResult.data = 1;
        //        return objJsonResult;
        //    }
        //    catch (Exception e)
        //    {
        //        oCN.RollBack();
        //        objJsonResult.code = "0";
        //        objJsonResult.count = 0;
        //        objJsonResult.Message = "Exception!" + e.ToString();
        //        objJsonResult.data = null;
        //        return objJsonResult;
        //    }
        //}
        #endregion
        /// <summary>
        /// 入库——生产汇报单
@@ -167,16 +419,26 @@
                //根据工序汇报单主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];
                //保存
                oCN.BeginTran();
                //生产汇报单主表
                oCN.RunProc("Insert Into Sc_ICMOReportBillMain   " +
                DataSet DsTable = oCN.RunProcReturn($"select * from Sc_ICMOReportBillMain where HBillNo='{HBillNo}'"  , "Sc_ICMOReportBillMain");
                if (DsTable.Tables[0].Rows.Count > 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "已入库,请不要重复入库";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                    //生产汇报单主表
                    oCN.RunProc("Insert Into Sc_ICMOReportBillMain   " +
                "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMaker,HMakeDate,HBillStatus,HChecker,HCheckDate" +
                ",HYear,HPeriod,HRemark,HEmpID,HEmpNumber" +
                ",HGroupID,HDeptID,HDeptNumber" +
                ",HMainSourceBillNo,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillType" +
                ") " +
                " values('3711','3711'," + HInterID.ToString() + ",'" + HBillNo + "',getdate(),'" + user + "',getdate(),2,'" + user + "',getdate()" +
                " values('3711','3711'," + HInterID.ToString() + ",'" + BillNo + "',getdate(),'" + user + "',getdate(),2,'" + user + "',getdate()" +
                ",DATENAME(YEAR,GETDATE()),0,'','" + dr["HEmpID"].ToString() + "','" + dr["操作员代码"].ToString() +
                "','" + dr["HGroupID"].ToString() + "',0,''" +
                ",'" + BillNo.ToString() + "'," + InterID.ToString() + ", 0,'3791'" +
@@ -220,7 +482,7 @@
                model.Add("FPrdOrgId", new JObject() { ["Fnumber"] = dr1["FPrdOrgNUMBER"].ToString() }); //生产组织1
                model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //单据日期1
                model.Add("FHZYMESFLAG", "是");//  是否为MES同步
                model.Add("FBillNo", HBillNo);
                model.Add("FBillNo", BillNo);
                
                JArray Fentity = new JArray();
@@ -260,19 +522,6 @@
                    FentityModel.Add("F_bsv_Base1", new JObject() { ["Fnumber"] = dr1["FPREBDONENUMBER"].ToString() }); //包装标识
                    FentityModel.Add("FLot", new JObject() { ["FNumber"] = dr1["FBATCHNO"].ToString() }); //批号
                    FentityModel.Add("F_bsv_Text", dr1["工序流转卡号"].ToString()); //流转卡号
                    //批号
                    //FFLOWID FFLOWLINEID FRULEID FSTABLENAME
                    //f6e6eec3 - 5267 - 4f02 - 8593 - b633da508a72    3   PRD_MO2MORPT T_PRD_MOENTRY
                    //业务流程图:FEntity_Link_FFlowId
                    //推进路线:FEntity_Link_FFlowLineId
                    //转换规则:FEntity_Link_FRuleId
                    //源单表内码:FEntity_Link_FSTableId
                    //源单表:FEntity_Link_FSTableName
                    //源单内码:FEntity_Link_FSBillId
                    //源单分录内码:FEntity_Link_FSId
                    //原始携带量:FEntity_Link_FBaseQuaQtyOld
                    //修改携带量:FEntity_Link_FBaseQuaQty
                    JArray Fentity2 = new JArray();
                    JObject FentityModel2 = new JObject();
                    FentityModel2.Add("FEntity_Link_FFlowId", "f6e6eec3-5267-4f02-8593-b633da508a72");
@@ -334,6 +583,8 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.RunProc("update Sc_StationOutBillMain set HRelationQty=1 where  HBillNo='" + BillNo+"'");
                oCN.Commit();
                objJsonResult.code = "0";
@@ -439,7 +690,7 @@
                model.Add("FOwnerId0", new JObject() { ["FNumber"] = dr1["HPrdOrgNumber"].ToString() }); //
                model.Add("FIsEntrust", "false");//  
                model.Add("FCurrId", new JObject() { ["FNumber"] = "PRE001" }); //
                model.Add("FBillNo", HBillNo);
                model.Add("FBillNo", BillNo);
                JArray Fentity = new JArray();
@@ -461,7 +712,21 @@
                    FentityModel.Add("FBaseRealQty", item["数量"].ToString());//
                    FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//
                    FentityModel.Add("FOwnerId", new JObject() { ["FNumber"] = item["HPrdOrgNumber"].ToString() });//
                    FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumber"].ToString() }); // 仓库
                    string sErr = "";
                    if (oSystemParameter.ShowBill(ref sErr))
                    {
                        if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺")
                        {
                            if (oSystemParameter.omodel.MES_StationOutBill_InStockType == "工艺路线")
                            {
                                FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumbers"].ToString() }); // 仓库
                            }
                            else if (oSystemParameter.omodel.MES_StationOutBill_InStockType == "工序")
                            {
                                FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumber"].ToString() }); // 仓库
                            }
                        }
                    }
                    FentityModel.Add("FLot", new JObject() { ["FNumber"] = item["HBatchNo"].ToString() }); //批号
                    FentityModel.Add("FISBACKFLUSH", "true");//  
                    FentityModel.Add("FWorkShopId1", new JObject() { ["FNumber"] = item["HWorkShopNumber"].ToString() }); //  生产车间
@@ -579,6 +844,8 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.RunProc("update Sc_StationOutBillMain set HRelationQty=1 where  HBillNo='" + BillNo + "'");
                oCN.Commit();
                objJsonResult.code = "0";
@@ -698,7 +965,21 @@
                    FentityModel.Add("FBaseRealQty", item["数量"].ToString());//
                    FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//
                    FentityModel.Add("FOwnerId", new JObject() { ["FNumber"] = item["HPrdOrgNumber"].ToString() });//
                    FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumber"].ToString() }); // 仓库
                    string sErr = "";
                    if (oSystemParameter.ShowBill(ref sErr))
                    {
                        if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺")
                        {
                            if (oSystemParameter.omodel.MES_StationOutBill_InStockType == "工艺路线")
                            {
                                FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumbers"].ToString() }); // 仓库
                            }
                            else if (oSystemParameter.omodel.MES_StationOutBill_InStockType == "工序")
                            {
                                FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumber"].ToString() }); // 仓库
                            }
                        }
                    }
                    FentityModel.Add("FLot", new JObject() { ["FNumber"] = item["HBatchNo"].ToString() }); //批号
                    FentityModel.Add("FISBACKFLUSH", "true");//  
                    FentityModel.Add("FWorkShopId1", new JObject() { ["FNumber"] = item["HWorkShopNumber"].ToString() }); //  生产车间
@@ -713,7 +994,7 @@
                    FentityModel.Add("FSrcInterId", item["HSourceInterID"].ToString());//  
                    FentityModel.Add("FBasePrdRealQty", item["数量"].ToString());//
                    FentityModel.Add("FIsFinished", "false");//
                    FentityModel.Add("FStockStatusId", new JObject() { ["FNumber"] = "KCZT01_SYS" }); //
                    FentityModel.Add("FStockStatusId", new JObject() { ["FNumber"] = "KCZT08_SYS" }); //
                    FentityModel.Add("FSrcEntrySeq", item["HSourceSeQ"].ToString());//  源单分录行号
                    FentityModel.Add("FMOMAINENTRYID", item["HMOEntryID"].ToString());//
                    FentityModel.Add("FKeeperTypeId", "BD_KeeperOrg");
@@ -817,7 +1098,10 @@
                    return objJsonResult;
                }
                 //oCN.RunProc("update Sc_StationOutBillMain set HRelationQty=1 where  HBillNo='" + BillNo + "'");
                oCN.Commit();
                oCN.RunProc("update  sc_stationoutbillmain set HBFFlag =1 where HProcExchBillNo = '" + BillNo + "'");
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "保存成功!";
@@ -850,14 +1134,30 @@
            Int64 HSourceEntryID, string HSourceBillNo, string user,
            Int64 HWHID, Int64 HSPID, Int64 HSupID, Int64 HKeeperID, 
            Int64 HMaterID, string HSourceBillType, Int64 HSLInterID,
            Int64 HSLEntryID, string HSLBillNo, Int64 HSLSeQ)
            Int64 HSLEntryID, string HSLBillNo, Int64 HSLSeQ, string HBillNo, Int64 HInterID)
        {
            try
            {
                //获取生产汇报单最大InterID和单据号
                Int64 HInterID = DBUtility.ClsPub.CreateBillID("7503", ref DBUtility.ClsPub.sExeReturnInfo);
                string HBillNo = DBUtility.ClsPub.CreateBillCode("7503", ref DBUtility.ClsPub.sExeReturnInfo, true);
                //Int64 HInterID = DBUtility.ClsPub.CreateBillID("7503", ref DBUtility.ClsPub.sExeReturnInfo);
                //string HBillNo = DBUtility.ClsPub.CreateBillCode("7503", ref DBUtility.ClsPub.sExeReturnInfo, true);
                DataSet ds1 = oCN.RunProcReturn("select   * from MES_AccessoriesList  where  HSourceBillNo = '" + HBillNo + "'", "MES_AccessoriesList");
                string HFileName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HFileName"]);
                string HFilePath = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HFilePath"]);
                string path = HFilePath;
                FileInfo fi = new FileInfo(path);
                long len = fi.Length;
                byte[] buffer = new byte[len];
                FileStream fs = new FileStream(path, FileMode.Open);
                fs.Read(buffer, 0, (int)len);
                //文件IO流
                string a = Convert.ToBase64String(buffer);
                //保存
                oCN.BeginTran();
                //生产汇报单主表
@@ -881,7 +1181,7 @@
                      ") values("
                      + HInterID.ToString() + ",1,'',''" +
                      ",''," + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo.ToString() + "','" + HSourceBillType.ToString() + "'" +
                      ",0,0,0,0,''"+
                      ",0,0,0,0,''" +
                      ",'" + HCheckResult.ToString() + "','" + HCheckResult.ToString() + "','" + HKeeperID.ToString() + "',getdate()" +
                      ") ");
                //同步金蝶
@@ -905,6 +1205,7 @@
                model.Add("FSourceOrgId", new JObject() { ["Fnumber"] = HZJOrgNumber.ToString() }); //来源组织
                model.Add("FInspectOrgId", new JObject() { ["Fnumber"] = HZJOrgNumber.ToString() }); //质检组织
                model.Add("FISSYNCED", "false");//  是否已同步
                model.Add("F_PGKJ_Date", DateTime.Now.ToString("yyyy-MM-dd"));//  报检日期
                model.Add("FBillNo", HBillNo);
                JArray Fentity = new JArray();
@@ -913,6 +1214,7 @@
                    FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = HUnitNumber.ToString() });//计量单位内码
                    FentityModel.Add("FInspectQty", HCheckQty.ToString());//  检验数量 
                    FentityModel.Add("FQualifiedQty", HRightQty.ToString());//  合格数量 
                    FentityModel.Add("FUnqualifiedQty", HBadQty.ToString());//  不合格数量
                    FentityModel.Add("FInspectResult", HCheckResult.ToString());//  检验结果
                    FentityModel.Add("FQCStatus", "1");//  质检状态 
                    FentityModel.Add("FIsRelated", false);//  不良品关联标志
@@ -920,13 +1222,14 @@
                    FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = HUnitNumber.ToString() });//基本单位
                    FentityModel.Add("FBaseInspectQty", HCheckQty.ToString());//基本单位检验数量
                    FentityModel.Add("FSupplierId", new JObject() { ["Fnumber"] = HSupNumber.ToString() }); //  供应商
                    FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = HWHNumber.ToString() }); // 仓库
                    //FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = HWHNumber.ToString() }); // 仓库
                    FentityModel.Add("FInspectTimes","1"); // 检验次数 
                    FentityModel.Add("FTimeUnit","24");//时间单位
                    FentityModel.Add("FSAMPLEDAMAGEBEARER","2");//样本破坏承担方
                    FentityModel.Add("FISFIRSTINSPECT", false);//首检
                    FentityModel.Add("FBaseQualifiedQty", HRightQty.ToString());//基本单位合格数
                    FentityModel.Add("FCurrency", new JObject() { ["Fnumber"] = "PRE001" });//币别
                FentityModel.Add("FBaseAcceptQty", HRightQty.ToString());//基本单位接收数
                FentityModel.Add("FCurrency", new JObject() { ["Fnumber"] = "PRE001" });//币别
                    FentityModel.Add("FIsSplitRow ", false);// 是否拆分行
                    JArray Fentity2 = new JArray();
@@ -940,7 +1243,7 @@
                    FentityModel2.Add("FIsDefectProcess", false);  //不良处理
                    FentityModel2.Add("FCanSale", false);   //可销售
                    FentityModel2.Add("FIsMRBReview", false);   //MRP评审
                    FentityModel2.Add("FIsReturn", false);   //判退
                    FentityModel2.Add("FIsReturn", true);   //判退
                    FentityModel2.Add("FIsRelatedDefect", false);   //不良品关联标志
                    Fentity2.Add(FentityModel2);
                    FentityModel.Add("FPolicyDetail", Fentity2);
@@ -949,6 +1252,7 @@
                JArray Fentity3 = new JArray();
                JObject FentityModel3 = new JObject();
                FentityModel3.Add("FDetailID", "0");//
                FentityModel3.Add("FSrcBillType", "PUR_ReceiveBill");   //源单类型
                FentityModel3.Add("FSrcBillNo", HSLBillNo.ToString());    //收料通知单单号
                FentityModel3.Add("FSrcInterId", HSLInterID.ToString());      //收料通知单主ID
@@ -961,6 +1265,23 @@
                FentityModel3.Add("FOrderEntrySeq", HSeQ.ToString());  //订单行号
                Fentity3.Add(FentityModel3);
                FentityModel.Add("FReferDetail", Fentity3);
                JArray Fentity4 = new JArray();
                JObject FentityModel4 = new JObject();
                FentityModel4.Add("FEntity_Link_FRuleId", "QM_PURReceive2Inspect");   //单据转换规则
                FentityModel4.Add("FEntity_Link_FSTableName", "T_PUR_RECEIVEENTRY");    //收料通知单子表
                FentityModel4.Add("FEntity_Link_FSBillId", HSLInterID.ToString());      //收料通知单主内码
                FentityModel4.Add("FEntity_Link_FSId", HSLEntryID.ToString());    //收料通知单子内码
                FentityModel4.Add("FEntity_Link_FBaseAcceptQty", HRightQty.ToString());    //
                FentityModel4.Add("FEntity_Link_FBaseAcceptQtyOld", HRightQty.ToString());    //
                FentityModel4.Add("FEntity_Link_FBaseInspectQtyOld", HRightQty.ToString());    //
                FentityModel4.Add("FEntity_Link_FInspectQtyOld", HRightQty.ToString());    //
                Fentity4.Add(FentityModel4);
                FentityModel.Add("FEntity_Link", Fentity4);
                Fentity.Add(FentityModel);
                model.Add("FEntity", Fentity); //明细信息
                JObject jsonRoot = new JObject()
@@ -983,7 +1304,7 @@
                    oCN.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = $"来料检验单同步金蝶云失败!单号:{HBillNo.ToString()}" + result;
                    objJsonResult.Message = $"来料检验单同步金蝶云失败!单号:{HBillNo.ToString()}" + jsonRoot;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -996,10 +1317,28 @@
                {
                    Ids = fID,
                };
                K3CloudApiClient client = new K3CloudApiClient("http://192.168.80.90/k3cloud/");
                result1 = InvokeHelper.Submit("QM_InspectBill", JsonConvert.SerializeObject(json));//提交
                result2 = InvokeHelper.Audit("QM_InspectBill", JsonConvert.SerializeObject(json));//提交
                if (JObject.Parse(result1)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                {
                    string jsonStr = "{" +
                        " \"FileName\":\"" + HFileName + "\"," +
                            " \"FormId\":\"QM_InspectBill\"," +
                            " \"IsLast\":\"true\"," +
                            " \"InterId\":\"" + HInterID + "\"," +
                            " \"BillNO\":\"" + HBillNo + "\"," +
                            " \"AliasFileName\":\"test\"," +
                            " \"SendByte\":\"" + a + "\"," +
                        "}";
                    var ret = client.AttachmentUpload(jsonStr);
                    oCN.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -1054,7 +1393,7 @@
                string HBillNo = DBUtility.ClsPub.CreateBillCode("7501", ref DBUtility.ClsPub.sExeReturnInfo, true);
                //保存
                oCN.BeginTran();
                //oCN.BeginTran();
                //生成产品检验单
                //oCN.RunProc("Insert Into QC_POStockInCheckBillMain   " +
                //"(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMaker,HMakeDate,HBillStatus,HChecker,HCheckDate" +
@@ -1108,6 +1447,7 @@
                FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = HUnitNumber.ToString() });//计量单位内码
                FentityModel.Add("FInspectQty", HCheckQty.ToString());//  检验数量 
                FentityModel.Add("FQualifiedQty", HRightQty.ToString());//  合格数量 
                FentityModel.Add("FUnqualifiedQty", HBadQty.ToString());//  不合格数量
                FentityModel.Add("FInspectResult", HCheckResult.ToString());//  检验结果
                FentityModel.Add("FQCStatus", "1");//  质检状态 
                FentityModel.Add("FIsRelated", false);//  不良品关联标志
@@ -1115,7 +1455,7 @@
                FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = HUnitNumber.ToString() });//基本单位
                FentityModel.Add("FBaseInspectQty", HCheckQty.ToString());//基本单位检验数量
                //FentityModel.Add("FSupplierId", new JObject() { ["Fnumber"] = HSupNumber.ToString() }); //  供应商
                FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = HWHNumber.ToString() }); // 仓库
                //FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = HWHNumber.ToString() }); // 仓库
                FentityModel.Add("FInspectTimes", "1"); // 检验次数 
                FentityModel.Add("FTimeUnit", "24");//时间单位
                FentityModel.Add("FSAMPLEDAMAGEBEARER", "2");//样本破坏承担方
@@ -1135,11 +1475,42 @@
                FentityModel2.Add("FIsDefectProcess", false);  //不良处理
                FentityModel2.Add("FCanSale", false);   //可销售
                FentityModel2.Add("FIsMRBReview", false);   //MRP评审
                FentityModel2.Add("FIsReturn", false);   //判退
                FentityModel2.Add("FIsReturn", true);   //判退
                FentityModel2.Add("FIsRelatedDefect", false);   //不良品关联标志
                Fentity2.Add(FentityModel2);
                FentityModel.Add("FPolicyDetail", Fentity2);
                JArray Fentity3 = new JArray();
                JObject FentityModel3 = new JObject();
                FentityModel3.Add("FDetailID", "0");//
                FentityModel3.Add("FSrcBillType", "SFC_OperationReport");   //源单类型
                FentityModel3.Add("FSrcBillNo", HSLBillNo.ToString());    //工序汇报单单号
                FentityModel3.Add("FSrcInterId", HSLInterID.ToString());      //工序汇报单主ID
                FentityModel3.Add("FSrcEntryId", HSLEntryID.ToString());    //工序汇报单子ID
                FentityModel3.Add("FSrcEntrySeq", HSLSeQ.ToString());    //工序汇报单行号
                FentityModel3.Add("FOrderType", new JObject() { ["FID"] = "PRD_MO" });  //  生产订单类型
                FentityModel3.Add("FOrderBillNo", HSourceBillNo.ToString());   //生产订单单号
                FentityModel3.Add("FOrderId", HSourceInterID.ToString());      //生产订单主ID
                FentityModel3.Add("FOrderEntryId", HSourceEntryID.ToString());  //生产订单子ID
                FentityModel3.Add("FOrderEntrySeq", HSeQ.ToString());  //生产订单行号
                Fentity3.Add(FentityModel3);
                FentityModel.Add("FReferDetail", Fentity3);
                JArray Fentity4 = new JArray();
                JObject FentityModel4 = new JObject();
                FentityModel4.Add("FEntity_Link_FRuleId", "QM_OperRpt2Inspect");   //单据转换规则
                FentityModel4.Add("FEntity_Link_FSTableName", "T_SFC_OPTRPTENTRY");    //工序汇报单子表
                FentityModel4.Add("FEntity_Link_FSBillId", HSLInterID.ToString());      //工序汇报单主ID
                FentityModel4.Add("FEntity_Link_FSId", HSLEntryID.ToString());    //工序汇报单子ID
                FentityModel4.Add("FEntity_Link_FBaseAcceptQty", HRightQty.ToString());    //
                FentityModel4.Add("FEntity_Link_FBaseAcceptQtyOld", HRightQty.ToString());    //
                FentityModel4.Add("FEntity_Link_FBaseInspectQtyOld", HRightQty.ToString());    //
                FentityModel4.Add("FEntity_Link_FInspectQtyOld", HRightQty.ToString());    //
                Fentity4.Add(FentityModel4);
                FentityModel.Add("FEntity_Link", Fentity4);
                //JArray Fentity3 = new JArray();
@@ -1158,6 +1529,10 @@
                //FentityModel.Add("FReferDetail", Fentity3);
                Fentity.Add(FentityModel);
                model.Add("FEntity", Fentity); //明细信息
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                DataSet ds = oCN.RunProcReturn("select HCheckdate from Sc_ProcessReportMain where hbillno = '" + HSourceBillNo + "'", "Sc_ProcessReportMain");
                DateTime HCheckDate = DBUtility.ClsPub.isDate(ds.Tables[0].Rows[0]["HCheckdate"]);
                JObject jsonRoot = new JObject()
                {
                    ["Creator"] = "",
@@ -1166,6 +1541,7 @@
                    ["IsDeleteEntry"] = "false",
                    ["SubSystemId"] = "",
                    ["IsVerifyBaseDataField"] = "false",
                    ["F_PGKJ_Date"] = HCheckDate.ToString(),
                    //["IsAutoSubmitAndAudit"] = true,//自动调用提交和审核功能
                    ["Model"] = model
                };