1
yangle
2025-02-28 b047a149650c16a6b0c0e412c0dfa08a064ff0f5
WebAPI/Controllers/SCGL/Sc_ICBomBillController.cs
@@ -1,4 +1,6 @@
using System;
using DAL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
@@ -41,12 +43,12 @@
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_Gy_ICBomBillList order by hmainid desc ", "h_v_Gy_ICBomBillList");
                    ds = oCN.RunProcReturn("select * from h_v_Gy_ICBomBillList order by 日期 desc,hmainid desc ", "h_v_Gy_ICBomBillList");
                }
                else
                {
                    string sql1 = "select * from h_v_Gy_ICBomBillList where 1 = 1 ";
                    string sql = sql1 + sWhere+ " order by hmainid desc ";
                    string sql = sql1 + sWhere+ " order by 日期 desc,hmainid desc ";
                    ds = oCN.RunProcReturn(sql, "h_v_Gy_ICBomBillList");
                }
@@ -78,5 +80,324 @@
            }
        }
        #endregion
        #region 生产物料清单  编辑查询
        /// <summary>
        /// 生产BOM/生产物料清单
        /// </summary>
        /// <param name="sWhere"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        [Route("Sc_ICBomBill/Editlist")]
        [HttpGet]
        public object Editlist(string sWhere)
        {
            try
            {
                ds = oCN.RunProcReturn("select * from h_v_Gy_ICBomBillEditList where 1=1 "+ sWhere + " order by hmainid desc ", "h_v_Gy_ICBomBillEditList");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 生产物料清单  新增
        /// <summary>
        /// 生产BOM/生产物料清单
        /// </summary>
        /// <param name="sWhere"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        [Route("sc_Gy_ICBomBill/sc_Gy_ICBomBillAdd")]
        [HttpPost]
        public object sc_Gy_ICBomBillAdd([FromBody] JObject sMainSub)
        {
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            try
            {
                string msg2 = sArray[0].ToString(); //主表数据
                string msg3 = sArray[1].ToString(); //子表数据
                int OperationType = int.Parse(sArray[2].ToString()); // 数据类型 1添加 3修改
                string user = sArray[3].ToString();
                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Gy_ICBomBill_Edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限查询!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsGy_ICBomBill oBill = new ClsGy_ICBomBill();
                msg2 = "[" + msg2 + "]";
                List<Model.ClsGy_ICBomBillMain> lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_ICBomBillMain>>(msg2);
                foreach (Model.ClsGy_ICBomBillMain oItem in lsmain)
                {
                    //oItem.HMaker = "";
                    oItem.HMaker = user;  //制单人
                    oItem.HBillType = "3302";
                    oItem.HBillSubType = "3302";
                    oItem.HBillStatus = 1;
                    oItem.HUpDater = user;
                    oItem.HUpDateDate = DateTime.Now.ToString();
                    DBUtility.ClsPub.CurUserName = user;
                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    oBill.omodel = oItem;
                }
                List<Model.ClsGy_ICBomBillSub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_ICBomBillSub>>(msg3);
                int i = 0;
                foreach (Model.ClsGy_ICBomBillSub oItemSub in DetailColl)
                {
                    i++;
                    oItemSub.HEntryID = i;
                    oItemSub.HRemark2 = "";
                    oItemSub.HRemark3 = "";
                    oItemSub.HRemark4 = "";
                    oItemSub.HChildType = "";
                    oItemSub.HCloseMan = "";
                    oItemSub.HSourceBillNo = "";
                    oItemSub.HSourceBillType = "";
                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                    oItemSub.HCloseType = false;   //关闭类型
                    oBill.DetailColl.Add(oItemSub);
                }
                bool bResult;
                if (OperationType == 1)
                {
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if (OperationType == 3)
                {
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "操作类型无效!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    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 = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 生产物料清单 删除
        [Route("sc_Gy_ICBomBill/DeltetICBomBill")]
        [HttpGet]
        public object DeltetICBomBill(string HInterID,string user)
        {
            try
            {
                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Gy_ICBomBill_Delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                oCN.RunProc("Delete From Gy_ICBomBillMain where HInterID = " + HInterID);
                oCN.RunProc("Delete From Gy_ICBomBillSub where HInterID = " + HInterID);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "删除成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 生产物料清单 审核及反审核
        [Route("sc_Gy_ICBomBill/AuditBomBill")]
        [HttpGet]
        public object AuditBomBill(int HInterID, int IsAudit, string CurUserName)
        {
            try
            {
                //IsAudit=1 审核;  IsAudit=2 反审核
                //编辑权限
                if (!DBUtility.ClsPub.Security_Log_second("Gy_ICBomBill_Check", 1, false, CurUserName))
                {
                    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;
                }
               ClsGy_ICBomBill oBill = new ClsGy_ICBomBill();
                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
                {
                    if (oBill.omodel.HCloseMan != "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已关闭,不能进行审核";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (oBill.omodel.HDeleteMan != "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已作废,不能进行审核";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (IsAudit == 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.BeginTran();
                            oCN.RunProc(" Update Gy_ICBomBillMain set HChecker='" + CurUserName + "',HCheckDate='" + HCheckDate + "',HBillStatus=2 Where   HInterID=" + HInterID);
                            oCN.Commit();
                            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.BeginTran();
                            oCN.RunProc(" Update Gy_ICBomBillMain set HChecker=' ',HCheckDate=null,HBillStatus=1 Where  HInterID=" + HInterID);
                            oCN.Commit();
                            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;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "审核失败或反审核失败" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}