VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -1591,7 +1591,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 wocode,string partcode,string partname,string partspec, int startNum, int endNum, string prop, string order)
        {
            var sql = "";
            string search = "";
@@ -1601,17 +1601,12 @@
            var total = 0; //总条数
            try
            {
                if (orderstepqrcode != "" && orderstepqrcode != null)
                if (wocode != "" && wocode != null)
                {
                    string[] arra = orderstepqrcode.Split(';');
                    string[] arra = wocode.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) //工单号+工序号二维码
                    {
@@ -1619,9 +1614,9 @@
                        stepcode = arra[1]; //获取指定字符串前面的字符
                    }
                    if (ordercode != "" && stepcode == null) //工单号不为空,工序号为空
                    if (ordercode != "" && (stepcode == null || stepcode == "")) //工单号不为空,工序号为空
                    {
                        search += "and A.wo_code=@ordercode ";
                        search += "and A.wo_code like '%'+@ordercode+'%' ";
                        dynamicParams.Add("@ordercode", ordercode);
                    }
                    if (ordercode != "" && stepcode != "") //工单号不为空,工序号不为空
@@ -1632,14 +1627,6 @@
                        dynamicParams.Add("@stepcode", stepcode);
                    }
                }
                //else
                //{
                //    mes.code = "300";
                //    mes.count = 0;
                //    mes.Message = "二维码信息为空!";
                //    mes.data = null;
                //    return mes;
                //}
                if (stepcode != "")
                {
                    //查找当前工序属性
@@ -1673,9 +1660,24 @@
                    default:
                        break;
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and M.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and M.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and M.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                //根据条件查询工单工序任务(自制工序)
                sql = @"select A.status,A.wo_code,B.route_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.bad_qty,A.plan_startdate,A.plan_enddate,B.lm_date,
                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.start_qty,A.good_qty,A.ng_qty,A.bad_qty,A.plan_startdate,A.plan_enddate,B.lm_date,
                        B.m_po,W.saleOrderCode
                        from TK_Wrk_Step A
                        left join TK_Wrk_Man B on A.wo_code=B.wo_code
@@ -1696,7 +1698,7 @@
                }
                else
                {
                    mes.code = "300";
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "无可执行的生产任务,任务已完成或已关闭!";
                    mes.data = null;
@@ -2418,34 +2420,36 @@
                string date = DateTime.Now.ToString(); //获取系统时间
                list.Clear();
                //判断是否有开工记录
                sql = @"select *  from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code  and eqp_code=@eqpcode and style='S'";
                sql = @"select *  from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code  and style='S'";
                dynamicParams.Add("@wo_code", mesordercode);
                dynamicParams.Add("@step_code", stepcode);
                dynamicParams.Add("@eqpcode", eqpcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "当前工序任务设备已开工!";
                    mes.data = null;
                    return mes;
                    //修改开报工记录表(开工数量)
                    sql = @"update  TK_Wrk_Record set start_qty=start_qty+@startqty where wo_code=@mesordercode and step_seq=@stepseq and step_code=@stepcode and materiel_code=@partcode and style=@style";
                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, partcode = partcode, startqty = startqty, style = "S"} });
                    //修改工单工序表(开工数量)
                    sql = @"update  TK_Wrk_Step set start_qty=start_qty+@startqty where wo_code=@mesordercode and step_code=@stepcode";
                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode,stepcode = stepcode, startqty = startqty } });
                }
                else
                {
                //写入开报工记录表
                sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,eqp_code,materiel_code,open_person,open_time,task_qty,start_qty,style,lm_user,lm_date) 
                                values(@mesordercode,@stepseq,@stepcode,@eqpcode,@partcode,@username,@opentime,@taskqty,@startqty,@style,@lm_user,@lm_date)";
                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, eqpcode = eqpcode, partcode = partcode, username = username, opentime = date, taskqty = taskqty, startqty = startqty, style = "S", lm_user = username, lm_date = date } });
                //回写工单工序表状态为START: 开工
                sql = @"update TK_Wrk_Step set status='START'  where wo_code=@mesordercode and step_code=@stepcode";
                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode } });
                    sql = @"update TK_Wrk_Step set status='START',start_qty=@startqty  where wo_code=@mesordercode and step_code=@stepcode";
                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, startqty = startqty } });
                //回写工单工序表状态为已开工
                sql = @"update TK_Wrk_Step set status='START'  where wo_code=@mesordercode and step_code=@stepcode";
                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode } });
                //回写工单表状态为: 开工:START 
                sql = @"update TK_Wrk_Man set status='START'  where wo_code=@mesordercode";
                list.Add(new { str = sql, parm = new { mesordercode = mesordercode } });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
@@ -2506,21 +2510,21 @@
                dynamicParams.Add("@step_code", stepcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                //获取开工记录的默认选中的设备(产线)与报工时的设备产线做对比判断
                sql = @"select A.eqp_code,B.name  from TK_Wrk_Record A
                        inner join TEqpInfo B on A.eqp_code=B.code
                        where A.wo_code=@wo_code and A.step_code=@step_code and eqp_code=@eqpcode  and A.style='S'";
                dynamicParams.Add("@wo_code", mesordercode);
                dynamicParams.Add("@step_code", stepcode);
                dynamicParams.Add("@eqpcode", eqpcode);
                var da = DapperHelper.selectdata(sql, dynamicParams);
                if (da.Rows[0]["EQP_CODE"].ToString() != eqpcode)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "操作失败,当前报工产线应为:" + da.Rows[0]["NAME"].ToString() + "!";
                    mes.data = null;
                    return mes;
                }
                //sql = @"select A.eqp_code,B.name  from TK_Wrk_Record A
                //        inner join TEqpInfo B on A.eqp_code=B.code
                //        where A.wo_code=@wo_code and A.step_code=@step_code and eqp_code=@eqpcode  and A.style='S'";
                //dynamicParams.Add("@wo_code", mesordercode);
                //dynamicParams.Add("@step_code", stepcode);
                //dynamicParams.Add("@eqpcode", eqpcode);
                //var da = DapperHelper.selectdata(sql, dynamicParams);
                //if (da.Rows[0]["EQP_CODE"].ToString() != eqpcode)
                //{
                //    mes.code = "300";
                //    mes.count = 0;
                //    mes.Message = "操作失败,当前报工产线应为:" + da.Rows[0]["NAME"].ToString() + "!";
                //    mes.data = null;
                //    return mes;
                //}
                if (data.Rows.Count > 0)
                {
                    //获取主表最大ID