yusijie
2023-08-16 d9d0587b8ae82785a97b874a4d2b0fff9d3e0882
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API
11个文件已修改
531 ■■■■ 已修改文件
Pub_Class/CustomerCls/ClsXt_SystemParameter.cs 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/Sc_ICMOReportBillController.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/日计划管理/JIT_Cg_PODemandPlanBillController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/日计划管理/JIT_DayPlanPlatFormBillController.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/Sc_AssemblyBillController.cs 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/Sc_ProcessMangementController.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/仓存管理/条码生成/Sc_BarCodeController.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/生产管理/报工台工序/Sc_MESBeginStepWorkBillController.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/ClsSc_AssemblyBillMain.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
@@ -1646,6 +1646,78 @@
                        omodel.MES_StationEntrustOutBill_SaveAutoAddnew = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //=============================首件检验单
                    //保存后是否自动审核
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_FirstPieceCheckBill_AutoCheck")
                    {
                        omodel.QC_FirstPieceCheckBill_AutoCheck = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //保存后变为新增状态
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_FirstPieceCheckBill_SaveAutoAddnew")
                    {
                        omodel.QC_FirstPieceCheckBill_SaveAutoAddnew = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //删除人必须是制单人
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_FirstPieceCheckBill_DeleterAndMakerMustSame")
                    {
                        omodel.QC_FirstPieceCheckBill_DeleterAndMakerMustSame = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //质检方案来源
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_FirstPieceCheckBill_QCSchemeSource")
                    {
                        omodel.QC_FirstPieceCheckBill_QCSchemeSource = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //=============================巡检单
                    //保存后是否自动审核
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_PatrolProcCheckBill_AutoCheck")
                    {
                        omodel.QC_PatrolProcCheckBill_AutoCheck = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //保存后变为新增状态
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_PatrolProcCheckBill_SaveAutoAddnew")
                    {
                        omodel.QC_PatrolProcCheckBill_SaveAutoAddnew = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //删除人必须是制单人
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_PatrolProcCheckBill_DeleterAndMakerMustSame")
                    {
                        omodel.QC_PatrolProcCheckBill_DeleterAndMakerMustSame = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //质检方案来源
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_PatrolProcCheckBill_QCSchemeSource")
                    {
                        omodel.QC_PatrolProcCheckBill_QCSchemeSource = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //=============================工序转序检验单
                    //保存后是否自动审核
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_ProcessCheckBill_AutoCheck")
                    {
                        omodel.QC_ProcessCheckBill_AutoCheck = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //保存后变为新增状态
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_ProcessCheckBill_SaveAutoAddnew")
                    {
                        omodel.QC_ProcessCheckBill_SaveAutoAddnew = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //删除人必须是制单人
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_ProcessCheckBill_DeleterAndMakerMustSame")
                    {
                        omodel.QC_ProcessCheckBill_DeleterAndMakerMustSame = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //质检方案来源
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "QC_ProcessCheckBill_QCSchemeSource")
                    {
                        omodel.QC_ProcessCheckBill_QCSchemeSource = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //报工台,工序汇报自动审核参数
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "Sc_MESProceReportWorkBill_AutoCheck")
                    {
Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs
@@ -525,6 +525,25 @@
        public string QC_FirstPieceCheckBill_AutoCheck;                     //保存后是否自动审核  
        public string QC_FirstPieceCheckBill_SaveAutoAddnew;               //保存后变为新增状态
        public string QC_FirstPieceCheckBill_DeleterAndMakerMustSame;      //删除人必须是制单人
        public string QC_FirstPieceCheckBill_QCSchemeSource;               //质检方案来源
        //巡检单
        public string QC_PatrolProcCheckBill_AutoCheck;                     //保存后是否自动审核
        public string QC_PatrolProcCheckBill_SaveAutoAddnew;               //保存后变为新增状态
        public string QC_PatrolProcCheckBill_DeleterAndMakerMustSame;      //删除人必须是制单人
        public string QC_PatrolProcCheckBill_QCSchemeSource;               //质检方案来源
        //工序转序检验单
        public string QC_ProcessCheckBill_AutoCheck;                     //保存后是否自动审核
        public string QC_ProcessCheckBill_SaveAutoAddnew;               //保存后变为新增状态
        public string QC_ProcessCheckBill_DeleterAndMakerMustSame;      //删除人必须是制单人
        public string QC_ProcessCheckBill_QCSchemeSource;               //质检方案来源
WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs
@@ -121,6 +121,8 @@
        public json AddBillMain(string msg1)
        {
            string sErrMsg = "";
            oSystemParameter.ShowBill(ref sErrMsg);
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
@@ -180,6 +182,50 @@
                int IsProNo = mainList[0].IsProNo;//是否转工序                     
                HName_LongShan = mainList[0].HName;//工艺路线名称
                if (oSystemParameter.omodel.WMS_CampanyName == "")
                {
                    if (HPicNumVer == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "图号版本不能为空!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (HPicNumAssemble == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "总装图号不能为空!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (HMaterTexture == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "材质不能为空!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (HProductNum == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "成品编号不能为空!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (HVerNum == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "版本不能为空!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                if (OperationType == 2)
                {
                    ds = oCN.RunProcReturn("select * from h_v_Gy_RoutingBillList where  å•据号='" + HBillNo + "'", "h_v_Gy_RoutingBillList");
@@ -244,29 +290,9 @@
                    return objJsonResult;
                }
                string sErrMsg = "";
                if (oSystemParameter.ShowBill(ref sErrMsg))
                if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺")
                {
                    if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺")
                    {
                        if (oSystemParameter.omodel.Gy_RoutingBill_SaveAutoLastProc == "Y" && OperationType == 1)
                        {
                            ds = oCN.RunProcReturn("select * from Gy_Process Where HTProcessFlag = 1 and HNumber='9999' ", "Gy_Process");
                            if (ds.Tables[0].Rows.Count == 0)
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "未设置转工序!";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            //设置转工序
                            oCN.RunProc("exec Gy_RoutingBill_LastProNo " + HInterID);
                        }
                    }
                    else if (IsProNo == 1 && OperationType == 1)
                    if (oSystemParameter.omodel.Gy_RoutingBill_SaveAutoLastProc == "Y" && OperationType == 1)
                    {
                        ds = oCN.RunProcReturn("select * from Gy_Process Where HTProcessFlag = 1 and HNumber='9999' ", "Gy_Process");
@@ -283,6 +309,23 @@
                        oCN.RunProc("exec Gy_RoutingBill_LastProNo " + HInterID);
                    }
                }
                else if (IsProNo == 1 && OperationType == 1)
                {
                    ds = oCN.RunProcReturn("select * from Gy_Process Where HTProcessFlag = 1 and HNumber='9999' ", "Gy_Process");
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "未设置转工序!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //设置转工序
                    oCN.RunProc("exec Gy_RoutingBill_LastProNo " + HInterID);
                }
                //是否勾选默认工艺路线
WebAPI/Controllers/SCGL/Sc_ICMOReportBillController.cs
@@ -783,32 +783,26 @@
        {
            try
            {
                if (sWhere == null || sWhere.Equals(""))
                List<object> columnNameList = new List<object>();
                string sql1 = "select * from h_v_Sc_AssemblyBillList where 1 = 1 ";
                string sql = sql1 + sWhere;
                ds = oCN.RunProcReturn(sql, "h_v_Sc_AssemblyBillList");
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    ds = oCN.RunProcReturn("select * from h_v_Sc_AssemblyBillList " + sWhere, "h_v_Sc_AssemblyBillList");
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                else
                {
                    string sql1 = "select * from h_v_Sc_AssemblyBillList where 1 = 1 ";
                    string sql = sql1 + sWhere;
                    ds = oCN.RunProcReturn(sql, "h_v_Sc_AssemblyBillList");
                }
                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;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
WebAPI/Controllers/SCGL/Èռƻ®¹ÜÀí/JIT_Cg_PODemandPlanBillController.cs
@@ -433,7 +433,7 @@
        #region ææ–™è®¡åˆ’单 ææ–™è®¡åˆ’报表
        [Route("JIT_Cg_PODemandPlanBill/ReportPODemandPlanBillList_S")]
        [HttpGet]
        public object ReportPODemandPlanBillList_S(string sWhere, string user)
        public object ReportPODemandPlanBillList_S(string sWhere, string user,string HBEGINDATE,string HENDDATE)
        {
            try
            {
@@ -447,7 +447,7 @@
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn($"exec h_p_JIT_PODemandPlanBill_S_ReportList '{sWhere.ToString()}' ", "h_p_JIT_PODemandPlanBill_S_ReportList");
                ds = oCN.RunProcReturn($"exec h_p_JIT_PODemandPlanBill_S_ReportList '{sWhere.ToString()}','{HBEGINDATE}','{HENDDATE}' ", "h_p_JIT_PODemandPlanBill_S_ReportList");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
WebAPI/Controllers/SCGL/Èռƻ®¹ÜÀí/JIT_DayPlanPlatFormBillController.cs
@@ -300,12 +300,11 @@
                        {
                            SumCount += 1;
                            ////保存子表
                            objJsonResult = AddBillSub(HInterID == 0 ? list[i]["hmainid"].ToString() : HInterID.ToString()
                                , HBillNo == "" ? list[i]["单据号"].ToString() : HBillNo
                                 , DateTime.Parse(DateTime.Now.AddDays(j).ToString("yyyy-MM-dd").ToString())
                                 , int.Parse(list[i][DateTime.Now.AddDays(j).ToString("yyyy-MM-dd")].ToString()));
                                 , int.Parse(list[i][DateTime.Now.AddDays(j).ToString("yyyy-MM-dd")].ToString())
                                 , list[i]);
                            if (objJsonResult.count == 1)
                            {
                                TrueCount += 1;
@@ -314,7 +313,7 @@
                        //主表有数据 å­è¡¨æ— æ•°æ®
                        if (j == 30 && SumCount == 0 && HInterID != 0 && HBillNo != "")
                        {
                            objJsonResult = AddBillSub(HInterID.ToString(), HBillNo, DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd").ToString()), 0);
                            objJsonResult = AddBillSub(HInterID.ToString(), HBillNo, DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd").ToString()), 0, list[i]);
                        }
                    }
                }
@@ -347,11 +346,10 @@
            }
        }
        public json AddBillSub(string HInterID, string HBillNo, DateTime date, int HQTY)
        public json AddBillSub(string HInterID, string HBillNo, DateTime date, int HQTY, Dictionary<string, string> dic)
        {
            //获取表格数据
            ds = oCN.RunProcReturn($"select * from  h_v_JIT_Sc_WorkBillSortBillList where å•据号='{HBillNo}'", "h_v_JIT_Sc_WorkBillSortBillList");
            int count = 0;
            if (ds.Tables[0].Rows.Count > 0)
            {
@@ -360,7 +358,7 @@
                {
                    if (DateTime.Parse(ds.Tables[0].Rows[i]["日计划生产日期"].ToString()) == date)
                    {
                        oCN.RunProc($"update Sc_WorkBillSortBillSub set HMasterDate='{date}',HQty={HQTY}" +
                        oCN.RunProc($"update Sc_WorkBillSortBillSub set HMasterDate='{date}',HQty={HQTY},HUseTimes={(dic["小时产能"]=="0"?0: HQTY / float.Parse(dic["小时产能"].ToString()))}" +
                            $"  where HInterID={HInterID} and HEntryID={ds.Tables[0].Rows[i]["hsubid"].ToString()}");
                        count += 1;
                    }
@@ -371,9 +369,9 @@
            {
                //插入子表
                oCN.RunProc("insert into Sc_WorkBillSortBillSub(HInterID,HSEQ," +
                    "HMasterDate,HQty)" +
                    "HMasterDate,HQty,HUseTimes)" +
                            $"values({HInterID}, {(ds.Tables[0].Rows.Count + 1)}," +
                            $" '{date}', {HQTY})");
                            $" '{date}', {HQTY},{(dic["小时产能"] == "0" ? 0 : HQTY / float.Parse(dic["小时产能"].ToString()))})");
            }
            objJsonResult.code = "1";
WebAPI/Controllers/Sc_AssemblyBillController.cs
@@ -1,4 +1,6 @@
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
@@ -24,6 +26,7 @@
        Int64 sCPMaterID = 0;
        string sCPMaterName = "";
        private json objjson = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        //扫描成品条码
        [Route("Assembly/Get_Assembly_CPBarCode_Json")]
@@ -174,13 +177,258 @@
        }
        #region  äº§çº¿ç»„装追溯单
        [Route("Sc_AssemblyBill/HBardCodeList")]
        [HttpGet]
        public object HBardCodeList(string HBarCode, string user,string HICMOBillNo)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Sc_AssemblyBill_Edit", 1, false, user))
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "无保存权限!";
                    objjson.data = null;
                    return objjson;
                }
                if (HICMOBillNo == "" || HICMOBillNo == null)
                {
                    ds = oCN.RunProcReturn(@"select  bard.HSourceInterID,bard.HSourceEntryID,b.FMUSTQTY,a.FMOBILLNO,FERPCLSID,t5.FNAME HMaterName_z,t5.FSPECIFICATION HMaterModel_z ,m.HItemID,b.FMATERIALID,m.HName HMaterName,m.HNumber HMaterNumber,m.HModel HMaterModel,m1.HItemID HMaterID
from AIS20210811135644..T_PRD_PPBOM a
join AIS20210811135644..T_PRD_PPBOMENTRY b on a.FID = b.FID
join AIS20210811135644..T_BD_MATERIAL t3 on a.FMATERIALID = t3.FMATERIALID
join AIS20210811135644..T_BD_MATERIAL t31 on b.FMATERIALID = t31.FMATERIALID
join AIS20210811135644..T_BD_MATERIAL_L t5 on b.FMATERIALID = t5.FMATERIALID and FLOCALEID=2052
join AIS20210811135644..t_BD_MaterialBase t4 on t5.FMATERIALID = t4.FMATERIALID
join Gy_BarCodeBill bard on a.FMOBILLNO=bard.HSourceBillNo
join Gy_Material m on bard.HMaterID=m.HItemID and t3.FNUMBER=m.HNumber
join Gy_Material m1 on t31.FNUMBER=m1.HNumber and t31.FUSEORGID=m1.HUSEORGID
where bard.HBarCode='" + HBarCode + "'  AND t4.FERPCLSID in ('1', '3')", "Gy_BarCodeBill");
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        objjson.code = "0";
                        objjson.count = 0;
                        objjson.Message = "请先扫产品条码!";
                        objjson.data = null;
                        return objjson;
                    }
                    else
                    {
                        objjson.code = "1";
                        objjson.count = 1;
                        objjson.Message = "";
                        objjson.data = ds.Tables[0];
                    }
                }
                else
                {
                    ds = oCN.RunProcReturn(@"select  a.FMOBILLNO,FERPCLSID ,t4.FMATERIALID, a.FMATERIALID from AIS20210811135644..T_PRD_PPBOM a
                    join AIS20210811135644..T_PRD_PPBOMENTRY b on a.FID=b.FID
                    JOIN AIS20210811135644..T_BD_MATERIAL T6 ON b.FMATERIALID = T6.FMATERIALID
                    join AIS20210811135644..t_BD_MaterialBase t4 on b.FMATERIALID = t4.FMATERIALID
                    left join Gy_Material m on t6.FNUMBER=m.HNumber and m.HUSEORGID=a.FPRDORGID
                    where a.FMOBILLNO ='" + HICMOBillNo + "' and m.HItemID=(select HMaterID from Gy_BarCodeBill where HBarCode = '" + HBarCode + "' )", "ds2");
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        objjson.code = "0";
                        objjson.count = 0;
                        objjson.Message = "配件不属于该生产订单!";
                        objjson.data = null;
                        return objjson;
                    }
                    ds = oCN.RunProcReturn(@"select  HQty,HSourceBillNo,m.HName HMaterName,m.HItemID HMaterID from Gy_BarCodeBill bard
join Gy_Material m on bard.HMaterID=m.HItemID
where  HBarCode='" + HBarCode + "'", "ds3");
                    objjson.code = "1";
                    objjson.count = 1;
                    objjson.Message = "";
                    objjson.data = ds.Tables[0];
                }
                return objjson;
            }
            catch (Exception e)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "没有返回任何记录!" + e.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        #endregion
        #region äº§çº¿ç»„装追溯单保存
        [Route("Sc_AssemblyBill/AddBill")]
        [HttpPost]
        public object AddBill([FromBody] JObject sMainSub)
        {
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            oCN.BeginTran();
            //保存主表
            objjson = AddBillMain(msg1);
            if (objjson.code == "0")
            {
                oCN.RollBack();
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = objjson.Message;
                objjson.data = null;
                return objjson;
            }
            oCN.Commit();
            objjson.code = "1";
            objjson.count = 1;
            objjson.Message = "新增单据成功!";
            objjson.data = null;
            return objjson;
        }
        Models.ClsSc_AssemblyBillMain omodel = new Models.ClsSc_AssemblyBillMain();//基本资料
        public json AddBillMain(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            int OperationType = int.Parse(sArray[2].ToString());//类型
            string user = sArray[3].ToString();//用户名
            try
            {
                //判断是否有编辑权限
                if (!DBUtility.ClsPub.Security_Log("Sc_AssemblyBill_Edit", 1, false, user))
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "无权限编辑!";
                    objjson.data = null;
                    return objjson;
                }
                omodel = Newtonsoft.Json.JsonConvert.DeserializeObject<ClsSc_AssemblyBillMain>(msg2);
                //JSON序列化转换字典集合
                List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
                List<object> jb = JsonConvert.DeserializeObject<List<object>>(msg3);
                foreach (JObject item in jb)
                {
                    Dictionary<string, string> dic = new Dictionary<string, string>();
                    foreach (var itm in item.Properties())
                    {
                        dic.Add(itm.Name, itm.Value.ToString());
                    }
                    list.Add(dic);
                }
                if (OperationType == 1)//新增临时表源单表
                {
                    for (int i = 0; i < list.Count; i++)
                    {
                        //临时配件表
                        oCN.RunProc("Insert Into Sc_AssemblyBill_BindSourceTemp   " +
                        "(HInterID,HEntryID,HBillNo_bak,HSourceBillNo,HSourceInterID,HMaterID" +
                        ",HQtyMust,HProdOrgID,HSourceEntryID,HSourceBillType,HAuxPropID,HProcID,HQty,HBatchNo,HMTONo,HPlanMode) " +
                        " values(" + omodel.HInterID.ToString() + "," + (i+1) + ",'" + omodel.HBillNo.ToString() + "','" + omodel.HICMOBillNo.ToString() + "',0," + list[i]["HMaterID"].ToString() +
                        ",'" + list[i]["HQty"].ToString() + "','" + list[i]["HPRDORGID"].ToString() + "',0,'',0,0,0,'','','') ");
                    }
                }
                else if (OperationType == 2)//新增配件扫码表
                {
                    for (int i = 0; i < list.Count; i++)
                    {
                        if (list[i]["HBarCode"].ToString() != "")
                        {
                            ds = oCN.RunProcReturn("select * from Sc_AssemblyBill_BindBarCodeTemp where HSourceBillNo='" + omodel.HICMOBillNo.ToString() + "' and HBarCode='" + list[i]["HBarCode"].ToString() + "' and HBillNo_bak='" + omodel.HBillNo.ToString() + "'", "Sc_AssemblyBill_BindBarCodeTemp");
                            if (ds.Tables[0].Rows.Count > 0) {
                                objjson.code = "0";
                                objjson.count = 0;
                                objjson.Message ="该条码已扫入,无须再扫!";
                                objjson.data = null;
                                return objjson;
                            }
                            //临时记录表
                            oCN.RunProc("Insert Into Sc_AssemblyBill_BindBarCodeTemp   " +
                            "(HInterID,HEntryID,HBillNo_bak,HSourceBillNo,HSourceInterID,HMaterID" +
                            ",HBarCode,HQty,HProdOrgID,HSourceEntryID,HSourceBillType,HAuxPropID,HProcID,HBatchNo,HMTONo,HPlanMode) " +
                            " values(" + omodel.HInterID.ToString() + "," + (i + 1) + ",'" + omodel.HBillNo.ToString() + "','" + omodel.HICMOBillNo.ToString() + "',0," + list[i]["HMaterID"].ToString() +
                            ",'" + list[i]["HBarCode"].ToString() + "','" + list[i]["HEQty"].ToString() + "','" + list[i]["HPRDORGID"].ToString() + "',0,'',0,0,'','','') ");
                        }
                    }
                }
                else if (OperationType == 3)//新增主子表
                {
                    //保存生产组装单主表
                    string sql = $@"Insert Into Sc_AssemblyBillMain(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate
,HBillNo,HBillStatus,HMaker,HMakeDate,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo
,HICMOInterID,HICMOBillNo,HBarCode_P,HMaterID,HUnitID,HAssemblyStatus,HProdOrgID)
values('{DateTime.Now.Year}','{DateTime.Now.Month}','3727','3727',{omodel.HInterID.ToString()},getdate()
,'{omodel.HBillNo.ToString()}','1','{user}',getdate(),{omodel.HICMOInterID.ToString()},{omodel.HICMOEntryID.ToString()},'{omodel.HICMOBillNo.ToString()}'
,{omodel.HICMOInterID.ToString()},'{omodel.HICMOBillNo.ToString()}','{omodel.HBarCode_P.ToString()}',{omodel.HMaterID},0,'{omodel.HAssemblyStatus}',{omodel.HProdOrgID})";
                    oCN.RunProc(sql);
                    ds = oCN.RunProcReturn("select * from Sc_AssemblyBill_BindBarCodeTemp where HSourceBillNo='" + omodel.HICMOBillNo.ToString() + "' and HInterID='" + omodel.HInterID + "' and HBillNo_bak='" + omodel.HBillNo.ToString() + "'", "Sc_AssemblyBill_BindBarCodeTemp");
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        int HMaterID = int.Parse(ds.Tables[0].Rows[i]["HMaterID"].ToString());
                        double HQty = double.Parse(ds.Tables[0].Rows[i]["HQty"].ToString());
                        string HBarCode = ds.Tables[0].Rows[i]["HBarCode"].ToString();
                        string sq2 = $@"Insert Into Sc_AssemblyBillSub(HInterID,HBillNo_bak,HEntryID,HSourceInterID,HSourceEntryID,HSourceBillNo
,HSourceBillType,HMaterID,HSourceID,HEquipID,HUnitID,HQty
,HGroupID,HWorkerID,HScanDate,HBarCode,HBarCode_P,HSNNumber)
values({omodel.HInterID},'{omodel.HBillNo}',{(i + 1)},0,0,''
,'',{HMaterID},0,0,0,{HQty}
,0,0,getdate(),'{HBarCode}','{omodel.HBarCode_P}','') ";
                        oCN.RunProc(sq2);
                    }
                }
                objjson.code = "1";
                objjson.count = 1;
                objjson.Message = null;
                objjson.data = null;
                return objjson;
            }
            catch (Exception e)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "Exception!" + e.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        #endregion
        #region äº§çº¿ç»„装追溯单 æŸ¥è¯¢
        [Route("Sc_AssemblyBill/Sc_AssemblyBillAddList")]
        [HttpGet]
        public object Sc_AssemblyBillAddList(string sWhere)
        {
            try
            {
                ds = oCN.RunProcReturn(@"select * from  h_v_Sc_AssemblyBillList where 1=1  " + sWhere, "h_v_Sc_AssemblyBillList");
                objjson.code = "1";
                objjson.count = 1;
                objjson.Message = "";
                objjson.data = ds.Tables[0];
                return objjson;
            }
            catch (Exception e)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "没有返回任何记录!" + e.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        #endregion
        [Route("Assembly/Delete_Json")]
        [HttpGet]
WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -405,6 +405,10 @@
        {
            try
            {
                string sErr = "";
                oSystemParameter.ShowBill(ref sErr);
                //获取生产汇报单最大InterID和单据号
                Int64 HInterID = DBUtility.ClsPub.CreateBillID("3711", ref DBUtility.ClsPub.sExeReturnInfo);
                string HBillNo = DBUtility.ClsPub.CreateBillCode("3711", ref DBUtility.ClsPub.sExeReturnInfo, true);
@@ -521,7 +525,10 @@
                    FentityModel.Add("FCostRate", dr1["FCostRate"].ToString());// æˆæœ¬æƒé‡
                    FentityModel.Add("FISBACKFLUSH", dr1["FISBACKFLUSH"].ToString() == "1" ? true : false);// å€’冲领料
                    FentityModel.Add("FMOMAINENTRYID", dr1["FMOENTRYID"].ToString());//
                    //FentityModel.Add("F_bsv_Base1", new JObject() { ["Fnumber"] = dr1["FPREBDONENUMBER"].ToString() }); //包装标识
                    if (oSystemParameter.omodel.WMS_CampanyName == "瑞与祺")
                    {
                        FentityModel.Add("F_bsv_Base1", new JObject() { ["Fnumber"] = dr1["FPREBDONENUMBER"].ToString() });//包装标识
                    }
                    FentityModel.Add("FLot", new JObject() { ["FNumber"] = dr1["FBATCHNO"].ToString() }); //批号
                    FentityModel.Add("F_bsv_Text", dr1["工序流转卡号"].ToString()); //流转卡号
                    JArray Fentity2 = new JArray();
WebAPI/Controllers/²Ö´æ¹ÜÀí/ÌõÂëÉú³É/Sc_BarCodeController.cs
@@ -887,7 +887,10 @@
                                //物料代码-包装标识-日期-供应商代码-八位流水号
                                LSHlen = 8;//流水号是8位
                                DataSet dataDs = oCN.RunProcReturn($"select  b.F_TEZV_BASE from  AIS20220308151944..T_PUR_Receive a inner join AIS20220308151944..T_PUR_RECEIVEENTRY b on a.FID = b.FID where a.FID={ordrlist[j].HMainID} and b.FENTRYID={ordrlist[j].HSubID}", "T_PUR_Receive");
                                DataSet dataDs = oCN.RunProcReturn($@"select  isnull(pr.FNUMBER,'') F_TEZV_BASE from  AIS20220308151944..T_PUR_Receive a
inner join AIS20220308151944..T_PUR_RECEIVEENTRY b on a.FID = b.FID
left join AIS20220308151944..T_BAS_PREBDONE pr on b.F_TEZV_BASE=pr.FID
where a.FID={ordrlist[j].HMainID} and b.FENTRYID={ordrlist[j].HSubID}", "T_PUR_Receive");
                                if (dataDs.Tables[0].Rows.Count == 0)
                                {
                                    objJsonResult.code = "0";
@@ -906,8 +909,13 @@
                            {
                                //物料代码-包装标识-日期-组织代码-八位流水号
                                LSHlen = 8;//流水号是8位
                                DataSet dataDs = oCN.RunProcReturn($"select  b.F_bsv_Base1,a.FPRDORGID from  AIS20220308151944..T_PRD_INSTOCK a inner join AIS20220308151944..T_PRD_INSTOCKENTRY b on a.FID = b.FID where a.FID={ordrlist[j].HMainID} and b.FENTRYID={ordrlist[j].HSubID}", "T_PRD_INSTOCK");
                                DataSet dataDs = oCN.RunProcReturn($@"select  isnull(pr.FNUMBER,'') F_bsv_Base1,a.FPRDORGID from  AIS20220308151944..T_PRD_INSTOCK a
inner join AIS20220308151944..T_PRD_INSTOCKENTRY b on a.FID = b.FID
join(
select HERPInterID, HERPEntryID, HInterID, HEntryID from Kf_ICStockBillSub
)kf on b.FID = kf.HERPInterID and b.FENTRYID = kf.HERPEntryID
left join AIS20220308151944..T_BAS_PREBDONE pr on b.F_bsv_Base1=pr.FID
where kf.HInterID = {ordrlist[j].HMainID} and kf.HEntryID = {ordrlist[j].HSubID}", "T_PRD_INSTOCK");
                                if (dataDs.Tables[0].Rows.Count == 0)
                                {
                                    objJsonResult.code = "0";
WebAPI/Controllers/Éú²ú¹ÜÀí/±¨¹¤Ì¨¹¤Ðò/Sc_MESBeginStepWorkBillController.cs
@@ -1026,11 +1026,23 @@
                    return objJsonResult;
                }
                oCN.BeginTran();
                ds = oCN.RunProcReturn("select * from Sc_ICMOBillWorkQtyStatus_Tmp where HInterID=" + HInterID + " and HSourceInterID=" + HICMOInterID + " and HSourceEntryID=" + HICMOEntryID, "Sc_ICMOBillWorkQtyStatus_Tmp");
                if (ds.Tables[0].Rows.Count == 0) {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "查无数据!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                //删除产量汇报表
                string sql = string.Format(@"delete Sc_ICMOBillWorkQtyStatus_Tmp  where HInterID='" + HInterID + "'");
                oCN.RunProc(sql);
                double sumqty = double.Parse(ds.Tables[0].Rows[0]["HQty"].ToString()) + double.Parse(ds.Tables[0].Rows[0]["HBadQty"].ToString()) + double.Parse(ds.Tables[0].Rows[0]["HWasterQty"].ToString());  //汇报数量+不良+报废
                //回写生产状态临时表Sc_ICMOBillStatus_Tmp拆分汇报数量 HSplitRelationQty
                oCN.RunProc("update Sc_ICMOBillStatus_Tmp set HSplitRelationQty=HSplitRelationQty-" + sumqty + "  where HICMOBillNo='" + ds.Tables[0].Rows[0]["HICMOBillNo"].ToString() + "'  and HSourceID='" + ds.Tables[0].Rows[0]["HSourceID"].ToString() + "' and  HICMOInterID='" + ds.Tables[0].Rows[0]["HICMOInterID"].ToString() + "' and HICMOEntryID='" + ds.Tables[0].Rows[0]["HICMOEntryID"].ToString() + "' and HInterID=" + ds.Tables[0].Rows[0]["HSourceInterID"].ToString());
                oCN.Commit();
                objJsonResult.code = "1";
WebAPI/Models/ClsSc_AssemblyBillMain.cs
@@ -24,5 +24,7 @@
        public string HPCrux;
        public string HSCZY;
        public int HSCZYID;
        public int HProdOrgID; //组织
        public int HICMOEntryID; //任务单子ID
    }
}