1
yangle
2023-05-06 a52bdc2aed17ba07d5ce0f1cc4adf64d5cd21ad2
WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
@@ -175,14 +176,6 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (HEmpID == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "操作员没有选择!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //if (HQCCheckID == 0)
                //{
                //    objJsonResult.code = "0";
@@ -191,14 +184,42 @@
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //if (HSourceID == 0)
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "生产资源没有选择!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //获取系统参数
                string Ret = "";
                if (oSystemParameter.ShowBill(ref Ret))
                {
                    //判断客户不为龙山汽配
                    if (oSystemParameter.omodel.WMS_CampanyName != "龙山汽配") //系统参数
                    {
                        if (HSourceID == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "生产资源没有选择!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //判断客户为龙山汽配
                    else if (oSystemParameter.omodel.WMS_CampanyName == "龙山汽配")
                    {
                        //判断是否为多工位
                        ds = oCN.RunProcReturn("select * from h_v_GetStationOutBill_Detail where 工序ID = " + HProcID + " and 物料ID = " + HMaterID + " and 流转卡号 = '" + HProcExchBillNo + "'", "h_v_GetStationOutBill_Detail");
                        if (ds != null && ds.Tables[0].Rows.Count <= 1)
                        {
                            if (HEmpID == 0)
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "操作员没有选择!";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                    }
                }
                //if (HCenterID == 0)
                //{
                //    objJsonResult.code = "0";
@@ -1640,6 +1661,17 @@
                        return objJsonResult;
                    }
                    ds = oCn.RunProcReturn($"exec h_p_DelOutInBill {HInterID},'MES_StationOutBill_DeleteRelationCtl'", "h_p_DelOutInBill");
                    if (ds.Tables[0].Rows[0][0].ToString()== "0")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "系统参数控制,已有下道工序,不能删除!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //写入删除日志 
                    string WorkList = "删除出站单:" + oBill.omodel.HBillNo;
                    if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HProcExchInterID, oBill.omodel.HProcExchEntryID, ref DBUtility.ClsPub.sExeReturnInfo))
@@ -2099,7 +2131,141 @@
        }
        #endregion
        #region 返回工序出站汇报单明细列表
        [Route("Cj_StationOutBill_Detail/get_Display2")]
        [HttpGet]
        public object get_Display2(string HMaterID, string HWorkProcID, string HProcExchBillNo)
        {
            try
            {
                ds = oCN.RunProcReturn("select * from h_v_GetStationOutBill_Detail where 工序ID = " + HWorkProcID + " and 物料ID = " + HMaterID + " and 流转卡号 = '" + HProcExchBillNo + "'" , "h_v_GetStationOutBill_Detail");
                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 = "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 明细 保存/编辑功能
        [Route("Cj_StationOutBill/AddBill_Detail")]
        [HttpPost]
        public object AddBill_Detail([FromBody] JObject sMain)
        {
            try
            {
                var _value = sMain["sMainSub"].ToString();
                string msg1 = _value.ToString();
                oCN.BeginTran();
                //保存主表
                objJsonResult = Add_Detail(msg1);
                if (objJsonResult.code == "0")
                {
                    oCN.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = objJsonResult.Message;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                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 = "保存失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        public json Add_Detail(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString(); //表头数据
            string msg3 = sArray[1].ToString(); //表体数据
            var a = sArray[2].ToString();
            int OperationType = int.Parse(sArray[2].ToString()); // 数据类型 1添加 3修改
            string user = sArray[3].ToString(); //用户名
            try
            {
                msg2 = "[" + msg2.ToString() + "]";
                List<ClsSc_StationOutBillSub_Emp> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsSc_StationOutBillSub_Emp>>(msg2);
                List<ClsSc_StationOutBillSub_Emp> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsSc_StationOutBillSub_Emp>>(msg3);
                long HInterID = mainList[0].HInterID;
                long HWorkEmpID = subList[0].HWorkEmpID;
                long HWorkSourceID = subList[0].HWorkSourceID;
                decimal HQty = subList[0].HQty;
                decimal HRate = subList[0].HRate;
                decimal HProcPrice = subList[0].HProcPrice;
                decimal HMoney = subList[0].HMoney;
                long HWorkProcID = mainList[0].HWorkProcID;
                var EntryID = 0;
                foreach (ClsSc_StationOutBillSub_Emp oSub in subList)
                {
                    //ds = oCN.RunProcReturn("select * from h_v_IF_ICMOBillList where hmainid=" + HInterID + " and 单据号='" + HBillNo + "'", "h_v_IF_ICMOBillList");
                    if ((OperationType == 1 || OperationType == 2))//新增 && ds.Tables[0].Rows.Count == 0
                    {
                        EntryID++;
                        string sql = string.Empty;
                        sql = $@"
                        Insert into Sc_StationOutBillSub_Emp
                        (HInterID,HEntryID,HBillNo_bak ,HRemark ,HSourceInterID
                        ,HSourceEntryID ,HSourceBillNo ,HSourceBillType ,HRelationQty ,HRelationMoney
                        ,HWorkEmpID ,HWorkSourceID ,HQty ,HRate ,HProcPrice ,HMoney ,HWorkProcID)
                        values(" + HInterID + "," + EntryID + "," + "'" + mainList[0].HBillNo_bak + "','" + mainList[0].HRemark + "'," + 0 + "," + 0 + ",'" + " " + "','" + " " + "'," +
                        "0" + "," + 0 + "," + oSub.HWorkEmpID + "," + oSub.HWorkSourceID + "," + oSub.HQty + "," + oSub.HRate + "," + oSub.HProcPrice + "," + oSub.HMoney + "," + HWorkProcID + ")";
                        oCN.RunProc(sql);
                    }
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                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
    }
}