| | |
| | | /// <summary> |
| | | /// 扫码信息为工单+工序条码 |
| | | /// </summary> |
| | | /// <param name="stu_torgcode">所属组织编码</param> |
| | | /// <param name="SelectType">设备编码</param> |
| | | /// <param name="ordercode">工单编号</param> |
| | | /// <param name="stepcode">工序编码</param> |
| | | /// <returns></returns> |
| | | public static ToMessage ZZEncodingSeach(string ordercode, string stepcode) |
| | | public static ToMessage ZZEncodingSeach(string stu_torgcode, string SelectType, string ordercode, string stepcode) |
| | | { |
| | | var sql = ""; |
| | | string flwtype = ""; //工序属性 |
| | |
| | | var dynamicParams = new DynamicParameters(); |
| | | try |
| | | { |
| | | |
| | | //判断当前工单是否关闭 |
| | | sql = @"select * from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode and status='CLOSED'"; |
| | | dynamicParams.Add("@ordercode", ordercode); |
| | | dynamicParams.Add("@stu_torgcode", stu_torgcode); |
| | | var da0 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (da0.Rows.Count > 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工单已关闭,不允许开报工操作!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | |
| | | //0.判断当前工单所属车间是否为当前登录人员车间 |
| | | sql = @"select * from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode"; |
| | | dynamicParams.Add("@ordercode", ordercode); |
| | | dynamicParams.Add("@stu_torgcode", stu_torgcode); |
| | | var da1 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (da1.Rows.Count<=0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "不是本车间生产任务,不允许操作!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | |
| | | //1.根据工单+工序查找当前工序是否首道工序 |
| | | sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.isbott,A.isend,L.org_code,L.org_name |
| | | from TK_Wrk_Step A |
| | |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | |
| | | switch (flwtype) |
| | | { |
| | | case "Z": //自制工序 |
| | |
| | | //1.首道工序时,判断是否有开工记录 |
| | | sql = @"select * from TK_Wrk_Record R |
| | | left join TEqpInfo E on R.eqp_code=E.code |
| | | where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'"; |
| | | where R.wo_code=@ordercode and R.step_code=@stepcode and eqp_code=@eqp_code and R.style='S'"; |
| | | dynamicParams.Add("@ordercode", ordercode); |
| | | dynamicParams.Add("@stepcode", stepcode); |
| | | dynamicParams.Add("@eqp_code", SelectType); |
| | | var data0 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (data0.Rows.Count > 0) //有开工记录 |
| | | { |
| | |
| | | //1.非首道工序时,判断本道是否有开工记录 |
| | | sql = @"select * from TK_Wrk_Record R |
| | | left join TEqpInfo E on R.eqp_code=E.code |
| | | where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'"; |
| | | where R.wo_code=@ordercode and R.step_code=@stepcode and eqp_code=@eqp_code and R.style='S'"; |
| | | dynamicParams.Add("@ordercode", ordercode); |
| | | dynamicParams.Add("@stepcode", stepcode); |
| | | dynamicParams.Add("@eqp_code", SelectType); |
| | | var data1 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (data1.Rows.Count > 0)//本道有开工记录 |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | if (sgood_qty == null || sgood_qty == 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 合格产出为0,本道不允许开报工!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | rt.eqpcode = data1.Rows[0]["code"].ToString(); //开工设备编码 |
| | | rt.eqpname = data1.Rows[0]["name"].ToString(); //开工设备名称 |
| | | rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量 |
| | |
| | | } |
| | | else |
| | | { |
| | | if (sqty == null || sqty == 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 合格收料为0,本道不允许开报工!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | rt.eqpcode = data1.Rows[0]["code"].ToString(); //开工设备编码 |
| | | rt.eqpname = data1.Rows[0]["name"].ToString(); //开工设备名称 |
| | | rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量 |
| | |
| | | var data3 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (data3.Rows.Count > 0) //上道有报工 |
| | | { |
| | | decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //本道报工总数量 |
| | | decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //上道报工总数量 |
| | | decimal sybqty = sgood_qty; //本道剩余可报数量=上道报工数量 |
| | | |
| | | if (sgood_qty == null || sgood_qty == 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 合格产出为0,本道不允许开报工!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | rt.eqpcode = data1.Rows[0]["code"].ToString(); //开工设备编码 |
| | | rt.eqpname = data1.Rows[0]["name"].ToString(); //开工设备名称 |
| | | rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量 |
| | |
| | | { |
| | | decimal sqty = data3.AsEnumerable().Select(d =>d.Field<decimal>("SQTY")).Sum();//上道收料数量 |
| | | decimal sybqty = sqty; //本道剩余可收数量=上道收料数量 |
| | | |
| | | if (sqty == null || sqty == 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 合格收料为0,本道不允许开报工!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | rt.eqpcode = data1.Rows[0]["code"].ToString(); //开工设备编码 |
| | | rt.eqpname = data1.Rows[0]["name"].ToString(); //开工设备名称 |
| | | rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量 |
| | |
| | | var data2 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (data2.Rows.Count > 0) //上到工序有报工 |
| | | { |
| | | string good_qty = data2.Rows[0]["GOOD_QTY"].ToString();//报工数量 |
| | | string ng_qty = data2.Rows[0]["NG_QTY"].ToString();// 不良数量 |
| | | string bad_qty = data2.Rows[0]["BAD_QTY"].ToString();// 报废数量 |
| | | |
| | | decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();//报工数量 |
| | | decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 不良数量 |
| | | decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();// 报废数量 |
| | | if (good_qty == null || good_qty == 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 合格产出为0,本道不允许开报工!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量 |
| | | rt.startqty = decimal.Parse(good_qty); //开工数量=(上一道的报工数量) |
| | | rt.noreportqty = decimal.Parse(good_qty); //未报数量=(上一道的报工数量) |
| | | rt.startqty = good_qty; //开工数量=(上一道的报工总数量) |
| | | rt.noreportqty = good_qty; //未报数量=(上一道的报工总数量) |
| | | rt.reportqty = 0; //已报数量 |
| | | mes.code = "200"; |
| | | mes.count = 0; |
| | |
| | | decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//收料数量 |
| | | decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 不良数量 |
| | | decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();// 报废数量 |
| | | |
| | | if (sqty == null || sqty == 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 合格收料为0,本道不允许开报工!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量 |
| | | rt.startqty = sqty; //开工数量=(上一道的收料数量) |
| | | rt.noreportqty = sqty; //未报数量=(上一道的收料数量) |
| | |
| | | /// <summary> |
| | | /// 生产开报工:外协工序任务开报工判断:工单号+工序 |
| | | /// </summary> |
| | | /// <param name="OperType">操作类型</param> |
| | | /// <param name="stu_torgcode">所属组织编码</param> |
| | | /// <param name="SelectType">操作类型</param> |
| | | /// <param name="ordercode">工单编号</param> |
| | | /// <param name="stepcode">工序编码</param> |
| | | /// <returns></returns> |
| | | public static ToMessage WXEncodingSeach(string SelectType, string ordercode, string stepcode) |
| | | public static ToMessage WXEncodingSeach(string stu_torgcode, string SelectType, string ordercode, string stepcode) |
| | | { |
| | | var sql = ""; |
| | | string flwtype = ""; //工序属性 |
| | |
| | | var dynamicParams = new DynamicParameters(); |
| | | try |
| | | { |
| | | //判断当前工单是否关闭 |
| | | sql = @"select * from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode and status='CLOSED'"; |
| | | dynamicParams.Add("@ordercode", ordercode); |
| | | dynamicParams.Add("@stu_torgcode", stu_torgcode); |
| | | var da0 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (da0.Rows.Count > 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工单已关闭,不允许开报工操作!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | |
| | | //0.判断当前工单所属车间是否为当前登录人员车间 |
| | | sql = @"select * from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode"; |
| | | dynamicParams.Add("@ordercode", ordercode); |
| | | dynamicParams.Add("@stu_torgcode", stu_torgcode); |
| | | var da1 = DapperHelper.selectdata(sql, dynamicParams); |
| | | if (da1.Rows.Count <= 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "不是本车间生产任务,不允许操作!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | |
| | | //1.根据工单+工序查找当前工序是否首道工序 |
| | | sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.isbott,A.isend,L.org_code,L.org_name |
| | | from TK_Wrk_Step A |
| | |
| | | } |
| | | else |
| | | { |
| | | if (sgood_qty == null || sgood_qty == 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 合格产出为0,本道不允许发料!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量 |
| | | rt.noreportqty = sybqty; //未发数量=剩余可发数量 |
| | | rt.reportqty = sqty + ng_qty+bad_qty; //已发数量= 本道发料数量+本道不良数量+本道报废数量 |
| | |
| | | } |
| | | else |
| | | { |
| | | if (ssqty == null || ssqty == 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 合格收料为0,本道不允许发料!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量 |
| | | rt.noreportqty = sybqty; //未发数量=剩余可发数量 |
| | | rt.reportqty = sqty + ng_qty+bad_qty; //已发数量= 本道发料数量+本道不良数量+本道报废数量 |
| | |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 未报工,本道不允许发料!"; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 未发料,本道不允许发料!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | |
| | | decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //本道报工总数量 |
| | | |
| | | decimal sybqty = sgood_qty;//本道剩余可发数量=上道报工总数量 |
| | | |
| | | if (sgood_qty == null || sgood_qty == 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 合格产出为0,本道不允许发料!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量 |
| | | rt.noreportqty = sybqty; //未发数量=剩余可发数量 |
| | | rt.reportqty = 0; //已发数量 |
| | |
| | | } |
| | | else |
| | | { |
| | | if (ssqty == null || ssqty == 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.Message = "当前工序:" + data.Rows[0]["STEPNAME"].ToString() + " 的上道工序:" + data0.Rows[0]["STEPNAME"].ToString() + " 合格收料为0,本道不允许发料!"; |
| | | mes.data = null; |
| | | return mes; |
| | | } |
| | | rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量 |
| | | rt.noreportqty = sybqty; //未发数量=剩余可发数量 |
| | | rt.reportqty = 0; //已发数量 |