1
wangbin
2024-07-08 4548e24916ac5f63eef736cabdcd634864f8de16
WebAPI/Controllers/MJGL/Sc_MouldProdInBillController.cs
@@ -7,15 +7,30 @@
using System.Net;
using System.Net.Http;
using System.Web.Http;
using ViewAPI;
using WebAPI.Models;
namespace WebAPI.Controllers.MJGL
{
    public class Sc_MouldProdInBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
        private json objJsonResult = new json();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        public const string ModName = "3801";                   //单据类型
        public const string ModCaption = "器具采购入库单";          //单据名称
        public const string ModRightName = "Sc_MouldProdInBill";
        public const string ModRightNameList = ModRightName + "List";       //列表
        public const string ModRightNameEdit = ModRightName + "_Edit";      //编辑
        public const string ModRightNameCheck = ModRightName + "_Check";    //审核
        public const string ModRightNameClose = ModRightName + "_Close";    //关闭
        public const string ModRightNameDelete = ModRightName + "_Delete";  //作废
        public const string ModRightNameDrop = ModRightName + "_Drop";      //删除
        public const string ModRightNameMoney = ModRightName + "_Money";    //金额
        public const string ModRightNameQty = ModRightName + "_Qty";        //数量
        public DataSet ds = new DataSet();
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DAL.ClsSc_MouldProdInBill oBill = new DAL.ClsSc_MouldProdInBill();
        public DLL.ClsSc_MouldProdInBill BillNew0 = new DLL.ClsSc_MouldProdInBill();   //模具报废入库对应单据类
        public DLL.ClsSc_MouldProdInBill BillOld0 = new DLL.ClsSc_MouldProdInBill();   //模具报废入库对应单据类
@@ -27,33 +42,35 @@
        {
            try
            {
                Log.LogInfo("成功!"); //记录提交数据
                //编辑权限
                if (!DBUtility.ClsPub.Security_Log("Sc_MouldProdInBillList", 1, true, user))
                if (!DBUtility.ClsPub.Security_Log_second("Sc_MouldProdInBillList", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                Log.LogInfo("有权限");
                ds = Sc_GetMouldProdInHouseBill(sWhere,Organization);
                if (ds == null)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "查询数据异常,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "返回记录成功!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
                //}
                //else
                //{
                //objJsonResult.code = "0";
                //objJsonResult.count = 0;
                //objJsonResult.Message = "无数据";
                //objJsonResult.data = null;
                //return objJsonResult;
                //}
            }
            catch (Exception ex)
            {
@@ -67,17 +84,18 @@
        public static DataSet Sc_GetMouldProdInHouseBill(string sWhere, string Organization)
        {
            LogService.Write(sWhere+";"+ Organization);
            string sql1 = string.Format(@"select * from h_v_Sc_MouldProdInHouseBillList where 库存组织='" + Organization + "'");
            if (sWhere == null || sWhere.Equals(""))
            {
                return new SQLHelper.ClsCN().RunProcReturn(sql1+ sWhere + "order by 日期 desc", "h_v_Sc_MouldProdInHouseBillList");
                return new SQLHelper.ClsCN().RunProcReturn(sql1+ sWhere + "order by 制单日期 desc", "h_v_Sc_MouldProdInHouseBillList");
            }
            else
            {
                string sql = sql1 + sWhere+ "order by 日期 desc";
                string sql = sql1 + sWhere+ "order by 制单日期 desc";
                Log.LogInfo(sql);
                return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_Sc_MouldProdInHouseBillList");
            }
        }
        #endregion
@@ -92,7 +110,7 @@
        public object set_DeleteBill(string HInterID,string user)
        {
            //编辑权限
            if (!DBUtility.ClsPub.Security_Log("Sc_MouldProdInBill_Delete", 1, true, user))
            if (!DBUtility.ClsPub.Security_Log_second("Sc_MouldProdInBill_Delete", 1, false, user))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
@@ -139,9 +157,22 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //删除前查找当前单据的所有器具ID
                //string swhere = "";
                //DataSet ds = oCn.RunProcReturn("select HMaterID from Sc_MouldStockBillSub where HinterID=" + HInterID, "Sc_MouldStockBillSub");
                //for (var i = 0; i < ds.Tables[0].Rows.Count; i++)
                //{
                //    swhere = swhere + ds.Tables[0].Rows[i]["HMaterID"].ToString() + ",";
                //}
                //swhere = swhere.Substring(0, swhere.Length - 1);
                bool IsDete = oBill.DeleteBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo);
                if (IsDete)
                {
                    //删除成功修改器具档案位置
                    //string sql = string.Format($"exec h_p_Sc_MouldChangeNowWHID  0,0,'{swhere}' ");
                    string sql = string.Format($"exec h_p_Sc_MouldChangeNowWHID ");
                    oCn.RunProc(sql);
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
@@ -161,7 +192,7 @@
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据未找到";
                objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                objJsonResult.data = null;
                return objJsonResult;
            }
@@ -186,7 +217,7 @@
            try
            {
                //审核权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, CurUserName))
                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -293,7 +324,7 @@
            try
            {
                //审核权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, CurUserName))
                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -409,6 +440,8 @@
        public object Sc_MouldScrapInProdBillListProjectDetai(string sqlWhere)
        {
            DataSet ds;
            DataSet ds1;
            List<object> list = new List<object>();
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
@@ -417,13 +450,9 @@
                    ds = oCN.RunProcReturn(string.Format(@"SELECT HMaterID,模具代码 HMaterCode,模具名称 HMaterName,规格型号 HMaterSpec,
                                          批次 HBatchNo,设计寿命 HDesignLife, 剩余寿命 HLeaveLife, 使用寿命 HUseLife,应收数量 HQtyMust,
                                          实收数量 HQty, 单价 HPrice, 金额 HMoney,hwhid1 HWHID, 收料仓库代码 HWHCode,收料仓库 HWHName,
                                          HSPID, 收料仓位代码 HSPCode,收料仓位 HSPName,表体备注 HRemark
                                          HSPID, 收料仓位代码 HSPCode,收料仓位 HSPName,表体备注 HRemark,HStockOrgID,HUnitID,计量单位代码 HUnitCode,计量单位 HUnitName
                                          FROM h_v_Sc_MouldProdInHouseBillList"), "h_v_Sc_MouldProdInHouseBillList");
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "获取信息成功!";
                    objJsonResult.data = ds.Tables[0];
                }
                else
                {
@@ -432,16 +461,23 @@
                    string sql1 = string.Format(@"SELECT HMaterID,模具代码 HMaterCode,模具名称 HMaterName,规格型号 HMaterSpec,
                                          批次 HBatchNo,设计寿命 HDesignLife, 剩余寿命 HLeaveLife, 使用寿命 HUseLife,应收数量 HQtyMust,
                                          实收数量 HQty, 单价 HPrice, 金额 HMoney,hwhid1 HWHID, 收料仓库代码 HWHCode,收料仓库 HWHName,
                                          HSPID, 收料仓位代码 HSPCode,收料仓位 HSPName,表体备注 HRemark
                                          HSPID, 收料仓位代码 HSPCode,收料仓位 HSPName,表体备注 HRemark,HStockOrgID,HUnitID,计量单位代码 HUnitCode,计量单位 HUnitName
                                          FROM h_v_Sc_MouldProdInHouseBillList where 1=1");
                    string sql = sql1 + sqlWhere;
                    ds = oCN.RunProcReturn(sql, "h_v_Sc_MouldProdInHouseBillList");
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "获取信息成功!";
                    objJsonResult.data = ds.Tables[0];
                }
                //查汇总
                ds1 = oCN.RunProcReturn(string.Format(@"select  物料代码,max(物料名称)物料名称,规格型号,max(单据号)单据号,批次,sum(实收数量)实收数量,
                                            hwhid1,max(收料仓库代码)收料仓库代码,max(收料仓库)收料仓库,表体备注 from h_v_Sc_MouldProdInHouseBillList
                                            where 1=1 " + sqlWhere + " group by 物料代码,规格型号,hwhid1,批次,表体备注"), "h_v_Sc_MouldProdInHouseBillList");
                list.Add(ds.Tables[0]);
                list.Add(ds1.Tables[0]);
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "获取信息成功!";
                objJsonResult.list = list;
            }
            catch (Exception e)
            {
@@ -454,7 +490,219 @@
        }
        #endregion
        #region 模具采购入库单保存/编辑
        #region 模具采购入库单保存/编辑    20240702作废
        /// <summary>
        /// 保存模具采购入库单
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        //[Route("Sc_MouldProdInHouseBill/SaveGetMouldProdInHouseBillList")]
        //[HttpPost]
        //public object SaveGetMouldProdInHouseBillList([FromBody] JObject msg)
        //{
        //    var _value = msg["msg"].ToString();
        //    string msg1 = _value.ToString();
        //    string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
        //    string msg2 = sArray[0].ToString();
        //    string msg3 = sArray[1].ToString();
        //    string refSav = sArray[2].ToString();
        //    string msg4 = sArray[3].ToString();
        //    string UserName = "";
        //    string s = "";
        //    long mouldid;
        //    ListModels oListModels = new ListModels();
        //    try
        //    {
        //        //编辑权限
        //        if (!DBUtility.ClsPub.Security_Log_second("Sc_MouldProdInBill_Edit", 1, false, msg4))
        //        {
        //            objJsonResult.code = "0";
        //            objJsonResult.count = 0;
        //            objJsonResult.Message = "无保存权限!";
        //            objJsonResult.data = null;
        //            return objJsonResult;
        //        }
        //        DLL.ClsSc_MouldProdInBill oBill = new DLL.ClsSc_MouldProdInBill();
        //        List<Models.ClsSc_MouldProdBillMain> lsmain = new List<Models.ClsSc_MouldProdBillMain>();
        //        msg2 = msg2.Replace("\\", "");
        //        msg2 = msg2.Replace("\n", "");  //\n
        //        lsmain = oListModels.getObjectByJson_Gy_MouldProdInHouseBillMain(msg2);
        //        foreach (Models.ClsSc_MouldProdBillMain oItem in lsmain)
        //        {
        //            if (refSav == "Add")
        //            {
        //                //单据号是否重复
        //                if (BillNew0.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld0.omodel.HInterID))
        //                {
        //                    objJsonResult.code = "0";
        //                    objJsonResult.count = 0;
        //                    objJsonResult.Message = "单据号重复!不允许保存!";
        //                    objJsonResult.data = 1;
        //                    return objJsonResult;
        //                }
        //            }
        //            if (refSav == "Update")
        //            {
        //                if (BillOld0.ShowBill(oItem.HInterID, ref s) == false)
        //                {
        //                    objJsonResult.code = "0";
        //                    objJsonResult.count = 0;
        //                    objJsonResult.Message = "此单据有误!";
        //                    objJsonResult.data = 1;
        //                    return objJsonResult;
        //                }
        //                //判断是否可编辑
        //                if (BillOld0.omodel.HChecker != "" && BillOld0.omodel.HChecker != null)
        //                {
        //                    objJsonResult.code = "0";
        //                    objJsonResult.count = 0;
        //                    objJsonResult.Message = "此单据已经被审核,不允许修改!";
        //                    objJsonResult.data = 1;
        //                    return objJsonResult;
        //                }
        //                if (BillOld0.omodel.HBillStatus > 1)
        //                {
        //                    objJsonResult.code = "0";
        //                    objJsonResult.count = 0;
        //                    objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!";
        //                    objJsonResult.data = 1;
        //                    return objJsonResult;
        //                }
        //                if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld0, ref s))
        //                {
        //                    objJsonResult.code = "0";
        //                    objJsonResult.count = 0;
        //                    objJsonResult.Message = s + ",不允许修改";
        //                    objJsonResult.data = 1;
        //                    return objJsonResult;
        //                }
        //            }
        //            //oItem.HMaker = "";
        //            UserName = oItem.HMaker;  //制单人
        //            oItem.HBillType = "3801";
        //            oItem.HBillSubType = "3801";
        //            //oItem.HBillNo = "";    //单据号
        //            //oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));//  --日期
        //            //oItem.HInnerBillNo = "";  //  --内部单据号
        //            oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
        //            oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
        //            oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
        //            //oItem.HEquipID = 0;    //设备ID(Gy_EquipMent)
        //            //oItem.HPeriod = 0;
        //            //oItem.HCheckBeginDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));  //  --维修日期
        //            //oItem.HCheckResult = "";     //验收结论--(正常,异常)
        //            //oItem.HEmpID = 0;           //验收人(Gy_Employee)
        //            //oItem.HManagerID = 0;      //负责人(Gy_Employee)
        //            //oItem.HDeptID = 0;        //验收部门(Gy_Department)
        //            //oItem.HExplanation = "";  //摘要(故障描述)
        //            //oItem.HRemark = "";       //备注
        //            //oItem.HMainSourceInterID = oItem.HInterID;
        //            //oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
        //            if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
        //            {
        //                objJsonResult.code = "0";
        //                objJsonResult.count = 0;
        //                objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
        //                objJsonResult.data = 1;
        //                return objJsonResult;
        //            }
        //            oBill.omodel = oItem;
        //        }
        //        //表体数据
        //        //按 },{来拆分数组 //去掉【和】
        //        msg3 = msg3.Substring(1, msg3.Length - 2);
        //        msg3 = msg3.Replace("\\", "");
        //        msg3 = msg3.Replace("\n", "");  //\n
        //        //msg2 = msg2.Replace("'", "’");
        //        List<Models.ClsSc_MouldProdBillSub> ls = new List<Models.ClsSc_MouldProdBillSub>();
        //        ls = oListModels.getObjectByJson_Gy_MouldProdInHouseBillSub(msg3);
        //        int i = 0;
        //        foreach (Models.ClsSc_MouldProdBillSub oItemSub in ls)
        //        {
        //            i++;
        //            oItemSub.HEntryID = i;
        //            mouldid = oItemSub.HMaterID;
        //            //oItemSub.HRepairCheckID = 0;   //验收项目ID
        //            //oItemSub.HRepairCheckContent = ""; //验收内容
        //            //oItemSub.HManagerID = 0;   //负责人ID
        //            //oItemSub.HCloseMan = "";       //行关闭
        //            oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
        //            oItemSub.HCloseType = false;   //关闭类型
        //            //oItemSub.HRemark = "";         //备注
        //            oItemSub.HSourceInterID = 0;     // 源单主内码
        //            oItemSub.HSourceEntryID = 0;   //源单子内码
        //            //oItemSub.HSourceBillNo = "";  //源单单号
        //            //oItemSub.HSourceBillType = ""; //源单类型
        //            //oItemSub.HRelationQty = 0;     //关联数量
        //            //oItemSub.HRelationMoney = 0;   //关联金额
        //            //oItemSub.HRepairID = 0;       //维修项目
        //            //oItemSub.HRepairExplanation ="";   //维修要求
        //            //oItemSub.HMoney = 0;        //维修费用
        //            oBill.DetailColl.Add(oItemSub);
        //        }
        //        //保存
        //        //保存完毕后处理
        //        bool bResult;
        //        if (oBill.omodel.HInterID == 0)
        //        {
        //            // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
        //            bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
        //            //修改器具档案位置
        //            string sql = string.Format($"exec h_p_Sc_MouldChangeFileStatus  'in','{oBill.omodel.HInterID.ToString()}' ");
        //            DataSet db = oCn.RunProcReturn(sql, "h_p_Sc_MouldChangeFileStatus");
        //            if (db.Tables[0].Rows[0]["issuccess"].ToString() == "0")
        //            {
        //                objJsonResult.code = "0";
        //                objJsonResult.count = 0;
        //                objJsonResult.Message = "器具位置同步失败!";
        //                objJsonResult.data = 1;
        //                return objJsonResult;
        //            }
        //        }
        //        else
        //        {
        //            bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
        //            //修改成功
        //            //string sql = string.Format($"exec h_p_Sc_MouldChangeNowWHID  1,{oBill.omodel.HInterID.ToString()},' ' ");
        //            string sql = string.Format($"exec h_p_Sc_MouldChangeNowWHID ");
        //            oCn.RunProc(sql);
        //        }
        //        if (bResult)
        //        {
        //            objJsonResult.code = "0";
        //            objJsonResult.count = 1;
        //            objJsonResult.Message = "保存成功!";
        //            //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
        //            objJsonResult.data = 1;
        //            return objJsonResult;
        //        }
        //        else
        //        {
        //            objJsonResult.code = "0";
        //            objJsonResult.count = 0;
        //            objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
        //            objJsonResult.data = 1;
        //            return objJsonResult;
        //        }
        //    }
        //    catch (Exception e)
        //    {
        //        objJsonResult.code = "0";
        //        objJsonResult.count = 0;
        //        objJsonResult.Message = "保存失败!" + e.ToString();
        //        objJsonResult.data = 1;
        //        return objJsonResult;
        //    }
        //}
        #endregion
        #region 模具采购入库单保存/编辑    20240702
        /// <summary>
        /// 保存模具采购入库单
        /// </summary>
@@ -467,167 +715,140 @@
            var _value = msg["msg"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            string refSav = sArray[2].ToString();
            string msg4 = sArray[3].ToString();
            string UserName = "";
            string s = "";
            ListModels oListModels = new ListModels();
            string sMainStr = sArray[0].ToString();         //主表数据
            string sSubStr = sArray[1].ToString();          //子表数据
            string OperationType = sArray[2].ToString();    //操作类型(Add新增、Update编辑)
            string HMaker = sArray[3].ToString();           //制单人
            try
            {
                //编辑权限
                if (!DBUtility.ClsPub.Security_Log("Sc_MouldProdInBill_Edit", 1, true, msg4))
                //判断权限
                if (OperationType == "Add")
                {
                    BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew;
                    //判断新增权限
                    if (!DBUtility.ClsPub.Security_Log(ModRightName, 1, false, HMaker))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "您没有该模块新增权限,请与管理员联系!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_Modify;
                    //判断编辑权限
                    if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 1, false, HMaker))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "您没有该模块编辑权限,请与管理员联系!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                //表头赋值
                sMainStr = sMainStr.Replace("\\", "");
                sMainStr = sMainStr.Replace("\n", "");
                sMainStr = "[" + sMainStr.ToString() + "]";
                List<Model.ClsSc_MouldProdInBillMain> lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_MouldProdInBillMain>>(sMainStr);
                foreach (Model.ClsSc_MouldProdInBillMain oItem in lsmain)
                {
                    //单据号是否重复
                    if (oBill.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, oItem.HInterID))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据号重复!不允许保存!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //判断会计期是否合理
                    string s = "";
                    int sYear = 0;
                    int sPeriod = 0;
                    if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oItem.HDate, ref sYear, ref sPeriod, ref s) == false)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = s;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    oItem.HYear = sYear;
                    oItem.HPeriod = sPeriod;
                    DBUtility.ClsPub.CurUserName = oItem.HMaker;
                    oBill.omodel = oItem;
                }
                //表体赋值
                //按 },{来拆分数组 //去掉【和】
                sSubStr = sSubStr.Substring(1, sSubStr.Length - 2);
                sSubStr = sSubStr.Replace("\\", "");
                sSubStr = sSubStr.Replace("\n", "");
                sSubStr = "[" + sSubStr.ToString() + "]";
                List<Model.ClsSc_MouldStockBillSub> ls = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_MouldStockBillSub>>(sSubStr);
                int i = 0;
                foreach (Model.ClsSc_MouldStockBillSub oItemSub in ls)
                {
                    i++;
                    oItemSub.HEntryID = i;
                    oBill.DetailColl.Add(oItemSub);
                }
                string sErrMsg = "";
                bool bResult;
                //获取系统参数
                if (oSystemParameter.ShowBill(ref sErrMsg) == true)
                {
                    //保存
                    if (OperationType == "Add")   //新增保存
                    {
                        bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                        if (oSystemParameter.omodel.WMS_CampanyName == "四维尔") //系统参数  客户定制化名称     空白为通用
                        {
                            //修改器具档案位置
                            string sql = string.Format($"exec h_p_Sc_MouldChangeFileStatus  'in','{oBill.omodel.HInterID.ToString()}' ");
                            DataSet db = oCn.RunProcReturn(sql, "h_p_Sc_MouldChangeFileStatus");
                            if (db.Tables[0].Rows[0]["issuccess"].ToString() == "0")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "器具位置同步失败!";
                                objJsonResult.data = 1;
                                return objJsonResult;
                            }
                        }
                    }
                    else                        //编辑保存
                    {
                        bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                        if (oSystemParameter.omodel.WMS_CampanyName == "四维尔") //系统参数  客户定制化名称     空白为通用
                        {
                            //修改器具档案位置
                            string sql = string.Format($"exec h_p_Sc_MouldChangeNowWHID ");
                            oCn.RunProc(sql);
                        }
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.Message = "获取系统参数失败! " + sErrMsg;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                DLL.ClsSc_MouldProdInBill oBill = new DLL.ClsSc_MouldProdInBill();
                List<Models.ClsSc_MouldProdBillMain> lsmain = new List<Models.ClsSc_MouldProdBillMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain = oListModels.getObjectByJson_Gy_MouldProdInHouseBillMain(msg2);
                foreach (Models.ClsSc_MouldProdBillMain oItem in lsmain)
                {
                    if (refSav == "Add")
                    {
                        //单据号是否重复
                        if (BillNew0.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld0.omodel.HInterID))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据号重复!不允许保存!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                    }
                    if (refSav == "Update")
                    {
                        if (BillOld0.ShowBill(oItem.HInterID, ref s) == false)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据有误!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        //判断是否可编辑
                        if (BillOld0.omodel.HChecker != "" && BillOld0.omodel.HChecker != null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据已经被审核,不允许修改!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        if (BillOld0.omodel.HBillStatus > 1)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld0, ref s))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = s + ",不允许修改";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                    }
                    //oItem.HMaker = "";
                    UserName = oItem.HMaker;  //制单人
                    oItem.HBillType = "3801";
                    oItem.HBillSubType = "3801";
                    //oItem.HBillNo = "";    //单据号
                    //oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));//  --日期
                    //oItem.HInnerBillNo = "";  //  --内部单据号
                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
                    oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
                    //oItem.HEquipID = 0;    //设备ID(Gy_EquipMent)
                    //oItem.HPeriod = 0;
                    //oItem.HCheckBeginDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));  //  --维修日期
                    //oItem.HCheckResult = "";     //验收结论--(正常,异常)
                    //oItem.HEmpID = 0;           //验收人(Gy_Employee)
                    //oItem.HManagerID = 0;      //负责人(Gy_Employee)
                    //oItem.HDeptID = 0;        //验收部门(Gy_Department)
                    //oItem.HExplanation = "";  //摘要(故障描述)
                    //oItem.HRemark = "";       //备注
                    //oItem.HMainSourceInterID = oItem.HInterID;
                    //oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    oBill.omodel = oItem;
                }
                //表体数据
                //按 },{来拆分数组 //去掉【和】
                msg3 = msg3.Substring(1, msg3.Length - 2);
                msg3 = msg3.Replace("\\", "");
                msg3 = msg3.Replace("\n", "");  //\n
                //msg2 = msg2.Replace("'", "’");
                List<Models.ClsSc_MouldProdBillSub> ls = new List<Models.ClsSc_MouldProdBillSub>();
                ls = oListModels.getObjectByJson_Gy_MouldProdInHouseBillSub(msg3);
                int i = 0;
                foreach (Models.ClsSc_MouldProdBillSub oItemSub in ls)
                {
                    i++;
                    oItemSub.HEntryID = i;
                    //oItemSub.HRepairCheckID = 0;   //验收项目ID
                    //oItemSub.HRepairCheckContent = ""; //验收内容
                    //oItemSub.HManagerID = 0;   //负责人ID
                    //oItemSub.HCloseMan = "";       //行关闭
                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                    oItemSub.HCloseType = false;   //关闭类型
                    //oItemSub.HRemark = "";         //备注
                    oItemSub.HSourceInterID = 0;     // 源单主内码
                    oItemSub.HSourceEntryID = 0;   //源单子内码
                    //oItemSub.HSourceBillNo = "";  //源单单号
                    //oItemSub.HSourceBillType = ""; //源单类型
                    //oItemSub.HRelationQty = 0;     //关联数量
                    //oItemSub.HRelationMoney = 0;   //关联金额
                    //oItemSub.HRepairID = 0;       //维修项目
                    //oItemSub.HRepairExplanation ="";   //维修要求
                    //oItemSub.HMoney = 0;        //维修费用
                    oBill.DetailColl.Add(oItemSub);
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (oBill.omodel.HInterID == 0)
                {
                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
                    objJsonResult.data = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;  //成功!
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
@@ -635,7 +856,7 @@
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = 1;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
@@ -643,11 +864,98 @@
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                objJsonResult.Message = "保存失败!" + e.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 器具采购入库单审核/反审核
        [Route("Sc_MouldProdInHouseBill/AuditMouldProdInHouseBills")]
        [HttpGet]
        public object AuditMouldProdInHouseBills(string HInterID, string user, int flag)
        {
            //flag=1 审核;  flag=2 反审核
            //编辑权限
            if (!DBUtility.ClsPub.Security_Log_second("Sc_MouldProdInBill_Check", 1, false, user))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "无审核权限!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            Int64 lngBillKey = 0;
            lngBillKey = DBUtility.ClsPub.isLong(HInterID);
            if (lngBillKey == 0)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据ID为空!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            DLL.ClsSc_MouldProdOutBill oBill = new DLL.ClsSc_MouldProdOutBill();
            if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
            {
                if (flag == 1)
                {
                    if (oBill.omodel.HBillStatus == 2)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "当前单据已审核,无需再次审核";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    else
                    {
                        string HCheckDate = DateTime.Now.Date.ToString();
                        oCn.RunProc(" Update Sc_MouldStockBillMain set HChecker='" + user + "',HCheckDate='" + HCheckDate + "',HBillStatus=2 Where HBillType='3801' and HInterID=" + HInterID);
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "审核成功!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                }
                else
                {
                    if (oBill.omodel.HBillStatus == 1)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "当前单据未审核,无需反审核";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    else
                    {
                        string HCheckDate = DateTime.Now.Date.ToString();
                        oCn.RunProc(" Update Sc_MouldStockBillMain set HChecker=' ',HCheckDate=' ',HBillStatus=1 Where HBillType='3801' and HInterID=" + HInterID);
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反审核成功!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据未找到";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}