1
ch
2023-02-07 30091220a09acb060269784dbee1a3ab799bc663
WebAPI/Controllers/MJGL/Sc_MouldDotCheckRuleBillController.cs
New file
@@ -0,0 +1,345 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers.MJGL
{
    public class Sc_MouldDotCheckRuleBillController : ApiController
    {
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        #region 器具点检规程单列表
        [Route("Sc_MouldDotCheckRuleBill/Sc_MouldDotCheckRuleList")]
        [HttpGet]
        public object Sc_MouldDotCheckRuleList(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //反序列化传递的值
                //HlpBill com = JsonConvert.DeserializeObject<HlpBill>(sWhere.ToString());
                //编辑权限
                if (!DBUtility.ClsPub.Security_Log("Sc_MouldDotCheckRuleBillList", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string sql = "select * from h_v_Sc_MouldDotCheckRuleBillList where 1 = 1" + sWhere + " order by hmainid desc";
                ds = oCN.RunProcReturn(sql, "h_v_Sc_MouldDotCheckRuleBillList");
                //添加列名
                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.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception ex)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 器具点检规程 保存/编辑
        /// <summary>
        /// 保存模具维修单
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Route("Sc_MouldDotCheckRuleBill/Sc_MouldDotCheckRuleBillEdit")]
        [HttpPost]
        public object Sc_MouldDotCheckRuleBillEdit([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 msg5 = sArray[2].ToString();
            string UserName = "";
            ListModels oListModels = new ListModels();
            try
            {
                //编辑权限
                if (!DBUtility.ClsPub.Security_Log("Sc_MouldDotCheckRuleBill_Edit", 1, false, msg5))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无保存权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                DBUtility.ClsPub.CurUserName = msg5;//获取当前登录人
                DAL.ClsSc_MouldDotCheckRuleBill oBill = new DAL.ClsSc_MouldDotCheckRuleBill();
                List<Model.ClsSc_MouldDotCheckRuleBillMain> lsmain = new List<Model.ClsSc_MouldDotCheckRuleBillMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                //主表
                lsmain = oListModels.getObjectByJson_Sc_MouldDotCheckRuleBillMain(msg2);
                foreach (Model.ClsSc_MouldDotCheckRuleBillMain oItem in lsmain)
                {
                    UserName = oItem.HMaker;  //制单人
                    oItem.HBillType = "3834";
                    oItem.HBillSubType = "3834";
                    oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));//  --日期
                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
                    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<Model.ClsSc_MouldDotCheckRuleBillSub> ls = new List<Model.ClsSc_MouldDotCheckRuleBillSub>();
                ls = oListModels.getObjectByJson_Sc_MouldDotCheckRuleBillSub(msg3);
                int i = 0;
                foreach (Model.ClsSc_MouldDotCheckRuleBillSub item in ls)
                {
                    i++;
                    item.HEntryID = i;
                    item.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                    item.HCloseType = false;   //关闭类型
                    item.HSourceInterID = 0;     // 源单主内码
                    item.HSourceEntryID = 0;   //源单子内码
                    item.HRelationQty = 0;     //关联数量
                    oBill.DetailColl.Add(item);
                }
                ////配件项表体数据
                ////按 },{来拆分数组 //去掉【和】
                //msg4 = msg4.Substring(1, msg4.Length - 2);
                //msg4 = msg4.Replace("\\", "");
                //msg4 = msg4.Replace("\n", "");  //\n
                //                                //msg2 = msg2.Replace("'", "’");
                //List<Model.ClsSc_MouldDotCheckRuleBillSub_Item> ls1 = new List<Model.ClsSc_MouldDotCheckRuleBillSub_Item>();
                //ls1 = oListModels.getObjectByJson_Sc_MouldDotCheckRuleBillSub_Item(msg4);
                //int j = 0;
                //foreach (Model.ClsSc_MouldDotCheckRuleBillSub_Item oItemSub in ls1)
                //{
                //    j++;
                //    oItemSub.HEntryID = j;
                //    //oItemSub.HCloseMan = "";       //行关闭
                //    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                //    oItemSub.HCloseType = false;   //关闭类型
                //    oItemSub.HSourceInterID = 0;     // 源单主内码
                //    oItemSub.HSourceEntryID = 0;   //源单子内码
                //    oItemSub.HRelationQty = 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;
                    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 器具点检规程表编辑时获取表头数据
        [Route("Sc_MouldDotCheckRuleBill/Sc_MouldDotCheckRuleBillListCheckDetai")]
        [HttpGet]
        public ApiResult<DataSet> Sc_MouldDotCheckRuleBillListCheckDetai(string HID)
        {
            if (string.IsNullOrEmpty(HID))
                return new ApiResult<DataSet> { code = -1, msg = "ID不能为空" };
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            var dataSet = oCN.RunProcReturn("select top 1 a.*,mt.HBillNo MouldFileNo from  Sc_MouldDotCheckRuleBillMain a left join Gy_MouldFileMain mt on a.HMouldID = mt.HInterID    where a.HInterID= " + HID + " ", "Sc_MouldDotCheckRuleBillMain");
            if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
                return new ApiResult<DataSet> { code = -1, msg = "不存在器具点检规程记录" };
            return new ApiResult<DataSet> { code = 1, msg = "查询成功", data = dataSet };
        }
        #endregion
        #region 器具点检规程编辑时获取表体数据新(点检项列表、配件项列表)
        [Route("Sc_MouldDotCheckRuleBill/Sc_MouldDotCheckRuleBillSubAndSubItem")]
        [HttpGet]
        public object Sc_MouldDotCheckRuleBillSubAndSubItem(string HInterID)
        {
            DataSet ds, ds1;
            List<object> list = new List<object>();
            string Swhere = "";
            try
            {
                if (HInterID != "" || HInterID != null)
                {
                    Swhere = " and hmainid='" + HInterID + "'";
                }
                else
                {
                    Swhere = HInterID;
                }
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                //获取点检项目编辑数据
                string sql = "select 点检项目ID HDotCheckItemID,点检项目代码 HDotCheckItemNumber,点检项目 HDotCheckItem,点检部位 HDotCheckPart,具体要求 HClaim,负责人ID HManagerID,负责人代码 HManagerNumber,负责人名称 HManagerName,子备注2 HRemark from h_v_Sc_MouldDotCheckRuleBillSub where 1 = 1 " + Swhere + "";
                ds = oCN.RunProcReturn(sql, "h_v_Sc_MouldDotCheckRuleBillSub");
                ////获取配件项目编辑数据
                //string sql1 = "select 配件ID HMaterID,配件代码 HMaterNumber,配件名称 HMaterName,单位ID HUnitID,计量单位代码 HUnitNumber,计量单位名称 HUnitName,用量 HQty,子备注1 HRemark,标准用量 HQtyMust from h_v_Sc_MouldDotCheckRuleBillSub_Item where 1 = 1 " + Swhere + "";
                //ds1 = oCN.RunProcReturn(sql1, "h_v_Sc_MouldDotCheckRuleBillSub_Item");
                list.Add(ds.Tables[0]);
                //list.Add(ds1.Tables[0]);
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "获取信息成功!";
                objJsonResult.list = list;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!" + e.ToString();
                objJsonResult.data = null;
            }
            return objJsonResult;
        }
        #endregion
        #region 器具点检规程记录删除功能
        [Route("Sc_MouldDotCheckRuleBill/DeleteMouldDotCheckRuleBill")]
        [HttpGet]
        public object DeleteMouldDotCheckRuleBill(string HInterID, string user)
        {
            if (!DBUtility.ClsPub.Security_Log("Sc_MouldMaintainRuleBill_Delete", 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;
            }
            DAL.ClsSc_MouldDotCheckRuleBill oBill = new DAL.ClsSc_MouldDotCheckRuleBill();
            if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
            {
                if (oBill.omodel.HBillStatus > 1)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据当前处于不能删除状态!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                bool IsDete = oBill.DeleteBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo);
                if (IsDete)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据未找到";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}