1
llj
4 天以前 599aeb0d380f9b194e1dc363364779f3b498969e
WebAPI/Controllers/ÌõÂë¹ÜÀí/WEBSController.cs
@@ -17,9 +17,11 @@
using WebAPI.Models;
using WebAPI.Service;
using WebAPI.Utility;
using Kingdee.BOS.WebApi.Client;
namespace WebAPI.Controllers
{
    public class WEBSController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
@@ -46,6 +48,7 @@
        /// <returns></returns>
        [Route("WEBSController/GetUser_Json")]
        [HttpGet]
        [AllowAnonymous]
        public object GetUser_Json(string HUserNumber, string HPassWord, Int64 HStockOrgID, string HStockOrgName)
        {
            try
@@ -91,11 +94,23 @@
                        return objJsonResult;
                    }
                    if(!oSystemParameter.ShowBill(ref DBUtility.ClsPub.sErrInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "登录异常!Token ç”Ÿæˆå¼‚常,无法获取公司信息!";
                    }
                    string tokenStr = JWTHelper.GenerateToken(ds.Tables[0].Rows[0]["Czybm"].ToString(), ds.Tables[0].Rows[0]["Czymc"].ToString());
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "登录成功!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                    JObject jobjJsonResult = JObject.FromObject(objJsonResult);
                    jobjJsonResult["token"] = tokenStr;
                    return jobjJsonResult;
                }
            }
            catch (Exception e)
@@ -1564,6 +1579,84 @@
        #endregion
        #region æ‰«ç æ¨¡å—    æ ¹æ®æ¡ç åˆ é™¤ç¼“存列表中对应条码记录
        /// <summary>
        /// æ ¹æ®æ¡ç æ›´æ–°æ¡ç å‡ºå…¥åº“缓存表数量
        /// </summary>
        /// <returns></returns>
        [Route("WEBSController/set_UpdatePonderationBillMain_Temp_BarCode_Json")]
        [HttpGet]
        public object set_UpdatePonderationBillMain_Temp_BarCode_Json(long HInterID, string HBillType, string HBarCode, double HQty, long HItemID)
        {
            try
            {
                //(HBarCode_Pack <> '' and HInterID = { HInterID.ToString() } and HBillType = '{HBillType}' and HBarCode_Pack = '{HBarCode}') or
                //              (HBarCode <> '' and HInterID ={ HInterID.ToString()}
                //and HBillType = '{HBillType}' and HBarCode = '{HBarCode}')
                // æ ¹æ®æ‰˜æ¡ç å­—段和条码字段 åˆ¤æ–­ æ›´æ–°çš„æ¡ç æ•°é‡æ˜¯å¦å¤§äºŽæœ€å¤§æ•°é‡æˆ–小于0
                ds = oCn.RunProcReturn($@"select * from KF_PonderationBillMain_Temp where
                    HItemID = {HItemID}
                ", "KF_PonderationBillMain_Temp");
                if(ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    // æ‰€æ‰«æ¡ç ä¸å­˜åœ¨
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "更新失败,所扫条码不存在...";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if(HQty < 0)
                {
                    // æ›´æ–°çš„æ¡ç æ•°é‡å°äºŽ0
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "更新失败,更新数量小于0...";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //if(Double.Parse(ds.Tables[0].Rows[0]["HQtyMust"].ToString()) < HQty)
                //{
                    //// æ›´æ–°çš„æ¡ç æ•°é‡æ˜¯å¦å¤§äºŽæœ€å¤§æ•°é‡
                    //objJsonResult.code = "0";
                    //objJsonResult.count = 0;
                    //objJsonResult.Message = $"更新失败,条码数量{HQty}大于最大可扫数量{ds.Tables[0].Rows[0]["HQtyMust"].ToString()}...";
                    //objJsonResult.data = null;
                    //return objJsonResult;
                //}
                //根据托条码字段更新本单条码出入库缓存表数据
                //oCn.RunProc($"Update KF_PonderationBillMain_Temp set HQty = {HQty} where HBarCode_Pack<>'' and HInterID={HInterID.ToString()} and HBillType='{HBillType}' and HBarCode_Pack='{HBarCode}'", ref DBUtility.ClsPub.sExeReturnInfo);
                //根据条码字段更新本单条码出入库缓存表数据
                //oCn.RunProc($"Update KF_PonderationBillMain_Temp set HQty = {HQty} where HBarCode<>'' and HInterID={HInterID.ToString()} and HBillType='{HBillType}' and HBarCode='{HBarCode}'", ref DBUtility.ClsPub.sExeReturnInfo);
                //根据条码自增列 æ›´æ–° æ¡ç å‡ºå…¥åº“缓存表数据
                oCn.RunProc($"exec h_p_KF_PonderationBillMain_Temp_Update {HInterID}, '{HBillType}', '{HBarCode}', {HQty}, {HItemID}", ref DBUtility.ClsPub.sExeReturnInfo);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "更新成功";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "更新条码出入库缓存列表条码记录失败!" + e.Message.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region æ‰«ç æ¨¡å—    æ ¹æ®HItemID删除缓存列表中对应条码记录
        /// <summary>
@@ -2508,7 +2601,7 @@
        {
            //sCloudMode:系统参数  æ˜¯å¦ä¸ºç§æœ‰äº‘模式(N为公有云模式,Y为私有云模式);
            //sERPMode:系统参数  åº“存控制-WMS库存控制ERP模式   (WISE、CLOUD、MES);
            //sHType:值 1 å¯¹åº”缓存列表删除;值 2 å¯¹åº”已上传撤销;
            //sHType:值 1 å¯¹åº”缓存列表删除;值 2 å¯¹åº”已上传撤销;值 3 å¯¹åº”校验模块已上传撤销;
            //公有云模式
            if (sCloudMode == "N")
@@ -2534,6 +2627,11 @@
                else if (HBillType == "1203")
                {
                    sFormId = "STK_MISCELLANEOUS";
                }
                //受托加工入库单
                else if (HBillType == "1212")
                {
                    sFormId = "STK_OEMInStock";
                }
                //领料出库单
                else if (HBillType == "1204")
@@ -2564,6 +2662,11 @@
                else if (HBillType == "1255")
                {
                    sFormId = "SUB_FEEDMTRL";
                }
                //受托加工出库单(受托加工退料)
                else if (HBillType == "1213")
                {
                    sFormId = "STK_OEMInStockRETURN";
                }
                //直接调拨单
                else if (HBillType == "1207")
@@ -2636,7 +2739,7 @@
                    var sJson = new
                    {
                        FormId = sFormId,
                        FieldKeys = "FBillNo",
                        FieldKeys = "FBillNo,FAPPROVERID",
                        FilterString = $@"FBillNo='{HBillNo}'",
                        OrderString = "",
                        TopRowCount = 0,
@@ -2668,7 +2771,7 @@
                            }
                        }
                        //sHType = 2对应已上传撤销
                        else
                        else if(sHType == 2)
                        {
                            //判断返回的数组数据中是否存在"false",存在代表递入的业务对象表单Id不正确
                            if (_saveObj[0][0].ToString().Contains("false") == true)
@@ -2682,26 +2785,73 @@
                                return false;
                            }
                        }
                        //sHType = 3对应校验模块已上传撤销
                        else if (sHType == 3)
                        {
                            //判断返回的数组数据中是否存在"false",存在代表递入的业务对象表单Id不正确
                            if (_saveObj[0][0].ToString().Contains("false") == true)
                            {
                                sErrMsg = "此模块暂不支持撤销功能!";
                                return false;
                            }
                            else if (_saveObj[0][1].ToString() != "0")
                            {
                                sErrMsg = "校验撤销单据失败,单据号:" + HBillNo + ",金蝶云里已审核,不允许撤销!";
                                return false;
                            }
                            else
                            {
                                return true;
                            }
                        }
                        else
                        {
                            sErrMsg = "sHType值递入错误!";
                            return false;
                        }
                    }
                }
            }
            //私有云模式
            else
            {
                ds = oCn.RunProcReturn("exec h_p_WMS_BillQuery " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + sERPMode + "'," + sHType.ToString(), "h_p_WMS_BillQuery");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                //sHType = 3    æ‰«ç æ ¡éªŒæ¨¡å—
                if (sHType == 3)
                {
                    sErrMsg = "单据查询发生错误!";
                    return false;
                    ds = oCn.RunProcReturn("exec h_p_WMS_BillQuery_BillCheck " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + sERPMode + "'", "h_p_WMS_BillQuery_BillCheck");
                    if (ds == null || ds.Tables[0].Rows.Count == 0)
                    {
                        sErrMsg = "单据查询发生错误!";
                        return false;
                    }
                    else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) == 1)
                    {
                        sErrMsg = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
                        return false;
                    }
                    else
                    {
                        return true;
                    }
                }
                else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) == 1)
                {
                    sErrMsg = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
                    return false;
                }
                //sHType = 1 æˆ– sHType = 2   æ‰«ç æ–°å¢žæ¨¡å—
                else
                {
                    return true;
                    ds = oCn.RunProcReturn("exec h_p_WMS_BillQuery " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + sERPMode + "'," + sHType.ToString(), "h_p_WMS_BillQuery");
                    if (ds == null || ds.Tables[0].Rows.Count == 0)
                    {
                        sErrMsg = "单据查询发生错误!";
                        return false;
                    }
                    else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) == 1)
                    {
                        sErrMsg = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
                        return false;
                    }
                    else
                    {
                        return true;
                    }
                }
            }
        }
@@ -2942,6 +3092,7 @@
        /// <returns></returns>
        [Route("WEBSController/set_SavePOStockInBill_Json")]
        [HttpPost]
        [Permission(HModName = "Kf_POStockInBill", Operate = "_Edit")]
        public object set_SavePOStockInBill_Json([FromBody] JObject oMain)
        {
            var _value = oMain["oMain"].ToString();
@@ -3291,6 +3442,89 @@
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "其他入库校验失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #endregion
        #region å—托加工入库    ä¸Šä¼ ç”Ÿå•
        #region å—托加工入库    æ–°å¢žæ¨¡å¼
        /// <summary>
        /// å—托加工入库新增上传
        /// </summary>
        /// <returns></returns>
        [Route("WEBSController/set_SaveInceptEntInBill_Json")]
        [HttpPost]
        public object set_SaveInceptEntInBill_Json([FromBody] JObject oMain)
        {
            var _value = oMain["oMain"].ToString();
            string msg1 = _value.ToString();
            try
            {
                List<Model.ClsKf_ICStockBillMain> lsmain = new List<Model.ClsKf_ICStockBillMain>();
                ListModels oListModels = new ListModels();
                lsmain = oListModels.getICStockBillMainByJson(msg1);
                WebS.ClsKf_ICStockBillMain websLsmain = new WebS.ClsKf_ICStockBillMain();
                string sSourceType = lsmain[0].HMainSourceBillType;
                websLsmain.HInterID = lsmain[0].HInterID;
                websLsmain.HBillNo = lsmain[0].HBillNo;
                websLsmain.HBillType = lsmain[0].HBillType;
                websLsmain.HDate = lsmain[0].HDate;
                websLsmain.HDeptID = lsmain[0].HDeptID;
                websLsmain.HWHID = lsmain[0].HWHID;
                websLsmain.HSCWHID = lsmain[0].HSCWHID;
                websLsmain.HSupID = lsmain[0].HSupID;
                websLsmain.HKeeperID = lsmain[0].HKeeperID;
                websLsmain.HSecManagerID = lsmain[0].HSecManagerID;
                websLsmain.HEmpID = lsmain[0].HEmpID;
                websLsmain.HManagerID = lsmain[0].HManagerID;
                websLsmain.HRemark = lsmain[0].HRemark;
                websLsmain.HExplanation = lsmain[0].HExplanation;
                websLsmain.HInnerBillNo = lsmain[0].HInnerBillNo;
                websLsmain.HRedBlueFlag = lsmain[0].HRedBlueFlag;
                websLsmain.HStockStyle = lsmain[0].HStockStyle;
                websLsmain.HBillSubType = lsmain[0].HBillSubType;
                if (lsmain[0].HMainSourceBillType == "1130")
                {
                    websLsmain.HMainSourceBillType = "受托加工收料通知单";
                }
                else
                {
                    websLsmain.HMainSourceBillType = "手工录入";
                }
                websLsmain.HMaker = lsmain[0].HMaker;
                websLsmain.HBillerID = lsmain[0].HBillerID;
                websLsmain.HSTOCKORGID = lsmain[0].HSTOCKORGID;
                websLsmain.HOWNERID = lsmain[0].HSTOCKORGID;
                if (oWebs.set_SaveInceptEntInBill_New(websLsmain, sSourceType, ref DBUtility.ClsPub.sErrInfo))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sErrInfo;  //成功!
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.sErrInfo;  //失败!
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "受托加工入库单上传失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
@@ -4168,6 +4402,64 @@
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "委外补料校验失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #endregion
        #region å—托加工出库    ä¸Šä¼ ç”Ÿå•
        #region å—托加工出库    æ ¡éªŒæ¨¡å¼
        /// <summary>
        /// å—托加工出库校验上传
        /// </summary>
        /// <returns></returns>
        [Route("WEBSController/set_SaveInceptEntOutBill_BillCheck_Json")]
        [HttpPost]
        public object set_SaveInceptEntOutBill_BillCheck_Json([FromBody] JObject oMain)
        {
            var _value = oMain["oMain"].ToString();
            string msg1 = _value.ToString();
            try
            {
                List<Model.ClsKf_ICStockBillMain> lsmain = new List<Model.ClsKf_ICStockBillMain>();
                ListModels oListModels = new ListModels();
                lsmain = oListModels.getICStockBillMainByJson(msg1);
                WebAPI.WebS.ClsKf_ICStockBillMain websLsmain = new WebS.ClsKf_ICStockBillMain();
                websLsmain.HInterID = lsmain[0].HInterID;
                websLsmain.HBillNo = lsmain[0].HBillNo;
                websLsmain.HBillType = "1213";
                websLsmain.HMaker = lsmain[0].HMaker;
                websLsmain.HSTOCKORGID = lsmain[0].HSTOCKORGID;
                if (oWebs.set_SaveInceptEntOutBill_BillCheck(websLsmain, ref DBUtility.ClsPub.sErrInfo))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sErrInfo;  //成功!
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.sErrInfo;  //失败!
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "受托加工出库校验失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
@@ -5259,7 +5551,7 @@
        /// </summary>
        /// <returns></returns>
        [Route("WEBSController/set_SaveQCPOStockInCheckBill_Json")]
        [HttpPost]
        [HttpGet]
        public object set_SaveQCPOStockInCheckBill_Json(Int64 HInterID, string HBillNo, string HSourceBillType, string HSourceBillNo, Int64 HSourceInterID, string sHSourceEntryID, Int64 HFirstCheckEmp, string HMaker)
        {
            try
@@ -5395,16 +5687,16 @@
                    oSub.HBadQty = Pub_Class.ClsPub.isDoule(Ds.Tables[1].Rows[i]["HBadQty"]);
                    oCn.RunProc("Insert Into QC_POStockInCheckBillSub " +
                    "(HInterID,HEntryID,,HBillNo_bak,HRemark" +
                    "(HInterID,HEntryID,HBillNo_bak,HRemark" +
                    ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType" +
                    ",HQCCheckClassID,HQCCheckItemID,HQCStd,HQCRelValue" +
                    "HResult,HProcCheckEmp,HProcCheckTime" +
                    "HMaterID,HInStockQty,HCheckQty,HRightQty,HBadQty" +
                    ",HResult,HProcCheckEmp,HProcCheckTime" +
                    ",HMaterID,HInStockQty,HCheckQty,HRightQty,HBadQty" +
                    ") " +
                    " values(" + oMain.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + oMain.HBillNo + "','" + oSub.HRemark + "'" +
                    ", " + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'" +
                    ", " + oSub.HQCCheckClassID.ToString() + "," + oSub.HQCCheckItemID.ToString() + ",'" + oSub.HQCStd + "','" + oSub.HQCRelValue + "'" +
                    ",'" + oSub.HResult + "'," + oSub.HProcCheckEmp.ToString() + "',getdate()" +
                    ",'" + oSub.HResult + "'," + oSub.HProcCheckEmp.ToString() + ",getdate()" +
                    ", " + oSub.HMaterID.ToString() + "," + oSub.HInStockQty.ToString() + "," + oSub.HCheckQty.ToString() + "," + oSub.HRightQty.ToString() + "," + oSub.HBadQty.ToString() +
                    ") ");
                }
@@ -5692,7 +5984,6 @@
                if (isSuccess == 1)
                {
                    string result = InvokeHelper.Save("QM_InspectBill", sJson); //保存
                    sRemark = sRemark + " ï¼›ç”ŸæˆCLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                    HReturn = result.ToString();
@@ -5716,6 +6007,24 @@
                    else
                    {
                        sRemark = sRemark + sJson;
                        // æäº¤å’Œä¿å­˜å•据
                        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("QM_InspectBill", JsonConvert.SerializeObject(json));//提交
                        result2 = InvokeHelper.Audit("QM_InspectBill", JsonConvert.SerializeObject(json));//审核
                        if (JObject.Parse(result1)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                        {
                            oCn.RollBack();
                            sErrMsg = $"来料检验单号:{fBillNo},提交失败" + result;
                            return false;
                        }
                        oCn.Commit();
                    }
                }
@@ -6531,6 +6840,48 @@
            try
            {
                WebSoBar = oWebs.get_SourceBarCode_OtherIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, ref DBUtility.ClsPub.sErrInfo);
                if (WebSoBar == null)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.sErrInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "成功";
                    objJsonResult.data = WebSoBar;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "扫描源单条码失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å—托加工入库    æ‰«ææºå•条码
        /// <summary>
        /// å—托加工入库    æ‰«ææºå•条码
        /// </summary>
        /// <returns></returns>
        [Route("WEBSController/Get_SourceBarCode_InceptEntIn_Json")]
        [HttpGet]
        public object get_SourceBarCode_InceptEntIn_Json(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID)
        {
            try
            {
                WebSoBar = oWebs.get_SourceBarCode_InceptEntIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, ref DBUtility.ClsPub.sErrInfo);
                if (WebSoBar == null)
                {
                    objJsonResult.code = "0";
@@ -7839,6 +8190,20 @@
                        sAutoBarCode = "Y";
                    }
                }
                //受托加工入库单
                else if (HBillType == "1212")
                {
                    //校验-是否进行源单对应条码核对('Y'为核对)
                    if (oSystemParameter.omodel.Kf_InceptEntInBillCheck_SourceBarCodeCtl.ToUpper() == "Y")
                    {
                        sSourceBarCodeCtl = "Y";
                    }
                    //免扫物料条码模式('Y'为不扫物料条码)
                    if (oSystemParameter.omodel.Kf_InceptEntInBillCheck_AutoBarCode.ToUpper() == "Y")
                    {
                        sAutoBarCode = "Y";
                    }
                }
                //领料出库单
                else if (HBillType == "1204")
                {
@@ -7919,6 +8284,20 @@
                    }
                    //免扫物料条码模式('Y'为不扫物料条码)
                    if (oSystemParameter.omodel.Kf_EntrustReplenishOutBillCheck_AutoBarCode.ToUpper() == "Y")
                    {
                        sAutoBarCode = "Y";
                    }
                }
                //受托加工出库单
                else if (HBillType == "1213")
                {
                    //校验-是否进行源单对应条码核对('Y'为核对)
                    if (oSystemParameter.omodel.Kf_InceptEntOutBillCheck_SourceBarCodeCtl.ToUpper() == "Y")
                    {
                        sSourceBarCodeCtl = "Y";
                    }
                    //免扫物料条码模式('Y'为不扫物料条码)
                    if (oSystemParameter.omodel.Kf_InceptEntOutBillCheck_AutoBarCode.ToUpper() == "Y")
                    {
                        sAutoBarCode = "Y";
                    }
@@ -8454,6 +8833,14 @@
                {
                    sFIFOCtl = "Y";
                }
                //受托加工出库单-先进先出控制
                if (HBillType == "1213"
                    && oSystemParameter.omodel.Kf_InceptEntOutBillCheck_AutoBarCode.ToUpper() == "N"         //免扫物料条码模式('Y'为不扫物料条码)
                    && oSystemParameter.omodel.Kf_InceptEntOutBillCheck_SourceBarCodeCtl.ToUpper() == "N"    //校验-是否进行源单对应条码核对('Y'为核对)
                    && (oSystemParameter.omodel.Kf_InceptEntOutBillCheck_FIFOCtl == "1" || oSystemParameter.omodel.Kf_InceptEntOutBillCheck_FIFOCtl == "2" || oSystemParameter.omodel.Kf_InceptEntOutBillCheck_FIFOCtl == "3"))
                {
                    sFIFOCtl = "Y";
                }
                //直接调拨单-先进先出控制
                if (HBillType == "1207"
                    && oSystemParameter.omodel.Kf_MoveStockBillCheck_AutoBarCode.ToUpper() == "N"         //免扫物料条码模式('Y'为不扫物料条码)
@@ -8596,6 +8983,15 @@
                        sSourceBarCodeCtl = "Y";
                    }
                }
                //受托加工入库单
                else if (HBillType == "1212")
                {
                    //校验-是否进行源单对应条码核对('Y'为核对)
                    if (oSystemParameter.omodel.Kf_InceptEntInBillCheck_SourceBarCodeCtl.ToUpper() == "Y")
                    {
                        sSourceBarCodeCtl = "Y";
                    }
                }
                //领料出库单
                else if (HBillType == "1204")
                {
@@ -8661,6 +9057,17 @@
                    }
                    //先进先出控制
                    sFIFOCtl = oSystemParameter.omodel.Kf_EntrustReplenishOutBillCheck_FIFOCtl;
                }
                //受托加工出库单
                else if (HBillType == "1213")
                {
                    //校验-是否进行源单对应条码核对('Y'为核对)
                    if (oSystemParameter.omodel.Kf_InceptEntOutBillCheck_SourceBarCodeCtl.ToUpper() == "Y")
                    {
                        sSourceBarCodeCtl = "Y";
                    }
                    //先进先出控制
                    sFIFOCtl = oSystemParameter.omodel.Kf_InceptEntOutBillCheck_FIFOCtl;
                }
                //直接调拨单
                else if (HBillType == "1207")
@@ -8969,6 +9376,15 @@
                        sSourceBarCodeCtl = "Y";
                    }
                }
                //受托加工入库单
                else if (HBillType == "1212")
                {
                    //校验-是否进行源单对应条码核对('Y'为核对)
                    if (oSystemParameter.omodel.Kf_InceptEntInBillCheck_SourceBarCodeCtl.ToUpper() == "Y")
                    {
                        sSourceBarCodeCtl = "Y";
                    }
                }
                //领料出库单
                else if (HBillType == "1204")
                {
@@ -9019,6 +9435,15 @@
                {
                    //校验-是否进行源单对应条码核对('Y'为核对)
                    if (oSystemParameter.omodel.Kf_EntrustReplenishOutBillCheck_SourceBarCodeCtl.ToUpper() == "Y")
                    {
                        sSourceBarCodeCtl = "Y";
                    }
                }
                //受托加工出库单
                else if (HBillType == "1213")
                {
                    //校验-是否进行源单对应条码核对('Y'为核对)
                    if (oSystemParameter.omodel.Kf_InceptEntOutBillCheck_SourceBarCodeCtl.ToUpper() == "Y")
                    {
                        sSourceBarCodeCtl = "Y";
                    }
@@ -9078,6 +9503,16 @@
                    }
                }
                #endregion
                //撤销前判断金蝶云中单据是否存在
                if (!GetBillQuery_WMS(HInterID, HBillNo, HBillType, HMaker, oSystemParameter.omodel.WMS_CloudMode, sERPMode, 3, ref sErrMsg))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = sErrMsg;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                try
                {
@@ -12830,6 +13265,60 @@
        #endregion
        #region  WMS每日运行状态分析(每日制单数量)
        [Route("WEBSController/GetKf_WMSDailyRunStateReport_Json")]
        [HttpGet]
        public object GetKf_WMSDailyRunStateReport_Json(string sWhere, string user)
        {
            try
            {
                Dictionary<object, object> dic = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<object, object>>(sWhere);
                string HBeginDate = dic["HBeginDate"].ToString();
                string HEndDate = dic["HEndDate"].ToString();
                List<object> columnNameList = new List<object>();
                ds = oCn.RunProcReturn("exec h_p_Kf_WMSDailyRunStateReport  '" + HBeginDate + "','" + HEndDate + "'", "h_p_Kf_WMSDailyRunStateReport");
                if (ds.Tables[0].Rows.Count != 0 || ds != null)
                {
                    //添加列名
                    foreach (DataColumn col in ds.Tables[0].Columns)
                    {
                        Type dataType = col.DataType;
                        string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                        columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds;
                    objJsonResult.list = columnNameList;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无数据";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #endregion
@@ -14638,8 +15127,8 @@
            {
                string sErrMsg = "";
                oSystemParameter.ShowBill(ref sErrMsg);
                // åŽèˆŸå®¢æˆ·
                if (oSystemParameter.omodel.WMS_CampanyName == "华舟")
                // åŽèˆŸå®¢æˆ·   å·¥åºè¿›ç«™æŽ¥æ”¶å•  å·¥åºå§”外接收单 ç”Ÿäº§è®¢å• å·¥åºæµè½¬å¡
                if (oSystemParameter.omodel.WMS_CampanyName == "华舟" && HSourceBillType != 3790 && HSourceBillType != 3793 && HSourceBillType != 3710 && HSourceBillType != 3772)
                {
                    if (!string.IsNullOrWhiteSpace(HBarCode))
                    {
@@ -14690,6 +15179,14 @@
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "扫描单据条码失败!无绑定质检方案信息";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (ds.Tables[0].Columns.Contains("HBack") && DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) == 1)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -14932,7 +15429,7 @@
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.count = 1;
                objJsonResult.Message = DBUtility.ClsPub.sErrInfo;  //成功!
                objJsonResult.data = oDs.Tables[0];
                return objJsonResult;
@@ -15082,5 +15579,183 @@
        #endregion
        #endregion
        #region è°ƒç”¨é‡‘蝶webapi接口同步基础资料方法
        #region ç‰©æ–™åŸºç¡€èµ„料同步
        [Route("WEBSController/MaterialDataToLocalByKDWebApi")]
        [HttpGet]
        public object MaterialDataToLocalByKDWebApi(string HDate)
        {
            try
            {
                //访问金蝶
                ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl);
                var loginRet = InvokeHelper.Login();
                var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                string HReturn;
                if (isSuccess == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "同步基础资料失败,金蝶账号登录异常。" + loginRet;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //调用单据查询webapi
                string sJson = $"{{\"FormId\":\"BD_MATERIAL\",\"FieldKeys\":\"FMATERIALID,FNumber,FName,FSpecification,FApproveDate,FCreateDate,FDocumentStatus\",\"FilterString\":\"FApproveDate >= '2025-04-01T00:00:00' AND FApproveDate <= '2025-04-30T23:59:59'\",\"Limit\":100,\"StartRow\":0,\"TopRowCount\":0}}";
                var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc", new object[] { "BD_MATERIAL", sJson });
                var _saveObj = JObject.Parse(result);
                //判断数据是否获取成功
                if (_saveObj.SelectToken("Result.ResponseStatus.IsSuccess")?.ToString().ToUpper() != "TRUE")
                {
                    HReturn = result.ToString();
                    //反序列化json数据
                    var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn);
                    //接收金蝶报错信息
                    var strErrorMsg = string.Empty;
                    //遍历获取报错信息
                    foreach (var item in retModel.Result.ResponseStatus.Errors)
                    {
                        strErrorMsg += item.Message + "\r\n";
                    };
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据查询物料信息失败!" + strErrorMsg;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    //主表数据赋值
                    var MainData = new
                    {
                        HInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                        HDate = _saveObj.SelectToken("Result.Result.Date")?.ToString(),
                        HBillNo = _saveObj.SelectToken("Result.Result.BillNo")?.ToString() ?? "",
                        HBillStatus = _saveObj.SelectToken("Result.Result.ApproverId_Id")?.ToString() == "0" ? 1 : 2,
                        HPURCHASERNumber = _saveObj.SelectToken("Result.Result.PurchaserId.Number")?.ToString() ?? "",
                        HMaker = _saveObj.SelectToken("Result.Result.CreatorId.Name")?.ToString() ?? "",
                        HChecker = _saveObj.SelectToken("Result.Result.ApproverId.Name")?.ToString() ?? "",
                        HUpDater = _saveObj.SelectToken("Result.Result.ModifierId.Name")?.ToString() ?? "",
                        HDeleteMan = _saveObj.SelectToken("Result.Result.CancellerId.Name")?.ToString() ?? "",
                        HCloseMan = _saveObj.SelectToken("Result.Result.CloserId.Name")?.ToString() ?? "",
                        HPURCHASERGROUPNumber = _saveObj.SelectToken("Result.Result.PurchaserGroupId.Number")?.ToString() ?? "",
                        HPROVIDERCONTACTNumber = _saveObj.SelectToken("Result.Result.ProviderContactId.CONTACTNUMBER")?.ToString() ?? "",
                        HSETTLEMODEID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleModeId_Id")?.ToString() ?? "0",
                        HSETTLEMODENumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleModeId.Number")?.ToString() ?? "",
                        HSETTLECURRID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleCurrId_Id")?.ToString() ?? "0",
                        HSETTLECURRNumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleCurrId.Number")?.ToString() ?? "",
                        HEXCHANGETYPEID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].ExchangeTypeId_Id")?.ToString() ?? "0",
                        HEXCHANGETYPENumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].ExchangeTypeId.Number")?.ToString() ?? "",
                        HPAYCONDITIONID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].PayConditionId_Id")?.ToString() ?? "0",
                        HPAYCONDITIONNumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].PayConditionId.Number")?.ToString() ?? "",
                        HEXCHANGERATE = _saveObj.SelectToken("Result.Result.POOrderFinance[0].ExchangeRate")?.ToString() ?? "0",
                        HLOCALCURRID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].LocalCurrId_Id")?.ToString() ?? "0",
                        HLOCALCURRNumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].LocalCurrId.Number")?.ToString() ?? "",
                        HISINCLUDEDTAX = _saveObj.SelectToken("Result.Result.POOrderFinance[0].IsIncludedTax")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                        HISPRICEEXCLUDETAX = _saveObj.SelectToken("Result.Result.POOrderFinance[0].FISPRICEEXCLUDETAX")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                    };
                    //根据单据号、单据ID,删除本地数据
                    oCn.RunProc("Delete from Cg_POOrderBillMain where HBillNo='" + MainData.HBillNo + "'", ref DBUtility.ClsPub.sExeReturnInfo);
                    oCn.RunProc("Delete from Cg_POOrderBillMain where HInterID=" + MainData.HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo);
                    oCn.RunProc("Delete from Cg_POOrderBillSub where HInterID=" + MainData.HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo);
                    //子表数据赋值
                    var dataArr = _saveObj.SelectToken("Result.Result.POOrderEntry") as JArray;
                    if (dataArr != null)
                    {
                        foreach (var oSub in dataArr)
                        {
                            var SubData = new
                            {
                                HInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                                HEntryID = oSub.SelectToken("Id")?.ToString() ?? "0",
                                HMaterID = oSub.SelectToken("MaterialId_Id")?.ToString() ?? "0",
                                HUnitID = oSub.SelectToken("UnitId_Id")?.ToString() ?? "0",
                                HQty = oSub.SelectToken("Qty")?.ToString() ?? "0",
                                HPrice = oSub.SelectToken("Price")?.ToString() ?? "0",
                                HTaxPrice = oSub.SelectToken("TaxPrice")?.ToString() ?? "0",
                                HDiscountRate = oSub.SelectToken("DiscountRate")?.ToString() ?? "0",
                                HMoney = oSub.SelectToken("Amount")?.ToString() ?? "0",
                                HTaxRate = oSub.SelectToken("TaxRate")?.ToString() ?? "0",
                                HTaxMoney = oSub.SelectToken("TaxAmount")?.ToString() ?? "0",
                                HDate = oSub.SelectToken("DeliveryDate")?.ToString() ?? "",
                                HRemark = oSub.SelectToken("Note")?.ToString() ?? "",
                                HRelationQty = oSub.SelectToken("JOINQTY")?.ToString() ?? "0",
                                HBackRelationQty = oSub.SelectToken("STOCKRETQTY")?.ToString() ?? "0",
                                HPropertyID = oSub.SelectToken("AuxPropId_Id")?.ToString() ?? "0",
                                HBatChNo = oSub.SelectToken("FLot_Text")?.ToString() ?? "",
                                HAuxPropID = oSub.SelectToken("AuxPropId_Id")?.ToString() ?? "0",
                                HMTONo = oSub.SelectToken("MtoNo")?.ToString() ?? "",
                                HERPInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                                HERPEntryID = oSub.SelectToken("Id")?.ToString() ?? "0",
                                HSEQ = oSub.SelectToken("Seq")?.ToString() ?? "0",
                                HRECEIVEDEPTID = oSub.SelectToken("ReceiveDeptId_Id")?.ToString() ?? "0",
                                HSUPPLIERLOT = oSub.SelectToken("SupplierLot")?.ToString() ?? "",
                                HBOMID = oSub.SelectToken("BomId_Id")?.ToString() ?? "0",
                                HBomNumber = oSub.SelectToken("BomId.Number")?.ToString() ?? "",
                                HSTOCKUNITID = oSub.SelectToken("StockUnitID_Id")?.ToString() ?? "0",
                                HBASEUNITID = oSub.SelectToken("BaseUnitId_Id")?.ToString() ?? "0",
                                HBFLOWID = oSub.SelectToken("FBFLowId_Id")?.ToString() ?? "",
                                HGIVEAWAY = oSub.SelectToken("GiveAway")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                                HROWTYPE = oSub.SelectToken("RowType")?.ToString() ?? "",
                                HBASEUNITQTY = oSub.SelectToken("BaseUnitQty")?.ToString() ?? "0",
                                HSTOCKBASEQTY = oSub.SelectToken("StockBaseQty")?.ToString() ?? "0",
                                HREQTRACENO = oSub.SelectToken("ReqTraceNo")?.ToString() ?? "",
                                HMATERIALDESC = oSub.SelectToken("MaterialDesc[0].Value")?.ToString() ?? "",
                                HRECEIVEORGID = oSub.SelectToken("ReceiveOrgId_Id")?.ToString() ?? "0",
                                HREQUIREORGID = oSub.SelectToken("RequireOrgId_Id")?.ToString() ?? "0",
                                HTAXNETPRICE = oSub.SelectToken("TaxNetPrice")?.ToString() ?? "0",
                                HPRICECOEFFICIENT = oSub.SelectToken("PriceCoefficient")?.ToString() ?? "0",
                                HTAXCOMBINATION = oSub.SelectToken("FTaxCombination_Id")?.ToString() ?? "0",
                                HTAXCOMBINATIONNumber = oSub.SelectToken("FTaxCombination.Number")?.ToString() ?? "",
                                HPRICEUNITID = oSub.SelectToken("PriceUnitId_Id")?.ToString() ?? "0",
                                HPRICELISTENTRY = oSub.SelectToken("PriceListEntry_Id")?.ToString() ?? "0",
                                HPRICELISTENTRYNumber = oSub.SelectToken("PriceListEntry.Number")?.ToString() ?? "",
                                HPAYORGID = oSub.SelectToken("PayOrgId_Id")?.ToString() ?? "0",
                                HSETTLEORGID = oSub.SelectToken("SettleOrgId_Id")?.ToString() ?? "0",
                                HTaxRate_TAX = oSub.SelectToken("POORDERENTRY_TAX[0].TaxRate")?.ToString() ?? "0",
                                HTaxMoney_TAX = oSub.SelectToken("POORDERENTRY_TAX[0].TaxAmount")?.ToString() ?? "0",
                                HTAXRATEID = oSub.SelectToken("POORDERENTRY_TAX[0].TaxRateId_Id")?.ToString() ?? "0",
                                HTAXRATENumber = oSub.SelectToken("POORDERENTRY_TAX[0].TaxRateId.Number")?.ToString() ?? "",
                                HCOSTPERCENT = oSub.SelectToken("POORDERENTRY_TAX[0].CostPercent")?.ToString() ?? "0",
                                HCOSTAMOUNT = oSub.SelectToken("POORDERENTRY_TAX[0].CostAmount")?.ToString() ?? "0",
                                HVAT = oSub.SelectToken("POORDERENTRY_TAX[0].VAT")?.ToString() ?? "",
                                HSELLERWITHHOLDING = oSub.SelectToken("POORDERENTRY_TAX[0].SellerWithholding")?.ToString() ?? "",
                                HBUYERWITHHOLDING = oSub.SelectToken("POORDERENTRY_TAX[0].BuyerWithholding")?.ToString() ?? "",
                            };
                        }
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "成功";
                    objJsonResult.data = WebSoBar;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据查询物料信息发生异常!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #endregion
    }
}