VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -1572,16 +1572,17 @@
                    dynamicParams.Add("@partspec", partspec);
                }
                //根据条件查询工单工序任务(自制工序)
                sql = @"select A.id,A.status,B.dept_code,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
                sql = @"select A.id,A.status,E.dept_id,B.dept_code,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,E.materiel_id,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.laborbad_qty,A.materielbad_qty,B.lm_date,
                        E.sbid,B.m_po,E.saleOrderCode,E.saleOrderDetailId,E.unitid,E.unitcode,E.unitname,K.code as stockcode,k.name as stockname
                        E.sbid,E.woid as mpoid,B.m_po,E.saleOrderid,E.saleOrderCode,E.saleOrderDetailId,E.unitid,E.unitcode,E.unitname,
                        COALESCE(K.noid, E.stck_id) as stockid,COALESCE(K.code, E.stck_code) as stockcode,k.name as stockname,E.voucherdate
                        from TK_Wrk_Step A
                        left join TK_Wrk_Man B on A.wo_code=B.wo_code
                        left join TMateriel_Info M on B.materiel_code=M.partcode
                        left join TStep S on A.step_code=S.stepcode
                        left join TOrganization T on B.wkshp_code=T.torg_code
                        left join TKimp_Ewo E on B.sourceid=E.id and B.m_po=E.wo
                        left join TSecStck K on M.idwarehouse=K.code
                        left join TSecStck K on COALESCE(M.idwarehouse, E.stck_code)=K.code
                        where A.status in('ALLO','START') and S.flwtype='Z'  " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
@@ -1677,18 +1678,19 @@
                    dynamicParams.Add("@partspec", partspec);
                }
                //根据条件查询工单工序任务(自制工序)
                sql = @"select A.id,A.status,B.dept_code,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
                sql = @"select A.id,A.status,E.dept_id,B.dept_code,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,E.materiel_id,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,
                        (select isnull(sum(fqty),0) as fqty   from TK_Wrk_OutRecord where wo_code=A.wo_code and step_code=A.step_code and style='F') as fqty,
                        A.laborbad_qty,A.materielbad_qty,A.plan_startdate,A.plan_enddate,B.lm_date,
                        E.sbid,B.m_po,E.saleOrderCode,E.saleOrderDetailId,E.unitid,E.unitcode,E.unitname,K.code as stockcode,k.name as stockname
                        E.sbid,E.woid as mpoid,B.m_po,E.saleOrderid,E.saleOrderCode,E.saleOrderDetailId,E.unitid,E.unitcode,E.unitname,
                        COALESCE(K.noid, E.stck_id) as stockid,COALESCE(K.code, E.stck_code) as stockcode,k.name as stockname,E.voucherdate
                        from TK_Wrk_Step A
                        left join TK_Wrk_Man B on A.wo_code=B.wo_code
                        left join TMateriel_Info M on B.materiel_code=M.partcode
                        left join TStep S on A.step_code=S.stepcode
                        left join TOrganization T on B.wkshp_code=T.torg_code
                        left join TKimp_Ewo E on B.sourceid=E.id and B.m_po=E.wo
                        left join TSecStck K on M.idwarehouse=K.code
                        left join TSecStck K on COALESCE(M.idwarehouse, E.stck_code)=K.code
                        where A.status in('ALLO','START') and S.flwtype='W'  " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
@@ -1977,6 +1979,15 @@
                    ngqty = groupedItems.Sum(item => Convert.ToDecimal(item.badqty));
                }
                list.Clear();
                //判断物料是否为空
                if (partcode == "" || partcode == null)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "当前报工,物料编码为空,请检查存货信息!";
                    mes.data = null;
                    return mes;
                }
                //判断是否有开工记录(无新增)
                sql = @"select *  from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code and style='S' and eqp_code=@eqpcode";
                dynamicParams.Add("@wo_code", mesordercode);
@@ -2272,6 +2283,15 @@
                }
                list.Clear();
                //判断物料是否为空
                if (partcode == "" || partcode == null)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "当前报工,物料编码为空,请检查存货信息!";
                    mes.data = null;
                    return mes;
                }
                //判断是否有收料记录(有:(同工单+工序+外协供方修改) 无:新增)
                sql = @"select *  from TK_Wrk_OutRecord where wo_code=@wo_code and step_code=@step_code and wx_code=@wx_code and style='S'";
                dynamicParams.Add("@wo_code", mesordercode);
@@ -2758,7 +2778,7 @@
                                    FROM TUser U
                                    WHERE CHARINDEX(',' + U.usercode + ',', ',' + B.report_person + ',') > 0
                                    FOR XML PATH('')), 1, 1, '') AS username,
                            B.report_date,B.report_qty,B.ng_qty,B.laborbad_qty,B.materielbad_qty,'' as wx_code,'' as wx_name
                            B.report_date,B.report_qty,B.ng_qty,B.laborbad_qty,B.materielbad_qty,A.inhouseqty,'' as wx_code,'' as wx_name
                            from TK_Wrk_Record A
                            inner join TK_Wrk_RecordSub B on A.id=B.m_id
                            left join TK_Wrk_Man M on A.wo_code=M.wo_code
@@ -2777,7 +2797,7 @@
                                    FROM TUser U
                                    WHERE CHARINDEX(',' + U.usercode + ',', ',' + B.in_person + ',') > 0
                                    FOR XML PATH('')), 1, 1, '') AS username,
                            B.in_time as report_date,B.sqty as report_qty,B.ng_qty,B.laborbad_qty,B.materielbad_qty,A.wx_code,C.name as wx_name
                            B.in_time as report_date,B.sqty as report_qty,B.ng_qty,B.laborbad_qty,B.materielbad_qty,A.inhouseqty,A.wx_code,C.name as wx_name
                            from TK_Wrk_OutRecord A
                            inner join TK_Wrk_OutRecordSub B on A.id = B.m_id
                            left join TK_Wrk_Man M on A.wo_code = M.wo_code
@@ -3984,12 +4004,17 @@
        #endregion
        #region[生产入库信息查询]
        public static ToMessage ProductInHouseOrderSearch(string saleordercode, string wkshopcode, string erpordercode, string mesordercode, string partcode, string partname, string partspec)
        public static ToMessage ProductInHouseOrderSearch(string deptno, string saleordercode, string wkshopcode, string erpordercode, string mesordercode, string partcode, string partname, string partspec)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (deptno != "" && deptno != null)
                {
                    search += "and AA.dept_code=@deptno ";
                    dynamicParams.Add("@deptno", deptno);
                }
                if (saleordercode != "" && saleordercode != null)
                {
                    search += "and AA.saleOrderCode like '%'+@saleordercode+'%' ";
@@ -4028,31 +4053,31 @@
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select *   from(
                            select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,M.id as wo_id,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
                            A.step_code,T.stepname,M.wkshp_code,O.torg_name as wkshp_name,K.code as stockcode,k.name as stockname,
                            E.saleOrderqty,E.qty,M.plan_qty,A.good_qty,isnull(A.inhouseqty,0) as inhouseqty,A.good_qty-isnull(A.inhouseqty,0) as stinhouseqty,M.lm_date,A.style
                            from  TK_Wrk_Record A
                            inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
                            inner join TK_Wrk_Man M on S.wo_code=M.wo_code
                            inner join TMateriel_Info P on M.materiel_code=P.partcode
                            left join TKimp_Ewo E on M.m_po=E.wo and M.sourceid= E.id
                            left join TSecStck K on P.idwarehouse=K.code
                            left join TStep T on A.step_code=T.stepcode
                            left join TOrganization O on M.wkshp_code=O.torg_code
                            where A.style='B' and A.inbarcode<>'' and S.isend='Y' and A.good_qty>0
                            union all
                            select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,M.id as wo_id,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
                            A.step_code,T.stepname,M.wkshp_code,O.torg_name as wkshp_name,K.code as stockcode,k.name as stockname,
                            E.saleOrderqty,E.qty,M.plan_qty,A.sqty as sqty,isnull(A.inhouseqty,0) as inhouseqty,A.sqty-isnull(A.inhouseqty,0) as stinhouseqty,M.lm_date,A.style
                            from  TK_Wrk_OutRecord A
                            inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
                            inner join TK_Wrk_Man M on S.wo_code=M.wo_code
                            inner join TMateriel_Info P on M.materiel_code=P.partcode
                            left join TKimp_Ewo E on M.m_po=E.wo and M.sourceid= E.id
                            left join TSecStck K on P.idwarehouse=K.code
                            left join TStep T on A.step_code=T.stepcode
                            left join TOrganization O on M.wkshp_code=O.torg_code
                            where A.style='S' and A.inbarcode<>'' and S.isend='Y' and A.sqty>0
                              select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,M.id as wo_id,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
                              A.step_code,T.stepname,M.wkshp_code,O.torg_name as wkshp_name,COALESCE(K.noid, E.stck_id) as stockid,COALESCE(K.code, E.stck_code) as stockcode,k.name as stockname,E.dept_id,E.dept_code,
                              E.saleOrderqty,E.qty,M.plan_qty,A.good_qty,isnull(A.inhouseqty,0) as inhouseqty,A.good_qty-isnull(A.inhouseqty,0) as stinhouseqty,M.lm_date,A.style,E.voucherdate
                              from  TK_Wrk_Record A
                              inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
                              inner join TK_Wrk_Man M on S.wo_code=M.wo_code
                              inner join TMateriel_Info P on M.materiel_code=P.partcode
                              left join TKimp_Ewo E on M.m_po=E.wo and M.sourceid= E.id
                              left join TSecStck K on COALESCE(P.idwarehouse, E.stck_code)=K.code
                              left join TStep T on A.step_code=T.stepcode
                              left join TOrganization O on M.wkshp_code=O.torg_code
                              where A.style='B' and A.inbarcode<>'' and S.isend='Y' and A.good_qty>0
                              union all
                              select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,M.id as wo_id,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
                              A.step_code,T.stepname,M.wkshp_code,O.torg_name as wkshp_name,COALESCE(K.noid, E.stck_id) as stockid,COALESCE(K.code, E.stck_code) as stockcode,k.name as stockname,E.dept_id,E.dept_code,
                              E.saleOrderqty,E.qty,M.plan_qty,A.sqty as sqty,isnull(A.inhouseqty,0) as inhouseqty,A.sqty-isnull(A.inhouseqty,0) as stinhouseqty,M.lm_date,A.style,E.voucherdate
                              from  TK_Wrk_OutRecord A
                              inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
                              inner join TK_Wrk_Man M on S.wo_code=M.wo_code
                              inner join TMateriel_Info P on M.materiel_code=P.partcode
                              left join TKimp_Ewo E on M.m_po=E.wo and M.sourceid= E.id
                              left join TSecStck K on COALESCE(P.idwarehouse, E.stck_code)=K.code
                              left join TStep T on A.step_code=T.stepcode
                              left join TOrganization O on M.wkshp_code=O.torg_code
                              where A.style='S' and A.inbarcode<>'' and S.isend='Y' and A.sqty>0
                            ) as AA  where AA.good_qty>AA.inhouseqty " + search;
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
@@ -4091,7 +4116,7 @@
        }
        #endregion
        #region[生产入库获取部门信息]
        #region[通易T8生产入库获取部门信息]
        public static ToMessage DeptSelectData()
        {
            var sql = "";
@@ -4099,7 +4124,7 @@
            string search = "";
            try
            {
                sql = @"select * from h_v_TFDepent";
                sql = @"select * from h_v_T8Depent";
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.message = "查询成功!";
@@ -4358,5 +4383,52 @@
            return mes;
        }
        #endregion
        #region[畅捷通T+生产入库提交-存储过程版(适用同一台服务器,同一个数据库)]
        public static ToMessage TProductInHouseOrderSpSeave(InReptModel data, User us)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //存储过程名
                sql = @"h_p_IFCLD_TCloudInProductOrder";
                dynamicParams.Add("@RecordMin", dbType: DbType.Object, value: data.TableData[0]);
                dynamicParams.Add("@RecordSub", dbType: DbType.Object, value: data.TableData[1]);
                dynamicParams.Add("@rightcode", data.rightcode);
                dynamicParams.Add("@incbit", data.incbit);
                dynamicParams.Add("@username", us.usercode);
                // 添加输出参数
                dynamicParams.Add("@StatusCode", dbType: DbType.Int32, direction: ParameterDirection.Output);
                dynamicParams.Add("@Message", dbType: DbType.String, size: 255, direction: ParameterDirection.Output);
                bool a = DapperHelper.IsProcedure(sql, dynamicParams);
                // 获取输出参数的值
                var statusCode = dynamicParams.Get<int>("@StatusCode");
                var message = dynamicParams.Get<string>("@Message");
                if (a)
                {
                    mes.code = statusCode.ToString();
                    mes.count = 0;
                    mes.message = message;
                    mes.data = null;
                }
                else
                {
                    mes.code = statusCode.ToString();
                    mes.count = 0;
                    mes.message = message;
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}