ch
2021-07-30 f38f94f9a14619d6877eb101058d1405d27b3bd0
WebAPI/Controllers/Æ·ÖʹÜÀí/¹¤Ðò¼ìÑéµ¥/QC_ProcessCheckBillController.cs
New file
@@ -0,0 +1,454 @@
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers
{
    //工序检验单Controller
    //数据库主表QC_ProcessCheckBillMain
    //数据库子表QC_ProcessCheckBillSub
    public class QC_ProcessCheckBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        #region å·¥åºæ£€éªŒå•保存
        /// <summary>
        /// æ–°å¢žå•据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("QC_ProcessCheckBill/set_SaveBill")]
        [HttpPost]
        public object set_SaveBill([FromBody] JObject sMainSub)
        {
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            //保存单据
            return objJsonResult = AddBillMain(msg1);
        }
        public json AddBillMain(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            string OperationType = sArray[2].ToString().Trim();
            bool bResult;
            try
            {
                msg2 = "[" + msg2.ToString() + "]";
                List<Model.ClsQC_ProcessCheckBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_ProcessCheckBillMain>>(msg2);
                DAL.ClsQC_ProcessCheckBill BillNew = new DAL.ClsQC_ProcessCheckBill();
                //判断会计期是否合理
                string s = "";
                int sYear = 0;
                int sPeriod = 0;
                DateTime HDate = mainList[0].HDate;//日期
                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = s;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                BillNew.omodel.HYear = sYear;
                BillNew.omodel.HPeriod = sPeriod;
                //固定赋值=================================
                BillNew.omodel.HInterID = mainList[0].HInterID;//递入type得到的单据ID
                BillNew.omodel.HBillNo = mainList[0].HBillNo;//递入type得到的单据号
                BillNew.omodel.HDate = HDate;
                BillNew.omodel.HRemark = mainList[0].HRemark;//备注
                BillNew.omodel.HMaker = mainList[0].HMaker;
                BillNew.omodel.HSourceID = ClsPub.isLong(mainList[0].HSourceID);
                BillNew.omodel.HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID);
                BillNew.omodel.HICMOBillNo = ClsPub.isStrNull(mainList[0].HICMOBillNo);
                BillNew.omodel.HICMOInterID = ClsPub.isLong(mainList[0].HICMOInterID);
                BillNew.omodel.HProcExchInterID = ClsPub.isLong(mainList[0].HProcExchInterID);
                BillNew.omodel.HProcExchEntryID = ClsPub.isLong(mainList[0].HProcExchEntryID);
                BillNew.omodel.HProcExchBillNo = ClsPub.isStrNull(mainList[0].HProcExchBillNo);
                BillNew.omodel.HMaterID = ClsPub.isLong(mainList[0].HMaterID);
                BillNew.omodel.HFirstCheckEmp = ClsPub.isLong(mainList[0].HFirstCheckEmp);
                BillNew.omodel.HCheckerResult = ClsPub.isStrNull(mainList[0].HCheckerResult);
                BillNew.omodel.HMainSourceInterID = ClsPub.isLong(mainList[0].HMainSourceInterID);
                BillNew.omodel.HMainSourceEntryID = ClsPub.isLong(mainList[0].HMainSourceEntryID);
                BillNew.omodel.HMainSourceBillNo = ClsPub.isStrNull(mainList[0].HMainSourceBillNo);
                BillNew.omodel.HMainSourceBillType = ClsPub.isStrNull(mainList[0].HMainSourceBillType);
                BillNew.omodel.HBillStatus = 1;
                BillNew.omodel.HProcID = ClsPub.isLong(mainList[0].HProcID);
                List<Model.ClsQC_ProcessCheckBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_ProcessCheckBillSub>>(msg3);
                BillNew.DetailColl = new List<Model.ClsQC_ProcessCheckBillSub>();
                for (int i = 0; i < subList.ToArray().Length; i++)
                {
                    if (i >= 0)//HQty
                    {
                        Model.ClsQC_ProcessCheckBillSub oSub = new Model.ClsQC_ProcessCheckBillSub();
                        oSub.HEntryID = i+1;
                        oSub.HRemark = ClsPub.isStrNull(subList[i].HRemark);
                        oSub.HSourceInterID = ClsPub.isLong(subList[i].HSourceInterID);
                        oSub.HSourceEntryID = ClsPub.isLong(subList[i].HSourceEntryID);
                        oSub.HSourceBillType = ClsPub.isStrNull(subList[i].HSourceBillType);
                        oSub.HSourceBillNo = ClsPub.isStrNull(subList[i].HSourceBillNo);
                        oSub.HRelationQty = DBUtility.ClsPub.isDoule(subList[i].HRelationQty);
                        oSub.HRelationMoney = DBUtility.ClsPub.isDoule(subList[i].HRelationMoney);
                        oSub.HCloseMan = DBUtility.ClsPub.isStrNull(subList[i].HCloseMan);
                        oSub.HCloseType = DBUtility.ClsPub.isBool(subList[i].HCloseType);
                        oSub.HQCCheckItemID = DBUtility.ClsPub.isLong(subList[i].HQCCheckItemID);
                        oSub.HQCStd = DBUtility.ClsPub.isStrNull(subList[i].HQCStd);
                        oSub.HResult = DBUtility.ClsPub.isStrNull(subList[i].HResult);
                        oSub.HQCRelValue = DBUtility.ClsPub.isStrNull(subList[i].HQCRelValue);
                        oSub.HProcCheckTime = HDate;
                        oSub.HBillNo_bak = DBUtility.ClsPub.isStrNull(mainList[0].HBillNo);
                        oSub.HProcCheckEmp = ClsPub.isLong(mainList[0].HFirstCheckEmp);
                        BillNew.DetailColl.Add(oSub);
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无明细行信息!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                //保存完毕后处理
                if (OperationType.Equals("1") || OperationType.Equals("2"))
                {
                    bResult = BillNew.AddBill(ref ClsPub.sExeReturnInfo);
                }
                else
                {
                    bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo);
                }
                //提示
                if (bResult == true)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    //objJsonResult.Message = "单据存盘完毕!单据号:" + mainList[0].HBillNo.Trim();
                    objJsonResult.Message = ClsPub.sExeReturnInfo+"单据号:" + mainList[0].HBillNo.Trim();
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!原因:" + ClsPub.sExeReturnInfo;
                    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
        #region å·¥åºæ£€éªŒå•根据源单类型获取信息-源单为生产状态临时表(3722)
        /// <summary>
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("QC_ProcessCheckBill/get_ICMOBillStatus_Tmp")]
        [HttpGet]
        public object get_ICMOBillStatus_Tmp(int HInterID, int HEntryID, string HBillType)
        {
            try
            {
                if (HInterID == 0 || HBillType.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "参数不全,获取源单信息失败!HInterID:" + HInterID + ";HEntryID:" + HEntryID + ";HBillType:" + HBillType + ";";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    ds = oCN.RunProcReturn("exec h_p_QC_GetInfoByICMOStatusBill " + HInterID + "," + HEntryID + "," + HBillType, "h_p_QC_GetInfoByICMOStatusBill");
                }
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    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;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "查询数据异常,请与管理员联系!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥åºæ£€éªŒå•Old
        /// <summary>
        /// å·¥åºæ£€éªŒå•列表修改按钮方法
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("QC_ProcessCheckBill/xg")]
        [HttpGet]
        public object xg(long HInterID)
        {
            try
            {
                ds = oCN.RunProcReturn("select HInterID,HBillNo,HProcExchInterID,HProcExchEntryID,HProcExchBillNo" +
                    ",HMaterID,HProcID,HSourceID,HEmpID,HInStockQty" +
                    ",HCheckQty,HRightQty,HBadQty,HFirstCheckEmp,HCheckerResult" +
                    ",HBarCode,HLBatchNo,HCusID,HSortBillNo,HContrctBatchNo" +
                    ",HProdAreaID,HProdTypeID,HProdStoveNo,HRecipeID,HDiameter1" +
                    ",HDiameter2,HRoutingInterID,HDrawingDireID,HPackTypeID from QC_ProcessCheckBillMain where HInterID=" + HInterID, "QC_ProcessCheckBillMain");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "";
                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;
            }
        }
        /// <summary>
        /// ä¿®æ”¹å•据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("QC_ProcessCheckBill/AddBill1")]
        [HttpPost]
        public object AddBill1([FromBody] JObject oMain)
        {
            var _value = oMain["oMain"].ToString();
            string msg1 = _value.ToString();
            try
            {
                DAL.ClsQC_ProcessCheckBill oProcess = new DAL.ClsQC_ProcessCheckBill();
                msg1 = "[" + msg1.ToString() + "]";
                List<QC_ProcessCheckBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<QC_ProcessCheckBillMain>>(msg1);
                string BillType = "7507";
                long HInterID = mainList[0].HInterID;//递入type得到的单据ID
                string HBillNo = mainList[0].HBillNo;//递入type得到的单据号
                DateTime HDate = mainList[0].HDate;//日期
                int HYear = 2021;
                double HPeriod = 1;
                long HBillStatus = mainList[0].HBillStatus;
                long HCheckItemNowID = mainList[0].HCheckItemNowID;
                long HCkeckItemNextID = mainList[0].HCheckItemNextID;
                long HCheckFlowID = mainList[0].HCheckFlowID;
                string HRemark = mainList[0].HRemark;//备注
                string HBacker = mainList[0].HBacker;
                DateTime HBackDate = mainList[0].HBackDate;
                string HBackRemark = mainList[0].HBackRemark;
                string HChecker = mainList[0].HChecker;
                DateTime HCheckDate = mainList[0].HCheckDate;
                string HMaker = mainList[0].HMaker;
                DateTime HMakeDate = mainList[0].HMakeDate;
                string HUpDater = mainList[0].HUpDater;
                DateTime HUpDateDate = mainList[0].HUpDateDate;
                string HCloseMan = mainList[0].HCloseMan;
                DateTime HCloseDate = mainList[0].HCloseDate;
                string HCloseType = mainList[0].HCloseType;
                string HDeleteMan = mainList[0].HDeleteMan;
                DateTime HDeleteDate = mainList[0].HDeleteDate;
                string HMainSourceBillType = mainList[0].HMainSourceBillType;
                long HMainSourceInterID = mainList[0].HMainSourceInterID;
                long HMainSourceEntryID = mainList[0].HMainSourceEntryID;
                string HMainSourceBillNo = mainList[0].HMainSourceBillNo;
                double HPrintQty = mainList[0].HPrintQty;
                long HICMOInterID = mainList[0].HICMOInterID;
                string HICMOBillNo = mainList[0].HICMOBillNo;
                long HProExchInterID = mainList[0].HProcExchInterID;
                long HProExchEntryID = mainList[0].HProcExchEntryID;
                string HProExchBillNo = mainList[0].HProcExchBillNo;
                long HMaterID = mainList[0].HMaterID;
                long HProcID = mainList[0].HProcID;
                long HSourceID = mainList[0].HSourceID;
                long HEmpID = mainList[0].HEmpID;
                double HInStockQty = mainList[0].HInStockQty;
                double HCheckQty = mainList[0].HCheckQty;
                double HRightQty = mainList[0].HRightQty;
                double HBadQty = mainList[0].HBadQty;
                long HFirstCheckEmp = mainList[0].HFirstCheckEmp;
                string HCheckerResult = mainList[0].HCheckerResult;
                string HBarcode = mainList[0].HBarcode;
                string HLBatchNo = mainList[0].HLBatchNo;
                long HCusID = mainList[0].HCusID;
                string HSortBillNo = mainList[0].HSortBillNo;
                string HConTrctBatchNo = mainList[0].HContrctBatchNo;
                long HProdAreaID = mainList[0].HProdAreaID;
                long HProdTypeID = mainList[0].HProdTypeID;
                string HProdStoveNo = mainList[0].HProdStoveNo;
                long HRecipeID = mainList[0].HRecipeID;
                double HDiameter1 = mainList[0].HDiameter1;
                double HDiameter2 = mainList[0].HDiameter2;
                long HRoutingInterID = mainList[0].HRoutingInterID;
                long HPackTypeID = mainList[0].HPackTypeID;
                long HDrawingDireID = mainList[0].HDrawingDireID;
                //若MAINDI重复则重新获取
                oCN.BeginTran();
                //主表
                oCN.RunProc("Update QC_ProcessCheckBillMain set " +
                    "HMaterID=" + HMaterID +
                    ",HSourceID=" + HSourceID +
                    ",HEmpID=" + HEmpID +
                    ",HInStockQty=" + HInStockQty +
                    ",HCheckQty=" + HCheckQty +
                    ",HRightQty=" + HRightQty +
                    ",HBadQty=" + HBadQty +
                    ",HCusID=" + HCusID +
                    ",HRemark= '" + HRemark + "' Where HInterID=" + HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                //修改子项目代码
                //oCN.RunProc("exec h_p_Gy_UpdateNumber Gy_Department,'" + HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);
                //将上级 ä¸ºéžæœ«çº§
                //oCN.RunProc("Update Gy_Department set HEndflag=0 where HItemID=" + HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                //
                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.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        /// <summary>
        /// å·¥åºæ£€éªŒå•列表删除按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("QC_ProcessCheckBill/Delete_Json")]
        [HttpGet]
        public object Delete_Json(long HItemID)
        {
            DAL.ClsQC_ProcessCheckBill BillOld = new DAL.ClsQC_ProcessCheckBill();
            try
            {
                if (BillOld.DeleteBill(HItemID, ref ClsPub.sExeReturnInfo) != true)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "删除成功";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                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;
            }
        }
        /// <summary>
        /// è¿”回工序检验单列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("QC_ProcessCheckBill/GetProcessCheckBillList")]
        [HttpGet]
        public object GetProcessCheckBillList(string sWhere)
        {
            try
            {
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_QC_ProcessCheckBillList " + sWhere, "h_v_QC_ProcessCheckBillList");
                }
                else
                {
                    string sql1 = "select * from h_v_QC_ProcessCheckBillList where 1 = 1 ";
                    string sql = sql1 + sWhere;
                    ds = oCN.RunProcReturn(sql, "h_v_QC_ProcessCheckBillList");
                }
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "false!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    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
        //
    }
}