yangle
2022-08-11 86bc636d8c2c16247f9450a04fe2f46ca3286cb3
维护
3个文件已修改
209 ■■■■ 已修改文件
WebAPI/Controllers/SCGL/Sc_ComplementGoodBillController.cs 96 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/DLL/ClsSc_ICMOBillWorkQtyStatus_Tmp.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/Sc_ComplementGoodBillController.cs
@@ -110,6 +110,7 @@
            public double 计划发料数量 = 0;//HPlanQtyCol 
            public int HWHID = 0;//HWHIDCol
            public int? 调出仓库id = 0;//调出仓库id
            public int? 调入仓库id = 0;//调入仓库id
            public string HMaterialNumberCol { get; set; }
            public string HMaterialModelCol { get; set; }
            public string HProcID { get; set; }//HProcIDCol
@@ -119,10 +120,10 @@
            public long HICMOInterID = 0;// HICMOInterIDCol
            public long HICMOEntryID = 0;// HICMOEntryIDCol
            public long HDeptID = 0;//HDeptID
            public long 库存数量 = 0;
            public double HBHGQtyCol = 0;
            public string 销售订单号 { get; set; }//HSeOrderNOCol
            public DateTime? 计划开工日期 = null;//HBPlanDateCol
        }
        //临时表  叫料子表
@@ -139,6 +140,7 @@
            public string HSeOrderNo;
            public string HSeOrderBillNo;
            public int HWHID = 0;
            public int HSCWHID = 0;
            public long HOutOrgID = 0;
            public long HICMOInterID = 0;
            public long HICMOEntryID = 0;
@@ -194,6 +196,51 @@
                            return objJsonResult;
                        }
                        if (listCa[i].库存数量 == 0 && listCa[i].叫料数量 > 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "库存数量为0,无法叫料!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (listCa[i].叫料数量 > listCa[i].库存数量)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "库存数量小于叫料数量,无法叫料!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (listCa[i].叫料数量 > 0 && listCa[i].调入仓库id == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "请选择调入仓库!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (listCa[i].叫料数量 > 0 && listCa[i].调出仓库id == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "请选择调出仓库!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (listCa[i].调出仓库可用库存数量 == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "调出仓库可用库存数量为0!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        j = 1;
                        var txtHBillNo = DBUtility.ClsPub.CreateBillCode_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
@@ -218,28 +265,11 @@
                        oSub.HSourceBillNo = listCa[i].HSourceBillNo;
                        oSub.HQty =double.Parse(listCa[i].叫料数量.ToString());
                        //if (oSub.HQty <= 0)
                        //{
                        //    objJsonResult.code = "0";
                        //    objJsonResult.count = 0;
                        //    objJsonResult.Message = $"第{i+1}行,叫料数量不能为0或者小于0";
                        //    objJsonResult.data = null;
                        //    return objJsonResult;
                        //}
                        //if (oSub.HQty > listCa[i].调出仓库可用库存数量)
                        //{
                        //    objJsonResult.code = "0";
                        //    objJsonResult.count = 0;
                        //    objJsonResult.Message = $"第{i+1}行,叫料数量大于该物料调出仓库可用库存数量";
                        //    objJsonResult.data = null;
                        //    return objJsonResult;
                        //}
                        oSub.HMaterID = listCa[i].HMaterialID;
                        oSub.HMaterNumber = listCa[i].HMaterialNumberCol; 
                        oSub.HModel = listCa[i].HMaterialModelCol;
                        oSub.HWHID = listCa[i].HWHID;
                        oSub.HWHID = int.Parse(listCa[i].调入仓库id.ToString());
                        oSub.HSCWHID = int.Parse(listCa[i].调出仓库id.ToString());
                        oSub.HProcName = listCa[i].HProcNameCol; 
                        oSub.HProcID = listCa[i].HProcID;
                        oSub.HOutOrgID = listCa[i].HOutOrgID;
@@ -314,12 +344,12 @@
                      " (HInterID,HEntryID,HRemark" +
                      ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                      ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo,HICMOInterID,HICMOEntryID,HICMOBillNo" +
                      ",HDeptID,HMaterID,HQty,HProcID,HWHID,HSPID,HBillNo_bak,HOutOrgID" +
                      ",HDeptID,HMaterID,HQty,HProcID,HWHID,HSCWHID,HSPID,HBillNo_bak,HOutOrgID,HStockOutOrgID,HStockInOrgID" +
                      ") values("
                      + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + oSub.HRemark + "'" +
                      "," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
                      "," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'," + oSub.HICMOInterID.ToString() + "," + oSub.HICMOEntryID.ToString() + ",'" + oSub.HICMOBillNo + "'" +
                      "," + oSub.HDeptID.ToString() + "," + oSub.HMaterID.ToString() + "," + oSub.HQty.ToString() + ",'" + oSub.HProcID + "'," + oSub.HWHID.ToString() + ", " + oSub.HSPID.ToString() +",'',"+oSub.HOutOrgID+") ", ref DBUtility.ClsPub.sExeReturnInfo);
                      "," + oSub.HDeptID.ToString() + "," + oSub.HMaterID.ToString() + "," + oSub.HQty.ToString() + ",'" + oSub.HProcID + "'," + oSub.HWHID.ToString() + ", " + oSub.HSCWHID.ToString()+"," + oSub.HSPID.ToString() +",'',"+oSub.HOutOrgID+ ","+oSub.HOutOrgID+ "," + omodel.HPRDORGID +") ", ref DBUtility.ClsPub.sExeReturnInfo);
                //主表
@@ -406,6 +436,24 @@
                            return objJsonResult;
                        }
                        if (listCa[i].调入仓库id == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "请选择调入仓库!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (listCa[i].调出仓库id == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "请选择调出仓库!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        flag = AddICStockTuiBill(listCa[i], "666601", "不良品退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo);
                        j = 1;
                    }
@@ -454,7 +502,7 @@
                Int64 lngBillKey = listCa.HSouceInterID == 0 ? 0 : listCa.HSouceInterID;
                Int64 lngBillKeyEntry = listCa.HSourceEntryID == 0 ? 0 : listCa.HSourceEntryID;
                double HQty = (double)(listCa.退料数量 == 0 ? 0 : listCa.退料数量);
                long HDeptWHID = listCa.HSTOCKID == 0 ? 0 : listCa.HSTOCKID;
                long HDeptWHID = int.Parse(listCa.调入仓库id.ToString()) == 0 ? 0 : int.Parse(listCa.调入仓库id.ToString());
                string HTuiResult = listCa.退料原因 == "" ? "" : listCa.退料原因;
                var HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
                var HBillInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo);
@@ -474,7 +522,7 @@
                        " HItemMainID, HSendManID, HWareManID, HStockOutOrgID, HStockInOrgID, HBackType)" +
                       $"values({DateTime.Now.Year},{DateTime.Now.Month},{HBillInterID},'{HBillType}',1," +
                       $" '{HBillType}','{DateTime.Now}','{HBillNo}',{HOrgID},'{ DBUtility.ClsPub.CurUserName}','{DateTime.Now}','','',0,0,0,''," +
                       $" 0, 0, 0, {HOrgID}, 0,'{HBackType}')");
                       $" 0, 0, {listCa.HOutOrgID}, {HOrgID}, 0,'{HBackType}')");
                 
                sReturn = "新增单据成功!";
                oCN.Commit();
WebAPI/Controllers/SCGL/Sc_ComplementGoodsController.cs
@@ -64,6 +64,8 @@
                ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_Query '{com.MaterialNumber}','{com.MaterialName}','{com.MaterialModel}','{com.HGD}'," +
                    $"'{com.HWHName}','{com.HDeptName}','{com.Organization}','{com.user}','{com.HJLStatus}','{com.HBeginDate}','{com.HEndDate}'", "h_p_JIT_ComplementGoodsBillList_Query");
                //bool a = AddSendGoodsBillSynChronizAtion("PLD00000112", ref DBUtility.ClsPub.sExeReturnInfo);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
@@ -211,6 +213,9 @@
            public int? HMaterID = 0;
            public int? HWHID = 0;
            public int? HSPID = 0;
            public int? HStockOutOrgID = 0;
            public int? HStockInOrgID = 0;
            public int? HSCWHID = 0;
        }
        [Route("Sc_ComplementGoods/JIT_SendGoodsBill")]
@@ -295,36 +300,47 @@
                ds = oCN.RunProcReturn($"select a.HMainSourceEntryID,b.HMaterID  from JIT_SendGoodsBillMain a  with(nolock) inner join JIT_SendGoodsBillSub b with(nolock) on a.HInterID = b.HInterID where a.HMainSourceInterID={SourceInterID} and a.HBillStatus=1", "JIT_SendGoodsBillMain");
                long InterID = 0;
                string HBillNo = "";
                for (int i = 0; i < listCa.Count; i++)
                {
                    int a = -1;
                    for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                    //int a = -1;
                    //for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                    //{
                    //    if (ds.Tables[0].Rows[j]["HMaterID"].ToString() == listCa[i].HMaterID.ToString() && ds.Tables[0].Rows[j]["HMainSourceEntryID"].ToString() == listCa[i].HEntryID.ToString())
                    //    {
                    //        a = j;
                    //        break;
                    //    }
                    //}
                    // 则代表配送单没有数据  需要添加数据
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        if (ds.Tables[0].Rows[j]["HMaterID"].ToString() == listCa[i].HMaterID.ToString()&& ds.Tables[0].Rows[j]["HMainSourceEntryID"].ToString() == listCa[i].HEntryID.ToString())
                        if (i == 0)
                        {
                            a = j;
                            break;
                            InterID = DBUtility.ClsPub.CreateBillID_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo);
                            HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo, true);
                            //添加主表数据
                            oCN.RunProc("insert into JIT_SendGoodsBillMain(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate" +
                                ",HBillNo,HBillStatus,HMaker,HMakeDate,HISCheck, HMainSourceInterID, HMainSourceEntryID" +
                                ", HMainSourceBillNo, HMainSourceBillType)" +
                               $"values({DateTime.Now.Year},{DateTime.Now.Month},'460201','460201',{InterID}, GETDATE(), '{HBillNo}'," +
                               $" 1,'{user}', GETDATE(), 0, {SourceInterID}, {listCa[i].HEntryID}, '{SourceBillNo}', '4602')");
                        }
                    }
                    //a=0  则代表配送单没有数据  需要添加数据
                    if (a == -1 )
                    {
                        long InterID = DBUtility.ClsPub.CreateBillID_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo);
                        string HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo, true);
                        //添加主表数据
                        oCN.RunProc("insert into JIT_SendGoodsBillMain(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate" +
                            ",HBillNo,HBillStatus,HMaker,HMakeDate,HISCheck, HMainSourceInterID, HMainSourceEntryID" +
                            ", HMainSourceBillNo, HMainSourceBillType)" +
                           $"values({DateTime.Now.Year},{DateTime.Now.Month},'460201','460201',{InterID}, GETDATE(), '{HBillNo}'," +
                           $" 1,'{user}', GETDATE(), 0, {SourceInterID}, {listCa[i].HEntryID}, '{SourceBillNo}', '4602')");
                        //添加子表数据
                        oCN.RunProc("insert into JIT_SendGoodsBillSub(HInterID,HBillNo_bak,HEntryID" +
                            ",HMaterID,HQty,HWHID,HSPID,HISCheck,HCheckSubMan,HCheckSubDate)" +
                            ",HMaterID,HQty,HWHID,HSPID,HISCheck,HCheckSubMan,HCheckSubDate,HStockOutOrgID,HStockInOrgID,HSCWHID)" +
                            $"values({InterID},'{HBillNo}',{i + 1}, {listCa[i].HMaterID},{listCa[i].本次拣料数量}," +
                            $" {listCa[i].HWHID},{listCa[i].HSPID},0,'{user}', GETDATE())");
                            $" {listCa[i].HWHID},{listCa[i].HSPID},0,'{user}', GETDATE(),{listCa[i].HStockOutOrgID},{listCa[i].HStockInOrgID},{listCa[i].HSCWHID})");
                        //同步金蝶直接调拨单
                        if (AddSendGoodsBillSynChronizAtion(HBillNo, ref DBUtility.ClsPub.sExeReturnInfo))
                        {
                        }
                    }
                    else
                    {
@@ -374,6 +390,57 @@
                throw (e);
            }
        }
        //同步金蝶直接调拨单
        public bool AddSendGoodsBillSynChronizAtion(string HBillNo, ref string sReturn)
        {
            ds = oCN.RunProcReturn("exec JIT_SendGoodsBillSynChronizAtion '" + HBillNo + "'", "JIT_SendGoodsBillSynChronizAtion");
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                JObject model = new JObject();
                model.Add("FBillTypeID", new JObject() { ["Fnumber"] = dr["FBillTypeID"].ToString() }); //单据类型
                model.Add("FDate", dr["FDate"].ToString());
                model.Add("FBILLNO", dr["FBILLNO"].ToString());
                model.Add("FStockOrgId", new JObject() { ["Fnumber"] = dr["FStockOrgId"].ToString() });
                model.Add("FOwnerTypeIdHead", dr["FOwnerTypeIdHead"].ToString());
                model.Add("FTransferBizType", dr["FTransferBizType"].ToString());
                model.Add("FOwnerTypeOutIdHead", dr["FOwnerTypeOutIdHead"].ToString());
                model.Add("FTransferDirect", dr["FTransferDirect"].ToString());
                model.Add("FStockOutOrgId", new JObject() { ["Fnumber"] = dr["FStockOutOrgId"].ToString() });
                JArray Fentity = new JArray();
                JObject FentityModel = new JObject();
                FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = dr["FMaterialId"].ToString() });
                FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = dr["FUnitID"].ToString() });
                FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = dr["FBaseUnitId"].ToString() });
                FentityModel.Add("FOwnerTypeId", dr["FOwnerTypeId"].ToString());
                FentityModel.Add("FOwnerId", new JObject() { ["Fnumber"] = dr["FOwnerId"].ToString() });
                FentityModel.Add("FOwnerTypeOutId", dr["FOwnerTypeOutId"].ToString());
                FentityModel.Add("FOwnerOutId", new JObject() { ["Fnumber"] = dr["FOwnerOutId"].ToString() });
                FentityModel.Add("FKeeperTypeId", dr["FKeeperTypeId"].ToString());
                FentityModel.Add("FKeeperId", new JObject() { ["Fnumber"] = dr["FKeeperId"].ToString() });
                FentityModel.Add("FKeeperTypeOutId", dr["FKeeperTypeOutId"].ToString());
                FentityModel.Add("FKeeperOutId", new JObject() { ["Fnumber"] = dr["FKeeperOutId"].ToString() });
                FentityModel.Add("FQty", dr["FQty"].ToString());
                Fentity.Add(FentityModel);
                model.Add("FBillEntry", Fentity);
                JObject jsonRoot = new JObject()
                {
                    ["Creator"] = "",
                    ["NeedUpDateFields"] = new JArray(),
                    ["NeedReturnFields"] = new JArray(),
                    ["IsDeleteEntry"] = "false",
                    ["SubSystemId"] = "",
                    ["IsVerifyBaseDataField"] = "false",
                    ["Model"] = model
                };
            }
            return true;
        }
        #endregion
        #region 上查
WebAPI/DLL/ClsSc_ICMOBillWorkQtyStatus_Tmp.cs
@@ -100,7 +100,7 @@
                ") ");
                double sumqty = omodel.HQty + omodel.HBadQty + omodel.HWasterQty;  //汇报数量+不良+报废
                //回写生产状态临时表Sc_ICMOBillStatus_Tmp拆分汇报数量 HSplitRelationQty
                oCn.RunProc("update Sc_ICMOBillStatus_Tmp set HSplitRelationQty=HSplitRelationQty+" + sumqty + "  where HICMOBillNo='" + omodel.HICMOBillNo + "'  and HSourceID='" + omodel.HSourceID + "' and  HICMOInterID='" + omodel.HICMOInterID + "' and HICMOEntryID='" + omodel.HICMOEntryID + "'");
                oCn.RunProc("update Sc_ICMOBillStatus_Tmp set HSplitRelationQty=HSplitRelationQty+" + sumqty + "  where HICMOBillNo='" + omodel.HICMOBillNo + "'  and HSourceID='" + omodel.HSourceID + "' and  HICMOInterID='" + omodel.HICMOInterID + "' and HICMOEntryID='" + omodel.HICMOEntryID + "' and HInterID="+ omodel.HSourceInterID.ToString());
                //再次验证 保存是否 合理
                DataSet ds = oCn.RunProcReturn("exec h_p_JIT_ICMOBillWorkQtyStatus_SaveCtrl @HInterId=" + omodel.HInterID + "", "h_p_JIT_ICMOBillWorkQtyStatus_SaveCtrl");
@@ -200,7 +200,7 @@
                //更新生产状态临时状态表数量
                //oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOToICMOReport_Qty " + HICMOInterID.ToString() + "," + HICMOEntryID.ToString() + "");
                //根据源单主内码 设置 生产状态表 完工状态(设置本单对应得源单 为完工状态) 更新生产状态临时状态表数量
                oCn.RunProc("exec h_p_JIT_ICMOBillWorkQtyStatus_AddRelation " + HSourceID.ToString() + "," + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo.ToString() + "',"+ HICMOInterID.ToString() + ","+ HICMOEntryID.ToString()+ "");
                oCn.RunProc("exec h_p_JIT_ICMOBillWorkQtyStatus_AddRelation " + HSourceID.ToString() + "," + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo.ToString() + "'," + HICMOInterID.ToString() + "," + HICMOEntryID.ToString() + "");
                sReturn = "审核单据成功!";
                oCn.Commit();
                //生成调拨单