| | |
| | | //获取最大单据号 |
| | | if (i == 1) //首单获取工单号 |
| | | { |
| | | sql = @"select isnull(max(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code))),0)+1 as worknumb from TK_Wrk_Man where m_po=@erpordercode"; |
| | | sql = @"select isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0)+1 as worknumb |
| | | from TK_Wrk_Man where m_po=@erpordercode"; |
| | | dynamicParams.Add("@erpordercode", erpordercode); |
| | | var data = DapperHelper.selectdata(sql, dynamicParams); |
| | | num = Convert.ToInt32(data.Rows[0]["WORKNUMB"].ToString()); |
| | |
| | | inner join TFlw_Rteqp D on C.stepcode=D.step_code |
| | | inner join TEqpInfo E on D.eqp_code=E.code |
| | | left join TOrganization F on E.wksp_code=F.org_code |
| | | where A.code=@routecode and M.materiel_code=@partcode "; |
| | | where A.code=@routecode and M.materiel_code=@partcode and E.enable='Y'"; |
| | | dynamicParams.Add("@partcode", partcode); |
| | | dynamicParams.Add("@routecode", routecode); |
| | | var data = DapperHelper.selectdata(sql, dynamicParams); |
| | |
| | | return mes; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region【生产管理、工单新增、编辑时,选择排程是时获取物料清单版本号】 |
| | | public static ToMessage JobCreationSonAddVison(string partnumber) |
| | |
| | | return mes; |
| | | } |
| | | } |
| | | //判断工作站(设备)是否可用 |
| | | sql = @"select B.step_code from TFlw_Rout A |
| | | inner join TFlw_Rtdt B on A.code=B.rout_code |
| | | where A.code=@routecode"; |
| | | dynamicParams.Add("@routecode", routecode); |
| | | var dtck1 = DapperHelper.selectdata(sql, dynamicParams); |
| | | for (int i = 0; i < dtck1.Rows.Count; i++) |
| | | { |
| | | //工序查找设备 |
| | | sql = @"select E.code,E.name,E.enable |
| | | from TFlw_Rteqp C |
| | | left join TEqpInfo E on C.eqp_code=E.code |
| | | where C.step_code=@step_code"; |
| | | dynamicParams.Add("@step_code", dtck1.Rows[i]["step_code"].ToString()); |
| | | var dtck2 = DapperHelper.selectdata(sql, dynamicParams); |
| | | int query = dtck2.AsEnumerable().Where<DataRow>(a => a["enable"].ToString() =="N").Count(); |
| | | if (dtck1.Rows.Count == query) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工艺路线对应工序【" + dtck.Rows[i]["step_code"].ToString() + "】,设备不可用!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | } |
| | | //判断工艺路线对应工序关联的工作站是否有设置节拍工价 |
| | | sql = @"select AA.step_code,AA.eqp_code,AA.flwtype,S.unprice from ( |
| | | select A.code,B.step_code,C.eqp_code,S.flwtype from TFlw_Rout A |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = e.Message; |
| | | mes.data = null; |
| | | } |
| | | return mes; |
| | | } |
| | | #endregion |
| | | |
| | | #region[MES工单新增、获取工单号] |
| | | public static ToMessage AddMesOrderCodeSearch() |
| | | { |
| | | string sql = ""; |
| | | string wo_code = ""; |
| | | var dynamicParams = new DynamicParameters(); |
| | | try |
| | | { |
| | | //获取单据号 |
| | | sql = @"SELECT 'SGPO'+CONVERT(varchar(12) , getdate(), 112 )+'_'+cast(isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0)+1 as varchar) as numct |
| | | FROM TK_Wrk_Man where wo_code like '%SGPO%'"; |
| | | var data = DapperHelper.selecttable(sql); |
| | | mes.code = "200"; |
| | | mes.Message = "查询成功!"; |
| | | mes.data = data.Rows[0]["numct"].ToString(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | |
| | | #endregion |
| | | |
| | | |
| | | #region[生产开报工扫码获取当前工序对应的设备(自制)] |
| | | public static ToMessage MesOrderStepEqpSearch(string orderstepqrcode) |
| | | { |
| | | var sql = ""; |
| | | string search = "";//定义一个查询参数,查询条件有前端传入 |
| | | string ordercode = ""; |
| | | string stepcode = ""; |
| | | var dynamicParams = new DynamicParameters(); |
| | | try |
| | | { |
| | | if (orderstepqrcode != "" && orderstepqrcode != null) |
| | | { |
| | | string[] arra = orderstepqrcode.Split(';'); |
| | | if (arra.Length == 1) //工单号二维码 |
| | | { |
| | | ordercode = arra[0]; //获取指定字符串前面的字符 |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "请扫描工序二维码!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | if (arra.Length == 2) //工单号+工序号二维码 |
| | | { |
| | | ordercode = arra[0]; //获取指定字符串前面的字符 |
| | | stepcode = arra[1]; //获取指定字符串前面的字符 |
| | | } |
| | | } |
| | | if (stepcode != "") |
| | | { |
| | | //查找当前工序属性 |
| | | sql = @"select * from TStep where stepcode=@stepcode"; |
| | | dynamicParams.Add("@stepcode", stepcode); |
| | | var data0 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (data0.Rows.Count > 0) |
| | | { |
| | | if (data0.Rows[0]["FLWTYPE"].ToString() == "W") |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序任务为外协工序任务,请前往外协操作页签执行!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | } |
| | | } |
| | | //根据条件查询工单工序设备(自制工序) |
| | | sql = @"select B.eqp_code,E.name as eqp_name from TK_Wrk_Step A |
| | | inner join TFlw_Rteqp B on A.step_code=B.step_code |
| | | left join TEqpInfo E on B.eqp_code=E.code |
| | | where B.style='E' and A.wo_code=@ordercode and A.step_code=@stepcode |
| | | order by B.eqp_code"; |
| | | dynamicParams.Add("@ordercode", ordercode); |
| | | dynamicParams.Add("@stepcode", stepcode); |
| | | var data = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (data.Rows.Count > 0) |
| | | { |
| | | mes.code = "200"; |
| | | mes.count = 0; |
| | | mes.Message = "查询成功!"; |
| | | mes.data = data; |
| | | return mes; |
| | | } |
| | | else |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序任务无可执行设备!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = e.Message; |
| | | mes.data = null; |
| | | } |
| | | return mes; |
| | | } |
| | | #endregion |
| | | |
| | | #region[生产开报工扫码获取当前工序对应的供方(外协)] |
| | | public static ToMessage MesOrderWxStepEqpSearch(string orderstepqrcode) |
| | | { |
| | | var sql = ""; |
| | | string search = ""; |
| | | string ordercode = ""; |
| | | string stepcode = ""; |
| | | var dynamicParams = new DynamicParameters(); |
| | | try |
| | | { |
| | | if (orderstepqrcode != "" && orderstepqrcode != null) |
| | | { |
| | | string[] arra = orderstepqrcode.Split(';'); |
| | | if (arra.Length == 1) //工单号二维码 |
| | | { |
| | | ordercode = arra[0]; //获取指定字符串前面的字符 |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "请扫描工序二维码!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | if (arra.Length == 2) //工单号+工序号二维码 |
| | | { |
| | | ordercode = arra[0]; //获取指定字符串前面的字符 |
| | | stepcode = arra[1]; //获取指定字符串前面的字符 |
| | | } |
| | | } |
| | | if (stepcode != "") |
| | | { |
| | | //查找当前工序属性 |
| | | sql = @"select * from TStep where stepcode=@stepcode"; |
| | | dynamicParams.Add("@stepcode", stepcode); |
| | | var data0 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (data0.Rows.Count > 0) |
| | | { |
| | | if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序任务为自制工序任务,请前往自制操作页签执行!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | } |
| | | } |
| | | //根据条件查询工单工序外协供方(外协工序) |
| | | sql = @"select B.eqp_code as customercode,C.name as customername from TK_Wrk_Step A |
| | | inner join TFlw_Rteqp B on A.step_code=B.step_code |
| | | left join TCustomer C on B.eqp_code=C.code |
| | | where B.style='W' and A.wo_code=@ordercode and A.step_code=@stepcode |
| | | order by B.eqp_code"; |
| | | dynamicParams.Add("@ordercode", ordercode); |
| | | dynamicParams.Add("@stepcode", stepcode); |
| | | var data = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (data.Rows.Count > 0) |
| | | { |
| | | mes.code = "200"; |
| | | mes.count = 0; |
| | | mes.Message = "查询成功!"; |
| | | mes.data = data; |
| | | return mes; |
| | | } |
| | | else |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序无可执行外协供方!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = e.Message; |
| | | mes.data = null; |
| | | } |
| | | return mes; |
| | | } |
| | | #endregion |
| | | |
| | | #region[生产开报工扫码获取工单对应工序任务(自制)] |
| | | public static ToMessage MesOrderStepSearch(string orderstepqrcode, int startNum, int endNum, string prop, string order) |
| | |
| | | //获取工序关联的设备 |
| | | sql = @"select B.code,B.name from TFlw_Rteqp A |
| | | left join TEqpInfo B on A.eqp_code=B.code |
| | | where A.style='E' and A.step_code=@stepcode"; |
| | | where A.style='E' and A.step_code=@stepcode and B.enable='Y'"; |
| | | dynamicParams.Add("@wo_code", ordercode); |
| | | dynamicParams.Add("@stepcode", stepcode); |
| | | var data = DapperHelper.selectdata(sql, dynamicParams); |
| | | mes.code = "200"; |
| | |
| | | return list; |
| | | } |
| | | bool IsCap = false; //是否设置产能 |
| | | //通过工单查找工艺路线对应关键工序所关联的设备是否可用 |
| | | //通过工单查找对应车间工艺路线下关键工序所关联的设备是否可用 |
| | | sql = @"select distinct C.eqp_code ,D.Enable from TK_Wrk_Man A |
| | | left join TFlw_Rout K on A.route_code=K.code |
| | | left join TFlw_Rtdt B on K.code=B.rout_code and B.first_choke='Y' |
| | | left join TFlw_Rteqp C on B.step_code= C.step_code |
| | | left join TEqpInfo D on C.eqp_code=D.code |
| | | where A.wo_code=@wocode and A.materiel_code=@partcode"; |
| | | where A.wo_code=@wocode and A.materiel_code=@partcode and D.wksp_code=@wkshpcode"; |
| | | dynamicParams.Add("@wocode", wocode); |
| | | dynamicParams.Add("@partcode", partcode); |
| | | dynamicParams.Add("@wkshpcode", wkshpcode); |
| | | var dt_0 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (dt_0.Rows.Count > 0) |
| | | { |