yl
2023-10-31 c6183753ab694aa8840c0b7f4460c2700c1490cd
VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -268,6 +268,101 @@
        }
        #endregion
        #region[ERP订单批量下达]
        public static ToMessage MarkBatchSaveErpOrder(List<ErpOrderBatch> obj, string username)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                var groupedModels = obj.GroupBy(m => m.erpordercode);
                foreach (var group in groupedModels)
                {
                    string erpordercode = group.Key;
                    int count = 1;
                    foreach (var model in group)
                    {
                        //获取当前最大工单号
                        sql = @"select isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0) as worknumb
                                from TK_Wrk_Man where  m_po=@erpordercode";
                        dynamicParams.Add("@erpordercode", model.erpordercode);
                        var data = DapperHelper.selectdata(sql, dynamicParams);
                        int num = Convert.ToInt32(data.Rows[0]["WORKNUMB"].ToString());
                        string wo = model.erpordercode + "_" + (num + count);
                        //写入工单表
                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,materiel_code,sourceid,m_po,lm_user,lm_date,saleOrderCode,saleOrderDeliveryDate) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@materiel_code,@sourceid,@m_po,@username,@CreateDate,@saleOrderCode,@saleOrderDeliveryDate)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                wo_code = wo,
                                wotype = "PO",
                                status = "NEW",
                                wkshp_code = model.wkshopcode,
                                plan_qty = decimal.Parse(model.erpqty),  //订单数量
                                stck_code = model.warehousecode,
                                materiel_code = model.partcode,
                                sourceid = model.erporderid,
                                m_po = model.erpordercode,
                                username = username,
                                CreateDate = DateTime.Now.ToString(),
                                saleOrderCode = model.saleordercode,
                                saleOrderDeliveryDate = Convert.ToDateTime(model.saleOrderDeliveryDate)
                            }
                        });
                        //更新订单状态
                        sql = @"update  TKimp_Ewo set status='CREATED',saleOrderDeliveryDate=@saleOrderDeliveryDate,relse_qty=relse_qty+@sumqty where wo=@wo and id=@erporderid";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                wo = model.erpordercode,
                                erporderid = model.erporderid,
                                sumqty = decimal.Parse(model.markqty),
                                saleOrderDeliveryDate = Convert.ToDateTime(model.saleOrderDeliveryDate)
                            }
                        });
                        count++;
                    }
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "批量下达MES工单成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "批量下达MES工单成功失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[ERP订单关闭]
        public static ToMessage ClosedErpOrder(string erporderid, string erpordercode, string username)
        {