yl
2023-10-31 c6183753ab694aa8840c0b7f4460c2700c1490cd
VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -22,7 +22,7 @@
        #region[ERP订单查询]
        public static ToMessage ErpOrderSearch(string stu_torgcode,string stu_torgtypecode,string erporderstus, string erpordercode,string saleordercode, string partcode, string partname, string partspec, int startNum, string paydatestartdate, string paydateenddate, string paydatestartdate1, string paydateenddate2, string creatuser, int endNum, string prop, string order)
        public static ToMessage ErpOrderSearch(string stu_torgcode, string stu_torgtypecode, string erporderstus, string erpordercode, string saleordercode, string partcode, string partname, string partspec, int startNum, string paydatestartdate, string paydateenddate, string paydatestartdate1, string paydateenddate2, string creatuser, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -124,7 +124,7 @@
        #endregion
        #region[ERP订单下达]
        public static ToMessage MarkSaveErpOrder(string erporderid, string erpordercode,string saleordercode, string partcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate, string username)
        public static ToMessage MarkSaveErpOrder(string erporderid, string erpordercode, string saleordercode, string partcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate, string username)
        {
            var sql = "";
            List<object> list = new List<object>();
@@ -179,7 +179,7 @@
                                m_po = erpordercode,
                                username = username,
                                CreateDate = DateTime.Now.ToString(),
                                saleOrderCode=saleordercode,
                                saleOrderCode = saleordercode,
                                saleOrderDeliveryDate = Convert.ToDateTime(saleOrderDeliveryDate)
                            }
                        });
@@ -205,7 +205,7 @@
                                m_po = erpordercode,
                                username = username,
                                CreateDate = DateTime.Now.ToString(),
                                saleOrderCode=saleordercode,
                                saleOrderCode = saleordercode,
                                saleOrderDeliveryDate = Convert.ToDateTime(saleOrderDeliveryDate)
                            }
                        });
@@ -256,6 +256,101 @@
                    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 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)
            {
@@ -403,7 +498,7 @@
        #region[MES工单查询]
        public static ToMessage MesOrderSearch(string stu_torgcode,string stu_torgtypecode,string mesorderstus, string mesordercode, string sourceorder,string saleordercode, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
        public static ToMessage MesOrderSearch(string stu_torgcode, string stu_torgtypecode, string mesorderstus, string mesordercode, string sourceorder, string saleordercode, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -511,7 +606,7 @@
        #endregion
        #region[MES报废补单工单查询]
        public static ToMessage MesBadOrderSearch(string mesordercode, string sourceorder,string saleordercode, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
        public static ToMessage MesBadOrderSearch(string mesordercode, string sourceorder, string saleordercode, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -594,7 +689,7 @@
        #endregion
        #region[产品编码查找工艺路线下拉接口]
        public static ToMessage PartSelectRoute(string partcode,string wkshopcode)
        public static ToMessage PartSelectRoute(string partcode, string wkshopcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
@@ -624,7 +719,7 @@
        #endregion
        #region[工艺路线查找车间下拉接口]
        public static ToMessage RouteSelectWkshop(string stu_torgcode,string stu_torgtypecode,string partcode)
        public static ToMessage RouteSelectWkshop(string stu_torgcode, string stu_torgtypecode, string partcode)
        {
            string sql = "";
            string search = "";
@@ -654,7 +749,7 @@
                        inner join TEqpInfo  E on D.eqp_code=E.code
                        left join TOrganization F on E.wksp_code=F.org_code
                        left join TOrganization L on  F.parent_id=L.id
                        where M.materiel_code=@partcode and E.enable='Y' "+search;
                        where M.materiel_code=@partcode and E.enable='Y' " + search;
                dynamicParams.Add("@partcode", partcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
@@ -726,7 +821,7 @@
        #endregion
        #region[工单派发选择工艺路线或选择生产车间时判断绑定条件]
        public static ToMessage SelectRouteOrWkshop(string partcode, string routecode, string wkshopcode,string is_steprice)
        public static ToMessage SelectRouteOrWkshop(string partcode, string routecode, string wkshopcode, string is_steprice)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
@@ -1457,7 +1552,7 @@
        #endregion
        #region[生产开报工扫码获取工单对应工序任务(自制)]
        public static ToMessage MesOrderStepSearch(string stu_torgcode,string stu_torgtypecode, string orderstepqrcode, int startNum, int endNum, string prop, string order)
        public static ToMessage MesOrderStepSearch(string stu_torgcode, string stu_torgtypecode, string orderstepqrcode, int startNum, int endNum, string prop, string order)
        {
            var sql = "";
            string search = "";
@@ -1579,7 +1674,7 @@
        #endregion
        #region[生产开报工扫码获取工单对应工序任务(外协)]
        public static ToMessage MesOrderWxStepSearch(string stu_torgcode,string stu_torgtypecode,string orderstepqrcode, int startNum, int endNum, string prop, string order)
        public static ToMessage MesOrderWxStepSearch(string stu_torgcode, string stu_torgtypecode, string orderstepqrcode, int startNum, int endNum, string prop, string order)
        {
            var sql = "";
            string search = "";
@@ -1700,7 +1795,7 @@
        #endregion
        #region[生产开报工扫码获取工单对应工序任务(不良)]
        public static ToMessage MesOrderNgStepSearch(string stu_torgcode,string stu_torgtypecode,string orderstepqrcode, int startNum, int endNum, string prop, string order)
        public static ToMessage MesOrderNgStepSearch(string stu_torgcode, string stu_torgtypecode, string orderstepqrcode, int startNum, int endNum, string prop, string order)
        {
            var sql = "";
            string search = "";
@@ -1928,7 +2023,7 @@
        #endregion
        #region [生产开报工:开工(开始/报工)/外协发料时条件判断及数据返回接口]
        public static ToMessage MesOrderStepStart(string OperType,string stu_torgcode, string SelectType, string orderstepqrcode)
        public static ToMessage MesOrderStepStart(string OperType, string stu_torgcode, string SelectType, string orderstepqrcode)
        {
            var sql = "";
            string search = "";
@@ -1957,10 +2052,10 @@
                    switch (OperType)
                    {
                        case "ZZ":
                            mes = ScanStartReport.ZZEncodingSeach(stu_torgcode, SelectType,ordercode, stepcode);
                            mes = ScanStartReport.ZZEncodingSeach(stu_torgcode, SelectType, ordercode, stepcode);
                            break;
                        case "WX":
                            mes = ScanStartReport.WXEncodingSeach(stu_torgcode,SelectType, ordercode, stepcode);
                            mes = ScanStartReport.WXEncodingSeach(stu_torgcode, SelectType, ordercode, stepcode);
                            break;
                        default:
                            break;
@@ -2032,7 +2127,7 @@
                    mes.Message = "查询成功!";
                    mes.data = data;
                }
                else
                else
                {
                    mes.code = "300";
                    mes.Message = "当前工序未关联生产设备!";
@@ -2051,7 +2146,7 @@
        #endregion
        #region[生产开报工:报工时获取生产班组下拉框]
        public static ToMessage MesOrderStepReportSelectUserGroup(string stu_torgcode,string stu_torgtypecode,string wkshopcode)
        public static ToMessage MesOrderStepReportSelectUserGroup(string stu_torgcode, string stu_torgtypecode, string wkshopcode)
        {
            string sql = "";
            string search = "";
@@ -2081,7 +2176,7 @@
                sql = @"select group_code,group_name from TGroup  A
                        left join TOrganization T on A.torg_code=T.org_code 
                        left join TOrganization as L on T.parent_id=L.id 
                        where 1=1 "+search;
                        where 1=1 " + search;
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -2345,7 +2440,7 @@
                JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(reportuser);
                //判断是否有不良数据
                var groupedItems = defectobjs.GroupBy(item => item.defect_code) // 按编码code分组
                        .Select(group => new { defect_code = group.Key, badqty = group.Sum(item =>Convert.ToDecimal(item.badqty)) }).ToList(); // 汇总数量qty
                        .Select(group => new { defect_code = group.Key, badqty = group.Sum(item => Convert.ToDecimal(item.badqty)) }).ToList(); // 汇总数量qty
                if (groupedItems.Count <= 0)
                {
                    ngqty = 0;
@@ -2414,14 +2509,14 @@
                        });
                    }
                    if (groupedItems.Count>0)
                    if (groupedItems.Count > 0)
                    {
                        //写入缺陷记录表
                        for (int i = 0; i < groupedItems.Count; i++)
                        {
                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date) 
                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty= groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = username, lm_date = date } });
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = username, lm_date = date } });
                        }
                    }
@@ -2492,7 +2587,7 @@
                        {
                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date) 
                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty= groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = username, lm_date = date } });
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = username, lm_date = date } });
                        }
                    }
@@ -2713,14 +2808,14 @@
                                values(@m_id,@wxcode,@in_person,@in_time,@sqty,@ng_qty,@style,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wxcode = wxcode, in_person = inuser, in_time = date, sqty = sqty, ng_qty = ngqty, style = "S", lm_user = username, lm_date = date } });
                    if (groupedItems.Count>0)
                    if (groupedItems.Count > 0)
                    {
                        //写入缺陷记录表
                        for (int i = 0; i < groupedItems.Count; i++)
                        {
                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date) 
                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty= groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = username, lm_date = date } });
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = username, lm_date = date } });
                        }
                    }
@@ -2769,7 +2864,7 @@
                        {
                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date) 
                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty= groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = username, lm_date = date } });
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = username, lm_date = date } });
                        }
                    }
@@ -3193,7 +3288,7 @@
        #endregion
        #region[工序检验,提交]
        public static ToMessage SaveMesOrderStepCheckItem(string stu_torgcode,string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
        public static ToMessage SaveMesOrderStepCheckItem(string stu_torgcode, string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
        {
            var sql = "";
            string checktypename = "";
@@ -3300,7 +3395,7 @@
        #region[MES工单批量关闭查询]
        public static ToMessage MesOrderBitchClosedSearch(string stu_torgcode,string stu_torgtypecode,string mesorderstus, string mesordercode, string sourceorder, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
        public static ToMessage MesOrderBitchClosedSearch(string stu_torgcode, string stu_torgtypecode, string mesorderstus, string mesordercode, string sourceorder, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";